* daily.gs v1.1 * * generally grads needs 3 environment variables to be set up * (1) path, (2) gaddir, (3) gascrp, and location of control files. * * However for demo purposes, assume the 3 variables are not set. * Works by cd-ing to directory with (1) grads, (2) grad scripts * (3) grads data files and running grads from that directory, * and (4) the location of the control files. * * disk='/cdrom' disk='e:' day='14mar93' mon='mar' year='93' latr='-90 90' lonr='-180 180' maptype='' mpvals='' file=mslp var=mslp proj='latlon' print='off' metafile='' cint='default' factor=0.01 offset=0 clab='on' while(1) 'reinit' 'clear' say ' ' say ' ' say ' ' say ' ' say ' ' say ' ' say ' ' say ' ' say ' ' say ' ' say ' Daily-Averaged Fields v1.1' say ' ' say 'v) change variable (' file ')' say 't) change time (' day ')' say '+) change time to next day' say '-) change time to previous day' say 'l) change lat-lon of display (lat: ' latr ' lon:' lonr ')' say 'p) change projection of display (' proj ')' say 'c) change contour interval (' cint ')' say 'C) change display contour label (' clab ')' say 'f) change scaling factors (display = ' factor '*' file ' + ' offset ')' say 's) save next display to metafile (' print ')' say 'd) display: ' file ' ' day say 'D) display (no shading): ' file ' ' day say ' ' say 'q) return to main menu' say ' ' say ' ' prompt 'Enter Choice: ' pull c xc='x' c if (c = 't' | c = 'T') say 'Enter new date: ' say ' only daily data for 1993' say ' the date must be in the form of ddmmmyy' say ' where dd is the day of the month (2 digits)' say ' mmm is first 3 letters of the month; example jan, feb, mar ..' say ' yy is year (last 2 digits)' prompt 'enter date: (ex. 04mar93) ' pull day mon=substr(day,3,3) year=substr(day,6,2) say ' ' say 'you entered date=' day ' month=' mon ' year=19' year if (year != 93) say 'Only data for 1993 .. use menu t option again' say ' ' day='14mar93' mon='mar' year='93' endif prompt 'press return for menu ' pull x endif if (c = 'd' | c = 'D') 'open ' disk '/daily/' file '.ctl' 'set lat ' latr 'set lon ' lonr 'set time ' day 'set mproj ' proj if (maptype != '') 'set mpdset ' maptype endif if (mpvals != '') 'set mpvals ' mpvals endif 'set clab ' clab 'clear' 'set grads off' if (cint != 'default') 'set cint ' cint endif if (c = 'd') 'set gxout shaded' 'set cterp off' 'set map 0' 'd ' factor ' * ' var ' + ' offset 'run cbar.gs' endif 'set gxout contour' if (cint != 'default') 'set cint ' cint endif 'd ' factor ' * ' var ' + ' offset 'draw title ' day ' ' file if (print = 'on') 'enable print ' metafile 'print' 'disable print' print='off' endif prompt 'press return for menu ' pull x endif if (c = 'l' | c = 'L') prompt 'enter latitude range: (-90 90): ' pull latr if (latr = '') latr='-90 90' endif prompt 'enter longitude range: (-180 180): ' pull lonr if (lonr = '') lonr='-180 180' endif endif if (c = 's' | c = 'S') print='on' say ' ' say 'GrADS can write graphics metafiles which can be' say ' printed from Windows (gv.exe)' say ' saved in the Windows clipboard (gv.exe)' say ' converted to a postscript file (gxps.exe)' say ' or converted to an EPS file (gxeps.exe)' say ' ' prompt 'enter name of new meta file (dos: c:/meta.gmf) ' pull metafile if (metafile = '') metafile = 'c:/meta.gmf' endif endif if (xc = 'x+' | xc = 'x-') 'open ' disk '/daily/mslp.ctl' 'set time ' day 'q dims' line1=sublin(result,5) itime=subwrd(line1,9) itime=itime-1 if ('x' c = 'x+') itime=itime+2 endif 'set t ' itime 'q time' line1=sublin(result,1) word=subwrd(line1,3) day=substr(word,4,9) mon=substr(day,3,3) year=substr(day,8,2) day=substr(day,1,2) mon year endif if (c = 'c') prompt 'enter new contour interval: ' pull cint if (cint = '') cint='default' endif endif if (c = 'C') if (clab = 'on') clab='off' else clab='on' endif endif if (c = 'f' | c = 'f') say ' ' say ' Common conversions' say ' ' say ' factor offset' say 'K->C 1 -273.16' say 'K->F 1.8 -459.7' say 'kg/m*2/sec -> mm/day 86400 0' say 'kg/m*2/sec -> inches/day 3402 0' say 'W/m*2/sec -> mm/day (evap) 0.03456 0' say 'Pa -> mb 0.01 0' say 'Pa -> in Hg 0.0002953 0' say 'm -> foot 3.28 0' say 'm/s -> km/hr 3.6 0' say 'm/s -> knot 1.94 0' say 'm/s -> mi./hr 2.24 0' say ' ' prompt 'enter factor: ' pull factor if (factor = '') factor=1 endif prompt 'enter offset: ' pull offset if (offset = '') offset=0 endif endif if (c = 'p' | c = 'P') say 'change projection of the display:' say ' nps (north-pole stereographic)' say ' sps (sorth-pole stereographic)' say ' lola (lat-lon)' say ' usa, usa2 or n_amer' say ' s_amer, africa, europe, asia, aust' prompt 'enter projection: ' pull proj latr='' maptype='' mpvals='' if (proj = 'nps' | proj = 'NPS') proj='nps' latr='20 90' lonr='-270 90' endif if (proj = 'sps' | proj = 'SPS') proj='sps' latr='-90 -20' lonr='-270 90' endif if (proj = 'usa' | proj = 'USA') maptype='mres' proj='latlon' latr='24 52' lonr='-127 -65' endif if (proj = 'usa2' | proj = 'USA2') maptype='mres' proj='nps' latr='15 80' lonr='-150 -45' mpvals='-125 -75 25 55' endif if (proj = 'n_amer' | proj = 'N_AMER') maptype='mres' proj='nps' latr='5 90' lonr='-270 90' mpvals='-135 -65 18 85' endif if (proj = 's_amer' | proj = 'S_AMER') maptype='mres' proj='latlon' latr='-60 20' lonr='-90 -30' endif if (proj = 'africa' | proj = 'AFRICA') maptype='mres' proj='latlon' latr='-40 50' lonr='-20 60' endif if (proj = 'europe' | proj = 'EUROPE') maptype='mres' proj='nps' latr='5 90' lonr='-180 180' mpvals='-10 50 30 75' endif if (proj = 'asia' | proj = 'ASIA') maptype='mres' proj='latlon' latr='0 80' lonr='40 170' endif if (proj = 'aust' | proj = 'AUST' | proj = 'oz') maptype='mres' proj='latlon' latr='-50 0' lonr='100 180' endif if (latr = '') proj='latlon' latr='-90 90' lonr='-180 180' endif endif if (c = 'v' | c = 'v') say ' ' say ' ' say ' ' say ' ' say ' ' say 'Variables: (subset)' say ' ' say 't u v z temp. (K), u-wind (m/s), v-wind (m/s), geo. height (m)' say ' at (850,700,500,200,30 mb)' say 'q specific humidity (kg/kg) at (850,700,500 mb)' say 'w dP/dt (omega) (Pa/s) at 500 mb' say 'mslp mean-sea-level pressure (Pa)' say ' ' say 'prate model-predicted precipitation (kg/m**2/s)' say 'u10m, v10m 10m u-wind, v-wind (m/s)' say 't2m, q2m 2m temp., specific humidity (kg/kg)' say 'lhtfl, shtfl latent/sensible heat flux at surface (W/m**2)' say 'tcldcov model-predicted cloud cover (%)' say 'uflx, vflx negative of surface wind stress (N/m**2)' say 'ulwrftoa model-predicted outgoing long wave radiation (OLR) (W/m**2)' say 'ipv potential vorticity at 450, 330, 315 K (m**2/s/kg)' say ' ' prompt 'enter one of the above ' pull var file=var cint='default' factor=1 offset=0 if (var = 'w') file=w500 endif if (var = 'q') prompt 'enter pressure level (850, 700, 500) ' pull plev file=var plev endif if (var = 't' | var = 'u' | var = 'v' | var = 'z') prompt 'enter pressure level (850, 700, 500, 200, 30) ' pull plev file=var plev endif if (var = 'ipv') prompt 'enter pressure level (450, 330, 315) ' pull plev file=var plev endif if (var = '') var=z file=z500 endif endif if (c = 'q' | c = 'Q') return endif endwhile