Changeset 161 for palm/trunk/SCRIPTS/NCL/profiles.ncl
 Timestamp:
 Apr 11, 2008 10:54:53 AM (14 years ago)
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

palm/trunk/SCRIPTS/NCL/profiles.ncl
r157 r161 10 10 11 11 if (isfilepresent("~/.ncl_preferences")) then 12 parameter = asciiread("~/.ncl_preferences",7 3,"string")12 parameter = asciiread("~/.ncl_preferences",75,"string") 13 13 delete(parameter@_FillValue) 14 14 else … … 71 71 if (combine .EQ. 1) then 72 72 if( .not. isvar("c_var") ) then 73 c_var=" " 74 if (parameter(27) .NE. "c_variables") then 73 if (parameter(27) .EQ. "c_variables") then 74 print(" ") 75 print("Please select variables for overlaying ('c_var')") 76 print(" ") 77 exit 78 else 75 79 c_var=parameter(27) 76 80 end if … … 101 105 end if 102 106 end if 103 107 if ( .not. isvar("over") ) then ; switches overlaying plots on 108 over = 0 109 if (stringtointeger(parameter(73)) .NE. 0) then 110 over = stringtointeger(parameter(73)) 111 if (stringtointeger(parameter(73)) .NE. 1) then 112 print(" ") 113 print("Please set 'over' to 0 or 1") 114 print(" ") 115 exit 116 end if 117 end if 118 end if 119 104 120 ; *************************************************** 105 121 ; open input file … … 108 124 f=addfile( file_in,"r") 109 125 110 vNam 126 vNam = getfilevarnames(f) 111 127 print(" ") 112 128 print("Variable on netCDF file: " + vNam) 113 129 print(" ") 114 dim = dimsizes(vNam) 115 z_pr = f>zpt 116 dimz = dimsizes(z_pr) 130 dim = dimsizes(vNam) 131 if (dim .EQ. 0) then 132 print(" ") 133 print("There are no data on file") 134 print(" ") 135 end if 136 137 do varn = dim1,0,1 138 if ( isStrSubset( vNam(varn), "time") .OR. isStrSubset( vNam(varn), "NORM")) then 139 varn=varn1 140 continue 141 end if 142 if (vNam(varn) .EQ. "u") 143 z_u = f>zu 144 break 145 else 146 if (vNam(varn) .EQ. "v")then 147 z_u = f>zv 148 break 149 else 150 if(vNam(varn) .EQ. "pt")then 151 z_u = f>zpt 152 break 153 else 154 if(vNam(varn) .EQ. "vpt")then 155 z_u = f>zvpt 156 break 157 else 158 if(vNam(varn) .EQ. "lpt")then 159 z_u = f>zlpt 160 break 161 else 162 if(vNam(varn) .EQ. "q")then 163 z_u = f>zq 164 break 165 else 166 if(vNam(varn) .EQ. "qv")then 167 z_u = f>zqv 168 break 169 else 170 if(vNam(varn) .EQ. "ql")then 171 z_u = f>zql 172 break 173 else 174 if(vNam(varn) .EQ. "rho")then 175 z_u = f>zrho 176 break 177 else 178 if(vNam(varn) .EQ. "s")then 179 z_u = f>zs 180 break 181 else 182 if(vNam(varn) .EQ. "sa")then 183 z_u = f>zsa 184 break 185 else 186 if(vNam(varn) .EQ. "e")then 187 z_u = f>ze 188 break 189 else 190 if(vNam(varn) .EQ. "es")then 191 z_u = f>zes 192 break 193 else 194 if(vNam(varn) .EQ. "km")then 195 z_u = f>zkm 196 break 197 else 198 if(vNam(varn) .EQ. "kh")then 199 z_u = f>zkh 200 break 201 else 202 if(vNam(varn) .EQ. "l")then 203 z_u = f>zl 204 break 205 else 206 if(vNam(varn) .EQ. "us2")then 207 z_u = f>zus2 208 break 209 else 210 if(vNam(varn) .EQ. "vs2")then 211 z_u = f>zvs2 212 break 213 else 214 if(vNam(varn) .EQ. "pts2")then 215 z_u = f>zpts2 216 break 217 else 218 if(vNam(varn) .EQ. "wsususodz")then 219 z_u = f>zwsususodz 220 break 221 else 222 if(vNam(varn) .EQ. "wspsodz")then 223 z_u = f>zwspsodz 224 break 225 else 226 if(vNam(varn) .EQ. "wpeodz")then 227 z_u = f>zwpeodz 228 break 229 end if 230 end if 231 end if 232 end if 233 end if 234 end if 235 end if 236 end if 237 end if 238 end if 239 end if 240 end if 241 end if 242 end if 243 end if 244 end if 245 end if 246 end if 247 end if 248 end if 249 end if 250 end if 251 varn=varn1 252 end do 253 254 do varn=dim1,0,1 255 if ( isStrSubset( vNam(varn), "time") .OR. isStrSubset( vNam(varn), "NORM")) then 256 varn=varn1 257 continue 258 end if 259 if (vNam(varn) .EQ. "w") 260 z_w = f>zw 261 break 262 else 263 if (vNam(varn) .EQ. "wpup")then 264 z_w = f>zwpup 265 break 266 else 267 if(vNam(varn) .EQ. "wsus")then 268 z_w = f>zwsus 269 break 270 else 271 if(vNam(varn) .EQ. "wu")then 272 z_w = f>zwu 273 break 274 else 275 if(vNam(varn) .EQ. "wpvp")then 276 z_w = f>zwpvp 277 break 278 else 279 if(vNam(varn) .EQ. "wsvs")then 280 z_w = f>zwsvs 281 break 282 else 283 if(vNam(varn) .EQ. "wv")then 284 z_w = f>zwv 285 break 286 else 287 if(vNam(varn) .EQ. "wptpp")then 288 z_w = f>zwptpp 289 break 290 else 291 if(vNam(varn) .EQ. "wspts")then 292 z_w = f>zwspts 293 break 294 else 295 if(vNam(varn) .EQ. "wpt")then 296 z_w = f>zwpt 297 break 298 else 299 if(vNam(varn) .EQ. "wsptsBC")then 300 z_w = f>zwsptsBC 301 break 302 else 303 if(vNam(varn) .EQ. "wptBC")then 304 z_w = f>zwptBC 305 break 306 else 307 if(vNam(varn) .EQ. "wpvptp")then 308 z_w = f>zwpvptp 309 break 310 else 311 if(vNam(varn) .EQ. "wsvpts")then 312 z_w = f>zwsvpts 313 break 314 else 315 if(vNam(varn) .EQ. "wvpt")then 316 z_w = f>zwvpt 317 break 318 else 319 if(vNam(varn) .EQ. "wpqp")then 320 z_w = f>zwpqp 321 break 322 else 323 if(vNam(varn) .EQ. "wsqs")then 324 z_w = f>zwsqs 325 break 326 else 327 if(vNam(varn) .EQ. "wq")then 328 z_w = f>zwq 329 break 330 else 331 if(vNam(varn) .EQ. "wpqvp")then 332 z_w = f>zwpqvp 333 break 334 else 335 if(vNam(varn) .EQ. "wsqvs")then 336 z_w = f>zwsqvs 337 break 338 else 339 if(vNam(varn) .EQ. "wqv")then 340 z_w = f>zwqv 341 break 342 else 343 if(vNam(varn) .EQ. "wpsp")then 344 z_w = f>zwpsp 345 break 346 else 347 if(vNam(varn) .EQ. "wsss")then 348 z_w = f>zwsss 349 break 350 else 351 if(vNam(varn) .EQ. "ws")then 352 z_w = f>zws 353 break 354 else 355 if(vNam(varn) .EQ. "wpsap")then 356 z_w = f>zwpsap 357 break 358 else 359 if(vNam(varn) .EQ. "wssas")then 360 z_w = f>zwssas 361 break 362 else 363 if(vNam(varn) .EQ. "wsa")then 364 z_w = f>zwsa 365 break 366 else 367 if(vNam(varn) .EQ. "wses")then 368 z_w = f>zwses 369 break 370 else 371 if(vNam(varn) .EQ. "ws2")then 372 z_w = f>zws2 373 break 374 else 375 if(vNam(varn) .EQ. "ws3")then 376 z_w = f>zws3 377 break 378 else 379 if(vNam(varn) .EQ. "Sw")then 380 z_w = f>zSw 381 break 382 else 383 if(vNam(varn) .EQ. "ws2pts")then 384 z_w = f>zws2pts 385 break 386 else 387 if(vNam(varn) .EQ. "wspts2")then 388 z_w = f>zwspts2 389 break 390 end if 391 end if 392 end if 393 end if 394 end if 395 end if 396 end if 397 end if 398 end if 399 end if 400 end if 401 end if 402 end if 403 end if 404 end if 405 end if 406 end if 407 end if 408 end if 409 end if 410 end if 411 end if 412 end if 413 end if 414 end if 415 end if 416 end if 417 end if 418 end if 419 end if 420 end if 421 end if 422 end if 423 varn=varn1 424 end do 425 if ( .not. isvar("z_u") ) then 426 zu = 0 427 else 428 zu = 1 429 end if 430 if ( .not. isvar("z_w") ) then 431 zw = 0 432 else 433 zw = 1 434 end if 435 436 if (zu .EQ. 0 .AND. zw .EQ. 0) then 437 do varn=0,dim1 438 if ( isStrSubset( vNam(varn), "time") .OR. isStrSubset( vNam(varn), "NORM")) then 439 check = False 440 else 441 if (.not. isvar("var")) then 442 check = True 443 if (parameter(21) .NE. "variables") then 444 var=parameter(21) 445 check = isStrSubset( var,","+vNam(varn)+"," ) 446 end if 447 else 448 check = isStrSubset( var,","+vNam(varn)+"," ) 449 end if 450 end if 451 if (check) 452 z = f>$vNam(varn+1)$ 453 dimz = dimsizes(z) 454 break 455 end if 456 end do 457 end if 458 459 dimz = dimsizes(z_w) 460 dimz = dimsizes(z_u) 117 461 t_all = f>time 118 462 nt = dimsizes(t_all) 119 463 120 464 ; **************************************************** 121 465 ; start of time step and different types of mistakes that could be done … … 125 469 start_time_step = 1 126 470 if (parameter(13) .NE. "1") then 127 if (parameter(13) .LE. " 0")128 print(" ") 129 print("Begin with time step 1")471 if (parameter(13) .LE. "1") 472 print(" ") 473 print("Begin at least with time step 2") 130 474 print(" ") 131 475 exit … … 137 481 exit 138 482 end if 139 start_time_step = stringtointeger(parameter(13)) 483 start_time_step = stringtointeger(parameter(13))1 140 484 end if 141 485 else 142 486 if (start_time_step .LE. 0) 143 487 print(" ") 144 print("Begin with time step 1")488 print("Begin at least with time step 1") 145 489 print(" ") 146 490 exit … … 152 496 exit 153 497 end if 498 start_time_step = start_time_step  1 154 499 end if 155 500 … … 200 545 exit 201 546 end if 547 end_time_step = end_time_step  1 202 548 end if 203 549 … … 206 552 ; **************************************************** 207 553 208 legend_label=new(nt 1,double)554 legend_label=new(nt,double) 209 555 do p=start_time_step,end_time_step 210 556 legend_label(pstart_time_step)=t_all(p) … … 224 570 res@gsnFrame = False 225 571 res@gsnPaperOrientation = "portrait" 226 ; res@gsnmaximize = True227 572 res@gsnPaperWidth = 8.27 228 573 res@gsnPaperHeight = 11.69 … … 239 584 res@pmLegendSide = "Top" 240 585 res@xyExplicitLegendLabels = legend_label 241 res@pmLegendParallelPosF = 1. 4242 res@pmLegendOrthogonalPosF = 1.0 85586 res@pmLegendParallelPosF = 1.15 587 res@pmLegendOrthogonalPosF = 1.0 243 588 res@pmLegendWidthF = 0.12 244 589 res@pmLegendHeightF = 0.3 245 590 res@lgLabelFontHeightF = .02 246 ; res@XBLabelConstantSpacingF = 1.0 247 591 res@txFontHeightF = 0.02 592 res@tiXAxisFontHeightF = 0.02 593 res@tiYAxisFontHeightF = 0.02 594 res@tiXAxisString = " " 595 res@tiYAxisString = "Height [z]" 596 248 597 if ( dash .eq. 0 ) then 249 598 res@xyMonoDashPattern = True … … 257 606 258 607 ; *************************************************** 259 ; set up colors and recourses for combined plot260 ; ***************************************************261 262 if (combine .EQ. 1) then263 264 if (.not. isvar("number_comb")) then265 m=0266 m=stringtointeger(parameter(25))267 if(m .EQ. 0) then268 print(" ")269 print("Please indicate the number of variables you would like to combine ('number_comb')")270 print(" ")271 exit272 end if273 end if274 275 ores=True276 277 colors=new(m*(nt1),integer)278 do j=0,m1279 colors(j+j*(nt2):(j+1)*(nt1)1) = ispan(2,237,235/np)280 end do281 ores@xyLineColors = colors282 283 dash_oplot=new(m*(nt1),integer)284 do j=0,m1285 dash_oplot(j+j*(nt2):(j+1)*(nt1)1)=j286 end do287 ores@xyDashPatterns = dash_oplot288 289 ores = True290 ores@gsnDraw = False291 ores@gsnFrame = False292 ores@gsnPaperOrientation = "portrait"293 ; ores@gsnmaximize = True294 ores@gsnPaperWidth = 8.27295 ores@gsnPaperHeight = 11.69296 ores@gsnPaperMargin = 0.79297 ores@txFont = "helvetica"298 ores@tiMainFont = "helvetica"299 ores@tiXAxisFont = "helvetica"300 ores@tiYAxisFont = "helvetica"301 ores@tmXBLabelFont = "helvetica"302 ores@tmYLLabelFont = "helvetica"303 ores@lgLabelFont = "helvetica"304 ores@tmLabelAutoStride = True305 ores@pmLegendDisplayMode = "Always"306 ores@pmLegendSide = "Top"307 ores@pmLegendParallelPosF = 1.4308 ores@pmLegendOrthogonalPosF = 1.085309 ores@pmLegendWidthF = 0.15310 ores@pmLegendHeightF = 0.60311 ores@lgLabelFontHeightF = .02312 ; ores@XBLabelConstantSpacingF = 1.0313 314 end if315 316 ; ***************************************************317 608 ; set up graphics for plot 318 609 ; *************************************************** 319 610 320 plot = new(dim,graphic) 611 plot = new(dim,graphic) 612 plot_ = new(dim,graphic) 613 614 if (combine .EQ. 1) then 615 if ( .not. isvar("number_comb") ) then 616 if (parameter(25) .EQ. "0") then 617 print(" ") 618 print("Please set 'number_comb' to 2 or 3 if you would like to overlay 2 or 3 variables in one plot") 619 print(" ") 620 exit 621 else 622 number_comb=stringtointeger(parameter(25)) 623 plot_o = new(number_comb,graphic) 624 end if 625 else 626 if(number_comb .EQ. 2 .OR. number_comb .EQ. 3) then 627 plot_o = new(number_comb,graphic) 628 else 629 print(" ") 630 print("Please set 'number_comb' to 2 or 3 if you would like to overlay 2 or 3 variables in one plot") 631 print(" ") 632 exit 633 end if 634 end if 635 label=new(number_comb,string) 636 color_o=new(number_comb,integer) 637 mini=new(number_comb,float) 638 maxi=new(number_comb,float) 639 end if 321 640 322 641 wks=gsn_open_wks(format_out,file_out) … … 324 643 325 644 ; *************************************************** 326 ; indicate plot number 645 ; indicate plot number 327 646 ; *************************************************** 328 647 329 648 if (combine .EQ. 1) then 330 n = 1 649 n = 1 331 650 else 332 651 n = 0 333 end if 334 652 end if 653 335 654 ; *************************************************** 336 655 ; set up minimum and maximum height … … 340 659 min_z=0 341 660 if (stringtointeger(parameter(33)) .NE. 0) then 342 if (stringtointeger(parameter(33)) .GE. max(z_ pr) ) then343 print(" ") 344 print("Minimum of height ('min_z'="+stringtointeger(parameter(33))+") is greater than available heights (="+max(z_ pr)+")")661 if (stringtointeger(parameter(33)) .GE. max(z_u) ) then 662 print(" ") 663 print("Minimum of height ('min_z'="+stringtointeger(parameter(33))+") is greater than available heights (="+max(z_u)+")") 345 664 print(" ") 346 665 exit … … 355 674 end if 356 675 else 357 if (min_z .GE. max(z_ pr) ) then676 if (min_z .GE. max(z_u) ) then 358 677 print(" ") 359 print("Minimum of height ('min_z'="+min_z+") is greater than available heights (="+max(z_ pr)+")")678 print("Minimum of height ('min_z'="+min_z+") is greater than available heights (="+max(z_u)+")") 360 679 print(" ") 361 680 exit … … 370 689 371 690 if (.not. isvar("max_z")) 372 max_z=max(z_ pr)373 if ((parameter(35)) .NE. "max(z_ pr)") then374 if (stringtofloat(parameter(35)) .GE. max(z_ pr) ) then375 print(" ") 376 print("Maximum of height ('max_z'="+parameter(35)+") is greater than available heights (="+max(z_ pr)+")")691 max_z=max(z_u) 692 if ((parameter(35)) .NE. "max(z_u)") then 693 if (stringtofloat(parameter(35)) .GE. max(z_u) ) then 694 print(" ") 695 print("Maximum of height ('max_z'="+parameter(35)+") is greater than available heights (="+max(z_u)+")") 377 696 print(" ") 378 697 exit … … 389 708 if (max_z .GE. max(z_pr) ) then 390 709 print(" ") 391 print("Maximum of height ('max_z'="+max_z+") is greater than available heights (="+max(z_ pr)+")")710 print("Maximum of height ('max_z'="+max_z+") is greater than available heights (="+max(z_u)+")") 392 711 print(" ") 393 712 exit … … 411 730 end if 412 731 end do 413 414 if (combine .EQ. 1) then 415 data_o=new((/m,end_time_step,dimz/),float) 416 data_o!0 = "e" 417 legend_label_oplot=new(m*(nt1),string) 418 mini=new(m,float) 419 maxi=new(m,float) 420 e=1 421 end if 422 423 do varn = 0, dim1 424 425 if ( isStrSubset( vNam(varn), "NORM") .or. isStrSubset( vNam(varn), "time") ) 732 733 data = new((/dim,(end_time_stepstart_time_step)+1,dimz/),float) 734 data_0 = new((/(end_time_stepstart_time_step)+1,dimz/),float) 735 data_0 = 0.0 736 t = new((/(end_time_stepstart_time_step)+1,dimz/),float) 737 t = 0.0 738 unit = new(dim,string) 739 740 if (over .EQ. 1) then 741 plot_u = gsn_csm_xy(wks,t,data_0(:,:),res) 742 miniu = 1.E27 743 maxiu =1.E27 744 plot_v = gsn_csm_xy(wks,t,data_0(:,:),res) 745 miniv = 1.E27 746 maxiv =1.E27 747 plot_w = gsn_csm_xy(wks,t,data_0(:,:),res) 748 miniw = 1.E27 749 maxiw =1.E27 750 plot_pt = gsn_csm_xy(wks,t,data_0(:,:),res) 751 minipt = 1.E27 752 maxipt =1.E27 753 plot_vpt = gsn_csm_xy(wks,t,data_0(:,:),res) 754 minivpt = 1.E27 755 maxivpt =1.E27 756 plot_lpt = gsn_csm_xy(wks,t,data_0(:,:),res) 757 minilpt = 1.E27 758 maxilpt =1.E27 759 plot_q = gsn_csm_xy(wks,t,data_0(:,:),res) 760 miniq = 1.E27 761 maxiq =1.E27 762 plot_qv = gsn_csm_xy(wks,t,data_0(:,:),res) 763 miniqv = 1.E27 764 maxiqv =1.E27 765 plot_ql = gsn_csm_xy(wks,t,data_0(:,:),res) 766 miniql = 1.E27 767 maxiql =1.E27 768 plot_rho = gsn_csm_xy(wks,t,data_0(:,:),res) 769 plot_s = gsn_csm_xy(wks,t,data_0(:,:),res) 770 plot_sa = gsn_csm_xy(wks,t,data_0(:,:),res) 771 plot_e = gsn_csm_xy(wks,t,data_0(:,:),res) 772 minie = 1.E27 773 maxie =1.E27 774 plot_es = gsn_csm_xy(wks,t,data_0(:,:),res) 775 minie = 1.E27 776 maxie =1.E27 777 plot_km = gsn_csm_xy(wks,t,data_0(:,:),res) 778 minie = 1.E27 779 maxie =1.E27 780 plot_kh = gsn_csm_xy(wks,t,data_0(:,:),res) 781 minie = 1.E27 782 maxie =1.E27 783 plot_l = gsn_csm_xy(wks,t,data_0(:,:),res) 784 plot_wpup = gsn_csm_xy(wks,t,data_0(:,:),res) 785 miniwpup = 1.E27 786 maxiwpup =1.E27 787 plot_wsus = gsn_csm_xy(wks,t,data_0(:,:),res) 788 miniwsus = 1.E27 789 maxiwsus =1.E27 790 plot_wu = gsn_csm_xy(wks,t,data_0(:,:),res) 791 miniwu = 1.E27 792 maxiwu =1.E27 793 plot_wpvp = gsn_csm_xy(wks,t,data_0(:,:),res) 794 miniwpvp = 1.E27 795 maxiwpvp =1.E27 796 plot_wsvs = gsn_csm_xy(wks,t,data_0(:,:),res) 797 miniwsvs = 1.E27 798 maxiwsvs =1.E27 799 plot_wv = gsn_csm_xy(wks,t,data_0(:,:),res) 800 miniwv = 1.E27 801 maxiwv =1.E27 802 plot_wpptp = gsn_csm_xy(wks,t,data_0(:,:),res) 803 miniwpptp = 1.E27 804 maxiwpptp =1.E27 805 plot_wspts = gsn_csm_xy(wks,t,data_0(:,:),res) 806 miniwspts = 1.E27 807 maxiwspts =1.E27 808 plot_wpt = gsn_csm_xy(wks,t,data_0(:,:),res) 809 miniwpt = 1.E27 810 maxiwpt =1.E27 811 plot_wsptsBC = gsn_csm_xy(wks,t,data_0(:,:),res) 812 miniwsptsBC = 1.E27 813 maxiwsptsBC =1.E27 814 plot_wptBC = gsn_csm_xy(wks,t,data_0(:,:),res) 815 miniwptBC = 1.E27 816 maxiwptBC =1.E27 817 plot_wpvptp = gsn_csm_xy(wks,t,data_0(:,:),res) 818 miniwpvptp = 1.E27 819 maxiwpvptp =1.E27 820 plot_wsvpts = gsn_csm_xy(wks,t,data_0(:,:),res) 821 miniwsvpts = 1.E27 822 maxiewsvpts=1.E27 823 plot_wvpt = gsn_csm_xy(wks,t,data_0(:,:),res) 824 miniwvpt = 1.E27 825 maxiwvpt =1.E27 826 plot_wpqp = gsn_csm_xy(wks,t,data_0(:,:),res) 827 miniwpqp = 1.E27 828 maxiwpqp =1.E27 829 plot_wsqs = gsn_csm_xy(wks,t,data_0(:,:),res) 830 miniwsqs = 1.E27 831 maxiwsqs =1.E27 832 plot_wq = gsn_csm_xy(wks,t,data_0(:,:),res) 833 miniwq = 1.E27 834 maxiwq =1.E27 835 plot_wpqvp = gsn_csm_xy(wks,t,data_0(:,:),res) 836 miniwpqvp = 1.E27 837 maxiwpqvp =1.E27 838 plot_wsqvs = gsn_csm_xy(wks,t,data_0(:,:),res) 839 miniwsqvs = 1.E27 840 maxiwsqvs =1.E27 841 plot_wqv = gsn_csm_xy(wks,t,data_0(:,:),res) 842 miniwqv = 1.E27 843 maxiwqv =1.E27 844 plot_wpsp = gsn_csm_xy(wks,t,data_0(:,:),res) 845 miniwpsp = 1.E27 846 maxiwpsp =1.E27 847 plot_wsss = gsn_csm_xy(wks,t,data_0(:,:),res) 848 miniwsss = 1.E27 849 maxiwsss =1.E27 850 plot_ws = gsn_csm_xy(wks,t,data_0(:,:),res) 851 miniws = 1.E27 852 maxiws =1.E27 853 plot_wpsap = gsn_csm_xy(wks,t,data_0(:,:),res) 854 miniwpsap = 1.E27 855 maxiwpsap =1.E27 856 plot_wssas = gsn_csm_xy(wks,t,data_0(:,:),res) 857 miniwssas = 1.E27 858 maxiwssas =1.E27 859 plot_wsa = gsn_csm_xy(wks,t,data_0(:,:),res) 860 miniwsa = 1.E27 861 maxiwsa =1.E27 862 plot_wses = gsn_csm_xy(wks,t,data_0(:,:),res) 863 plot_us2 = gsn_csm_xy(wks,t,data_0(:,:),res) 864 minius2 = 1.E27 865 maxius2 =1.E27 866 plot_vs2 = gsn_csm_xy(wks,t,data_0(:,:),res) 867 minivs2 = 1.E27 868 maxivs2 =1.E27 869 plot_ws2 = gsn_csm_xy(wks,t,data_0(:,:),res) 870 miniws2 = 1.E27 871 maxiws2 =1.E27 872 plot_pts2 = gsn_csm_xy(wks,t,data_0(:,:),res) 873 plot_ws3 = gsn_csm_xy(wks,t,data_0(:,:),res) 874 plot_Sw = gsn_csm_xy(wks,t,data_0(:,:),res) 875 plot_ws2pts = gsn_csm_xy(wks,t,data_0(:,:),res) 876 plot_wspts2 = gsn_csm_xy(wks,t,data_0(:,:),res) 877 plot_wsususodz = gsn_csm_xy(wks,t,data_0(:,:),res) 878 miniwsususodz = 1.E27 879 maxiwsususodz =1.E27 880 plot_wspsodz = gsn_csm_xy(wks,t,data_0(:,:),res) 881 miniwspsodz = 1.E27 882 maxiwspsodz =1.E27 883 plot_wpeodz = gsn_csm_xy(wks,t,data_0(:,:),res) 884 miniwpeodz = 1.E27 885 maxiwpeodz =1.E27 886 end if 887 888 n_o=0 889 do varn = 0,dim1 890 891 temp = f>$vNam(varn)$ 892 893 if ( isStrSubset( vNam(varn), "time") .OR. isStrSubset( vNam(varn), "NORM")) then 426 894 check = False 427 895 else … … 430 898 if (parameter(21) .NE. "variables") then 431 899 var=parameter(21) 432 check = isStrSubset( var, vNam(varn)+"," )900 check = isStrSubset( var,","+vNam(varn)+"," ) 433 901 end if 434 902 else 435 check = isStrSubset( var, vNam(varn)+"," )903 check = isStrSubset( var,","+vNam(varn)+"," ) 436 904 end if 437 905 end if 906 907 if (combine .EQ. 1) then 908 com=isStrSubset(c_var,","+vNam(varn)+"," ) 909 if (com) 910 check = False 911 data(varn,:,:) = temp(start_time_step:end_time_step,0:dimz1) 912 unit(varn) = temp@units 913 if (n_o .GT. number_comb1) then 914 print(" ") 915 print("Please set 'number_comb' to the right number of overlaying variables ('c_var')") 916 print(" ") 917 exit 918 end if 919 mini(n_o)=min(data(varn,:,:)) 920 maxi(n_o)=max(data(varn,:,:)) 921 varn=varn+1 922 n_o=n_o+1 923 end if 924 end if 925 926 if(check) then 927 928 z = f>$vNam(varn+1)$ 929 930 unit(varn) = temp@units 931 data(varn,:,:) = temp(start_time_step:end_time_step,0:dimz1) 932 933 if (over .EQ. 0) then 934 res@gsnLeftString = vNam(varn) 935 res@gsnRightString = unit(varn) 936 res@trYMinF = min_z 937 res@trYMaxF = max_z 938 res@trXMinF = min(data(varn,:,:)) 939 res@trXMaxF = max(data(varn,:,:)) 940 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z,res) 941 end if 942 943 if (vNam(varn) .EQ. "u") then 944 miniu=min(data(varn,:,:)) 945 maxiu=max(data(varn,:,:)) 946 if (over .EQ. 1) then 947 res@xyDashPattern = 0 948 plot_u = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 949 else 950 res@gsnLeftString = vNam(varn) 951 res@gsnRightString = unit(varn) 952 res@trXMinF = miniu 953 res@trXMaxF = maxiu 954 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 955 end if 956 end if 957 if (vNam(varn) .EQ. "v") then 958 miniv=min(data(varn,:,:)) 959 maxiv=max(data(varn,:,:)) 960 if (over .EQ. 1) then 961 res@xyDashPattern = 1 962 plot_v = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 963 else 964 res@gsnLeftString = vNam(varn) 965 res@gsnRightString = unit(varn) 966 res@trXMinF = miniv 967 res@trXMaxF = maxiv 968 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 969 end if 970 end if 971 if (vNam(varn) .EQ. "w") then 972 miniw=min(data(varn,:,:)) 973 maxiw=max(data(varn,:,:)) 974 if (over .EQ. 1) then 975 res@xyDashPattern = 2 976 plot_w = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 977 else 978 res@gsnLeftString = vNam(varn) 979 res@gsnRightString = unit(varn) 980 res@trXMinF = miniw 981 res@trXMaxF = maxiw 982 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 983 end if 984 end if 985 986 if (vNam(varn) .EQ. "pt") then 987 minipt=min(data(varn,:,:)) 988 maxipt=max(data(varn,:,:)) 989 if (over .EQ. 1) then 990 res@xyDashPattern = 0 991 plot_pt = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 992 else 993 res@gsnLeftString = vNam(varn) 994 res@gsnRightString = unit(varn) 995 res@trXMinF = minipt 996 res@trXMaxF = maxipt 997 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 998 end if 999 end if 1000 if (vNam(varn) .EQ. "vpt") then 1001 minivpt=min(data(varn,:,:)) 1002 maxivpt=max(data(varn,:,:)) 1003 if (over .EQ. 1) then 1004 res@xyDashPattern = 1 1005 plot_vpt = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1006 else 1007 res@gsnLeftString = vNam(varn) 1008 res@gsnRightString = unit(varn) 1009 res@trXMinF = minivpt 1010 res@trXMaxF = maxivpt 1011 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1012 end if 1013 end if 1014 if (vNam(varn) .EQ. "lpt") then 1015 minilpt=min(data(varn,:,:)) 1016 maxilpt=max(data(varn,:,:)) 1017 if (over .EQ. 1) then 1018 res@xyDashPattern = 2 1019 plot_lpt = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1020 else 1021 res@gsnLeftString = vNam(varn) 1022 res@gsnRightString = unit(varn) 1023 res@trXMinF = minilpt 1024 res@trXMaxF = maxilpt 1025 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1026 end if 1027 end if 1028 1029 if (vNam(varn) .EQ. "q") then 1030 miniq=min(data(varn,:,:)) 1031 maxiq=max(data(varn,:,:)) 1032 if (over .EQ. 1) then 1033 res@xyDashPattern = 0 1034 plot_q = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1035 else 1036 res@gsnLeftString = vNam(varn) 1037 res@gsnRightString = unit(varn) 1038 res@trXMinF = miniq 1039 res@trXMaxF = maxiq 1040 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1041 end if 1042 end if 1043 if (vNam(varn) .EQ. "qv") then 1044 miniqv=min(data(varn,:,:)) 1045 maxiqv=max(data(varn,:,:)) 1046 if (over .EQ. 1) then 1047 res@xyDashPattern = 1 1048 plot_qv = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1049 else 1050 res@gsnLeftString = vNam(varn) 1051 res@gsnRightString = unit(varn) 1052 res@trXMinF = miniqv 1053 res@trXMaxF = maxiqv 1054 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1055 end if 1056 end if 1057 if (vNam(varn) .EQ. "ql") then 1058 miniql=min(data(varn,:,:)) 1059 maxiql=max(data(varn,:,:)) 1060 if (over .EQ. 1) then 1061 res@xyDashPattern = 2 1062 plot_ql = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1063 else 1064 res@gsnLeftString = vNam(varn) 1065 res@gsnRightString = unit(varn) 1066 res@trXMinF = miniql 1067 res@trXMaxF = maxiql 1068 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1069 end if 1070 end if 1071 1072 if (vNam(varn) .EQ. "rho") then 1073 if (over .EQ. 1) then 1074 res@gsnLeftString = vNam(varn) 1075 res@gsnRightString = unit(varn) 1076 res@trXMinF = min(data(varn,:,:)) 1077 res@trXMaxF = max(data(varn,:,:)) 1078 plot_q = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1079 else 1080 res@gsnLeftString = vNam(varn) 1081 res@gsnRightString = unit(varn) 1082 res@trXMinF = min(data(varn,:,:)) 1083 res@trXMaxF = max(data(varn,:,:)) 1084 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1085 end if 1086 end if 1087 1088 if (vNam(varn) .EQ. "s") then 1089 if (over .EQ. 1) then 1090 res@gsnLeftString = vNam(varn) 1091 res@gsnRightString = unit(varn) 1092 res@trXMinF = min(data(varn,:,:)) 1093 res@trXMaxF = max(data(varn,:,:)) 1094 plot_s = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1095 else 1096 res@gsnLeftString = vNam(varn) 1097 res@gsnRightString = unit(varn) 1098 res@trXMinF = min(data(varn,:,:)) 1099 res@trXMaxF = max(data(varn,:,:)) 1100 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1101 end if 1102 end if 1103 1104 if (vNam(varn) .EQ. "sa") then 1105 if (over .EQ. 1) then 1106 res@gsnLeftString = vNam(varn) 1107 res@gsnRightString = unit(varn) 1108 res@trXMinF = min(data(varn,:,:)) 1109 res@trXMaxF = max(data(varn,:,:)) 1110 plot_sa = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1111 else 1112 res@gsnLeftString = vNam(varn) 1113 res@gsnRightString = unit(varn) 1114 res@trXMinF = min(data(varn,:,:)) 1115 res@trXMaxF = max(data(varn,:,:)) 1116 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1117 end if 1118 end if 1119 1120 if (vNam(varn) .EQ. "e") then 1121 minie=min(data(varn,:,:)) 1122 maxie=max(data(varn,:,:)) 1123 if (over .EQ. 1) then 1124 res@xyDashPattern = 0 1125 plot_e = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1126 else 1127 res@gsnLeftString = vNam(varn) 1128 res@gsnRightString = unit(varn) 1129 res@trXMinF = minie 1130 res@trXMaxF = maxie 1131 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1132 end if 1133 end if 1134 if (vNam(varn) .EQ. "es") then 1135 minies=min(data(varn,:,:)) 1136 maxies=max(data(varn,:,:)) 1137 if (over .EQ. 1) then 1138 res@xyDashPattern = 1 1139 plot_es = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1140 else 1141 res@gsnLeftString = vNam(varn) 1142 res@gsnRightString = unit(varn) 1143 res@trXMinF = minies 1144 res@trXMaxF = maxies 1145 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1146 end if 1147 end if 1148 1149 if (vNam(varn) .EQ. "km") then 1150 minikm=min(data(varn,:,:)) 1151 maxikm=max(data(varn,:,:)) 1152 if (over .EQ. 1) then 1153 res@xyDashPattern = 0 1154 plot_km = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1155 else 1156 res@gsnLeftString = vNam(varn) 1157 res@gsnRightString = unit(varn) 1158 res@trXMinF = minikm 1159 res@trXMaxF = maxikm 1160 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1161 end if 1162 end if 1163 if (vNam(varn) .EQ. "kh") then 1164 minikh=min(data(varn,:,:)) 1165 maxikh=max(data(varn,:,:)) 1166 if (over .EQ. 1) then 1167 res@xyDashPattern = 1 1168 plot_kh = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1169 else 1170 res@gsnLeftString = vNam(varn) 1171 res@gsnRightString = unit(varn) 1172 res@trXMinF = minikh 1173 res@trXMaxF = maxikh 1174 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1175 end if 1176 end if 1177 1178 if (vNam(varn) .EQ. "l") then 1179 if (over .EQ. 1) then 1180 res@gsnLeftString = vNam(varn) 1181 res@gsnRightString = unit(varn) 1182 res@trXMinF = min(data(varn,:,:)) 1183 res@trXMaxF = max(data(varn,:,:)) 1184 plot_l = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1185 else 1186 res@gsnLeftString = vNam(varn) 1187 res@gsnRightString = unit(varn) 1188 res@trXMinF = min(data(varn,:,:)) 1189 res@trXMaxF = max(data(varn,:,:)) 1190 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1191 end if 1192 end if 1193 1194 if (vNam(varn) .EQ. "wpup") then 1195 miniwpup=min(data(varn,:,:)) 1196 maxiwpup=max(data(varn,:,:)) 1197 if (over .EQ. 1) then 1198 res@xyDashPattern = 0 1199 plot_wpup = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1200 else 1201 res@gsnLeftString = vNam(varn) 1202 res@gsnRightString = unit(varn) 1203 res@trXMinF = miniwpup 1204 res@trXMaxF = maxiwpup 1205 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1206 end if 1207 end if 1208 if (vNam(varn) .EQ. "wsus") then 1209 miniwsus=min(data(varn,:,:)) 1210 maxiwsus=max(data(varn,:,:)) 1211 if (over .EQ. 1) then 1212 res@xyDashPattern = 1 1213 plot_wsus = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1214 else 1215 res@gsnLeftString = vNam(varn) 1216 res@gsnRightString = unit(varn) 1217 res@trXMinF = miniwsus 1218 res@trXMaxF = maxiwsus 1219 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1220 end if 1221 end if 1222 if (vNam(varn) .EQ. "wu") then 1223 miniwu=min(data(varn,:,:)) 1224 maxiwu=max(data(varn,:,:)) 1225 if (over .EQ. 1) then 1226 res@xyDashPattern = 2 1227 plot_wu = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1228 else 1229 res@gsnLeftString = vNam(varn) 1230 res@gsnRightString = unit(varn) 1231 res@trXMinF = miniwu 1232 res@trXMaxF = maxiwu 1233 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1234 end if 1235 end if 1236 1237 if (vNam(varn) .EQ. "wpvp") then 1238 miniwpvp=min(data(varn,:,:)) 1239 maxiwpvp=max(data(varn,:,:)) 1240 if (over .EQ. 1) then 1241 res@xyDashPattern = 0 1242 plot_wpvp = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1243 else 1244 res@gsnLeftString = vNam(varn) 1245 res@gsnRightString = unit(varn) 1246 res@trXMinF = miniwpvp 1247 res@trXMaxF = maxiwpvp 1248 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1249 end if 1250 end if 1251 if (vNam(varn) .EQ. "wsvs") then 1252 miniwsvs=min(data(varn,:,:)) 1253 maxiwsvs=max(data(varn,:,:)) 1254 if (over .EQ. 1) then 1255 res@xyDashPattern = 1 1256 plot_wsvs = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1257 else 1258 res@gsnLeftString = vNam(varn) 1259 res@gsnRightString = unit(varn) 1260 res@trXMinF = miniwsvs 1261 res@trXMaxF = maxiwsvs 1262 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1263 end if 1264 end if 1265 if (vNam(varn) .EQ. "wv") then 1266 miniwv=min(data(varn,:,:)) 1267 maxiwv=max(data(varn,:,:)) 1268 if (over .EQ. 1) then 1269 res@xyDashPattern = 2 1270 plot_wv = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1271 else 1272 res@gsnLeftString = vNam(varn) 1273 res@gsnRightString = unit(varn) 1274 res@trXMinF = miniwv 1275 res@trXMaxF = maxiwv 1276 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1277 end if 1278 end if 1279 1280 if (vNam(varn) .EQ. "wpptp") then 1281 miniwpptp=min(data(varn,:,:)) 1282 maxiwpptp=max(data(varn,:,:)) 1283 if (over .EQ. 1) then 1284 res@xyDashPattern = 0 1285 plot_wpptp = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1286 else 1287 res@gsnLeftString = vNam(varn) 1288 res@gsnRightString = unit(varn) 1289 res@trXMinF = miniwpptp 1290 res@trXMaxF = maxiwpptp 1291 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1292 end if 1293 end if 1294 if (vNam(varn) .EQ. "wspts") then 1295 miniwspts=min(data(varn,:,:)) 1296 maxiwspts=max(data(varn,:,:)) 1297 if (over .EQ. 1) then 1298 res@xyDashPattern = 1 1299 plot_wspts = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1300 else 1301 res@gsnLeftString = vNam(varn) 1302 res@gsnRightString = unit(varn) 1303 res@trXMinF = miniwspts 1304 res@trXMaxF = maxiwspts 1305 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1306 end if 1307 end if 1308 if (vNam(varn) .EQ. "wpt") then 1309 miniwpt=min(data(varn,:,:)) 1310 maxiwpt=max(data(varn,:,:)) 1311 if (over .EQ. 1) then 1312 res@xyDashPattern = 2 1313 plot_wpt = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1314 else 1315 res@gsnLeftString = vNam(varn) 1316 res@gsnRightString = unit(varn) 1317 res@trXMinF = miniwpt 1318 res@trXMaxF = maxiwpt 1319 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1320 end if 1321 end if 1322 1323 if (vNam(varn) .EQ. "wsptsBC") then 1324 miniwsptsBC=min(data(varn,:,:)) 1325 maxiwsptsBC=max(data(varn,:,:)) 1326 if (over .EQ. 1) then 1327 res@xyDashPattern = 0 1328 plot_wsptsBC = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1329 else 1330 res@gsnLeftString = vNam(varn) 1331 res@gsnRightString = unit(varn) 1332 res@trXMinF = miniwsptsBC 1333 res@trXMaxF = maxiwsptsBC 1334 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1335 end if 1336 end if 1337 if (vNam(varn) .EQ. "wptBC") then 1338 miniwptBC=min(data(varn,:,:)) 1339 maxiwptBC=max(data(varn,:,:)) 1340 if (over .EQ. 1) then 1341 res@xyDashPattern = 1 1342 plot_wptBC = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1343 else 1344 res@gsnLeftString = vNam(varn) 1345 res@gsnRightString = unit(varn) 1346 res@trXMinF = miniwptBC 1347 res@trXMaxF = maxiwptBC 1348 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1349 end if 1350 end if 1351 1352 if (vNam(varn) .EQ. "wpvptp") then 1353 miniwpvptp=min(data(varn,:,:)) 1354 maxiwpvptp=max(data(varn,:,:)) 1355 if (over .EQ. 1) then 1356 res@xyDashPattern = 0 1357 plot_wpvptp = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1358 else 1359 res@gsnLeftString = vNam(varn) 1360 res@gsnRightString = unit(varn) 1361 res@trXMinF = miniwpvptp 1362 res@trXMaxF = maxiwpvptp 1363 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1364 end if 1365 end if 1366 if (vNam(varn) .EQ. "wsvpts") then 1367 miniwsvpts=min(data(varn,:,:)) 1368 maxiwsvpts=max(data(varn,:,:)) 1369 if (over .EQ. 1) then 1370 res@xyDashPattern = 1 1371 plot_wsvpts = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1372 else 1373 res@gsnLeftString = vNam(varn) 1374 res@gsnRightString = unit(varn) 1375 res@trXMinF = miniwsvpts 1376 res@trXMaxF = maxiwsvpts 1377 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1378 end if 1379 end if 1380 if (vNam(varn) .EQ. "wvpt") then 1381 miniwvpt=min(data(varn,:,:)) 1382 maxiwvpt=max(data(varn,:,:)) 1383 if (over .EQ. 1) then 1384 res@xyDashPattern = 2 1385 plot_wvpt = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1386 else 1387 res@gsnLeftString = vNam(varn) 1388 res@gsnRightString = unit(varn) 1389 res@trXMinF = miniwvpt 1390 res@trXMaxF = maxiwvpt 1391 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1392 end if 1393 end if 1394 1395 if (vNam(varn) .EQ. "wpqp") then 1396 miniwpqp=min(data(varn,:,:)) 1397 maxiwpqp=max(data(varn,:,:)) 1398 if (over .EQ. 1) then 1399 res@xyDashPattern = 0 1400 plot_wpqp = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1401 else 1402 res@gsnLeftString = vNam(varn) 1403 res@gsnRightString = unit(varn) 1404 res@trXMinF = miniwpqp 1405 res@trXMaxF = maxiwpqp 1406 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1407 end if 1408 end if 1409 if (vNam(varn) .EQ. "wsqs") then 1410 miniwsqs=min(data(varn,:,:)) 1411 maxiwsqs=max(data(varn,:,:)) 1412 if (over .EQ. 1) then 1413 res@xyDashPattern = 1 1414 plot_wsqs = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1415 else 1416 res@gsnLeftString = vNam(varn) 1417 res@gsnRightString = unit(varn) 1418 res@trXMinF = miniwsqs 1419 res@trXMaxF = maxiwsqs 1420 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1421 end if 1422 end if 1423 if (vNam(varn) .EQ. "wq") then 1424 miniwq=min(data(varn,:,:)) 1425 maxiwq=max(data(varn,:,:)) 1426 if (over .EQ. 1) then 1427 res@xyDashPattern = 2 1428 plot_wq = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1429 else 1430 res@gsnLeftString = vNam(varn) 1431 res@gsnRightString = unit(varn) 1432 res@trXMinF = miniwq 1433 res@trXMaxF = maxiwq 1434 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1435 end if 1436 end if 1437 1438 if (vNam(varn) .EQ. "wpqvp") then 1439 miniwpqvp=min(data(varn,:,:)) 1440 maxiwpqvp=max(data(varn,:,:)) 1441 if (over .EQ. 1) then 1442 res@xyDashPattern = 0 1443 plot_wpqvp = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1444 else 1445 res@gsnLeftString = vNam(varn) 1446 res@gsnRightString = unit(varn) 1447 res@trXMinF = miniwpqvp 1448 res@trXMaxF = maxiwpqvp 1449 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1450 end if 1451 end if 1452 if (vNam(varn) .EQ. "wsqvs") then 1453 miniwsqvs=min(data(varn,:,:)) 1454 maxiwsqvs=max(data(varn,:,:)) 1455 if (over .EQ. 1) then 1456 res@xyDashPattern = 1 1457 plot_wsqvs = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1458 else 1459 res@gsnLeftString = vNam(varn) 1460 res@gsnRightString = unit(varn) 1461 res@trXMinF = miniwsqvs 1462 res@trXMaxF = maxiwsqvs 1463 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1464 end if 1465 end if 1466 if (vNam(varn) .EQ. "wqv") then 1467 miniwqv=min(data(varn,:,:)) 1468 maxiwqv=max(data(varn,:,:)) 1469 if (over .EQ. 1) then 1470 res@xyDashPattern = 2 1471 plot_wqv = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1472 else 1473 res@gsnLeftString = vNam(varn) 1474 res@gsnRightString = unit(varn) 1475 res@trXMinF = miniwqv 1476 res@trXMaxF = maxiwqv 1477 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1478 end if 1479 end if 1480 1481 if (vNam(varn) .EQ. "wpsp") then 1482 miniwpsp=min(data(varn,:,:)) 1483 maxiwpsp=max(data(varn,:,:)) 1484 if (over .EQ. 1) then 1485 res@xyDashPattern = 0 1486 plot_wpsp = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1487 else 1488 res@gsnLeftString = vNam(varn) 1489 res@gsnRightString = unit(varn) 1490 res@trXMinF = miniwpsp 1491 res@trXMaxF = maxiwpsp 1492 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1493 end if 1494 end if 1495 if (vNam(varn) .EQ. "wsss") then 1496 miniwsss=min(data(varn,:,:)) 1497 maxiwsss=max(data(varn,:,:)) 1498 if (over .EQ. 1) then 1499 res@xyDashPattern = 1 1500 plot_wsss = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1501 else 1502 res@gsnLeftString = vNam(varn) 1503 res@gsnRightString = unit(varn) 1504 res@trXMinF = miniwsss 1505 res@trXMaxF = maxiwsss 1506 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1507 end if 1508 end if 1509 if (vNam(varn) .EQ. "ws") then 1510 miniws=min(data(varn,:,:)) 1511 maxiws=max(data(varn,:,:)) 1512 if (over .EQ. 1) then 1513 res@xyDashPattern = 2 1514 plot_ws = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1515 else 1516 res@gsnLeftString = vNam(varn) 1517 res@gsnRightString = unit(varn) 1518 res@trXMinF = miniws 1519 res@trXMaxF = maxiws 1520 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1521 end if 1522 end if 1523 1524 if (vNam(varn) .EQ. "wpsap") then 1525 miniwpsap=min(data(varn,:,:)) 1526 maxiwpsap=max(data(varn,:,:)) 1527 if (over .EQ. 1) then 1528 res@xyDashPattern = 0 1529 plot_wpsap = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1530 else 1531 res@gsnLeftString = vNam(varn) 1532 res@gsnRightString = unit(varn) 1533 res@trXMinF = miniwpsap 1534 res@trXMaxF = maxiwpsap 1535 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1536 end if 1537 end if 1538 if (vNam(varn) .EQ. "wssas") then 1539 miniwssas=min(data(varn,:,:)) 1540 maxiwssas=max(data(varn,:,:)) 1541 if (over .EQ. 1) then 1542 res@xyDashPattern = 1 1543 plot_wssas = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1544 else 1545 res@gsnLeftString = vNam(varn) 1546 res@gsnRightString = unit(varn) 1547 res@trXMinF = miniwssas 1548 res@trXMaxF = maxiwssas 1549 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1550 end if 1551 end if 1552 if (vNam(varn) .EQ. "wsa") then 1553 miniwsa=min(data(varn,:,:)) 1554 maxiwsa=max(data(varn,:,:)) 1555 if (over .EQ. 1) then 1556 res@xyDashPattern = 2 1557 plot_wsa = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1558 else 1559 res@gsnLeftString = vNam(varn) 1560 res@gsnRightString = unit(varn) 1561 res@trXMinF = miniwsa 1562 res@trXMaxF = maxiwsa 1563 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1564 end if 1565 end if 1566 1567 if (vNam(varn) .EQ. "wses") then 1568 if (over .EQ. 1) then 1569 res@gsnLeftString = vNam(varn) 1570 res@gsnRightString = unit(varn) 1571 res@trXMinF = min(data(varn,:,:)) 1572 res@trXMaxF = max(data(varn,:,:)) 1573 plot_wses = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1574 else 1575 res@gsnLeftString = vNam(varn) 1576 res@gsnRightString = unit(varn) 1577 res@trXMinF = min(data(varn,:,:)) 1578 res@trXMaxF = max(data(varn,:,:)) 1579 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1580 end if 1581 end if 1582 1583 if (vNam(varn) .EQ. "us2") then 1584 minius2=min(data(varn,:,:)) 1585 maxius2=max(data(varn,:,:)) 1586 if (over .EQ. 1) then 1587 res@xyDashPattern = 0 1588 plot_us2 = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1589 else 1590 res@gsnLeftString = vNam(varn) 1591 res@gsnRightString = unit(varn) 1592 res@trXMinF = minius2 1593 res@trXMaxF = maxius2 1594 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1595 end if 1596 end if 1597 if (vNam(varn) .EQ. "vs2") then 1598 minivs2=min(data(varn,:,:)) 1599 maxivs2=max(data(varn,:,:)) 1600 if (over .EQ. 1) then 1601 res@xyDashPattern = 1 1602 plot_vs2 = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1603 else 1604 res@gsnLeftString = vNam(varn) 1605 res@gsnRightString = unit(varn) 1606 res@trXMinF = minivs2 1607 res@trXMaxF = maxivs2 1608 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1609 end if 1610 end if 1611 if (vNam(varn) .EQ. "ws2") then 1612 miniws2=min(data(varn,:,:)) 1613 maxiws2=max(data(varn,:,:)) 1614 if (over .EQ. 1) then 1615 res@xyDashPattern = 2 1616 plot_ws2 = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1617 else 1618 res@gsnLeftString = vNam(varn) 1619 res@gsnRightString = unit(varn) 1620 res@trXMinF = miniws2 1621 res@trXMaxF = maxiws2 1622 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1623 end if 1624 end if 1625 1626 if (vNam(varn) .EQ. "pts2") then 1627 minipts2=min(data(varn,:,:)) 1628 maxipts2=max(data(varn,:,:)) 1629 if (over .EQ. 1) then 1630 res@gsnLeftString = vNam(varn) 1631 res@gsnRightString = unit(varn) 1632 res@trXMinF = minipts2 1633 res@trXMaxF = maxipts2 1634 plot_pts2 = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1635 else 1636 res@gsnLeftString = vNam(varn) 1637 res@gsnRightString = unit(varn) 1638 res@trXMinF = minipts2 1639 res@trXMaxF = maxipts2 1640 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1641 end if 1642 end if 1643 1644 if (vNam(varn) .EQ. "ws3") then 1645 miniws3=min(data(varn,:,:)) 1646 maxiws3=max(data(varn,:,:)) 1647 if (over .EQ. 1) then 1648 res@gsnLeftString = vNam(varn) 1649 res@gsnRightString = unit(varn) 1650 res@trXMinF = miniws3 1651 res@trXMaxF = maxiws3 1652 plot_ws3 = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1653 else 1654 res@gsnLeftString = vNam(varn) 1655 res@gsnRightString = unit(varn) 1656 res@trXMinF = miniws3 1657 res@trXMaxF = maxiws3 1658 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1659 end if 1660 end if 1661 1662 if (vNam(varn) .EQ. "Sw") then 1663 miniSw=min(data(varn,:,:)) 1664 maxiSw=max(data(varn,:,:)) 1665 if (over .EQ. 1) then 1666 res@gsnLeftString = vNam(varn) 1667 res@gsnRightString = unit(varn) 1668 res@trXMinF = miniSw 1669 res@trXMaxF = maxiSw 1670 plot_Sw = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1671 else 1672 res@gsnLeftString = vNam(varn) 1673 res@gsnRightString = unit(varn) 1674 res@trXMinF = miniSw 1675 res@trXMaxF = maxiSw 1676 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1677 end if 1678 end if 1679 1680 if (vNam(varn) .EQ. "ws2pts") then 1681 miniws2pts=min(data(varn,:,:)) 1682 maxiws2pts=max(data(varn,:,:)) 1683 if (over .EQ. 1) then 1684 res@gsnLeftString = vNam(varn) 1685 res@gsnRightString = unit(varn) 1686 res@trXMinF = miniws2pts 1687 res@trXMaxF = maxiws2pts 1688 plot_ws2pts = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1689 else 1690 res@gsnLeftString = vNam(varn) 1691 res@gsnRightString = unit(varn) 1692 res@trXMinF = miniws2pts 1693 res@trXMaxF = maxiws2pts 1694 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1695 end if 1696 end if 1697 1698 if (vNam(varn) .EQ. "wspts2") then 1699 miniwspts2=min(data(varn,:,:)) 1700 maxiwspts2=max(data(varn,:,:)) 1701 if (over .EQ. 1) then 1702 res@gsnLeftString = vNam(varn) 1703 res@gsnRightString = unit(varn) 1704 res@trXMinF = miniwspts2 1705 res@trXMaxF = maxiwspts2 1706 plot_wspts2 = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1707 else 1708 res@gsnLeftString = vNam(varn) 1709 res@gsnRightString = unit(varn) 1710 res@trXMinF = miniwspts2 1711 res@trXMaxF = maxiwspts2 1712 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1713 end if 1714 end if 1715 1716 if (vNam(varn) .EQ. "wsususodz") then 1717 miniwsususodz=min(data(varn,:,:)) 1718 maxiwsususodz=max(data(varn,:,:)) 1719 if (over .EQ. 1) then 1720 res@xyDashPattern = 0 1721 plot_wsususodz = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1722 else 1723 res@gsnLeftString = vNam(varn) 1724 res@gsnRightString = unit(varn) 1725 res@trXMinF = miniwsususodz 1726 res@trXMaxF = maxiwsususodz 1727 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1728 end if 1729 end if 1730 if (vNam(varn) .EQ. "wspsodz") then 1731 miniwspsodz=min(data(varn,:,:)) 1732 maxiwspsodz=max(data(varn,:,:)) 1733 if (over .EQ. 1) then 1734 res@xyDashPattern = 1 1735 plot_wspsodz = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1736 else 1737 res@gsnLeftString = vNam(varn) 1738 res@gsnRightString = unit(varn) 1739 res@trXMinF = miniwspsodz 1740 res@trXMaxF = maxiwspsodz 1741 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1742 end if 1743 end if 1744 if (vNam(varn) .EQ. "wpeodz") then 1745 miniwpeodz=min(data(varn,:,:)) 1746 maxiwpeodz=max(data(varn,:,:)) 1747 if (over .EQ. 1) then 1748 res@xyDashPattern = 2 1749 plot_wpeodz = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1750 else 1751 res@gsnLeftString = vNam(varn) 1752 res@gsnRightString = unit(varn) 1753 res@trXMinF = miniwpeodz 1754 res@trXMaxF = maxiwpeodz 1755 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1756 end if 1757 end if 1758 if (over .EQ. 0) then 1759 n=n+1 1760 end if 1761 varn=varn+1 1762 end if 1763 delete(temp) 1764 end do 1765 1766 if (over .EQ. 1 ) then 1767 1768 overlay(plot_u,plot_v) 1769 overlay(plot_u,plot_w) 1770 u=0 1771 overlay(plot_pt,plot_vpt) 1772 overlay(plot_pt,plot_lpt) 1773 pt=0 1774 overlay(plot_q,plot_qv) 1775 overlay(plot_q,plot_ql) 1776 q=0 1777 overlay(plot_e,plot_es) 1778 e=0 1779 overlay(plot_km,plot_kh) 1780 km=0 1781 overlay(plot_wpup,plot_wsus) 1782 overlay(plot_wpup,plot_wu) 1783 wpup=0 1784 overlay(plot_wpvp,plot_wsvs) 1785 overlay(plot_wpvp,plot_wv) 1786 wpvp=0 1787 overlay(plot_wpptp,plot_wspts) 1788 overlay(plot_wpptp,plot_wpt) 1789 wpptp=0 1790 overlay(plot_wsptsBC,plot_wptBC) 1791 wsptsBC=0 1792 overlay(plot_wpvptp,plot_wsvpts) 1793 overlay(plot_wpvptp,plot_wvpt) 1794 wpvptp=0 1795 overlay(plot_wpqp,plot_wsqs) 1796 overlay(plot_wpqp,plot_wq) 1797 wpqp=0 1798 overlay(plot_wpqvp,plot_wsqvs) 1799 overlay(plot_wpqvp,plot_wqv) 1800 wpqvp=0 1801 overlay(plot_wpsp,plot_wsss) 1802 overlay(plot_wpsp,plot_ws) 1803 wpsp=0 1804 overlay(plot_wpsap,plot_wssas) 1805 overlay(plot_wpsap,plot_wsa) 1806 wpsap=0 1807 overlay(plot_us2,plot_vs2) 1808 overlay(plot_us2,plot_ws2) 1809 us2=0 1810 overlay(plot_wsususodz,plot_wspsodz) 1811 overlay(plot_wsususodz,plot_wpeodz) 1812 wsususodz=0 1813 1814 end if 1815 1816 if (over .EQ. 1) then 1817 1818 do varn = 0,dim1 1819 1820 if ( isStrSubset( vNam(varn), "time") .OR. isStrSubset( vNam(varn), "NORM")) then 1821 check = False 1822 else 1823 if (.not. isvar("var")) then 1824 check = True 1825 if (parameter(21) .NE. "variables") then 1826 var=parameter(21) 1827 check = isStrSubset( var,","+vNam(varn)+"," ) 1828 end if 1829 else 1830 check = isStrSubset( var,","+vNam(varn)+"," ) 1831 end if 1832 end if 1833 1834 if (check) 1835 1836 z = f>$vNam(varn+1)$ 1837 1838 ;res@gsnLeftString = vNam(varn) 1839 res@gsnRightString = unit(varn) 1840 res@trYMinF = min_z 1841 res@trYMaxF = max_z 1842 res@trXMinF = min(data(varn,:,:)) 1843 res@trXMaxF = max(data(varn,:,:)) 1844 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z,res) 1845 1846 if (vNam(varn) .EQ. "u" .OR. vNam(varn) .EQ. "v" .OR. vNam(varn) .EQ. "w") then 1847 if (u .EQ. 0) then 1848 res@gsnLeftString = "u, v and w" 1849 res@gsnRightString = unit(varn) 1850 res@trXMinF = min((/miniu,miniv,miniw/)) 1851 res@trXMaxF = max((/maxiu,maxiv,maxiw/)) 1852 if (vNam(varn) .EQ. "w") then 1853 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 1854 else 1855 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1856 end if 1857 1858 ; *************************************************** 1859 ; legend for combined plot 1860 ; *************************************************** 1861 1862 lgres = True 1863 lgMonoDashIndex = False 1864 lgres@lgLabelFont = "helvetica" 1865 lgres@lgLabelFontHeightF = .1 1866 lgres@vpWidthF = 0.12 1867 lgres@vpHeightF = 0.1 1868 lgres@lgDashIndexes = (/0,1,2/) 1869 lbid = gsn_create_legend(wks,3,(/"u","v","w"/),lgres) 1870 1871 amres = True 1872 amres@amParallelPosF = 0.65 1873 amres@amOrthogonalPosF = 0.2 1874 annoid1 = gsn_add_annotation(plot(n),lbid,amres) 1875 overlay(plot(n),plot_u) 1876 u=1 1877 else 1878 varn=varn+1 1879 continue 1880 end if 1881 end if 438 1882 439 if (combine .EQ. 1) then 440 if (c_var .EQ. " ") then 441 print(" ") 442 print("Please indicate the variables you would like to combine ('c_var')") 443 print(" ") 444 exit 445 end if 446 com=isStrSubset(c_var,vNam(varn)+",") 447 if (com) then 448 e=e+1 1883 if (vNam(varn) .EQ. "pt" .OR. vNam(varn) .EQ. "vpt" .OR. vNam(varn) .EQ. "lpt") then 1884 if (pt .EQ. 0) then 1885 res@gsnLeftString = "pt, vpt and lpt" 1886 res@gsnRightString = unit(varn) 1887 res@trXMinF = min((/minipt,minivpt,minilpt/)) 1888 res@trXMaxF = max((/maxipt,maxivpt,maxilpt/)) 1889 1890 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1891 1892 ; *************************************************** 1893 ; legend for combined plot 1894 ; *************************************************** 1895 1896 lgres = True 1897 lgMonoDashIndex = False 1898 lgres@lgLabelFont = "helvetica" 1899 lgres@lgLabelFontHeightF = .1 1900 lgres@vpWidthF = 0.12 1901 lgres@vpHeightF = 0.1 1902 lgres@lgDashIndexes = (/0,1,2/) 1903 lbid = gsn_create_legend(wks,3,(/"pt","vpt","lpt"/),lgres) 1904 1905 amres = True 1906 amres@amParallelPosF = 0.65 1907 amres@amOrthogonalPosF = 0.2 1908 annoid1 = gsn_add_annotation(plot(n),lbid,amres) 1909 overlay(plot(n),plot_pt) 1910 pt=1 1911 else 1912 varn=varn+1 1913 continue 1914 end if 1915 end if 1916 if (vNam(varn) .EQ. "q" .OR. vNam(varn) .EQ. "qv" .OR. vNam(varn) .EQ. "ql") then 1917 if (q .EQ. 0) then 1918 res@gsnLeftString = "q, qv and ql" 1919 res@gsnRightString = unit(varn) 1920 res@trXMinF = min((/miniq,miniqv,miniql/)) 1921 res@trXMaxF = max((/maxiq,maxiqv,maxiql/)) 1922 1923 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1924 1925 ; *************************************************** 1926 ; legend for combined plot 1927 ; *************************************************** 1928 1929 lgres = True 1930 lgMonoDashIndex = False 1931 lgres@lgLabelFont = "helvetica" 1932 lgres@lgLabelFontHeightF = .1 1933 lgres@vpWidthF = 0.12 1934 lgres@vpHeightF = 0.1 1935 lgres@lgDashIndexes = (/0,1,2/) 1936 lbid = gsn_create_legend(wks,3,(/"q","qv","ql"/),lgres) 1937 1938 amres = True 1939 amres@amParallelPosF = 0.65 1940 amres@amOrthogonalPosF = 0.2 1941 annoid1 = gsn_add_annotation(plot(n),lbid,amres) 1942 overlay(plot(n),plot_q) 1943 q=1 1944 else 1945 varn=varn+1 1946 continue 1947 end if 1948 end if 1949 if (vNam(varn) .EQ. "rho") then 1950 plot(n) = plot_rho 1951 end if 1952 if (vNam(varn) .EQ. "s") then 1953 plot(n) = plot_s 1954 end if 1955 if (vNam(varn) .EQ. "sa") then 1956 plot(n) = plot_sa 1957 end if 1958 if (vNam(varn) .EQ. "e" .OR. vNam(varn) .EQ. "es") then 1959 if (e .EQ. 0) then 1960 res@gsnLeftString = "e and es" 1961 res@gsnRightString = unit(varn) 1962 res@trXMinF = min((/minie,minies/)) 1963 res@trXMaxF = max((/maxie,maxies/)) 1964 1965 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1966 1967 ; *************************************************** 1968 ; legend for combined plot 1969 ; *************************************************** 1970 1971 lgres = True 1972 lgMonoDashIndex = False 1973 lgres@lgLabelFont = "helvetica" 1974 lgres@lgLabelFontHeightF = .1 1975 lgres@vpWidthF = 0.12 1976 lgres@vpHeightF = 0.1 1977 lgres@lgDashIndexes = (/0,1,2/) 1978 lbid = gsn_create_legend(wks,3,(/"e","es"/),lgres) 1979 1980 amres = True 1981 amres@amParallelPosF = 0.65 1982 amres@amOrthogonalPosF = 0.2 1983 annoid1 = gsn_add_annotation(plot(n),lbid,amres) 1984 overlay(plot(n),plot_e) 1985 e=1 1986 else 1987 varn=varn+1 1988 continue 1989 end if 1990 end if 1991 if (vNam(varn) .EQ. "km" .OR. vNam(varn) .EQ. "kh") then 1992 if (km .EQ. 0) then 1993 res@gsnLeftString = "km and kh" 1994 res@gsnRightString = unit(varn) 1995 res@trXMinF = min((/minikm,minikh/)) 1996 res@trXMaxF = max((/maxikm,maxikh/)) 1997 1998 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_u,res) 1999 2000 ; *************************************************** 2001 ; legend for combined plot 2002 ; *************************************************** 2003 2004 lgres = True 2005 lgMonoDashIndex = False 2006 lgres@lgLabelFont = "helvetica" 2007 lgres@lgLabelFontHeightF = .1 2008 lgres@vpWidthF = 0.12 2009 lgres@vpHeightF = 0.1 2010 lgres@lgDashIndexes = (/0,1,2/) 2011 lbid = gsn_create_legend(wks,3,(/"km","kh"/),lgres) 2012 2013 amres = True 2014 amres@amParallelPosF = 0.65 2015 amres@amOrthogonalPosF = 0.2 2016 annoid1 = gsn_add_annotation(plot(n),lbid,amres) 2017 overlay(plot(n),plot_km) 2018 km=1 2019 else 2020 varn=varn+1 2021 continue 2022 end if 2023 end if 2024 if (vNam(varn) .EQ. "l") then 2025 plot(n) = plot_l 2026 end if 2027 if (vNam(varn) .EQ. "wpup" .OR. vNam(varn) .EQ. "wsus" .OR. vNam(varn) .EQ. "wu") then 2028 if (wpup .EQ. 0) then 2029 res@gsnLeftString = "wpup, wsus and wu" 2030 res@gsnRightString = unit(varn) 2031 res@trXMinF = min((/miniwpup,miniwsus,miniwu/)) 2032 res@trXMaxF = max((/maxiwpup,maxiwsus,maxiwu/)) 2033 2034 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 2035 2036 ; *************************************************** 2037 ; legend for combined plot 2038 ; *************************************************** 2039 2040 lgres = True 2041 lgMonoDashIndex = False 2042 lgres@lgLabelFont = "helvetica" 2043 lgres@lgLabelFontHeightF = .1 2044 lgres@vpWidthF = 0.12 2045 lgres@vpHeightF = 0.1 2046 lgres@lgDashIndexes = (/0,1,2/) 2047 lbid = gsn_create_legend(wks,3,(/"wpup","wsus","wu"/),lgres) 2048 2049 amres = True 2050 amres@amParallelPosF = 0.65 2051 amres@amOrthogonalPosF = 0.2 2052 annoid1 = gsn_add_annotation(plot(n),lbid,amres) 2053 overlay(plot(n),plot_wpup) 2054 wpup=1 2055 else 2056 varn=varn+1 2057 continue 2058 end if 2059 end if 2060 if (vNam(varn) .EQ. "wpvp" .OR. vNam(varn) .EQ. "wsvs" .OR.vNam(varn) .EQ. "wv") then 2061 if (wpvp .EQ. 0) then 2062 res@gsnLeftString = "wpvp, wsus and wv" 2063 res@gsnRightString = unit(varn) 2064 res@trXMinF = min((/miniwpvp,miniwsvs,miniwv/)) 2065 res@trXMaxF = max((/maxiwpvp,maxiwsvs,maxiwv/)) 2066 2067 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 2068 2069 ; *************************************************** 2070 ; legend for combined plot 2071 ; *************************************************** 2072 2073 lgres = True 2074 lgMonoDashIndex = False 2075 lgres@lgLabelFont = "helvetica" 2076 lgres@lgLabelFontHeightF = .1 2077 lgres@vpWidthF = 0.12 2078 lgres@vpHeightF = 0.1 2079 lgres@lgDashIndexes = (/0,1,2/) 2080 lbid = gsn_create_legend(wks,3,(/"wpvp","wsvs","wv"/),lgres) 2081 2082 amres = True 2083 amres@amParallelPosF = 0.65 2084 amres@amOrthogonalPosF = 0.2 2085 annoid1 = gsn_add_annotation(plot(n),lbid,amres) 2086 overlay(plot(n),plot_wpvp) 2087 wpup=0 2088 else 2089 varn=varn+1 2090 continue 2091 end if 2092 end if 2093 if (vNam(varn) .EQ. "wpptp" .OR. vNam(varn) .EQ. "wspts" .OR. vNam(varn) .EQ. "wpt") then 2094 if (wpptp .EQ. 0) then 2095 res@gsnLeftString = "wpptp, wspts and wv" 2096 res@gsnRightString = unit(varn) 2097 res@trXMinF = min((/miniwpptp,miniwspts,miniwpt/)) 2098 res@trXMaxF = max((/maxiwpptp,maxiwspts,maxiwpt/)) 2099 2100 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 2101 2102 ; *************************************************** 2103 ; legend for combined plot 2104 ; *************************************************** 2105 2106 lgres = True 2107 lgMonoDashIndex = False 2108 lgres@lgLabelFont = "helvetica" 2109 lgres@lgLabelFontHeightF = .1 2110 lgres@vpWidthF = 0.12 2111 lgres@vpHeightF = 0.1 2112 lgres@lgDashIndexes = (/0,1,2/) 2113 lbid = gsn_create_legend(wks,3,(/"wpptp","wspts","wpt"/),lgres) 2114 2115 amres = True 2116 amres@amParallelPosF = 0.65 2117 amres@amOrthogonalPosF = 0.2 2118 annoid1 = gsn_add_annotation(plot(n),lbid,amres) 2119 overlay(plot(n),plot_wpptp) 2120 wpptp=1 2121 else 2122 varn=varn+1 2123 continue 2124 end if 2125 end if 2126 if (vNam(varn) .EQ. "wsptsBC" .OR. vNam(varn) .EQ. "wptBC") then 2127 if (wsptsBC .EQ. 0) then 2128 res@gsnLeftString = "wsptsBC and wptBC" 2129 res@gsnRightString = unit(varn) 2130 res@trXMinF = min((/miniwsptsBC,miniwptBC/)) 2131 res@trXMaxF = max((/maxiwsptsBC,maxiwptBC/)) 2132 2133 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 2134 2135 ; *************************************************** 2136 ; legend for combined plot 2137 ; *************************************************** 2138 2139 lgres = True 2140 lgMonoDashIndex = False 2141 lgres@lgLabelFont = "helvetica" 2142 lgres@lgLabelFontHeightF = .1 2143 lgres@vpWidthF = 0.12 2144 lgres@vpHeightF = 0.1 2145 lgres@lgDashIndexes = (/0,1,2/) 2146 lbid = gsn_create_legend(wks,3,(/"wsptsBC","wptBC"/),lgres) 2147 2148 amres = True 2149 amres@amParallelPosF = 0.65 2150 amres@amOrthogonalPosF = 0.2 2151 annoid1 = gsn_add_annotation(plot(n),lbid,amres) 2152 overlay(plot(n),plot_wsptsBC) 2153 wsptsBC=1 2154 else 2155 varn=varn+1 2156 continue 2157 end if 2158 end if 2159 if (vNam(varn) .EQ. "wpvptp" .OR. vNam(varn) .EQ. "wsvpts" .OR. vNam(varn) .EQ. "wvpt") then 2160 if (wpvptp .EQ. 0) then 2161 res@gsnLeftString = "wpvptp, wsvpts and wv" 2162 res@gsnRightString = unit(varn) 2163 res@trXMinF = min((/miniwpvptp,miniwsvpts,miniwvpt/)) 2164 res@trXMaxF = max((/maxiwpvptp,maxiwsvpts,maxiwvpt/)) 2165 2166 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 2167 2168 ; *************************************************** 2169 ; legend for combined plot 2170 ; *************************************************** 2171 2172 lgres = True 2173 lgMonoDashIndex = False 2174 lgres@lgLabelFont = "helvetica" 2175 lgres@lgLabelFontHeightF = .1 2176 lgres@vpWidthF = 0.12 2177 lgres@vpHeightF = 0.1 2178 lgres@lgDashIndexes = (/0,1,2/) 2179 lbid = gsn_create_legend(wks,3,(/"wpvptp","wsvpts","wvpt"/),lgres) 2180 2181 amres = True 2182 amres@amParallelPosF = 0.65 2183 amres@amOrthogonalPosF = 0.2 2184 annoid1 = gsn_add_annotation(plot(n),lbid,amres) 2185 overlay(plot(n),plot_wpvptp) 2186 wpvptp=1 2187 else 2188 varn=varn+1 2189 continue 2190 end if 2191 end if 2192 if (vNam(varn) .EQ. "wpqp" .OR. vNam(varn) .EQ. "wsqs" .OR. vNam(varn) .EQ. "wq") then 2193 if (wpqp .EQ. 0) then 2194 res@gsnLeftString = "wpqp, wsqs and wq" 2195 res@gsnRightString = unit(varn) 2196 res@trXMinF = min((/miniwpqp,miniwsqs,miniwq/)) 2197 res@trXMaxF = max((/maxiwpqp,maxiwsqs,maxiwq/)) 2198 2199 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 2200 2201 ; *************************************************** 2202 ; legend for combined plot 2203 ; *************************************************** 2204 2205 lgres = True 2206 lgMonoDashIndex = False 2207 lgres@lgLabelFont = "helvetica" 2208 lgres@lgLabelFontHeightF = .1 2209 lgres@vpWidthF = 0.12 2210 lgres@vpHeightF = 0.1 2211 lgres@lgDashIndexes = (/0,1,2/) 2212 lbid = gsn_create_legend(wks,3,(/"wpqp","wsqs","wq"/),lgres) 2213 2214 amres = True 2215 amres@amParallelPosF = 0.65 2216 amres@amOrthogonalPosF = 0.2 2217 annoid1 = gsn_add_annotation(plot(n),lbid,amres) 2218 overlay(plot(n),plot_wpqp) 2219 wpqp=1 2220 else 2221 varn=varn+1 2222 continue 2223 end if 2224 end if 2225 if (vNam(varn) .EQ. "wpqvp" .OR. vNam(varn) .EQ. "wsqvs" .OR. vNam(varn) .EQ. "wqv") then 2226 if (wpqvp .EQ. 0) then 2227 res@gsnLeftString = "wpqvp, wsqvs and wqv" 2228 res@gsnRightString = unit(varn) 2229 res@trXMinF = min((/miniwpqp,miniwsqvs,miniwqv/)) 2230 res@trXMaxF = max((/maxiwpqp,maxiwsqvs,maxiwqv/)) 2231 2232 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 2233 2234 ; *************************************************** 2235 ; legend for combined plot 2236 ; *************************************************** 2237 2238 lgres = True 2239 lgMonoDashIndex = False 2240 lgres@lgLabelFont = "helvetica" 2241 lgres@lgLabelFontHeightF = .1 2242 lgres@vpWidthF = 0.12 2243 lgres@vpHeightF = 0.1 2244 lgres@lgDashIndexes = (/0,1,2/) 2245 lbid = gsn_create_legend(wks,3,(/"wpqvp","wsqvs","wqv"/),lgres) 2246 2247 amres = True 2248 amres@amParallelPosF = 0.65 2249 amres@amOrthogonalPosF = 0.2 2250 annoid1 = gsn_add_annotation(plot(n),lbid,amres) 2251 overlay(plot(n),plot_wpqvp) 2252 wpqvp=1 2253 else 2254 varn=varn+1 2255 continue 2256 end if 2257 end if 2258 if (vNam(varn) .EQ. "wpsp" .OR. vNam(varn) .EQ. "wsss" .OR. vNam(varn) .EQ. "ws") then 2259 if (wpsp .EQ. 0) then 2260 res@gsnLeftString = "wpsp, wsss and ws" 2261 res@gsnRightString = unit(varn) 2262 res@trXMinF = min((/miniwpsp,miniwsss,miniws/)) 2263 res@trXMaxF = max((/maxiwpsp,maxiwsss,maxiws/)) 2264 2265 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 2266 2267 ; *************************************************** 2268 ; legend for combined plot 2269 ; *************************************************** 2270 2271 lgres = True 2272 lgMonoDashIndex = False 2273 lgres@lgLabelFont = "helvetica" 2274 lgres@lgLabelFontHeightF = .1 2275 lgres@vpWidthF = 0.12 2276 lgres@vpHeightF = 0.1 2277 lgres@lgDashIndexes = (/0,1,2/) 2278 lbid = gsn_create_legend(wks,3,(/"wpsp","wsss","ws"/),lgres) 2279 2280 amres = True 2281 amres@amParallelPosF = 0.65 2282 amres@amOrthogonalPosF = 0.2 2283 annoid1 = gsn_add_annotation(plot(n),lbid,amres) 2284 overlay(plot(n),plot_wpsp) 2285 wpsp=1 2286 else 2287 varn=varn+1 2288 continue 2289 end if 2290 end if 2291 if (vNam(varn) .EQ. "wpsap" .OR.vNam(varn) .EQ. "wssas" .OR. vNam(varn) .EQ. "wsa") then 2292 if (wpsap .EQ. 0) then 2293 res@gsnLeftString = "wpsap, wssas and wsa" 2294 res@gsnRightString = unit(varn) 2295 res@trXMinF = min((/miniwpsap,miniwssas,miniwsa/)) 2296 res@trXMaxF = max((/maxiwpsap,maxiwssas,maxiwsa/)) 2297 2298 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 2299 2300 ; *************************************************** 2301 ; legend for combined plot 2302 ; *************************************************** 2303 2304 lgres = True 2305 lgMonoDashIndex = False 2306 lgres@lgLabelFont = "helvetica" 2307 lgres@lgLabelFontHeightF = .1 2308 lgres@vpWidthF = 0.12 2309 lgres@vpHeightF = 0.1 2310 lgres@lgDashIndexes = (/0,1,2/) 2311 lbid = gsn_create_legend(wks,3,(/"wpsap","wssas","wsa"/),lgres) 2312 2313 amres = True 2314 amres@amParallelPosF = 0.65 2315 amres@amOrthogonalPosF = 0.2 2316 annoid1 = gsn_add_annotation(plot(n),lbid,amres) 2317 overlay(plot(n),plot_wpsap) 2318 wpsap=1 2319 else 2320 varn=varn+1 2321 continue 2322 end if 2323 end if 2324 if (vNam(varn) .EQ. "wses") then 2325 plot(n) = plot_wses 2326 end if 2327 if (vNam(varn) .EQ. "us2" .OR. vNam(varn) .EQ. "vs2" .OR. vNam(varn) .EQ. "ws2") then 2328 if (us2 .EQ. 0) then 2329 res@gsnLeftString = "us2, vs2 and ws2" 2330 res@gsnRightString = unit(varn) 2331 res@trXMinF = min((/minius2,minivs2,miniws2/)) 2332 res@trXMaxF = max((/maxius2,maxivs2,maxiws2/)) 2333 2334 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 2335 2336 ; *************************************************** 2337 ; legend for combined plot 2338 ; *************************************************** 2339 2340 lgres = True 2341 lgMonoDashIndex = False 2342 lgres@lgLabelFont = "helvetica" 2343 lgres@lgLabelFontHeightF = .1 2344 lgres@vpWidthF = 0.12 2345 lgres@vpHeightF = 0.1 2346 lgres@lgDashIndexes = (/0,1,2/) 2347 lbid = gsn_create_legend(wks,3,(/"us2","vs2","ws2"/),lgres) 2348 2349 amres = True 2350 amres@amParallelPosF = 0.65 2351 amres@amOrthogonalPosF = 0.2 2352 annoid1 = gsn_add_annotation(plot(n),lbid,amres) 2353 overlay(plot(n),plot_us2) 2354 us2=1 2355 else 2356 varn=varn+1 2357 continue 2358 end if 2359 end if 2360 if (vNam(varn) .EQ. "pts2") then 2361 plot(n) = plot_pts2 2362 end if 2363 if (vNam(varn) .EQ. "ws3") then 2364 plot(n) = plot_ws3 2365 end if 2366 if (vNam(varn) .EQ. "Sw") then 2367 plot(n) = plot_Sw 2368 end if 2369 if (vNam(varn) .EQ. "ws2pts") then 2370 plot(n) = plot_ws2pts 2371 end if 2372 if (vNam(varn) .EQ. "wspts2") then 2373 plot(n) = plot_wspts2 2374 end if 2375 if (vNam(varn) .EQ. "wsususodz" .OR. vNam(varn) .EQ. "wspsodz" .OR. vNam(varn) .EQ. "wpeodz" ) then 2376 if (wsususodz .EQ. 0) then 2377 res@gsnLeftString = "wsususodz, wspsodz and ws2" 2378 res@gsnRightString = unit(varn) 2379 res@trXMinF = min((/miniwsususodz,miniwspsodz,miniwpeodz/)) 2380 res@trXMaxF = max((/maxiwsususodz,maxiwspsodz,maxiwpeodz/)) 2381 2382 plot(n) = gsn_csm_xy(wks,data(varn,:,:),z_w,res) 2383 2384 ; *************************************************** 2385 ; legend for combined plot 2386 ; *************************************************** 2387 2388 lgres = True 2389 lgMonoDashIndex = False 2390 lgres@lgLabelFont = "helvetica" 2391 lgres@lgLabelFontHeightF = .1 2392 lgres@vpWidthF = 0.12 2393 lgres@vpHeightF = 0.1 2394 lgres@lgDashIndexes = (/0,1,2/) 2395 lbid = gsn_create_legend(wks,3,(/"wsususodz","wspsodz","wpeodz"/),lgres) 2396 2397 amres = True 2398 amres@amParallelPosF = 0.65 2399 amres@amOrthogonalPosF = 0.2 2400 annoid1 = gsn_add_annotation(plot(n),lbid,amres) 2401 overlay(plot(n),plot_wsususodz) 2402 wsususodz=1 2403 else 2404 varn=varn+1 2405 continue 2406 end if 2407 end if 2408 n=n+1 2409 varn=varn+1 2410 end if 2411 end do 2412 end if 2413 2414 if (combine .EQ. 1) then 2415 2416 check=True 2417 n_o=0 2418 do varn = 0,dim1 2419 2420 if ( isStrSubset( vNam(varn), "NORM") .or. isStrSubset( vNam(varn), "time") ) 449 2421 check = False 450 temp = f>$vNam(varn)$ 451 data_o!1 = temp!0 452 data_o!2 = temp!1 453 data_o(e,:,:) = temp(start_time_step:end_time_step,:) 454 mini(e) = min(data_o(e,:,:)) 455 maxi(e) = max(data_o(e,:,:)) 456 457 do j=e,e 458 do p=start_time_step,end_time_step 459 legend_label_oplot(e*end_time_step+pstart_time_step)=" "+flt2string(doubletofloat(t_all(p)))+" "+vNam(varn) 460 end do 461 end do 462 463 delete(temp) 464 varn = varn + 1 2422 else 2423 if (.not. isvar("var")) then 2424 check = True 2425 if (parameter(21) .NE. "variables") then 2426 var=parameter(21) 2427 check = isStrSubset( var,","+vNam(varn)+"," ) 2428 end if 2429 else 2430 check = isStrSubset( var,","+vNam(varn)+"," ) 2431 end if 2432 end if 2433 2434 if(check) then 2435 2436 z = f>$vNam(varn+1)$ 2437 com=isStrSubset( c_var,","+vNam(varn)+"," ) 2438 2439 if (com) 2440 2441 if (n_o .EQ. 1) then 2442 res@xyDashPattern = 1 2443 2444 else 2445 if (n_o .EQ. 2) then 2446 res@xyDashPattern = 2 2447 else 2448 res@xyDashPattern = 0 2449 res@gsnLeftString = c_var 2450 res@gsnRightString = unit(varn) 2451 res@trXMinF = min(mini) 2452 res@trXMaxF = max(maxi) 2453 end if 2454 end if 2455 label(n_o)=vNam(varn) 2456 color_o(n_o)=237 2457 plot_o(n_o)=gsn_csm_xy(wks,data(varn,:,:),z,res) 2458 n_o=n_o+1 2459 end if 2460 varn=varn+1 2461 end if 2462 end do 2463 2464 if(number_comb .EQ. 2)then 2465 overlay(plot_o(0),plot_o(1)) 2466 end if 2467 if(number_comb .EQ. 3)then 2468 overlay(plot_o(0),plot_o(1)) 2469 overlay(plot_o(0),plot_o(2)) 2470 end if 2471 2472 ; *************************************************** 2473 ; legend for combined plot 2474 ; *************************************************** 2475 2476 lgres = True 2477 lgMonoDashIndex = False 2478 lgres@lgDashIndexes = (/0,1,2/) 2479 lgres@lgLabelFont = "helvetica" 2480 lgres@lgLabelFontHeightF = .1 2481 lgres@vpWidthF = 0.12 2482 lgres@vpHeightF = 0.1 2483 2484 lbid = gsn_create_legend(wks,number_comb,label,lgres) 2485 2486 amres = True 2487 amres@amParallelPosF = 0.65 2488 amres@amOrthogonalPosF = 0.2 2489 annoid1 = gsn_add_annotation(plot_o(0),lbid,amres) 465 2490 466 end if 467 end if 468 469 if(check) then 470 471 temp = f>$vNam(varn)$ 472 data = temp(start_time_step:end_time_step,:) 473 testx= data*100 474 print(" plot of " + vNam(varn)) 475 data!1 = "z" 476 477 res@gsnLeftString = "PROFILE plot of" 478 res@gsnRightString = vNam(varn) 479 res@txFontHeightF = 0.02 480 res@tiXAxisFontHeightF = 0.02 481 res@tiYAxisFontHeightF = 0.02 482 res@tiXAxisString = " " 483 res@tiYAxisString = "Height [z]" 484 res@trXMinF = min(data(:,:)) 485 res@trXMaxF = max(data(:,:)) 486 res@trYMinF = min_z 487 res@trYMaxF = max_z 488 489 plot(n) = gsn_csm_xy(wks,data,z_pr,res) 490 491 delete(temp) 492 delete(data) 493 n = n + 1 494 varn = varn + 1 495 496 end if 497 498 end do 499 500 if (combine .EQ. 1) then 501 data_all=new((/m*end_time_step,dimz/),float) 502 do j=0,e 503 data_all(start_time_step1+j*end_time_step:(j+1)*end_time_step1,:) = data_o(j,:,:) 504 end do 505 506 ores@gsnLeftString = "combined PROFILE plot of" 507 ores@gsnRightString = c_var 508 ores@txFontHeightF = 0.02 509 ores@tiXAxisFontHeightF = 0.02 510 ores@tiYAxisFontHeightF = 0.02 511 ores@tiXAxisString = " " 512 ores@tiYAxisString = "Height [z]" 513 ores@trXMinF = min(mini(:)) 514 ores@trXMaxF = max(maxi(:)) 515 ores@trYMinF = min_z 516 ores@trYMaxF = max_z 517 ores@xyExplicitLegendLabels = legend_label_oplot 518 519 print(" ") 520 print("combined plot of " + c_var) 521 522 plot(0) = gsn_csm_xy(wks,data_all,z_pr,ores) 523 2491 plot(0) = plot_o(0) 2492 524 2493 end if 525 2494 … … 527 2496 ; merge plots onto one page 528 2497 ; *************************************************** 529 530 do i = 0, n1, no_lines*no_columns 531 if( (i+no_lines*no_columns) .gt. (n1)) then 532 gsn_panel(wks,plot(i:n1),(/no_lines,no_columns/),resP) 533 else 534 gsn_panel(wks,plot(i:i+no_lines*no_columns1),(/no_lines,no_columns/),resP) 535 end if 2498 print(n) 2499 do m=0,n1 2500 plot_(m)=plot(n1m) 536 2501 end do 2502 2503 if (format_out .EQ. "eps" .OR. format_out .EQ. "epsi") then 2504 gsn_panel(wks,plot_(0:n1),(/n,1/),resP) 2505 else 2506 do i = 0,n1, no_lines*no_columns 2507 if( (i+no_lines*no_columns) .gt. (n1)) then 2508 gsn_panel(wks,plot_(i:n1),(/no_lines,no_columns/),resP) 2509 else 2510 gsn_panel(wks,plot_(i:i+no_lines*no_columns1),(/no_lines,no_columns/),resP) 2511 end if 2512 end do 2513 end if 537 2514 538 2515 print(" ")
Note: See TracChangeset
for help on using the changeset viewer.