function pme (args)

expid    = subwrd(args,1)
output   = subwrd(args,2)
debug    = subwrd(args,3)


* Initialize
* ----------
'reinit'
'set display color white'
'set clab off'
'c'

* Get Precipitation Variables
* ---------------------------
'run getvar CN_PRCP MOIST'
        qname.1 = subwrd(result,1)
        qfile.1 = subwrd(result,2)
        scale.1 = subwrd(result,3)
        expdsc  = subwrd(result,4)
'run getvar LS_PRCP MOIST'
        qname.2 = subwrd(result,1)
        qfile.2 = subwrd(result,2)
        scale.2 = subwrd(result,3)
'run getvar AN_PRCP MOIST'
        qname.3 = subwrd(result,1)
        qfile.3 = subwrd(result,2)
        scale.3 = subwrd(result,3)

if( qname.1 = 'NULL' & qname.2  = 'NULL' & qname.3  = 'NULL')
   'run getvar TPREC MOIST'
           qname.1 = subwrd(result,1)
           qfile.1 = subwrd(result,2)
           scale.1 = subwrd(result,3)
           expdsc  = subwrd(result,4)
        components = false
               num = 1
else
        components = true
               num = 3
endif
        n = num + 1

'run getvar EVAP SURFACE'
        qname.n = subwrd(result,1)
        qfile.n = subwrd(result,2)
        scale.n = subwrd(result,3)
            num = n


'run getvar DQVDTANAINT DYN'
        aname  = subwrd(result,1)
        afile  = subwrd(result,2)
        ascale = subwrd(result,3)


* Check Existance of Data
* -----------------------
          m  =  1
while (   m <=  num )
if( qfile.m  = 'NULL' ) ; return ; endif
          m  =  m+1
endwhile
if( qfile.4  = 'NULL' ) ; return ; endif


* Get Environment Variables
* -------------------------
'run getenv "GEOSUTIL"'
         geosutil = result


* Model Data Sets
* ---------------
if( components = 'true' )

        'set dfile 'qfile.1
        'setx'
        'sety'
        'sett'
        'set z 1'
        'make_ts -FUNCTION 'qname.1'*'scale.1'+'qname.2'*'scale.2'+'qname.3'*'scale.3' -NAME preacc'
         newfile = subwrd(result,1)
         kdim    = subwrd(result,2)
        'set dfile 'qfile.4
        'setx'
        'sety'
        'sett'
        'set z 1'
        'make_ts -FUNCTION  'qname.4'*'scale.4' -NAME evpacc'
         newfile = subwrd(result,1)
         kdim    = subwrd(result,2)

       'set dfile 'qfile.1
       'set x 1'
       'set y 1'
       'set z 1'
       'sett'
       'define preaccg = preaccg*86400'
       'define evpaccg = evpaccg*86400'

else

       'set dfile 'qfile.1
       'set z 1'
       'setx'
       'sety'
       'sett'
        if( qname.1 != alias.1 ) ; 'rename 'qname.1 ' 'alias.1 ; endif
       'make_ts -FUNCTION 'qname.1' -NAME VAR'1
        newfile = subwrd(result,1)
        kdim    = subwrd(result,2)
       'set dfile 'qfile.2
       'set z 1'
       'setx'
       'sety'
       'sett'
       'make_ts -FUNCTION 'qname.2' -NAME VAR'2
        newfile = subwrd(result,1)
        kdim    = subwrd(result,2)
       'set dfile 'qfile.1
       'set x 1'
       'set y 1'
       'set z 1'
       'sett'
       'define preaccg = VAR1g*'scale.1'*86400'
       'define evpaccg = VAR2g*'scale.2'*86400'

endif

if( afile != 'NULL' )
       'set dfile 'afile
       'set z 1'
       'setx'
       'sety'
       'sett'
       'make_ts -FUNCTION 'aname' -NAME VARa'
       'set x 1'
       'set y 1'
       'set z 1'
       'define anaaccg = VARag*'ascale'*86400'
endif




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

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

          dummy = get_cmpexp (cmpexp,num)
            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 Precipitation Variables
* ---------------------------
'run getvar CN_PRCP MOIST 'exp
        oname.1 = subwrd(result,1)
        ofile.1 = subwrd(result,2)
       oscale.1 = subwrd(result,3)
        obsdsc  = subwrd(result,4)
        obsnam  = subwrd(result,5)
'run getvar LS_PRCP MOIST 'exp
        oname.2 = subwrd(result,1)
        ofile.2 = subwrd(result,2)
       oscale.2 = subwrd(result,3)
'run getvar AN_PRCP MOIST 'exp
        oname.3 = subwrd(result,1)
        ofile.3 = subwrd(result,2)
       oscale.3 = subwrd(result,3)

if( oname.1 = 'NULL' & oname.2  = 'NULL' & oname.3  = 'NULL')
   'run getvar TPREC MOIST 'exp
           oname.1 = subwrd(result,1)
           ofile.1 = subwrd(result,2)
          oscale.1 = subwrd(result,3)
           obsdsc  = subwrd(result,4)
           obsnam  = subwrd(result,5)
        components = false
else
        components = true
endif

* Comparison Model Data Sets
* --------------------------
if( components = 'true' )
        'set dfile 'ofile.1
        'setx'
        'sety'
        'sett'
        'set z 1'
        'make_ts -FUNCTION 'oname.1'*'oscale.1'+'oname.2'*'oscale.2'+'oname.3'*'oscale.3' -NAME opreacc'
         newfile = subwrd(result,1)
         kdim    = subwrd(result,2)
       'set dfile 'ofile.1
       'set x 1'
       'set y 1'
       'set z 1'
       'sett'
       'define obsg = opreaccg*86400'
else
       'set dfile 'ofile.1
       'set z 1'
       'setx'
       'sety'
       'sett'
        if( oname.1 != alias.1 ) ; 'rename 'oname.1 ' 'alias.1 ; endif
       'make_ts -FUNCTION 'oname.1' -NAME OBS'1
        newfile = subwrd(result,1)
        kdim    = subwrd(result,2)
       'set dfile 'qfile.1
       'set x 1'
       'set y 1'
       'set z 1'
       'sett'
       'define obsg = OBS1g*'oscale.1'*86400'
endif

* Make Plot
* ---------
           flag = ""
   while ( flag = "" )
          'run 'geosutil'/plots/tseries/pme_1 'expid' 'expdsc' 'output' 'afile' 'ofile.1' 'obsnam
           if( debug = "debug" )
               say "Hit  ENTER  to repeat plot"
               say "Type 'next' for  next plot, 'done' for next field"
                    pull flag
           else
                    flag = "next"
           endif
           'c'
   endwhile

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

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


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

'getnumrc 'geosutil'/plots/tseries'
     rcinfo = result
     numrc  = subwrd( rcinfo,1 )
         k  = 1
while(   k <= numrc )
        loc = k + 1
     rcfile = subwrd( rcinfo,loc )
say 'rcfile = 'rcfile
'run getobs TPREC MOIST 'rcfile
          oname = subwrd(result,1)
        obsfile = subwrd(result,2)
         oscale = subwrd(result,3)
         obsdsc = subwrd(result,4)
         obsnam = subwrd(result,5)

if( oname != 'NULL' )
'set dfile 'obsfile
'set z 1'
'setx'
'sety'
'sett'
'make_ts -FUNCTION 'oname'*'oscale' -NAME OBS'k
'set x 1'
'set y 1'
'set z 1'
'define obsg = OBS'k'g'
'set dfile 'qfile.1

* Make Plot
* ---------
           flag = ""
   while ( flag = "" )
          'run 'geosutil'/plots/tseries/pme_1 'expid' 'expdsc' 'output' 'afile' 'obsfile' 'obsnam
           if( debug = "debug" )
               say "Hit  ENTER  to repeat plot"
               say "Type 'next' for  next plot, 'done' for next field"
                    pull flag
           else
                    flag = "next"
           endif
           'c'
   endwhile

endif
k = k + 1
endwhile
return

* 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

