initial='Valid time: ' * Define the time step _n_time=6 _time_arr.1=m_02.ctl _time_arr.2=m_03.ctl _time_arr.3=m_04.ctl _time_arr.4=m_05.ctl _time_arr.5=m_06.ctl _time_arr.6=m_07.ctl _initime='$INIT_TIME' _ntime_arr.1=60 _ntime_arr.2=60 _ntime_arr.3=60 _ntime_arr.4=64 _ntime_arr.5=60 _ntime_arr.6=64 openFiles() *some settings 'set display color white' 'set mpdset hires' 'set map 1 1 7' 'set grads off' 'c' * draw precipitation i=1 while (i<=_n_time) _it=i * display precipitation if (i>1) im1=i-1 'c' 'set gxout shaded' rain_color() 'display APCPsfc.'i * '- APCPsfc.'im1 'cbarn' titles('Precipitation +' _time_arr.i ' hours') 'printim precip_' _initime '_' _time_arr.i '.gif' * display T_max 'c' 'set gxout shaded' t_color() 'set cint 2' 'display TMAX2m.'i' - 273.15' 'cbarn' titles('Tmax +' _time_arr.i ' hours') 'printim T_max_' _initime '_' _time_arr.i '.gif' * display T_min 'c' 'set gxout shaded' 'set cint 2' t_color() 'display TMIN2m.'i' - 273.15' 'cbarn' titles('Tmin +' _time_arr.i ' hours') 'printim T_min_' _initime '_' _time_arr.i '.gif' endif * display T_2m 'c' 'set gxout shaded' 'set cint 2' t_color() 'display TMP2m.'i' - 273.15' 'cbarn' titles('T 2m +' _time_arr.i ' hours') 'printim T_2m_' _initime '_' _time_arr.i '.gif' * display surface Categorical rain [yes=1;no=0] (will be Cloud total here) 'c' 'set gxout shaded' cloud_color() 'set cint 7' 'display CRAINsfc.'i 'cbarn' titles('Categorical Rain +' _time_arr.i ' hours') 'printim Categorical_Rain_' _initime '_' _time_arr.i '.gif' * Display U10m, v10m, pmsl 'c' pi=i 'set rbrange 990 1035' 'set gxout shaded' 'set cint 2' 'display PRMSLmsl.'pi'/100' 'cbarn' 'set gxout contour' 'set cint 2' 'display PRMSLmsl.'pi'/100' titles('Pressure MSL, Wind 10m +' _time_arr.i ' hours') 'set gxout vector' 'set ccolor 0' 'set cthick 7' 'display skip(UGRD10m.'i',5);VGRD10m.'i 'printim puv_' _initime '_' _time_arr.i '.gif' i=i+1 endwhile closeFiles() 'quit' ******************************************* *** Some functions *** function ps() 'set lev 1000' 'set gxout contour' 'set cint 2' 'd PRESmsl.6/100' return function at850() 'set lev 850' 'set gxout contour' 'set cint 4' 'd gpprs.6/10' return function openFiles() i=1 while (i<=_n_time) 'open '_time_arr.i say 'open '_time_arr.i i=i+1 endwhile return function closeFiles() i=_n_time while(i>0) 'close 'i i=i-1 endwhile return function toprn(fname) 'enable print ' fname 'print' 'disable print' return function titles(tit) 'set font 4' 'set strsiz 0.2' 'set string 1 c 4' 'draw string 5.5 8.0 'tit 'draw string 5.5 0.2 '_initime' +' _time_arr._it'h' * copyrigh() return function copyrigh() 'set font 2' 'set strsiz 0.1' 'set string 2 c 1' 'draw string 5.5 8.3 The AVN forecast Products 0.5 deg. - '_initime return function rain_color() * Set color scale for rain display * White to Light blue 'set rgb 16 255 255 255' 'set rgb 17 200 210 255' 'set rgb 18 175 180 255' 'set rgb 19 120 150 255' 'set rgb 20 75 120 255' 'set rgb 21 20 90 255' * Dark Green to yellow 'set rgb 22 0 180 50' 'set rgb 23 50 195 40' 'set rgb 24 100 210 30' 'set rgb 25 150 225 20' 'set rgb 26 200 240 10' 'set rgb 27 255 255 0' * Orange to Dark Red 'set rgb 28 255 170 0' 'set rgb 29 255 0 0' 'set rgb 30 170 0 0' 'set rgb 31 80 0 0' 'set ccols 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ' 'set clevs 1 2 3 5 7 10 20 30 50 70 100 200 300 500 700 ' return function t_color() * Set color scale for temperature display set_palete(16,20,66,255,255,66,00,255) set_palete(20,24,66,00,255,00,127,00) set_palete(24,28,00,127,00,255,255,00) set_palete(28,32,255,255,00,255,00,00) set_palete(32,38,255,00,00,66,00,00) 'set ccols 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38' 'set clevs 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42' return function cloud_color() * Color from black to while i=0 start_col=16 while (i<=10) col_num=start_col+i grey_level=math_int(i*255/10) 'set rgb 'col_num' 'grey_level' 'grey_level' 'grey_level i=i+1 endwhile 'set ccols 16 17 18 19 20 21 22 23 24 25 26 ' 'set clevs 10 20 30 40 50 60 70 80 90 100 ' return function cloud_color() * Color from black to while i=0 start_col=16 string1="" string2="" while (i<100) col_num=start_col+i grey_level=math_int(i*255/10) 'set rgb 'col_num' 'grey_level' 'grey_level' 'grey_level string1=string1 ' ' col_num string2=string2 ' ' i+1 i=i+1 string1=" " endwhile string="" 'set ccols ' string1 'set clevs ' string2 return function topo_color() 'set rgb 16 0 255 0' 'set rgb 17 97 254 0' 'set rgb 18 137 252 0' 'set rgb 19 164 249 0' 'set rgb 20 196 241 0' 'set rgb 21 255 244 165' 'set rgb 22 255 238 125' 'set rgb 23 255 226 113' 'set rgb 24 243 226 86' 'set rgb 25 237 214 74' 'set rgb 26 231 202 62' 'set rgb 27 225 190 50' 'set rgb 28 219 178 38' 'set rgb 29 213 166 26' 'set rgb 30 207 154 14' 'set rgb 31 201 142 2' 'set rgb 32 195 130 0' 'set rgb 33 189 118 0' 'set rgb 34 183 106 0' 'set rgb 35 177 94 0' 'set rgb 36 171 82 0' "set mpdset hires" col1 = "16 17 18 19 20 21 22 23 24 25 26 27 " lev1 ="0 100 200 300 400 500 600 800 900 1000 1250 1500 " col2 = "28 29 30 31 32 33 34 35 36 " lev2 ="1750 2000 2250 2500 3000 3500 4000 5000 " levels = lev1%lev2 colors = col1%col2 "set clevs " levels "set ccols " colors return function set_palete(color1,color2,r1,g1,b1,r2,g2,b2) i=color1 num_color=color2-color1+1 say 'num_color: ' num_color dr=(r2-r1)/num_color dg=(g2-g1)/num_color db=(b2-b1)/num_color while(i<=color2) r=r1 + math_int ((i-color1)*dr) g=g1 + math_int ((i-color1)*dg) b=b1 + math_int ((i-color1)*db) 'set rgb 'i' ' r ' 'g' 'b say 'set rgb 'i' ' r ' 'g' 'b i=i+1 endwhile return