Changeset 161 for palm/trunk/SCRIPTS/NCL/timeseries.ncl
- Timestamp:
- Apr 11, 2008 10:54:53 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SCRIPTS/NCL/timeseries.ncl
r157 r161 11 11 12 12 if (isfilepresent("~/.ncl_preferences")) then 13 parameter = asciiread("~/.ncl_preferences",7 3,"string")13 parameter = asciiread("~/.ncl_preferences",75,"string") 14 14 delete(parameter@_FillValue) 15 15 else … … 23 23 ; set up default parameter values and strings if not assigned in prompt or parameter list 24 24 ; *************************************************** 25 25 26 26 if ( .not. isvar("file_in") ) then ; path+name of input file 27 27 if (parameter(7) .EQ. "input file") then … … 60 60 if ( .not. isvar("var") ) then ; variable name 61 61 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 62 74 end if 63 75 … … 68 80 f = addfile(file_in , "r" ) 69 81 70 vNam = getfilevarnames(f) 82 vNam = getfilevarnames(f) 71 83 print(" ") 72 84 print("Variable on netCDF file: " + vNam) 73 85 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 75 93 t_all = f->time 76 nt 94 nt = dimsizes(t_all) 77 95 78 96 ; **************************************************** … … 81 99 82 100 if ( .not. isvar("start_time_step") ) then 83 start_time_step = 184 if (parameter(13) . LE. "1") then85 if (parameter(13) . EQ. "0")101 start_time_step = 0 102 if (parameter(13) .NE. "1") then 103 if (parameter(13) .LE. "0") 86 104 print(" ") 87 105 print("Begin with time step 1") … … 95 113 exit 96 114 end if 97 start_time_step = stringtointeger(parameter(13)) 115 start_time_step = stringtointeger(parameter(13))-1 98 116 end if 99 117 else … … 110 128 exit 111 129 end if 130 start_time_step = start_time_step - 1 112 131 end if 113 132 … … 137 156 exit 138 157 end if 139 end_time_step = stringtointeger(parameter(15)) 158 end_time_step = stringtointeger(parameter(15))-1 140 159 end if 141 160 else … … 153 172 end if 154 173 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 160 180 end if 161 181 … … 181 201 res@tiYAxisFont = "helvetica" 182 202 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 185 208 resP = True 186 209 resP@txFont = "helvetica" … … 191 214 res@vpWidthF=4 192 215 216 txres = True 193 217 194 218 ; *************************************************** … … 198 222 wks_ps = gsn_open_wks(format_out,file_out) 199 223 gsn_define_colormap(wks_ps,"rainbow+white") 200 plot_ps=new(dim,graphic) 224 plot_ps=new(dim,graphic) 225 201 226 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 204 276 if( isvar("var") ) then 205 check = isStrSubset( var, vNam(varn)+"," )277 check = isStrSubset( var,","+vNam(varn)+"," ) 206 278 end if 207 279 if (parameter(21) .NE. "variables") then 208 280 var = parameter(21) 209 check = isStrSubset( var, vNam(varn)+"," )281 check = isStrSubset( var,","+vNam(varn)+"," ) 210 282 end if 211 283 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 212 436 if( isStrSubset (vNam(varn), "time") ) 213 437 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 215 448 216 449 if(check) then 450 451 if (over .EQ. 1) then 217 452 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 229 527 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 231 625 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 232 837 end do 233 838 234 839 ; *************************************************** 235 840 ; merge plots onto one page 236 841 ; *************************************************** 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 247 854 248 855 print(" ")
Note: See TracChangeset
for help on using the changeset viewer.