function ke (args) expid = subwrd(args,1) output = subwrd(args,2) debug = subwrd(args,3) * Initialize * ---------- 'reinit' 'set display color white' 'set clab off' 'c' * Get RAD Budget Variables * ------------------------ numvar = 0 'run getvar OLR IRRAD' qname.1 = subwrd(result,1) qfile.1 = subwrd(result,2) scale.1 = subwrd(result,3) expdsc = subwrd(result,4) alias.1 = radlw numvar = numvar + 1 'run getvar RSR SOLAR' qname.2 = subwrd(result,1) qfile.2 = subwrd(result,2) scale.2 = subwrd(result,3) alias.2 = radsw numvar = numvar + 1 rc = 0 n = 1 while( n<=numvar ) if( qname.n = 'NULL' ) ; rc = rc + 1 ; endif n = n + 1 endwhile if( rc = numvar ) ; return ; endif * Get Environment Variables * ------------------------- 'run getenv "GEOSUTIL"' geosutil = result 'set dfile 'qfile.1 'getinfo undef' undef = result * Experiment Datasets * ------------------- n = 1 while( n<=numvar ) 'set dfile 'qfile.n 'setx' 'sety' 'sett' 'set z 1' 'set undef 'undef if( qname.n != 'NULL' ) 'make_ts -FUNCTION 'qname.n' -NAME 'alias.n 'set x 1' 'set y 1' 'set z 1' 'sett' 'seasonal 'alias.n'g' endif n = n+1 endwhile 'set dfile 'qfile.1 'sett' 'getinfo tmin' tmin = result 'set t 'tmin 'getinfo date' mdatemin = result 'sett' 'getinfo tmax' tmax = result 'set t 'tmax 'getinfo date' mdatemax = result say 'EXP DATEMIN: 'mdatemin say 'EXP DATEMAX: 'mdatemax 'set x 1' 'set y 1' 'set z 1' 'set t 1' 'getinfo year' year = result 'define radlwave = ave(radlwgclim,time=JAN'year',time=DEC'year')' 'define radswave = ave(radswgclim,time=JAN'year',time=DEC'year')' 'd radlwave' radlwave = subwrd(result,4) 'd radswave' radswave = subwrd(result,4) 'run setenv RADLWAVE 'radlwave 'run setenv RADSWAVE 'radswave 'sett' * Make Time-Series Plot * --------------------- flag = "" while ( flag = "" ) 'run 'geosutil'/plots/tseries/rad_1 'expid' 'expdsc' 'output if( debug = "debug" ) say "Hit ENTER to repeat plot" say "Type 'next' for next plot, 'done' for next field" pull flag else flag = "next" endif 'c' endwhile * Make Seasonal Cycle Plot * ------------------------ flag = "" while ( flag = "" ) 'run 'geosutil'/plots/tseries/rad_2 'expid' 'expdsc' 'output if( debug = "debug" ) say "Hit ENTER to repeat plot" say "Type 'next' for next plot, 'done' for next field" pull flag else flag = "next" endif 'c' endwhile ***************************************************************** **** Loop over Possible Experiment Datasets for Comparison **** ***************************************************************** 'run setenv TBEG NULL' 'run setenv TEND NULL' '!/bin/mv HISTORY.T HISTORY.Tmp' 'run getenv "CMPEXP"' cmpexp = result num = 1 dummy = get_cmpexp (cmpexp,num) exp = subwrd(dummy,1) type = subwrd(dummy,2) while( exp != 'NULL' ) say ' ' say 'Comparing with: 'exp '!chckfile 'exp'/.HOMDIR' 'run getenv CHECKFILE' CHECKFILE = result if( CHECKFILE != 'NULL' ) '!/bin/cp `cat 'exp'/.HOMDIR`/HISTORY.rc .' else '!/bin/cp 'exp'/HISTORY.rc .' endif '!remove CHECKFILE.txt' '!cat HISTORY.rc | sed -e "s/,/ , /g" | sed -e "s/*/@/g" > HISTORY.T' 'run getvar OLR IRRAD 'exp oname.1 = subwrd(result,1) obsfile.1 = subwrd(result,2) oscale.1 = subwrd(result,3) obsdsc.1 = subwrd(result,4) obsnam.1 = subwrd(result,5) oalias.1 = oradlw 'run getvar RSR SOLAR 'exp oname.2 = subwrd(result,1) obsfile.2 = subwrd(result,2) oscale.2 = subwrd(result,3) obsdsc.2 = subwrd(result,4) obsnam.2 = subwrd(result,5) oalias.2 = oradsw if( oname.1 != 'NULL' & oname.2 != 'NULL' ) * Verification Datasets * --------------------- n = 1 while( n<=numvar ) 'set dfile 'obsfile.n 'setx' 'sety' 'sett' 'set z 1' 'set undef 'undef 'make_ts -FUNCTION 'oname.n' -NAME 'oalias.n 'set x 1' 'set y 1' 'set z 1' 'sett' 'seasonal 'oalias.n'g' n = n+1 endwhile 'set dfile 'obsfile.1 'set x 1' 'set y 1' 'set z 1' 'set t 1' 'getinfo year' year = result 'define oradlwave = ave(oradlwgclim,time=JAN'year',time=DEC'year')' 'define oradswave = ave(oradswgclim,time=JAN'year',time=DEC'year')' 'd oradlwave' oradlwave = subwrd(result,4) 'd oradswave' oradswave = subwrd(result,4) 'run setenv ORADLWAVE 'oradlwave 'run setenv ORADSWAVE 'oradswave 'sett' 'getinfo tmin' tmin = result 'set t 'tmin 'getinfo date' odatemin = result 'sett' 'getinfo tmax' tmax = result 'set t 'tmax 'getinfo date' odatemax = result say 'OBS DATEMIN: 'odatemin say 'OBS DATEMAX: 'odatemax if( (odatemin <= mdatemin) & (odatemax >= mdatemax) ) datemin = mdatemin datemax = mdatemax endif if( (odatemin <= mdatemin) & (mdatemax >= odatemax) ) datemin = odatemin datemax = mdatemax endif if( (mdatemin <= odatemin) & (odatemax >= mdatemax) ) datemin = mdatemin datemax = odatemax endif * datemin = mdatemin *if( datemin > odatamin ) * datemin = odatemin *endif * datemax = mdatemax *if( datemax < odatamax ) * datemax = odatemax *endif 'set time 'datemin' 'datemax say 'TOT DATEMIN: 'datemin say 'TOT DATEMAX: 'datemax * Make Time-Series Plot * --------------------- flag = "" while ( flag = "" ) 'run 'geosutil'/plots/tseries/rad_3 'expid' 'qfile.1' 'expdsc' 'obsnam.1' 'obsdsc.1' 'obsfile.1' 'output if( debug = "debug" ) say "Hit ENTER to repeat plot" say "Type 'next' for next plot, 'done' for next field" pull flag else flag = "next" endif 'c' endwhile * Make Seasonal Cycle Plot * ------------------------ flag = "" while ( flag = "" ) 'run 'geosutil'/plots/tseries/rad_4 'expid' 'qfile.1' 'expdsc' 'obsnam.1' 'obsdsc.1' 'obsfile.1' 'output if( debug = "debug" ) say "Hit ENTER to repeat plot" say "Type 'next' for next plot, 'done' for next field" pull flag else flag = "next" endif 'c' endwhile * End IF-TEST for RADLW & RADSW Data * ---------------------------------- endif * Check next Comparison Experiment Dataset * ---------------------------------------- num = num + 1 dummy = get_cmpexp (cmpexp,num) exp = subwrd(dummy,1) type = subwrd(dummy,2) endwhile '!/bin/mv HISTORY.Tmp HISTORY.T' ******************************************************************* **** Loop over Possible Verification Datasets for Comparison **** ******************************************************************* 'run setenv TBEG NULL' 'run setenv TEND NULL' 'getnumrc 'geosutil'/plots/tseries' rcinfo = result numrc = subwrd( rcinfo,1 ) k = 1 while( k <= numrc ) loc = k + 1 rcfile = subwrd( rcinfo,loc ) 'run getobs OLR IRRAD 'rcfile oname.1 = subwrd(result,1) obsfile.1 = subwrd(result,2) oscale.1 = subwrd(result,3) obsdsc.1 = subwrd(result,4) obsnam.1 = subwrd(result,5) oalias.1 = oradlw 'run getobs RSR SOLAR 'rcfile oname.2 = subwrd(result,1) obsfile.2 = subwrd(result,2) oscale.2 = subwrd(result,3) obsdsc.2 = subwrd(result,4) obsnam.2 = subwrd(result,5) oalias.2 = oradsw if( oname.1 != 'NULL' & oname.2 != 'NULL' ) * Verification Datasets * --------------------- n = 1 while( n<=numvar ) 'set dfile 'obsfile.n 'setx' 'sety' 'sett' 'set z 1' 'set undef 'undef 'make_ts -FUNCTION 'oname.n' -NAME 'oalias.n 'set x 1' 'set y 1' 'set z 1' 'sett' 'seasonal 'oalias.n'g' n = n+1 endwhile 'set dfile 'obsfile.1 'set x 1' 'set y 1' 'set z 1' 'set t 1' 'getinfo year' year = result 'define oradlwave = ave(oradlwgclim,time=JAN'year',time=DEC'year')' 'define oradswave = ave(oradswgclim,time=JAN'year',time=DEC'year')' 'd oradlwave' oradlwave = subwrd(result,4) 'd oradswave' oradswave = subwrd(result,4) 'run setenv ORADLWAVE 'oradlwave 'run setenv ORADSWAVE 'oradswave 'sett' 'getinfo tmin' tmin = result 'set t 'tmin 'getinfo date' odatemin = result 'sett' 'getinfo tmax' tmax = result 'set t 'tmax 'getinfo date' odatemax = result say 'OBS DATEMIN: 'odatemin say 'OBS DATEMAX: 'odatemax if( (odatemin <= mdatemin) & (odatemax >= mdatemax) ) datemin = mdatemin datemax = mdatemax endif if( (odatemin <= mdatemin) & (mdatemax >= odatemax) ) datemin = odatemin datemax = mdatemax endif if( (mdatemin <= odatemin) & (odatemax >= mdatemax) ) datemin = mdatemin datemax = odatemax endif * datemin = mdatemin *if( datemin > odatamin ) * datemin = odatemin *endif * datemax = mdatemax *if( datemax < odatamax ) * datemax = odatemax *endif 'set time 'datemin' 'datemax say 'TOT DATEMIN: 'datemin say 'TOT DATEMAX: 'datemax * Make Time-Series Plot * --------------------- flag = "" while ( flag = "" ) 'run 'geosutil'/plots/tseries/rad_3 'expid' 'qfile.1' 'expdsc' 'obsnam.1' 'obsdsc.1' 'obsfile.1' 'output if( debug = "debug" ) say "Hit ENTER to repeat plot" say "Type 'next' for next plot, 'done' for next field" pull flag else flag = "next" endif 'c' endwhile * Make Seasonal Cycle Plot * ------------------------ flag = "" while ( flag = "" ) 'run 'geosutil'/plots/tseries/rad_4 'expid' 'qfile.1' 'expdsc' 'obsnam.1' 'obsdsc.1' 'obsfile.1' 'output if( debug = "debug" ) say "Hit ENTER to repeat plot" say "Type 'next' for next plot, 'done' for next field" pull flag else flag = "next" endif 'c' endwhile * End IF-TEST for RADLW & RADSW Data * ---------------------------------- endif * End Loop over Verification RC Files * ----------------------------------- k = k + 1 endwhile return * Get Next EXP from CMPEXP List * ----------------------------- function get_cmpexp (cmpexp,num) exp = subwrd(cmpexp,num) len = get_length (exp) bit = substr(exp,len-1,1) if( bit = ":" ) type = substr(exp,len,1) exp = substr(exp,1,len-2) else type = M endif return exp' 'type function get_length (string) tb = "" i = 1 while (i<=256) blank = substr(string,i,1) if( blank = tb ) length = i-1 i = 999 else i = i + 1 endif endwhile return length