Changeset 1822 for palm/trunk/SOURCE/check_parameters.f90
- Timestamp:
- Apr 7, 2016 7:49:42 AM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/check_parameters.f90
r1818 r1822 19 19 ! Current revisions: 20 20 ! ----------------- 21 ! 21 ! PALM collision kernel deleted. Collision algorithms are checked for correct 22 ! spelling. 23 ! 24 ! Tails removed. 25 ! 26 ! Checks for use_sgs_for_particles adopted for the use of droplets with 27 ! use_sgs_for_particles adopted. 28 ! 29 ! Unused variables removed. 22 30 ! 23 31 ! Former revisions: … … 358 366 CHARACTER (LEN=1) :: sq !< 359 367 CHARACTER (LEN=15) :: var !< 360 CHARACTER (LEN=7) :: unit !< 368 CHARACTER (LEN=7) :: unit !< 361 369 CHARACTER (LEN=8) :: date !< 362 370 CHARACTER (LEN=10) :: time !< … … 367 375 368 376 INTEGER(iwp) :: i !< 369 INTEGER(iwp) :: ilen !< 370 INTEGER(iwp) :: iremote = 0 !< 377 INTEGER(iwp) :: ilen !< 371 378 INTEGER(iwp) :: j !< 372 379 INTEGER(iwp) :: k !< … … 374 381 INTEGER(iwp) :: netcdf_data_format_save !< 375 382 INTEGER(iwp) :: position !< 376 INTEGER(iwp) :: prec !<377 383 378 384 LOGICAL :: found !< … … 661 667 'with particle advection.' 662 668 CALL message( 'check_parameters', 'PA0017', 1, 2, 0, 6, 0 ) 663 ENDIF664 665 !666 !--667 IF ( use_particle_tails ) THEN668 message_string = 'Particle tails are currently not available due ' // &669 'to the new particle structure.'670 CALL message( 'check_parameters', 'PA0392', 1, 2, 0, 6, 0 )671 669 ENDIF 672 670 … … 767 765 ! 768 766 !-- Check cloud scheme 769 IF ( cloud_scheme == 'seifert_beheng' ) THEN 770 icloud_scheme = 0 767 IF ( cloud_scheme == 'saturation_adjust' ) THEN 768 microphysics_sat_adjust = .TRUE. 769 microphysics_seifert = .FALSE. 770 microphysics_kessler = .FALSE. 771 precipitation = .FALSE. 772 ELSEIF ( cloud_scheme == 'seifert_beheng' ) THEN 773 microphysics_sat_adjust = .FALSE. 774 microphysics_seifert = .TRUE. 775 microphysics_kessler = .FALSE. 776 precipitation = .TRUE. 771 777 ELSEIF ( cloud_scheme == 'kessler' ) THEN 772 icloud_scheme = 1 778 microphysics_sat_adjust = .FALSE. 779 microphysics_seifert = .FALSE. 780 microphysics_kessler = .TRUE. 781 precipitation = .TRUE. 773 782 ELSE 774 783 message_string = 'unknown cloud microphysics scheme cloud_scheme ="' // & … … 846 855 ENDIF 847 856 848 IF ( use_sgs_for_particles .AND. .NOT. use_upstream_for_tke .AND.&849 ( scalar_advec /= 'ws-scheme' .OR.&850 scalar_advec /= 'ws-scheme-mono' )&857 IF ( use_sgs_for_particles .AND. .NOT. cloud_droplets .AND. & 858 .NOT. use_upstream_for_tke .AND. & 859 ( scalar_advec /= 'ws-scheme' .OR. scalar_advec /= 'ws-scheme-mono' ) & 851 860 ) THEN 852 861 use_upstream_for_tke = .TRUE. … … 906 915 hall_kernel = .TRUE. 907 916 908 CASE ( 'palm' )909 palm_kernel = .TRUE.910 911 917 CASE ( 'wang', 'wang_fast' ) 912 918 wang_kernel = .TRUE. … … 922 928 END SELECT 923 929 IF ( collision_kernel(6:9) == 'fast' ) use_kernel_tables = .TRUE. 930 931 ! 932 !-- Collision algorithms: 933 SELECT CASE ( TRIM( collision_algorithm ) ) 934 935 CASE ( 'all_or_nothing' ) 936 all_or_nothing = .TRUE. 937 938 CASE ( 'average_impact' ) 939 average_impact = .TRUE. 940 941 CASE DEFAULT 942 message_string = 'unknown collision algorithm: collision_algorithm = "' // & 943 TRIM( collision_algorithm ) // '"' 944 CALL message( 'check_parameters', 'PA0420', 1, 2, 0, 6, 0 ) 945 946 END SELECT 924 947 925 948 IF ( TRIM( initializing_actions ) /= 'read_restart_data' .AND. & … … 979 1002 'not allowed with humidity = ', humidity 980 1003 CALL message( 'check_parameters', 'PA0034', 1, 2, 0, 6, 0 ) 981 ENDIF982 983 IF ( precipitation .AND. .NOT. cloud_physics ) THEN984 WRITE( message_string, * ) 'precipitation = ', precipitation, ' is ', &985 'not allowed with cloud_physics = ', cloud_physics986 CALL message( 'check_parameters', 'PA0035', 1, 2, 0, 6, 0 )987 1004 ENDIF 988 1005 … … 1032 1049 ENDIF 1033 1050 1034 IF ( cloud_physics .AND. icloud_scheme == 0) THEN1051 IF ( cloud_physics .AND. microphysics_seifert ) THEN 1035 1052 message_string = 'plant_canopy = .TRUE. requires cloud_scheme /=' // & 1036 1053 ' seifert_beheng' … … 1095 1112 IF ( .NOT. ( loop_optimization == 'cache' .OR. & 1096 1113 loop_optimization == 'vector' ) & 1097 .AND. cloud_physics .AND. icloud_scheme == 0) THEN1114 .AND. cloud_physics .AND. microphysics_seifert ) THEN 1098 1115 message_string = 'cloud_scheme = seifert_beheng requires ' // & 1099 1116 'loop_optimization = "cache" or "vector"' … … 2152 2169 ! 2153 2170 !-- Set the default value for the integration interval of precipitation amount 2154 IF ( precipitation) THEN2171 IF ( microphysics_seifert .OR. microphysics_kessler ) THEN 2155 2172 IF ( precipitation_amount_interval == 9999999.9_wp ) THEN 2156 2173 precipitation_amount_interval = dt_do2d_xy … … 2782 2799 'lemented for cloud_physics = .FALSE.' 2783 2800 CALL message( 'check_parameters', 'PA0094', 1, 2, 0, 6, 0 ) 2784 ELSEIF ( icloud_scheme /= 0) THEN2801 ELSEIF ( .NOT. microphysics_seifert ) THEN 2785 2802 message_string = 'data_output_pr = ' // & 2786 2803 TRIM( data_output_pr(i) ) // ' is not imp' // & 2787 2804 'lemented for cloud_scheme /= seifert_beheng' 2788 2805 CALL message( 'check_parameters', 'PA0358', 1, 2, 0, 6, 0 ) 2789 ELSEIF ( .NOT. precipitation ) THEN2790 message_string = 'data_output_pr = ' // &2791 TRIM( data_output_pr(i) ) // ' is not imp' // &2792 'lemented for precipitation = .FALSE.'2793 CALL message( 'check_parameters', 'PA0361', 1, 2, 0, 6, 0 )2794 2806 ELSE 2795 2807 dopr_index(i) = 73 … … 2804 2816 'lemented for cloud_physics = .FALSE.' 2805 2817 CALL message( 'check_parameters', 'PA0094', 1, 2, 0, 6, 0 ) 2806 ELSEIF ( icloud_scheme /= 0) THEN2818 ELSEIF ( .NOT. microphysics_seifert ) THEN 2807 2819 message_string = 'data_output_pr = ' // & 2808 2820 TRIM( data_output_pr(i) ) // ' is not imp' // & 2809 2821 'lemented for cloud_scheme /= seifert_beheng' 2810 2822 CALL message( 'check_parameters', 'PA0358', 1, 2, 0, 6, 0 ) 2811 ELSEIF ( .NOT. precipitation ) THEN2812 message_string = 'data_output_pr = ' // &2813 TRIM( data_output_pr(i) ) // ' is not imp' // &2814 'lemented for precipitation = .FALSE.'2815 CALL message( 'check_parameters', 'PA0361', 1, 2, 0, 6, 0 )2816 2823 ELSE 2817 2824 dopr_index(i) = 74 … … 2826 2833 'lemented for cloud_physics = .FALSE.' 2827 2834 CALL message( 'check_parameters', 'PA0094', 1, 2, 0, 6, 0 ) 2828 ELSEIF ( icloud_scheme /= 0 ) THEN2829 message_string = 'data_output_pr = ' // &2830 TRIM( data_output_pr(i) ) // ' is not imp' // &2831 'lemented for cloud_scheme /= seifert_beheng'2832 CALL message( 'check_parameters', 'PA0358', 1, 2, 0, 6, 0 )2833 2835 ELSE 2834 2836 dopr_index(i) = 75 … … 2843 2845 'lemented for cloud_physics = .FALSE.' 2844 2846 CALL message( 'check_parameters', 'PA0094', 1, 2, 0, 6, 0 ) 2845 ELSEIF ( icloud_scheme /= 0 ) THEN 2846 message_string = 'data_output_pr = ' // & 2847 TRIM( data_output_pr(i) ) // ' is not imp' // & 2848 'lemented for cloud_scheme /= seifert_beheng' 2849 CALL message( 'check_parameters', 'PA0358', 1, 2, 0, 6, 0 ) 2850 ELSEIF ( .NOT. precipitation ) THEN 2851 message_string = 'data_output_pr = ' // & 2852 TRIM( data_output_pr(i) ) // ' is not imp' // & 2853 'lemented for precipitation = .FALSE.' 2854 CALL message( 'check_parameters', 'PA0361', 1, 2, 0, 6, 0 ) 2855 2847 ELSEIF ( microphysics_sat_adjust ) THEN 2848 message_string = 'data_output_pr = ' // & 2849 TRIM( data_output_pr(i) ) // ' is not ava' // & 2850 'ilable for cloud_scheme = saturation_adjust' 2851 CALL message( 'check_parameters', 'PA0422', 1, 2, 0, 6, 0 ) 2856 2852 ELSE 2857 2853 dopr_index(i) = 76 … … 3203 3199 'res cloud_physics = .TRUE.' 3204 3200 CALL message( 'check_parameters', 'PA0108', 1, 2, 0, 6, 0 ) 3205 ELSEIF ( icloud_scheme /= 0) THEN3201 ELSEIF ( .NOT. microphysics_seifert ) THEN 3206 3202 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3207 3203 'res cloud_scheme = seifert_beheng' … … 3224 3220 'res cloud_physics = .TRUE.' 3225 3221 CALL message( 'check_parameters', 'PA0108', 1, 2, 0, 6, 0 ) 3226 ELSEIF ( icloud_scheme /= 0 ) THEN 3227 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3228 'res cloud_scheme = seifert_beheng' 3229 CALL message( 'check_parameters', 'PA0359', 1, 2, 0, 6, 0 ) 3230 ELSEIF ( .NOT. precipitation ) THEN 3231 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3232 'res precipitation = .TRUE.' 3233 CALL message( 'check_parameters', 'PA0112', 1, 2, 0, 6, 0 ) 3222 ELSEIF ( microphysics_sat_adjust ) THEN 3223 message_string = 'output of "' // TRIM( var ) // '" is ' // & 3224 'not available for cloud_scheme = saturation_adjust' 3225 CALL message( 'check_parameters', 'PA0423', 1, 2, 0, 6, 0 ) 3234 3226 ENDIF 3235 3227 unit = 'kg/kg m/s' … … 3249 3241 'res cloud_physics = .TRUE.' 3250 3242 CALL message( 'check_parameters', 'PA0108', 1, 2, 0, 6, 0 ) 3251 ELSEIF ( icloud_scheme /= 0 ) THEN3252 message_string = 'output of "' // TRIM( var ) // '" requi' // &3253 'res cloud_scheme = seifert_beheng'3254 CALL message( 'check_parameters', 'PA0359', 1, 2, 0, 6, 0 )3255 3243 ENDIF 3256 3244 unit = 'kg/kg' … … 3279 3267 'res cloud_physics = .TRUE.' 3280 3268 CALL message( 'check_parameters', 'PA0108', 1, 2, 0, 6, 0 ) 3281 ELSEIF ( icloud_scheme /= 0) THEN3269 ELSEIF ( .NOT. microphysics_seifert ) THEN 3282 3270 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3283 3271 'res cloud_scheme = seifert_beheng' 3284 3272 CALL message( 'check_parameters', 'PA0359', 1, 2, 0, 6, 0 ) 3285 ELSEIF ( .NOT. precipitation ) THEN3286 message_string = 'output of "' // TRIM( var ) // '" requi' // &3287 'res precipitation = .TRUE.'3288 CALL message( 'check_parameters', 'PA0112', 1, 2, 0, 6, 0 )3289 3273 ENDIF 3290 3274 unit = 'kg/kg' … … 3371 3355 CALL message( 'check_parameters', 'PA0108', 1, 2, 0, 6, 0 ) 3372 3356 ENDIF 3373 IF ( TRIM( var ) == 'pra*' .AND. .NOT. precipitation ) THEN 3357 IF ( TRIM( var ) == 'pra*' .AND. & 3358 .NOT. ( microphysics_kessler .OR. microphysics_seifert ) ) THEN 3374 3359 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3375 'res precipitation = .TRUE.'3360 'res cloud_scheme = kessler or seifert_beheng' 3376 3361 CALL message( 'check_parameters', 'PA0112', 1, 2, 0, 6, 0 ) 3377 3362 ENDIF … … 3381 3366 CALL message( 'check_parameters', 'PA0113', 1, 2, 0, 6, 0 ) 3382 3367 ENDIF 3383 IF ( TRIM( var ) == 'prr*' .AND. .NOT. precipitation ) THEN 3368 IF ( TRIM( var ) == 'prr*' .AND. & 3369 .NOT. ( microphysics_kessler .OR. microphysics_seifert ) ) THEN 3384 3370 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3385 'res precipitation = .TRUE.'3371 'res cloud_scheme = kessler or seifert_beheng' 3386 3372 CALL message( 'check_parameters', 'PA0112', 1, 2, 0, 6, 0 ) 3387 3373 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.