Changeset 177 for palm/trunk
- Timestamp:
- Jul 11, 2008 3:13:39 PM (16 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/CURRENT_MODIFICATIONS
r175 r177 77 77 Errors: 78 78 ------ 79 Bugfix: Construction of vertical profiles when 10 gradients have been 80 specified in the parameter list (ug, vg, pt, q, sa, lad). (check_parameters) 81 79 82 Bugfix: Determination of the number of vertical levels for which spectra 80 83 shall be output - 100 replaced by 10. (netcdf) -
palm/trunk/SOURCE/check_parameters.f90
r153 r177 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! Bug fix: Construction of vertical profiles when 10 gradients have been 7 ! specified in the parameter list (ug, vg, pt, q, sa, lad) 8 ! 6 9 ! Leaf area density (LAD) explicitly set to its surface value at k=0 7 10 ! Case of reading data for recycling included in initializing_actions, … … 632 635 ug(0) = ug_surface 633 636 DO k = 1, nzt+1 634 IF ( ug_vertical_gradient_level(i) < zu(k) .AND. & 635 ug_vertical_gradient_level(i) >= 0.0 ) THEN 636 gradient = ug_vertical_gradient(i) / 100.0 637 ug_vertical_gradient_level_ind(i) = k - 1 638 i = i + 1 639 IF ( i > 10 ) THEN 640 IF ( myid == 0 ) THEN 641 PRINT*, '+++ check_parameters: upper bound 10 of array', & 642 ' "ug_vertical_gradient_level_ind" exceeded' 643 ENDIF 644 CALL local_stop 645 ENDIF 646 ENDIF 637 IF ( i < 11 ) THEN 638 IF ( ug_vertical_gradient_level(i) < zu(k) .AND. & 639 ug_vertical_gradient_level(i) >= 0.0 ) THEN 640 gradient = ug_vertical_gradient(i) / 100.0 641 ug_vertical_gradient_level_ind(i) = k - 1 642 i = i + 1 643 ENDIF 644 ENDIF 647 645 IF ( gradient /= 0.0 ) THEN 648 646 IF ( k /= 1 ) THEN … … 661 659 ug(nzt+1) = ug_surface 662 660 DO k = nzt, 0, -1 663 IF ( ug_vertical_gradient_level(i) > zu(k) .AND. & 664 ug_vertical_gradient_level(i) <= 0.0 ) THEN 665 gradient = ug_vertical_gradient(i) / 100.0 666 ug_vertical_gradient_level_ind(i) = k + 1 667 i = i + 1 668 IF ( i > 10 ) THEN 669 IF ( myid == 0 ) THEN 670 PRINT*, '+++ check_parameters: upper bound 10 of array', & 671 ' "ug_vertical_gradient_level_ind" exceeded' 672 ENDIF 673 CALL local_stop 661 IF ( i < 11 ) THEN 662 IF ( ug_vertical_gradient_level(i) > zu(k) .AND. & 663 ug_vertical_gradient_level(i) <= 0.0 ) THEN 664 gradient = ug_vertical_gradient(i) / 100.0 665 ug_vertical_gradient_level_ind(i) = k + 1 666 i = i + 1 674 667 ENDIF 675 668 ENDIF … … 708 701 vg(0) = vg_surface 709 702 DO k = 1, nzt+1 710 IF ( vg_vertical_gradient_level(i) < zu(k) .AND. & 711 vg_vertical_gradient_level(i) >= 0.0 ) THEN 712 gradient = vg_vertical_gradient(i) / 100.0 713 vg_vertical_gradient_level_ind(i) = k - 1 714 i = i + 1 715 IF ( i > 10 ) THEN 716 IF ( myid == 0 ) THEN 717 PRINT*, '+++ check_parameters: upper bound 10 of array', & 718 ' "vg_vertical_gradient_level_ind" exceeded' 719 ENDIF 720 CALL local_stop 703 IF ( i < 11 ) THEN 704 IF ( vg_vertical_gradient_level(i) < zu(k) .AND. & 705 vg_vertical_gradient_level(i) >= 0.0 ) THEN 706 gradient = vg_vertical_gradient(i) / 100.0 707 vg_vertical_gradient_level_ind(i) = k - 1 708 i = i + 1 721 709 ENDIF 722 710 ENDIF … … 737 725 vg(nzt+1) = vg_surface 738 726 DO k = nzt, 0, -1 739 IF ( vg_vertical_gradient_level(i) > zu(k) .AND. & 740 vg_vertical_gradient_level(i) <= 0.0 ) THEN 741 gradient = vg_vertical_gradient(i) / 100.0 742 vg_vertical_gradient_level_ind(i) = k + 1 743 i = i + 1 744 IF ( i > 10 ) THEN 745 IF ( myid == 0 ) THEN 746 PRINT*, '+++ check_parameters: upper bound 10 of array', & 747 ' "vg_vertical_gradient_level_ind" exceeded' 748 ENDIF 749 CALL local_stop 727 IF ( i < 11 ) THEN 728 IF ( vg_vertical_gradient_level(i) > zu(k) .AND. & 729 vg_vertical_gradient_level(i) <= 0.0 ) THEN 730 gradient = vg_vertical_gradient(i) / 100.0 731 vg_vertical_gradient_level_ind(i) = k + 1 732 i = i + 1 750 733 ENDIF 751 734 ENDIF … … 781 764 pt_vertical_gradient_level_ind(1) = 0 782 765 DO k = 1, nzt+1 783 IF ( pt_vertical_gradient_level(i) < zu(k) .AND. & 784 pt_vertical_gradient_level(i) >= 0.0 ) THEN 785 gradient = pt_vertical_gradient(i) / 100.0 786 pt_vertical_gradient_level_ind(i) = k - 1 787 i = i + 1 788 IF ( i > 10 ) THEN 789 IF ( myid == 0 ) THEN 790 PRINT*, '+++ check_parameters: upper bound 10 of array', & 791 ' "pt_vertical_gradient_level_ind" exceeded' 792 ENDIF 793 CALL local_stop 766 IF ( i < 11 ) THEN 767 IF ( pt_vertical_gradient_level(i) < zu(k) .AND. & 768 pt_vertical_gradient_level(i) >= 0.0 ) THEN 769 gradient = pt_vertical_gradient(i) / 100.0 770 pt_vertical_gradient_level_ind(i) = k - 1 771 i = i + 1 794 772 ENDIF 795 773 ENDIF … … 809 787 pt_vertical_gradient_level_ind(1) = nzt+1 810 788 DO k = nzt, 0, -1 811 IF ( pt_vertical_gradient_level(i) > zu(k) .AND. & 812 pt_vertical_gradient_level(i) <= 0.0 ) THEN 813 gradient = pt_vertical_gradient(i) / 100.0 814 pt_vertical_gradient_level_ind(i) = k + 1 815 i = i + 1 816 IF ( i > 10 ) THEN 817 IF ( myid == 0 ) THEN 818 PRINT*, '+++ check_parameters: upper bound 10 of array', & 819 ' "pt_vertical_gradient_level_ind" exceeded' 820 ENDIF 821 CALL local_stop 789 IF ( i < 11 ) THEN 790 IF ( pt_vertical_gradient_level(i) > zu(k) .AND. & 791 pt_vertical_gradient_level(i) <= 0.0 ) THEN 792 gradient = pt_vertical_gradient(i) / 100.0 793 pt_vertical_gradient_level_ind(i) = k + 1 794 i = i + 1 822 795 ENDIF 823 796 ENDIF … … 868 841 q_vertical_gradient_level_ind(1) = 0 869 842 DO k = 1, nzt+1 870 IF ( q_vertical_gradient_level(i) < zu(k) .AND. & 871 q_vertical_gradient_level(i) >= 0.0 ) THEN 872 gradient = q_vertical_gradient(i) / 100.0 873 q_vertical_gradient_level_ind(i) = k - 1 874 i = i + 1 875 IF ( i > 10 ) THEN 876 IF ( myid == 0 ) THEN 877 PRINT*, '+++ check_parameters: upper bound 10 of arr', & 878 'ay "q_vertical_gradient_level_ind" exceeded' 879 ENDIF 880 CALL local_stop 843 IF ( i < 11 ) THEN 844 IF ( q_vertical_gradient_level(i) < zu(k) .AND. & 845 q_vertical_gradient_level(i) >= 0.0 ) THEN 846 gradient = q_vertical_gradient(i) / 100.0 847 q_vertical_gradient_level_ind(i) = k - 1 848 i = i + 1 881 849 ENDIF 882 850 ENDIF … … 921 889 sa_vertical_gradient_level_ind(1) = nzt+1 922 890 DO k = nzt, 0, -1 923 IF ( sa_vertical_gradient_level(i) > zu(k) .AND. & 924 sa_vertical_gradient_level(i) <= 0.0 ) THEN 925 gradient = sa_vertical_gradient(i) / 100.0 926 sa_vertical_gradient_level_ind(i) = k + 1 927 i = i + 1 928 IF ( i > 10 ) THEN 929 IF ( myid == 0 ) THEN 930 PRINT*, '+++ check_parameters: upper bound 10 of array', & 931 ' "sa_vertical_gradient_level_ind" exceeded' 932 ENDIF 933 CALL local_stop 891 IF ( i < 11 ) THEN 892 IF ( sa_vertical_gradient_level(i) > zu(k) .AND. & 893 sa_vertical_gradient_level(i) <= 0.0 ) THEN 894 gradient = sa_vertical_gradient(i) / 100.0 895 sa_vertical_gradient_level_ind(i) = k + 1 896 i = i + 1 934 897 ENDIF 935 898 ENDIF … … 961 924 lad_vertical_gradient_level_ind(1) = 0 962 925 DO k = 1, pch_index 963 IF ( lad_vertical_gradient_level(i) < zu(k) .AND. & 964 lad_vertical_gradient_level(i) >= 0.0 ) THEN 965 gradient = lad_vertical_gradient(i) 966 lad_vertical_gradient_level_ind(i) = k - 1 967 i = i + 1 968 IF ( i > 10 ) THEN 969 IF ( myid == 0 ) THEN 970 PRINT*, '+++ user_init_3d_model: upper bound 10 of array', & 971 ' "lad_vertical_gradient_level" exceeded' 972 ENDIF 973 CALL local_stop 926 IF ( i < 11 ) THEN 927 IF ( lad_vertical_gradient_level(i) < zu(k) .AND. & 928 lad_vertical_gradient_level(i) >= 0.0 ) THEN 929 gradient = lad_vertical_gradient(i) 930 lad_vertical_gradient_level_ind(i) = k - 1 931 i = i + 1 974 932 ENDIF 975 933 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.