function hquad (args)

*******************************************************
****                 INPUT Variables               ****
*******************************************************

'numargs  'args
 numargs = result

DEBUG  = FALSE

        num = 0
while ( num < numargs )
        num = num + 1

if( subwrd(args,num) = '-EXPID'   ) ; EXPID   = subwrd(args,num+1) ; endif
if( subwrd(args,num) = '-OUTPUT'  ) ; OUTPUT  = subwrd(args,num+1) ; endif
if( subwrd(args,num) = '-DEBUG'   ) ; DEBUG   = subwrd(args,num+1) ; endif
if( subwrd(args,num) = '-EXPORT1' ) ; EXPORT1 = subwrd(args,num+1) ; endif
if( subwrd(args,num) = '-EXPORT2' ) ; EXPORT2 = subwrd(args,num+1) ; endif
if( subwrd(args,num) = '-LEV'     ) ; LEV     = subwrd(args,num+1) ; endif

* Read SEASONS
* -----------
if( subwrd(args,num) = '-SEASON' )
     seasons = ''
           k = 1
    while( k > 0 )
           L = num + k
        season  = subwrd(args,L)
    if( season  = '' )
        k = -1
    else
        bit = substr(season,1,1)
        if( bit = '-' )
              k = -1
        else
              seasons = seasons % ' ' % season
              k = k+1
        endif
    endif
    endwhile
endif

endwhile
'uppercase 'seasons
            seasons = result
'numargs  ' seasons
 numseas =  result


* Construct GCs from Input EXPORTS
* --------------------------------
        EX = ''
         j = 1
       bit = substr(EXPORT1,j,1)
       while(bit != ':' )
        EX = EX''bit
         j = j + 1
       bit = substr(EXPORT1,j,1)
       endwhile
         j = j + 1
       GC1 = ''
       bit = substr(EXPORT1,j,1)
       while(bit != '')
       GC1 = GC1''bit
         j = j + 1
       bit = substr(EXPORT1,j,1)
       endwhile
       EXPORT1 = EX

        EX = ''
         j = 1
       bit = substr(EXPORT2,j,1)
       while(bit != ':' )
        EX = EX''bit
         j = j + 1
       bit = substr(EXPORT2,j,1)
       endwhile
         j = j + 1
       GC2 = ''
       bit = substr(EXPORT2,j,1)
       while(bit != '')
       GC2 = GC2''bit
         j = j + 1
       bit = substr(EXPORT2,j,1)
       endwhile
       EXPORT2 = EX


* Initialize
* ----------
"reinit"
'set display color white'
'set csmooth on'
'c'


* Get Environment Variables
* -------------------------

'run getenv "GEOSUTIL"'
         geosutil = result
'run getenv "VERIFICATION"'
         verification = result

'run getenv "CMPEXP_ONLY"'
             cmpexp_only = result


* Get Model Primary Fields
* ------------------------
if( EXPORT1 = KE )
'run getvar U DYN'
     q1mname  = subwrd(result,1)
     q1mfile  = subwrd(result,2)
     q1mscale = subwrd(result,3)
       mdesc  = subwrd(result,4)
 'd 'q1mscale
     q1mscale = subwrd(result,4)
else
'run getvar 'EXPORT1' 'GC1
     q1mname  = subwrd(result,1)
     q1mfile  = subwrd(result,2)
     q1mscale = subwrd(result,3)
       mdesc  = subwrd(result,4)
 'd 'q1mscale
     q1mscale = subwrd(result,4)
endif

if( EXPORT2 = KE )
'run getvar V DYN'
     q2mname  = subwrd(result,1)
     q2mfile  = subwrd(result,2)
     q2mscale = subwrd(result,3)
 'd 'q2mscale
     q2mscale = subwrd(result,4)
else
'run getvar 'EXPORT2' 'GC2
     q2mname  = subwrd(result,1)
     q2mfile  = subwrd(result,2)
     q2mscale = subwrd(result,3)
 'd 'q2mscale
     q2mscale = subwrd(result,4)
endif

'define q1mscale = 'q1mscale
'define q2mscale = 'q2mscale


* Set Model Variance and CoVariance Names
* ---------------------------------------
if( EXPORT1 = KE & EXPORT2 = KE )
      result = setname (q1mname,q1mname,q1mfile,m)
               qq1mname  = subwrd(result,1)
               qq1mfile  = q1mfile
               qq1mscale = q1mscale*q1mscale
       'define qq1mscale = 'qq1mscale
      result = setname (q2mname,q2mname,q2mfile,m)
               qq2mname  = subwrd(result,1)
               qq2mfile  = q2mfile
               qq2mscale = q2mscale*q2mscale
       'define qq2mscale = 'qq2mscale
else
 if( q1mname = q2mname )
      result = setname (q1mname,q1mname,q1mfile,m)
               qq1mname  = subwrd(result,1)
               qq1mfile  = q1mfile
               qq1mscale = q1mscale*q1mscale
       'define qq1mscale = 'qq1mscale
 endif
 if( q1mname != q2mname )
       result = setname (q1mname,q2mname,q1mfile,m)
                q1q2mname  = subwrd(result,1)
                q1q2mfile  = q1mfile
                q1q2mscale = q1mscale*q2mscale
        'define q1q2mscale = 'q1q2mscale
 endif
endif


**************************************************
****            Compute Quadratics            ****
**************************************************

   'set dfile 'q1mfile
   'getinfo undef'
            undef = result
   'setlons'
   'setdates'
   'run getenv "BEGDATE"'
                begdate  = result
   'run getenv "ENDDATE"'
                enddate  = result
   'set lat -90 90'
   'getdates'
   'set lev 'LEV

if( EXPORT1 = KE & EXPORT2 = KE )
  'makequad -q1 'q1mname' -file1 'q1mfile' -scale1 'q1mscale' -q2 'q1mname' -file2 'q1mfile' -scale2 'q1mscale' -qq 'qq1mname'  -tag m'
  'makequad -q1 'q2mname' -file1 'q2mfile' -scale1 'q2mscale' -q2 'q2mname' -file2 'q2mfile' -scale2 'q2mscale' -qq 'qq2mname'  -tag m'
else
   if( q1mname = q2mname )
  'makequad -q1 'q1mname' -file1 'q1mfile' -scale1 'q1mscale' -q2 'q2mname' -file2 'q2mfile' -scale2 'q2mscale' -qq 'qq1mname'  -tag m'
   else
  'makequad -q1 'q1mname' -file1 'q1mfile' -scale1 'q1mscale' -q2 'q2mname' -file2 'q2mfile' -scale2 'q2mscale' -qq 'q1q2mname' -tag m'
   endif
endif


*********************************************************************
****    Loop over Possible Experiment Datasets for Comparison    ****
*********************************************************************

'!/bin/mv HISTORY.T HISTORY.Tmp'
'run getenv "CMPEXP"'
         cmpexp = result
         numexp = 1

          dummy = get_cmpexp (cmpexp,numexp)
            exp = subwrd(dummy,1)
           type = subwrd(dummy,2)

while( exp != 'NULL' )
say ' '
say 'Comparing with: 'exp

'!chckfile 'exp'/.HOMDIR'
 'run getenv CHECKFILE'
         CHECKFILE  = result
     if( CHECKFILE != 'NULL' )
        '!/bin/cp `cat 'exp'/.HOMDIR`/HISTORY.rc .'
     else
        '!/bin/cp 'exp'/HISTORY.rc .'
     endif
'!remove CHECKFILE.txt'
'!cat HISTORY.rc | sed -e "s/,/ , /g" | sed -e "s/*/@/g" > HISTORY.T'

* Get CMPEXP Primary Fields
* -------------------------
'set dfile 1'
'set x 1'
'set y 1'
'set z 1'
'set t 1'

if( EXPORT1 = KE )
'run getvar U DYN 'exp
     q1oname  = subwrd(result,1)
     q1ofile  = subwrd(result,2)
     q1oscale = subwrd(result,3)
       odesc  = subwrd(result,4)
       obsid  = subwrd(result,5)
 'd 'q1oscale
     q1oscale = subwrd(result,4)
else
'run getvar 'EXPORT1' 'GC1' 'exp
     q1oname  = subwrd(result,1)
     q1ofile  = subwrd(result,2)
     q1oscale = subwrd(result,3)
       odesc  = subwrd(result,4)
       obsid  = subwrd(result,5)
 'd 'q1oscale
     q1oscale = subwrd(result,4)
endif

if( EXPORT1 = KE )
'run getvar V DYN 'exp
     q2oname  = subwrd(result,1)
     q2ofile  = subwrd(result,2)
     q2oscale = subwrd(result,3)
 'd 'q2oscale
     q2oscale = subwrd(result,4)
else
'run getvar 'EXPORT2' 'GC2' 'exp
     q2oname  = subwrd(result,1)
     q2ofile  = subwrd(result,2)
     q2oscale = subwrd(result,3)
 'd 'q2oscale
     q2oscale = subwrd(result,4)
endif

'define q1oscale = 'q1oscale
'define q2oscale = 'q2oscale
 
* Set CMPEXP Variance and CoVariance Names
* ----------------------------------------
if( EXPORT1 = KE & EXPORT2 = KE )
      result = setname (q1oname,q1oname,q1ofile,o)
               qq1oname  = subwrd(result,1)
               qq1ofile  = q1ofile
               qq1oscale = q1oscale*q1oscale
       'define qq1oscale = 'qq1oscale
      result = setname (q2oname,q2oname,q2ofile,o)
               qq2oname  = subwrd(result,1)
               qq2ofile  = q2ofile
               qq2oscale = q2oscale*q2oscale
       'define qq2oscale = 'qq2oscale
else
 if( q1oname = q2oname )
      result = setname (q1oname,q1oname,q1ofile,o)
               qq1oname  = subwrd(result,1)
               qq1ofile  = q1ofile
               qq1oscale = q1oscale*q1oscale
       'define qq1oscale = 'qq1oscale
 endif
 if( q1oname != q2oname )
       result = setname (q1oname,q2oname,q1ofile,o)
                q1q2oname  = subwrd(result,1)
                q1q2ofile  = q1ofile
                q1q2oscale = q1oscale*q2oscale
        'define q1q2oscale = 'q1q2oscale
 endif
endif

* Compute Zonal Means for Transient and Stationary Waves of CoVariance Fields
* ---------------------------------------------------------------------------
   'set dfile 'q1ofile
   'getinfo undef'
            undef = result
   'setlons'
   'set lat -90 90'
   'getdates'
    begdateo = subwrd(result,1)
    enddateo = subwrd(result,2)

   'set lev 'LEV

if( EXPORT1 = KE & EXPORT2 = KE )
  'makequad -q1 'q1oname' -file1 'q1ofile' -scale1 'q1oscale' -q2 'q1oname' -file2 'q1ofile' -scale2 'q1oscale' -qq 'qq1oname'  -tag o'
  'makequad -q1 'q2oname' -file1 'q2ofile' -scale1 'q2oscale' -q2 'q2oname' -file2 'q2ofile' -scale2 'q2oscale' -qq 'qq2oname'  -tag o'
else
   if( q1oname = q2oname )
  'makequad -q1 'q1oname' -file1 'q1ofile' -scale1 'q1oscale' -q2 'q2oname' -file2 'q2ofile' -scale2 'q2oscale' -qq 'qq1oname'  -tag o'
   else
  'makequad -q1 'q1oname' -file1 'q1ofile' -scale1 'q1oscale' -q2 'q2oname' -file2 'q2ofile' -scale2 'q2oscale' -qq 'q1q2oname' -tag o'
   endif
endif

*******************************************************
****         Loop over Seasons to Process          ****
*******************************************************

       m = 1
while( m > 0 )
    season = subwrd(seasons,m)
if( season = '' )
         m = -1
else
         m = m+1
         say 'Processing Season: 'season

'set dfile 'q1mfile
'count "'season'" 'begdate' 'enddate
 nmod =  result

'set dfile 'q1ofile
'count "'season'"'
 nobs =  result

* Make Variance Plots
* -------------------
if( (EXPORT1 = KE) | (q1mname = q2mname) )

if( q1mname != 'NULL' & q1oname != 'NULL' )

if( q1mname = q2mname )
      'uppercase 'q1mname
                  varname = 'Var_'result
      'set dfile 'q1mfile
      'set lev 'LEV
      'define qsqsm = sqrt(Var'q1mname'sm'season')'
      'define qpqpm = sqrt(Var'q1mname'pm'season')'
      'set dfile 'q1ofile
      'set lev 'LEV
      'define qsqso = sqrt(Var'q1oname'so'season')'
      'define qpqpo = sqrt(Var'q1oname'po'season')'
endif
if( EXPORT1 = KE )
                  varname = 'Var_KE'
   'set dfile 'q1mfile
   'set lev 'LEV
   'define         KEsm'season' = 0.5*( Var'q1mname'sm'season' + Var'q2mname'sm'season' )'
   'define         KEpm'season' = 0.5*( Var'q1mname'pm'season' + Var'q2mname'pm'season' )'
   'define qsqsm = KEsm'season
   'define qpqpm = KEpm'season
   'set dfile 'q1ofile
   'set lev 'LEV
   'define         KEso'season' = 0.5*( Var'q1oname'so'season' + Var'q2oname'so'season' )'
   'define         KEpo'season' = 0.5*( Var'q1oname'po'season' + Var'q2oname'po'season' )'
   'define qsqso = KEso'season
   'define qpqpo = KEpo'season
endif

           flag = ""
   while ( flag = "" )
  'run 'geosutil'/plots/quad/hplot -EXPID 'EXPID' -EXPORT 'varname' -SEASON 'season' -NMOD 'nmod' -NOBS 'nobs' -OUTPUT 'OUTPUT' -PFILE 'q1mfile' -OFILE 'q1ofile' -OBDATE 'begdateo' -OEDATE 'enddateo' -ODESC 'odesc' -ONAME 'obsid' -LEV 'LEV' -TYPE 's
        if( DEBUG = "debug" )
            say "Hit  ENTER  to repeat plot or non-blank to continue"
            pull flag
        else
            flag = "next"
        endif
       'c'
   endwhile

           flag = ""
   while ( flag = "" )
  'run 'geosutil'/plots/quad/hplot -EXPID 'EXPID' -EXPORT 'varname' -SEASON 'season' -NMOD 'nmod' -NOBS 'nobs' -OUTPUT 'OUTPUT' -PFILE 'q1mfile' -OFILE 'q1ofile' -OBDATE 'begdateo' -OEDATE 'enddateo' -ODESC 'odesc' -ONAME 'obsid' -LEV 'LEV' -TYPE 'p
        if( DEBUG = "debug" )
            say "Hit  ENTER  to repeat plot or non-blank to continue"
            pull flag
        else
            flag = "next"
        endif
       'c'
   endwhile

endif
endif

* Make CoVariance Plots
* ---------------------
if( (EXPORT1 != KE) & q1mname != q2mname )

          COVARSM = q1mname' 'q2mname
          COVARSO = q1oname' 'q2oname

       varmname1 = subwrd( COVARSM,1 )
       varmname2 = subwrd( COVARSM,2 )
       varoname1 = subwrd( COVARSO,1 )
       varoname2 = subwrd( COVARSO,2 )

'uppercase 'varmname1
             varname1 = result
'uppercase 'varmname2
             varname2 = result
               cname  = 'Cov_'varname1'_'varname2

'set dfile 'q1mfile
'set lev 'LEV
'define qsqsm = Cov'varmname1''varmname2'sm'season
'define qpqpm = Cov'varmname1''varmname2'pm'season
'set dfile 'q1ofile
'set lev 'LEV
'define qsqso = Cov'varoname1''varoname2'so'season
'define qpqpo = Cov'varoname1''varoname2'po'season

           flag = ""
   while ( flag = "" )
  'run 'geosutil'/plots/quad/hplot -EXPID 'EXPID' -EXPORT 'cname' -SEASON 'season' -NMOD 'nmod' -NOBS 'nobs' -OUTPUT 'OUTPUT' -PFILE 'q1mfile' -OFILE 'q1ofile' -OBDATE 'begdateo' -OEDATE 'enddateo' -ODESC 'odesc' -ONAME 'obsid' -LEV 'LEV' -TYPE 's
        if( DEBUG = "debug" )
            say "Hit  ENTER  to repeat plot or non-blank to continue"
            pull flag
        else
            flag = "next"
        endif
       'c'
   endwhile

           flag = ""
   while ( flag = "" )
  'run 'geosutil'/plots/quad/hplot -EXPID 'EXPID' -EXPORT 'cname' -SEASON 'season' -NMOD 'nmod' -NOBS 'nobs' -OUTPUT 'OUTPUT' -PFILE 'q1mfile' -OFILE 'q1ofile' -OBDATE 'begdateo' -OEDATE 'enddateo' -ODESC 'odesc' -ONAME 'obsid' -LEV 'LEV' -TYPE 'p
        if( DEBUG = "debug" )
            say "Hit  ENTER  to repeat plot or non-blank to continue"
            pull flag
        else
            flag = "next"
        endif
       'c'
   endwhile

endif
endif

endwhile

* Check next Comparison Experiment Dataset
* ----------------------------------------
  numexp = numexp + 1
   dummy = get_cmpexp (cmpexp,numexp)
     exp = subwrd(dummy,1)
    type = subwrd(dummy,2)

endwhile
'!/bin/mv HISTORY.Tmp HISTORY.T'

if( cmpexp_only = TRUE ) ; return ; endif

*********************************************************************
****   Loop over Possible Verification Datasets for Comparison   ****
*********************************************************************

' getnumrc 'geosutil'/plots/quad'
     rcinfo = result
     numrc  = subwrd( rcinfo,1 )
       num  = 1
       cnt  = 0

while( num <= numrc )
        loc = num + 1
     rcfile = subwrd( rcinfo,loc )


* Get OBS Primary Fields
* ----------------------
'set dfile 1'
'set x 1'
'set y 1'
'set z 1'
'set t 1'

if( EXPORT1 = KE )
'run getobs U DYN 'rcfile
     q1oname  = subwrd(result,1)
     q1ofile  = subwrd(result,2)
     q1oscale = subwrd(result,3)
       odesc  = subwrd(result,4)
       obsid  = subwrd(result,5)
 'd 'q1oscale
     q1oscale = subwrd(result,4)
else
'run getobs 'EXPORT1' 'GC1' 'rcfile
     q1oname  = subwrd(result,1)
     q1ofile  = subwrd(result,2)
     q1oscale = subwrd(result,3)
       odesc  = subwrd(result,4)
       obsid  = subwrd(result,5)
 'd 'q1oscale
     q1oscale = subwrd(result,4)
endif

if( EXPORT1 = KE )
'run getobs V DYN 'rcfile
     q2oname  = subwrd(result,1)
     q2ofile  = subwrd(result,2)
     q2oscale = subwrd(result,3)
 'd 'q2oscale
     q2oscale = subwrd(result,4)
else
'run getobs 'EXPORT2' 'GC2' 'rcfile
     q2oname  = subwrd(result,1)
     q2ofile  = subwrd(result,2)
     q2oscale = subwrd(result,3)
 'd 'q2oscale
     q2oscale = subwrd(result,4)
endif

'define q1oscale = 'q1oscale
'define q2oscale = 'q2oscale

* Set CMPEXP Variance and CoVariance Names
* ----------------------------------------
if( EXPORT1 = KE & EXPORT2 = KE )
      result = setname (q1oname,q1oname,q1ofile,o)
               qq1oname  = subwrd(result,1)
               qq1ofile  = q1ofile
               qq1oscale = q1oscale*q1oscale
       'define qq1oscale = 'qq1oscale
      result = setname (q2oname,q2oname,q2ofile,o)
               qq2oname  = subwrd(result,1)
               qq2ofile  = q2ofile
               qq2oscale = q2oscale*q2oscale
       'define qq2oscale = 'qq2oscale
else
 if( q1oname = q2oname )
      result = setname (q1oname,q1oname,q1ofile,o)
               qq1oname  = subwrd(result,1)
               qq1ofile  = q1ofile
               qq1oscale = q1oscale*q1oscale
       'define qq1oscale = 'qq1oscale
 endif
 if( q1oname != q2oname )
       result = setname (q1oname,q2oname,q1ofile,o)
                q1q2oname  = subwrd(result,1)
                q1q2ofile  = q1ofile
                q1q2oscale = q1oscale*q2oscale
        'define q1q2oscale = 'q1q2oscale
 endif
endif



* Compute Zonal Means for Transient and Stationary Waves of CoVariance Fields
* ---------------------------------------------------------------------------
   'set dfile 'q1ofile
   'getinfo undef'
            undef = result
   'setlons'
   'set lat -90 90'
   'getdates'
    begdateo = subwrd(result,1)
    enddateo = subwrd(result,2)

   'set lev 'LEV

if( EXPORT1 = KE & EXPORT2 = KE )
  'makequad -q1 'q1oname' -file1 'q1ofile' -scale1 'q1oscale' -q2 'q1oname' -file2 'q1ofile' -scale2 'q1oscale' -qq 'qq1oname'  -tag o'
  'makequad -q1 'q2oname' -file1 'q2ofile' -scale1 'q2oscale' -q2 'q2oname' -file2 'q2ofile' -scale2 'q2oscale' -qq 'qq2oname'  -tag o'
else
   if( q1oname = q2oname )
  'makequad -q1 'q1oname' -file1 'q1ofile' -scale1 'q1oscale' -q2 'q2oname' -file2 'q2ofile' -scale2 'q2oscale' -qq 'qq1oname'  -tag o'
   else
  'makequad -q1 'q1oname' -file1 'q1ofile' -scale1 'q1oscale' -q2 'q2oname' -file2 'q2ofile' -scale2 'q2oscale' -qq 'q1q2oname' -tag o'
   endif
endif

*******************************************************
****         Loop over Seasons to Process          ****
*******************************************************

       m = 1
while( m > 0 )
    season = subwrd(seasons,m)
if( season = '' )
         m = -1
else
         m = m+1
         say 'Processing Season: 'season

'set dfile 'q1mfile
'count "'season'" 'begdate' 'enddate
 nmod =  result

'set dfile 'q1ofile
'count "'season'"'
 nobs =  result

* Make Variance Plots
* -------------------
if( (EXPORT1 = KE) | (q1mname = q2mname) )

if( q1mname != 'NULL' & q1oname != 'NULL' )

if( q1mname = q2mname )
      'uppercase 'q1mname
                  varname = 'Var_'result
      'set dfile 'q1mfile
      'set lev 'LEV
      'define qsqsm = sqrt(Var'q1mname'sm'season')'
      'define qpqpm = sqrt(Var'q1mname'pm'season')'
      'set dfile 'q1ofile
      'set lev 'LEV
      'define qsqso = sqrt(Var'q1oname'so'season')'
      'define qpqpo = sqrt(Var'q1oname'po'season')'
endif
if( EXPORT1 = KE )
                  varname = 'Var_KE'
   'set dfile 'q1mfile
   'set lev 'LEV
   'define         KEsm'season' = 0.5*( Var'q1mname'sm'season' + Var'q2mname'sm'season' )'
   'define         KEpm'season' = 0.5*( Var'q1mname'pm'season' + Var'q2mname'pm'season' )'
   'define qsqsm = KEsm'season
   'define qpqpm = KEpm'season
   'set dfile 'q1ofile
   'set lev 'LEV
   'define         KEso'season' = 0.5*( Var'q1oname'so'season' + Var'q2oname'so'season' )'
   'define         KEpo'season' = 0.5*( Var'q1oname'po'season' + Var'q2oname'po'season' )'
   'define qsqso = KEso'season
   'define qpqpo = KEpo'season
endif

           flag = ""
   while ( flag = "" )
  'run 'geosutil'/plots/quad/hplot -EXPID 'EXPID' -EXPORT 'varname' -SEASON 'season' -NMOD 'nmod' -NOBS 'nobs' -OUTPUT 'OUTPUT' -PFILE 'q1mfile' -OFILE 'q1ofile' -OBDATE 'begdateo' -OEDATE 'enddateo' -ODESC 'odesc' -ONAME 'obsid' -LEV 'LEV' -TYPE 's
        if( DEBUG = "debug" )
            say "Hit  ENTER  to repeat plot or non-blank to continue"
            pull flag
        else
            flag = "next"
        endif
       'c'
   endwhile

           flag = ""
   while ( flag = "" )
  'run 'geosutil'/plots/quad/hplot -EXPID 'EXPID' -EXPORT 'varname' -SEASON 'season' -NMOD 'nmod' -NOBS 'nobs' -OUTPUT 'OUTPUT' -PFILE 'q1mfile' -OFILE 'q1ofile' -OBDATE 'begdateo' -OEDATE 'enddateo' -ODESC 'odesc' -ONAME 'obsid' -LEV 'LEV' -TYPE 'p
        if( DEBUG = "debug" )
            say "Hit  ENTER  to repeat plot or non-blank to continue"
            pull flag
        else
            flag = "next"
        endif
       'c'
   endwhile

endif
endif

* Make CoVariance Plots
* ---------------------
if( (EXPORT1 != KE) & q1mname != q2mname )

          COVARSM = q1mname' 'q2mname
          COVARSO = q1oname' 'q2oname

       varmname1 = subwrd( COVARSM,1 )
       varmname2 = subwrd( COVARSM,2 )
       varoname1 = subwrd( COVARSO,1 )
       varoname2 = subwrd( COVARSO,2 )

'uppercase 'varmname1
             varname1 = result
'uppercase 'varmname2
             varname2 = result
               cname  = 'Cov_'varname1'_'varname2

'set dfile 'q1mfile
'set lev 'LEV
'define qsqsm = Cov'varmname1''varmname2'sm'season
'define qpqpm = Cov'varmname1''varmname2'pm'season
'set dfile 'q1ofile
'set lev 'LEV
'define qsqso = Cov'varoname1''varoname2'so'season
'define qpqpo = Cov'varoname1''varoname2'po'season

           flag = ""
   while ( flag = "" )
  'run 'geosutil'/plots/quad/hplot -EXPID 'EXPID' -EXPORT 'cname' -SEASON 'season' -NMOD 'nmod' -NOBS 'nobs' -OUTPUT 'OUTPUT' -PFILE 'q1mfile' -OFILE 'q1ofile' -OBDATE 'begdateo' -OEDATE 'enddateo' -ODESC 'odesc' -ONAME 'obsid' -LEV 'LEV' -TYPE 's
        if( DEBUG = "debug" )
            say "Hit  ENTER  to repeat plot or non-blank to continue"
            pull flag
        else
            flag = "next"
        endif
       'c'
   endwhile
           flag = ""
   while ( flag = "" )
  'run 'geosutil'/plots/quad/hplot -EXPID 'EXPID' -EXPORT 'cname' -SEASON 'season' -NMOD 'nmod' -NOBS 'nobs' -OUTPUT 'OUTPUT' -PFILE 'q1mfile' -OFILE 'q1ofile' -OBDATE 'begdateo' -OEDATE 'enddateo' -ODESC 'odesc' -ONAME 'obsid' -LEV 'LEV' -TYPE 'p
        if( DEBUG = "debug" )
            say "Hit  ENTER  to repeat plot or non-blank to continue"
            pull flag
        else
            flag = "next"
        endif
       'c'
   endwhile

endif
endif

endwhile

num = num + 1
endwhile

return

function setname (name1,name2,cfile1,tag)

    flag = false

        if( name1 != 'NULL' & name2 != 'NULL' )
            if( name1 != name2 )
                cname  = 'Cov_'name1'_'name2
               'lowercase 'cname
                          lcname = result
               'set dfile 'cfile1
               'query file'
                numvar = sublin(result,6)
                numvar = subwrd(numvar,5)
                m = 1
                while ( m<numvar+1 )
                field = sublin(result,6+m)
                field = subwrd(field,1)
                      if( lcname=field )
                      flag = true
                      endif
                m = m+1
                endwhile
            else
                cname  = 'Var_'name1
               'lowercase 'cname
                          lcname = result
               'set dfile 'cfile1
               'query file'
                numvar = sublin(result,6)
                numvar = subwrd(numvar,5)
                m = 1
                while ( m<numvar+1 )
                field = sublin(result,6+m)
                field = subwrd(field,1)
                      if( lcname=field )
                      flag = true
                      endif
                m = m+1
                endwhile
            endif
        endif

    if (flag=false)
        cname = 'NULL'
    endif

return cname

* Get Next EXP from CMPEXP List
* -----------------------------
function get_cmpexp (cmpexp,num)
      exp  = subwrd(cmpexp,num)
      len = get_length (exp)
      bit = substr(exp,len-1,1)
      if( bit = ":" )
          type = substr(exp,len,1)
          exp  = substr(exp,1,len-2)
      else
          type = M
      endif
return exp' 'type

function get_length (string)
tb = ""
i = 1
while (i<=256)
blank = substr(string,i,1)
if( blank = tb )
length = i-1
i = 999
else
i = i + 1
endif
endwhile
return length

