function hplt (args)

'numargs  'args
 numargs = result

* Initialize INPUT Parameters
* ---------------------------
        num = 0
while ( num < numargs )
        num = num + 1

if( subwrd(args,num) = '-MVAR'     ) ; mvar     = subwrd(args,num+1) ; say 'mvar  = 'mvar  ; endif
if( subwrd(args,num) = '-OVAR'     ) ; ovar     = subwrd(args,num+1) ; say 'ovar  = 'ovar  ; endif

if( subwrd(args,num) = '-EXPID'    ) ; expid    = subwrd(args,num+1) ; endif
if( subwrd(args,num) = '-MNAME'    ) ; mname    = subwrd(args,num+1) ; say 'mname = 'mname ; endif
if( subwrd(args,num) = '-SEASON'   ) ; season   = subwrd(args,num+1) ; endif
if( subwrd(args,num) = '-OUTPUT'   ) ; output   = subwrd(args,num+1) ; endif
if( subwrd(args,num) = '-LEVEL'    ) ; level    = subwrd(args,num+1) ; endif
if( subwrd(args,num) = '-NMOD'     ) ; nmod     = subwrd(args,num+1) ; endif
if( subwrd(args,num) = '-NOBS'     ) ; nobs     = subwrd(args,num+1) ; endif
if( subwrd(args,num) = '-MFILE'    ) ; mfile    = subwrd(args,num+1) ; say 'mfile = 'mfile   ; endif
if( subwrd(args,num) = '-OFILE'    ) ; ofile    = subwrd(args,num+1) ; say 'ofile = 'ofile   ; endif
if( subwrd(args,num) = '-ONAME'    ) ; oname    = subwrd(args,num+1) ; say 'oname = 'oname   ; endif
if( subwrd(args,num) = '-ODESC'    ) ; odesc    = subwrd(args,num+1) ; endif
if( subwrd(args,num) = '-DEBUG'    ) ; debug    = subwrd(args,num+1) ; endif
if( subwrd(args,num) = '-MDESC'    ) ; mdesc    = subwrd(args,num+1) ; endif

endwhile

* ---------------------------
 
blak   = 0

* Get Dates
* ---------
'run getenv "BEGDATEO"'
         begdateo = result
'run getenv "ENDDATEO"'
         enddateo = result

'run getenv "BEGDATE"'
         begdate  = result
'run getenv "ENDDATE"'
         enddate  = result
if( begdate = "NULL" )
   'set dfile 'mfile
   'set t    '1
   'getinfo date'
         begdate = result
endif
if( enddate = "NULL" )
   'set dfile 'mfile
   'getinfo tdim'
            tdim = result
   'set t  'tdim
   'getinfo date'
         enddate = result
endif

'run getenv "CLIMATE"'
         climate = result
if( begdate = begdateo & enddate = enddateo ) 
         climate = 'Actual'
endif

* Check for DIFF Contour Level Type
* ---------------------------------
'run getenv "DIFFTYPE"'
             DIFFTYPE = result

'run getenv "STD_DEV"'
             std_dev  = result

* Set GC Components
* -----------------
if( mname = 'SLP'   ) ; GC = DYN       ; name = slp   ; endif
if( mname = 'U'     ) ; GC = DYN       ; name = uwnd  ; endif
if( mname = 'V'     ) ; GC = DYN       ; name = vwnd  ; endif
if( mname = 'T'     ) ; GC = DYN       ; name = tmpu  ; endif
if( mname = 'Q'     ) ; GC = MOIST     ; name = sphu  ; endif
if( mname = 'RH2'   ) ; GC = MOIST     ; name = rh    ; endif
if( mname = 'OMEGA' ) ; GC = DYN       ; name = omega ; endif
if( mname = 'ZLE'   ) ; GC = DYN       ; name = hght  ; endif
if( mname = 'HE'    ) ; GC = DYN       ; name = hghte ; endif
if( mname = 'CHI'   ) ; GC = DYN       ; name = chi   ; endif
if( mname = 'PSI'   ) ; GC = DYN       ; name = psi   ; endif
if( mname = 'O3'    ) ; GC = CHEMISTRY ; name = o3    ; endif
if( mname = 'QLTOT' ) ; GC = AGCM      ; name = ql    ; endif
if( mname = 'QITOT' ) ; GC = AGCM      ; name = qi    ; endif

* Get Plotting Values from Resource File
* --------------------------------------
'run getenv "GEOSUTIL"'
         geosutil = result
PLOTRC = geosutil'/plots/grads_util/plot.rc'

fact    = 'NULL'
ccols   = 'NULL'
cbscale = 'NULL'
clab    = 'NULL'

                        'getresource 'PLOTRC' 'mname'_'GC'_'level'_FACTOR'
if( result = 'NULL' ) ; 'getresource 'PLOTRC' 'mname'_'GC'_FACTOR' ; endif
                                                           fact = result

                        'getresource 'PLOTRC' 'mname'_'GC'_'level'_TITLE'
if( result = 'NULL' ) ; 'getresource 'PLOTRC' 'mname'_'GC'_TITLE' ; endif
                                                           title = result

                        'getresource 'PLOTRC' 'mname'_'GC'_'level'_CINT'
if( result = 'NULL' ) ; 'getresource 'PLOTRC' 'mname'_'GC'_CINT' ; endif
                                                           cint = result

                        'getresource 'PLOTRC' 'mname'_'GC'_'level'_CCOLS'
if( result = 'NULL' ) ; 'getresource 'PLOTRC' 'mname'_'GC'_CCOLS' ; endif
                                                           ccols = result

                        'getresource 'PLOTRC' 'mname'_'GC'_'level'_CVALS'
if( result = 'NULL' ) ; 'getresource 'PLOTRC' 'mname'_'GC'_CVALS' ; endif
                                                           cvals = result

                        'getresource 'PLOTRC' 'mname'_'GC'_'level'_DCOLS'
if( result = 'NULL' ) ; 'getresource 'PLOTRC' 'mname'_'GC'_DCOLS' ; endif
                                                           dcols = result

                        'getresource 'PLOTRC' 'mname'_'GC'_'level'_DPCT'
if( result = 'NULL' ) ; 'getresource 'PLOTRC' 'mname'_'GC'_DPCT' ; endif
                                                           dpct = result

                        'getresource 'PLOTRC' 'mname'_'GC'_'level'_'DIFFTYPE'LEVS'
if( result = 'NULL' ) ; 'getresource 'PLOTRC' 'mname'_'GC'_'DIFFTYPE'LEVS' ; endif
                                                           dlevs = result

                        'getresource 'PLOTRC' 'mname'_'GC'_'level'_CLAB'
if( result = 'NULL' ) ; 'getresource 'PLOTRC' 'mname'_'GC'_CLAB' ; endif
                                                           clab = result

                        'getresource 'PLOTRC' 'mname'_'GC'_'level'_CBSCALE'
if( result = 'NULL' ) ; 'getresource 'PLOTRC' 'mname'_'GC'_CBSCALE' ; endif
                                                           cbscale = result

if( cbscale = 'NULL' ) ; cbscale =  0.8 ; endif
if( clab    = 'NULL' ) ; clab    =  on  ; endif

* Set Default Plotting Variables
********************************

                         dfact = 1
if( fact    = 'NULL' ) ;  fact = 1         ; endif
if( ccols   = 'NULL' ) ; ccols = "84 0 85" ; endif
say ''

* Remove possible BLANKS from FACT
* --------------------------------
dum = ''
length = getlength(fact)
i = 1
while( i<=length )
  bit = substr(fact,i,1)
  if( bit != ' ' )
      if( dum = '' )
          dum = bit
      else
          dum = dum''bit
      endif
  endif
i = i+1
endwhile
fact = dum

default_pct =  0.1

* Sea-Level Pressure
* ------------------
if( mname = 'SLP' )
        cvals = "988 1020"
        ccols = "84 0 85"
    std_cint  = 2  
    std_cvals = '4 8'
    std_dlevs = "-3 -2.6 -2.3 -2 -1.6 -1.3 -1 -.6  -.3 .3 .6 1 1.3 1.6 2 2.3 2.6 3"
  default_pct =  0.01
endif

* Temperature
* -----------
if( mname = 'T' )
    'getresource 'PLOTRC' T_DYN_'level'_CVALS' ; cvals = result
     std_cint  = 0.5  
     std_cvals = '1 2'
     std_dlevs = "-2.25 -2 -1.75 -1.5 -1.25 -1 -.75 -.5 -.25 .25 .5 .75 1 1.25 1.5 1.75 2 2.25"
   default_pct =  0.05
endif

* OMEGA
* -----
if( mname = 'OMEGA' )
     std_cint  = 0.5  
     std_cvals = '1 2'
     std_dlevs = "-2.25 -2 -1.75 -1.5 -1.25 -1 -.75 -.5 -.25 .25 .5 .75 1 1.25 1.5 1.75 2 2.25"
   default_pct =  0.5
endif

* Winds
* -----
if( mname = 'U' ) 
         cvals = "0"
     std_cint  = 1.0  
     std_cvals = '2 5'
     std_dlevs = "-2.25 -2 -1.75 -1.5 -1.25 -1 -.75 -.5 -.25 .25 .5 .75 1 1.25 1.5 1.75 2 2.25"
   default_pct =  0.5
endif

if( mname = 'V' ) 
         cvals = "0"
     std_cint  = 1.0  
     std_cvals = '2 5'
     std_dlevs = "-2.25 -2 -1.75 -1.5 -1.25 -1 -.75 -.5 -.25 .25 .5 .75 1 1.25 1.5 1.75 2 2.25"
   default_pct =  0.5
endif


* Specific Humidity
* -----------------
if( mname = 'Q' )

    'getresource 'PLOTRC' Q_MOIST_'level'_CVALS' ; cvals = result

     std_cint  = 0.2  
     std_cvals = '.4 1'
     std_dlevs = "-.9 -.8 -.7 -.6 -.5 -.4 -.3 -.2 -.1 .1 .2 .3 .4 .5 .6 .7 .8 .9"
   default_pct =  0.1

    if( level = 100 )
     std_cint  = 0.1  
     std_cvals = '.2 .4'
     std_dlevs = "-.45 -.4 -.35 -.3 -.25 -.2 -.15 -.1 -.05 .05 .1 .15 .2 .25 .3 .35 .4 .45"
    endif
    if( level = 150 )
     std_cint  = 2 
     std_cvals = '4 8'
     std_dlevs = "-9 -8 -7 -6 -5 -4  -3  -2  -1 1 2 3 4 5 6 7 8 9"
    endif
    if( level = 200 )
     std_cint  = 10 
     std_cvals = '10 40'
     std_dlevs = "-18 -16 -14 -12 -10 -8 -6 -4 -2 2 4 6 8 10 12 14 16 18"
    endif
    if( level = 250 )
     std_cint  = 20 
     std_cvals = '40 80'
     std_dlevs = "-45 -40 -35 -30 -25 -20 -15 -10 -5 5 10 15 20 25 30 35 40 45"
    endif
    if( level = 300 )
     std_cint  = 20 
     std_cvals = '40 80'
     std_dlevs = "-45 -40 -35 -30 -25 -20 -15 -10 -5 5 10 15 20 25 30 35 40 45"
    endif
endif

* Relative Humidity
* -----------------
if( mname = 'RH2' )

     std_cint  = 4.0  
     std_cvals = '8 12'
     std_dlevs = "-9 -8 -7 -6 -5 -4  -3  -2  -1 1 2 3 4 5 6 7 8 9"
   default_pct =  0.1

    if( level =  30 )
        dlevs = "-18 -16 -14 -12 -10 -8  -6  -4  -2 2 4 6 8 10 12 14 16 18"
    endif
    if( level =  50 )
        dlevs = "-27 -24 -21 -18 -15 -12  -9 -6  -3 3 6 9 12 15 18 21 24 27"
    endif
    if( level =  70 )
        dlevs = "-45 -40 -35 -30 -25 -20 -15 -10 -5 5 10 15 20 25 30 35 40 45"
    endif
    if( level = 100 )
        dlevs = "-45 -40 -35 -30 -25 -20 -15 -10 -5 5 10 15 20 25 30 35 40 45"
    endif
    if( level = 150 )
        dlevs = "-45 -40 -35 -30 -25 -20 -15 -10 -5 5 10 15 20 25 30 35 40 45"
    endif
    if( level = 200 )
        dlevs = "-90 -80 -70 -60 -50 -40 -30 -20 -10 10 20 30 40 50 60 70 80 90"
    endif
    if( level = 250 )
        dlevs = "-90 -80 -70 -60 -50 -40 -30 -20 -10 10 20 30 40 50 60 70 80 90"
    endif
    if( level = 300 )
        dlevs = "-90 -80 -70 -60 -50 -40 -30 -20 -10 10 20 30 40 50 60 70 80 90"
    endif
    if( level = 400 )
        dlevs = "-90 -80 -70 -60 -50 -40 -30 -20 -10 10 20 30 40 50 60 70 80 90"
    endif
    if( level = 500 )
        dlevs = "-45 -40 -35 -30 -25 -20 -15 -10 -5 5 10 15 20 25 30 35 40 45"
    endif
    if( level = 600 )
        dlevs = "-45 -40 -35 -30 -25 -20 -15 -10 -5 5 10 15 20 25 30 35 40 45"
    endif
    if( level = 700 )
        dlevs = "-45 -40 -35 -30 -25 -20 -15 -10 -5 5 10 15 20 25 30 35 40 45"
    endif
    if( level = 850 )
        dlevs = "-27 -24 -21 -18 -15 -12  -9 -6  -3 3 6 9 12 15 18 21 24 27"
    endif
    if( level = 925 )
        dlevs = "-18 -16 -14 -12 -10 -8  -6  -4  -2 2 4 6 8 10 12 14 16 18"
    endif
    if( level = 1000 )
        dlevs = "-18 -16 -14 -12 -10 -8  -6  -4  -2 2 4 6 8 10 12 14 16 18"
    endif
endif

* Heights
* -------
if( mname = 'ZLE' )
    if( level >= 300 )
    title  = 'Height (m)'
    else
    title  = 'Height (km) '
    endif

    if( level >= 300 )
   default_pct =  0.5
     std_cint  = 10.0  
     std_cvals = '30 60'
     std_dlevs = "-27 -24 -21 -18 -15 -12  -9  -6  -3 3 6 9 12 15 18 21 24 27"
    else
   default_pct =  0.5
     std_cint  = 0.02  
     std_cvals = '0.04 0.1'
     std_dlevs = "-.09 -.08 -.07 -.06 -.05 -.04 -.03 -.02 -.01 .01 .02 .03 .04 .05 .06 .07 .08 .09"
    endif

    if( level =  30  ) ; cvals = "23.0 23.80" ; endif
    if( level =  50  ) ; cvals = "19.8 20.60" ; endif
    if( level =  70  ) ; cvals = "17.8 18.60" ; endif
    if( level = 100  ) ; cvals = "15.4 16.60" ; endif
    if( level = 150  ) ; cvals = "13.0 14.20" ; endif
    if( level = 200  ) ; cvals = "11.0 12.40" ; endif
    if( level = 250  ) ; cvals = "9.8 10.80"  ; endif
    if( level = 300  ) ; cvals = "8500 9600"  ; endif
    if( level = 400  ) ; cvals = "6600 7500"  ; endif
    if( level = 500  ) ; cvals = "5220 5820"  ; endif
    if( level = 600  ) ; cvals = "4000 4400"  ; endif
    if( level = 700  ) ; cvals = "2800 3100"  ; endif
    if( level = 850  ) ; cvals = "1200 1500"  ; endif
    if( level = 925  ) ; cvals = "630 810"    ; endif
    if( level = 1000 ) ; cvals = "0 120"      ; endif
endif

* Eddy Heights
* ------------
if( mname = 'HE' )
    blak  = 1
    title  = 'Eddy Height (m)'
    cvals = "0"

   default_pct =  0.5
     std_cint  = 10.0  
     std_cvals = '30 60'
     std_dlevs = "-27 -24 -21 -18 -15 -12  -9  -6  -3 3 6 9 12 15 18 21 24 27"

    if( level = 30 )
        cint  = 60
        cvals = "-60 60"
        dlevs = "-90 -80 -70 -60 -50 -40 -30 -20 -10 10 20 30 40 50 60 70 80 90"
    endif
    if( level =  50 )
        cint  = 60
        cvals = "-60 60"
        dlevs = "-90 -80 -70 -60 -50 -40 -30 -20 -10 10 20 30 40 50 60 70 80 90"
    endif
    if( level =  70 )
        cint  = 60
        cvals = "-60 60"
        dlevs = "-90 -80 -70 -60 -50 -40 -30 -20 -10 10 20 30 40 50 60 70 80 90"
    endif
    if( level = 100 )
        cint  = 60
        cvals = "-60 60"
        dlevs = "-90 -80 -70 -60 -50 -40 -30 -20 -10 10 20 30 40 50 60 70 80 90"
    endif
    if( level = 150 )
        cint  = 60
        cvals = "-60 60"
        dlevs = "-90 -80 -70 -60 -50 -40 -30 -20 -10 10 20 30 40 50 60 70 80 90"
    endif
    if( level = 200 )
        cint  = 60
        cvals = "-60 60"
        dlevs = "-90 -80 -70 -60 -50 -40 -30 -20 -10 10 20 30 40 50 60 70 80 90"
    endif
    if( level = 250 )
        cint  = 60
        cvals = "-60 60"
        dlevs = "-90 -80 -70 -60 -50 -40 -30 -20 -10 10 20 30 40 50 60 70 80 90"
    endif
    if( level = 300 )
        cint  = 60
        cvals = "-60 60"
        dlevs = "-90 -80 -70 -60 -50 -40 -30 -20 -10 10 20 30 40 50 60 70 80 90"
    endif
    if( level = 400 )
        cint  = 50
        cvals = "-50 50"
        dlevs = "-90 -80 -70 -60 -50 -40 -30 -20 -10 10 20 30 40 50 60 70 80 90"
    endif
    if( level = 500 )
        cint  = 40
        cvals = "-40 40"
        dlevs = "-90 -80 -70 -60 -50 -40 -30 -20 -10 10 20 30 40 50 60 70 80 90"
    endif
    if( level = 600 )
        cint  = 30
        cvals = "-30 30"
        dlevs = "-90 -80 -70 -60 -50 -40 -30 -20 -10 10 20 30 40 50 60 70 80 90"
    endif
    if( level = 700 )
        cint  = 30
        cvals = "-30 30"
        dlevs = "-90 -80 -70 -60 -50 -40 -30 -20 -10 10 20 30 40 50 60 70 80 90"
    endif
    if( level = 850 )
        cint  = 20
        cvals = "-20 20"
        dlevs = "-90 -80 -70 -60 -50 -40 -30 -20 -10 10 20 30 40 50 60 70 80 90"
    endif
    if( level = 925 )
        cint  = 20
        cvals = "-20 20"
        dlevs = "-90 -80 -70 -60 -50 -40 -30 -20 -10 10 20 30 40 50 60 70 80 90"
    endif
    if( level = 1000 )
        cint  = 20
        cvals = "-20 20"
        dlevs = "-45 -40 -35 -30 -25 -20 -15 -10 -5 5 10 15 20 25 30 35 40 45"
    endif
endif

if( dpct    = 'NULL' ) ; dpct = default_pct ; endif
                     'd 'dpct
                         dpct = subwrd(result,4)

say 'After GETRESOURCE, CLEVS = 'cvals
say 'After GETRESOURCE, CINT  = 'cint
say 'After GETRESOURCE, FACT  = 'fact
say 'After GETRESOURCE, DPCT  = 'dpct

    dcols = "55  49  47  45  44  36  34  33  32  0  21  22  23  24  25  26  27  28 69"
std_dcols = "55  49  47  45  44  36  34  33  32  0  21  22  23  24  25  26  27  28 69"

* Plot Mean Field
* ---------------
'c'
'set display color white'
'set vpage off'
'set parea off'
'set grid  off'
'set mproj scaled'
'set frame on'
'set xlopts 1 3 .11'
'set ylopts 1 3 .11'
'rgbset'
'set rgb 84 204 204 204'
'set rgb 85 137 137 137'

'set dfile 'mfile
'setlons'
'setlats'
'set lev 'level
'set t 1'
'q dims'
say 'EXP DIMS Environment: 'result

'define qmod  = 'mvar''season'*'fact
'define maskm = 1 + qmod-qmod'

* Get Dimension of Environment
* ----------------------------
'getinfo lonmin'
         lonbeg = result
'getinfo lonmax'
         lonend = result
'getinfo latmin'
         latbeg = result
'getinfo latmax'
         latend = result

'getinfo dlat'
         dlatm = result
'getinfo dlon'
         dlonm = result

say 'Experiment Dimension: 'lonbeg' 'lonend' 'latbeg' 'latend
say '                DLAT: 'dlatm
say '                DLON: 'dlonm

* Determine DLAT & DLON of Analysis
* ---------------------------------
'set dfile 'ofile
'set z 1'
'set t 1'
'getinfo dlat'
         dlat = result
'getinfo dlon'
         dlon = result
'set gxout shaded'

say 'Analysis DLAT: 'dlat
say 'Analysis DLON: 'dlon

'set lon 'lonbeg' 'lonend
'set lat 'latbeg' 'latend
'define qobs  = 'ovar''season'*'fact

say 'define masko = regrid2( maskm,'dlon','dlat',bs_p1,'lonbeg','latbeg' )'
    'define masko = regrid2( maskm,'dlon','dlat',bs_p1,'lonbeg','latbeg' )'
    'define qobso = regrid2( qobs ,'dlon','dlat',bs_p1,'lonbeg','latbeg' )'
    'define qobso = maskout(qobso,masko)'

'set dfile 'mfile
'set lon 'lonbeg' 'lonend
'set lat 'latbeg' 'latend


* Make Plot
* ---------------------------------
'set vpage 0 8.5 0.0 11'
'set parea 1.5 7.0 7.70 10.50'
'set grads off'

if( std_dev = 'true' )
    cvals = std_cvals
    cint  = std_cint
endif

   'set gxout stat'
   'd qmod'
   qmodminmax = sublin(result,8)
   qmodmin    = subwrd(qmodminmax,4)
   qmodmax    = subwrd(qmodminmax,5)
   say 'QMOD_Max Value: 'qmodmax
   say 'QMOD_Min Value: 'qmodmin
   'set gxout shaded'
   'd abs('qmodmin')'
          aqmodmin = subwrd(result,4)
   'd abs('qmodmax')'
          aqmodmax = subwrd(result,4)
   if( aqmodmin > aqmodmax ) ; aqmodmax = aqmodmin ; endif
   say 'Absolute QMOD_MAX: ' aqmodmax

if( mname = "QLTOT" | mname = "QITOT" )
   'shades qmod 0 -cint 'cint' -minval 0'
   'd qmod'
else
   'set clevs 'cvals
   'set ccols 'ccols
   'set clab  'clab
   'd qmod'
endif

if( mname != "OMEGA" & mname != "RH2" & mname != "O3" & mname != "QLTOT" & mname != "QITOT" )
   'set gxout contour'
   'set ccolor 1'
   'set cint 'cint
   if( blak = 1 ) ; 'black' ;endif
   'd qmod'
endif

'set parea off'
'set vpage 0 8.5 0.0 11'
'set parea 1.5 7.0 4.30 7.10'
'set grads off'

   'set gxout stat'
   'd qobso'
   qobsminmax = sublin(result,8)
   qobsmin    = subwrd(qobsminmax,4)
   qobsmax    = subwrd(qobsminmax,5)
   say 'QOBS_Max Value: 'qobsmax
   say 'QOBS_Min Value: 'qobsmin
   'set gxout shaded'
   'd abs('qobsmin')'
          aqobsmin = subwrd(result,4)
   'd abs('qobsmax')'
          aqobsmax = subwrd(result,4)
   if( aqobsmin > aqobsmax ) ; aqobsmax = aqobsmin ; endif
   say 'Absolute QOBS_MAX: ' aqobsmax

if( mname = "QLTOT" | mname = "QITOT" )
   'shades qmod 0 -cint 'cint' -minval 0'
   'd qobso'
else
   'set clevs 'cvals
   'set ccols 'ccols
   'd qobso'
endif

if( mname != "OMEGA" & mname != "RH2" & mname != "O3" & mname != "QLTOT" & mname != "QITOT" )
   'set gxout contour'
   'set ccolor 1'
   'set cint 'cint
   if( blak = 1 ) ; 'black' ;endif
   'd qobso'
else
   'cbarn -vert -snum 0.8 -ymid 6.4 -scaley 0.9 '
endif

'set parea off'
'set vpage 0 8.5 0.0 11'
'set parea 1.5 7.0 0.90 3.70'
'set grads off'
'getinfo lon'
         lon = result
'set dfile 'mfile
'set lev 'level
'set t 1'
'q dims'
say 'DIMS before Final Regridding: 'result

'define obsg = regrid2(  qobs,1,1,bs_p1,'lon',-90)'
'define modg = regrid2(  qmod,1,1,bs_p1,'lon',-90)'
'define mask = regrid2( maskm,1,1,bs_p1,'lon',-90)'
'define obsg = maskout( obsg,mask )'

'set gxout shaded'

   'define delg = modg-obsg'
   'set gxout stat'
   'd delg'
   qdifminmax = sublin(result,8)
   qdifmin    = subwrd(qdifminmax,4)
   qdifmax    = subwrd(qdifminmax,5)
   say 'QDIF_Max Value: 'qdifmax
   say 'QDIF_Min Value: 'qdifmin
   'set gxout shaded'
   'd abs('qdifmin')'
          aqdifmin = subwrd(result,4)
   'd abs('qdifmax')'
          aqdifmax = subwrd(result,4)
   if( aqdifmin > aqdifmax ) ; aqdifmax = aqdifmin ; endif
   say 'Absolute QDIF_MAX: ' aqdifmax

'run getenv "CINTDIFF"'
             CINTDIFF  = result
if( mname = "O3" ) ; CINTDIFF = ON ; endif

if( CINTDIFF = 'NULL' & std_dev != 'true' &  mname != "QLTOT" & mname != "QITOT" )
   'set clevs 'dlevs
   'set ccols 'dcols
else
   'stats delg'
     avgdif = subwrd(result,1)
     stddif = subwrd(result,2)

say 'avgdif = 'avgdif
say 'stddif = 'stddif
     dqmax  =  stddif/3

     dqrel = dqmax / aqmodmax  * 100

say 'dqrel = 'dqrel
    'getint 'dqrel*100
             dqrel = result/100
say 'dqrel = 'dqrel

     say 'Absolute DQMAX: 'dqmax'  QMOD_MAX: 'aqmodmax
     say 'Relative Percent Difference: 'dqrel' (100*DQMAX/QMOD_MAX)'
     say ' Default Percent Difference for  Plots: 'dpct

     if( dqrel < dpct )
         dqrel = dpct
     endif
         dqmax = dqrel * aqmodmax / 100
         say 'Setting Diff CINT using Relative Percent Difference: 'dqrel'%'

   if( dqmax > 0 )
      'd log10('dqmax')'
       n = subwrd(result,4)
   else
       n = 0
   endif
   say '    Log Factor: 'n
   if( n<0 ) ; n = n-2 ; endif
   'getint 'n
            n = result
   if( n>0 )
       if( n<=2 )
           n = 0
        else
           n = n+2
        endif
   endif
      'd 'dqmax'/1e'n
       cint = subwrd(result,4)
      'shades 'cint
      'define delg = delg/1e'n
       dfact = "10**"n
       cbscale = 0.55
   say 'DIFF Scaling Factor: 'n
   say 'CINT: 'cint
endif

'd delg'
'cbarn -snum 'cbscale' -xmid 4.25 -ymid 0.4'

      'set gxout stat'
      'd maskout(delg,abs(obsg))'
         dqminmax = sublin(result,8)
         dqmin    = subwrd(dqminmax,4)
         dqmax    = subwrd(dqminmax,5)
      say 'DQMin Value: 'dqmin
      say 'DQMax Value: 'dqmax
      'set gxout shaded'

'stats maskout(modg,abs(obsg))'
 avgmod = subwrd(result,1)
 stdmod = subwrd(result,2)
'stats maskout(obsg,abs(obsg))'
 avgobs = subwrd(result,1)
 stdobs = subwrd(result,2)
'stats maskout(delg,abs(obsg))'
 avgdif = subwrd(result,1)
 stddif = subwrd(result,2)

'set vpage off'
'set string 1 l 4'
'set strsiz .065'
'draw string 0.05 0.08 ( EXPID:  'expid' )'

'set string 1 c 6'
'set strsiz .14'
'draw string 4.25 10.85 'level'-mb 'title
'set strsiz .10'

if( std_dev = 'true' )
'draw string 4.25 10.62 'mdesc'  'season' ('nmod')  Stand.Dev.'
else
'draw string 4.25 10.62 'mdesc'  'season' ('nmod')'
endif
'draw string 4.25 7.22 'odesc'  'season' ('nobs')  ('climate')'
'set strsiz .11'
if( dfact = 1 )
'draw string 4.25 3.80 'level'-mb  Difference (Top-Middle)'
else
'draw string 4.25 3.80 'level'-mb  Difference (Top-Middle) (x 'dfact')'
endif

                date = getdate (begdate)
bmnthm = subwrd(date,1)
byearm = subwrd(date,2)
                date = getdate (enddate)
emnthm = subwrd(date,1)
eyearm = subwrd(date,2)
                date = getdate (begdateo)
bmntho = subwrd(date,1)
byearo = subwrd(date,2)
                date = getdate (enddateo)
emntho = subwrd(date,1)
eyearo = subwrd(date,2)

'set string 1 l 4'
'set strsiz .08'

'draw string 0.050 10.25 Beg: 'bmnthm' 'byearm
'draw string 0.050 10.10 End: 'emnthm' 'eyearm
'draw string 0.050 9.85  Max: 'qmodmax
'draw string 0.050 9.70  Min: 'qmodmin
'draw string 0.050 9.40 Mean: 'avgmod
'draw string 0.050 9.25  Std: 'stdmod

'draw string 0.050 6.85 Beg: 'bmntho' 'byearo
'draw string 0.050 6.70 End: 'emntho' 'eyearo
'draw string 0.050 6.45  Max: 'qobsmax
'draw string 0.050 6.30  Min: 'qobsmin
'draw string 0.050 6.00 Mean: 'avgobs
'draw string 0.050 5.85  Std: 'stdobs

'draw string 0.050 3.45 Beg: 'bmntho' 'byearo
'draw string 0.050 3.30 End: 'emntho' 'eyearo
'draw string 0.050 3.05  Max: 'qdifmax
'draw string 0.050 2.90  Min: 'qdifmin
'draw string 0.050 2.60 Mean: 'avgdif
'draw string 0.050 2.45  Std: 'stddif

if( CINTDIFF != 'NULL' )
   'set strsiz .07'
   'draw string 0.050 1.77 Plot represents'
   'draw string 0.050 1.62 values > 'dqrel' %'
   'draw string 0.050 1.47 Relative Difference'
   'draw string 0.050 1.32 ( DQ/QMax )'
endif

'set clab on'

if( std_dev = 'true' & 1 = 0 )
if( debug = "debug" )
    say "Hit ENTER to continue..."
    pull flag
endif

* Plot STD Field
* --------------
'c'
'set display color white'
'set vpage off'
'set parea off'
'set grid  off'
'set mproj scaled'
'set frame on'
'set xlopts 1 3 .11'
'set ylopts 1 3 .11'
'rgbset'
'set rgb 84 204 204 204'
'set rgb 85 137 137 137'

'q dims'
say result

'define qmod = 'mvar''season'std'
'define qobs = 'ovar''season'std'

'set vpage 0 8.5 0.0 11'
'set parea 1.5 7.0 7.70 10.50'
'set grads off'
'set gxout shaded'
'set clevs 'std_cvals
'set ccols 0 84 85'
'd qmod'
'set gxout contour'
'set ccolor 1'
'set cint 'std_cint
if( blak = 1 ) ; 'black' ;endif
'd qmod'
'set parea 0 8.5 7.0 11'
'set parea off'

'set vpage 0 8.5 0.0 11'
'set parea 1.5 7.0 4.30 7.10'
'set grads off'
'set gxout shaded'
'set clevs 'std_cvals
'set ccols 0 84 85'
'd qobs'
'set gxout contour'
'set ccolor 1'
'set cint 'std_cint
if( blak = 1 ) ; 'black' ;endif
'd qobs'
'set parea off'

'set vpage 0 8.5 0.0 11'
'set parea 1.5 7.0 0.90 3.70'
'set grads off'
'getinfo lon'
         lon = result
'define obsg = regrid2( qobs,1,1,bs_p1,'lon',-90)'
'define modg = regrid2( qmod,1,1,bs_p1,'lon',-90)'

'set gxout shaded'
'set clevs 'std_dlevs
'set ccols 'std_dcols
'd modg-obsg'
'cbarn -snum 0.75'

'stats maskout(modg,abs(obsg))'
 avgmod = subwrd(result,1)
 stdmod = subwrd(result,2)
'stats maskout(obsg,abs(obsg))'
 avgobs = subwrd(result,1)
 stdobs = subwrd(result,2)
'stats maskout(modg-obsg,abs(obsg))'
 avgdif = subwrd(result,1)
 stddif = subwrd(result,2)

'set vpage off'
'set string 1 c 6'
'set strsiz .11'
'draw string 4.25 10.9 'mdesc
'draw string 4.25 10.6 'level'-mb 'title' 'season' ('nmod') STD.DEV.'
'draw string 4.25 7.2 'odesc'  'season' ('climate')'
'draw string 4.25 3.80 'level'-mb  Difference (Top-Middle)'

'set string 1 c 4'
'set strsiz .08'
'draw string 0.52 10  Mean: 'avgmod
'draw string 0.52 9.8  Std: 'stdmod
'draw string 0.52 6.6 Mean: 'avgobs
'draw string 0.52 6.4  Std: 'stdobs
'draw string 0.52 3.2 Mean: 'avgdif
'draw string 0.52 3.0  Std: 'stddif

                date = getdate (begdate)
bmnthm = subwrd(date,1)
byearm = subwrd(date,2)
                date = getdate (enddate)
emnthm = subwrd(date,1)
eyearm = subwrd(date,2)
                date = getdate (begdateo)
bmntho = subwrd(date,1)
byearo = subwrd(date,2)
                date = getdate (enddateo)
emntho = subwrd(date,1)
eyearo = subwrd(date,2)

'set string 1 l 4'
'set strsiz .08'
'draw string 7.10 10  Beg: 'bmnthm' 'byearm
'draw string 7.10 9.8 End: 'emnthm' 'eyearm
'draw string 7.10 6.6 Beg: 'bmntho' 'byearo
'draw string 7.10 6.4 End: 'emntho' 'eyearo

'myprint -name 'output'/horiz_'oname'_'name'_'level'_std.'season

endif


'set mproj latlon'
return

function getdate (date,month,year)
       num = 1
       bit = substr(date,num,1)
while( bit != '' )
       num = num+1
       bit = substr(date,num,1)
endwhile
       loc = num-7
     month = substr(date,loc  ,3)
      year = substr(date,loc+3,4)
return month' 'year

function getlength (string)
tb = ""
i = 1
while (i<=80)
blank = substr(string,i,1)
if( blank = tb )
length = i-1
i = 81
else
i = i + 1
endif
endwhile
return length

