Changeset 157 for palm/trunk/SCRIPTS
- Timestamp:
- Apr 2, 2008 1:22:13 PM (17 years ago)
- Location:
- palm/trunk/SCRIPTS/NCL
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SCRIPTS/NCL/.ncl_preferences
r154 r157 5 5 _________________________________________________________________________________________________ 6 6 7 ___'file_in'_________[path/name.nc ,i.e. ~/.../example.nc]______default = input file______[ALL]7 ___'file_in'_________[path/name.nc; i.e. ~/.../example.nc]______default = input file______[ALL] 8 8 input file 9 ___'format_out'______[ncgm , ps, eps, epsi, pdf,x11]____________default = x11_____________[ALL]9 ___'format_out'______[ncgm; ps; eps; epsi; pdf; x11]____________default = x11_____________[ALL] 10 10 x11 11 ___'file_out'________[path/name ,i.e. ~/.../test]_______________default = test____________[ALL]11 ___'file_out'________[path/name; i.e. ~/.../test]_______________default = test____________[ALL] 12 12 test 13 ___start_time_step___[0 ,1,...]__________________________________default = 1_______________[ALL]13 ___start_time_step___[0;1;...]__________________________________default = 1_______________[ALL] 14 14 1 15 ___end_time_step_____[1 ,2,...]__________________________________default = nt-1____________[ALL]16 nt -117 ___no_columns________[1 ,2,...]__________________________________default = 1_______________[ALL]15 ___end_time_step_____[1;2;...]__________________________________default = nt______________[ALL] 16 nt 17 ___no_columns________[1;2;...]__________________________________default = 1_______________[ALL] 18 18 1 19 ___no_lines__________[1 ,2,...]__________________________________default = 2_______________[ALL]19 ___no_lines__________[1;2;...]__________________________________default = 2_______________[ALL] 20 20 2 21 ___'var'_____________[E dt umax,...]____________________________default = variables_______[ALL]21 ___'var'_____________[E,dt,umax,;...]___________________________default = variables_______[ALL] 22 22 variables 23 23 ___combine___________[0] or [1]_________________________________default = 0_______________[PR] … … 25 25 ___number_comb_______[0] or [1]_________________________________default = 0_______________[PR] 26 26 0 27 ___'c_var'___________[umax vmax wmax ,...]______________________default = c_variables_____[PR]27 ___'c_var'___________[umax,vmax,wmax,;...]______________________default = c_variables_____[PR] 28 28 c_variables 29 29 ___dash______________[0] or [1]_________________________________default = 0_______________[PR] … … 31 31 ___black_____________[0] or [1]_________________________________default = 0_______________[PR] 32 32 0 33 ___min_z_____________[0 ,10,...]_________________________________default = 0_______________[PR]33 ___min_z_____________[0;10;...]_________________________________default = 0_______________[PR] 34 34 0 35 ___max_z_____________[100 ,1000,...]_____________________________default = max(z_pr)_______[PR]35 ___max_z_____________[100;1000;...]_____________________________default = max(z_pr)_______[PR] 36 36 max(z_pr) 37 37 ___'sort'____________[time] or [layer]__________________________default = time____________[CS] … … 43 43 ___shape_____________[0] or [1]_________________________________default = 1_______________[CS] 44 44 1 45 ___xyc_______________[0] or [1]_________________________________default = 1_______________[CS]46 1 45 ___xyc_______________[0] or [1]_________________________________default = 0_______________[CS] 46 0 47 47 ___xzc_______________[0] or [1]_________________________________default = 0_______________[CS] 48 48 0 … … 51 51 ___xs________________[0,1,...]__________________________________default = 0_______________[CS] 52 52 0 53 ___xe________________[1 ,2,...]__________________________________default = xdim____________[CS]53 ___xe________________[1;2;...]__________________________________default = xdim____________[CS] 54 54 xdim 55 ___ys________________[0 ,1,...]__________________________________default = 0_______________[CS]56 57 ___ye________________[1 ,2,...]__________________________________default = ydim____________[CS]55 ___ys________________[0;1;...]__________________________________default = 0_______________[CS] 56 0 57 ___ye________________[1;2;...]__________________________________default = ydim____________[CS] 58 58 ydim 59 ___zs________________[0 ,1,...]__________________________________default = 0_______________[CS]59 ___zs________________[0;1;...]__________________________________default = 0_______________[CS] 60 60 0 61 ___ze________________[1 ,2,...]__________________________________default = zdim____________[CS]61 ___ze________________[1;2;...]__________________________________default = zdim____________[CS] 62 62 zdim 63 ___end of file "parameter_list_cross_section__________________________________________________ 64 65 66 63 ___vector____________[0] or [1]_________________________________default = 0_______________[CS] 64 0 65 ___'vec1'____________[u,;v,;...]________________________________default = vec1____________[CS] 66 vec1 67 ___'vec2'____________[u,;v,;...]________________________________default = vec2____________[CS] 68 vec2 69 __'plotvec'__________[u,;v,;...]________________________________default = plotvec_________[CS] 70 plotvec 71 ___ref_mag___________[0.1;0.02;...]_____________________________default = 0.05____________[CS] 72 0.05 73 ___end of file ".ncl_preferences"_____________________________________________________________ -
palm/trunk/SCRIPTS/NCL/cross_sections.ncl
r154 r157 1 1 load "$NCARG_ROOT/lib/ncarg/nclex/gsun/gsn_code.ncl" 2 load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" 2 3 load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" 3 4 load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" … … 11 12 12 13 if (isfilepresent("~/.ncl_preferences")) then 13 parameter = asciiread("~/.ncl_preferences", 63,"string")14 parameter = asciiread("~/.ncl_preferences",73,"string") 14 15 delete(parameter@_FillValue) 15 16 else … … 177 178 end if 178 179 end if 180 if ( .not. isvar("vector") ) then ; sort of plots 181 vector = 0 182 if (parameter(63) .NE. "0") then 183 vector = stringtointeger(parameter(63)) 184 if (stringtointeger(parameter(63)) .NE. 1) then 185 print(" ") 186 print("Please set 'vector' to 0 or 1") 187 print(" ") 188 exit 189 end if 190 end if 191 end if 192 if ( .not. isvar("ref_mag") ) then ; sort of plots 193 ref_mag = 0.05 194 if (parameter(71) .NE. "0.05") then 195 ref_mag = stringtofloat(parameter(71)) 196 end if 197 end if 179 198 180 199 ; *************************************************** … … 257 276 print(" ") 258 277 259 do varn=0,dim-1 260 261 data_all = f->$vNam(varn)$ 278 ; ********************************************* 279 ; set up of start_time_step and end_time_step 280 ; ********************************************* 281 282 t = f->time 283 nt = dimsizes(t) 284 285 ; ********************************************* 286 ; start of time step and different types of mistakes that could be done 287 ; ********************************************* 288 289 if ( .not. isvar("start_time_step") ) then 290 start_time_step = 1 291 if (parameter(13) .NE. "1") then 292 if (parameter(13) .LE. "0") 293 print(" ") 294 print("Begin with time step 1") 295 print(" ") 296 exit 297 end if 298 if (stringtointeger(parameter(13)) .GT. nt) 299 print(" ") 300 print("'start_time_step' = "+ parameter(13) +" is greater than available time steps = " + (nt)) 301 print(" ") 302 exit 303 end if 304 start_time_step = stringtointeger(parameter(13)) 305 end if 306 else 307 if (start_time_step .LE. 0) 308 print(" ") 309 print("Begin with time step 1") 310 print(" ") 311 exit 312 end if 313 if (start_time_step .GT. nt) 314 print(" ") 315 print("'start_time_step' = "+ start_time_step +" is greater than available time steps = " + (nt)) 316 print(" ") 317 exit 318 end if 319 end if 320 321 ; **************************************************** 322 ; end of time step and different types of mistakes that could be done 323 ; **************************************************** 324 325 if ( .not. isvar("end_time_step") ) then 326 end_time_step = nt 327 if (parameter(15) .NE. "nt") then 328 if (parameter(15) .LE. "0") 329 print(" ") 330 print("'end_time_step' = "+parameter(15)+ " is too small; 'end_time_step' should be at least 1 ") 331 print(" ") 332 exit 333 end if 334 if (stringtointeger(parameter(15)) .GT. nt) 335 print(" ") 336 print("'end_time_step' = "+ parameter(15) +" is greater than available time steps = " + (nt)) 337 print(" ") 338 exit 339 end if 340 if (stringtointeger(parameter(15)) .LT. stringtointeger(parameter(13)) ) 341 print(" ") 342 print("'end_time_step' = "+ parameter(15) +" is lower than 'start_time_step' = "+parameter(15)) 343 print(" ") 344 exit 345 end if 346 end_time_step = stringtointeger(parameter(15)) 347 end if 348 else 349 if (end_time_step .LE. 0) 350 print(" ") 351 print("'end_time_step' = "+end_time_step+ " is too small; 'end_time_step' should be at least 1 ") 352 print(" ") 353 exit 354 end if 355 if (end_time_step .GT. nt) 356 print(" ") 357 print("'end_time_step' = "+ end_time_step +" is greater than available time steps = "+(nt)) 358 print(" ") 359 exit 360 end if 361 if (end_time_step .LT. start_time_step) 362 print(" ") 363 print("'end_time_step' = "+end_time_step +" is lower than 'start_time_step' = "+start_time_step) 364 print(" ") 365 exit 366 end if 367 end if 368 369 ; **************************************************** 370 ; set up variables for vector plot if required 371 ; **************************************************** 372 373 if (vector .EQ. 1) then 374 if ( .not. isvar("plotvec") ) then 375 plotvec = parameter(69) 376 if (parameter(69) .EQ. "plotvec") then 377 print(" ") 378 print("Please indicate the variable where the vector plot shall overlay ('plotvec')") 379 print(" ") 380 exit 381 end if 382 end if 383 if ( .not. isvar("vec1") ) then 384 vec1 = parameter(65) 385 if (parameter(65) .EQ. "vec1") then 386 print(" ") 387 print("Please indicate Vector 1 ('vec1') for Vector-Plot") 388 print(" ") 389 exit 390 end if 391 end if 392 if ( .not. isvar("vec2") ) then 393 vec2 = parameter(67) 394 if (parameter(67) .EQ. "vec2") then 395 print(" ") 396 print("Please indicate Vector 2 ('vec2') for Vector-Plot") 397 print(" ") 398 exit 399 end if 400 end if 401 end if 402 403 check_vec1 = False 404 check_vec2 = False 405 check_vecp = False 406 407 ; **************************************************** 408 ; get data for plots 409 ; **************************************************** 410 411 do varn=0,dim-1 262 412 263 413 if ( vNam(varn) .eq. "zw" .or. vNam(varn) .eq. "yv" .or. vNam(varn) .eq. "xu" ) then … … 266 416 if ( vNam(varn) .eq. "zwwi" .or. vNam(varn) .eq. "zusi") then 267 417 check = False 268 end if 269 418 end if 270 419 if ( isvar("var") ) then 271 420 check = isStrSubset( var,vNam(varn)+",") … … 274 423 var = parameter(21) 275 424 check = isStrSubset( var,vNam(varn)+"," ) 276 end if 425 end if 277 426 278 427 if(check) then 279 280 print("plot of "+vNam(varn)) 281 print(" ") 282 283 ; ********************************************* 284 ; set up of start_time_step and end_time_step 285 ; ********************************************* 286 287 t = f->time 288 nt = dimsizes(t) 289 290 ; ********************************************* 291 ; start of time step and different types of mistakes that could be done 292 ; ********************************************* 293 294 if ( .not. isvar("start_time_step") ) then 295 start_time_step = 1 296 if (parameter(13) .NE. "1") then 297 if (parameter(13) .LE. "0") 298 print(" ") 299 print("Begin with time step 1") 300 print(" ") 301 exit 302 end if 303 if (stringtointeger(parameter(13)) .GE. nt) 304 print(" ") 305 print("'start_time_step' = "+ parameter(13) +" is greater than available time steps = " + (nt-1)) 306 print(" ") 307 exit 308 end if 309 start_time_step = stringtointeger(parameter(13)) 310 end if 311 else 312 if (start_time_step .LE. 0) 313 print(" ") 314 print("Begin with time step 1") 315 print(" ") 316 exit 317 end if 318 if (start_time_step .GE. nt) 319 print(" ") 320 print("'start_time_step' = "+ start_time_step +" is greater than available time steps = " + (nt-1)) 321 print(" ") 322 exit 323 end if 324 end if 325 326 ; **************************************************** 327 ; end of time step and different types of mistakes that could be done 328 ; **************************************************** 329 330 if ( .not. isvar("end_time_step") ) then 331 end_time_step = nt-1 332 if (parameter(15) .NE. "nt-1") then 333 if (parameter(15) .LE. "0") 334 print(" ") 335 print("'end_time_step' = "+parameter(15)+ " is too small; 'end_time_step' should be at least 1 ") 336 print(" ") 337 exit 338 end if 339 if (stringtointeger(parameter(15)) .GE. nt) 340 print(" ") 341 print("'end_time_step' = "+ parameter(15) +" is greater than available time steps = " + (nt-1)) 342 print(" ") 343 exit 344 end if 345 if (stringtointeger(parameter(15)) .LT. stringtointeger(parameter(13)) ) 346 print(" ") 347 print("'end_time_step' = "+ parameter(15) +" is lower than 'start_time_step' = "+parameter(15)) 348 print(" ") 349 exit 350 end if 351 end_time_step = stringtointeger(parameter(15)) 352 end if 353 else 354 if (end_time_step .LE. 0) 355 print(" ") 356 print("'end_time_step' = "+end_time_step+ " is too small; 'end_time_step' should be at least 1 ") 357 print(" ") 358 exit 359 end if 360 if (end_time_step .GE. nt) 361 print(" ") 362 print("'end_time_step' = "+ end_time_step +" is greater than available time steps = "+(nt-1)) 363 print(" ") 364 exit 365 end if 366 if (end_time_step .LT. start_time_step) 367 print(" ") 368 print("'end_time_step' = "+end_time_step +" is lower than 'start_time_step' = "+start_time_step) 369 print(" ") 370 exit 371 end if 372 end if 428 429 data_all = f->$vNam(varn)$ 373 430 374 431 ; **************************************************** … … 378 435 xdim = dimsizes(data_all(0,0,0,:)) - 1 379 436 ydim = dimsizes(data_all(0,0,:,0)) - 1 380 zdim = dimsizes(data_all(0,:,0,0)) - 1 381 437 zdim = dimsizes(data_all(0,:,0,0)) - 1 438 382 439 if ( .not. isvar("xe")) then ; output x-coordinate range end (in index) 383 440 xe = xdim … … 398 455 end if 399 456 else 400 if (xe .GT. xdim) then 401 print(" ") 402 print("range end for x-coordinate = "+xe+" is higher than available dimensions = "+xdim) 403 print(" ") 404 exit 405 end if 406 if (xe .LT. 0 .OR. xe .LT. xs) then 407 print(" ") 408 print("range end for x-coordinate = "+xe+" is too small") 409 print(" ") 410 exit 411 end if 412 end if 457 if (xe .GT. xdim) then 458 print(" ") 459 print("range end for x-coordinate = "+xe+" is higher than available dimensions = "+xdim) 460 print(" ") 461 exit 462 end if 463 if (xe .LT. 0 .OR. xe .LT. xs) then 464 print(" ") 465 print("range end for x-coordinate = "+xe+" is too small") 466 print(" ") 467 exit 468 end if 469 end if 470 413 471 if ( .not. isvar("ye")) then ; output y-coordinate range end (in index) 414 472 ye = ydim … … 433 491 print("range end for y-coordinate = "+ye+" is higher than available dimensions = "+ydim) 434 492 print(" ") 493 exit 494 end if 495 if (ye .LT. 0 .OR. ye .LT. ys) then 496 print(" ") 497 print("range end for y-coordinate = "+ye+" is too small") 498 print(" ") 435 499 exit 436 500 end if 437 if (ye .LT. 0 .OR. ye .LT. ys) then 438 print(" ") 439 print("range end for y-coordinate = "+ye+" is too small") 440 print(" ") 441 exit 442 end if 443 end if 501 end if 502 444 503 if ( .not. isvar("ze")) then ; output z-coordinate range end (in index) 445 504 ze = zdim … … 472 531 exit 473 532 end if 474 end if 533 end if 534 delete(data_all) 535 end if 536 end do 537 538 data = new((/dim,nt,(ze-zs)+1,(ye-ys)+1,(xe-xs)+1/),float) 539 540 ; **************************************************** 541 ; define inner and outer loops depending on "sort" 542 ; **************************************************** 543 544 if ( xyc .eq. 1 ) then 545 lays = zs 546 laye = ze 547 end if 548 if ( xzc .eq. 1 ) then 549 lays = ys 550 laye = ye 551 end if 552 if ( yzc .eq. 1) then 553 lays = xs 554 laye = xe 555 end if 556 557 if ( sort .eq. "time" ) then 558 lis = start_time_step 559 lie = end_time_step 560 los = lays 561 loe = laye 562 else 563 lis = lays 564 lie = laye 565 los = start_time_step 566 loe = end_time_step 567 end if 568 569 check = True 570 v1=0 571 v2=0 572 573 do varn=0,dim-1 574 575 data_all = f->$vNam(varn)$ 576 577 if (vector .EQ. 1) then 578 check_vec1 = isStrSubset( vec1,vNam(varn)+",") 579 check_vec2 = isStrSubset( vec2,vNam(varn)+",") 580 end if 581 582 if ( vNam(varn) .eq. "zw" .or. vNam(varn) .eq. "yv" .or. vNam(varn) .eq. "xu" ) then 583 check = False 584 end if 585 if ( vNam(varn) .eq. "zwwi" .or. vNam(varn) .eq. "zusi") then 586 check = False 587 end if 588 if ( isvar("var") ) then 589 check = isStrSubset( var,vNam(varn)+",") 590 end if 475 591 476 ; Defining inner and outer loop depending on variable 477 ; "sort" (values: time or layers) 592 if (parameter(21) .NE. "variables") then 593 var = parameter(21) 594 check = isStrSubset( var,vNam(varn)+"," ) 595 end if 596 597 if(check) then 598 599 if (vector .EQ. 1) then 600 if (vNam(varn)+"," .EQ. vec1) then 601 v1=v1+1 602 end if 603 if (vNam(varn)+"," .EQ. vec2) then 604 v2=v2+1 605 end if 606 end if 607 608 data(varn,:,:,:,:)=data_all(0:nt-1,zs:ze,ys:ye,xs:xe) 609 if (check_vec1) then 610 print("in vec1") 611 vect1=data_all 612 end if 613 if (check_vec2) then 614 print("in vec2") 615 vect2=data_all 616 end if 617 618 data!0 = "var" 619 data!1 = "t" 620 data!2 = "z" 621 data!3 = "y" 622 data!4 = "x" 623 624 end if 625 626 delete(data_all) 627 628 end do 629 630 if (vector .EQ. 1) then 631 if (v1 .EQ. 0)then 632 print(" ") 633 print("Varible for vector-plot ('vec1') must be one of the varibles for plot ('var')") 634 print(" ") 635 exit 636 end if 637 638 if (v2 .EQ. 0)then 639 print(" ") 640 print("Varible for vector-plot ('vec2') must be one of the varibles for plot ('var')") 641 print(" ") 642 exit 643 end if 644 end if 645 646 ; *************************************************** 647 ; create plots 648 ; *************************************************** 649 650 check = True 651 652 do varn=0,dim-1 653 654 if (vector .EQ. 1) then 655 check_vecp = isStrSubset( plotvec,vNam(varn)+",") 656 end if 657 658 if ( vNam(varn) .eq. "zw" .or. vNam(varn) .eq. "yv" .or. vNam(varn) .eq. "xu" ) then 659 check = False 660 end if 661 if ( vNam(varn) .eq. "zwwi" .or. vNam(varn) .eq. "zusi") then 662 check = False 663 end if 664 if ( isvar("var") ) then 665 check = isStrSubset( var,vNam(varn)+",") 666 end if 667 if (parameter(21) .NE. "variables") then 668 var = parameter(21) 669 check = isStrSubset( var,vNam(varn)+"," ) 670 end if 478 671 479 if ( xyc .eq. 1 ) then 480 lays = zs 481 laye = ze 482 end if 483 if ( xzc .eq. 1 ) then 484 lays = ys 485 laye = ye 486 end if 487 if ( yzc .eq. 1) then 488 lays = xs 489 laye = xe 490 end if 491 492 if ( sort .eq. "time" ) then 493 lis = start_time_step 494 lie = end_time_step 495 los = lays 496 loe = laye 497 else 498 lis = lays 499 lie = laye 500 los = start_time_step 501 loe = end_time_step 502 end if 503 504 505 ; loops over time and layer (order depends on "sort") 672 if(check) then 673 674 ; **************************************************** 675 ; loops over time and layer 676 ; **************************************************** 506 677 507 678 do lo = los, loe ; lo: loop outer 508 do li = lis, lie, no_lines*no_columns ; li: loop inner 509 510 print("page "+page) 511 page = page + 1 512 513 ; Defining indices for reading data needed to plot one page 514 ; The indices depend on the parameter "sort" 515 679 do li = lis, lie, no_lines*no_columns ; li: loop inner 680 516 681 if ( sort .eq. "time" ) then 517 682 ta = li … … 570 735 zb = ze 571 736 end if 572 end if 573 574 data = data_all(ta:tb,za:zb,ya:yb,xa:xb) 575 576 data!0 = "t" 577 data!1 = "z" 578 data!2 = "y" 579 data!3 = "x" 580 581 ; set up labels and plot 582 737 end if 738 739 ; **************************************************** 583 740 ; xy cross section 584 585 if ( xyc .eq. 1 ) then 741 ; **************************************************** 742 743 if ( xyc .eq. 1 ) then 744 586 745 cs_res@tiXAxisString = "x [m]" 587 746 cs_res@tiYAxisString = "y [m]" 588 747 cs_res@gsnLeftString = "Plot of "+vNam(varn) 748 589 749 if ( sort .eq. "time" ) then 590 if ( data&z( 0) .eq. -1 ) then750 if ( data&z(lo) .eq. -1 ) then 591 751 level = "-average" 592 752 else 593 level = "=" + data&z(0) + "m" 753 level = "=" + data&z(lo) + "m" 754 end if 755 do n = 0,tb-ta 756 cs_res@gsnCenterString = "time=" + data&t(li+n-1) +"s z"+level 757 plot1 = gsn_csm_contour(wks_ps,data(varn,li+n-1,lo,:,:),cs_res) 758 if (check_vecp) 759 vecres = True ; vector only resources 760 vecres@gsnDraw = False ; don't draw 761 vecres@gsnFrame = False ; don't advance frame 762 vecres@vcGlyphStyle = "CurlyVector" ; curly vectors 763 vecres@vcRefMagnitudeF = ref_mag ; define vector ref mag 764 vecres@vcRefLengthF = 0.05 ; define length of vec ref 765 vecres@gsnRightString = " " ; turn off right string 766 vecres@gsnLeftString = " " ; turn off left string 767 vecres@tiXAxisString = " " 768 plot_vec=gsn_csm_vector(wks_ps,vect1(li+n-1,lo,:,:),vect2(li+n-1,lo,:,:),vecres) 769 overlay(plot1, plot_vec) 770 end if 771 plot(n) = plot1 772 end do 773 end if 774 775 if ( sort .eq. "layer" ) then 776 do n = 0, zb-za 777 if ( data&z(li+n) .eq. -1 ) then 778 level = "-average" 779 else 780 level = "=" + data&z(li+n) + "m" 781 end if 782 cs_res@gsnCenterString = "t=" + data&t(lo-1) + "s z"+ level 783 plot1 = gsn_csm_contour(wks_ps,data(varn,lo-1,li+n,:,:),cs_res) 784 if (check_vecp) 785 vecres = True ; vector only resources 786 vecres@gsnDraw = False ; don't draw 787 vecres@gsnFrame = False ; don't advance frame 788 vecres@vcGlyphStyle = "CurlyVector" ; curly vectors 789 vecres@vcRefMagnitudeF = ref_mag ; define vector ref mag 790 vecres@vcRefLengthF = 0.05 ; define length of vec ref 791 vecres@gsnRightString = " " ; turn off right string 792 vecres@gsnLeftString = " " ; turn off left string 793 vecres@tiXAxisString = " " 794 plot_vec=gsn_csm_vector(wks_ps,vect1(lo-1,li+n,:,:),vect2(lo-1,li+n,:,:),vecres) 795 overlay(plot1, plot_vec) 796 end if 797 plot(n) = plot1 798 end do 799 end if 800 801 end if 802 803 ; **************************************************** 804 ; xz cross section 805 ; **************************************************** 806 807 if ( xzc .eq. 1 ) then 808 809 cs_res@tiXAxisString = "x [m]" 810 cs_res@tiYAxisString = "z [m]" 811 cs_res@gsnLeftString = "Plot of "+vNam(varn) 812 813 if ( sort .eq. "time" ) then 814 if ( data&z(lo) .eq. -1 ) then 815 level = "-average" 816 else 817 level = "=" + data&y(lo) + "m" 594 818 end if 595 819 do n = 0, tb-ta 596 cs_res@gsnCenterString = "t=" + data&t(n) + "s z"+ level 597 plot(n) = gsn_csm_contour(wks_ps,data(n,0,:,:),cs_res) 820 cs_res@gsnCenterString = "t=" + data&t(li+n-1) + "s y"+ level 821 plot1 = gsn_csm_contour(wks_ps,data(varn,li+n-1,:,lo,:),cs_res) 822 if (check_vecp) 823 vecres = True ; vector only resources 824 vecres@gsnDraw = False ; don't draw 825 vecres@gsnFrame = False ; don't advance frame 826 vecres@vcGlyphStyle = "CurlyVector" ; curly vectors 827 vecres@vcRefMagnitudeF = ref_mag ; define vector ref mag 828 vecres@vcRefLengthF = 0.05 ; define length of vec ref 829 vecres@gsnRightString = " " ; turn off right string 830 vecres@gsnLeftString = " " ; turn off left string 831 vecres@tiXAxisString = " " 832 plot_vec=gsn_csm_vector(wks_ps,vect1(li+n-1,lo,:,:),vect2(li+n-1,lo,:,:),vecres) 833 overlay(plot1, plot_vec) 834 end if 835 plot(n) = plot1 598 836 end do 599 837 end if 600 838 601 839 if ( sort .eq. "layer" ) then 602 do n = 0, zb-za603 if ( data&z( n) .eq. -1 ) then840 do n = 0, yb-ya 841 if ( data&z(li+n) .eq. -1 ) then 604 842 level = "-average" 605 843 else 606 level = "=" + data& z(n) + "m"844 level = "=" + data&y(li+n) + "m" 607 845 end if 608 cs_res@gsnCenterString = "t=" + data&t(0) + "s z"+ level 609 plot(n) = gsn_csm_contour(wks_ps,data(0,n,:,:),cs_res) 846 cs_res@gsnCenterString = "t=" + data&t(lo-1) + "s y"+ level 847 plot1 = gsn_csm_contour(wks_ps,data(varn,lo-1,:,li+n,:),cs_res) 848 if (check_vecp) 849 vecres = True ; vector only resources 850 vecres@gsnDraw = False ; don't draw 851 vecres@gsnFrame = False ; don't advance frame 852 vecres@vcGlyphStyle = "CurlyVector" ; curly vectors 853 vecres@vcRefMagnitudeF = ref_mag ; define vector ref mag 854 vecres@vcRefLengthF = 0.05 ; define length of vec ref 855 vecres@gsnRightString = " " ; turn off right string 856 vecres@gsnLeftString = " " ; turn off left string 857 vecres@tiXAxisString = " " 858 plot_vec=gsn_csm_vector(wks_ps,vect1(li+n-1,lo,:,:),vect2(li+n-1,lo,:,:),vecres) 859 overlay(plot1, plot_vec) 860 end if 861 plot(n) = plot1 610 862 end do 611 end if 863 end if 864 612 865 end if 613 866 614 ; xz cross section 615 616 if ( xzc .eq. 1 ) then 617 cs_res@tiXAxisString = "x [m]" 867 ; **************************************************** 868 ; yz cross section 869 ; **************************************************** 870 871 if ( yzc .eq. 1 ) then 872 873 cs_res@tiXAxisString = "y [m]" 618 874 cs_res@tiYAxisString = "z [m]" 619 875 cs_res@gsnLeftString = "Plot of "+vNam(varn) 876 620 877 if ( sort .eq. "time" ) then 621 if ( data& y(0) .eq. -1 ) then878 if ( data&z(lo) .eq. -1 ) then 622 879 level = "-average" 623 880 else 624 level = "=" + data& y(0) + "m"881 level = "=" + data&z(lo) + "m" 625 882 end if 626 883 do n = 0, tb-ta 627 cs_res@gsnCenterString = "t=" + data&t(n) + "s z"+ level 628 plot(n) = gsn_csm_contour(wks_ps,data(n,:,0,:),cs_res) 884 cs_res@gsnCenterString = "t=" + data&t(li+n-1) + "s x"+ level 885 plot1 = gsn_csm_contour(wks_ps,data(varn,li+n-1,:,:,lo),cs_res) 886 if (check_vecp) 887 vecres = True ; vector only resources 888 vecres@gsnDraw = False ; don't draw 889 vecres@gsnFrame = False ; don't advance frame 890 vecres@vcGlyphStyle = "CurlyVector" ; curly vectors 891 vecres@vcRefMagnitudeF = ref_mag ; define vector ref mag 892 vecres@vcRefLengthF = 0.05 ; define length of vec ref 893 vecres@gsnRightString = " " ; turn off right string 894 vecres@gsnLeftString = " " ; turn off left string 895 vecres@tiXAxisString = " " 896 plot_vec=gsn_csm_vector(wks_ps,vect1(li+n-1,lo,:,:),vect2(li+n-1,lo,:,:),vecres) 897 overlay(plot1, plot_vec) 898 end if 899 plot(n) = plot1 629 900 end do 630 901 end if 631 902 632 903 if ( sort .eq. "layer" ) then 633 do n = 0, yb-ya634 if ( data& y(n) .eq. -1 ) then904 do n = 0, xb-xa 905 if ( data&z(li+n) .eq. -1 ) then 635 906 level = "-average" 636 907 else 637 level = "=" + data& y(n) + "m"908 level = "=" + data&z(li+n) + "m" 638 909 end if 639 cs_res@gsnCenterString = "t=" + data&t(0) + "s z"+ level 640 plot(n) = gsn_csm_contour(wks_ps,data(0,:,n,:),cs_res) 910 cs_res@gsnCenterString = "t=" + data&t(lo-1) + "s x"+ level 911 plot1 = gsn_csm_contour(wks_ps,data(varn,lo-1,:,:,li+n),cs_res) 912 if (check_vecp) 913 vecres = True ; vector only resources 914 vecres@gsnDraw = False ; don't draw 915 vecres@gsnFrame = False ; don't advance frame 916 vecres@vcGlyphStyle = "CurlyVector" ; curly vectors 917 vecres@vcRefMagnitudeF = ref_mag ; define vector ref mag 918 vecres@vcRefLengthF = 0.05 ; define length of vec ref 919 vecres@gsnRightString = " " ; turn off right string 920 vecres@gsnLeftString = " " ; turn off left string 921 vecres@tiXAxisString = " " 922 plot_vec=gsn_csm_vector(wks_ps,vect1(li+n-1,lo,:,:),vect2(li+n-1,lo,:,:),vecres) 923 overlay(plot1, plot_vec) 924 end if 925 plot(n) = plot1 641 926 end do 642 927 end if 928 643 929 end if 644 930 645 ; yz cross section 646 647 if ( yzc .eq. 1 ) then 648 cs_res@tiXAxisString = "y [m]" 649 cs_res@tiYAxisString = "z [m]" 650 651 if ( sort .eq. "time" ) then 652 if ( data&x(0) .eq. -1 ) then 653 level = "-average" 654 else 655 level = "=" + data&x(0) + "m" 656 end if 657 do n = 0, tb-ta 658 cs_res@gsnCenterString = "t=" + data&t(n) + "s x"+ level 659 plot(n) = gsn_csm_contour(wks_ps,data(n,:,:,0),cs_res) 660 end do 661 end if 662 663 if ( sort .eq. "layer" ) then 664 do n = 0, xb-xa 665 if ( data&x(n) .eq. -1 ) then 666 level = "-average" 667 else 668 level = "=" + data&x(n) + "m" 669 end if 670 cs_res@gsnCenterString = "t=" + data&t(0) + "s x"+ level 671 plot(n) = gsn_csm_contour(wks_ps,data(0,:,:,n),cs_res) 672 end do 673 end if 674 end if 675 676 delete(data) 677 678 ; *************************************************** 931 ; *************************************************** 679 932 ; merge plots onto one page 680 933 ; *************************************************** … … 689 942 end do 690 943 end do 691 end if 692 693 delete(data_all) 694 944 end if 695 945 end do 696 946 -
palm/trunk/SCRIPTS/NCL/profiles.ncl
r154 r157 10 10 11 11 if (isfilepresent("~/.ncl_preferences")) then 12 parameter = asciiread("~/.ncl_preferences", 63,"string")12 parameter = asciiread("~/.ncl_preferences",73,"string") 13 13 delete(parameter@_FillValue) 14 14 else … … 160 160 if ( .not. isvar("end_time_step") ) then 161 161 end_time_step = nt-1 162 if (parameter(15) .NE. "nt -1") then162 if (parameter(15) .NE. "nt") then 163 163 if (parameter(15) .LE. "0") 164 164 print(" ") … … 420 420 e=-1 421 421 end if 422 422 423 423 do varn = 0, dim-1 424 424 … … 470 470 471 471 temp = f->$vNam(varn)$ 472 data = temp(start_time_step:end_time_step,:) 472 data = temp(start_time_step:end_time_step,:) 473 testx= data*100 473 474 print(" plot of " + vNam(varn)) 474 475 data!1 = "z" … … 487 488 488 489 plot(n) = gsn_csm_xy(wks,data,z_pr,res) 489 490 490 491 delete(temp) 491 492 delete(data) -
palm/trunk/SCRIPTS/NCL/timeseries.ncl
r154 r157 11 11 12 12 if (isfilepresent("~/.ncl_preferences")) then 13 parameter = asciiread("~/.ncl_preferences", 63,"string")13 parameter = asciiread("~/.ncl_preferences",73,"string") 14 14 delete(parameter@_FillValue) 15 15 else … … 118 118 if ( .not. isvar("end_time_step") ) then 119 119 end_time_step = nt-1 120 if (parameter(15) .NE. "nt -1") then120 if (parameter(15) .NE. "nt") then 121 121 if (parameter(15) .LE. "0") 122 122 print(" ")
Note: See TracChangeset
for help on using the changeset viewer.