function main(args) * Parse the arguments: date, hour if (args = '') prompt 'Enter forecast date (example, 20110717) --> ' pull date prompt 'Enter forecast hour (example, 00 or 06 or 12 or 18) --> ' pull hour else date = subwrd(args,1) hour = subwrd(args,2) endif 'reinit' 'open ecmwf_grib.ctl' * Get info from the descriptor file 'q ctlinfo' _ctl = result _undef = getctl(undef) _tdef = getctl(tdef) _zdef = getctl(zdef) maps = 25 * Get the Time axis info tsize = subwrd(_tdef,2) _t1 = 1 ;* 2nd half of timeseries _t2 = 45 tsize = _t2 - _t1 + 1 'set t '_t1' '_t2 'q dims' times = sublin(result,5) _time1 = subwrd(times,6) _time2 = subwrd(times,8) _tdim = _time1' '_time2 tincr = subwrd(_tdef,5) _tdef = 'tdef 'tsize' linear '_time1' 'tincr huh = subwrd(_tdef,4) **************************************** * 500 Height **************************************** 'set annot 0 5' i = 1 while ( i ymx) ; ymx = zmx ; endif if (zmn < ymn) ; ymn = zmn ; endif dy = ymx-ymn ymx = ymx + 0.08 * dy ymn = ymn - 0.08 * dy if ((ymx-ymn)/2.2 < 1) incr = (ymx-ymn)/4 incr = 0.01 * (math_nint(100*incr)) else incr = math_nint((ymx-ymn)/4) endif 'set vrange 'ymn' 'ymx 'set ylint 'incr if (ymn=0 & ymx=0 & incr=0) 'set vrange -.9 .9' 'set ylint 1' endif 'set gxout line' return * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * function rh2vrng(f1) 'set gxout stat' 'd 'f1 data = sublin(result,8) ymn = subwrd(data,4) ymx = subwrd(data,5) if (ymn < 20) miny = 0 'set ylevs 20 40 60 80' endif if (ymn >= 20 & ymn < 30) miny = 20 'set ylevs 30 50 70 90' endif if (ymn >= 30 & ymn < 40) miny = 30 'set ylevs 40 50 60 70 80 90' endif if (ymn >= 40 & ymn < 50) miny = 40 'set ylevs 50 60 70 80 90' endif if (ymn >= 50 & ymn < 60) miny = 50 'set ylevs 60 70 80 90' endif if (ymn >= 60) miny = 60 'set ylevs 70 80 90' endif 'set vrange 'miny' 'ymx+3 return * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * function getctl(handle) line = 1 found = 0 while (!found) info = sublin(_ctl,line) if (subwrd(info,1)=handle) _handle = info found = 1 endif line = line + 1 endwhile return _handle * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * function getgrid(dodsvar,myvar) 'set lon '_xdim 'set lat '_ydim 'set lev '_zgrd 'set time '_tdim * Write the variable to a file 'set gxout fwrite' 'set fwrite dummy.dat' 'd 'dodsvar 'disable fwrite' * Write a descriptor file rc = write(dummy.ctl,'dset ^dummy.dat') rc = write(dummy.ctl,_undef,append) rc = write(dummy.ctl,'xdef 1 linear 1 1',append) rc = write(dummy.ctl,'ydef 1 linear 1 1',append) rc = write(dummy.ctl,_zdef,append) rc = write(dummy.ctl,_tdef,append) rc = write(dummy.ctl,'vars 1',append) rc = write(dummy.ctl,'dummy '_newzsize' -999 dummy',append) rc = write(dummy.ctl,'endvars',append) rc = close (dummy.ctl) * Open the dummy file, define variable, close dummy file 'open dummy.ctl' line = sublin(result,2) dummyfile = subwrd(line,8) 'set dfile 'dummyfile 'set lon 1' 'set lat 1' 'set lev '_zbot' '_ztop 'set time '_time1' '_time2 'define 'myvar' = dummy.'dummyfile 'close 'dummyfile 'set dfile 1' return * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * function getetarh(dodsvar,myvar) * swap out original pressure vars tmpzgrd = _zgrd tmpzdef = _zdef tmpzbot = _zbot tmpztop = _ztop tmpzsize = _newzsize * retrieve rh data over the rh pressure range _zgrd = _rhzgrd _zdef = _trhzdef _ztop = _rhztop _zbot = _rhzbot _newzsize = _trhzsize getgrid(dodsvar,tmprh) * swap in original pressure vars _zgrd = tmpzgrd _zdef = tmpzdef _zbot = tmpzbot _ztop = tmpztop _newzsize = tmpzsize 'set lon '_xdim 'set lat '_ydim 'set lev '_rhzgrd 'set time '_tdim * Write the variable to a file 'set gxout fwrite' 'set fwrite dummy.dat' t = _t1 while (t <= _t2) 'set t 't z = 1 while (z <= _newrhzsize) level = subwrd(_rhlevs,z) 'set lev 'level 'd tmprh' z = z + 1 endwhile t = t + 1 endwhile 'disable fwrite' * Write a descriptor file rc = write(dummy.ctl,'dset ^dummy.dat') rc = write(dummy.ctl,_undef,append) rc = write(dummy.ctl,'xdef 1 linear 1 1',append) rc = write(dummy.ctl,'ydef 1 linear 1 1',append) rc = write(dummy.ctl,_rhzdef,append) rc = write(dummy.ctl,_tdef,append) rc = write(dummy.ctl,'vars 1',append) rc = write(dummy.ctl,'dummy '_newrhzsize' -999 dummy',append) rc = write(dummy.ctl,'endvars',append) rc = close (dummy.ctl) * Open the dummy file, define variable, close dummy file 'open dummy.ctl' line = sublin(result,2) dummyfile = subwrd(line,8) 'set dfile 'dummyfile 'set lon 1' 'set lat 1' 'set lev '_rhzbot' '_rhztop 'set time '_time1' '_time2 'q dims' 'define 'myvar' = dummy.'dummyfile 'close 'dummyfile 'set dfile 1' return * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * function getseries(dodsvar,myvar,level) 'set lon '_xdim 'set lat '_ydim 'set lev 'level' 'level 'set time '_tdim * Write the variable to a file 'set fwrite dummy.dat' 'set gxout fwrite' 'd 'dodsvar 'disable fwrite' * Write a descriptor file rc = write(dummy.ctl,'dset ^dummy.dat') rc = write(dummy.ctl,_undef,append) rc = write(dummy.ctl,'xdef 1 linear 1 1',append) rc = write(dummy.ctl,'ydef 1 linear 1 1',append) rc = write(dummy.ctl,'zdef 1 linear 1 1',append) rc = write(dummy.ctl,_tdef,append) rc = write(dummy.ctl,'vars 1',append) rc = write(dummy.ctl,'dummy 0 -999 dummy',append) rc = write(dummy.ctl,'endvars',append) rc = close(dummy.ctl) * Open the dummy file, define variable, close dummy file 'open dummy.ctl' line = sublin(result,2) dummyfile = subwrd(line,8) 'set dfile 'dummyfile 'set lon 1' 'set lat 1' 'set lev 'level 'set time '_time1' '_time2 'define 'myvar' = dummy.'dummyfile 'close 'dummyfile 'set dfile 1' 'set gxout contour' return