Changeset 3004 for palm/trunk/SOURCE/data_output_3d.f90
- Timestamp:
- Apr 27, 2018 12:33:25 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/data_output_3d.f90
r2967 r3004 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Allocation checks implemented (averaged data will be assigned to fill values 28 ! if no allocation happened so far) 29 ! 30 ! 2967 2018-04-13 11:22:08Z raasch 27 31 ! bugfix: missing parallel cpp-directives added 28 32 ! … … 214 218 215 219 USE indices, & 216 ONLY: nbgp, nx, nxl, nxr, ny, nyn, nys, nzb, wall_flags_0 220 ONLY: nbgp, nx, nxl, nxlg, nxr, nxrg, ny, nyn, nyng, nys, nysg, nzb, & 221 nzt, wall_flags_0 217 222 218 223 USE kinds … … 366 371 to_be_resorted => e 367 372 ELSE 373 IF ( .NOT. ALLOCATED( e_av ) ) THEN 374 ALLOCATE( e_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 375 e_av = REAL( fill_value, KIND = wp ) 376 ENDIF 368 377 to_be_resorted => e_av 369 378 ENDIF … … 373 382 to_be_resorted => pt 374 383 ELSE 384 IF ( .NOT. ALLOCATED( lpt_av ) ) THEN 385 ALLOCATE( lpt_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 386 lpt_av = REAL( fill_value, KIND = wp ) 387 ENDIF 375 388 to_be_resorted => lpt_av 376 389 ENDIF … … 380 393 to_be_resorted => nc 381 394 ELSE 395 IF ( .NOT. ALLOCATED( nc_av ) ) THEN 396 ALLOCATE( nc_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 397 nc_av = REAL( fill_value, KIND = wp ) 398 ENDIF 382 399 to_be_resorted => nc_av 383 400 ENDIF … … 387 404 to_be_resorted => nr 388 405 ELSE 406 IF ( .NOT. ALLOCATED( nr_av ) ) THEN 407 ALLOCATE( nr_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 408 nr_av = REAL( fill_value, KIND = wp ) 409 ENDIF 389 410 to_be_resorted => nr_av 390 411 ENDIF … … 395 416 to_be_resorted => p 396 417 ELSE 418 IF ( .NOT. ALLOCATED( p_av ) ) THEN 419 ALLOCATE( p_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 420 p_av = REAL( fill_value, KIND = wp ) 421 ENDIF 397 422 IF ( psolver /= 'sor' ) CALL exchange_horiz( p_av, nbgp ) 398 423 to_be_resorted => p_av … … 415 440 resorted = .TRUE. 416 441 ELSE 442 IF ( .NOT. ALLOCATED( pc_av ) ) THEN 443 ALLOCATE( pc_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 444 pc_av = REAL( fill_value, KIND = wp ) 445 ENDIF 417 446 to_be_resorted => pc_av 418 447 ENDIF … … 458 487 resorted = .TRUE. 459 488 ELSE 489 IF ( .NOT. ALLOCATED( pr_av ) ) THEN 490 ALLOCATE( pr_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 491 pr_av = REAL( fill_value, KIND = wp ) 492 ENDIF 460 493 to_be_resorted => pr_av 461 494 ENDIF … … 471 504 ENDDO 472 505 ELSE 506 IF ( .NOT. ALLOCATED( prr_av ) ) THEN 507 ALLOCATE( prr_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 508 prr_av = REAL( fill_value, KIND = wp ) 509 ENDIF 473 510 DO i = nxl, nxr 474 511 DO j = nys, nyn … … 498 535 ENDIF 499 536 ELSE 537 IF ( .NOT. ALLOCATED( pt_av ) ) THEN 538 ALLOCATE( pt_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 539 pt_av = REAL( fill_value, KIND = wp ) 540 ENDIF 500 541 to_be_resorted => pt_av 501 542 ENDIF … … 505 546 to_be_resorted => q 506 547 ELSE 548 IF ( .NOT. ALLOCATED( q_av ) ) THEN 549 ALLOCATE( q_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 550 q_av = REAL( fill_value, KIND = wp ) 551 ENDIF 507 552 to_be_resorted => q_av 508 553 ENDIF … … 512 557 to_be_resorted => qc 513 558 ELSE 559 IF ( .NOT. ALLOCATED( qc_av ) ) THEN 560 ALLOCATE( qc_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 561 qc_av = REAL( fill_value, KIND = wp ) 562 ENDIF 514 563 to_be_resorted => qc_av 515 564 ENDIF … … 519 568 to_be_resorted => ql 520 569 ELSE 570 IF ( .NOT. ALLOCATED( ql_av ) ) THEN 571 ALLOCATE( ql_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 572 ql_av = REAL( fill_value, KIND = wp ) 573 ENDIF 521 574 to_be_resorted => ql_av 522 575 ENDIF … … 526 579 to_be_resorted => ql_c 527 580 ELSE 581 IF ( .NOT. ALLOCATED( ql_c_av ) ) THEN 582 ALLOCATE( ql_c_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 583 ql_c_av = REAL( fill_value, KIND = wp ) 584 ENDIF 528 585 to_be_resorted => ql_c_av 529 586 ENDIF … … 533 590 to_be_resorted => ql_v 534 591 ELSE 592 IF ( .NOT. ALLOCATED( ql_v_av ) ) THEN 593 ALLOCATE( ql_v_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 594 ql_v_av = REAL( fill_value, KIND = wp ) 595 ENDIF 535 596 to_be_resorted => ql_v_av 536 597 ENDIF … … 567 628 resorted = .TRUE. 568 629 ELSE 630 IF ( .NOT. ALLOCATED( ql_vp_av ) ) THEN 631 ALLOCATE( ql_vp_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 632 ql_vp_av = REAL( fill_value, KIND = wp ) 633 ENDIF 569 634 to_be_resorted => ql_vp_av 570 635 ENDIF … … 574 639 to_be_resorted => qr 575 640 ELSE 641 IF ( .NOT. ALLOCATED( qr_av ) ) THEN 642 ALLOCATE( qr_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 643 qr_av = REAL( fill_value, KIND = wp ) 644 ENDIF 576 645 to_be_resorted => qr_av 577 646 ENDIF … … 588 657 resorted = .TRUE. 589 658 ELSE 659 IF ( .NOT. ALLOCATED( qv_av ) ) THEN 660 ALLOCATE( qv_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 661 qv_av = REAL( fill_value, KIND = wp ) 662 ENDIF 590 663 to_be_resorted => qv_av 591 664 ENDIF … … 595 668 to_be_resorted => rho_ocean 596 669 ELSE 670 IF ( .NOT. ALLOCATED( rho_ocean_av ) ) THEN 671 ALLOCATE( u_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 672 u_av = REAL( fill_value, KIND = wp ) 673 ENDIF 597 674 to_be_resorted => rho_ocean_av 598 675 ENDIF … … 602 679 to_be_resorted => s 603 680 ELSE 681 IF ( .NOT. ALLOCATED( s_av ) ) THEN 682 ALLOCATE( s_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 683 s_av = REAL( fill_value, KIND = wp ) 684 ENDIF 604 685 to_be_resorted => s_av 605 686 ENDIF … … 609 690 to_be_resorted => sa 610 691 ELSE 692 IF ( .NOT. ALLOCATED( sa_av ) ) THEN 693 ALLOCATE( sa_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 694 sa_av = REAL( fill_value, KIND = wp ) 695 ENDIF 611 696 to_be_resorted => sa_av 612 697 ENDIF … … 617 702 to_be_resorted => u 618 703 ELSE 704 IF ( .NOT. ALLOCATED( u_av ) ) THEN 705 ALLOCATE( u_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 706 u_av = REAL( fill_value, KIND = wp ) 707 ENDIF 619 708 to_be_resorted => u_av 620 709 ENDIF … … 625 714 to_be_resorted => v 626 715 ELSE 716 IF ( .NOT. ALLOCATED( v_av ) ) THEN 717 ALLOCATE( v_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 718 v_av = REAL( fill_value, KIND = wp ) 719 ENDIF 627 720 to_be_resorted => v_av 628 721 ENDIF … … 632 725 to_be_resorted => vpt 633 726 ELSE 727 IF ( .NOT. ALLOCATED( vpt_av ) ) THEN 728 ALLOCATE( vpt_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 729 vpt_av = REAL( fill_value, KIND = wp ) 730 ENDIF 634 731 to_be_resorted => vpt_av 635 732 ENDIF … … 640 737 to_be_resorted => w 641 738 ELSE 739 IF ( .NOT. ALLOCATED( w_av ) ) THEN 740 ALLOCATE( w_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 741 w_av = REAL( fill_value, KIND = wp ) 742 ENDIF 642 743 to_be_resorted => w_av 643 744 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.