: ${pp:?} case $pp in 99) tpp=100 ;; *) tpp=$pp ;; esac case $pp in 99) range=0,1000 ;; 85) range=1000,2000 ;; 70) range=2400,3400 ;; 50) range=5000,6000 ;; 30) range=8800,9800 ;; 05) range=19700,20700 ;; esac cat < z.gs tpp = '$tpp' 'open stat${pp}.ctl' 'set gxout print' 'd max(max(zmax, lat=-90, lat=90), lon=0, lon=360)' max = tail(result) 'd min(min(zmin, lat=-90, lat=90), lon=0, lon=360)' min = tail(result) 'set gxout contour' 'set vpage 0.5 8.5 6 11' 'set cint 100' 'set grads off' 'd zmin' 'draw title 2012 Minimum Height (gpm) ' tpp '0 hPa' 'set string 1 bc' 'draw string 4.0 0.1 global min = ' min 'set vpage 0.5 8.5 1 6' 'set cint 100' 'set grads off' 'd zmax' 'draw title 2012 Maximum Height (gpm) ' tpp '0 hPa' 'draw string 4.0 0.1 global max = ' max 'printim z1.png white' 'c' 'set vpage 0.5 8.5 6 11' 'set cint 100' 'set grads off' 'd zmax-zmin' 'draw title 2012 Height Range (gpm) ' tpp '0 hPa' 'set vpage 0.5 8.5 1 6' 'set clevs 0.1 1 2 5 10 15 20 30 50 70 90' 'set grads off' 'd pano' 'draw title 2012 ~P[$range] (%) ' tpp '0 hPa' 'printim z2.png white' function tail(s) n = 1 while sublin(s, n + 1) != '' n = n + 1 endwhile return sublin(s, n) GRADS grads -pbxc 'z.gs' rm -f z.gs mv z1.png mami${pp}.png mv z2.png rapo${pp}.png