load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" begin ; *************************************************** ; read parameter_list ; *************************************************** if (isfilepresent("~/.ncl_preferences")) then parameter = asciiread("~/.ncl_preferences",75,"string") delete(parameter@_FillValue) else print(" ") print("Please copy '.ncl_preferences' into your $home dircetory") print(" ") exit end if ; *************************************************** ; set up default parameter values and strings if not assigned in prompt or parameter list ; *************************************************** if ( .not. isvar("file_in") ) then ; path+name of input file if (parameter(7) .EQ. "input file") then print(" ") print("Please provide input file 'file_in = ' either in prompt or parameter_list") print(" ") exit else file_in = parameter(7) end if end if if ( .not. isvar("format_out") ) then ; format of output file format_out = "x11" if (parameter(9) .NE. "x11") then format_out = parameter(9) end if end if if ( .not. isvar("file_out") ) then ; path+name of output file file_out = "test" if (parameter(11) .NE. "test_ts") then file_out = parameter(11) end if end if if ( .not. isvar("no_columns") ) then ; number of plots in one row no_columns = 1 if (parameter(17) .NE. "1") then no_columns = stringtointeger(parameter(17)) end if end if if ( .not. isvar("no_lines") ) then ; number of plot-lines on one sheet no_lines = 2 if (parameter(19) .NE. "2") then no_lines = stringtointeger(parameter(19)) end if end if if ( .not. isvar("combine") ) then ; color of lines combine = 0 if (parameter(23) .NE. "0") then combine = stringtointeger(parameter(23)) if (stringtointeger(parameter(23)) .NE. 1) then print(" ") print("Please set 'combine' to 0 or 1") print(" ") exit end if end if end if if (combine .EQ. 1) then if( .not. isvar("c_var") ) then if (parameter(27) .EQ. "c_variables") then print(" ") print("Please select variables for overlaying ('c_var')") print(" ") exit else c_var=parameter(27) end if end if end if if ( .not. isvar("black") ) then ; color of lines black = 0 if (parameter(31) .NE. "0") then black = stringtointeger(parameter(31)) if (stringtointeger(parameter(31)) .NE. 1) then print(" ") print("Please set 'black' to 0 or 1") print(" ") exit end if end if end if if ( .not. isvar("dash") ) then ; pattern of lines dash = 0 if (parameter(29) .NE. "0") then dash = stringtointeger(parameter(29)) if (stringtointeger(parameter(29)) .NE. 1) then print(" ") print("Please set 'dash' to 0 or 1") print(" ") exit end if end if end if if ( .not. isvar("over") ) then ; switches overlaying plots on over = 0 if (stringtointeger(parameter(73)) .NE. 0) then over = stringtointeger(parameter(73)) if (stringtointeger(parameter(73)) .NE. 1) then print(" ") print("Please set 'over' to 0 or 1") print(" ") exit end if end if end if ; *************************************************** ; open input file ; *************************************************** f=addfile( file_in,"r") vNam = getfilevarnames(f) print(" ") print("Variable on netCDF file: " + vNam) print(" ") dim = dimsizes(vNam) if (dim .EQ. 0) then print(" ") print("There are no data on file") print(" ") end if do varn = dim-1,0,1 if ( isStrSubset( vNam(varn), "time") .OR. isStrSubset( vNam(varn), "NORM")) then varn=varn-1 continue end if if (vNam(varn) .EQ. "u") z_u = f->zu break else if (vNam(varn) .EQ. "v")then z_u = f->zv break else if(vNam(varn) .EQ. "pt")then z_u = f->zpt break else if(vNam(varn) .EQ. "vpt")then z_u = f->zvpt break else if(vNam(varn) .EQ. "lpt")then z_u = f->zlpt break else if(vNam(varn) .EQ. "q")then z_u = f->zq break else if(vNam(varn) .EQ. "qv")then z_u = f->zqv break else if(vNam(varn) .EQ. "ql")then z_u = f->zql break else if(vNam(varn) .EQ. "rho")then z_u = f->zrho break else if(vNam(varn) .EQ. "s")then z_u = f->zs break else if(vNam(varn) .EQ. "sa")then z_u = f->zsa break else if(vNam(varn) .EQ. "e")then z_u = f->ze break else if(vNam(varn) .EQ. "es")then z_u = f->zes break else if(vNam(varn) .EQ. "km")then z_u = f->zkm break else if(vNam(varn) .EQ. "kh")then z_u = f->zkh break else if(vNam(varn) .EQ. "l")then z_u = f->zl break else if(vNam(varn) .EQ. "us2")then z_u = f->zus2 break else if(vNam(varn) .EQ. "vs2")then z_u = f->zvs2 break else if(vNam(varn) .EQ. "pts2")then z_u = f->zpts2 break else if(vNam(varn) .EQ. "wsususodz")then z_u = f->zwsususodz break else if(vNam(varn) .EQ. "wspsodz")then z_u = f->zwspsodz break else if(vNam(varn) .EQ. "wpeodz")then z_u = f->zwpeodz break end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if varn=varn-1 end do do varn=dim-1,0,1 if ( isStrSubset( vNam(varn), "time") .OR. isStrSubset( vNam(varn), "NORM")) then varn=varn-1 continue end if if (vNam(varn) .EQ. "w") z_w = f->zw break else if (vNam(varn) .EQ. "wpup")then z_w = f->zwpup break else if(vNam(varn) .EQ. "wsus")then z_w = f->zwsus break else if(vNam(varn) .EQ. "wu")then z_w = f->zwu break else if(vNam(varn) .EQ. "wpvp")then z_w = f->zwpvp break else if(vNam(varn) .EQ. "wsvs")then z_w = f->zwsvs break else if(vNam(varn) .EQ. "wv")then z_w = f->zwv break else if(vNam(varn) .EQ. "wptpp")then z_w = f->zwptpp break else if(vNam(varn) .EQ. "wspts")then z_w = f->zwspts break else if(vNam(varn) .EQ. "wpt")then z_w = f->zwpt break else if(vNam(varn) .EQ. "wsptsBC")then z_w = f->zwsptsBC break else if(vNam(varn) .EQ. "wptBC")then z_w = f->zwptBC break else if(vNam(varn) .EQ. "wpvptp")then z_w = f->zwpvptp break else if(vNam(varn) .EQ. "wsvpts")then z_w = f->zwsvpts break else if(vNam(varn) .EQ. "wvpt")then z_w = f->zwvpt break else if(vNam(varn) .EQ. "wpqp")then z_w = f->zwpqp break else if(vNam(varn) .EQ. "wsqs")then z_w = f->zwsqs break else if(vNam(varn) .EQ. "wq")then z_w = f->zwq break else if(vNam(varn) .EQ. "wpqvp")then z_w = f->zwpqvp break else if(vNam(varn) .EQ. "wsqvs")then z_w = f->zwsqvs break else if(vNam(varn) .EQ. "wqv")then z_w = f->zwqv break else if(vNam(varn) .EQ. "wpsp")then z_w = f->zwpsp break else if(vNam(varn) .EQ. "wsss")then z_w = f->zwsss break else if(vNam(varn) .EQ. "ws")then z_w = f->zws break else if(vNam(varn) .EQ. "wpsap")then z_w = f->zwpsap break else if(vNam(varn) .EQ. "wssas")then z_w = f->zwssas break else if(vNam(varn) .EQ. "wsa")then z_w = f->zwsa break else if(vNam(varn) .EQ. "wses")then z_w = f->zwses break else if(vNam(varn) .EQ. "ws2")then z_w = f->zws2 break else if(vNam(varn) .EQ. "ws3")then z_w = f->zws3 break else if(vNam(varn) .EQ. "Sw")then z_w = f->zSw break else if(vNam(varn) .EQ. "ws2pts")then z_w = f->zws2pts break else if(vNam(varn) .EQ. "wspts2")then z_w = f->zwspts2 break end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if end if varn=varn-1 end do if ( .not. isvar("z_u") ) then zu = 0 else zu = 1 end if if ( .not. isvar("z_w") ) then zw = 0 else zw = 1 end if if (zu .EQ. 0 .AND. zw .EQ. 0) then do varn=0,dim-1 if ( isStrSubset( vNam(varn), "time") .OR. isStrSubset( vNam(varn), "NORM")) then check = False else if (.not. isvar("var")) then check = True if (parameter(21) .NE. "variables") then var=parameter(21) check = isStrSubset( var,","+vNam(varn)+"," ) end if else check = isStrSubset( var,","+vNam(varn)+"," ) end if end if if (check) z = f->$vNam(varn+1)$ dimz = dimsizes(z) break end if end do end if dimz = dimsizes(z_w) dimz = dimsizes(z_u) t_all = f->time nt = dimsizes(t_all) ; **************************************************** ; start of time step and different types of mistakes that could be done ; **************************************************** if ( .not. isvar("start_time_step") ) then start_time_step = 1 if (parameter(13) .NE. "1") then if (parameter(13) .LE. "1") print(" ") print("Begin at least with time step 2") print(" ") exit end if if (stringtointeger(parameter(13)) .GE. nt) print(" ") print("'start_time_step' = "+ parameter(13) +" is greater than available time steps = " + (nt-1)) print(" ") exit end if start_time_step = stringtointeger(parameter(13))-1 end if else if (start_time_step .LE. 0) print(" ") print("Begin at least with time step 1") print(" ") exit end if if (start_time_step .GE. nt) print(" ") print("'start_time_step' = "+ start_time_step +" is greater than available time steps = " + (nt-1)) print(" ") exit end if start_time_step = start_time_step - 1 end if ; **************************************************** ; end of time step and different types of mistakes that could be done ; **************************************************** if ( .not. isvar("end_time_step") ) then end_time_step = nt-1 if (parameter(15) .NE. "nt") then if (parameter(15) .LE. "0") print(" ") print("'end_time_step' = "+parameter(15)+ " is too small; 'end_time_step' should be at least 1 ") print(" ") exit end if if (stringtointeger(parameter(15)) .GE. nt) print(" ") print("'end_time_step' = "+ parameter(15) +" is greater than available time steps = " + (nt-1)) print(" ") exit end if if (stringtointeger(parameter(15)) .LT. stringtointeger(parameter(13)) ) print(" ") print("'end_time_step' = "+ parameter(15) +" is lower than 'start_time_step' = "+parameter(13)) print(" ") exit end if end_time_step = stringtointeger(parameter(15)) end if else if (end_time_step .LE. 0) print(" ") print("'end_time_step' = "+end_time_step+ " is too small; 'end_time_step' should be at least 1 ") print(" ") exit end if if (end_time_step .GE. nt) print(" ") print("'end_time_step' = "+ end_time_step +" is greater than available time steps = "+(nt-1)) print(" ") exit end if if (end_time_step .LT. start_time_step) print(" ") print("'end_time_step' = "+end_time_step +" is lower than 'start_time_step' = "+start_time_step) print(" ") exit end if end_time_step = end_time_step - 1 end if ; **************************************************** ; set up legend and colors ; **************************************************** legend_label=new(nt,double) do p=start_time_step,end_time_step legend_label(p-start_time_step)=t_all(p) end do np = end_time_step-start_time_step if ( black .eq. 0 ) then res=True res@xyLineColors = ispan(2,237,235/np) end if ; *************************************************** ; set up recourses ; *************************************************** res@gsnDraw = False res@gsnFrame = False res@gsnPaperOrientation = "portrait" res@gsnPaperWidth = 8.27 res@gsnPaperHeight = 11.69 res@gsnPaperMargin = 0.79 res@txFont = "helvetica" res@tiMainFont = "helvetica" res@tiXAxisFont = "helvetica" res@tiYAxisFont = "helvetica" res@tmXBLabelFont = "helvetica" res@tmYLLabelFont = "helvetica" res@lgLabelFont = "helvetica" res@tmLabelAutoStride = True res@pmLegendDisplayMode = "Always" res@pmLegendSide = "Top" res@xyExplicitLegendLabels = legend_label res@pmLegendParallelPosF = 1.15 res@pmLegendOrthogonalPosF = -1.0 res@pmLegendWidthF = 0.12 res@pmLegendHeightF = 0.3 res@lgLabelFontHeightF = .02 res@txFontHeightF = 0.02 res@tiXAxisFontHeightF = 0.02 res@tiYAxisFontHeightF = 0.02 res@tiXAxisString = " " res@tiYAxisString = "Height [z]" if ( dash .eq. 0 ) then res@xyMonoDashPattern = True end if resP = True resP@txFont = "helvetica" resP@txString = f@title resP@txFuncCode = "~" resP@txFontHeightF = 0.014 ; *************************************************** ; set up graphics for plot ; *************************************************** plot = new(dim,graphic) plot_ = new(dim,graphic) if (combine .EQ. 1) then if ( .not. isvar("number_comb") ) then if (parameter(25) .EQ. "0") then print(" ") print("Please set 'number_comb' to 2 or 3 if you would like to overlay 2 or 3 variables in one plot") print(" ") exit else number_comb=stringtointeger(parameter(25)) plot_o = new(number_comb,graphic) end if else if(number_comb .EQ. 2 .OR. number_comb .EQ. 3) then plot_o = new(number_comb,graphic) else print(" ") print("Please set 'number_comb' to 2 or 3 if you would like to overlay 2 or 3 variables in one plot") print(" ") exit end if end if label=new(number_comb,string) color_o=new(number_comb,integer) mini=new(number_comb,float) maxi=new(number_comb,float) end if wks=gsn_open_wks(format_out,file_out) gsn_define_colormap(wks,"rainbow+white") ; *************************************************** ; indicate plot number ; *************************************************** if (combine .EQ. 1) then n = 1 else n = 0 end if ; *************************************************** ; set up minimum and maximum height ; *************************************************** if (.not. isvar("min_z")) min_z=0 if (stringtointeger(parameter(33)) .NE. 0) then if (stringtointeger(parameter(33)) .GE. max(z_u) ) then print(" ") print("Minimum of height ('min_z'="+stringtointeger(parameter(33))+") is greater than available heights (="+max(z_u)+")") print(" ") exit end if if (stringtointeger(parameter(33)) .LT. 0 ) then print(" ") print("Begin minimum of height 'min_z' with 0") print(" ") exit end if min_z=stringtointeger(parameter(33)) end if else if (min_z .GE. max(z_u) ) then print(" ") print("Minimum of height ('min_z'="+min_z+") is greater than available heights (="+max(z_u)+")") print(" ") exit end if if (min_z .LT. 0 ) then print(" ") print("Begin minimum of height 'min_z' with 0") print(" ") exit end if end if if (.not. isvar("max_z")) max_z=max(z_u) if ((parameter(35)) .NE. "max(z_u)") then if (stringtofloat(parameter(35)) .GE. max(z_u) ) then print(" ") print("Maximum of height ('max_z'="+parameter(35)+") is greater than available heights (="+max(z_u)+")") print(" ") exit end if if (stringtointeger(parameter(35)) .LE. 0 ) then print(" ") print("Maximum of height 'max_z' should be at least 1") print(" ") exit end if max_z=stringtointeger(parameter(35)) end if else if (max_z .GE. max(z_pr) ) then print(" ") print("Maximum of height ('max_z'="+max_z+") is greater than available heights (="+max(z_u)+")") print(" ") exit end if if (max_z .LE. 0 ) then print(" ") print("Maximum of height 'max_z' should be at least 1") print(" ") exit end if end if ; *************************************************** ; read data and create plots ; *************************************************** do ti = start_time_step, end_time_step if( t_all(ti) .lt. 10^36) then start_time_step = ti break end if end do data = new((/dim,(end_time_step-start_time_step)+1,dimz/),float) data_0 = new((/(end_time_step-start_time_step)+1,dimz/),float) data_0 = 0.0 t = new((/(end_time_step-start_time_step)+1,dimz/),float) t = 0.0 unit = new(dim,string) if (over .EQ. 1) then plot_u = gsn_csm_xy(wks,t,data_0(:,:),res) miniu = 1.E27 maxiu =-1.E27 plot_v = gsn_csm_xy(wks,t,data_0(:,:),res) miniv = 1.E27 maxiv =-1.E27 plot_w = gsn_csm_xy(wks,t,data_0(:,:),res) miniw = 1.E27 maxiw =-1.E27 plot_pt = gsn_csm_xy(wks,t,data_0(:,:),res) minipt = 1.E27 maxipt =-1.E27 plot_vpt = gsn_csm_xy(wks,t,data_0(:,:),res) minivpt = 1.E27 maxivpt =-1.E27 plot_lpt = gsn_csm_xy(wks,t,data_0(:,:),res) minilpt = 1.E27 maxilpt =-1.E27 plot_q = gsn_csm_xy(wks,t,data_0(:,:),res) miniq = 1.E27 maxiq =-1.E27 plot_qv = gsn_csm_xy(wks,t,data_0(:,:),res) miniqv = 1.E27 maxiqv =-1.E27 plot_ql = gsn_csm_xy(wks,t,data_0(:,:),res) miniql = 1.E27 maxiql =-1.E27 plot_rho = gsn_csm_xy(wks,t,data_0(:,:),res) plot_s = gsn_csm_xy(wks,t,data_0(:,:),res) plot_sa = gsn_csm_xy(wks,t,data_0(:,:),res) plot_e = gsn_csm_xy(wks,t,data_0(:,:),res) minie = 1.E27 maxie =-1.E27 plot_es = gsn_csm_xy(wks,t,data_0(:,:),res) minie = 1.E27 maxie =-1.E27 plot_km = gsn_csm_xy(wks,t,data_0(:,:),res) minie = 1.E27 maxie =-1.E27 plot_kh = gsn_csm_xy(wks,t,data_0(:,:),res) minie = 1.E27 maxie =-1.E27 plot_l = gsn_csm_xy(wks,t,data_0(:,:),res) plot_wpup = gsn_csm_xy(wks,t,data_0(:,:),res) miniwpup = 1.E27 maxiwpup =-1.E27 plot_wsus = gsn_csm_xy(wks,t,data_0(:,:),res) miniwsus = 1.E27 maxiwsus =-1.E27 plot_wu = gsn_csm_xy(wks,t,data_0(:,:),res) miniwu = 1.E27 maxiwu =-1.E27 plot_wpvp = gsn_csm_xy(wks,t,data_0(:,:),res) miniwpvp = 1.E27 maxiwpvp =-1.E27 plot_wsvs = gsn_csm_xy(wks,t,data_0(:,:),res) miniwsvs = 1.E27 maxiwsvs =-1.E27 plot_wv = gsn_csm_xy(wks,t,data_0(:,:),res) miniwv = 1.E27 maxiwv =-1.E27 plot_wpptp = gsn_csm_xy(wks,t,data_0(:,:),res) miniwpptp = 1.E27 maxiwpptp =-1.E27 plot_wspts = gsn_csm_xy(wks,t,data_0(:,:),res) miniwspts = 1.E27 maxiwspts =-1.E27 plot_wpt = gsn_csm_xy(wks,t,data_0(:,:),res) miniwpt = 1.E27 maxiwpt =-1.E27 plot_wsptsBC = gsn_csm_xy(wks,t,data_0(:,:),res) miniwsptsBC = 1.E27 maxiwsptsBC =-1.E27 plot_wptBC = gsn_csm_xy(wks,t,data_0(:,:),res) miniwptBC = 1.E27 maxiwptBC =-1.E27 plot_wpvptp = gsn_csm_xy(wks,t,data_0(:,:),res) miniwpvptp = 1.E27 maxiwpvptp =-1.E27 plot_wsvpts = gsn_csm_xy(wks,t,data_0(:,:),res) miniwsvpts = 1.E27 maxiewsvpts=-1.E27 plot_wvpt = gsn_csm_xy(wks,t,data_0(:,:),res) miniwvpt = 1.E27 maxiwvpt =-1.E27 plot_wpqp = gsn_csm_xy(wks,t,data_0(:,:),res) miniwpqp = 1.E27 maxiwpqp =-1.E27 plot_wsqs = gsn_csm_xy(wks,t,data_0(:,:),res) miniwsqs = 1.E27 maxiwsqs =-1.E27 plot_wq = gsn_csm_xy(wks,t,data_0(:,:),res) miniwq = 1.E27 maxiwq =-1.E27 plot_wpqvp = gsn_csm_xy(wks,t,data_0(:,:),res) miniwpqvp = 1.E27 maxiwpqvp =-1.E27 plot_wsqvs = gsn_csm_xy(wks,t,data_0(:,:),res) miniwsqvs = 1.E27 maxiwsqvs =-1.E27 plot_wqv = gsn_csm_xy(wks,t,data_0(:,:),res) miniwqv = 1.E27 maxiwqv =-1.E27 plot_wpsp = gsn_csm_xy(wks,t,data_0(:,:),res) miniwpsp = 1.E27 maxiwpsp =-1.E27 plot_wsss = gsn_csm_xy(wks,t,data_0(:,:),res) miniwsss = 1.E27 maxiwsss =-1.E27 plot_ws = gsn_csm_xy(wks,t,data_0(:,:),res) miniws = 1.E27 maxiws =-1.E27 plot_wpsap = gsn_csm_xy(wks,t,data_0(:,:),res) miniwpsap = 1.E27 maxiwpsap =-1.E27 plot_wssas = gsn_csm_xy(wks,t,data_0(:,:),res) miniwssas = 1.E27 maxiwssas =-1.E27 plot_wsa = gsn_csm_xy(wks,t,data_0(:,:),res) miniwsa = 1.E27 maxiwsa =-1.E27 plot_wses = gsn_csm_xy(wks,t,data_0(:,:),res) plot_us2 = gsn_csm_xy(wks,t,data_0(:,:),res) minius2 = 1.E27 maxius2 =-1.E27 plot_vs2 = gsn_csm_xy(wks,t,data_0(:,:),res) minivs2 = 1.E27 maxivs2 =-1.E27 plot_ws2 = gsn_csm_xy(wks,t,data_0(:,:),res) miniws2 = 1.E27 maxiws2 =-1.E27 plot_pts2 = gsn_csm_xy(wks,t,data_0(:,:),res) plot_ws3 = gsn_csm_xy(wks,t,data_0(:,:),res) plot_Sw = gsn_csm_xy(wks,t,data_0(:,:),res) plot_ws2pts = gsn_csm_xy(wks,t,data_0(:,:),res) plot_wspts2 = gsn_csm_xy(wks,t,data_0(:,:),res) plot_wsususodz = gsn_csm_xy(wks,t,data_0(:,:),res) miniwsususodz = 1.E27 maxiwsususodz =-1.E27 plot_wspsodz = gsn_csm_xy(wks,t,data_0(:,:),res) miniwspsodz = 1.E27 maxiwspsodz =-1.E27 plot_wpeodz = gsn_csm_xy(wks,t,data_0(:,:),res) miniwpeodz = 1.E27 maxiwpeodz =-1.E27 end if n_o=0 do varn = 0,dim-1 temp = f->$vNam(varn)$ if ( isStrSubset( vNam(varn), "time") .OR. isStrSubset( vNam(varn), "NORM")) then check = False else if (.not. isvar("var")) then check = True if (parameter(21) .NE. "variables") then var=parameter(21) check = isStrSubset( var,","+vNam(varn)+"," ) end if else check = isStrSubset( var,","+vNam(varn)+"," ) end if end if if (combine .EQ. 1) then com=isStrSubset(c_var,","+vNam(varn)+"," ) if (com) check = False data(varn,:,:) = temp(start_time_step:end_time_step,0:dimz-1) unit(varn) = temp@units if (n_o .GT. number_comb-1) then print(" ") print("Please set 'number_comb' to the right number of overlaying variables ('c_var')") print(" ") exit end if mini(n_o)=min(data(varn,:,:)) maxi(n_o)=max(data(varn,:,:)) varn=varn+1 n_o=n_o+1 end if end if if(check) then z = f->$vNam(varn+1)$ unit(varn) = temp@units data(varn,:,:) = temp(start_time_step:end_time_step,0:dimz-1) if (over .EQ. 0) then res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trYMinF = min_z res@trYMaxF = max_z res@trXMinF = min(data(varn,:,:)) res@trXMaxF = max(data(varn,:,:)) plot(n) = gsn_csm_xy(wks,data(varn,:,:),z,res) end if if (vNam(varn) .EQ. "u") then miniu=min(data(varn,:,:)) maxiu=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 0 plot_u = gsn_csm_xy(wks,data(varn,:,:),z_u,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniu res@trXMaxF = maxiu plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) end if end if if (vNam(varn) .EQ. "v") then miniv=min(data(varn,:,:)) maxiv=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 1 plot_v = gsn_csm_xy(wks,data(varn,:,:),z_u,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniv res@trXMaxF = maxiv plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) end if end if if (vNam(varn) .EQ. "w") then miniw=min(data(varn,:,:)) maxiw=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 2 plot_w = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniw res@trXMaxF = maxiw plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "pt") then minipt=min(data(varn,:,:)) maxipt=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 0 plot_pt = gsn_csm_xy(wks,data(varn,:,:),z_u,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = minipt res@trXMaxF = maxipt plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) end if end if if (vNam(varn) .EQ. "vpt") then minivpt=min(data(varn,:,:)) maxivpt=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 1 plot_vpt = gsn_csm_xy(wks,data(varn,:,:),z_u,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = minivpt res@trXMaxF = maxivpt plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) end if end if if (vNam(varn) .EQ. "lpt") then minilpt=min(data(varn,:,:)) maxilpt=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 2 plot_lpt = gsn_csm_xy(wks,data(varn,:,:),z_u,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = minilpt res@trXMaxF = maxilpt plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) end if end if if (vNam(varn) .EQ. "q") then miniq=min(data(varn,:,:)) maxiq=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 0 plot_q = gsn_csm_xy(wks,data(varn,:,:),z_u,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniq res@trXMaxF = maxiq plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) end if end if if (vNam(varn) .EQ. "qv") then miniqv=min(data(varn,:,:)) maxiqv=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 1 plot_qv = gsn_csm_xy(wks,data(varn,:,:),z_u,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniqv res@trXMaxF = maxiqv plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) end if end if if (vNam(varn) .EQ. "ql") then miniql=min(data(varn,:,:)) maxiql=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 2 plot_ql = gsn_csm_xy(wks,data(varn,:,:),z_u,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniql res@trXMaxF = maxiql plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) end if end if if (vNam(varn) .EQ. "rho") then if (over .EQ. 1) then res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = min(data(varn,:,:)) res@trXMaxF = max(data(varn,:,:)) plot_q = gsn_csm_xy(wks,data(varn,:,:),z_u,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = min(data(varn,:,:)) res@trXMaxF = max(data(varn,:,:)) plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) end if end if if (vNam(varn) .EQ. "s") then if (over .EQ. 1) then res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = min(data(varn,:,:)) res@trXMaxF = max(data(varn,:,:)) plot_s = gsn_csm_xy(wks,data(varn,:,:),z_u,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = min(data(varn,:,:)) res@trXMaxF = max(data(varn,:,:)) plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) end if end if if (vNam(varn) .EQ. "sa") then if (over .EQ. 1) then res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = min(data(varn,:,:)) res@trXMaxF = max(data(varn,:,:)) plot_sa = gsn_csm_xy(wks,data(varn,:,:),z_u,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = min(data(varn,:,:)) res@trXMaxF = max(data(varn,:,:)) plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) end if end if if (vNam(varn) .EQ. "e") then minie=min(data(varn,:,:)) maxie=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 0 plot_e = gsn_csm_xy(wks,data(varn,:,:),z_u,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = minie res@trXMaxF = maxie plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) end if end if if (vNam(varn) .EQ. "es") then minies=min(data(varn,:,:)) maxies=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 1 plot_es = gsn_csm_xy(wks,data(varn,:,:),z_u,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = minies res@trXMaxF = maxies plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) end if end if if (vNam(varn) .EQ. "km") then minikm=min(data(varn,:,:)) maxikm=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 0 plot_km = gsn_csm_xy(wks,data(varn,:,:),z_u,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = minikm res@trXMaxF = maxikm plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) end if end if if (vNam(varn) .EQ. "kh") then minikh=min(data(varn,:,:)) maxikh=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 1 plot_kh = gsn_csm_xy(wks,data(varn,:,:),z_u,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = minikh res@trXMaxF = maxikh plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) end if end if if (vNam(varn) .EQ. "l") then if (over .EQ. 1) then res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = min(data(varn,:,:)) res@trXMaxF = max(data(varn,:,:)) plot_l = gsn_csm_xy(wks,data(varn,:,:),z_u,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = min(data(varn,:,:)) res@trXMaxF = max(data(varn,:,:)) plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) end if end if if (vNam(varn) .EQ. "wpup") then miniwpup=min(data(varn,:,:)) maxiwpup=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 0 plot_wpup = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwpup res@trXMaxF = maxiwpup plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wsus") then miniwsus=min(data(varn,:,:)) maxiwsus=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 1 plot_wsus = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwsus res@trXMaxF = maxiwsus plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wu") then miniwu=min(data(varn,:,:)) maxiwu=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 2 plot_wu = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwu res@trXMaxF = maxiwu plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wpvp") then miniwpvp=min(data(varn,:,:)) maxiwpvp=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 0 plot_wpvp = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwpvp res@trXMaxF = maxiwpvp plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wsvs") then miniwsvs=min(data(varn,:,:)) maxiwsvs=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 1 plot_wsvs = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwsvs res@trXMaxF = maxiwsvs plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wv") then miniwv=min(data(varn,:,:)) maxiwv=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 2 plot_wv = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwv res@trXMaxF = maxiwv plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wpptp") then miniwpptp=min(data(varn,:,:)) maxiwpptp=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 0 plot_wpptp = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwpptp res@trXMaxF = maxiwpptp plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wspts") then miniwspts=min(data(varn,:,:)) maxiwspts=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 1 plot_wspts = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwspts res@trXMaxF = maxiwspts plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wpt") then miniwpt=min(data(varn,:,:)) maxiwpt=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 2 plot_wpt = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwpt res@trXMaxF = maxiwpt plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wsptsBC") then miniwsptsBC=min(data(varn,:,:)) maxiwsptsBC=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 0 plot_wsptsBC = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwsptsBC res@trXMaxF = maxiwsptsBC plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wptBC") then miniwptBC=min(data(varn,:,:)) maxiwptBC=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 1 plot_wptBC = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwptBC res@trXMaxF = maxiwptBC plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wpvptp") then miniwpvptp=min(data(varn,:,:)) maxiwpvptp=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 0 plot_wpvptp = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwpvptp res@trXMaxF = maxiwpvptp plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wsvpts") then miniwsvpts=min(data(varn,:,:)) maxiwsvpts=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 1 plot_wsvpts = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwsvpts res@trXMaxF = maxiwsvpts plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wvpt") then miniwvpt=min(data(varn,:,:)) maxiwvpt=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 2 plot_wvpt = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwvpt res@trXMaxF = maxiwvpt plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wpqp") then miniwpqp=min(data(varn,:,:)) maxiwpqp=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 0 plot_wpqp = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwpqp res@trXMaxF = maxiwpqp plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wsqs") then miniwsqs=min(data(varn,:,:)) maxiwsqs=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 1 plot_wsqs = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwsqs res@trXMaxF = maxiwsqs plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wq") then miniwq=min(data(varn,:,:)) maxiwq=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 2 plot_wq = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwq res@trXMaxF = maxiwq plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wpqvp") then miniwpqvp=min(data(varn,:,:)) maxiwpqvp=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 0 plot_wpqvp = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwpqvp res@trXMaxF = maxiwpqvp plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wsqvs") then miniwsqvs=min(data(varn,:,:)) maxiwsqvs=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 1 plot_wsqvs = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwsqvs res@trXMaxF = maxiwsqvs plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wqv") then miniwqv=min(data(varn,:,:)) maxiwqv=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 2 plot_wqv = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwqv res@trXMaxF = maxiwqv plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wpsp") then miniwpsp=min(data(varn,:,:)) maxiwpsp=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 0 plot_wpsp = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwpsp res@trXMaxF = maxiwpsp plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wsss") then miniwsss=min(data(varn,:,:)) maxiwsss=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 1 plot_wsss = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwsss res@trXMaxF = maxiwsss plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "ws") then miniws=min(data(varn,:,:)) maxiws=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 2 plot_ws = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniws res@trXMaxF = maxiws plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wpsap") then miniwpsap=min(data(varn,:,:)) maxiwpsap=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 0 plot_wpsap = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwpsap res@trXMaxF = maxiwpsap plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wssas") then miniwssas=min(data(varn,:,:)) maxiwssas=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 1 plot_wssas = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwssas res@trXMaxF = maxiwssas plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wsa") then miniwsa=min(data(varn,:,:)) maxiwsa=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 2 plot_wsa = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwsa res@trXMaxF = maxiwsa plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wses") then if (over .EQ. 1) then res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = min(data(varn,:,:)) res@trXMaxF = max(data(varn,:,:)) plot_wses = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = min(data(varn,:,:)) res@trXMaxF = max(data(varn,:,:)) plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "us2") then minius2=min(data(varn,:,:)) maxius2=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 0 plot_us2 = gsn_csm_xy(wks,data(varn,:,:),z_u,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = minius2 res@trXMaxF = maxius2 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) end if end if if (vNam(varn) .EQ. "vs2") then minivs2=min(data(varn,:,:)) maxivs2=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 1 plot_vs2 = gsn_csm_xy(wks,data(varn,:,:),z_u,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = minivs2 res@trXMaxF = maxivs2 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) end if end if if (vNam(varn) .EQ. "ws2") then miniws2=min(data(varn,:,:)) maxiws2=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 2 plot_ws2 = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniws2 res@trXMaxF = maxiws2 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "pts2") then minipts2=min(data(varn,:,:)) maxipts2=max(data(varn,:,:)) if (over .EQ. 1) then res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = minipts2 res@trXMaxF = maxipts2 plot_pts2 = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = minipts2 res@trXMaxF = maxipts2 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "ws3") then miniws3=min(data(varn,:,:)) maxiws3=max(data(varn,:,:)) if (over .EQ. 1) then res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniws3 res@trXMaxF = maxiws3 plot_ws3 = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniws3 res@trXMaxF = maxiws3 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "Sw") then miniSw=min(data(varn,:,:)) maxiSw=max(data(varn,:,:)) if (over .EQ. 1) then res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniSw res@trXMaxF = maxiSw plot_Sw = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniSw res@trXMaxF = maxiSw plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "ws2pts") then miniws2pts=min(data(varn,:,:)) maxiws2pts=max(data(varn,:,:)) if (over .EQ. 1) then res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniws2pts res@trXMaxF = maxiws2pts plot_ws2pts = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniws2pts res@trXMaxF = maxiws2pts plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wspts2") then miniwspts2=min(data(varn,:,:)) maxiwspts2=max(data(varn,:,:)) if (over .EQ. 1) then res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwspts2 res@trXMaxF = maxiwspts2 plot_wspts2 = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwspts2 res@trXMaxF = maxiwspts2 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (vNam(varn) .EQ. "wsususodz") then miniwsususodz=min(data(varn,:,:)) maxiwsususodz=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 0 plot_wsususodz = gsn_csm_xy(wks,data(varn,:,:),z_u,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwsususodz res@trXMaxF = maxiwsususodz plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) end if end if if (vNam(varn) .EQ. "wspsodz") then miniwspsodz=min(data(varn,:,:)) maxiwspsodz=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 1 plot_wspsodz = gsn_csm_xy(wks,data(varn,:,:),z_u,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwspsodz res@trXMaxF = maxiwspsodz plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) end if end if if (vNam(varn) .EQ. "wpeodz") then miniwpeodz=min(data(varn,:,:)) maxiwpeodz=max(data(varn,:,:)) if (over .EQ. 1) then res@xyDashPattern = 2 plot_wpeodz = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trXMinF = miniwpeodz res@trXMaxF = maxiwpeodz plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) end if end if if (over .EQ. 0) then n=n+1 end if varn=varn+1 end if delete(temp) end do if (over .EQ. 1 ) then overlay(plot_u,plot_v) overlay(plot_u,plot_w) u=0 overlay(plot_pt,plot_vpt) overlay(plot_pt,plot_lpt) pt=0 overlay(plot_q,plot_qv) overlay(plot_q,plot_ql) q=0 overlay(plot_e,plot_es) e=0 overlay(plot_km,plot_kh) km=0 overlay(plot_wpup,plot_wsus) overlay(plot_wpup,plot_wu) wpup=0 overlay(plot_wpvp,plot_wsvs) overlay(plot_wpvp,plot_wv) wpvp=0 overlay(plot_wpptp,plot_wspts) overlay(plot_wpptp,plot_wpt) wpptp=0 overlay(plot_wsptsBC,plot_wptBC) wsptsBC=0 overlay(plot_wpvptp,plot_wsvpts) overlay(plot_wpvptp,plot_wvpt) wpvptp=0 overlay(plot_wpqp,plot_wsqs) overlay(plot_wpqp,plot_wq) wpqp=0 overlay(plot_wpqvp,plot_wsqvs) overlay(plot_wpqvp,plot_wqv) wpqvp=0 overlay(plot_wpsp,plot_wsss) overlay(plot_wpsp,plot_ws) wpsp=0 overlay(plot_wpsap,plot_wssas) overlay(plot_wpsap,plot_wsa) wpsap=0 overlay(plot_us2,plot_vs2) overlay(plot_us2,plot_ws2) us2=0 overlay(plot_wsususodz,plot_wspsodz) overlay(plot_wsususodz,plot_wpeodz) wsususodz=0 end if if (over .EQ. 1) then do varn = 0,dim-1 if ( isStrSubset( vNam(varn), "time") .OR. isStrSubset( vNam(varn), "NORM")) then check = False else if (.not. isvar("var")) then check = True if (parameter(21) .NE. "variables") then var=parameter(21) check = isStrSubset( var,","+vNam(varn)+"," ) end if else check = isStrSubset( var,","+vNam(varn)+"," ) end if end if if (check) z = f->$vNam(varn+1)$ ;res@gsnLeftString = vNam(varn) res@gsnRightString = unit(varn) res@trYMinF = min_z res@trYMaxF = max_z res@trXMinF = min(data(varn,:,:)) res@trXMaxF = max(data(varn,:,:)) plot(n) = gsn_csm_xy(wks,data(varn,:,:),z,res) if (vNam(varn) .EQ. "u" .OR. vNam(varn) .EQ. "v" .OR. vNam(varn) .EQ. "w") then if (u .EQ. 0) then res@gsnLeftString = "u, v and w" res@gsnRightString = unit(varn) res@trXMinF = min((/miniu,miniv,miniw/)) res@trXMaxF = max((/maxiu,maxiv,maxiw/)) if (vNam(varn) .EQ. "w") then plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) else plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) end if ; *************************************************** ; legend for combined plot ; *************************************************** lgres = True lgMonoDashIndex = False lgres@lgLabelFont = "helvetica" lgres@lgLabelFontHeightF = .1 lgres@vpWidthF = 0.12 lgres@vpHeightF = 0.1 lgres@lgDashIndexes = (/0,1,2/) lbid = gsn_create_legend(wks,3,(/"u","v","w"/),lgres) amres = True amres@amParallelPosF = 0.65 amres@amOrthogonalPosF = -0.2 annoid1 = gsn_add_annotation(plot(n),lbid,amres) overlay(plot(n),plot_u) u=1 else varn=varn+1 continue end if end if if (vNam(varn) .EQ. "pt" .OR. vNam(varn) .EQ. "vpt" .OR. vNam(varn) .EQ. "lpt") then if (pt .EQ. 0) then res@gsnLeftString = "pt, vpt and lpt" res@gsnRightString = unit(varn) res@trXMinF = min((/minipt,minivpt,minilpt/)) res@trXMaxF = max((/maxipt,maxivpt,maxilpt/)) plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) ; *************************************************** ; legend for combined plot ; *************************************************** lgres = True lgMonoDashIndex = False lgres@lgLabelFont = "helvetica" lgres@lgLabelFontHeightF = .1 lgres@vpWidthF = 0.12 lgres@vpHeightF = 0.1 lgres@lgDashIndexes = (/0,1,2/) lbid = gsn_create_legend(wks,3,(/"pt","vpt","lpt"/),lgres) amres = True amres@amParallelPosF = 0.65 amres@amOrthogonalPosF = -0.2 annoid1 = gsn_add_annotation(plot(n),lbid,amres) overlay(plot(n),plot_pt) pt=1 else varn=varn+1 continue end if end if if (vNam(varn) .EQ. "q" .OR. vNam(varn) .EQ. "qv" .OR. vNam(varn) .EQ. "ql") then if (q .EQ. 0) then res@gsnLeftString = "q, qv and ql" res@gsnRightString = unit(varn) res@trXMinF = min((/miniq,miniqv,miniql/)) res@trXMaxF = max((/maxiq,maxiqv,maxiql/)) plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) ; *************************************************** ; legend for combined plot ; *************************************************** lgres = True lgMonoDashIndex = False lgres@lgLabelFont = "helvetica" lgres@lgLabelFontHeightF = .1 lgres@vpWidthF = 0.12 lgres@vpHeightF = 0.1 lgres@lgDashIndexes = (/0,1,2/) lbid = gsn_create_legend(wks,3,(/"q","qv","ql"/),lgres) amres = True amres@amParallelPosF = 0.65 amres@amOrthogonalPosF = -0.2 annoid1 = gsn_add_annotation(plot(n),lbid,amres) overlay(plot(n),plot_q) q=1 else varn=varn+1 continue end if end if if (vNam(varn) .EQ. "rho") then plot(n) = plot_rho end if if (vNam(varn) .EQ. "s") then plot(n) = plot_s end if if (vNam(varn) .EQ. "sa") then plot(n) = plot_sa end if if (vNam(varn) .EQ. "e" .OR. vNam(varn) .EQ. "es") then if (e .EQ. 0) then res@gsnLeftString = "e and es" res@gsnRightString = unit(varn) res@trXMinF = min((/minie,minies/)) res@trXMaxF = max((/maxie,maxies/)) plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) ; *************************************************** ; legend for combined plot ; *************************************************** lgres = True lgMonoDashIndex = False lgres@lgLabelFont = "helvetica" lgres@lgLabelFontHeightF = .1 lgres@vpWidthF = 0.12 lgres@vpHeightF = 0.1 lgres@lgDashIndexes = (/0,1,2/) lbid = gsn_create_legend(wks,3,(/"e","es"/),lgres) amres = True amres@amParallelPosF = 0.65 amres@amOrthogonalPosF = -0.2 annoid1 = gsn_add_annotation(plot(n),lbid,amres) overlay(plot(n),plot_e) e=1 else varn=varn+1 continue end if end if if (vNam(varn) .EQ. "km" .OR. vNam(varn) .EQ. "kh") then if (km .EQ. 0) then res@gsnLeftString = "km and kh" res@gsnRightString = unit(varn) res@trXMinF = min((/minikm,minikh/)) res@trXMaxF = max((/maxikm,maxikh/)) plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) ; *************************************************** ; legend for combined plot ; *************************************************** lgres = True lgMonoDashIndex = False lgres@lgLabelFont = "helvetica" lgres@lgLabelFontHeightF = .1 lgres@vpWidthF = 0.12 lgres@vpHeightF = 0.1 lgres@lgDashIndexes = (/0,1,2/) lbid = gsn_create_legend(wks,3,(/"km","kh"/),lgres) amres = True amres@amParallelPosF = 0.65 amres@amOrthogonalPosF = -0.2 annoid1 = gsn_add_annotation(plot(n),lbid,amres) overlay(plot(n),plot_km) km=1 else varn=varn+1 continue end if end if if (vNam(varn) .EQ. "l") then plot(n) = plot_l end if if (vNam(varn) .EQ. "wpup" .OR. vNam(varn) .EQ. "wsus" .OR. vNam(varn) .EQ. "wu") then if (wpup .EQ. 0) then res@gsnLeftString = "wpup, wsus and wu" res@gsnRightString = unit(varn) res@trXMinF = min((/miniwpup,miniwsus,miniwu/)) res@trXMaxF = max((/maxiwpup,maxiwsus,maxiwu/)) plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) ; *************************************************** ; legend for combined plot ; *************************************************** lgres = True lgMonoDashIndex = False lgres@lgLabelFont = "helvetica" lgres@lgLabelFontHeightF = .1 lgres@vpWidthF = 0.12 lgres@vpHeightF = 0.1 lgres@lgDashIndexes = (/0,1,2/) lbid = gsn_create_legend(wks,3,(/"wpup","wsus","wu"/),lgres) amres = True amres@amParallelPosF = 0.65 amres@amOrthogonalPosF = -0.2 annoid1 = gsn_add_annotation(plot(n),lbid,amres) overlay(plot(n),plot_wpup) wpup=1 else varn=varn+1 continue end if end if if (vNam(varn) .EQ. "wpvp" .OR. vNam(varn) .EQ. "wsvs" .OR.vNam(varn) .EQ. "wv") then if (wpvp .EQ. 0) then res@gsnLeftString = "wpvp, wsus and wv" res@gsnRightString = unit(varn) res@trXMinF = min((/miniwpvp,miniwsvs,miniwv/)) res@trXMaxF = max((/maxiwpvp,maxiwsvs,maxiwv/)) plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) ; *************************************************** ; legend for combined plot ; *************************************************** lgres = True lgMonoDashIndex = False lgres@lgLabelFont = "helvetica" lgres@lgLabelFontHeightF = .1 lgres@vpWidthF = 0.12 lgres@vpHeightF = 0.1 lgres@lgDashIndexes = (/0,1,2/) lbid = gsn_create_legend(wks,3,(/"wpvp","wsvs","wv"/),lgres) amres = True amres@amParallelPosF = 0.65 amres@amOrthogonalPosF = -0.2 annoid1 = gsn_add_annotation(plot(n),lbid,amres) overlay(plot(n),plot_wpvp) wpup=0 else varn=varn+1 continue end if end if if (vNam(varn) .EQ. "wpptp" .OR. vNam(varn) .EQ. "wspts" .OR. vNam(varn) .EQ. "wpt") then if (wpptp .EQ. 0) then res@gsnLeftString = "wpptp, wspts and wv" res@gsnRightString = unit(varn) res@trXMinF = min((/miniwpptp,miniwspts,miniwpt/)) res@trXMaxF = max((/maxiwpptp,maxiwspts,maxiwpt/)) plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) ; *************************************************** ; legend for combined plot ; *************************************************** lgres = True lgMonoDashIndex = False lgres@lgLabelFont = "helvetica" lgres@lgLabelFontHeightF = .1 lgres@vpWidthF = 0.12 lgres@vpHeightF = 0.1 lgres@lgDashIndexes = (/0,1,2/) lbid = gsn_create_legend(wks,3,(/"wpptp","wspts","wpt"/),lgres) amres = True amres@amParallelPosF = 0.65 amres@amOrthogonalPosF = -0.2 annoid1 = gsn_add_annotation(plot(n),lbid,amres) overlay(plot(n),plot_wpptp) wpptp=1 else varn=varn+1 continue end if end if if (vNam(varn) .EQ. "wsptsBC" .OR. vNam(varn) .EQ. "wptBC") then if (wsptsBC .EQ. 0) then res@gsnLeftString = "wsptsBC and wptBC" res@gsnRightString = unit(varn) res@trXMinF = min((/miniwsptsBC,miniwptBC/)) res@trXMaxF = max((/maxiwsptsBC,maxiwptBC/)) plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) ; *************************************************** ; legend for combined plot ; *************************************************** lgres = True lgMonoDashIndex = False lgres@lgLabelFont = "helvetica" lgres@lgLabelFontHeightF = .1 lgres@vpWidthF = 0.12 lgres@vpHeightF = 0.1 lgres@lgDashIndexes = (/0,1,2/) lbid = gsn_create_legend(wks,3,(/"wsptsBC","wptBC"/),lgres) amres = True amres@amParallelPosF = 0.65 amres@amOrthogonalPosF = -0.2 annoid1 = gsn_add_annotation(plot(n),lbid,amres) overlay(plot(n),plot_wsptsBC) wsptsBC=1 else varn=varn+1 continue end if end if if (vNam(varn) .EQ. "wpvptp" .OR. vNam(varn) .EQ. "wsvpts" .OR. vNam(varn) .EQ. "wvpt") then if (wpvptp .EQ. 0) then res@gsnLeftString = "wpvptp, wsvpts and wv" res@gsnRightString = unit(varn) res@trXMinF = min((/miniwpvptp,miniwsvpts,miniwvpt/)) res@trXMaxF = max((/maxiwpvptp,maxiwsvpts,maxiwvpt/)) plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) ; *************************************************** ; legend for combined plot ; *************************************************** lgres = True lgMonoDashIndex = False lgres@lgLabelFont = "helvetica" lgres@lgLabelFontHeightF = .1 lgres@vpWidthF = 0.12 lgres@vpHeightF = 0.1 lgres@lgDashIndexes = (/0,1,2/) lbid = gsn_create_legend(wks,3,(/"wpvptp","wsvpts","wvpt"/),lgres) amres = True amres@amParallelPosF = 0.65 amres@amOrthogonalPosF = -0.2 annoid1 = gsn_add_annotation(plot(n),lbid,amres) overlay(plot(n),plot_wpvptp) wpvptp=1 else varn=varn+1 continue end if end if if (vNam(varn) .EQ. "wpqp" .OR. vNam(varn) .EQ. "wsqs" .OR. vNam(varn) .EQ. "wq") then if (wpqp .EQ. 0) then res@gsnLeftString = "wpqp, wsqs and wq" res@gsnRightString = unit(varn) res@trXMinF = min((/miniwpqp,miniwsqs,miniwq/)) res@trXMaxF = max((/maxiwpqp,maxiwsqs,maxiwq/)) plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) ; *************************************************** ; legend for combined plot ; *************************************************** lgres = True lgMonoDashIndex = False lgres@lgLabelFont = "helvetica" lgres@lgLabelFontHeightF = .1 lgres@vpWidthF = 0.12 lgres@vpHeightF = 0.1 lgres@lgDashIndexes = (/0,1,2/) lbid = gsn_create_legend(wks,3,(/"wpqp","wsqs","wq"/),lgres) amres = True amres@amParallelPosF = 0.65 amres@amOrthogonalPosF = -0.2 annoid1 = gsn_add_annotation(plot(n),lbid,amres) overlay(plot(n),plot_wpqp) wpqp=1 else varn=varn+1 continue end if end if if (vNam(varn) .EQ. "wpqvp" .OR. vNam(varn) .EQ. "wsqvs" .OR. vNam(varn) .EQ. "wqv") then if (wpqvp .EQ. 0) then res@gsnLeftString = "wpqvp, wsqvs and wqv" res@gsnRightString = unit(varn) res@trXMinF = min((/miniwpqp,miniwsqvs,miniwqv/)) res@trXMaxF = max((/maxiwpqp,maxiwsqvs,maxiwqv/)) plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) ; *************************************************** ; legend for combined plot ; *************************************************** lgres = True lgMonoDashIndex = False lgres@lgLabelFont = "helvetica" lgres@lgLabelFontHeightF = .1 lgres@vpWidthF = 0.12 lgres@vpHeightF = 0.1 lgres@lgDashIndexes = (/0,1,2/) lbid = gsn_create_legend(wks,3,(/"wpqvp","wsqvs","wqv"/),lgres) amres = True amres@amParallelPosF = 0.65 amres@amOrthogonalPosF = -0.2 annoid1 = gsn_add_annotation(plot(n),lbid,amres) overlay(plot(n),plot_wpqvp) wpqvp=1 else varn=varn+1 continue end if end if if (vNam(varn) .EQ. "wpsp" .OR. vNam(varn) .EQ. "wsss" .OR. vNam(varn) .EQ. "ws") then if (wpsp .EQ. 0) then res@gsnLeftString = "wpsp, wsss and ws" res@gsnRightString = unit(varn) res@trXMinF = min((/miniwpsp,miniwsss,miniws/)) res@trXMaxF = max((/maxiwpsp,maxiwsss,maxiws/)) plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) ; *************************************************** ; legend for combined plot ; *************************************************** lgres = True lgMonoDashIndex = False lgres@lgLabelFont = "helvetica" lgres@lgLabelFontHeightF = .1 lgres@vpWidthF = 0.12 lgres@vpHeightF = 0.1 lgres@lgDashIndexes = (/0,1,2/) lbid = gsn_create_legend(wks,3,(/"wpsp","wsss","ws"/),lgres) amres = True amres@amParallelPosF = 0.65 amres@amOrthogonalPosF = -0.2 annoid1 = gsn_add_annotation(plot(n),lbid,amres) overlay(plot(n),plot_wpsp) wpsp=1 else varn=varn+1 continue end if end if if (vNam(varn) .EQ. "wpsap" .OR.vNam(varn) .EQ. "wssas" .OR. vNam(varn) .EQ. "wsa") then if (wpsap .EQ. 0) then res@gsnLeftString = "wpsap, wssas and wsa" res@gsnRightString = unit(varn) res@trXMinF = min((/miniwpsap,miniwssas,miniwsa/)) res@trXMaxF = max((/maxiwpsap,maxiwssas,maxiwsa/)) plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) ; *************************************************** ; legend for combined plot ; *************************************************** lgres = True lgMonoDashIndex = False lgres@lgLabelFont = "helvetica" lgres@lgLabelFontHeightF = .1 lgres@vpWidthF = 0.12 lgres@vpHeightF = 0.1 lgres@lgDashIndexes = (/0,1,2/) lbid = gsn_create_legend(wks,3,(/"wpsap","wssas","wsa"/),lgres) amres = True amres@amParallelPosF = 0.65 amres@amOrthogonalPosF = -0.2 annoid1 = gsn_add_annotation(plot(n),lbid,amres) overlay(plot(n),plot_wpsap) wpsap=1 else varn=varn+1 continue end if end if if (vNam(varn) .EQ. "wses") then plot(n) = plot_wses end if if (vNam(varn) .EQ. "us2" .OR. vNam(varn) .EQ. "vs2" .OR. vNam(varn) .EQ. "ws2") then if (us2 .EQ. 0) then res@gsnLeftString = "us2, vs2 and ws2" res@gsnRightString = unit(varn) res@trXMinF = min((/minius2,minivs2,miniws2/)) res@trXMaxF = max((/maxius2,maxivs2,maxiws2/)) plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) ; *************************************************** ; legend for combined plot ; *************************************************** lgres = True lgMonoDashIndex = False lgres@lgLabelFont = "helvetica" lgres@lgLabelFontHeightF = .1 lgres@vpWidthF = 0.12 lgres@vpHeightF = 0.1 lgres@lgDashIndexes = (/0,1,2/) lbid = gsn_create_legend(wks,3,(/"us2","vs2","ws2"/),lgres) amres = True amres@amParallelPosF = 0.65 amres@amOrthogonalPosF = -0.2 annoid1 = gsn_add_annotation(plot(n),lbid,amres) overlay(plot(n),plot_us2) us2=1 else varn=varn+1 continue end if end if if (vNam(varn) .EQ. "pts2") then plot(n) = plot_pts2 end if if (vNam(varn) .EQ. "ws3") then plot(n) = plot_ws3 end if if (vNam(varn) .EQ. "Sw") then plot(n) = plot_Sw end if if (vNam(varn) .EQ. "ws2pts") then plot(n) = plot_ws2pts end if if (vNam(varn) .EQ. "wspts2") then plot(n) = plot_wspts2 end if if (vNam(varn) .EQ. "wsususodz" .OR. vNam(varn) .EQ. "wspsodz" .OR. vNam(varn) .EQ. "wpeodz" ) then if (wsususodz .EQ. 0) then res@gsnLeftString = "wsususodz, wspsodz and ws2" res@gsnRightString = unit(varn) res@trXMinF = min((/miniwsususodz,miniwspsodz,miniwpeodz/)) res@trXMaxF = max((/maxiwsususodz,maxiwspsodz,maxiwpeodz/)) plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) ; *************************************************** ; legend for combined plot ; *************************************************** lgres = True lgMonoDashIndex = False lgres@lgLabelFont = "helvetica" lgres@lgLabelFontHeightF = .1 lgres@vpWidthF = 0.12 lgres@vpHeightF = 0.1 lgres@lgDashIndexes = (/0,1,2/) lbid = gsn_create_legend(wks,3,(/"wsususodz","wspsodz","wpeodz"/),lgres) amres = True amres@amParallelPosF = 0.65 amres@amOrthogonalPosF = -0.2 annoid1 = gsn_add_annotation(plot(n),lbid,amres) overlay(plot(n),plot_wsususodz) wsususodz=1 else varn=varn+1 continue end if end if n=n+1 varn=varn+1 end if end do end if if (combine .EQ. 1) then check=True n_o=0 do varn = 0,dim-1 if ( isStrSubset( vNam(varn), "NORM") .or. isStrSubset( vNam(varn), "time") ) check = False else if (.not. isvar("var")) then check = True if (parameter(21) .NE. "variables") then var=parameter(21) check = isStrSubset( var,","+vNam(varn)+"," ) end if else check = isStrSubset( var,","+vNam(varn)+"," ) end if end if if(check) then z = f->$vNam(varn+1)$ com=isStrSubset( c_var,","+vNam(varn)+"," ) if (com) if (n_o .EQ. 1) then res@xyDashPattern = 1 else if (n_o .EQ. 2) then res@xyDashPattern = 2 else res@xyDashPattern = 0 res@gsnLeftString = c_var res@gsnRightString = unit(varn) res@trXMinF = min(mini) res@trXMaxF = max(maxi) end if end if label(n_o)=vNam(varn) color_o(n_o)=237 plot_o(n_o)=gsn_csm_xy(wks,data(varn,:,:),z,res) n_o=n_o+1 end if varn=varn+1 end if end do if(number_comb .EQ. 2)then overlay(plot_o(0),plot_o(1)) end if if(number_comb .EQ. 3)then overlay(plot_o(0),plot_o(1)) overlay(plot_o(0),plot_o(2)) end if ; *************************************************** ; legend for combined plot ; *************************************************** lgres = True lgMonoDashIndex = False lgres@lgDashIndexes = (/0,1,2/) lgres@lgLabelFont = "helvetica" lgres@lgLabelFontHeightF = .1 lgres@vpWidthF = 0.12 lgres@vpHeightF = 0.1 lbid = gsn_create_legend(wks,number_comb,label,lgres) amres = True amres@amParallelPosF = 0.65 amres@amOrthogonalPosF = -0.2 annoid1 = gsn_add_annotation(plot_o(0),lbid,amres) plot(0) = plot_o(0) end if ; *************************************************** ; merge plots onto one page ; *************************************************** print(n) do m=0,n-1 plot_(m)=plot(n-1-m) end do if (format_out .EQ. "eps" .OR. format_out .EQ. "epsi") then gsn_panel(wks,plot_(0:n-1),(/n,1/),resP) else do i = 0,n-1, no_lines*no_columns if( (i+no_lines*no_columns) .gt. (n-1)) then gsn_panel(wks,plot_(i:n-1),(/no_lines,no_columns/),resP) else gsn_panel(wks,plot_(i:i+no_lines*no_columns-1),(/no_lines,no_columns/),resP) end if end do end if print(" ") print("Output to: " + file_out +"."+ format_out) print(" ") end