Changeset 215 for palm/trunk/SOURCE/check_parameters.f90
- Timestamp:
- Nov 18, 2008 9:54:31 AM (15 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE
-
Property
svn:ignore
set to
palm_sources.tar
-
Property
svn:ignore
set to
-
palm/trunk/SOURCE/check_parameters.f90
r214 r215 938 938 !-- Ocean version must use flux boundary conditions at the top 939 939 IF ( ocean .AND. .NOT. use_top_fluxes ) THEN 940 IF ( myid == 0 ) PRINT*, '+++ check_parameters: use_top_fluxes ',& 941 'must be .TRUE. in ocean version' 942 CALL local_stop 940 message_string = 'use_top_fluxes must be .TRUE. in ocean version' 941 CALL handle_palm_message( 'check_parameters', 'PA0042', 1, 2, 0, 6, 0 ) 943 942 ENDIF 944 943 … … 947 946 IF ( alpha_surface /= 0.0 ) THEN 948 947 IF ( ABS( alpha_surface ) > 90.0 ) THEN 949 IF ( myid == 0 ) PRINT*, '+++ check_parameters: ABS( alpha_surface',& 950 '=', alpha_surface, ' ) must be < 90.0' 951 CALL local_stop 948 WRITE( message_string, * ) 'ABS( alpha_surface = ', alpha_surface, & 949 ' ) must be < 90.0' 950 CALL handle_palm_message( 'check_parameters', 'PA0043', 1, 2, 0, 6, & 951 0 ) 952 952 ENDIF 953 953 sloping_surface = .TRUE. … … 960 960 IF ( dt /= -1.0 ) THEN 961 961 IF ( dt <= 0.0 .AND. dt /= -1.0 ) THEN 962 IF ( myid == 0 ) PRINT*, '+++ check_parameters: dt=', dt, ' <= 0.0' 963 CALL local_stop 962 WRITE( message_string, * ) 'dt = ', dt , ' <= 0.0' 963 CALL handle_palm_message( 'check_parameters', 'PA0044', 1, 2, 0, 6, & 964 0 ) 964 965 ENDIF 965 966 dt_3d = dt … … 982 983 ENDIF 983 984 ELSE 984 IF ( myid == 0 ) THEN 985 PRINT*, '+++ check_parameters: cfl_factor=', cfl_factor, & 986 ' out of range' 987 PRINT*, '+++ 0.0 < cfl_factor <= 1.0 is required' 988 ENDIF 989 CALL local_stop 985 WRITE( message_string, * ) 'cfl_factor = ', cfl_factor, & 986 ' out of range & 0.0 < cfl_factor <= 1.0 is required' 987 CALL handle_palm_message( 'check_parameters', 'PA0045', 1, 2, 0, 6, & 988 0 ) 990 989 ENDIF 991 990 ENDIF … … 1005 1004 ELSEIF ( use_ug_for_galilei_tr .AND. & 1006 1005 ug_vertical_gradient_level(1) /= 0.0 ) THEN 1007 IF ( myid == 0 ) THEN 1008 PRINT*, '+++ check_parameters:' 1009 PRINT*, ' baroclinicity (ug) not allowed' 1010 PRINT*, ' simultaneously with galilei transformation' 1011 ENDIF 1012 CALL local_stop 1006 message_string = 'baroclinicity (ug) not allowed simultaneously' // & 1007 ' with galilei transformation' 1008 CALL handle_palm_message( 'check_parameters', 'PA0046', 1, 2, 0, 6, & 1009 0 ) 1013 1010 ELSEIF ( use_ug_for_galilei_tr .AND. & 1014 1011 vg_vertical_gradient_level(1) /= 0.0 ) THEN 1015 IF ( myid == 0 ) THEN 1016 PRINT*, '+++ check_parameters:' 1017 PRINT*, ' baroclinicity (vg) not allowed' 1018 PRINT*, ' simultaneously with galilei transformation' 1019 ENDIF 1020 CALL local_stop 1012 message_string = 'baroclinicity (vg) not allowed simultaneously' // & 1013 ' with galilei transformation' 1014 CALL handle_palm_message( 'check_parameters', 'PA0047', 1, 2, 0, 6, & 1015 0 ) 1021 1016 ELSE 1022 IF ( myid == 0 ) THEN 1023 PRINT*, '+++ WARNING: check_parameters:' 1024 PRINT*, ' variable translation speed used for galilei-tran' // & 1025 'sformation, which' 1026 PRINT*, ' may cause instabilities in stably stratified regions' 1027 ENDIF 1017 message_string = 'variable translation speed used for galilei-' // & 1018 'transformation, which may cause & instabilities in stably ' // & 1019 'stratified regions' 1020 CALL handle_palm_message( 'check_parameters', 'PA0048', 0, 1, 0, 6, & 1021 0 ) 1028 1022 ENDIF 1029 1023 ENDIF … … 1039 1033 IF ( bc_lr /= 'cyclic' .AND. bc_lr /= 'dirichlet/radiation' .AND. & 1040 1034 bc_lr /= 'radiation/dirichlet' ) THEN 1041 IF ( myid == 0 ) THEN 1042 PRINT*, '+++ check_parameters:' 1043 PRINT*, ' unknown boundary condition: bc_lr = ', bc_lr 1044 ENDIF 1045 CALL local_stop 1035 message_string = 'unknown boundary condition: bc_lr = "' // & 1036 TRIM( bc_lr ) // '"' 1037 CALL handle_palm_message( 'check_parameters', 'PA0049', 1, 2, 0, 6, 0 ) 1046 1038 ENDIF 1047 1039 IF ( bc_ns /= 'cyclic' .AND. bc_ns /= 'dirichlet/radiation' .AND. & 1048 1040 bc_ns /= 'radiation/dirichlet' ) THEN 1049 IF ( myid == 0 ) THEN 1050 PRINT*, '+++ check_parameters:' 1051 PRINT*, ' unknown boundary condition: bc_ns = ', bc_ns 1052 ENDIF 1053 CALL local_stop 1041 message_string = 'unknown boundary condition: bc_ns = "' // & 1042 TRIM( bc_ns ) // '"' 1043 CALL handle_palm_message( 'check_parameters', 'PA0050', 1, 2, 0, 6, 0 ) 1054 1044 ENDIF 1055 1045 … … 1060 1050 IF ( bc_lr /= 'cyclic' .OR. bc_ns /= 'cyclic' ) THEN 1061 1051 IF ( psolver /= 'multigrid' ) THEN 1062 IF ( myid == 0 ) THEN 1063 PRINT*, '+++ check_parameters:' 1064 PRINT*, ' non-cyclic lateral boundaries do not allow', & 1065 ' psolver = ', psolver 1066 ENDIF 1067 CALL local_stop 1052 message_string = 'non-cyclic lateral boundaries do not allow ' // & 1053 'psolver = "' // TRIM( psolver ) // '"' 1054 CALL handle_palm_message( 'check_parameters', 'PA0051', 1, 2, 0, 6, & 1055 0 ) 1068 1056 ENDIF 1069 1057 IF ( momentum_advec /= 'pw-scheme' ) THEN 1070 IF ( myid == 0 ) THEN 1071 PRINT*, '+++ check_parameters:' 1072 PRINT*, ' non-cyclic lateral boundaries do not allow', & 1073 ' momentum_advec = ', momentum_advec 1074 ENDIF 1075 CALL local_stop 1058 message_string = 'non-cyclic lateral boundaries do not allow ' // & 1059 'momentum_advec = "' // TRIM( momentum_advec ) // '"' 1060 CALL handle_palm_message( 'check_parameters', 'PA0052', 1, 2, 0, 6, & 1061 0 ) 1076 1062 ENDIF 1077 1063 IF ( scalar_advec /= 'pw-scheme' ) THEN 1078 IF ( myid == 0 ) THEN 1079 PRINT*, '+++ check_parameters:' 1080 PRINT*, ' non-cyclic lateral boundaries do not allow', & 1081 ' scalar_advec = ', scalar_advec 1082 ENDIF 1083 CALL local_stop 1064 message_string = 'non-cyclic lateral boundaries do not allow ' // & 1065 'scalar_advec = "' // TRIM( scalar_advec ) // '"' 1066 CALL handle_palm_message( 'check_parameters', 'PA0053', 1, 2, 0, 6, & 1067 0 ) 1084 1068 ENDIF 1085 1069 IF ( galilei_transformation ) THEN 1086 IF ( myid == 0 ) THEN 1087 PRINT*, '+++ check_parameters:' 1088 PRINT*, ' non-cyclic lateral boundaries do not allow', & 1089 ' galilei_transformation = .T.' 1090 ENDIF 1091 CALL local_stop 1092 ENDIF 1093 ! IF ( conserve_volume_flow ) THEN 1094 ! IF ( myid == 0 ) THEN 1095 ! PRINT*, '+++ check_parameters:' 1096 ! PRINT*, ' non-cyclic lateral boundaries do not allow', & 1097 ! ' conserve_volume_flow = .T.' 1098 ! ENDIF 1099 ! CALL local_stop 1100 ! ENDIF 1070 message_string = 'non-cyclic lateral boundaries do not allow ' // & 1071 'galilei_transformation = .T.' 1072 CALL handle_palm_message( 'check_parameters', 'PA0054', 1, 2, 0, 6, & 1073 0 ) 1074 ENDIF 1101 1075 ENDIF 1102 1076 … … 1106 1080 ibc_e_b = 1 1107 1081 IF ( adjust_mixing_length .AND. prandtl_layer ) THEN 1108 IF ( myid == 0 ) THEN 1109 PRINT*, '+++ WARNING: check_parameters:' 1110 PRINT*, ' adjust_mixing_length = TRUE and bc_e_b = ', bc_e_b 1111 ENDIF 1082 message_string = 'adjust_mixing_length = TRUE and bc_e_b = "neumann"' 1083 CALL handle_palm_message( 'check_parameters', 'PA0055', 0, 1, 0, 6, & 1084 0 ) 1112 1085 ENDIF 1113 1086 ELSEIF ( bc_e_b == '(u*)**2+neumann' ) THEN 1114 1087 ibc_e_b = 2 1115 1088 IF ( .NOT. adjust_mixing_length .AND. prandtl_layer ) THEN 1116 IF ( myid == 0 ) THEN1117 PRINT*, '+++ WARNING: check_parameters:'1118 PRINT*, ' adjust_mixing_length = FALSE and bc_e_b = ', bc_e_b1119 ENDIF1089 message_string = 'adjust_mixing_length = FALSE and bc_e_b = "' // & 1090 TRIM( bc_e_b ) // '"' 1091 CALL handle_palm_message( 'check_parameters', 'PA0056', 0, 1, 0, 6, & 1092 0 ) 1120 1093 ENDIF 1121 1094 IF ( .NOT. prandtl_layer ) THEN 1122 1095 bc_e_b = 'neumann' 1123 1096 ibc_e_b = 1 1124 IF ( myid == 0 ) THEN1125 PRINT*, '+++ WARNING: check_parameters:'1126 PRINT*, ' boundary condition bc_e_b changed to "', bc_e_b, '"'1127 ENDIF1097 message_string = 'boundary condition bc_e_b changed to "' // & 1098 TRIM( bc_e_b ) // '"' 1099 CALL handle_palm_message( 'check_parameters', 'PA0057', 0, 1, 0, 6, & 1100 0 ) 1128 1101 ENDIF 1129 1102 ELSE 1130 IF ( myid == 0 ) THEN 1131 PRINT*, '+++ check_parameters:' 1132 PRINT*, ' unknown boundary condition: bc_e_b = ', bc_e_b 1133 ENDIF 1134 CALL local_stop 1103 message_string = 'unknown boundary condition: bc_e_b = "' // & 1104 TRIM( bc_e_b ) // '"' 1105 CALL handle_palm_message( 'check_parameters', 'PA0058', 1, 2, 0, 6, 0 ) 1135 1106 ENDIF 1136 1107 … … 1144 1115 ibc_p_b = 2 1145 1116 ELSE 1146 IF ( myid == 0 ) THEN 1147 PRINT*, '+++ check_parameters:' 1148 PRINT*, ' unknown boundary condition: bc_p_b = ', bc_p_b 1149 ENDIF 1150 CALL local_stop 1117 message_string = 'unknown boundary condition: bc_p_b = "' // & 1118 TRIM( bc_p_b ) // '"' 1119 CALL handle_palm_message( 'check_parameters', 'PA0059', 1, 2, 0, 6, 0 ) 1151 1120 ENDIF 1152 1121 IF ( ibc_p_b == 2 .AND. .NOT. prandtl_layer ) THEN 1153 IF ( myid == 0 ) THEN 1154 PRINT*, '+++ check_parameters:' 1155 PRINT*, ' boundary condition: bc_p_b = ', TRIM( bc_p_b ), & 1156 ' not allowed with' 1157 PRINT*, ' prandtl_layer = .FALSE.' 1158 ENDIF 1159 CALL local_stop 1122 message_string = 'boundary condition: bc_p_b = "' // TRIM( bc_p_b ) // & 1123 '" not allowed with prandtl_layer = .FALSE.' 1124 CALL handle_palm_message( 'check_parameters', 'PA0060', 1, 2, 0, 6, 0 ) 1160 1125 ENDIF 1161 1126 IF ( bc_p_t == 'dirichlet' ) THEN … … 1164 1129 ibc_p_t = 1 1165 1130 ELSE 1166 IF ( myid == 0 ) THEN 1167 PRINT*, '+++ check_parameters:' 1168 PRINT*, ' unknown boundary condition: bc_p_t = ', bc_p_t 1169 ENDIF 1170 CALL local_stop 1131 message_string = 'unknown boundary condition: bc_p_t = "' // & 1132 TRIM( bc_p_t ) // '"' 1133 CALL handle_palm_message( 'check_parameters', 'PA0061', 1, 2, 0, 6, 0 ) 1171 1134 ENDIF 1172 1135 … … 1181 1144 ibc_pt_b = 1 1182 1145 ELSE 1183 IF ( myid == 0 ) THEN 1184 PRINT*, '+++ check_parameters:' 1185 PRINT*, ' unknown boundary condition: bc_pt_b = ', bc_pt_b 1186 ENDIF 1187 CALL local_stop 1146 message_string = 'unknown boundary condition: bc_pt_b = "' // & 1147 TRIM( bc_pt_b ) // '"' 1148 CALL handle_palm_message( 'check_parameters', 'PA0062', 1, 2, 0, 6, & 1149 0 ) 1188 1150 ENDIF 1189 1151 ENDIF … … 1196 1158 ibc_pt_t = 2 1197 1159 ELSE 1198 IF ( myid == 0 ) THEN 1199 PRINT*, '+++ check_parameters:' 1200 PRINT*, ' unknown boundary condition: bc_pt_t = ', bc_pt_t 1201 ENDIF 1202 CALL local_stop 1160 message_string = 'unknown boundary condition: bc_pt_t = "' // & 1161 TRIM( bc_pt_t ) // '"' 1162 CALL handle_palm_message( 'check_parameters', 'PA0063', 1, 2, 0, 6, 0 ) 1203 1163 ENDIF 1204 1164 … … 1209 1169 constant_top_momentumflux = .TRUE. 1210 1170 ELSEIF ( .NOT. ( top_momentumflux_u == 9999999.9 .AND. & 1211 top_momentumflux_v == 9999999.9 ) ) THEN 1212 IF ( myid == 0 ) THEN 1213 PRINT*, '+++ check_parameters:' 1214 PRINT*, ' both, top_momentumflux_u AND top_momentumflux_v' 1215 PRINT*, ' must be set' 1216 ENDIF 1217 CALL local_stop 1171 top_momentumflux_v == 9999999.9 ) ) THEN 1172 message_string = 'both, top_momentumflux_u AND top_momentumflux_v ' // & 1173 'must be set' 1174 CALL handle_palm_message( 'check_parameters', 'PA0064', 1, 2, 0, 6, 0 ) 1218 1175 ENDIF 1219 1176 … … 1224 1181 IF ( ibc_pt_b == 0 .AND. constant_heatflux .AND. & 1225 1182 surface_heatflux /= 0.0 ) THEN 1226 IF ( myid == 0 ) THEN 1227 PRINT*, '+++ check_parameters:' 1228 PRINT*, ' boundary_condition: bc_pt_b = ', bc_pt_b 1229 PRINT*, ' is not allowed with constant_heatflux = .TRUE.' 1230 ENDIF 1231 CALL local_stop 1183 message_string = 'boundary_condition: bc_pt_b = "' // TRIM( bc_pt_b ) //& 1184 '& is not allowed with constant_heatflux = .TRUE.' 1185 CALL handle_palm_message( 'check_parameters', 'PA0065', 1, 2, 0, 6, 0 ) 1232 1186 ENDIF 1233 1187 IF ( constant_heatflux .AND. pt_surface_initial_change /= 0.0 ) THEN 1234 IF ( myid == 0 ) THEN 1235 PRINT*, '+++ check_parameters: constant_heatflux = .TRUE. is not' 1236 PRINT*, ' allowed with pt_surface_initial_change (/=0) = ', & 1237 pt_surface_initial_change 1238 ENDIF 1239 CALL local_stop 1188 WRITE ( message_string, * ) 'constant_heatflux = .TRUE. is not allo', & 1189 'wed with pt_surface_initial_change (/=0) = ', & 1190 pt_surface_initial_change 1191 CALL handle_palm_message( 'check_parameters', 'PA0066', 1, 2, 0, 6, 0 ) 1240 1192 ENDIF 1241 1193 … … 1246 1198 IF ( ibc_pt_t == 0 .AND. constant_top_heatflux .AND. & 1247 1199 top_heatflux /= 0.0 ) THEN 1248 IF ( myid == 0 ) THEN 1249 PRINT*, '+++ check_parameters:' 1250 PRINT*, ' boundary_condition: bc_pt_t = ', bc_pt_t 1251 PRINT*, ' is not allowed with constant_top_heatflux = .TRUE.' 1252 ENDIF 1253 CALL local_stop 1200 message_string = 'boundary_condition: bc_pt_t = "' // TRIM( bc_pt_t ) //& 1201 '" is not allowed with constant_top_heatflux = .TRUE.' 1202 CALL handle_palm_message( 'check_parameters', 'PA0067', 1, 2, 0, 6, 0 ) 1254 1203 ENDIF 1255 1204 … … 1262 1211 ibc_sa_t = 1 1263 1212 ELSE 1264 IF ( myid == 0 ) THEN 1265 PRINT*, '+++ check_parameters:' 1266 PRINT*, ' unknown boundary condition: bc_sa_t = ', bc_sa_t 1267 ENDIF 1268 CALL local_stop 1213 message_string = 'unknown boundary condition: bc_sa_t = "' // & 1214 TRIM( bc_sa_t ) // '"' 1215 CALL handle_palm_message( 'check_parameters', 'PA0068', 1, 2, 0, 6, & 1216 0 ) 1269 1217 ENDIF 1270 1218 1271 1219 IF ( top_salinityflux == 9999999.9 ) constant_top_salinityflux = .FALSE. 1272 1220 IF ( ibc_sa_t == 1 .AND. top_salinityflux == 9999999.9 ) THEN 1273 IF ( myid == 0 ) THEN 1274 PRINT*, '+++ check_parameters:' 1275 PRINT*, ' boundary_condition: bc_sa_t = ', bc_sa_t 1276 PRINT*, ' requires to set top_salinityflux ' 1277 ENDIF 1278 CALL local_stop 1221 message_string = 'boundary condition: bc_sa_t = "' // & 1222 TRIM( bc_sa_t ) // '" requires to set ' // & 1223 'top_salinityflux' 1224 CALL handle_palm_message( 'check_parameters', 'PA0069', 1, 2, 0, 6, & 1225 0 ) 1279 1226 ENDIF 1280 1227 … … 1285 1232 IF ( ibc_sa_t == 0 .AND. constant_top_salinityflux .AND. & 1286 1233 top_salinityflux /= 0.0 ) THEN 1287 IF ( myid == 0 ) THEN 1288 PRINT*, '+++ check_parameters:' 1289 PRINT*, ' boundary_condition: bc_sa_t = ', bc_sa_t 1290 PRINT*, ' is not allowed with constant_top_salinityflux = ', & 1291 '.TRUE.' 1292 ENDIF 1293 CALL local_stop 1234 message_string = 'boundary condition: bc_sa_t = "' // & 1235 TRIM( bc_sa_t ) // '" is not allowed with ' // & 1236 'constant_top_salinityflux = .TRUE.' 1237 CALL handle_palm_message( 'check_parameters', 'PA0070', 1, 2, 0, 6, & 1238 0 ) 1294 1239 ENDIF 1295 1240 … … 1310 1255 ibc_q_b = 1 1311 1256 ELSE 1312 IF ( myid == 0 ) THEN 1313 PRINT*, '+++ check_parameters:' 1314 PRINT*, ' unknown boundary condition: bc_', sq, '_b = ', bc_q_b 1315 ENDIF 1316 CALL local_stop 1257 message_string = 'unknown boundary condition: bc_' // TRIM( sq ) // & 1258 '_b ="' // TRIM( bc_q_b ) // '"' 1259 CALL handle_palm_message( 'check_parameters', 'PA0071', 1, 2, 0, 6, & 1260 0 ) 1317 1261 ENDIF 1318 1262 IF ( bc_q_t == 'dirichlet' ) THEN … … 1321 1265 ibc_q_t = 1 1322 1266 ELSE 1323 IF ( myid == 0 ) THEN 1324 PRINT*, '+++ check_parameters:' 1325 PRINT*, ' unknown boundary condition: bc_', sq, '_t = ', bc_q_t 1326 ENDIF 1327 CALL local_stop 1267 message_string = 'unknown boundary condition: bc_' // TRIM( sq ) // & 1268 '_t ="' // TRIM( bc_q_t ) // '"' 1269 CALL handle_palm_message( 'check_parameters', 'PA0072', 1, 2, 0, 6, & 1270 0 ) 1328 1271 ENDIF 1329 1272 … … 1335 1278 !-- forbidden. 1336 1279 IF ( ibc_q_b == 0 .AND. constant_waterflux ) THEN 1337 IF ( myid == 0 ) THEN 1338 PRINT*, '+++ check_parameters:' 1339 PRINT*, ' boundary_condition: bc_', sq, '_b = ', bc_q_b 1340 PRINT*, ' is not allowed with prescribed surface flux' 1341 ENDIF 1342 CALL local_stop 1280 message_string = 'boundary condition: bc_' // TRIM( sq ) // '_b ' // & 1281 '= "' // TRIM( bc_q_b ) // '" is not allowed wi' // & 1282 'th prescribed surface flux' 1283 CALL handle_palm_message( 'check_parameters', 'PA0073', 1, 2, 0, 6, & 1284 0 ) 1343 1285 ENDIF 1344 1286 IF ( constant_waterflux .AND. q_surface_initial_change /= 0.0 ) THEN 1345 IF ( myid == 0 ) THEN 1346 PRINT*, '+++ check_parameters: a prescribed surface flux is not' 1347 PRINT*, ' allowed with ', sq, '_surface_initial_change (/=0)', & 1348 ' = ', q_surface_initial_change 1349 ENDIF 1350 CALL local_stop 1287 WRITE( message_string, * ) 'a prescribed surface flux is not allo', & 1288 'wed with ', sq, '_surface_initial_change (/=0) = ', & 1289 q_surface_initial_change 1290 CALL handle_palm_message( 'check_parameters', 'PA0074', 1, 2, 0, 6, & 1291 0 ) 1351 1292 ENDIF 1352 1293 … … 1360 1301 ibc_uv_b = 1 1361 1302 IF ( prandtl_layer ) THEN 1362 IF ( myid == 0 ) THEN 1363 PRINT*, '+++ check_parameters:' 1364 PRINT*, ' boundary condition: bc_uv_b = ', TRIM( bc_uv_b ), & 1365 ' is not allowed with' 1366 PRINT*, ' prandtl_layer = .TRUE.' 1367 ENDIF 1368 CALL local_stop 1303 message_string = 'boundary condition: bc_uv_b = "' // & 1304 TRIM( bc_uv_b ) // '" is not allowed with prandtl_layer = .TRUE.' 1305 CALL handle_palm_message( 'check_parameters', 'PA0075', 1, 2, 0, 6, & 1306 0 ) 1369 1307 ENDIF 1370 1308 ELSE 1371 IF ( myid == 0 ) THEN 1372 PRINT*, '+++ check_parameters:' 1373 PRINT*, ' unknown boundary condition: bc_uv_b = ', bc_uv_b 1374 ENDIF 1375 CALL local_stop 1376 ENDIF 1309 message_string = 'unknown boundary condition: bc_uv_b = "' // & 1310 TRIM( bc_uv_b ) // '"' 1311 CALL handle_palm_message( 'check_parameters', 'PA0076', 1, 2, 0, 6, 0 ) 1312 ENDIF 1313 1377 1314 IF ( coupling_mode == 'ocean_to_atmosphere' ) THEN 1378 1315 bc_uv_t = 'neumann' … … 1384 1321 ibc_uv_t = 1 1385 1322 ELSE 1386 IF ( myid == 0 ) THEN 1387 PRINT*, '+++ check_parameters:' 1388 PRINT*, ' unknown boundary condition: bc_uv_t = ', bc_uv_t 1389 ENDIF 1390 CALL local_stop 1323 message_string = 'unknown boundary condition: bc_uv_t = "' // & 1324 TRIM( bc_uv_t ) // '"' 1325 CALL handle_palm_message( 'check_parameters', 'PA0077', 1, 2, 0, 6, & 1326 0 ) 1391 1327 ENDIF 1392 1328 ENDIF … … 1403 1339 IF ( rayleigh_damping_factor < 0.0 .OR. rayleigh_damping_factor > 1.0 ) & 1404 1340 THEN 1405 IF ( myid == 0 ) THEN 1406 PRINT*, '+++ check_parameters:' 1407 PRINT*, ' rayleigh_damping_factor = ', rayleigh_damping_factor,& 1408 ' out of range [0.0,1.0]' 1409 ENDIF 1410 CALL local_stop 1341 WRITE( message_string, * ) 'rayleigh_damping_factor = ', & 1342 rayleigh_damping_factor, ' out of range [0.0,1.0]' 1343 CALL handle_palm_message( 'check_parameters', 'PA0078', 1, 2, 0, 6, & 1344 0 ) 1411 1345 ENDIF 1412 1346 ENDIF … … 1422 1356 IF ( rayleigh_damping_height < 0.0 .OR. & 1423 1357 rayleigh_damping_height > zu(nzt) ) THEN 1424 IF ( myid == 0 ) THEN 1425 PRINT*, '+++ check_parameters:' 1426 PRINT*, ' rayleigh_damping_height = ', rayleigh_damping_height,& 1427 ' out of range [0.0,', zu(nzt), ']' 1428 ENDIF 1429 CALL local_stop 1358 WRITE( message_string, * ) 'rayleigh_damping_height = ', & 1359 rayleigh_damping_height, ' out of range [0.0,', zu(nzt), ']' 1360 CALL handle_palm_message( 'check_parameters', 'PA0079', 1, 2, 0, & 1361 6, 0 ) 1430 1362 ENDIF 1431 1363 ELSE 1432 1364 IF ( rayleigh_damping_height > 0.0 .OR. & 1433 1365 rayleigh_damping_height < zu(nzb) ) THEN 1434 IF ( myid == 0 ) THEN 1435 PRINT*, '+++ check_parameters:' 1436 PRINT*, ' rayleigh_damping_height = ', rayleigh_damping_height,& 1437 ' out of range [0.0,', zu(nzb), ']' 1438 ENDIF 1439 CALL local_stop 1366 WRITE( message_string, * ) 'rayleigh_damping_height = ', & 1367 rayleigh_damping_height, ' out of range [0.0,', zu(nzb), ']' 1368 CALL handle_palm_message( 'check_parameters', 'PA0079', 1, 2, 0, & 1369 6, 0 ) 1440 1370 ENDIF 1441 1371 ENDIF … … 1447 1377 overshoot_limit_w < 0.0 .OR. overshoot_limit_pt < 0.0 .OR. & 1448 1378 overshoot_limit_e < 0.0 ) THEN 1449 IF ( myid == 0 ) THEN 1450 PRINT*, '+++ check_parameters:' 1451 PRINT*, ' overshoot_limit_... < 0.0 is not allowed' 1452 ENDIF 1453 CALL local_stop 1379 message_string = 'overshoot_limit_... < 0.0 is not allowed' 1380 CALL handle_palm_message( 'check_parameters', 'PA0080', 1, 2, 0, 6, 0 ) 1454 1381 ENDIF 1455 1382 IF ( ups_limit_u < 0.0 .OR. ups_limit_v < 0.0 .OR. ups_limit_w < 0.0 .OR. & 1456 1383 ups_limit_pt < 0.0 .OR. ups_limit_e < 0.0 ) THEN 1457 IF ( myid == 0 ) THEN 1458 PRINT*, '+++ check_parameters:' 1459 PRINT*, ' ups_limit_... < 0.0 is not allowed' 1460 ENDIF 1461 CALL local_stop 1384 message_string = 'ups_limit_... < 0.0 is not allowed' 1385 CALL handle_palm_message( 'check_parameters', 'PA0081', 1, 2, 0, 6, 0 ) 1462 1386 ENDIF 1463 1387 … … 1467 1391 !-- be opened (cf. check_open) 1468 1392 IF ( statistic_regions > 9 .OR. statistic_regions < 0 ) THEN 1469 IF ( myid == 0 ) THEN 1470 PRINT*, '+++ check_parameters: Number of statistic_regions = ', & 1471 statistic_regions+1 1472 PRINT*, ' Only 10 regions are allowed' 1473 ENDIF 1474 CALL local_stop 1393 WRITE ( message_string, * ) 'number of statistic_regions = ', & 1394 statistic_regions+1, ' but only 10 regions are allowed' 1395 CALL handle_palm_message( 'check_parameters', 'PA0082', 1, 2, 0, 6, 0 ) 1475 1396 ENDIF 1476 1397 IF ( normalizing_region > statistic_regions .OR. & 1477 1398 normalizing_region < 0) THEN 1478 IF ( myid == 0 ) THEN 1479 PRINT*, '+++ check_parameters: normalizing_region = ', & 1480 normalizing_region, ' is unknown' 1481 PRINT*, ' Must be <= ', statistic_regions 1482 ENDIF 1483 CALL local_stop 1399 WRITE ( message_string, * ) 'normalizing_region = ', & 1400 normalizing_region, ' must be >= 0 and <= ',statistic_regions, & 1401 ' (value of statistic_regions)' 1402 CALL handle_palm_message( 'check_parameters', 'PA0083', 1, 2, 0, 6, 0 ) 1484 1403 ENDIF 1485 1404 … … 1489 1408 IF ( dt_sort_particles /= 0.0 .AND. cloud_droplets ) THEN 1490 1409 dt_sort_particles = 0.0 1491 IF ( myid == 0 ) THEN 1492 PRINT*, '+++ WARNING: check_parameters:' 1493 PRINT*, ' dt_sort_particles is reset to 0.0 because ', & 1494 'of cloud_droplets = .TRUE.' 1495 ENDIF 1410 message_string = 'dt_sort_particles is reset to 0.0 because of cloud' //& 1411 '_droplets = .TRUE.' 1412 CALL handle_palm_message( 'check_parameters', 'PA0084', 0, 1, 0, 6, 0 ) 1496 1413 ENDIF 1497 1414 … … 1530 1447 !-- spectra) 1531 1448 IF ( averaging_interval > dt_data_output_av ) THEN 1532 IF ( myid == 0 ) THEN 1533 PRINT*, '+++ check_parameters: average_interval=', & 1534 averaging_interval, ' must be <= dt_data_output=', & 1535 dt_data_output 1536 ENDIF 1537 CALL local_stop 1449 WRITE( message_string, * ) 'averaging_interval = ', & 1450 averaging_interval, ' must be <= dt_data_output = ', dt_data_output 1451 CALL handle_palm_message( 'check_parameters', 'PA0085', 1, 2, 0, 6, 0 ) 1538 1452 ENDIF 1539 1453 … … 1543 1457 1544 1458 IF ( averaging_interval_pr > dt_dopr ) THEN 1545 IF ( myid == 0 ) THEN 1546 PRINT*, '+++ check_parameters: averaging_interval_pr=', & 1547 averaging_interval_pr, ' must be <= dt_dopr=', dt_dopr 1548 ENDIF 1549 CALL local_stop 1459 WRITE( message_string, * ) 'averaging_interval_pr = ', & 1460 averaging_interval_pr, ' must be <= dt_dopr = ', dt_dopr 1461 CALL handle_palm_message( 'check_parameters', 'PA0086', 1, 2, 0, 6, 0 ) 1550 1462 ENDIF 1551 1463 … … 1555 1467 1556 1468 IF ( averaging_interval_sp > dt_dosp ) THEN 1557 IF ( myid == 0 ) THEN 1558 PRINT*, '+++ check_parameters: averaging_interval_sp=', & 1559 averaging_interval_sp, ' must be <= dt_dosp=', dt_dosp 1560 ENDIF 1561 CALL local_stop 1469 WRITE( message_string, * ) 'averaging_interval_sp = ', & 1470 averaging_interval_sp, ' must be <= dt_dosp = ', dt_dosp 1471 CALL handle_palm_message( 'check_parameters', 'PA0087', 1, 2, 0, 6, 0 ) 1562 1472 ENDIF 1563 1473 … … 1582 1492 !-- Check the sample rate for averaging (first for 3d-data, then for profiles) 1583 1493 IF ( dt_averaging_input > averaging_interval ) THEN 1584 IF ( myid == 0 ) THEN 1585 PRINT*, '+++ check_parameters: dt_averaging_input=', & 1586 dt_averaging_input, ' must be <= averaging_interval=', & 1587 averaging_interval 1588 ENDIF 1589 CALL local_stop 1494 WRITE( message_string, * ) 'dt_averaging_input = ', & 1495 dt_averaging_input, ' must be <= averaging_interval = ', & 1496 averaging_interval 1497 CALL handle_palm_message( 'check_parameters', 'PA0088', 1, 2, 0, 6, 0 ) 1590 1498 ENDIF 1591 1499 1592 1500 IF ( dt_averaging_input_pr > averaging_interval_pr ) THEN 1593 IF ( myid == 0 ) THEN 1594 PRINT*, '+++ check_parameters: dt_averaging_input_pr=', & 1595 dt_averaging_input_pr, & 1596 ' must be <= averaging_interval_pr=', & 1597 averaging_interval_pr 1598 ENDIF 1599 CALL local_stop 1501 WRITE( message_string, * ) 'dt_averaging_input_pr = ', & 1502 dt_averaging_input_pr, ' must be <= averaging_interval_pr = ', & 1503 averaging_interval_pr 1504 CALL handle_palm_message( 'check_parameters', 'PA0089', 1, 2, 0, 6, 0 ) 1600 1505 ENDIF 1601 1506 … … 1607 1512 ELSE 1608 1513 IF ( precipitation_amount_interval > dt_do2d_xy ) THEN 1609 IF ( myid == 0 ) PRINT*, '+++ check_parameters: ', & 1610 'precipitation_amount_interval =', & 1611 precipitation_amount_interval, & 1612 ' must not be larger than dt_do2d_xy', & 1613 ' = ', dt_do2d_xy 1614 CALL local_stop 1514 WRITE( message_string, * ) 'precipitation_amount_interval = ', & 1515 precipitation_amount_interval, ' must not be larger than ', & 1516 'dt_do2d_xy = ', dt_do2d_xy 1517 CALL handle_palm_message( 'check_parameters', 'PA0090', 1, 2, 0, & 1518 6, 0 ) 1615 1519 ENDIF 1616 1520 ENDIF … … 1778 1682 CASE ( 'sa', '#sa' ) 1779 1683 IF ( .NOT. ocean ) THEN 1780 IF ( myid == 0 ) THEN 1781 PRINT*, '+++ check_parameters: data_output_pr = ', & 1782 data_output_pr(i), & 1783 ' is not implemented for ocean = FALSE' 1784 ENDIF 1785 CALL local_stop 1684 message_string = 'data_output_pr = ' // & 1685 TRIM( data_output_pr(i) ) // ' is not imp' // & 1686 'lemented for ocean = .FALSE.' 1687 CALL handle_palm_message( 'check_parameters', 'PA0091', 1, 2, & 1688 0, 6, 0 ) 1786 1689 ELSE 1787 1690 dopr_index(i) = 23 … … 1848 1751 CASE ( 'q', '#q' ) 1849 1752 IF ( .NOT. humidity ) THEN 1850 IF ( myid == 0 ) THEN 1851 PRINT*, '+++ check_parameters: data_output_pr = ', & 1852 data_output_pr(i), & 1853 ' is not implemented for humidity = FALSE' 1854 ENDIF 1855 CALL local_stop 1753 message_string = 'data_output_pr = ' // & 1754 TRIM( data_output_pr(i) ) // ' is not imp' // & 1755 'lemented for humidity = .FALSE.' 1756 CALL handle_palm_message( 'check_parameters', 'PA0092', 1, 2, & 1757 0, 6, 0 ) 1856 1758 ELSE 1857 1759 dopr_index(i) = 41 … … 1868 1770 CASE ( 's', '#s' ) 1869 1771 IF ( .NOT. passive_scalar ) THEN 1870 IF ( myid == 0 ) THEN 1871 PRINT*, '+++ check_parameters: data_output_pr = ', & 1872 data_output_pr(i), & 1873 ' is not implemented for passive_scalar = FALSE' 1874 ENDIF 1875 CALL local_stop 1772 message_string = 'data_output_pr = ' // & 1773 TRIM( data_output_pr(i) ) // ' is not imp' // & 1774 'lemented for passive_scalar = .FALSE.' 1775 CALL handle_palm_message( 'check_parameters', 'PA0093', 1, 2, & 1776 0, 6, 0 ) 1876 1777 ELSE 1877 1778 dopr_index(i) = 41 … … 1911 1812 CASE ( 'lpt', '#lpt' ) 1912 1813 IF ( .NOT. cloud_physics ) THEN 1913 IF ( myid == 0 ) THEN 1914 PRINT*, '+++ check_parameters: data_output_pr = ', & 1915 data_output_pr(i), & 1916 ' is not implemented for cloud_physics = FALSE' 1917 ENDIF 1918 CALL local_stop 1814 message_string = 'data_output_pr = ' // & 1815 TRIM( data_output_pr(i) ) // ' is not imp' // & 1816 'lemented for cloud_physics = .FALSE.' 1817 CALL handle_palm_message( 'check_parameters', 'PA0094', 1, 2, & 1818 0, 6, 0 ) 1919 1819 ELSE 1920 1820 dopr_index(i) = 4 … … 1957 1857 CASE ( 'w"q"' ) 1958 1858 IF ( .NOT. humidity ) THEN 1959 IF ( myid == 0 ) THEN 1960 PRINT*, '+++ check_parameters: data_output_pr = ', & 1961 data_output_pr(i), & 1962 ' is not implemented for humidity = FALSE' 1963 ENDIF 1964 CALL local_stop 1859 message_string = 'data_output_pr = ' // & 1860 TRIM( data_output_pr(i) ) // ' is not imp' // & 1861 'lemented for humidity = .FALSE.' 1862 CALL handle_palm_message( 'check_parameters', 'PA0092', 1, 2, & 1863 0, 6, 0 ) 1965 1864 ELSE 1966 1865 dopr_index(i) = 48 … … 1971 1870 CASE ( 'w*q*' ) 1972 1871 IF ( .NOT. humidity ) THEN 1973 IF ( myid == 0 ) THEN 1974 PRINT*, '+++ check_parameters: data_output_pr = ', & 1975 data_output_pr(i), & 1976 ' is not implemented for humidity = FALSE' 1977 ENDIF 1978 CALL local_stop 1872 message_string = 'data_output_pr = ' // & 1873 TRIM( data_output_pr(i) ) // ' is not imp' // & 1874 'lemented for humidity = .FALSE.' 1875 CALL handle_palm_message( 'check_parameters', 'PA0092', 1, 2, & 1876 0, 6, 0 ) 1979 1877 ELSE 1980 1878 dopr_index(i) = 49 … … 1985 1883 CASE ( 'wq' ) 1986 1884 IF ( .NOT. humidity ) THEN 1987 IF ( myid == 0 ) THEN 1988 PRINT*, '+++ check_parameters: data_output_pr = ', & 1989 data_output_pr(i), & 1990 ' is not implemented for humidity = FALSE' 1991 ENDIF 1992 CALL local_stop 1885 message_string = 'data_output_pr = ' // & 1886 TRIM( data_output_pr(i) ) // ' is not imp' // & 1887 'lemented for humidity = .FALSE.' 1888 CALL handle_palm_message( 'check_parameters', 'PA0092', 1, 2, & 1889 0, 6, 0 ) 1993 1890 ELSE 1994 1891 dopr_index(i) = 50 … … 1999 1896 CASE ( 'w"s"' ) 2000 1897 IF ( .NOT. passive_scalar ) THEN 2001 IF ( myid == 0 ) THEN 2002 PRINT*, '+++ check_parameters: data_output_pr = ', & 2003 data_output_pr(i), & 2004 ' is not implemented for passive_scalar = FALSE' 2005 ENDIF 2006 CALL local_stop 1898 message_string = 'data_output_pr = ' // & 1899 TRIM( data_output_pr(i) ) // ' is not imp' // & 1900 'lemented for passive_scalar = .FALSE.' 1901 CALL handle_palm_message( 'check_parameters', 'PA0093', 1, 2, & 1902 0, 6, 0 ) 2007 1903 ELSE 2008 1904 dopr_index(i) = 48 … … 2013 1909 CASE ( 'w*s*' ) 2014 1910 IF ( .NOT. passive_scalar ) THEN 2015 IF ( myid == 0 ) THEN 2016 PRINT*, '+++ check_parameters: data_output_pr = ', & 2017 data_output_pr(i), & 2018 ' is not implemented for passive_scalar = FALSE' 2019 ENDIF 2020 CALL local_stop 1911 message_string = 'data_output_pr = ' // & 1912 TRIM( data_output_pr(i) ) // ' is not imp' // & 1913 'lemented for passive_scalar = .FALSE.' 1914 CALL handle_palm_message( 'check_parameters', 'PA0093', 1, 2, & 1915 0, 6, 0 ) 2021 1916 ELSE 2022 1917 dopr_index(i) = 49 … … 2027 1922 CASE ( 'ws' ) 2028 1923 IF ( .NOT. passive_scalar ) THEN 2029 IF ( myid == 0 ) THEN 2030 PRINT*, '+++ check_parameters: data_output_pr = ', & 2031 data_output_pr(i), & 2032 ' is not implemented for passive_scalar = FALSE' 2033 ENDIF 2034 CALL local_stop 1924 message_string = 'data_output_pr = ' // & 1925 TRIM( data_output_pr(i) ) // ' is not imp' // & 1926 'lemented for passive_scalar = .FALSE.' 1927 CALL handle_palm_message( 'check_parameters', 'PA0093', 1, 2, & 1928 0, 6, 0 ) 2035 1929 ELSE 2036 1930 dopr_index(i) = 50 … … 2050 1944 hom(:,2,51,:) = SPREAD( zw, 2, statistic_regions+1 ) 2051 1945 ELSE 2052 IF ( myid == 0 ) THEN 2053 PRINT*, '+++ check_parameters: data_output_pr = ', & 2054 data_output_pr(i), & 2055 ' is not implemented for cloud_physics = FALSE', & 2056 ' and humidity = FALSE' 2057 ENDIF 2058 CALL local_stop 1946 message_string = 'data_output_pr = ' // & 1947 TRIM( data_output_pr(i) ) // ' is not imp' // & 1948 'lemented for cloud_physics = .FALSE. an&' // & 1949 'd humidity = .FALSE.' 1950 CALL handle_palm_message( 'check_parameters', 'PA0095', 1, 2, & 1951 0, 6, 0 ) 2059 1952 ENDIF 2060 1953 … … 2070 1963 hom(:,2,52,:) = SPREAD( zw, 2, statistic_regions+1 ) 2071 1964 ELSE 2072 IF ( myid == 0 ) THEN 2073 PRINT*, '+++ check_parameters: data_output_pr = ', & 2074 data_output_pr(i), & 2075 ' is not implemented for cloud_physics = FALSE', & 2076 ' and humidity = FALSE' 2077 ENDIF 2078 CALL local_stop 1965 message_string = 'data_output_pr = ' // & 1966 TRIM( data_output_pr(i) ) // ' is not imp' // & 1967 'lemented for cloud_physics = .FALSE. an&' // & 1968 'd humidity = .FALSE.' 1969 CALL handle_palm_message( 'check_parameters', 'PA0095', 1, 2, & 1970 0, 6, 0 ) 2079 1971 ENDIF 2080 1972 … … 2090 1982 hom(:,2,53,:) = SPREAD( zw, 2, statistic_regions+1 ) 2091 1983 ELSE 2092 IF ( myid == 0 ) THEN 2093 PRINT*, '+++ check_parameters: data_output_pr = ', & 2094 data_output_pr(i), & 2095 ' is not implemented for cloud_physics = FALSE', & 2096 ' and humidity = FALSE' 2097 ENDIF 2098 CALL local_stop 1984 message_string = 'data_output_pr = ' // & 1985 TRIM( data_output_pr(i) ) // ' is not imp' // & 1986 'lemented for cloud_physics = .FALSE. an&' // & 1987 'd humidity = .FALSE.' 1988 CALL handle_palm_message( 'check_parameters', 'PA0095', 1, 2, & 1989 0, 6, 0 ) 2099 1990 ENDIF 2100 1991 2101 1992 CASE ( 'ql' ) 2102 1993 IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets ) THEN 2103 IF ( myid == 0 ) THEN2104 PRINT*, '+++ check_parameters: data_output_pr = ',&2105 data_output_pr(i),&2106 ' is not implemented for cloud_physics = FALSE'2107 ENDIF2108 CALL local_stop1994 message_string = 'data_output_pr = ' // & 1995 TRIM( data_output_pr(i) ) // ' is not imp' // & 1996 'lemented for cloud_physics = .FALSE. or' // & 1997 '&cloud_droplets = .FALSE.' 1998 CALL handle_palm_message( 'check_parameters', 'PA0096', 1, 2, & 1999 0, 6, 0 ) 2109 2000 ELSE 2110 2001 dopr_index(i) = 54 … … 2165 2056 CASE ( 'w"sa"' ) 2166 2057 IF ( .NOT. ocean ) THEN 2167 IF ( myid == 0 ) THEN 2168 PRINT*, '+++ check_parameters: data_output_pr = ', & 2169 data_output_pr(i), & 2170 ' is not implemented for ocean = FALSE' 2171 ENDIF 2172 CALL local_stop 2058 message_string = 'data_output_pr = ' // & 2059 TRIM( data_output_pr(i) ) // ' is not imp' // & 2060 'lemented for ocean = .FALSE.' 2061 CALL handle_palm_message( 'check_parameters', 'PA0091', 1, 2, & 2062 0, 6, 0 ) 2173 2063 ELSE 2174 2064 dopr_index(i) = 65 … … 2179 2069 CASE ( 'w*sa*' ) 2180 2070 IF ( .NOT. ocean ) THEN 2181 IF ( myid == 0 ) THEN 2182 PRINT*, '+++ check_parameters: data_output_pr = ', & 2183 data_output_pr(i), & 2184 ' is not implemented for ocean = FALSE' 2185 ENDIF 2186 CALL local_stop 2071 message_string = 'data_output_pr = ' // & 2072 TRIM( data_output_pr(i) ) // ' is not imp' // & 2073 'lemented for ocean = .FALSE.' 2074 CALL handle_palm_message( 'check_parameters', 'PA0091', 1, 2, & 2075 0, 6, 0 ) 2187 2076 ELSE 2188 2077 dopr_index(i) = 66 … … 2193 2082 CASE ( 'wsa' ) 2194 2083 IF ( .NOT. ocean ) THEN 2195 IF ( myid == 0 ) THEN 2196 PRINT*, '+++ check_parameters: data_output_pr = ', & 2197 data_output_pr(i), & 2198 ' is not implemented for ocean = FALSE' 2199 ENDIF 2200 CALL local_stop 2084 message_string = 'data_output_pr = ' // & 2085 TRIM( data_output_pr(i) ) // ' is not imp' // & 2086 'lemented for ocean = .FALSE.' 2087 CALL handle_palm_message( 'check_parameters', 'PA0091', 1, 2, & 2088 0, 6, 0 ) 2201 2089 ELSE 2202 2090 dopr_index(i) = 67 … … 2217 2105 CASE ( 'q*2' ) 2218 2106 IF ( .NOT. humidity ) THEN 2219 IF ( myid == 0 ) THEN 2220 PRINT*, '+++ check_parameters: data_output_pr = ', & 2221 data_output_pr(i), & 2222 ' is not implemented for humidity = FALSE' 2223 ENDIF 2224 CALL local_stop 2107 message_string = 'data_output_pr = ' // & 2108 TRIM( data_output_pr(i) ) // ' is not imp' // & 2109 'lemented for humidity = .FALSE.' 2110 CALL handle_palm_message( 'check_parameters', 'PA0092', 1, 2, & 2111 0, 6, 0 ) 2225 2112 ELSE 2226 2113 dopr_index(i) = 70 … … 2234 2121 2235 2122 IF ( unit == 'illegal' ) THEN 2236 IF ( myid == 0 ) THEN 2237 IF ( data_output_pr_user(1) /= ' ' ) THEN 2238 PRINT*, '+++ check_parameters: illegal value for data_',& 2239 'output_pr or data_output_pr_user: "', & 2240 TRIM( data_output_pr(i) ), '"' 2241 ELSE 2242 PRINT*, '+++ check_parameters: illegal value for data_',& 2243 'output_pr: "', TRIM( data_output_pr(i) ),'"' 2244 ENDIF 2123 IF ( data_output_pr_user(1) /= ' ' ) THEN 2124 message_string = 'illegal value for data_output_pr or ' // & 2125 'data_output_pr_user = "' // & 2126 TRIM( data_output_pr(i) ) // '"' 2127 CALL handle_palm_message( 'check_parameters', 'PA0097', 1, & 2128 2, 0, 6, 0 ) 2129 ELSE 2130 message_string = 'illegal value for data_output_pr = "' // & 2131 TRIM( data_output_pr(i) ) // '"' 2132 CALL handle_palm_message( 'check_parameters', 'PA0098', 1, & 2133 2, 0, 6, 0 ) 2245 2134 ENDIF 2246 CALL local_stop2247 2135 ENDIF 2248 2136 … … 2279 2167 cross_uymax = zu(nzt+1) 2280 2168 ELSEIF ( z_max_do1d < zu(nzb+1) .OR. z_max_do1d > zu(nzt+1) ) THEN 2281 IF ( myid == 0 ) PRINT*, '+++ check_parameters: z_max_do1d=',&2282 z_max_do1d,' must be >= ', zu(nzb+1), &2283 ' or <= ', zu(nzt+1)2284 CALL local_stop2169 WRITE( message_string, * ) 'z_max_do1d = ', z_max_do1d, ' must ', & 2170 'be >= ', zu(nzb+1), ' or <= ', zu(nzt+1) 2171 CALL handle_palm_message( 'check_parameters', 'PA0099', 1, 2, 0, 6, & 2172 0 ) 2285 2173 ELSE 2286 2174 cross_uymax = z_max_do1d … … 2298 2186 2299 2187 CASE DEFAULT 2300 IF ( myid == 0 ) THEN2301 PRINT*, '+++ check_parameters: unknown normalize method'2302 PRINT*, ' cross_normalized_x="',cross_normalized_x(i),'"'2303 ENDIF2304 CALL local_stop2188 message_string = 'unknown normalization method cross_normali' // & 2189 'zed_x = "' // TRIM( cross_normalized_x(i) ) // & 2190 '"' 2191 CALL handle_palm_message( 'check_parameters', 'PA0100', 1, 2, 0, & 2192 6, 0 ) 2305 2193 2306 2194 END SELECT … … 2311 2199 2312 2200 CASE DEFAULT 2313 IF ( myid == 0 ) THEN2314 PRINT*, '+++ check_parameters: unknown normalize method'2315 PRINT*, ' cross_normalized_y="',cross_normalized_y(i),'"'2316 ENDIF2317 CALL local_stop2201 message_string = 'unknown normalization method cross_normali' // & 2202 'zed_y = "' // TRIM( cross_normalized_y(i) ) // & 2203 '"' 2204 CALL handle_palm_message( 'check_parameters', 'PA0101', 1, 2, 0, & 2205 6, 0 ) 2318 2206 2319 2207 END SELECT … … 2323 2211 IF ( z_max_do1d_normalized /= -1.0 .AND. z_max_do1d_normalized <= 0.0 ) & 2324 2212 THEN 2325 IF ( myid == 0 ) PRINT*,'+++ check_parameters: z_max_do1d_normalize', &2326 'd=',z_max_do1d_normalized, ' must be >= 0.0'2327 CALL local_stop2213 WRITE( message_string, * ) 'z_max_do1d_normalized = ', & 2214 z_max_do1d_normalized, ' must be >= 0.0' 2215 CALL handle_palm_message( 'check_parameters', 'PA0101', 1, 2, 0, 6, 0 ) 2328 2216 ENDIF 2329 2217 … … 2339 2227 DO WHILE ( data_output_user(j) /= ' ' .AND. j <= 100 ) 2340 2228 IF ( i > 100 ) THEN 2341 IF ( myid == 0 ) THEN 2342 PRINT*, '+++ check_parameters: number of output quantitities', & 2343 ' given by data_output and data_output_user' 2344 PRINT*, ' exceeds the limit of 100' 2345 ENDIF 2346 CALL local_stop 2229 message_string = 'number of output quantitities given by data' // & 2230 '_output and data_output_user exceeds the limit of 100' 2231 CALL handle_palm_message( 'check_parameters', 'PA0102', 1, 2, 0, & 2232 6, 0 ) 2347 2233 ENDIF 2348 2234 data_output(i) = data_output_user(j) … … 2385 2271 CASE ( 'e' ) 2386 2272 IF ( constant_diffusion ) THEN 2387 IF ( myid == 0 ) THEN 2388 PRINT*, '+++ check_parameters: output of "', TRIM( var ), & 2389 '" requires constant_diffusion = .FALSE.' 2390 ENDIF 2391 CALL local_stop 2273 message_string = 'output of "' // TRIM( var ) // '" requi' // & 2274 'res constant_diffusion = .FALSE.' 2275 CALL handle_palm_message( 'check_parameters', 'PA0103', 1, 2, & 2276 0, 6, 0 ) 2392 2277 ENDIF 2393 2278 unit = 'm2/s2' … … 2395 2280 CASE ( 'pc', 'pr' ) 2396 2281 IF ( .NOT. particle_advection ) THEN 2397 IF ( myid == 0 ) THEN 2398 PRINT*, '+++ check_parameters: output of "', TRIM( var ), & 2399 '" requires a "particles_par"-NAMELIST' 2400 PRINT*, ' in the parameter file (PARIN)' 2401 ENDIF 2402 CALL local_stop 2282 message_string = 'output of "' // TRIM( var ) // '" requir' // & 2283 'es a "particles_par"-NAMELIST in the parameter file (PARIN)' 2284 CALL handle_palm_message( 'check_parameters', 'PA0104', 1, 2, & 2285 0, 6, 0 ) 2403 2286 ENDIF 2404 2287 IF ( TRIM( var ) == 'pc' ) unit = 'number' … … 2407 2290 CASE ( 'q', 'vpt' ) 2408 2291 IF ( .NOT. humidity ) THEN 2409 IF ( myid == 0 ) THEN 2410 PRINT*, '+++ check_parameters: output of "', TRIM( var ), & 2411 '" requires humidity = .TRUE.' 2412 ENDIF 2413 CALL local_stop 2292 message_string = 'output of "' // TRIM( var ) // '" requi' // & 2293 'res humidity = .TRUE.' 2294 CALL handle_palm_message( 'check_parameters', 'PA0105', 1, 2, & 2295 0, 6, 0 ) 2414 2296 ENDIF 2415 2297 IF ( TRIM( var ) == 'q' ) unit = 'kg/kg' … … 2418 2300 CASE ( 'ql' ) 2419 2301 IF ( .NOT. ( cloud_physics .OR. cloud_droplets ) ) THEN 2420 IF ( myid == 0 ) THEN 2421 PRINT*, '+++ check_parameters: output of "', TRIM( var ), & 2422 '" requires cloud_physics = .TRUE.' 2423 PRINT*, ' or cloud_droplets = .TRUE.' 2424 ENDIF 2425 CALL local_stop 2302 message_string = 'output of "' // TRIM( var ) // '" requi' // & 2303 'res cloud_physics = .TRUE. or cloud_droplets = .TRUE.' 2304 CALL handle_palm_message( 'check_parameters', 'PA0106', 1, 2, & 2305 0, 6, 0 ) 2426 2306 ENDIF 2427 2307 unit = 'kg/kg' … … 2429 2309 CASE ( 'ql_c', 'ql_v', 'ql_vp' ) 2430 2310 IF ( .NOT. cloud_droplets ) THEN 2431 IF ( myid == 0 ) THEN 2432 PRINT*, '+++ check_parameters: output of "', TRIM( var ), & 2433 '" requires cloud_droplets = .TRUE.' 2434 ENDIF 2435 CALL local_stop 2311 message_string = 'output of "' // TRIM( var ) // '" requi' // & 2312 'res cloud_droplets = .TRUE.' 2313 CALL handle_palm_message( 'check_parameters', 'PA0107', 1, 2, & 2314 0, 6, 0 ) 2436 2315 ENDIF 2437 2316 IF ( TRIM( var ) == 'ql_c' ) unit = 'kg/kg' … … 2441 2320 CASE ( 'qv' ) 2442 2321 IF ( .NOT. cloud_physics ) THEN 2443 IF ( myid == 0 ) THEN 2444 PRINT*, '+++ check_parameters: output of "', TRIM( var ), & 2445 '" requires cloud_physics = .TRUE.' 2446 ENDIF 2447 CALL local_stop 2322 message_string = 'output of "' // TRIM( var ) // '" requi' // & 2323 'res cloud_physics = .TRUE.' 2324 CALL handle_palm_message( 'check_parameters', 'PA0108', 1, 2, & 2325 0, 6, 0 ) 2448 2326 ENDIF 2449 2327 unit = 'kg/kg' … … 2451 2329 CASE ( 'rho' ) 2452 2330 IF ( .NOT. ocean ) THEN 2453 IF ( myid == 0 ) THEN 2454 PRINT*, '+++ check_parameters: output of "', TRIM( var ), & 2455 '" requires ocean = .TRUE.' 2456 ENDIF 2457 CALL local_stop 2331 message_string = 'output of "' // TRIM( var ) // '" requi' // & 2332 'res ocean = .TRUE.' 2333 CALL handle_palm_message( 'check_parameters', 'PA0109', 1, 2, & 2334 0, 6, 0 ) 2458 2335 ENDIF 2459 2336 unit = 'kg/m3' … … 2461 2338 CASE ( 's' ) 2462 2339 IF ( .NOT. passive_scalar ) THEN 2463 IF ( myid == 0 ) THEN 2464 PRINT*, '+++ check_parameters: output of "', TRIM( var ), & 2465 '" requires passive_scalar = .TRUE.' 2466 ENDIF 2467 CALL local_stop 2340 message_string = 'output of "' // TRIM( var ) // '" requi' // & 2341 'res passive_scalar = .TRUE.' 2342 CALL handle_palm_message( 'check_parameters', 'PA0110', 1, 2, & 2343 0, 6, 0 ) 2468 2344 ENDIF 2469 2345 unit = 'conc' … … 2471 2347 CASE ( 'sa' ) 2472 2348 IF ( .NOT. ocean ) THEN 2473 IF ( myid == 0 ) THEN 2474 PRINT*, '+++ check_parameters: output of "', TRIM( var ), & 2475 '" requires ocean = .TRUE.' 2476 ENDIF 2477 CALL local_stop 2349 message_string = 'output of "' // TRIM( var ) // '" requi' // & 2350 'res ocean = .TRUE.' 2351 CALL handle_palm_message( 'check_parameters', 'PA0109', 1, 2, & 2352 0, 6, 0 ) 2478 2353 ENDIF 2479 2354 unit = 'psu' … … 2481 2356 CASE ( 'u*', 't*', 'lwp*', 'pra*', 'prr*', 'z0*' ) 2482 2357 IF ( k == 0 .OR. data_output(i)(ilen-2:ilen) /= '_xy' ) THEN 2483 IF ( myid == 0 ) THEN 2484 PRINT*, '+++ check_parameters: illegal value for data_',& 2485 'output: "', TRIM( var ), '" is only allowed' 2486 PRINT*, ' for horizontal cross section' 2487 ENDIF 2488 CALL local_stop 2358 message_string = 'illegal value for data_output: "' // & 2359 TRIM( var ) // '" & only 2d-horizontal ' // & 2360 'cross sections are allowed for this value' 2361 CALL handle_palm_message( 'check_parameters', 'PA0111', 1, 2, & 2362 0, 6, 0 ) 2489 2363 ENDIF 2490 2364 IF ( TRIM( var ) == 'lwp*' .AND. .NOT. cloud_physics ) THEN 2491 IF ( myid == 0 ) THEN 2492 PRINT*, '+++ check_parameters: output of "', TRIM( var ), & 2493 '" requires cloud_physics = .TRUE.' 2494 ENDIF 2495 CALL local_stop 2365 message_string = 'output of "' // TRIM( var ) // '" requi' // & 2366 'res cloud_physics = .TRUE.' 2367 CALL handle_palm_message( 'check_parameters', 'PA0108', 1, 2, & 2368 0, 6, 0 ) 2496 2369 ENDIF 2497 2370 IF ( TRIM( var ) == 'pra*' .AND. .NOT. precipitation ) THEN 2498 IF ( myid == 0 ) THEN 2499 PRINT*, '+++ check_parameters: output of "', TRIM( var ), & 2500 '" requires precipitation = .TRUE.' 2501 ENDIF 2502 CALL local_stop 2371 message_string = 'output of "' // TRIM( var ) // '" requi' // & 2372 'res precipitation = .TRUE.' 2373 CALL handle_palm_message( 'check_parameters', 'PA0112', 1, 2, & 2374 0, 6, 0 ) 2503 2375 ENDIF 2504 2376 IF ( TRIM( var ) == 'pra*' .AND. j == 1 ) THEN 2505 IF ( myid == 0 ) THEN 2506 PRINT*, '+++ check_parameters: temporal averaging of ', & 2507 ' precipitation amount "', TRIM( var ), & 2508 '" not possible' 2509 ENDIF 2510 CALL local_stop 2377 message_string = 'temporal averaging of precipitation ' // & 2378 'amount "' // TRIM( var ) // '" is not possible' 2379 CALL handle_palm_message( 'check_parameters', 'PA0113', 1, 2, & 2380 0, 6, 0 ) 2511 2381 ENDIF 2512 2382 IF ( TRIM( var ) == 'prr*' .AND. .NOT. precipitation ) THEN 2513 IF ( myid == 0 ) THEN 2514 PRINT*, '+++ check_parameters: output of "', TRIM( var ), & 2515 '" requires precipitation = .TRUE.' 2516 ENDIF 2517 CALL local_stop 2383 message_string = 'output of "' // TRIM( var ) // '" requi' // & 2384 'res precipitation = .TRUE.' 2385 CALL handle_palm_message( 'check_parameters', 'PA0112', 1, 2, & 2386 0, 6, 0 ) 2518 2387 ENDIF 2519 2388 … … 2538 2407 2539 2408 IF ( unit == 'illegal' ) THEN 2540 IF ( myid == 0 ) THEN 2541 IF ( data_output_user(1) /= ' ' ) THEN 2542 PRINT*, '+++ check_parameters: illegal value for data_',& 2543 'output or data_output_user: "', & 2544 TRIM( data_output(i) ), '"' 2545 ELSE 2546 PRINT*, '+++ check_parameters: illegal value for data_',& 2547 'output: "', TRIM( data_output(i) ), '"' 2548 ENDIF 2409 IF ( data_output_user(1) /= ' ' ) THEN 2410 message_string = 'illegal value for data_output or ' // & 2411 'data_output_user = "' // TRIM( data_output(i) ) // '"' 2412 CALL handle_palm_message( 'check_parameters', 'PA0114', 1, & 2413 2, 0, 6, 0 ) 2414 ELSE 2415 message_string = 'illegal value for data_output =' // & 2416 TRIM( data_output(i) ) // '"' 2417 CALL handle_palm_message( 'check_parameters', 'PA0115', 1, & 2418 2, 0, 6, 0 ) 2549 2419 ENDIF 2550 CALL local_stop2551 2420 ENDIF 2552 2421 … … 2611 2480 IF ( z_max_do2d == -1.0 ) z_max_do2d = zu(nzt) 2612 2481 IF ( z_max_do2d < zu(nzb+1) .OR. z_max_do2d > zu(nzt) ) THEN 2613 IF ( myid == 0 ) PRINT*, '+++ check_parameters: z_max_do2d=',&2614 z_max_do2d, ' must be >= ', zu(nzb+1),&2615 '(zu(nzb+1)) and <= ', zu(nzt),' (zu(nzt))'2616 CALL local_stop2482 WRITE( message_string, * ) 'z_max_do2d = ', z_max_do2d, & 2483 ' must be >= ', zu(nzb+1), '(zu(nzb+1)) and <= ', zu(nzt), & 2484 ' (zu(nzt))' 2485 CALL handle_palm_message( 'check_parameters', 'PA0116', 1, 2, 0, 6, 0 ) 2617 2486 ENDIF 2618 2487 … … 2627 2496 !-- Compression only permissible on T3E machines 2628 2497 IF ( host(1:3) /= 't3e' ) THEN 2629 IF ( myid == 0 ) THEN 2630 PRINT*, '+++ check_parameters: do3d_compress = .TRUE. not allow', & 2631 'ed on host "', TRIM( host ), '"' 2632 ENDIF 2633 CALL local_stop 2498 message_string = 'do3d_compress = .TRUE. not allowed on host "' // & 2499 TRIM( host ) // '"' 2500 CALL handle_palm_message( 'check_parameters', 'PA0117', 1, 2, 0, 6, & 2501 0 ) 2634 2502 ENDIF 2635 2503 … … 2640 2508 IF ( LLT( do3d_comp_prec(i)(ilen:ilen), '0' ) .OR. & 2641 2509 LGT( do3d_comp_prec(i)(ilen:ilen), '9' ) ) THEN 2642 IF ( myid == 0 ) THEN 2643 PRINT*, '+++ check_parameters: illegal precision: ', & 2644 'do3d_comp_prec(', i, ')="', TRIM(do3d_comp_prec(i)),'"' 2645 ENDIF 2646 CALL local_stop 2510 WRITE( message_string, * ) 'illegal precision: do3d_comp_prec', & 2511 '(', i, ') = "', TRIM(do3d_comp_prec(i)),'"' 2512 CALL handle_palm_message( 'check_parameters', 'PA0118', 1, 2, 0, & 2513 6, 0 ) 2647 2514 ENDIF 2648 2515 … … 2664 2531 2665 2532 CASE DEFAULT 2666 IF ( myid == 0 ) THEN 2667 PRINT*, '+++ check_parameters: unknown variable in ', & 2668 'assignment' 2669 PRINT*, ' do3d_comp_prec(', i, ')="', & 2670 TRIM( do3d_comp_prec(i) ),'"' 2671 ENDIF 2672 CALL local_stop 2533 WRITE( message_string, * ) 'unknown variable "', & 2534 TRIM( do3d_comp_prec(i) ), '" given for do3d_comp_prec(', & 2535 i, ')' 2536 CALL handle_palm_message( 'check_parameters', 'PA0119', 1, 2, & 2537 0, 6, 0 ) 2673 2538 2674 2539 END SELECT … … 2702 2567 2703 2568 CASE DEFAULT 2704 IF ( myid == 0 ) THEN 2705 PRINT*, '+++ check_parameters:' 2706 PRINT*, ' unknown value for data_output_format "', & 2707 TRIM( data_output_format(i) ),'"' 2708 ENDIF 2709 CALL local_stop 2569 message_string = 'unknown value for data_output_format "' // & 2570 TRIM( data_output_format(i) ) // '"' 2571 CALL handle_palm_message( 'check_parameters', 'PA0120', 1, 2, & 2572 0, 6, 0 ) 2710 2573 2711 2574 END SELECT … … 2727 2590 IF ( km_constant /= -1.0 ) THEN 2728 2591 IF ( km_constant < 0.0 ) THEN 2729 IF ( myid == 0 ) PRINT*, '+++ check_parameters: km_constant=', &2730 km_constant, ' < 0.0'2731 CALL local_stop2592 WRITE( message_string, * ) 'km_constant = ', km_constant, ' < 0.0' 2593 CALL handle_palm_message( 'check_parameters', 'PA0121', 1, 2, 0, 6, & 2594 0 ) 2732 2595 ELSE 2733 2596 IF ( prandtl_number < 0.0 ) THEN 2734 IF ( myid == 0 ) PRINT*,'+++ check_parameters: prandtl_number=',& 2735 prandtl_number, ' < 0.0' 2736 CALL local_stop 2597 WRITE( message_string, * ) 'prandtl_number = ', prandtl_number, & 2598 ' < 0.0' 2599 CALL handle_palm_message( 'check_parameters', 'PA0122', 1, 2, 0, & 2600 6, 0 ) 2737 2601 ENDIF 2738 2602 constant_diffusion = .TRUE. 2739 2603 2740 2604 IF ( prandtl_layer ) THEN 2741 IF ( myid == 0 ) PRINT*, '+++ check_parameters: prandtl_layer ',& 2742 'is not allowed with fixed value of km' 2743 CALL local_stop 2605 message_string = 'prandtl_layer is not allowed with fixed ' // & 2606 'value of km' 2607 CALL handle_palm_message( 'check_parameters', 'PA0123', 1, 2, 0, & 2608 6, 0 ) 2744 2609 ENDIF 2745 2610 ENDIF … … 2758 2623 ENDIF 2759 2624 IF ( outflow_damping_width <= 0 .OR. outflow_damping_width > nx ) THEN 2760 IF ( myid == 0 ) PRINT*, '+++ check_parameters: outflow_damping w',&2761 'idth out of range'2762 CALL local_stop2625 message_string = 'outflow_damping width out of range' 2626 CALL handle_palm_message( 'check_parameters', 'PA0124', 1, 2, 0, 6, & 2627 0 ) 2763 2628 ENDIF 2764 2629 ENDIF … … 2772 2637 ENDIF 2773 2638 IF ( outflow_damping_width <= 0 .OR. outflow_damping_width > ny ) THEN 2774 IF ( myid == 0 ) PRINT*, '+++ check_parameters: outflow_damping w',&2775 'idth out of range'2776 CALL local_stop2639 message_string = 'outflow_damping width out of range' 2640 CALL handle_palm_message( 'check_parameters', 'PA0124', 1, 2, 0, 6, & 2641 0 ) 2777 2642 ENDIF 2778 2643 ENDIF … … 2781 2646 !-- Check value range for rif 2782 2647 IF ( rif_min >= rif_max ) THEN 2783 IF ( myid == 0 ) PRINT*, '+++ check_parameters: rif_min=', rif_min, &2784 ' must be less than rif_max=', rif_max2785 CALL local_stop2648 WRITE( message_string, * ) 'rif_min = ', rif_min, ' must be less ', & 2649 'than rif_max = ', rif_max 2650 CALL handle_palm_message( 'check_parameters', 'PA0125', 1, 2, 0, 6, 0 ) 2786 2651 ENDIF 2787 2652 … … 2797 2662 ENDIF 2798 2663 ELSEIF ( disturbance_level_b < zu(3) ) THEN 2799 IF ( myid == 0 ) PRINT*, '+++ check_parameters: disturbance_level_b=',& 2800 disturbance_level_b, ' must be >= ',zu(3), & 2801 '(zu(3))' 2802 CALL local_stop 2664 WRITE( message_string, * ) 'disturbance_level_b = ', & 2665 disturbance_level_b, ' must be >= ', zu(3), '(zu(3))' 2666 CALL handle_palm_message( 'check_parameters', 'PA0126', 1, 2, 0, 6, 0 ) 2803 2667 ELSEIF ( disturbance_level_b > zu(nzt-2) ) THEN 2804 IF ( myid == 0 ) PRINT*, '+++ check_parameters: disturbance_level_b=',& 2805 disturbance_level_b, ' must be <= ',zu(nzt-2),& 2806 '(zu(nzt-2))' 2807 CALL local_stop 2668 WRITE( message_string, * ) 'disturbance_level_b = ', & 2669 disturbance_level_b, ' must be <= ', zu(nzt-2), '(zu(nzt-2))' 2670 CALL handle_palm_message( 'check_parameters', 'PA0127', 1, 2, 0, 6, 0 ) 2808 2671 ELSE 2809 2672 DO k = 3, nzt-2 … … 2824 2687 ENDIF 2825 2688 ELSEIF ( disturbance_level_t > zu(nzt-2) ) THEN 2826 IF ( myid == 0 ) PRINT*, '+++ check_parameters: disturbance_level_t=',& 2827 disturbance_level_t, ' must be <= ',zu(nzt-2),& 2828 '(zu(nzt-2))' 2829 CALL local_stop 2689 WRITE( message_string, * ) 'disturbance_level_t = ', & 2690 disturbance_level_t, ' must be <= ', zu(nzt-2), '(zu(nzt-2))' 2691 CALL handle_palm_message( 'check_parameters', 'PA0128', 1, 2, 0, 6, 0 ) 2830 2692 ELSEIF ( disturbance_level_t < disturbance_level_b ) THEN 2831 IF ( myid == 0 ) PRINT*, '+++ check_parameters: disturbance_level_t=',&2832 disturbance_level_t, ' must be >= ',&2833 'disturbance_level_b=',disturbance_level_b2834 CALL local_stop2693 WRITE( message_string, * ) 'disturbance_level_t = ', & 2694 disturbance_level_t, ' must be >= disturbance_level_b = ', & 2695 disturbance_level_b 2696 CALL handle_palm_message( 'check_parameters', 'PA0129', 1, 2, 0, 6, 0 ) 2835 2697 ELSE 2836 2698 DO k = 3, nzt-2 … … 2847 2709 !-- z-direction. 2848 2710 IF ( disturbance_level_ind_t < disturbance_level_ind_b ) THEN 2849 IF ( myid == 0 ) PRINT*, '+++ check_parameters: ', & 2850 'disturbance_level_ind_t=', & 2851 disturbance_level_ind_t, ' must be >= ', & 2852 'disturbance_level_ind_b=', & 2853 disturbance_level_ind_b 2854 CALL local_stop 2711 WRITE( message_string, * ) 'disturbance_level_ind_t = ', & 2712 disturbance_level_ind_t, ' must be >= disturbance_level_b = ', & 2713 disturbance_level_b 2714 CALL handle_palm_message( 'check_parameters', 'PA0130', 1, 2, 0, 6, 0 ) 2855 2715 ENDIF 2856 2716 … … 2868 2728 IF ( inflow_disturbance_begin < 0 .OR. inflow_disturbance_begin > nx )& 2869 2729 THEN 2870 IF ( myid == 0 ) PRINT*, '+++ check_parameters: inflow_disturbance',&2871 '_begin out of range'2872 CALL local_stop2730 message_string = 'inflow_disturbance_begin out of range' 2731 CALL handle_palm_message( 'check_parameters', 'PA0131', 1, 2, 0, 6, & 2732 0 ) 2873 2733 ENDIF 2874 2734 IF ( inflow_disturbance_end == -1 ) THEN … … 2877 2737 IF ( inflow_disturbance_end < 0 .OR. inflow_disturbance_end > nx ) & 2878 2738 THEN 2879 IF ( myid == 0 ) PRINT*, '+++ check_parameters: inflow_disturbance',&2880 '_end out of range'2881 CALL local_stop2739 message_string = 'inflow_disturbance_end out of range' 2740 CALL handle_palm_message( 'check_parameters', 'PA0132', 1, 2, 0, 6, & 2741 0 ) 2882 2742 ENDIF 2883 2743 ELSEIF ( bc_ns /= 'cyclic' ) THEN … … 2887 2747 IF ( inflow_disturbance_begin < 0 .OR. inflow_disturbance_begin > ny )& 2888 2748 THEN 2889 IF ( myid == 0 ) PRINT*, '+++ check_parameters: inflow_disturbance',&2890 '_begin out of range'2891 CALL local_stop2749 message_string = 'inflow_disturbance_begin out of range' 2750 CALL handle_palm_message( 'check_parameters', 'PA0131', 1, 2, 0, 6, & 2751 0 ) 2892 2752 ENDIF 2893 2753 IF ( inflow_disturbance_end == -1 ) THEN … … 2896 2756 IF ( inflow_disturbance_end < 0 .OR. inflow_disturbance_end > ny ) & 2897 2757 THEN 2898 IF ( myid == 0 ) PRINT*, '+++ check_parameters: inflow_disturbance',&2899 '_end out of range'2900 CALL local_stop2758 message_string = 'inflow_disturbance_end out of range' 2759 CALL handle_palm_message( 'check_parameters', 'PA0132', 1, 2, 0, 6, & 2760 0 ) 2901 2761 ENDIF 2902 2762 ENDIF … … 2921 2781 !-- boundary (so far, a turbulent inflow is realized from the left side only) 2922 2782 IF ( turbulent_inflow .AND. bc_lr /= 'dirichlet/radiation' ) THEN 2923 IF ( myid == 0 ) THEN 2924 PRINT*, '+++ check_parameters:' 2925 PRINT*, ' turbulent_inflow = .T. requires a Dirichlet condition', & 2926 ' at the inflow boundary' 2927 ENDIF 2928 CALL local_stop 2783 message_string = 'turbulent_inflow = .T. requires a Dirichlet ' // & 2784 'condition at the inflow boundary' 2785 CALL handle_palm_message( 'check_parameters', 'PA0133', 1, 2, 0, 6, 0 ) 2929 2786 ENDIF 2930 2787 … … 2938 2795 ELSE 2939 2796 IF ( recycling_width < dx .OR. recycling_width > nx * dx ) THEN 2940 IF ( myid == 0 ) THEN 2941 PRINT*, '+++ check_parameters:' 2942 PRINT*, ' illegal value for recycling_width: ', & 2943 recycling_width 2944 ENDIF 2945 CALL local_stop 2797 WRITE( message_string, * ) 'illegal value for recycling_width:', & 2798 ' ', recycling_width 2799 CALL handle_palm_message( 'check_parameters', 'PA0134', 1, 2, 0, & 2800 6, 0 ) 2946 2801 ENDIF 2947 2802 ENDIF … … 2955 2810 IF ( random_generator /= 'system-specific' .AND. & 2956 2811 random_generator /= 'numerical-recipes' ) THEN 2957 IF ( myid == 0 ) THEN 2958 PRINT*, '+++ check_parameters:' 2959 PRINT*, ' unknown random generator: random_generator=', & 2960 random_generator 2961 ENDIF 2962 CALL local_stop 2812 message_string = 'unknown random generator: random_generator = "' // & 2813 TRIM( random_generator ) // '"' 2814 CALL handle_palm_message( 'check_parameters', 'PA0135', 1, 2, 0, 6, 0 ) 2963 2815 ENDIF 2964 2816 … … 2970 2822 damp_level_ind_1d = nzt + 1 2971 2823 ELSEIF ( damp_level_1d < 0.0 .OR. damp_level_1d > zu(nzt+1) ) THEN 2972 IF ( myid == 0 ) PRINT*, '+++ check_parameters: damp_level_1d=', &2973 damp_level_1d, ' must be > 0.0 and < ', &2974 'zu(nzt+1)', zu(nzt+1)2975 CALL local_stop2824 WRITE( message_string, * ) 'damp_level_1d = ', damp_level_1d, & 2825 ' must be > 0.0 and < ', zu(nzt+1), '(zu(nzt+1))' 2826 CALL handle_palm_message( 'check_parameters', 'PA0136', 1, 2, 0, 6, & 2827 0 ) 2976 2828 ELSE 2977 2829 DO k = 1, nzt+1 … … 2983 2835 ENDIF 2984 2836 ENDIF 2837 2985 2838 ! 2986 2839 !-- Check some other 1d-model parameters 2987 2840 IF ( TRIM( mixing_length_1d ) /= 'as_in_3d_model' .AND. & 2988 2841 TRIM( mixing_length_1d ) /= 'blackadar' ) THEN 2989 IF ( myid == 0 ) PRINT*, '+++ check_parameters: mixing_length_1d = "',&2990 TRIM( mixing_length_1d ),'" is unknown'2991 CALL local_stop2842 message_string = 'mixing_length_1d = "' // TRIM( mixing_length_1d ) // & 2843 '" is unknown' 2844 CALL handle_palm_message( 'check_parameters', 'PA0137', 1, 2, 0, 6, 0 ) 2992 2845 ENDIF 2993 2846 IF ( TRIM( dissipation_1d ) /= 'as_in_3d_model' .AND. & 2994 2847 TRIM( dissipation_1d ) /= 'detering' ) THEN 2995 IF ( myid == 0 ) PRINT*, '+++ check_parameters: dissipation_1d = "',&2996 TRIM( dissipation_1d ),'" is unknown'2997 CALL local_stop2848 message_string = 'dissipation_1d = "' // TRIM( dissipation_1d ) // & 2849 '" is unknown' 2850 CALL handle_palm_message( 'check_parameters', 'PA0138', 1, 2, 0, 6, 0 ) 2998 2851 ENDIF 2999 2852 … … 3027 2880 !-- MPP_TREMAIN gives the remaining CPU time only in steps of 30 seconds 3028 2881 IF ( termination_time_needed <= 30.0 ) THEN 3029 IF ( myid == 0 ) THEN 3030 PRINT*, '+++ check_parameters: termination_time_needed', & 3031 termination_time_needed 3032 PRINT*, ' must be > 30.0 on host "', host, & 3033 '"' 3034 ENDIF 3035 CALL local_stop 2882 WRITE( message_string, * ) 'termination_time_needed = ', & 2883 termination_time_needed, ' must be > 30.0 on host "', & 2884 TRIM( host ), '"' 2885 CALL handle_palm_message( 'check_parameters', 'PA0139', 1, 2, 0, 6, & 2886 0 ) 3036 2887 ENDIF 3037 2888 ELSEIF ( host(1:3) == 'ibm' ) THEN … … 3041 2892 !-- copying of files, etc.) has to be regarded 3042 2893 IF ( termination_time_needed < 300.0 ) THEN 3043 IF ( myid == 0 ) THEN 3044 PRINT*, '+++ WARNING: check_parameters: termination_time_', & 3045 'needed', termination_time_needed 3046 PRINT*, ' should be >= 300.0', & 3047 ' on host "', host, '"' 3048 ENDIF 2894 WRITE( message_string, * ) 'termination_time_needed = ', & 2895 termination_time_needed, ' should be >= 300.0 on host "', & 2896 TRIM( host ), '"' 2897 CALL handle_palm_message( 'check_parameters', 'PA0140', 1, 2, 0, 6, & 2898 0 ) 3049 2899 ENDIF 3050 2900 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.