Ignore:
Timestamp:
Apr 11, 2008 10:54:53 AM (14 years ago)
Author:
letzel
Message:
  • NCL scripts in trunk/SCRIPTS/NCL updated for vector plots
File:
1 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SCRIPTS/NCL/timeseries.ncl

    r157 r161  
    1111   
    1212   if (isfilepresent("~/.ncl_preferences")) then
    13       parameter = asciiread("~/.ncl_preferences",73,"string")
     13      parameter = asciiread("~/.ncl_preferences",75,"string")
    1414      delete(parameter@_FillValue)
    1515   else
     
    2323   ; set up default parameter values and strings if not assigned in prompt or parameter list
    2424   ; ***************************************************
    25    
     25 
    2626   if ( .not. isvar("file_in") ) then                   ; path+name of input file     
    2727      if (parameter(7) .EQ. "input file") then
     
    6060   if ( .not. isvar("var") ) then                       ; variable name
    6161      check = True
     62   end if
     63   if ( .not. isvar("over") ) then                      ; switches overlaying plots on
     64      over = 0
     65      if (stringtointeger(parameter(73)) .NE. 0) then
     66         over = stringtointeger(parameter(73))
     67         if (stringtointeger(parameter(73)) .NE. 1) then
     68            print(" ")
     69            print("Please set 'over' to 0 or 1")
     70            print(" ")
     71            exit
     72         end if   
     73      end if
    6274   end if
    6375 
     
    6880   f  = addfile(file_in , "r" )
    6981
    70    vNam  = getfilevarnames(f) 
     82   vNam  = getfilevarnames(f)
    7183   print(" ")
    7284   print("Variable on netCDF file: " + vNam)
    7385   print(" ")
    74    dim   = dimsizes(vNam)
     86   dim = dimsizes(vNam)
     87   if (dim .EQ. 0) then
     88      print(" ")
     89      print("There are no data on file")
     90      print(" ")
     91   end if
     92
    7593   t_all = f->time
    76    nt    = dimsizes(t_all)
     94   nt  = dimsizes(t_all)
    7795
    7896   ; ****************************************************       
     
    8199
    82100   if ( .not. isvar("start_time_step") ) then           
    83       start_time_step = 1
    84       if (parameter(13) .LE. "1") then
    85          if (parameter(13) .EQ. "0")
     101      start_time_step = 0
     102      if (parameter(13) .NE. "1") then
     103         if (parameter(13) .LE. "0")
    86104            print(" ")
    87105            print("Begin with time step 1")
     
    95113            exit
    96114         end if
    97          start_time_step = stringtointeger(parameter(13)) 
     115         start_time_step = stringtointeger(parameter(13))-1 
    98116      end if
    99117   else
     
    110128         exit
    111129      end if
     130      start_time_step = start_time_step - 1
    112131   end if
    113132
     
    137156            exit
    138157         end if
    139          end_time_step = stringtointeger(parameter(15)) 
     158         end_time_step = stringtointeger(parameter(15))-1
    140159      end if   
    141160   else
     
    153172      end if
    154173      if (end_time_step .LT. start_time_step)
    155             print(" ")
    156             print("'end_time_step' = "+end_time_step +" is lower than 'start_time_step' = "+start_time_step)
    157             print(" ")
    158             exit
    159       end if
     174         print(" ")
     175         print("'end_time_step' = "+end_time_step +" is lower than 'start_time_step' = "+start_time_step)
     176         print(" ")
     177         exit
     178      end if
     179      end_time_step = end_time_step - 1
    160180   end if 
    161181
     
    181201   res@tiYAxisFont             = "helvetica"
    182202   res@tmXBLabelFont           = "helvetica"
    183    res@tmYLLabelFont           = "helvetica" 
    184    res@xyLineColors            = (/237/)
     203   res@tmYLLabelFont           = "helvetica"
     204   res@xyLineColors            = (/237/)
     205   
     206   res@lgLabelFontHeightF     = .02
     207
    185208   resP                        = True
    186209   resP@txFont                 = "helvetica"
     
    191214   res@vpWidthF=4
    192215
     216   txres = True
    193217
    194218   ; ***************************************************
     
    198222   wks_ps = gsn_open_wks(format_out,file_out)           
    199223   gsn_define_colormap(wks_ps,"rainbow+white")
    200    plot_ps=new(dim,graphic)                             
     224   plot_ps=new(dim,graphic)
     225                                 
    201226   n=0
    202  
    203    do varn = 0, dim-1 
     227   minE=1.E27
     228   maxE=-1.E27
     229   minus=1.E27
     230   maxus=-1.E27
     231   minu=1.E27
     232   maxu=-1.E27
     233   minz=1.E27
     234   maxz=-1.E27
     235   minw=1.E27
     236   maxw=-1.E27
     237   minp=1.E27
     238   maxp=-1.E27
     239   mins=1.E27
     240   maxs=-1.E27
     241
     242   data   = new((/dim,(end_time_step-start_time_step)+1/),float)
     243   unit   = new(dim,string)
     244   data_0 = new((end_time_step-start_time_step)+1,float)
     245   data_0 = 0.0
     246   mini   = new(dim,float)
     247   maxi   = new(dim,float)
     248   
     249   if (over .EQ. 1) then
     250      plot_E       = gsn_csm_xy(wks_ps,t,data_0(:),res)
     251      plot_Es      = gsn_csm_xy(wks_ps,t,data_0(:),res)
     252      plot_us      = gsn_csm_xy(wks_ps,t,data_0(:),res)
     253      plot_ws      = gsn_csm_xy(wks_ps,t,data_0(:),res)
     254      plot_umax    = gsn_csm_xy(wks_ps,t,data_0(:),res)
     255      plot_vmax    = gsn_csm_xy(wks_ps,t,data_0(:),res)
     256      plot_wmax    = gsn_csm_xy(wks_ps,t,data_0(:),res)
     257      plot_z_i_wpt = gsn_csm_xy(wks_ps,t,data_0(:),res)
     258      plot_z_i_pt  = gsn_csm_xy(wks_ps,t,data_0(:),res)
     259      plot_wpptp0  = gsn_csm_xy(wks_ps,t,data_0(:),res)
     260      plot_wpptp   = gsn_csm_xy(wks_ps,t,data_0(:),res)
     261      plot_wpt     = gsn_csm_xy(wks_ps,t,data_0(:),res)
     262      plot_pt_0_   = gsn_csm_xy(wks_ps,t,data_0(:),res)
     263      plot_pt_zp_  = gsn_csm_xy(wks_ps,t,data_0(:),res)
     264      plot_splptx  = gsn_csm_xy(wks_ps,t,data_0(:),res)
     265      plot_splpty  = gsn_csm_xy(wks_ps,t,data_0(:),res)
     266      plot_splptz  = gsn_csm_xy(wks_ps,t,data_0(:),res)
     267   end if
     268 
     269   do varn = dim-1,0,1
     270
     271      if( isStrSubset (vNam(varn), "time") )
     272         check = False
     273      else
     274         check = True
     275      end if
    204276      if( isvar("var") ) then                   
    205          check = isStrSubset( var,vNam(varn)+"," )
     277         check = isStrSubset( var,","+vNam(varn)+"," )
    206278      end if
    207279      if (parameter(21) .NE. "variables") then
    208280         var = parameter(21)
    209          check = isStrSubset( var,vNam(varn)+"," )
     281         check = isStrSubset( var,","+vNam(varn)+"," )
    210282      end if
    211283   
     284     
     285      if(check) then
     286       
     287         data_all = f ->$vNam(varn)$
     288         unit(varn) = data_all@units
     289               
     290         data(varn,:)=data_all(start_time_step:end_time_step)
     291         
     292         if (over .EQ. 1) then
     293
     294            mini(varn) = min(data(varn,:))
     295            maxi(varn) = max(data(varn,:))
     296           
     297            if (vNam(varn) .EQ. "E" .OR. vNam(varn) .EQ. "Es") then
     298               if (mini(varn) .EQ. maxi(varn)) then
     299                  if (min(data(varn,:)) .EQ. 0)then
     300                     mini(varn)= mini(varn)-1.
     301                     maxi(varn)= maxi(varn)+1.
     302                  end if
     303                  if (min(data(varn,:)) .LT. 0)then
     304                     mini(varn)= mini(varn)-1.+(mini(varn))/2
     305                     maxi(varn)= maxi(varn)+1.-(maxi(varn))/2
     306                  end if
     307                  if (min(data(varn,:)) .GT. 0)then
     308                     mini(varn)= mini(varn)-1.-(mini(varn))/2
     309                     maxi(varn)= maxi(varn)+1.+(maxi(varn))/2
     310                  end if
     311               end if
     312               minE=min((/minE,mini(varn)/))
     313               maxE=max((/maxE,maxi(varn)/))
     314            end if
     315
     316            if (vNam(varn) .EQ. "us" .OR. vNam(varn) .EQ. "ws") then
     317               if (mini(varn) .EQ. maxi(varn)) then
     318                  if (min(data(varn,:)) .EQ. 0)then
     319                     mini(varn)= mini(varn)-1.
     320                     maxi(varn)= maxi(varn)+1.
     321                  end if
     322                  if (min(data(varn,:)) .LT. 0)then
     323                     mini(varn)= mini(varn)-1.+(mini(varn))/2
     324                     maxi(varn)= maxi(varn)+1.-(maxi(varn))/2
     325                  end if
     326                  if (min(data(varn,:)) .GT. 0)then
     327                     mini(varn)= mini(varn)-1.-(mini(varn))/2
     328                     maxi(varn)= maxi(varn)+1.+(maxi(varn))/2
     329                  end if
     330               end if
     331               minus=min((/minus,mini(varn)/))
     332               maxus=max((/maxus,maxi(varn)/))
     333            end if
     334
     335            if (vNam(varn) .EQ. "umax" .OR. vNam(varn) .EQ. "vmax" .OR. vNam(varn) .EQ. "wmax") then
     336               if (mini(varn) .EQ. maxi(varn)) then
     337                  if (mini(varn) .EQ. 0)then
     338                     mini(varn)= mini(varn)-1.
     339                     maxi(varn)= maxi(varn)+1.
     340                  end if
     341                  if (mini(varn) .LT. 0)then
     342                     mini(varn)= mini(varn)-1.+(mini(varn))/2
     343                     maxi(varn)= maxi(varn)+1.-(maxi(varn))/2
     344                  end if
     345                  if (mini(varn) .GT. 0)then
     346                     mini(varn)= mini(varn)-1.-(mini(varn))/2
     347                     maxi(varn)= maxi(varn)+1.+(maxi(varn))/2
     348                  end if
     349               end if
     350               minu=min((/minu,mini(varn)/))
     351               maxu=max((/maxu,maxi(varn)/))
     352            end if
     353
     354            if (vNam(varn) .EQ. "z_i_wpt" .OR. vNam(varn) .EQ. "z_i_pt") then
     355               if (mini(varn) .EQ. maxi(varn)) then
     356                  if (min(data(varn,:)) .EQ. 0)then
     357                     mini(varn)= mini(varn)-1.
     358                     maxi(varn)= maxi(varn)+1.
     359                  end if
     360                  if (min(data(varn,:)) .LT. 0)then
     361                     mini(varn)= mini(varn)-1.+(mini(varn))/2
     362                     maxi(varn)= maxi(varn)+1.-(maxi(varn))/2
     363                  end if
     364                  if (min(data(varn,:)) .GT. 0)then
     365                     mini(varn)= mini(varn)-1.-(mini(varn))/2
     366                     maxi(varn)= maxi(varn)+1.+(maxi(varn))/2
     367                  end if
     368               end if
     369               minz=min((/minz,mini(varn)/))
     370               maxz=max((/maxz,maxi(varn)/))
     371            end if
     372
     373            if (vNam(varn) .EQ. "wpptp0" .OR. vNam(varn) .EQ. "wpptp" .OR. vNam(varn) .EQ. "wpt") then
     374               if (mini(varn) .EQ. maxi(varn)) then
     375                  if (min(data(varn,:)) .EQ. 0)then
     376                     mini(varn)= mini(varn)-1.
     377                     maxi(varn)= maxi(varn)+1.
     378                  end if
     379                  if (min(data(varn,:)) .LT. 0)then
     380                     mini(varn)= mini(varn)-1.+(mini(varn))/2
     381                     maxi(varn)= maxi(varn)+1.-(maxi(varn))/2
     382                  end if
     383                  if (min(data(varn,:)) .GT. 0)then
     384                     mini(varn)= mini(varn)-1.-(mini(varn))/2
     385                     maxi(varn)= maxi(varn)+1.+(maxi(varn))/2
     386                  end if
     387               end if
     388               minw=min((/minw,mini(varn)/))
     389               maxw=max((/maxw,maxi(varn)/))
     390            end if
     391
     392            if (vNam(varn) .EQ. "pt_0_" .OR. vNam(varn) .EQ. "pt_zp_") then
     393               if (mini(varn) .EQ. maxi(varn)) then
     394                  if (min(data(varn,:)) .EQ. 0)then
     395                     mini(varn)= mini(varn)-1.
     396                     maxi(varn)= maxi(varn)+1.
     397                  end if
     398                  if (min(data(varn,:)) .LT. 0)then
     399                     mini(varn)= mini(varn)-1.+(mini(varn))/2
     400                     maxi(varn)= maxi(varn)+1.-(maxi(varn))/2
     401                  end if
     402                  if (min(data(varn,:)) .GT. 0)then
     403                     mini(varn)= mini(varn)-1.-(mini(varn))/2
     404                     maxi(varn)= maxi(varn)+1.+(maxi(varn))/2
     405                  end if
     406               end if
     407               minp=min((/minp,mini(varn)/))
     408               maxp=max((/maxp,maxi(varn)/))
     409            end if
     410
     411            if (vNam(varn) .EQ. "splptx" .OR. vNam(varn) .EQ. "splpty" .OR. vNam(varn) .EQ. "splptz") then
     412               if (mini(varn) .EQ. maxi(varn)) then
     413                  if (min(data(varn,:)) .EQ. 0)then
     414                     mini(varn)= mini(varn)-1.
     415                     maxi(varn)= maxi(varn)+1.
     416                  end if
     417                  if (min(data(varn,:)) .LT. 0)then
     418                     mini(varn)= mini(varn)-1.+(mini(varn))/2
     419                     maxi(varn)= maxi(varn)+1.-(maxi(varn))/2
     420                  end if
     421                  if (min(data(varn,:)) .GT. 0)then
     422                     mini(varn)= mini(varn)-1.-(mini(varn))/2
     423                     maxi(varn)= maxi(varn)+1.+(maxi(varn))/2
     424                  end if
     425               end if
     426               mins=min((/mins,mini(varn)/))
     427               maxs=max((/maxs,maxi(varn)/))
     428            end if
     429           
     430         end if
     431      end if
     432   end do
     433
     434   do varn = dim-1,0,1
     435     
    212436      if( isStrSubset (vNam(varn), "time") )
    213437         check = False
    214       end if
     438      else
     439         check = True
     440      end if     
     441      if( isvar("var") ) then                   
     442         check = isStrSubset( var,","+vNam(varn)+"," )
     443      end if
     444      if (parameter(21) .NE. "variables") then
     445         var = parameter(21)
     446         check = isStrSubset( var,","+vNam(varn)+"," )
     447      end if
    215448 
    216449      if(check) then
     450
     451        if (over .EQ. 1) then
    217452 
    218          n=n+1
    219          data = f ->$vNam(varn)$         
    220          print("plot of " + vNam(varn))
    221 
    222          res@gsnRightString       = vNam(varn)
    223          res@tiXAxisString        = " time [s] "
    224          res@tiXAxisFontHeightF   = 0.07
    225          res@txFontHeightF        = 0.07
    226          res@tiYAxisFontHeightF   = 0.07
    227      
    228          plot_ps(n) = gsn_csm_xy(wks_ps,t,data(start_time_step:end_time_step),res)
     453            res@gsnLeftString       = "overlayed plot"
     454            res@gsnRightString      = unit(varn)
     455            res@tiXAxisString        = " time [s] "
     456            res@tiYAxisString        = " "
     457            res@tiXAxisFontHeightF   = 0.07
     458            res@txFontHeightF        = 0.07
     459            res@tiYAxisFontHeightF   = 0.07
     460            res@xyLabelMode          = "Custom"
     461           
     462
     463            if (vNam(varn) .EQ. "E")
     464               E=0
     465               res@xyLineColors     = (/237/)
     466               res@xyExplicitLabels =  "E"
     467               res@xyLineLabelFontHeightF = 0.05
     468               res@xyLineLabelFontColor   = 237
     469               res@trYMaxF           = minE
     470               res@trYMinF           = maxE
     471               plot_E = gsn_csm_xy(wks_ps,t,data(varn,:),res)
     472            end if
     473            if (vNam(varn) .EQ. "Es")
     474               Es=0
     475               res@xyLineColors            = (/144/)
     476               res@xyExplicitLabels =  "Es"
     477               res@xyLineLabelFontHeightF = 0.05
     478               res@xyLineLabelFontColor   = 144
     479               plot_Es = gsn_csm_xy(wks_ps,t,data(varn,:),res)
     480            end if
     481             
     482            if (vNam(varn) .EQ. "us")
     483               us=0
     484               res@xyLineColors            = (/237/)
     485               res@xyExplicitLabels =  "us"
     486               res@xyLineLabelFontHeightF = 0.05
     487               res@xyLineLabelFontColor   = 237
     488               res@trYMaxF           = minus
     489               res@trYMinF           = maxus
     490               plot_us = gsn_csm_xy(wks_ps,t,data(varn,:),res)
     491            end if             
     492            if (vNam(varn) .EQ. "ws")
     493               ws=0
     494               res@xyLineColors            = (/144/)
     495               res@xyExplicitLabels =  "ws"
     496               res@xyLineLabelFontHeightF = 0.05
     497               res@xyLineLabelFontColor   = 144
     498               plot_ws = gsn_csm_xy(wks_ps,t,data(varn,:),res)
     499            end if
     500             
     501            if (vNam(varn) .EQ. "umax")
     502               u=0
     503               res@xyLineColors            = (/237/)
     504               res@xyExplicitLabels =  "umax"
     505               res@xyLineLabelFontHeightF = 0.05
     506               res@xyLineLabelFontColor   = 237
     507               res@trYMaxF           = minu
     508               res@trYMinF           = maxu
     509               plot_umax = gsn_csm_xy(wks_ps,t,data(varn,:),res)
     510            end if
     511            if (vNam(varn) .EQ. "vmax")
     512               v=0
     513               res@xyLineColors            = (/144/)
     514               res@xyExplicitLabels =  "vmax"
     515               res@xyLineLabelFontHeightF = 0.05
     516               res@xyLineLabelFontColor   = 144
     517               plot_vmax = gsn_csm_xy(wks_ps,t,data(varn,:),res)
     518            end if
     519            if (vNam(varn) .EQ. "wmax")
     520               w=0
     521               res@xyLineColors            = (/80/)
     522               res@xyExplicitLabels =  "wmax"
     523               res@xyLineLabelFontHeightF = 0.05
     524               res@xyLineLabelFontColor   = 80
     525               plot_wmax = gsn_csm_xy(wks_ps,t,data(varn,:),res)
     526            end if
    229527   
    230       end if
     528            if (vNam(varn) .EQ. "z_i_wpt")
     529               zw=0
     530               res@xyLineColors            = (/237/)
     531               res@xyExplicitLabels =  "z_i_wpt"
     532               res@xyLineLabelFontHeightF = 0.05
     533               res@xyLineLabelFontColor   = 237
     534               res@trYMaxF           = minz
     535               res@trYMinF           = maxz
     536               plot_z_i_wpt = gsn_csm_xy(wks_ps,t,data(varn,:),res)
     537            end if
     538            if (vNam(varn) .EQ. "z_i_pt")
     539               z=0
     540               res@xyLineColors            = (/144/) 
     541               res@xyExplicitLabels =  "z_i_pt"
     542               res@xyLineLabelFontHeightF = 0.05
     543               res@xyLineLabelFontColor   = 144
     544               plot_z_i_pt = gsn_csm_xy(wks_ps,t,data(varn,:),res)
     545            end if
     546
     547            if (vNam(varn) .EQ. "wpptp0")
     548               w0=0
     549               res@xyLineColors            = (/237/)
     550               res@xyExplicitLabels =  "wpptp0"
     551               res@xyLineLabelFontHeightF = 0.05
     552               res@xyLineLabelFontColor   = 237
     553               res@trYMaxF           = minw
     554               res@trYMinF           = maxw
     555               plot_wpptp0 = gsn_csm_xy(wks_ps,t,data(varn,:),res)
     556            end if
     557            if (vNam(varn) .EQ. "wpptp")
     558               wp=0
     559               res@xyLineColors            = (/144/)
     560               res@xyExplicitLabels =  "wpptp"
     561               res@xyLineLabelFontHeightF = 0.05
     562               res@xyLineLabelFontColor   = 144
     563               plot_wpptp = gsn_csm_xy(wks_ps,t,data(varn,:),res) 
     564            end if
     565            if (vNam(varn) .EQ. "wpt")
     566               wt=0
     567               res@xyLineColors            = (/80/)
     568               res@xyExplicitLabels =  "wpt"
     569               res@xyLineLabelFontHeightF = 0.05
     570               res@xyLineLabelFontColor   = 80
     571               plot_wpt = gsn_csm_xy(wks_ps,t,data(varn,:),res)
     572            end if
     573
     574            if (vNam(varn) .EQ. "pt_0_")
     575               p=0
     576               res@xyLineColors            = (/237/)
     577               res@xyExplicitLabels =  "pt_0_"
     578               res@xyLineLabelFontHeightF = 0.05
     579               res@xyLineLabelFontColor   = 237
     580               res@trYMaxF           = minp
     581               res@trYMinF           = maxp
     582               plot_pt_0_ = gsn_csm_xy(wks_ps,t,data(varn,:),res) 
     583            end if
     584            if (vNam(varn) .EQ. "pt_zp_")
     585               pz=0
     586               res@xyLineColors            = (/144/)
     587               res@xyExplicitLabels =  "pt_zp_"
     588               res@xyLineLabelFontHeightF = 0.05
     589               res@xyLineLabelFontColor   = 144
     590               plot_pt_zp_ = gsn_csm_xy(wks_ps,t,data(varn,:),res)
     591            end if
     592
     593            if (vNam(varn) .EQ. "splptx")
     594               x=0
     595               res@xyLineColors            = (/237/)
     596               res@xyExplicitLabels =  "splptx"
     597               res@xyLineLabelFontHeightF = 0.05
     598               res@xyLineLabelFontColor   = 237
     599               res@trYMaxF           = mins
     600               res@trYMinF           = maxs
     601               plot_splptx = gsn_csm_xy(wks_ps,t,data(varn,:),res)   
     602            end if
     603            if (vNam(varn) .EQ. "splpty")
     604               y=0
     605               res@xyLineColors            = (/144/)
     606               res@xyExplicitLabels =  "splpty"
     607               res@xyLineLabelFontHeightF = 0.05
     608               res@xyLineLabelFontColor   = 144
     609               plot_splpty = gsn_csm_xy(wks_ps,t,data(varn,:),res)
     610            end if
     611            if (vNam(varn) .EQ. "splptz")
     612               z=0
     613               res@xyLineColors            = (/80/)
     614               res@xyExplicitLabels =  "splptz"
     615               res@xyLineLabelFontHeightF = 0.05
     616               res@xyLineLabelFontColor   = 80
     617               plot_splptz = gsn_csm_xy(wks_ps,t,data(varn,:),res)         
     618            end if
     619
     620         end if
     621      end if
     622   end do
     623   
     624   do varn = dim-1,0,1
    231625 
     626      if( isStrSubset (vNam(varn), "time") )
     627         check = False
     628      else
     629         check = True
     630      end if   
     631      if( isvar("var") ) then                   
     632         check = isStrSubset( var,","+vNam(varn)+"," )
     633      end if
     634      if (parameter(21) .NE. "variables") then
     635         var = parameter(21)
     636         check = isStrSubset( var,","+vNam(varn)+"," )
     637      end if
     638   
     639      if(check) then
     640       
     641         if (over .EQ. 1) then       
     642       
     643            if (vNam(varn) .EQ. "E" .AND. Es .NE. 1) then
     644               E=1   
     645               overlay(plot_E,plot_Es)
     646               n=n+1
     647               plot_ps(n) = plot_E               
     648            end if
     649            if (vNam(varn) .EQ. "Es" .AND. E .NE. 1) then
     650               Es=1
     651               overlay(plot_E,plot_Es)
     652               n=n+1
     653               plot_ps(n) = plot_E           
     654            end if
     655
     656            if (vNam(varn) .EQ. "us" .AND. ws .NE. 1) then
     657               us=1
     658               overlay(plot_us,plot_ws)
     659               n=n+1
     660               plot_ps(n) = plot_us
     661            end if
     662            if (vNam(varn) .EQ. "ws" .AND. us .NE. 1) then
     663               ws=1
     664               overlay(plot_us,plot_ws)
     665               n=n+1
     666               plot_ps(n) = plot_us
     667            end if
     668         
     669            if (vNam(varn) .EQ. "umax" .AND. v .NE. 1)
     670               if (w .NE. 1) then
     671                  u=1         
     672                  overlay(plot_umax,plot_vmax)
     673                  overlay(plot_umax,plot_wmax)
     674                  n=n+1
     675                  plot_ps(n) = plot_umax
     676               end if
     677            end if
     678            if (vNam(varn) .EQ. "vmax" .AND. u .NE. 1)
     679               if (w .NE. 1) then
     680                  v=1 
     681                  overlay(plot_umax,plot_vmax)
     682                  overlay(plot_umax,plot_wmax)
     683                  n=n+1
     684                  plot_ps(n) = plot_umax
     685               end if
     686            end if
     687            if (vNam(varn) .EQ. "wmax" .AND. v .NE. 1)
     688               if(u .NE. 1) then 
     689                  w=1       
     690                  overlay(plot_umax,plot_vmax)
     691                  overlay(plot_umax,plot_wmax)
     692                  n=n+1
     693                  plot_ps(n) = plot_umax
     694               end if
     695            end if
     696           
     697            if (vNam(varn) .EQ. "z_i_wpt" .AND. z .NE. 1) then
     698               zw=1       
     699               overlay(plot_z_i_wpt,plot_z_i_pt)
     700               n=n+1
     701               plot_ps(n) = plot_z_i_wpt           
     702            end if
     703            if (vNam(varn) .EQ. "z_i_pt" .AND. zw .NE. 1) then
     704               z=1     
     705               overlay(plot_z_i_wpt,plot_z_i_pt)
     706               n=n+1
     707               plot_ps(n) = plot_z_i_wpt           
     708            end if   
     709         
     710            if (vNam(varn) .EQ. "wpptp0" .AND. wp .NE. 1)
     711               if (wt .NE. 1) then
     712                  w0=1
     713                  overlay(plot_wpptp0,plot_wpptp)
     714                  overlay(plot_wpptp0,plot_wpt)
     715                  n=n+1
     716                  plot_ps(n) = plot_wpptp0
     717               end if           
     718            end if
     719            if (vNam(varn) .EQ. "wpptp" .AND. w0 .NE. 1)
     720               if (wt .NE. 1) then
     721                 wp=1
     722                 overlay(plot_wpptp0,plot_wpptp)
     723                 overlay(plot_wpptp0,plot_wpt)
     724                 n=n+1
     725                 plot_ps(n) = plot_wpptp0 
     726               end if           
     727            end if
     728            if (vNam(varn) .EQ. "wpt" .AND. wp .NE. 1)
     729               if (w0 .NE. 1) then
     730                  wt=1
     731                  overlay(plot_wpptp0,plot_wpptp)
     732                  overlay(plot_wpptp0,plot_wpt)
     733                  n=n+1
     734                  plot_ps(n) = plot_wpptp0             
     735               end if
     736            end if
     737
     738            if (vNam(varn) .EQ. "pt_0_" .AND. pz .NE. 1) then
     739               p=1     
     740               overlay(plot_pt_0_,plot_pt_zp_)
     741               n=n+1
     742               plot_ps(n) = plot_pt_0_           
     743            end if
     744            if (vNam(varn) .EQ. "pt_zp_" .AND. p .NE. 1) then
     745               pz=1       
     746               overlay(plot_pt_0_,plot_pt_zp_)
     747               n=n+1
     748               plot_ps(n) = plot_pt_0_           
     749            end if
     750           
     751            if (vNam(varn) .EQ. "splptx" .AND. y .NE. 1)
     752               if (z .NE.1 ) then
     753                  x=1     
     754                  overlay(plot_splptx,plot_splpty)
     755                  overlay(plot_splptx,plot_splptz)
     756                  n=n+1
     757                  plot_ps(n) = plot_splptx           
     758               end if
     759            end if
     760            if (vNam(varn) .EQ. "splpty" .AND. x .NE. 1)
     761               if(z .NE.1 ) then
     762                  y=1         
     763                  overlay(plot_splptx,plot_splpty)
     764                  overlay(plot_splptx,plot_splptz)
     765                  n=n+1
     766                  plot_ps(n) = plot_splptx
     767               end if           
     768            end if
     769            if (vNam(varn) .EQ. "splptz" .AND. y .NE. 1)
     770               if(x .NE.1 ) then
     771                  z=1         
     772                  overlay(plot_splptx,plot_splpty)
     773                  overlay(plot_splptx,plot_splptz)
     774                  n=n+1
     775                  plot_ps(n) = plot_splptx   
     776               end if       
     777            end if
     778
     779            if(vNam(varn) .NE. "splptz" .AND. vNam(varn) .NE. "splpty" .AND. vNam(varn) .NE. "splptx" .AND. vNam(varn) .NE. "pt_zp_" .AND. vNam(varn) .NE. "pt_0_" .AND. vNam(varn) .NE. "wpt" .AND. vNam(varn) .NE. "wpptp" .AND. vNam(varn) .NE. "wpptp0" .AND. vNam(varn) .NE. "z_i_pt" .AND. vNam(varn) .NE. "z_i_wpt" .AND. vNam(varn) .NE. "wmax" .AND. vNam(varn) .NE. "vmax" .AND. vNam(varn) .NE. "umax" .AND. vNam(varn) .NE. "ws" .AND.  vNam(varn) .NE. "us" .AND. vNam(varn) .NE. "Es" .AND. vNam(varn) .NE. "E") then
     780               n=n+1
     781               res@xyLineColors   = (/237/)
     782               res@xyLabelMode    = False
     783               res@gsnLeftString  = vNam(varn)
     784               res@gsnRightString = unit(varn)
     785               res@trYMaxF        = min(data(varn,:))
     786               res@trYMinF        = max(data(varn,:))
     787               if (min(data(varn,:)) .EQ. max(data(varn,:))) then
     788                  if (min(data(varn,:)) .EQ. 0)then
     789                     res@trYMaxF = min(data(varn,:))-1.
     790                     res@trYMinF = max(data(varn,:))+1.
     791                  end if
     792                  if (min(data(varn,:)) .LT. 0)then
     793                     res@trYMaxF = min(data(varn,:))+(min(data(varn,:)))/2
     794                     res@trYMinF = max(data(varn,:))-(max(data(varn,:)))/2
     795                  end if
     796                  if (min(data(varn,:)) .GT. 0)then
     797                     res@trYMaxF = min(data(varn,:))-(min(data(varn,:)))/2
     798                     res@trYMinF = max(data(varn,:))+(max(data(varn,:)))/2
     799                  end if
     800               end if
     801               plot_ps(n) = gsn_csm_xy(wks_ps,t,data(varn,:),res) 
     802            end if
     803       
     804         else
     805           
     806            print("plot of " + vNam(varn))
     807           
     808            n=n+1
     809            res@xyLineColors            = (/237/)
     810            res@gsnLeftString       = vNam(varn)
     811            res@gsnRightString      = unit(varn)
     812            res@tiXAxisString        = " time [s] "
     813            res@tiYAxisString        = " "
     814            res@tiXAxisFontHeightF   = 0.07
     815            res@txFontHeightF        = 0.07
     816            res@tiYAxisFontHeightF   = 0.07
     817            res@trYMaxF        = min(data(varn,:))
     818            res@trYMinF        = max(data(varn,:))
     819            if (min(data(varn,:)) .EQ. max(data(varn,:))) then
     820               if (min(data(varn,:)) .EQ. 0)then
     821                     res@trYMaxF = min(data(varn,:))-1.
     822                     res@trYMinF = max(data(varn,:))+1.
     823                  end if
     824                  if (min(data(varn,:)) .LT. 0)then
     825                     res@trYMaxF = min(data(varn,:))+(min(data(varn,:)))/2
     826                     res@trYMinF = max(data(varn,:))-(max(data(varn,:)))/2
     827                  end if
     828                  if (min(data(varn,:)) .GT. 0)then
     829                     res@trYMaxF = min(data(varn,:))-(min(data(varn,:)))/2
     830                     res@trYMinF = max(data(varn,:))+(max(data(varn,:)))/2
     831                  end if
     832            end if
     833            plot_ps(n) = gsn_csm_xy(wks_ps,t,data(varn,:),res)
     834           
     835         end if     
     836      end if
    232837   end do
    233 
     838 
    234839   ; ***************************************************
    235840   ; merge plots onto one page
    236841   ; ***************************************************
    237 
    238    do np = 1,n,no_lines*no_columns
    239    
    240       if ( np + no_lines*no_columns .gt. n) then   
    241          gsn_panel(wks_ps, plot_ps(np:n),(/no_lines,no_columns/),resP)
    242       else
    243          gsn_panel(wks_ps, plot_ps(np:np+no_lines*no_columns-1),(/no_lines,no_columns/),resP)
    244       end if
    245      
    246    end do
     842 
     843   if (format_out .EQ. "eps" .OR. format_out .EQ. "epsi") then
     844      gsn_panel(wks_ps,plot_ps(1:n),(/n,1/),resP)
     845   else
     846      do np = 1,n,no_lines*no_columns   
     847         if ( np + no_lines*no_columns .gt. n) then   
     848            gsn_panel(wks_ps, plot_ps(np:n),(/no_lines,no_columns/),resP)
     849         else
     850            gsn_panel(wks_ps, plot_ps(np:np+no_lines*no_columns-1),(/no_lines,no_columns/),resP)
     851         end if
     852      end do
     853   end if
    247854
    248855   print(" ")
Note: See TracChangeset for help on using the changeset viewer.