Changeset 3766 for palm/trunk
- Timestamp:
- Feb 26, 2019 4:23:41 PM (6 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/check_parameters.f90
r3761 r3766 25 25 ! ----------------- 26 26 ! $Id$ 27 ! trim added to avoid truncation compiler warnings 28 ! 29 ! 3761 2019-02-25 15:31:42Z raasch 27 30 ! unused variables removed 28 31 ! … … 1260 1263 ! 1261 1264 !-- set time series output units for fluxes 1262 dots_unit(14:16) = heatflux_output_unit1263 dots_unit(21) = waterflux_output_unit1264 dots_unit(19:20) = momentumflux_output_unit1265 dots_unit(14:16) = TRIM( heatflux_output_unit ) 1266 dots_unit(21) = TRIM( waterflux_output_unit ) 1267 dots_unit(19:20) = TRIM( momentumflux_output_unit ) 1265 1268 1266 1269 ! -
palm/trunk/SOURCE/data_output_2d.f90
r3655 r3766 25 25 ! ----------------- 26 26 ! $Id$ 27 ! unused variables removed 28 ! 29 ! 3655 2019-01-07 16:51:22Z knoop 27 30 ! Bugfix: use time_since_reference_point instead of simulated_time (relevant 28 31 ! when using wall/soil spinup) … … 281 284 282 285 283 USE arrays_3d, & 284 ONLY: dzw, e, heatflux_output_conversion, nc, nr, p, pt, & 285 precipitation_amount, prr, q, qc, ql, ql_c, ql_v, qr, s, tend, & 286 u, v, vpt, w, zu, zw, waterflux_output_conversion, hyrho, d_exner 286 USE arrays_3d, & 287 ONLY: dzw, d_exner, e, heatflux_output_conversion, p, pt, q, ql, ql_c, ql_v, s, tend, u, & 288 v, vpt, w, waterflux_output_conversion, zu, zw 287 289 288 290 USE averaging -
palm/trunk/SOURCE/data_output_3d.f90
r3655 r3766 25 25 ! ----------------- 26 26 ! $Id$ 27 ! unused variables removed 28 ! 29 ! 3655 2019-01-07 16:51:22Z knoop 27 30 ! Bugfix: use time_since_reference_point instead of simulated_time (relevant 28 31 ! when using wall/soil spinup) … … 244 247 245 248 USE arrays_3d, & 246 ONLY: d_exner, e, nc, nr, p, pt, prr, q, qc, ql, ql_c, ql_v, qr, s, & 247 tend, u, v, vpt, w 249 ONLY: d_exner, e, p, pt, q, ql, ql_c, ql_v, s, tend, u, v, vpt, w 248 250 249 251 USE averaging … … 256 258 257 259 USE control_parameters, & 258 ONLY: air_chemistry, biometeorology, do3d, do3d_no, do3d_time_count, & 259 io_blocks, io_group, land_surface, message_string, & 260 ntdim_3d, nz_do3d, ocean_mode, plant_canopy, & 261 psolver, salsa, time_since_reference_point, & 262 urban_surface, varnamelength 260 ONLY: do3d, do3d_no, do3d_time_count, io_blocks, io_group, & 261 land_surface, message_string, ntdim_3d, nz_do3d, psolver, & 262 time_since_reference_point, urban_surface, varnamelength 263 263 264 264 USE cpulog, & -
palm/trunk/SOURCE/init_masks.f90
r3687 r3766 25 25 ! ----------------- 26 26 ! $Id$ 27 ! unused variables removed 28 ! 29 ! 3687 2019-01-22 10:42:06Z knoop 27 30 ! unused variables removed 28 31 ! … … 166 169 167 170 USE control_parameters, & 168 ONLY: air_chemistry, & 169 constant_diffusion, cloud_droplets, & 171 ONLY: constant_diffusion, cloud_droplets, & 170 172 data_output_masks, data_output_masks_user, & 171 173 doav, doav_n, domask, domask_no, dz, dz_stretch_level_start, & … … 177 179 mask_x_loop, mask_xyz_dimension, mask_y, mask_y_loop, mask_z, & 178 180 mask_z_loop, max_masks, message_string, mid, & 179 passive_scalar, ocean_mode, salsa,varnamelength181 passive_scalar, ocean_mode, varnamelength 180 182 181 183 USE grid_variables, & -
palm/trunk/SOURCE/module_interface.f90
r3762 r3766 25 25 ! ----------------- 26 26 ! $Id$ 27 ! first argument removed from module_interface_rrd_*, statement added to avoid 28 ! compiler warning about unused variable, file reformatted with respect to coding 29 ! standards 30 ! 31 ! 3762 2019-02-25 16:54:16Z suehring 27 32 ! only pass required arguments to surface_data_output_rrd_local 28 33 ! … … 76 81 !> @todo Re-format module to be consistent with coding standard 77 82 !------------------------------------------------------------------------------! 78 MODULE module_interface79 80 USE indices,&81 ONLY: nbgp, nxl, nxlg, nxr, nxrg, nys, nysg, nyn, nyng, nzb, nzt82 83 USE kinds84 85 ! - load module-specific control parameters.86 !- ToDo: move all of them to respective module or a dedicated central module87 88 USE control_parameters,&89 ONLY: biometeorology,&90 air_chemistry,&91 indoor_model,&92 land_surface,&93 large_scale_forcing,&94 nesting_offline,&95 nudging,&96 ocean_mode,&97 plant_canopy,&98 salsa,&99 surface_output,&100 syn_turb_gen,&101 urban_surface,&102 virtual_flight,&103 virtual_measurement,&104 wind_turbine105 106 ! - load interface routines of all PALM modules107 108 USE biometeorology_mod,&109 ONLY: bio_parin,&110 bio_check_data_output,&111 bio_init,&112 bio_init_checks,&113 bio_header,&114 bio_3d_data_averaging,&115 bio_data_output_2d,&116 bio_data_output_3d,&117 bio_rrd_global,&118 bio_rrd_local,&119 bio_wrd_global,&120 bio_wrd_local121 122 USE bulk_cloud_model_mod,&123 ONLY: bulk_cloud_model,&124 bcm_parin,&125 bcm_check_parameters,&126 bcm_check_data_output_pr,&127 bcm_check_data_output,&128 bcm_init_arrays,&129 bcm_init,&130 bcm_header,&131 bcm_swap_timelevel,&132 bcm_3d_data_averaging,&133 bcm_data_output_2d,&134 bcm_data_output_3d,&135 bcm_rrd_global,&136 bcm_wrd_global,&137 bcm_rrd_local,&138 bcm_wrd_local83 MODULE module_interface 84 85 USE indices, & 86 ONLY: nbgp, nxl, nxlg, nxr, nxrg, nys, nysg, nyn, nyng, nzb, nzt 87 88 USE kinds 89 90 ! 91 !-- load module-specific control parameters. 92 !-- ToDo: move all of them to respective module or a dedicated central module 93 USE control_parameters, & 94 ONLY: biometeorology, & 95 air_chemistry, & 96 indoor_model, & 97 land_surface, & 98 large_scale_forcing, & 99 nesting_offline, & 100 nudging, & 101 ocean_mode, & 102 plant_canopy, & 103 salsa, & 104 surface_output, & 105 syn_turb_gen, & 106 urban_surface, & 107 virtual_flight, & 108 virtual_measurement, & 109 wind_turbine 110 111 ! 112 !-- load interface routines of all PALM modules 113 USE biometeorology_mod, & 114 ONLY: bio_parin, & 115 bio_check_data_output, & 116 bio_init, & 117 bio_init_checks, & 118 bio_header, & 119 bio_3d_data_averaging, & 120 bio_data_output_2d, & 121 bio_data_output_3d, & 122 bio_rrd_global, & 123 bio_rrd_local, & 124 bio_wrd_global, & 125 bio_wrd_local 126 127 USE bulk_cloud_model_mod, & 128 ONLY: bulk_cloud_model, & 129 bcm_parin, & 130 bcm_check_parameters, & 131 bcm_check_data_output_pr, & 132 bcm_check_data_output, & 133 bcm_init_arrays, & 134 bcm_init, & 135 bcm_header, & 136 bcm_swap_timelevel, & 137 bcm_3d_data_averaging, & 138 bcm_data_output_2d, & 139 bcm_data_output_3d, & 140 bcm_rrd_global, & 141 bcm_wrd_global, & 142 bcm_rrd_local, & 143 bcm_wrd_local 139 144 140 145 USE chemistry_model_mod, & … … 152 157 chem_statistics, & 153 158 chem_rrd_local, & 154 chem_wrd_local155 156 USE flight_mod,&157 ONLY: flight_parin,&158 flight_header,&159 flight_init,&160 flight_rrd_global,&161 flight_wrd_global162 163 USE gust_mod,&164 ONLY: gust_module_enabled,&165 gust_parin,&166 gust_check_parameters,&167 gust_check_data_output_pr,&168 gust_check_data_output,&169 gust_init_arrays,&170 gust_init,&171 gust_header,&172 gust_actions,&173 gust_swap_timelevel,&174 gust_3d_data_averaging,&175 gust_data_output_2d,&176 gust_data_output_3d,&177 gust_statistics,&178 gust_rrd_global,&179 gust_wrd_global,&180 gust_rrd_local,&181 gust_wrd_local182 183 USE indoor_model_mod,&184 ONLY: im_parin,&185 im_check_data_output,&186 im_check_parameters,&187 im_data_output_3d,&188 im_init189 190 USE land_surface_model_mod,&191 ONLY: lsm_parin,&192 lsm_check_parameters,&193 lsm_check_data_output_pr,&194 lsm_check_data_output,&195 lsm_init_arrays,&196 lsm_init,&197 lsm_header,&198 lsm_swap_timelevel,&199 lsm_3d_data_averaging,&200 lsm_data_output_2d,&201 lsm_rrd_local,&202 lsm_wrd_local203 204 USE lsf_nudging_mod,&205 ONLY: lsf_nudging_check_parameters,&206 lsf_nudging_check_data_output_pr,&207 lsf_init,&208 nudge_init,&209 lsf_nudging_header210 211 USE multi_agent_system_mod,&212 ONLY: mas_parin213 214 USE nesting_offl_mod,&215 ONLY: nesting_offl_parin,&216 nesting_offl_check_parameters,&217 nesting_offl_header218 219 USE ocean_mod,&220 ONLY: ocean_parin,&221 ocean_check_parameters,&222 ocean_check_data_output_pr,&223 ocean_check_data_output,&224 ocean_init_arrays,&225 ocean_init,&226 ocean_header,&227 ocean_swap_timelevel,&228 ocean_3d_data_averaging,&229 ocean_data_output_2d,&230 ocean_data_output_3d,&231 ocean_rrd_global,&232 ocean_wrd_global,&233 ocean_rrd_local,&234 ocean_wrd_local235 236 USE plant_canopy_model_mod,&237 ONLY: pcm_parin,&238 pcm_check_parameters,&239 pcm_check_data_output,&240 pcm_init,&241 pcm_header,&242 pcm_data_output_3d243 244 USE radiation_model_mod,&245 ONLY: radiation,&246 radiation_parin,&247 radiation_check_parameters,&248 radiation_check_data_output_ts,&249 radiation_check_data_output_pr,&250 radiation_check_data_output,&251 radiation_init,&252 radiation_header,&253 radiation_3d_data_averaging,&254 radiation_data_output_2d,&255 radiation_data_output_3d,&256 radiation_rrd_local,&257 radiation_wrd_local258 259 USE salsa_mod,&260 ONLY: salsa_parin,&261 salsa_check_parameters,&262 salsa_check_data_output,&263 salsa_init_arrays,&264 salsa_init,&265 salsa_header,&266 salsa_swap_timelevel,&267 salsa_3d_data_averaging,&268 salsa_data_output_2d,&269 salsa_data_output_3d,&270 salsa_rrd_local,&271 salsa_wrd_local272 273 USE spectra_mod,&274 ONLY: calculate_spectra,&275 spectra_parin,&276 spectra_check_parameters,&277 spectra_header278 279 USE surface_data_output_mod,&280 ONLY: surface_data_output_parin,&281 surface_data_output_check_parameters,&282 surface_data_output_init_arrays,&283 surface_data_output_rrd_local,&284 surface_data_output_rrd_global,&285 surface_data_output_wrd_local,&286 surface_data_output_wrd_global287 288 USE synthetic_turbulence_generator_mod,&289 ONLY: stg_parin,&290 stg_check_parameters,&291 stg_header,&292 stg_rrd_global,&293 stg_wrd_global294 295 USE urban_surface_mod,&296 ONLY: usm_parin,&297 usm_check_parameters,&298 usm_check_data_output,&299 usm_init_arrays,&300 usm_init,&301 usm_swap_timelevel,&302 usm_3d_data_averaging,&303 usm_rrd_local,&304 usm_wrd_local305 306 USE user,&307 ONLY: user_module_enabled,&308 user_parin,&309 user_check_parameters,&310 user_check_data_output_ts,&311 user_check_data_output_pr,&312 user_check_data_output,&313 user_init,&314 user_init_arrays,&315 user_header,&316 user_actions,&317 user_3d_data_averaging,&318 user_data_output_2d,&319 user_data_output_3d,&320 user_statistics,&321 user_rrd_global,&322 user_rrd_local,&323 user_wrd_global,&324 user_wrd_local,&325 user_last_actions326 327 USE virtual_measurement_mod,&328 ONLY: vm_check_parameters,&329 vm_init,&330 vm_last_actions,&331 vm_parin332 333 USE wind_turbine_model_mod,&334 ONLY: wtm_parin,&335 wtm_check_parameters,&336 wtm_init_arrays,&337 wtm_init,&338 wtm_rrd_global,&339 wtm_wrd_global340 341 IMPLICIT NONE342 343 PRIVATE344 345 ! 346 !- Public functions347 PUBLIC&348 module_interface_parin,&349 module_interface_check_parameters,&350 module_interface_check_data_output_ts,&351 module_interface_check_data_output_pr,&352 module_interface_check_data_output,&353 module_interface_init_masks,&354 module_interface_define_netcdf_grid,&355 module_interface_init_arrays,&356 module_interface_init,&357 module_interface_init_checks,&358 module_interface_header,&359 module_interface_actions,&360 module_interface_swap_timelevel,&361 module_interface_3d_data_averaging,&362 module_interface_data_output_2d,&363 module_interface_data_output_3d,&364 module_interface_statistics,&365 module_interface_rrd_global,&366 module_interface_wrd_global,&367 module_interface_rrd_local,&368 module_interface_wrd_local,&369 module_interface_last_actions370 371 372 INTERFACE module_interface_parin373 MODULE PROCEDURE module_interface_parin374 END INTERFACE module_interface_parin375 376 INTERFACE module_interface_check_parameters377 MODULE PROCEDURE module_interface_check_parameters378 END INTERFACE module_interface_check_parameters379 380 INTERFACE module_interface_check_data_output_ts381 MODULE PROCEDURE module_interface_check_data_output_ts382 END INTERFACE module_interface_check_data_output_ts383 384 INTERFACE module_interface_check_data_output_pr385 MODULE PROCEDURE module_interface_check_data_output_pr386 END INTERFACE module_interface_check_data_output_pr387 388 INTERFACE module_interface_check_data_output389 MODULE PROCEDURE module_interface_check_data_output390 END INTERFACE module_interface_check_data_output391 392 INTERFACE module_interface_init_masks393 MODULE PROCEDURE module_interface_init_masks394 END INTERFACE module_interface_init_masks395 396 INTERFACE module_interface_define_netcdf_grid397 MODULE PROCEDURE module_interface_define_netcdf_grid398 END INTERFACE module_interface_define_netcdf_grid399 400 INTERFACE module_interface_init_arrays401 MODULE PROCEDURE module_interface_init_arrays402 END INTERFACE module_interface_init_arrays403 404 INTERFACE module_interface_init405 MODULE PROCEDURE module_interface_init406 END INTERFACE module_interface_init407 408 INTERFACE module_interface_init_checks409 MODULE PROCEDURE module_interface_init_checks410 END INTERFACE module_interface_init_checks411 412 INTERFACE module_interface_header413 MODULE PROCEDURE module_interface_header414 END INTERFACE module_interface_header415 416 INTERFACE module_interface_actions417 MODULE PROCEDURE module_interface_actions418 MODULE PROCEDURE module_interface_actions_ij419 END INTERFACE module_interface_actions420 421 INTERFACE module_interface_swap_timelevel422 MODULE PROCEDURE module_interface_swap_timelevel423 END INTERFACE module_interface_swap_timelevel424 425 INTERFACE module_interface_3d_data_averaging426 MODULE PROCEDURE module_interface_3d_data_averaging427 END INTERFACE module_interface_3d_data_averaging428 429 INTERFACE module_interface_data_output_2d430 MODULE PROCEDURE module_interface_data_output_2d431 END INTERFACE module_interface_data_output_2d432 433 INTERFACE module_interface_data_output_3d434 MODULE PROCEDURE module_interface_data_output_3d435 END INTERFACE module_interface_data_output_3d436 437 INTERFACE module_interface_statistics438 MODULE PROCEDURE module_interface_statistics439 END INTERFACE module_interface_statistics440 441 INTERFACE module_interface_rrd_global442 MODULE PROCEDURE module_interface_rrd_global443 END INTERFACE module_interface_rrd_global444 445 INTERFACE module_interface_wrd_global446 MODULE PROCEDURE module_interface_wrd_global447 END INTERFACE module_interface_wrd_global448 449 INTERFACE module_interface_rrd_local450 MODULE PROCEDURE module_interface_rrd_local451 END INTERFACE module_interface_rrd_local452 453 INTERFACE module_interface_wrd_local454 MODULE PROCEDURE module_interface_wrd_local455 END INTERFACE module_interface_wrd_local456 457 INTERFACE module_interface_last_actions458 MODULE PROCEDURE module_interface_last_actions459 END INTERFACE module_interface_last_actions460 461 462 CONTAINS159 chem_wrd_local 160 161 USE flight_mod, & 162 ONLY: flight_parin, & 163 flight_header, & 164 flight_init, & 165 flight_rrd_global, & 166 flight_wrd_global 167 168 USE gust_mod, & 169 ONLY: gust_module_enabled, & 170 gust_parin, & 171 gust_check_parameters, & 172 gust_check_data_output_pr, & 173 gust_check_data_output, & 174 gust_init_arrays, & 175 gust_init, & 176 gust_header, & 177 gust_actions, & 178 gust_swap_timelevel, & 179 gust_3d_data_averaging, & 180 gust_data_output_2d, & 181 gust_data_output_3d, & 182 gust_statistics, & 183 gust_rrd_global, & 184 gust_wrd_global, & 185 gust_rrd_local, & 186 gust_wrd_local 187 188 USE indoor_model_mod, & 189 ONLY: im_parin, & 190 im_check_data_output, & 191 im_check_parameters, & 192 im_data_output_3d, & 193 im_init 194 195 USE land_surface_model_mod, & 196 ONLY: lsm_parin, & 197 lsm_check_parameters, & 198 lsm_check_data_output_pr, & 199 lsm_check_data_output, & 200 lsm_init_arrays, & 201 lsm_init, & 202 lsm_header, & 203 lsm_swap_timelevel, & 204 lsm_3d_data_averaging, & 205 lsm_data_output_2d, & 206 lsm_rrd_local, & 207 lsm_wrd_local 208 209 USE lsf_nudging_mod, & 210 ONLY: lsf_nudging_check_parameters, & 211 lsf_nudging_check_data_output_pr, & 212 lsf_init, & 213 nudge_init, & 214 lsf_nudging_header 215 216 USE multi_agent_system_mod, & 217 ONLY: mas_parin 218 219 USE nesting_offl_mod, & 220 ONLY: nesting_offl_parin, & 221 nesting_offl_check_parameters, & 222 nesting_offl_header 223 224 USE ocean_mod, & 225 ONLY: ocean_parin, & 226 ocean_check_parameters, & 227 ocean_check_data_output_pr, & 228 ocean_check_data_output, & 229 ocean_init_arrays, & 230 ocean_init, & 231 ocean_header, & 232 ocean_swap_timelevel, & 233 ocean_3d_data_averaging, & 234 ocean_data_output_2d, & 235 ocean_data_output_3d, & 236 ocean_rrd_global, & 237 ocean_wrd_global, & 238 ocean_rrd_local, & 239 ocean_wrd_local 240 241 USE plant_canopy_model_mod, & 242 ONLY: pcm_parin, & 243 pcm_check_parameters, & 244 pcm_check_data_output, & 245 pcm_init, & 246 pcm_header, & 247 pcm_data_output_3d 248 249 USE radiation_model_mod, & 250 ONLY: radiation, & 251 radiation_parin, & 252 radiation_check_parameters, & 253 radiation_check_data_output_ts, & 254 radiation_check_data_output_pr, & 255 radiation_check_data_output, & 256 radiation_init, & 257 radiation_header, & 258 radiation_3d_data_averaging, & 259 radiation_data_output_2d, & 260 radiation_data_output_3d, & 261 radiation_rrd_local, & 262 radiation_wrd_local 263 264 USE salsa_mod, & 265 ONLY: salsa_parin, & 266 salsa_check_parameters, & 267 salsa_check_data_output, & 268 salsa_init_arrays, & 269 salsa_init, & 270 salsa_header, & 271 salsa_swap_timelevel, & 272 salsa_3d_data_averaging, & 273 salsa_data_output_2d, & 274 salsa_data_output_3d, & 275 salsa_rrd_local, & 276 salsa_wrd_local 277 278 USE spectra_mod, & 279 ONLY: calculate_spectra, & 280 spectra_parin, & 281 spectra_check_parameters, & 282 spectra_header 283 284 USE surface_data_output_mod, & 285 ONLY: surface_data_output_parin, & 286 surface_data_output_check_parameters, & 287 surface_data_output_init_arrays, & 288 surface_data_output_rrd_local, & 289 surface_data_output_rrd_global, & 290 surface_data_output_wrd_local, & 291 surface_data_output_wrd_global 292 293 USE synthetic_turbulence_generator_mod, & 294 ONLY: stg_parin, & 295 stg_check_parameters, & 296 stg_header, & 297 stg_rrd_global, & 298 stg_wrd_global 299 300 USE urban_surface_mod, & 301 ONLY: usm_parin, & 302 usm_check_parameters, & 303 usm_check_data_output, & 304 usm_init_arrays, & 305 usm_init, & 306 usm_swap_timelevel, & 307 usm_3d_data_averaging, & 308 usm_rrd_local, & 309 usm_wrd_local 310 311 USE user, & 312 ONLY: user_module_enabled, & 313 user_parin, & 314 user_check_parameters, & 315 user_check_data_output_ts, & 316 user_check_data_output_pr, & 317 user_check_data_output, & 318 user_init, & 319 user_init_arrays, & 320 user_header, & 321 user_actions, & 322 user_3d_data_averaging, & 323 user_data_output_2d, & 324 user_data_output_3d, & 325 user_statistics, & 326 user_rrd_global, & 327 user_rrd_local, & 328 user_wrd_global, & 329 user_wrd_local, & 330 user_last_actions 331 332 USE virtual_measurement_mod, & 333 ONLY: vm_check_parameters, & 334 vm_init, & 335 vm_last_actions, & 336 vm_parin 337 338 USE wind_turbine_model_mod, & 339 ONLY: wtm_parin, & 340 wtm_check_parameters, & 341 wtm_init_arrays, & 342 wtm_init, & 343 wtm_rrd_global, & 344 wtm_wrd_global 345 346 IMPLICIT NONE 347 348 PRIVATE 349 350 ! 351 !-- Public functions 352 PUBLIC & 353 module_interface_parin, & 354 module_interface_check_parameters, & 355 module_interface_check_data_output_ts, & 356 module_interface_check_data_output_pr, & 357 module_interface_check_data_output, & 358 module_interface_init_masks, & 359 module_interface_define_netcdf_grid, & 360 module_interface_init_arrays, & 361 module_interface_init, & 362 module_interface_init_checks, & 363 module_interface_header, & 364 module_interface_actions, & 365 module_interface_swap_timelevel, & 366 module_interface_3d_data_averaging, & 367 module_interface_data_output_2d, & 368 module_interface_data_output_3d, & 369 module_interface_statistics, & 370 module_interface_rrd_global, & 371 module_interface_wrd_global, & 372 module_interface_rrd_local, & 373 module_interface_wrd_local, & 374 module_interface_last_actions 375 376 377 INTERFACE module_interface_parin 378 MODULE PROCEDURE module_interface_parin 379 END INTERFACE module_interface_parin 380 381 INTERFACE module_interface_check_parameters 382 MODULE PROCEDURE module_interface_check_parameters 383 END INTERFACE module_interface_check_parameters 384 385 INTERFACE module_interface_check_data_output_ts 386 MODULE PROCEDURE module_interface_check_data_output_ts 387 END INTERFACE module_interface_check_data_output_ts 388 389 INTERFACE module_interface_check_data_output_pr 390 MODULE PROCEDURE module_interface_check_data_output_pr 391 END INTERFACE module_interface_check_data_output_pr 392 393 INTERFACE module_interface_check_data_output 394 MODULE PROCEDURE module_interface_check_data_output 395 END INTERFACE module_interface_check_data_output 396 397 INTERFACE module_interface_init_masks 398 MODULE PROCEDURE module_interface_init_masks 399 END INTERFACE module_interface_init_masks 400 401 INTERFACE module_interface_define_netcdf_grid 402 MODULE PROCEDURE module_interface_define_netcdf_grid 403 END INTERFACE module_interface_define_netcdf_grid 404 405 INTERFACE module_interface_init_arrays 406 MODULE PROCEDURE module_interface_init_arrays 407 END INTERFACE module_interface_init_arrays 408 409 INTERFACE module_interface_init 410 MODULE PROCEDURE module_interface_init 411 END INTERFACE module_interface_init 412 413 INTERFACE module_interface_init_checks 414 MODULE PROCEDURE module_interface_init_checks 415 END INTERFACE module_interface_init_checks 416 417 INTERFACE module_interface_header 418 MODULE PROCEDURE module_interface_header 419 END INTERFACE module_interface_header 420 421 INTERFACE module_interface_actions 422 MODULE PROCEDURE module_interface_actions 423 MODULE PROCEDURE module_interface_actions_ij 424 END INTERFACE module_interface_actions 425 426 INTERFACE module_interface_swap_timelevel 427 MODULE PROCEDURE module_interface_swap_timelevel 428 END INTERFACE module_interface_swap_timelevel 429 430 INTERFACE module_interface_3d_data_averaging 431 MODULE PROCEDURE module_interface_3d_data_averaging 432 END INTERFACE module_interface_3d_data_averaging 433 434 INTERFACE module_interface_data_output_2d 435 MODULE PROCEDURE module_interface_data_output_2d 436 END INTERFACE module_interface_data_output_2d 437 438 INTERFACE module_interface_data_output_3d 439 MODULE PROCEDURE module_interface_data_output_3d 440 END INTERFACE module_interface_data_output_3d 441 442 INTERFACE module_interface_statistics 443 MODULE PROCEDURE module_interface_statistics 444 END INTERFACE module_interface_statistics 445 446 INTERFACE module_interface_rrd_global 447 MODULE PROCEDURE module_interface_rrd_global 448 END INTERFACE module_interface_rrd_global 449 450 INTERFACE module_interface_wrd_global 451 MODULE PROCEDURE module_interface_wrd_global 452 END INTERFACE module_interface_wrd_global 453 454 INTERFACE module_interface_rrd_local 455 MODULE PROCEDURE module_interface_rrd_local 456 END INTERFACE module_interface_rrd_local 457 458 INTERFACE module_interface_wrd_local 459 MODULE PROCEDURE module_interface_wrd_local 460 END INTERFACE module_interface_wrd_local 461 462 INTERFACE module_interface_last_actions 463 MODULE PROCEDURE module_interface_last_actions 464 END INTERFACE module_interface_last_actions 465 466 467 CONTAINS 463 468 464 469 … … 468 473 !> Read module-specific parameter namelists 469 474 !------------------------------------------------------------------------------! 470 SUBROUTINE module_interface_parin471 472 473 CALL bio_parin474 CALL bcm_parin475 CALL chem_parin476 CALL flight_parin ! ToDo: rename module to match filename477 CALL gust_parin478 CALL im_parin479 CALL lsm_parin480 ! ToDo: create parin routine for large_scale_forcing and nudging (should be seperate modules or new module switch)481 CALL mas_parin482 CALL nesting_offl_parin483 CALL ocean_parin484 CALL pcm_parin485 CALL radiation_parin486 CALL salsa_parin487 CALL spectra_parin488 CALL surface_data_output_parin489 CALL stg_parin490 CALL user_parin ! ToDo: make user code a single Fortran module491 CALL usm_parin492 CALL vm_parin493 CALL wtm_parin494 495 CALL package_parin ! ToDo: deprecated, needs to be dissolved496 497 498 END SUBROUTINE module_interface_parin475 SUBROUTINE module_interface_parin 476 477 478 CALL bio_parin 479 CALL bcm_parin 480 CALL chem_parin 481 CALL flight_parin ! ToDo: rename module to match filename 482 CALL gust_parin 483 CALL im_parin 484 CALL lsm_parin 485 ! ToDo: create parin routine for large_scale_forcing and nudging (should be seperate modules or new module switch) 486 CALL mas_parin 487 CALL nesting_offl_parin 488 CALL ocean_parin 489 CALL pcm_parin 490 CALL radiation_parin 491 CALL salsa_parin 492 CALL spectra_parin 493 CALL surface_data_output_parin 494 CALL stg_parin 495 CALL user_parin ! ToDo: make user code a single Fortran module 496 CALL usm_parin 497 CALL vm_parin 498 CALL wtm_parin 499 500 CALL package_parin ! ToDo: deprecated, needs to be dissolved 501 502 503 END SUBROUTINE module_interface_parin 499 504 500 505 … … 504 509 !> Perform module-specific initialization checks 505 510 !------------------------------------------------------------------------------! 506 SUBROUTINE module_interface_check_parameters507 508 509 IF ( bulk_cloud_model ) CALL bcm_check_parameters510 IF ( air_chemistry ) CALL chem_check_parameters511 IF ( gust_module_enabled ) CALL gust_check_parameters512 IF ( indoor_model ) CALL im_check_parameters513 IF ( land_surface ) CALL lsm_check_parameters514 IF ( large_scale_forcing .OR. nudging ) CALL lsf_nudging_check_parameters ! ToDo: create single module switch515 IF ( nesting_offline ) CALL nesting_offl_check_parameters516 IF ( ocean_mode ) CALL ocean_check_parameters517 IF ( plant_canopy ) CALL pcm_check_parameters518 IF ( radiation ) CALL radiation_check_parameters519 IF ( salsa ) CALL salsa_check_parameters520 IF ( calculate_spectra ) CALL spectra_check_parameters521 IF ( surface_output ) CALL surface_data_output_check_parameters522 IF ( syn_turb_gen ) CALL stg_check_parameters523 IF ( urban_surface ) CALL usm_check_parameters524 IF ( virtual_measurement ) CALL vm_check_parameters525 IF ( wind_turbine ) CALL wtm_check_parameters526 IF ( user_module_enabled ) CALL user_check_parameters527 528 529 END SUBROUTINE module_interface_check_parameters511 SUBROUTINE module_interface_check_parameters 512 513 514 IF ( bulk_cloud_model ) CALL bcm_check_parameters 515 IF ( air_chemistry ) CALL chem_check_parameters 516 IF ( gust_module_enabled ) CALL gust_check_parameters 517 IF ( indoor_model ) CALL im_check_parameters 518 IF ( land_surface ) CALL lsm_check_parameters 519 IF ( large_scale_forcing .OR. nudging ) CALL lsf_nudging_check_parameters ! ToDo: create single module switch 520 IF ( nesting_offline ) CALL nesting_offl_check_parameters 521 IF ( ocean_mode ) CALL ocean_check_parameters 522 IF ( plant_canopy ) CALL pcm_check_parameters 523 IF ( radiation ) CALL radiation_check_parameters 524 IF ( salsa ) CALL salsa_check_parameters 525 IF ( calculate_spectra ) CALL spectra_check_parameters 526 IF ( surface_output ) CALL surface_data_output_check_parameters 527 IF ( syn_turb_gen ) CALL stg_check_parameters 528 IF ( urban_surface ) CALL usm_check_parameters 529 IF ( virtual_measurement ) CALL vm_check_parameters 530 IF ( wind_turbine ) CALL wtm_check_parameters 531 IF ( user_module_enabled ) CALL user_check_parameters 532 533 534 END SUBROUTINE module_interface_check_parameters 530 535 531 536 … … 535 540 !> Check module-specific data output of timeseries 536 541 !------------------------------------------------------------------------------! 537 SUBROUTINE module_interface_check_data_output_ts( dots_max, dots_num, dots_label, dots_unit )538 539 540 INTEGER(iwp), INTENT(IN) :: dots_max !< variable output array index541 INTEGER(iwp), INTENT(INOUT) :: dots_num !< variable output array index542 CHARACTER (LEN=*), DIMENSION(dots_max), INTENT(INOUT) :: dots_label543 CHARACTER (LEN=*), DIMENSION(dots_max), INTENT(INOUT) :: dots_unit544 545 546 IF ( radiation ) THEN547 CALL radiation_check_data_output_ts( dots_max, dots_num, dots_label, dots_unit )548 ENDIF549 550 IF ( user_module_enabled ) THEN551 CALL user_check_data_output_ts( dots_max, dots_num, dots_label, dots_unit )552 ENDIF553 554 555 END SUBROUTINE module_interface_check_data_output_ts542 SUBROUTINE module_interface_check_data_output_ts( dots_max, dots_num, dots_label, dots_unit ) 543 544 545 INTEGER(iwp), INTENT(IN) :: dots_max !< variable output array index 546 INTEGER(iwp), INTENT(INOUT) :: dots_num !< variable output array index 547 CHARACTER (LEN=*), DIMENSION(dots_max), INTENT(INOUT) :: dots_label 548 CHARACTER (LEN=*), DIMENSION(dots_max), INTENT(INOUT) :: dots_unit 549 550 551 IF ( radiation ) THEN 552 CALL radiation_check_data_output_ts( dots_max, dots_num, dots_label, dots_unit ) 553 ENDIF 554 555 IF ( user_module_enabled ) THEN 556 CALL user_check_data_output_ts( dots_max, dots_num, dots_label, dots_unit ) 557 ENDIF 558 559 560 END SUBROUTINE module_interface_check_data_output_ts 556 561 557 562 … … 561 566 !> Check module-specific data output of profiles 562 567 !------------------------------------------------------------------------------! 563 SUBROUTINE module_interface_check_data_output_pr( variable, var_count, unit, & 564 dopr_unit ) 565 566 567 CHARACTER (LEN=*), INTENT(IN) :: variable !< variable name 568 INTEGER(iwp), INTENT(IN) :: var_count !< variable output array index 569 CHARACTER (LEN=*), INTENT(INOUT) :: unit !< physical unit of variable 570 CHARACTER (LEN=*), INTENT(OUT) :: dopr_unit !< local value of dopr_unit 571 572 IF ( unit == 'illegal' .AND. bulk_cloud_model ) THEN 573 CALL bcm_check_data_output_pr( variable, var_count, unit, dopr_unit ) 574 ENDIF 575 576 IF ( unit == 'illegal' .AND. air_chemistry ) THEN 577 CALL chem_check_data_output_pr( variable, var_count, unit, dopr_unit ) 578 ENDIF 579 580 IF ( unit == 'illegal' .AND. gust_module_enabled ) THEN 581 CALL gust_check_data_output_pr( variable, var_count, unit, dopr_unit ) 582 ENDIF 583 584 IF ( unit == 'illegal' ) THEN ! ToDo: add module switch if possible 585 CALL lsm_check_data_output_pr( variable, var_count, unit, dopr_unit ) 586 ENDIF 587 588 IF ( unit == 'illegal' ) THEN ! ToDo: add module switch if possible 589 CALL lsf_nudging_check_data_output_pr( variable, var_count, unit, dopr_unit ) 590 ENDIF 591 592 IF ( unit == 'illegal' .AND. ocean_mode ) THEN 593 CALL ocean_check_data_output_pr( variable, var_count, unit, dopr_unit ) 594 ENDIF 595 596 IF ( unit == 'illegal' .AND. radiation ) THEN 597 CALL radiation_check_data_output_pr( variable, var_count, unit, dopr_unit ) 598 ENDIF 599 600 IF ( unit == 'illegal' .AND. user_module_enabled ) THEN 601 unit = '' ! ToDo: Seems like a hack. Find a general soultion! 602 CALL user_check_data_output_pr( variable, var_count, unit, dopr_unit ) 603 ENDIF 604 605 606 607 END SUBROUTINE module_interface_check_data_output_pr 568 SUBROUTINE module_interface_check_data_output_pr( variable, var_count, unit, & 569 dopr_unit ) 570 571 572 CHARACTER (LEN=*), INTENT(IN) :: variable !< variable name 573 INTEGER(iwp), INTENT(IN) :: var_count !< variable output array index 574 CHARACTER (LEN=*), INTENT(INOUT) :: unit !< physical unit of variable 575 CHARACTER (LEN=*), INTENT(OUT) :: dopr_unit !< local value of dopr_unit 576 577 IF ( unit == 'illegal' .AND. bulk_cloud_model ) THEN 578 CALL bcm_check_data_output_pr( variable, var_count, unit, dopr_unit ) 579 ENDIF 580 581 IF ( unit == 'illegal' .AND. air_chemistry ) THEN 582 CALL chem_check_data_output_pr( variable, var_count, unit, dopr_unit ) 583 ENDIF 584 585 IF ( unit == 'illegal' .AND. gust_module_enabled ) THEN 586 CALL gust_check_data_output_pr( variable, var_count, unit, dopr_unit ) 587 ENDIF 588 589 IF ( unit == 'illegal' ) THEN ! ToDo: add module switch if possible 590 CALL lsm_check_data_output_pr( variable, var_count, unit, dopr_unit ) 591 ENDIF 592 593 IF ( unit == 'illegal' ) THEN ! ToDo: add module switch if possible 594 CALL lsf_nudging_check_data_output_pr( variable, var_count, unit, dopr_unit ) 595 ENDIF 596 597 IF ( unit == 'illegal' .AND. ocean_mode ) THEN 598 CALL ocean_check_data_output_pr( variable, var_count, unit, dopr_unit ) 599 ENDIF 600 601 IF ( unit == 'illegal' .AND. radiation ) THEN 602 CALL radiation_check_data_output_pr( variable, var_count, unit, dopr_unit ) 603 ENDIF 604 605 IF ( unit == 'illegal' .AND. user_module_enabled ) THEN 606 unit = '' ! ToDo: Seems like a hack. Find a general soultion! 607 CALL user_check_data_output_pr( variable, var_count, unit, dopr_unit ) 608 ENDIF 609 610 611 END SUBROUTINE module_interface_check_data_output_pr 608 612 609 613 !------------------------------------------------------------------------------! … … 612 616 !> Check module-specific 2D and 3D data output 613 617 !------------------------------------------------------------------------------! 614 SUBROUTINE module_interface_check_data_output( variable, unit, i, j, ilen, k )615 616 617 CHARACTER (LEN=*), INTENT(IN) :: variable !< variable name618 CHARACTER (LEN=*), INTENT(INOUT) :: unit !< physical unit of variable619 620 INTEGER(iwp), INTENT(IN) :: i !< ToDo: remove dummy argument, instead pass string from data_output621 INTEGER(iwp), INTENT(IN) :: j !< average quantity? 0 = no, 1 = yes622 INTEGER(iwp), INTENT(IN) :: ilen !< ToDo: remove dummy argument, instead pass string from data_output623 INTEGER(iwp), INTENT(IN) :: k !< ToDo: remove dummy argument, instead pass string from data_output624 625 IF ( unit == 'illegal' .AND. biometeorology ) THEN626 CALL bio_check_data_output( variable, unit, i, j, ilen, k )627 ENDIF628 629 IF ( unit == 'illegal' .AND. bulk_cloud_model ) THEN630 CALL bcm_check_data_output( variable, unit )631 ENDIF632 633 IF ( unit == 'illegal' .AND. air_chemistry&634 .AND. (variable(1:3) == 'kc_' .OR. variable(1:3) == 'em_') ) THEN ! ToDo: remove aditional conditions635 CALL chem_check_data_output( variable, unit, i, ilen, k )636 ENDIF637 638 IF ( unit == 'illegal' .AND. gust_module_enabled ) THEN639 CALL gust_check_data_output( variable, unit )640 ENDIF641 642 IF ( unit == 'illegal' ) THEN ! ToDo: add module switch if possible643 CALL lsm_check_data_output( variable, unit, i, ilen, k )644 ENDIF645 646 IF ( unit == 'illegal' .AND. ocean_mode ) THEN647 CALL ocean_check_data_output( variable, unit )648 ENDIF649 650 IF ( unit == 'illegal' .AND. plant_canopy&651 .AND. variable(1:4) == 'pcm_' ) THEN ! ToDo: remove aditional conditions652 CALL pcm_check_data_output( variable, unit )653 ENDIF654 655 IF ( unit == 'illegal' .AND. radiation ) THEN656 CALL radiation_check_data_output( variable, unit, i, ilen, k )657 ENDIF658 659 IF ( unit == 'illegal' .AND. salsa ) THEN618 SUBROUTINE module_interface_check_data_output( variable, unit, i, j, ilen, k ) 619 620 621 CHARACTER (LEN=*), INTENT(IN) :: variable !< variable name 622 CHARACTER (LEN=*), INTENT(INOUT) :: unit !< physical unit of variable 623 624 INTEGER(iwp), INTENT(IN) :: i !< ToDo: remove dummy argument, instead pass string from data_output 625 INTEGER(iwp), INTENT(IN) :: j !< average quantity? 0 = no, 1 = yes 626 INTEGER(iwp), INTENT(IN) :: ilen !< ToDo: remove dummy argument, instead pass string from data_output 627 INTEGER(iwp), INTENT(IN) :: k !< ToDo: remove dummy argument, instead pass string from data_output 628 629 IF ( unit == 'illegal' .AND. biometeorology ) THEN 630 CALL bio_check_data_output( variable, unit, i, j, ilen, k ) 631 ENDIF 632 633 IF ( unit == 'illegal' .AND. bulk_cloud_model ) THEN 634 CALL bcm_check_data_output( variable, unit ) 635 ENDIF 636 637 IF ( unit == 'illegal' .AND. air_chemistry & 638 .AND. (variable(1:3) == 'kc_' .OR. variable(1:3) == 'em_') ) THEN ! ToDo: remove aditional conditions 639 CALL chem_check_data_output( variable, unit, i, ilen, k ) 640 ENDIF 641 642 IF ( unit == 'illegal' .AND. gust_module_enabled ) THEN 643 CALL gust_check_data_output( variable, unit ) 644 ENDIF 645 646 IF ( unit == 'illegal' ) THEN ! ToDo: add module switch if possible 647 CALL lsm_check_data_output( variable, unit, i, ilen, k ) 648 ENDIF 649 650 IF ( unit == 'illegal' .AND. ocean_mode ) THEN 651 CALL ocean_check_data_output( variable, unit ) 652 ENDIF 653 654 IF ( unit == 'illegal' .AND. plant_canopy & 655 .AND. variable(1:4) == 'pcm_' ) THEN ! ToDo: remove aditional conditions 656 CALL pcm_check_data_output( variable, unit ) 657 ENDIF 658 659 IF ( unit == 'illegal' .AND. radiation ) THEN 660 CALL radiation_check_data_output( variable, unit, i, ilen, k ) 661 ENDIF 662 663 IF ( unit == 'illegal' .AND. salsa ) THEN 660 664 CALL salsa_check_data_output( variable, unit ) 661 ENDIF662 663 IF ( unit == 'illegal' .AND. indoor_model ) THEN665 ENDIF 666 667 IF ( unit == 'illegal' .AND. indoor_model ) THEN 664 668 CALL im_check_data_output( variable, unit ) 665 ENDIF669 ENDIF 666 670 667 IF ( unit == 'illegal' .AND. urban_surface &671 IF ( unit == 'illegal' .AND. urban_surface & 668 672 .AND. variable(1:4) == 'usm_' ) THEN ! ToDo: remove aditional conditions 669 673 CALL usm_check_data_output( variable, unit ) 670 ENDIF671 672 IF ( unit == 'illegal' .AND. user_module_enabled ) THEN673 unit = ''674 CALL user_check_data_output( variable, unit )675 ENDIF676 677 678 END SUBROUTINE module_interface_check_data_output674 ENDIF 675 676 IF ( unit == 'illegal' .AND. user_module_enabled ) THEN 677 unit = '' 678 CALL user_check_data_output( variable, unit ) 679 ENDIF 680 681 682 END SUBROUTINE module_interface_check_data_output 679 683 680 684 … … 685 689 !> Interface for init_masks. ToDo: get rid of these redundant calls! 686 690 !------------------------------------------------------------------------------! 687 SUBROUTINE module_interface_init_masks( variable, unit )688 689 690 CHARACTER (LEN=*), INTENT(IN) :: variable !< variable name691 CHARACTER (LEN=*), INTENT(INOUT) :: unit !< physical unit of variable692 693 IF ( unit == 'illegal' .AND. air_chemistry&694 .AND. (variable(1:3) == 'kc_' .OR. variable(1:3) == 'em_') ) THEN ! ToDo: remove aditional conditions695 CALL chem_check_data_output( variable, unit, 0, 0, 0 )696 ENDIF697 698 IF ( unit == 'illegal' .AND. radiation ) THEN699 CALL radiation_check_data_output( variable, unit, 0, 0, 0 )700 ENDIF701 702 IF ( unit == 'illegal' .AND. salsa ) THEN703 CALL salsa_check_data_output( variable, unit )704 ENDIF705 706 IF ( unit == 'illegal' .AND. user_module_enabled ) THEN707 unit = ''708 CALL user_check_data_output( variable, unit )709 ENDIF710 711 712 END SUBROUTINE module_interface_init_masks691 SUBROUTINE module_interface_init_masks( variable, unit ) 692 693 694 CHARACTER (LEN=*), INTENT(IN) :: variable !< variable name 695 CHARACTER (LEN=*), INTENT(INOUT) :: unit !< physical unit of variable 696 697 IF ( unit == 'illegal' .AND. air_chemistry & 698 .AND. (variable(1:3) == 'kc_' .OR. variable(1:3) == 'em_') ) THEN ! ToDo: remove aditional conditions 699 CALL chem_check_data_output( variable, unit, 0, 0, 0 ) 700 ENDIF 701 702 IF ( unit == 'illegal' .AND. radiation ) THEN 703 CALL radiation_check_data_output( variable, unit, 0, 0, 0 ) 704 ENDIF 705 706 IF ( unit == 'illegal' .AND. salsa ) THEN 707 CALL salsa_check_data_output( variable, unit ) 708 ENDIF 709 710 IF ( unit == 'illegal' .AND. user_module_enabled ) THEN 711 unit = '' 712 CALL user_check_data_output( variable, unit ) 713 ENDIF 714 715 716 END SUBROUTINE module_interface_init_masks 713 717 714 718 … … 719 723 !> Define appropriate grid for module-specific netcdf output variables. 720 724 !------------------------------------------------------------------------------! 721 SUBROUTINE module_interface_define_netcdf_grid( var, found, & 722 grid_x, grid_y, grid_z ) 723 724 725 CHARACTER (LEN=*), INTENT(IN) :: var !< variable name 726 LOGICAL, INTENT(OUT) :: found !< indicates if variable was found 727 CHARACTER (LEN=*), INTENT(OUT) :: grid_x !< netcdf dimension in x-direction 728 CHARACTER (LEN=*), INTENT(OUT) :: grid_y !< netcdf dimension in y-direction 729 CHARACTER (LEN=*), INTENT(OUT) :: grid_z !< netcdf dimension in z-direction 730 ! 731 !--As long as no action is done in this subroutine, initialize strings with 732 !--intent(out) attribute, in order to avoid compiler warnings. 733 found = .FALSE. 734 grid_x = 'none' 735 grid_y = 'none' 736 grid_z = 'none' 737 738 END SUBROUTINE module_interface_define_netcdf_grid 725 SUBROUTINE module_interface_define_netcdf_grid( var, found, & 726 grid_x, grid_y, grid_z ) 727 728 729 CHARACTER (LEN=*), INTENT(IN) :: var !< variable name 730 LOGICAL, INTENT(OUT) :: found !< indicates if variable was found 731 CHARACTER (LEN=*), INTENT(OUT) :: grid_x !< netcdf dimension in x-direction 732 CHARACTER (LEN=*), INTENT(OUT) :: grid_y !< netcdf dimension in y-direction 733 CHARACTER (LEN=*), INTENT(OUT) :: grid_z !< netcdf dimension in z-direction 734 ! 735 !-- As long as no action is done in this subroutine, initialize strings with 736 !-- intent(out) attribute, in order to avoid compiler warnings. 737 found = .FALSE. 738 grid_x = 'none' 739 grid_y = 'none' 740 grid_z = 'none' 741 ! 742 !-- Use var to avoid compiler warning about unused variable 743 IF ( var == ' ' ) RETURN 744 745 END SUBROUTINE module_interface_define_netcdf_grid 739 746 740 747 … … 744 751 !> Allocate module-specific arrays and pointers 745 752 !------------------------------------------------------------------------------! 746 SUBROUTINE module_interface_init_arrays747 748 749 IF ( bulk_cloud_model ) CALL bcm_init_arrays750 IF ( air_chemistry ) CALL chem_init_arrays751 IF ( gust_module_enabled ) CALL gust_init_arrays752 IF ( land_surface ) CALL lsm_init_arrays753 IF ( ocean_mode ) CALL ocean_init_arrays754 IF ( salsa ) CALL salsa_init_arrays755 IF ( urban_surface ) CALL usm_init_arrays756 IF ( surface_output ) CALL surface_data_output_init_arrays757 IF ( wind_turbine ) CALL wtm_init_arrays758 IF ( user_module_enabled ) CALL user_init_arrays759 760 761 END SUBROUTINE module_interface_init_arrays753 SUBROUTINE module_interface_init_arrays 754 755 756 IF ( bulk_cloud_model ) CALL bcm_init_arrays 757 IF ( air_chemistry ) CALL chem_init_arrays 758 IF ( gust_module_enabled ) CALL gust_init_arrays 759 IF ( land_surface ) CALL lsm_init_arrays 760 IF ( ocean_mode ) CALL ocean_init_arrays 761 IF ( salsa ) CALL salsa_init_arrays 762 IF ( urban_surface ) CALL usm_init_arrays 763 IF ( surface_output ) CALL surface_data_output_init_arrays 764 IF ( wind_turbine ) CALL wtm_init_arrays 765 IF ( user_module_enabled ) CALL user_init_arrays 766 767 768 END SUBROUTINE module_interface_init_arrays 762 769 763 770 … … 767 774 !> Perform module-specific initialization 768 775 !------------------------------------------------------------------------------! 769 SUBROUTINE module_interface_init770 771 772 IF ( biometeorology ) CALL bio_init773 IF ( bulk_cloud_model ) CALL bcm_init774 IF ( air_chemistry ) CALL chem_init775 IF ( virtual_flight ) CALL flight_init776 IF ( gust_module_enabled ) CALL gust_init777 IF ( indoor_model ) CALL im_init778 IF ( large_scale_forcing ) CALL lsf_init779 IF ( land_surface ) CALL lsm_init780 IF ( nudging ) CALL nudge_init781 IF ( ocean_mode ) CALL ocean_init782 IF ( plant_canopy ) CALL pcm_init783 IF ( salsa ) CALL salsa_init784 IF ( urban_surface ) CALL usm_init785 IF ( virtual_measurement ) CALL vm_init786 IF ( wind_turbine ) CALL wtm_init787 IF ( radiation ) CALL radiation_init788 IF ( user_module_enabled ) CALL user_init789 790 791 END SUBROUTINE module_interface_init776 SUBROUTINE module_interface_init 777 778 779 IF ( biometeorology ) CALL bio_init 780 IF ( bulk_cloud_model ) CALL bcm_init 781 IF ( air_chemistry ) CALL chem_init 782 IF ( virtual_flight ) CALL flight_init 783 IF ( gust_module_enabled ) CALL gust_init 784 IF ( indoor_model ) CALL im_init 785 IF ( large_scale_forcing ) CALL lsf_init 786 IF ( land_surface ) CALL lsm_init 787 IF ( nudging ) CALL nudge_init 788 IF ( ocean_mode ) CALL ocean_init 789 IF ( plant_canopy ) CALL pcm_init 790 IF ( salsa ) CALL salsa_init 791 IF ( urban_surface ) CALL usm_init 792 IF ( virtual_measurement ) CALL vm_init 793 IF ( wind_turbine ) CALL wtm_init 794 IF ( radiation ) CALL radiation_init 795 IF ( user_module_enabled ) CALL user_init 796 797 798 END SUBROUTINE module_interface_init 792 799 793 800 … … 797 804 !> Perform module-specific post-initialization checks 798 805 !------------------------------------------------------------------------------! 799 SUBROUTINE module_interface_init_checks800 801 802 IF ( biometeorology ) CALL bio_init_checks803 804 805 END SUBROUTINE module_interface_init_checks806 SUBROUTINE module_interface_init_checks 807 808 809 IF ( biometeorology ) CALL bio_init_checks 810 811 812 END SUBROUTINE module_interface_init_checks 806 813 807 814 … … 811 818 !> Gather module-specific header output 812 819 !------------------------------------------------------------------------------! 813 SUBROUTINE module_interface_header( io )814 815 816 INTEGER(iwp), INTENT(IN) :: io !< unit of the output file817 818 819 IF ( biometeorology ) CALL bio_header ( io )820 IF ( bulk_cloud_model ) CALL bcm_header( io )821 IF ( air_chemistry ) CALL chem_header ( io )822 IF ( virtual_flight ) CALL flight_header( io )823 IF ( gust_module_enabled ) CALL gust_header( io )824 IF ( land_surface ) CALL lsm_header( io )825 IF ( large_scale_forcing ) CALL lsf_nudging_header( io )826 IF ( nesting_offline ) CALL nesting_offl_header( io )827 IF ( ocean_mode ) CALL ocean_header( io )828 IF ( plant_canopy ) CALL pcm_header( io )829 IF ( radiation ) CALL radiation_header( io )830 IF ( salsa ) CALL salsa_header( io )831 IF ( calculate_spectra ) CALL spectra_header( io )832 IF ( syn_turb_gen ) CALL stg_header( io )833 IF ( user_module_enabled ) CALL user_header( io )834 835 836 END SUBROUTINE module_interface_header820 SUBROUTINE module_interface_header( io ) 821 822 823 INTEGER(iwp), INTENT(IN) :: io !< unit of the output file 824 825 826 IF ( biometeorology ) CALL bio_header ( io ) 827 IF ( bulk_cloud_model ) CALL bcm_header( io ) 828 IF ( air_chemistry ) CALL chem_header ( io ) 829 IF ( virtual_flight ) CALL flight_header( io ) 830 IF ( gust_module_enabled ) CALL gust_header( io ) 831 IF ( land_surface ) CALL lsm_header( io ) 832 IF ( large_scale_forcing ) CALL lsf_nudging_header( io ) 833 IF ( nesting_offline ) CALL nesting_offl_header( io ) 834 IF ( ocean_mode ) CALL ocean_header( io ) 835 IF ( plant_canopy ) CALL pcm_header( io ) 836 IF ( radiation ) CALL radiation_header( io ) 837 IF ( salsa ) CALL salsa_header( io ) 838 IF ( calculate_spectra ) CALL spectra_header( io ) 839 IF ( syn_turb_gen ) CALL stg_header( io ) 840 IF ( user_module_enabled ) CALL user_header( io ) 841 842 843 END SUBROUTINE module_interface_header 837 844 838 845 … … 842 849 !> Perform module-specific actions while in time-integration (cache-optimized) 843 850 !------------------------------------------------------------------------------! 844 SUBROUTINE module_interface_actions( location )845 846 847 CHARACTER (LEN=*), INTENT(IN) :: location !< call location string848 849 850 IF ( gust_module_enabled ) CALL gust_actions( location )851 IF ( user_module_enabled ) CALL user_actions( location )852 853 854 END SUBROUTINE module_interface_actions851 SUBROUTINE module_interface_actions( location ) 852 853 854 CHARACTER (LEN=*), INTENT(IN) :: location !< call location string 855 856 857 IF ( gust_module_enabled ) CALL gust_actions( location ) 858 IF ( user_module_enabled ) CALL user_actions( location ) 859 860 861 END SUBROUTINE module_interface_actions 855 862 856 863 … … 860 867 !> Perform module-specific actions while in time-integration (vector-optimized) 861 868 !------------------------------------------------------------------------------! 862 SUBROUTINE module_interface_actions_ij( i, j, location )863 864 865 INTEGER(iwp), INTENT(IN) :: i !< grid index in x-direction866 INTEGER(iwp), INTENT(IN) :: j !< grid index in y-direction867 CHARACTER (LEN=*), INTENT(IN) :: location !< call location string868 869 870 IF ( gust_module_enabled ) CALL gust_actions( i, j, location )871 IF ( user_module_enabled ) CALL user_actions( i, j, location )872 873 874 END SUBROUTINE module_interface_actions_ij869 SUBROUTINE module_interface_actions_ij( i, j, location ) 870 871 872 INTEGER(iwp), INTENT(IN) :: i !< grid index in x-direction 873 INTEGER(iwp), INTENT(IN) :: j !< grid index in y-direction 874 CHARACTER (LEN=*), INTENT(IN) :: location !< call location string 875 876 877 IF ( gust_module_enabled ) CALL gust_actions( i, j, location ) 878 IF ( user_module_enabled ) CALL user_actions( i, j, location ) 879 880 881 END SUBROUTINE module_interface_actions_ij 875 882 876 883 … … 880 887 !> Swap the timelevel pointers for module-specific arrays 881 888 !------------------------------------------------------------------------------! 882 SUBROUTINE module_interface_swap_timelevel ( swap_mode )883 884 885 INTEGER(iwp), INTENT(IN) :: swap_mode !< determines procedure of pointer swap886 887 IF ( bulk_cloud_model ) CALL bcm_swap_timelevel( swap_mode )888 IF ( air_chemistry ) CALL chem_swap_timelevel( swap_mode )889 IF ( gust_module_enabled ) CALL gust_swap_timelevel( swap_mode )890 IF ( land_surface ) CALL lsm_swap_timelevel( swap_mode )891 IF ( ocean_mode ) CALL ocean_swap_timelevel( swap_mode )892 IF ( salsa ) CALL salsa_swap_timelevel( swap_mode )893 IF ( urban_surface ) CALL usm_swap_timelevel( swap_mode )894 895 896 END SUBROUTINE module_interface_swap_timelevel889 SUBROUTINE module_interface_swap_timelevel ( swap_mode ) 890 891 892 INTEGER(iwp), INTENT(IN) :: swap_mode !< determines procedure of pointer swap 893 894 IF ( bulk_cloud_model ) CALL bcm_swap_timelevel( swap_mode ) 895 IF ( air_chemistry ) CALL chem_swap_timelevel( swap_mode ) 896 IF ( gust_module_enabled ) CALL gust_swap_timelevel( swap_mode ) 897 IF ( land_surface ) CALL lsm_swap_timelevel( swap_mode ) 898 IF ( ocean_mode ) CALL ocean_swap_timelevel( swap_mode ) 899 IF ( salsa ) CALL salsa_swap_timelevel( swap_mode ) 900 IF ( urban_surface ) CALL usm_swap_timelevel( swap_mode ) 901 902 903 END SUBROUTINE module_interface_swap_timelevel 897 904 898 905 … … 903 910 !> Perform module-specific averaging of 3D data 904 911 !------------------------------------------------------------------------------! 905 SUBROUTINE module_interface_3d_data_averaging( mode, variable )906 907 908 CHARACTER (LEN=*), INTENT(IN) :: mode !< averaging interface mode909 CHARACTER (LEN=*), INTENT(IN) :: variable !< variable name910 911 IF ( biometeorology ) CALL bio_3d_data_averaging( mode, variable )912 IF ( bulk_cloud_model ) CALL bcm_3d_data_averaging( mode, variable )913 IF ( air_chemistry ) CALL chem_3d_data_averaging( mode, variable )914 IF ( gust_module_enabled ) CALL gust_3d_data_averaging( mode, variable )915 IF ( land_surface ) CALL lsm_3d_data_averaging( mode, variable )916 IF ( ocean_mode ) CALL ocean_3d_data_averaging( mode, variable )917 IF ( radiation ) CALL radiation_3d_data_averaging( mode, variable )918 IF ( salsa ) CALL salsa_3d_data_averaging( mode, variable )919 IF ( urban_surface ) CALL usm_3d_data_averaging( mode, variable )920 IF ( user_module_enabled ) CALL user_3d_data_averaging( mode, variable )921 922 923 END SUBROUTINE module_interface_3d_data_averaging912 SUBROUTINE module_interface_3d_data_averaging( mode, variable ) 913 914 915 CHARACTER (LEN=*), INTENT(IN) :: mode !< averaging interface mode 916 CHARACTER (LEN=*), INTENT(IN) :: variable !< variable name 917 918 IF ( biometeorology ) CALL bio_3d_data_averaging( mode, variable ) 919 IF ( bulk_cloud_model ) CALL bcm_3d_data_averaging( mode, variable ) 920 IF ( air_chemistry ) CALL chem_3d_data_averaging( mode, variable ) 921 IF ( gust_module_enabled ) CALL gust_3d_data_averaging( mode, variable ) 922 IF ( land_surface ) CALL lsm_3d_data_averaging( mode, variable ) 923 IF ( ocean_mode ) CALL ocean_3d_data_averaging( mode, variable ) 924 IF ( radiation ) CALL radiation_3d_data_averaging( mode, variable ) 925 IF ( salsa ) CALL salsa_3d_data_averaging( mode, variable ) 926 IF ( urban_surface ) CALL usm_3d_data_averaging( mode, variable ) 927 IF ( user_module_enabled ) CALL user_3d_data_averaging( mode, variable ) 928 929 930 END SUBROUTINE module_interface_3d_data_averaging 924 931 925 932 !------------------------------------------------------------------------------! … … 929 936 !> Define module-specific 2D output variables 930 937 !------------------------------------------------------------------------------! 931 SUBROUTINE module_interface_data_output_2d( av, variable, found, grid, mode,&932 local_pf, two_d, nzb_do, nzt_do,&933 fill_value )934 935 INTEGER(iwp), INTENT(IN) :: av !< flag for (non-)average output936 CHARACTER (LEN=*), INTENT(IN) :: variable !< variable name937 LOGICAL, INTENT(INOUT) :: found !< flag if output variable is found938 CHARACTER (LEN=*), INTENT(INOUT) :: grid !< name of vertical grid939 CHARACTER (LEN=*), INTENT(IN) :: mode !< either 'xy', 'xz' or 'yz'940 LOGICAL, INTENT(OUT) :: two_d !< flag for 2D variables941 INTEGER(iwp), INTENT(IN) :: nzb_do !< vertical output index (bottom) (usually 0)942 INTEGER(iwp), INTENT(IN) :: nzt_do !< vertical output index (top) (usually nz_do3d)943 REAL(wp), INTENT(IN) :: fill_value !< to be removed944 945 REAL(wp), DIMENSION(nxl:nxr,nys:nyn,nzb_do:nzt_do), INTENT(OUT) :: local_pf !< ToDo: can also be kind=sp946 947 948 IF ( .NOT. found .AND. biometeorology ) THEN949 CALL bio_data_output_2d(&950 av, variable, found, grid, local_pf, two_d, nzb_do, nzt_do&951 )952 ENDIF953 954 IF ( .NOT. found .AND. bulk_cloud_model ) THEN955 CALL bcm_data_output_2d(&956 av, variable, found, grid, mode, local_pf, two_d, nzb_do, nzt_do&957 )958 ENDIF959 960 IF ( .NOT. found .AND. air_chemistry ) THEN961 CALL chem_data_output_2d(&962 av, variable, found, grid, mode, local_pf, two_d, nzb_do, nzt_do, fill_value &963 )964 ENDIF965 966 IF ( .NOT. found .AND. gust_module_enabled ) THEN967 CALL gust_data_output_2d(&968 av, variable, found, grid, mode, local_pf, two_d, nzb_do, nzt_do, fill_value &969 )970 ENDIF971 972 IF ( .NOT. found .AND. land_surface ) THEN973 CALL lsm_data_output_2d(&974 av, variable, found, grid, mode, local_pf, two_d, nzb_do, nzt_do&975 )976 ENDIF977 978 IF ( .NOT. found .AND. ocean_mode ) THEN979 CALL ocean_data_output_2d(&980 av, variable, found, grid, mode, local_pf, nzb_do, nzt_do&981 )982 ENDIF983 984 IF ( .NOT. found .AND. radiation ) THEN985 CALL radiation_data_output_2d(&986 av, variable, found, grid, mode, local_pf, two_d, nzb_do, nzt_do&987 )988 ENDIF989 990 IF ( .NOT. found .AND. salsa ) THEN991 CALL salsa_data_output_2d(&992 av, variable, found, grid, mode, local_pf, two_d, nzb_do, nzt_do&993 )994 ENDIF995 996 IF ( .NOT. found .AND. user_module_enabled ) THEN997 CALL user_data_output_2d(&998 av, variable, found, grid, local_pf, two_d, nzb_do, nzt_do&999 )1000 ENDIF1001 1002 END SUBROUTINE module_interface_data_output_2d938 SUBROUTINE module_interface_data_output_2d( av, variable, found, grid, mode, & 939 local_pf, two_d, nzb_do, nzt_do, & 940 fill_value ) 941 942 INTEGER(iwp), INTENT(IN) :: av !< flag for (non-)average output 943 CHARACTER (LEN=*), INTENT(IN) :: variable !< variable name 944 LOGICAL, INTENT(INOUT) :: found !< flag if output variable is found 945 CHARACTER (LEN=*), INTENT(INOUT) :: grid !< name of vertical grid 946 CHARACTER (LEN=*), INTENT(IN) :: mode !< either 'xy', 'xz' or 'yz' 947 LOGICAL, INTENT(OUT) :: two_d !< flag for 2D variables 948 INTEGER(iwp), INTENT(IN) :: nzb_do !< vertical output index (bottom) (usually 0) 949 INTEGER(iwp), INTENT(IN) :: nzt_do !< vertical output index (top) (usually nz_do3d) 950 REAL(wp), INTENT(IN) :: fill_value !< to be removed 951 952 REAL(wp), DIMENSION(nxl:nxr,nys:nyn,nzb_do:nzt_do), INTENT(OUT) :: local_pf !< ToDo: can also be kind=sp 953 954 955 IF ( .NOT. found .AND. biometeorology ) THEN 956 CALL bio_data_output_2d( & 957 av, variable, found, grid, local_pf, two_d, nzb_do, nzt_do & 958 ) 959 ENDIF 960 961 IF ( .NOT. found .AND. bulk_cloud_model ) THEN 962 CALL bcm_data_output_2d( & 963 av, variable, found, grid, mode, local_pf, two_d, nzb_do, nzt_do& 964 ) 965 ENDIF 966 967 IF ( .NOT. found .AND. air_chemistry ) THEN 968 CALL chem_data_output_2d( & 969 av, variable, found, grid, mode, local_pf, two_d, nzb_do, nzt_do, fill_value & 970 ) 971 ENDIF 972 973 IF ( .NOT. found .AND. gust_module_enabled ) THEN 974 CALL gust_data_output_2d( & 975 av, variable, found, grid, mode, local_pf, two_d, nzb_do, nzt_do, fill_value & 976 ) 977 ENDIF 978 979 IF ( .NOT. found .AND. land_surface ) THEN 980 CALL lsm_data_output_2d( & 981 av, variable, found, grid, mode, local_pf, two_d, nzb_do, nzt_do& 982 ) 983 ENDIF 984 985 IF ( .NOT. found .AND. ocean_mode ) THEN 986 CALL ocean_data_output_2d( & 987 av, variable, found, grid, mode, local_pf, nzb_do, nzt_do & 988 ) 989 ENDIF 990 991 IF ( .NOT. found .AND. radiation ) THEN 992 CALL radiation_data_output_2d( & 993 av, variable, found, grid, mode, local_pf, two_d, nzb_do, nzt_do& 994 ) 995 ENDIF 996 997 IF ( .NOT. found .AND. salsa ) THEN 998 CALL salsa_data_output_2d( & 999 av, variable, found, grid, mode, local_pf, two_d, nzb_do, nzt_do& 1000 ) 1001 ENDIF 1002 1003 IF ( .NOT. found .AND. user_module_enabled ) THEN 1004 CALL user_data_output_2d( & 1005 av, variable, found, grid, local_pf, two_d, nzb_do, nzt_do & 1006 ) 1007 ENDIF 1008 1009 END SUBROUTINE module_interface_data_output_2d 1003 1010 1004 1011 … … 1009 1016 !> Define module-specific 3D output variables 1010 1017 !------------------------------------------------------------------------------! 1011 SUBROUTINE module_interface_data_output_3d( av, variable, found, local_pf,&1012 fill_value, resorted, nzb_do, nzt_do )1013 1014 1015 INTEGER(iwp), INTENT(IN) :: av !< flag for (non-)average output1016 CHARACTER (LEN=*), INTENT(IN) :: variable !< variable name1017 LOGICAL, INTENT(INOUT) :: found !< flag if output variable is found1018 REAL(wp), INTENT(IN) :: fill_value !< ToDo: refactor1019 LOGICAL, INTENT(OUT) :: resorted !< flag if output has been resorted1020 INTEGER(iwp), INTENT(IN) :: nzb_do !< vertical output index (bottom) (usually 0)1021 INTEGER(iwp), INTENT(IN) :: nzt_do !< vertical output index (top) (usually nz_do3d)1022 1023 REAL(sp), DIMENSION(nxl:nxr,nys:nyn,nzb_do:nzt_do), INTENT(OUT) :: local_pf1024 1025 1026 IF ( .NOT. found .AND. biometeorology ) THEN1027 CALL bio_data_output_3d( av, variable, found, local_pf, nzb_do, nzt_do )1028 resorted = .FALSE.1029 ENDIF1030 1031 IF ( .NOT. found .AND. bulk_cloud_model ) THEN1032 CALL bcm_data_output_3d( av, variable, found, local_pf, nzb_do, nzt_do )1033 resorted = .TRUE.1034 ENDIF1035 1036 IF ( .NOT. found .AND. air_chemistry ) THEN1037 CALL chem_data_output_3d( av, variable, found, local_pf, fill_value, nzb_do, nzt_do )1038 resorted = .TRUE.1039 ENDIF1040 1041 IF ( .NOT. found .AND. gust_module_enabled ) THEN1042 CALL gust_data_output_3d( av, variable, found, local_pf, fill_value, nzb_do, nzt_do )1043 resorted = .TRUE.1044 ENDIF1018 SUBROUTINE module_interface_data_output_3d( av, variable, found, local_pf, & 1019 fill_value, resorted, nzb_do, nzt_do ) 1020 1021 1022 INTEGER(iwp), INTENT(IN) :: av !< flag for (non-)average output 1023 CHARACTER (LEN=*), INTENT(IN) :: variable !< variable name 1024 LOGICAL, INTENT(INOUT) :: found !< flag if output variable is found 1025 REAL(wp), INTENT(IN) :: fill_value !< ToDo: refactor 1026 LOGICAL, INTENT(OUT) :: resorted !< flag if output has been resorted 1027 INTEGER(iwp), INTENT(IN) :: nzb_do !< vertical output index (bottom) (usually 0) 1028 INTEGER(iwp), INTENT(IN) :: nzt_do !< vertical output index (top) (usually nz_do3d) 1029 1030 REAL(sp), DIMENSION(nxl:nxr,nys:nyn,nzb_do:nzt_do), INTENT(OUT) :: local_pf 1031 1032 1033 IF ( .NOT. found .AND. biometeorology ) THEN 1034 CALL bio_data_output_3d( av, variable, found, local_pf, nzb_do, nzt_do ) 1035 resorted = .FALSE. 1036 ENDIF 1037 1038 IF ( .NOT. found .AND. bulk_cloud_model ) THEN 1039 CALL bcm_data_output_3d( av, variable, found, local_pf, nzb_do, nzt_do ) 1040 resorted = .TRUE. 1041 ENDIF 1042 1043 IF ( .NOT. found .AND. air_chemistry ) THEN 1044 CALL chem_data_output_3d( av, variable, found, local_pf, fill_value, nzb_do, nzt_do ) 1045 resorted = .TRUE. 1046 ENDIF 1047 1048 IF ( .NOT. found .AND. gust_module_enabled ) THEN 1049 CALL gust_data_output_3d( av, variable, found, local_pf, fill_value, nzb_do, nzt_do ) 1050 resorted = .TRUE. 1051 ENDIF 1045 1052 1046 IF ( .NOT. found .AND. indoor_model ) THEN1047 CALL im_data_output_3d( av, variable, found, local_pf, fill_value, nzb_do, nzt_do )1048 resorted = .TRUE.1049 ENDIF1050 1051 IF ( .NOT. found .AND. ocean_mode ) THEN1052 CALL ocean_data_output_3d( av, variable, found, local_pf, nzb_do, nzt_do )1053 resorted = .TRUE.1054 ENDIF1055 1056 IF ( .NOT. found .AND. plant_canopy ) THEN1057 CALL pcm_data_output_3d( av, variable, found, local_pf, fill_value, nzb_do, nzt_do )1058 resorted = .TRUE.1059 ENDIF1060 1061 IF ( .NOT. found .AND. radiation ) THEN1062 CALL radiation_data_output_3d( av, variable, found, local_pf, nzb_do, nzt_do )1063 resorted = .TRUE.1064 ENDIF1065 1066 IF ( .NOT. found .AND. salsa ) THEN1067 CALL salsa_data_output_3d( av, variable, found, local_pf, nzb_do, nzt_do )1068 resorted = .TRUE.1069 ENDIF1070 1071 IF ( .NOT. found .AND. user_module_enabled ) THEN1072 CALL user_data_output_3d( av, variable, found, local_pf, nzb_do, nzt_do )1073 resorted = .TRUE.1074 ENDIF1075 1076 1077 END SUBROUTINE module_interface_data_output_3d1053 IF ( .NOT. found .AND. indoor_model ) THEN 1054 CALL im_data_output_3d( av, variable, found, local_pf, fill_value, nzb_do, nzt_do ) 1055 resorted = .TRUE. 1056 ENDIF 1057 1058 IF ( .NOT. found .AND. ocean_mode ) THEN 1059 CALL ocean_data_output_3d( av, variable, found, local_pf, nzb_do, nzt_do ) 1060 resorted = .TRUE. 1061 ENDIF 1062 1063 IF ( .NOT. found .AND. plant_canopy ) THEN 1064 CALL pcm_data_output_3d( av, variable, found, local_pf, fill_value, nzb_do, nzt_do ) 1065 resorted = .TRUE. 1066 ENDIF 1067 1068 IF ( .NOT. found .AND. radiation ) THEN 1069 CALL radiation_data_output_3d( av, variable, found, local_pf, nzb_do, nzt_do ) 1070 resorted = .TRUE. 1071 ENDIF 1072 1073 IF ( .NOT. found .AND. salsa ) THEN 1074 CALL salsa_data_output_3d( av, variable, found, local_pf, nzb_do, nzt_do ) 1075 resorted = .TRUE. 1076 ENDIF 1077 1078 IF ( .NOT. found .AND. user_module_enabled ) THEN 1079 CALL user_data_output_3d( av, variable, found, local_pf, nzb_do, nzt_do ) 1080 resorted = .TRUE. 1081 ENDIF 1082 1083 1084 END SUBROUTINE module_interface_data_output_3d 1078 1085 1079 1086 … … 1083 1090 !> Compute module-specific profile and timeseries data 1084 1091 !------------------------------------------------------------------------------! 1085 SUBROUTINE module_interface_statistics( mode, sr, tn, dots_max )1086 1087 1088 CHARACTER (LEN=*), INTENT(IN) :: mode !< statistical analysis mode1089 INTEGER(iwp), INTENT(IN) :: sr !<1090 INTEGER(iwp), INTENT(IN) :: tn !<1091 INTEGER(iwp), INTENT(IN) :: dots_max !< maximum number of timeseries1092 1093 IF ( gust_module_enabled ) CALL gust_statistics( mode, sr, tn, dots_max )1094 IF ( air_chemistry ) CALL chem_statistics( mode, sr, tn )1095 IF ( user_module_enabled ) CALL user_statistics( mode, sr, tn )1096 1097 1098 END SUBROUTINE module_interface_statistics1092 SUBROUTINE module_interface_statistics( mode, sr, tn, dots_max ) 1093 1094 1095 CHARACTER (LEN=*), INTENT(IN) :: mode !< statistical analysis mode 1096 INTEGER(iwp), INTENT(IN) :: sr !< 1097 INTEGER(iwp), INTENT(IN) :: tn !< 1098 INTEGER(iwp), INTENT(IN) :: dots_max !< maximum number of timeseries 1099 1100 IF ( gust_module_enabled ) CALL gust_statistics( mode, sr, tn, dots_max ) 1101 IF ( air_chemistry ) CALL chem_statistics( mode, sr, tn ) 1102 IF ( user_module_enabled ) CALL user_statistics( mode, sr, tn ) 1103 1104 1105 END SUBROUTINE module_interface_statistics 1099 1106 1100 1107 … … 1104 1111 !> Read module-specific restart data globaly shared by all MPI ranks 1105 1112 !------------------------------------------------------------------------------! 1106 SUBROUTINE module_interface_rrd_global( variable, found ) 1107 1108 1109 CHARACTER (LEN=*), INTENT(IN) :: variable !< name of global variable 1110 LOGICAL, INTENT(OUT) :: found !< flag if variable was found 1111 1112 IF ( .NOT. found ) CALL bio_rrd_global( found ) ! ToDo: change interface to pass variable 1113 IF ( .NOT. found ) CALL bcm_rrd_global( found ) ! ToDo: change interface to pass variable 1114 IF ( .NOT. found ) CALL flight_rrd_global( found ) ! ToDo: change interface to pass variable 1115 IF ( .NOT. found ) CALL gust_rrd_global( found ) ! ToDo: change interface to pass variable 1116 IF ( .NOT. found ) CALL ocean_rrd_global( found ) ! ToDo: change interface to pass variable 1117 IF ( .NOT. found ) CALL stg_rrd_global ( found ) ! ToDo: change interface to pass variable 1118 IF ( .NOT. found ) CALL wtm_rrd_global( found ) ! ToDo: change interface to pass variable 1119 IF ( .NOT. found ) CALL surface_data_output_rrd_global( found ) 1120 IF ( .NOT. found ) CALL user_rrd_global( found ) ! ToDo: change interface to pass variable 1121 1122 1123 END SUBROUTINE module_interface_rrd_global 1113 SUBROUTINE module_interface_rrd_global( found ) 1114 1115 1116 LOGICAL, INTENT(OUT) :: found !< flag if variable was found 1117 1118 IF ( .NOT. found ) CALL bio_rrd_global( found ) ! ToDo: change interface to pass variable 1119 IF ( .NOT. found ) CALL bcm_rrd_global( found ) ! ToDo: change interface to pass variable 1120 IF ( .NOT. found ) CALL flight_rrd_global( found ) ! ToDo: change interface to pass variable 1121 IF ( .NOT. found ) CALL gust_rrd_global( found ) ! ToDo: change interface to pass variable 1122 IF ( .NOT. found ) CALL ocean_rrd_global( found ) ! ToDo: change interface to pass variable 1123 IF ( .NOT. found ) CALL stg_rrd_global ( found ) ! ToDo: change interface to pass variable 1124 IF ( .NOT. found ) CALL wtm_rrd_global( found ) ! ToDo: change interface to pass variable 1125 IF ( .NOT. found ) CALL surface_data_output_rrd_global( found ) 1126 IF ( .NOT. found ) CALL user_rrd_global( found ) ! ToDo: change interface to pass variable 1127 1128 1129 END SUBROUTINE module_interface_rrd_global 1124 1130 1125 1131 … … 1129 1135 !> Write module-specific restart data globaly shared by all MPI ranks 1130 1136 !------------------------------------------------------------------------------! 1131 SUBROUTINE module_interface_wrd_global1132 1133 1134 IF ( biometeorology ) CALL bio_wrd_global1135 IF ( bulk_cloud_model ) CALL bcm_wrd_global1136 IF ( virtual_flight ) CALL flight_wrd_global1137 IF ( gust_module_enabled ) CALL gust_wrd_global1138 IF ( ocean_mode ) CALL ocean_wrd_global1139 IF ( syn_turb_gen ) CALL stg_wrd_global1140 IF ( wind_turbine ) CALL wtm_wrd_global1141 IF ( surface_output ) CALL surface_data_output_wrd_global1142 IF ( user_module_enabled ) CALL user_wrd_global1143 1144 1145 END SUBROUTINE module_interface_wrd_global1137 SUBROUTINE module_interface_wrd_global 1138 1139 1140 IF ( biometeorology ) CALL bio_wrd_global 1141 IF ( bulk_cloud_model ) CALL bcm_wrd_global 1142 IF ( virtual_flight ) CALL flight_wrd_global 1143 IF ( gust_module_enabled ) CALL gust_wrd_global 1144 IF ( ocean_mode ) CALL ocean_wrd_global 1145 IF ( syn_turb_gen ) CALL stg_wrd_global 1146 IF ( wind_turbine ) CALL wtm_wrd_global 1147 IF ( surface_output ) CALL surface_data_output_wrd_global 1148 IF ( user_module_enabled ) CALL user_wrd_global 1149 1150 1151 END SUBROUTINE module_interface_wrd_global 1146 1152 1147 1153 … … 1151 1157 !> Read module-specific restart data specific to local MPI ranks 1152 1158 !------------------------------------------------------------------------------! 1153 SUBROUTINE module_interface_rrd_local( variable, file_index, map_index, & 1154 nxlf, nxlc, nxl_on_file, & 1155 nxrf, nxrc, nxr_on_file, & 1156 nynf, nync, nyn_on_file, & 1157 nysf, nysc, nys_on_file, & 1158 tmp_2d, tmp_3d, found ) 1159 1160 1161 CHARACTER (LEN=*), INTENT(IN) :: variable !< name of global variable 1162 INTEGER(iwp), INTENT(IN) :: file_index !< 1163 INTEGER(iwp), INTENT(IN) :: map_index !< 1164 INTEGER(iwp), INTENT(IN) :: nxlc !< 1165 INTEGER(iwp), INTENT(IN) :: nxlf !< 1166 INTEGER(iwp), INTENT(IN) :: nxl_on_file !< 1167 INTEGER(iwp), INTENT(IN) :: nxrc !< 1168 INTEGER(iwp), INTENT(IN) :: nxrf !< 1169 INTEGER(iwp), INTENT(IN) :: nxr_on_file !< 1170 INTEGER(iwp), INTENT(IN) :: nync !< 1171 INTEGER(iwp), INTENT(IN) :: nynf !< 1172 INTEGER(iwp), INTENT(IN) :: nyn_on_file !< 1173 INTEGER(iwp), INTENT(IN) :: nysc !< 1174 INTEGER(iwp), INTENT(IN) :: nysf !< 1175 INTEGER(iwp), INTENT(IN) :: nys_on_file !< 1176 LOGICAL, INTENT(OUT) :: found !< flag if variable was found 1177 1178 REAL(wp), DIMENSION(nys_on_file-nbgp:nyn_on_file+nbgp,nxl_on_file-nbgp:nxr_on_file+nbgp), INTENT(OUT) :: tmp_2d !< 1179 REAL(wp), DIMENSION(nzb:nzt+1,nys_on_file-nbgp:nyn_on_file+nbgp,nxl_on_file-nbgp:nxr_on_file+nbgp), INTENT(OUT) :: tmp_3d !< 1180 1181 1182 IF ( .NOT. found ) CALL bio_rrd_local( & 1183 found & 1184 ) 1185 1186 IF ( .NOT. found ) CALL bcm_rrd_local( & 1187 file_index, map_index, & 1188 nxlf, nxlc, nxl_on_file, & 1189 nxrf, nxrc, nxr_on_file, & 1190 nynf, nync, nyn_on_file, & 1191 nysf, nysc, nys_on_file, & 1192 tmp_2d, tmp_3d, found & 1193 ) ! ToDo: change interface to pass variable 1194 1195 IF ( .NOT. found ) CALL chem_rrd_local( & 1196 file_index, map_index, & 1197 nxlf, nxlc, nxl_on_file, & 1198 nxrf, nxrc, nxr_on_file, & 1199 nynf, nync, nyn_on_file, & 1200 nysf, nysc, nys_on_file, & 1201 tmp_3d, found & 1202 ) ! ToDo: change interface to pass variable 1203 1204 IF ( .NOT. found ) CALL gust_rrd_local( & 1205 file_index, map_index, & 1206 nxlf, nxlc, nxl_on_file, & 1207 nxrf, nxrc, nxr_on_file, & 1208 nynf, nync, nyn_on_file, & 1209 nysf, nysc, nys_on_file, & 1210 tmp_2d, tmp_3d, found & 1211 ) ! ToDo: change interface to pass variable 1212 1213 IF ( .NOT. found ) CALL lsm_rrd_local( & 1214 file_index, map_index, & 1215 nxlf, nxlc, nxl_on_file, & 1216 nxrf, nxrc, nxr_on_file, & 1217 nynf, nync, nyn_on_file, & 1218 nysf, nysc, nys_on_file, & 1219 tmp_2d, found & 1220 ) ! ToDo: change interface to pass variable 1221 1222 IF ( .NOT. found ) CALL ocean_rrd_local( & 1223 file_index, map_index, & 1224 nxlf, nxlc, nxl_on_file, & 1225 nxrf, nxrc, nxr_on_file, & 1226 nynf, nync, nyn_on_file, & 1227 nysf, nysc, nys_on_file, & 1228 tmp_2d, tmp_3d, found & 1229 ) ! ToDo: change interface to pass variable 1230 1231 IF ( .NOT. found ) CALL radiation_rrd_local( & 1232 file_index, map_index, & 1233 nxlf, nxlc, nxl_on_file, & 1234 nxrf, nxrc, nxr_on_file, & 1235 nynf, nync, nyn_on_file, & 1236 nysf, nysc, nys_on_file, & 1237 tmp_2d, tmp_3d, found & 1238 ) ! ToDo: change interface to pass variable 1239 1240 IF ( .NOT. found ) CALL salsa_rrd_local( & 1241 file_index, map_index, & 1242 nxlf, nxlc, nxl_on_file, & 1243 nxrf, nxrc, nxr_on_file, & 1244 nynf, nync, nyn_on_file, & 1245 nysf, nysc, nys_on_file, & 1246 tmp_3d, found & 1247 ) ! ToDo: change interface to pass variable 1248 1249 IF ( .NOT. found ) CALL usm_rrd_local( & 1250 file_index, map_index, & 1251 nxlf, nxlc, nxl_on_file, & 1252 nxrf, nxrc, nxr_on_file, & 1253 nynf, nync, nyn_on_file, & 1254 nysf, nysc, nys_on_file, & 1255 found & 1256 ) ! ToDo: change interface to pass variable 1257 ! 1258 !--Surface data do not need overlap data, so do not pass these information. 1259 IF ( .NOT. found ) CALL surface_data_output_rrd_local( found ) 1159 SUBROUTINE module_interface_rrd_local( file_index, map_index, & 1160 nxlf, nxlc, nxl_on_file, & 1161 nxrf, nxrc, nxr_on_file, & 1162 nynf, nync, nyn_on_file, & 1163 nysf, nysc, nys_on_file, & 1164 tmp_2d, tmp_3d, found ) 1165 1166 1167 INTEGER(iwp), INTENT(IN) :: file_index !< 1168 INTEGER(iwp), INTENT(IN) :: map_index !< 1169 INTEGER(iwp), INTENT(IN) :: nxlc !< 1170 INTEGER(iwp), INTENT(IN) :: nxlf !< 1171 INTEGER(iwp), INTENT(IN) :: nxl_on_file !< 1172 INTEGER(iwp), INTENT(IN) :: nxrc !< 1173 INTEGER(iwp), INTENT(IN) :: nxrf !< 1174 INTEGER(iwp), INTENT(IN) :: nxr_on_file !< 1175 INTEGER(iwp), INTENT(IN) :: nync !< 1176 INTEGER(iwp), INTENT(IN) :: nynf !< 1177 INTEGER(iwp), INTENT(IN) :: nyn_on_file !< 1178 INTEGER(iwp), INTENT(IN) :: nysc !< 1179 INTEGER(iwp), INTENT(IN) :: nysf !< 1180 INTEGER(iwp), INTENT(IN) :: nys_on_file !< 1181 LOGICAL, INTENT(OUT) :: found !< flag if variable was found 1182 1183 REAL(wp), DIMENSION(nys_on_file-nbgp:nyn_on_file+nbgp,nxl_on_file-nbgp:nxr_on_file+nbgp), INTENT(OUT) :: tmp_2d !< 1184 REAL(wp), DIMENSION(nzb:nzt+1,nys_on_file-nbgp:nyn_on_file+nbgp,nxl_on_file-nbgp:nxr_on_file+nbgp), INTENT(OUT) :: tmp_3d !< 1185 1186 1187 IF ( .NOT. found ) CALL bio_rrd_local( & 1188 found & 1189 ) 1190 1191 IF ( .NOT. found ) CALL bcm_rrd_local( & 1192 file_index, map_index, & 1193 nxlf, nxlc, nxl_on_file, & 1194 nxrf, nxrc, nxr_on_file, & 1195 nynf, nync, nyn_on_file, & 1196 nysf, nysc, nys_on_file, & 1197 tmp_2d, tmp_3d, found & 1198 ) ! ToDo: change interface to pass variable 1199 1200 IF ( .NOT. found ) CALL chem_rrd_local( & 1201 file_index, map_index, & 1202 nxlf, nxlc, nxl_on_file, & 1203 nxrf, nxrc, nxr_on_file, & 1204 nynf, nync, nyn_on_file, & 1205 nysf, nysc, nys_on_file, & 1206 tmp_3d, found & 1207 ) ! ToDo: change interface to pass variable 1208 1209 IF ( .NOT. found ) CALL gust_rrd_local( & 1210 file_index, map_index, & 1211 nxlf, nxlc, nxl_on_file, & 1212 nxrf, nxrc, nxr_on_file, & 1213 nynf, nync, nyn_on_file, & 1214 nysf, nysc, nys_on_file, & 1215 tmp_2d, tmp_3d, found & 1216 ) ! ToDo: change interface to pass variable 1217 1218 IF ( .NOT. found ) CALL lsm_rrd_local( & 1219 file_index, map_index, & 1220 nxlf, nxlc, nxl_on_file, & 1221 nxrf, nxrc, nxr_on_file, & 1222 nynf, nync, nyn_on_file, & 1223 nysf, nysc, nys_on_file, & 1224 tmp_2d, found & 1225 ) ! ToDo: change interface to pass variable 1226 1227 IF ( .NOT. found ) CALL ocean_rrd_local( & 1228 file_index, map_index, & 1229 nxlf, nxlc, nxl_on_file, & 1230 nxrf, nxrc, nxr_on_file, & 1231 nynf, nync, nyn_on_file, & 1232 nysf, nysc, nys_on_file, & 1233 tmp_2d, tmp_3d, found & 1234 ) ! ToDo: change interface to pass variable 1235 1236 IF ( .NOT. found ) CALL radiation_rrd_local( & 1237 file_index, map_index, & 1238 nxlf, nxlc, nxl_on_file, & 1239 nxrf, nxrc, nxr_on_file, & 1240 nynf, nync, nyn_on_file, & 1241 nysf, nysc, nys_on_file, & 1242 tmp_2d, tmp_3d, found & 1243 ) ! ToDo: change interface to pass variable 1244 1245 IF ( .NOT. found ) CALL salsa_rrd_local( & 1246 file_index, map_index, & 1247 nxlf, nxlc, nxl_on_file, & 1248 nxrf, nxrc, nxr_on_file, & 1249 nynf, nync, nyn_on_file, & 1250 nysf, nysc, nys_on_file, & 1251 tmp_3d, found & 1252 ) ! ToDo: change interface to pass variable 1253 1254 IF ( .NOT. found ) CALL usm_rrd_local( & 1255 file_index, map_index, & 1256 nxlf, nxlc, nxl_on_file, & 1257 nxrf, nxrc, nxr_on_file, & 1258 nynf, nync, nyn_on_file, & 1259 nysf, nysc, nys_on_file, & 1260 found & 1261 ) ! ToDo: change interface to pass variable 1262 ! 1263 !-- Surface data do not need overlap data, so do not pass these information. 1264 IF ( .NOT. found ) CALL surface_data_output_rrd_local( found ) 1260 1265 1261 IF ( .NOT. found ) CALL user_rrd_local(&1262 file_index, map_index,&1263 nxlf, nxlc, nxl_on_file,&1264 nxrf, nxrc, nxr_on_file,&1265 nynf, nync, nyn_on_file,&1266 nysf, nysc, nys_on_file,&1267 tmp_3d, found&1268 ) ! ToDo: change interface to pass variable1269 1270 1271 END SUBROUTINE module_interface_rrd_local1266 IF ( .NOT. found ) CALL user_rrd_local( & 1267 file_index, map_index, & 1268 nxlf, nxlc, nxl_on_file, & 1269 nxrf, nxrc, nxr_on_file, & 1270 nynf, nync, nyn_on_file, & 1271 nysf, nysc, nys_on_file, & 1272 tmp_3d, found & 1273 ) ! ToDo: change interface to pass variable 1274 1275 1276 END SUBROUTINE module_interface_rrd_local 1272 1277 1273 1278 … … 1277 1282 !> Write module-specific restart data specific to local MPI ranks 1278 1283 !------------------------------------------------------------------------------! 1279 SUBROUTINE module_interface_wrd_local1280 1281 1282 IF ( biometeorology ) CALL bio_wrd_local1283 IF ( bulk_cloud_model ) CALL bcm_wrd_local1284 IF ( air_chemistry ) CALL chem_wrd_local1285 IF ( gust_module_enabled ) CALL gust_wrd_local1286 IF ( land_surface ) CALL lsm_wrd_local1287 IF ( ocean_mode ) CALL ocean_wrd_local1288 IF ( radiation ) CALL radiation_wrd_local1289 IF ( salsa ) CALL salsa_wrd_local1290 IF ( urban_surface ) CALL usm_wrd_local1291 IF ( surface_output ) CALL surface_data_output_wrd_local1292 IF ( user_module_enabled ) CALL user_wrd_local1293 1294 1295 END SUBROUTINE module_interface_wrd_local1284 SUBROUTINE module_interface_wrd_local 1285 1286 1287 IF ( biometeorology ) CALL bio_wrd_local 1288 IF ( bulk_cloud_model ) CALL bcm_wrd_local 1289 IF ( air_chemistry ) CALL chem_wrd_local 1290 IF ( gust_module_enabled ) CALL gust_wrd_local 1291 IF ( land_surface ) CALL lsm_wrd_local 1292 IF ( ocean_mode ) CALL ocean_wrd_local 1293 IF ( radiation ) CALL radiation_wrd_local 1294 IF ( salsa ) CALL salsa_wrd_local 1295 IF ( urban_surface ) CALL usm_wrd_local 1296 IF ( surface_output ) CALL surface_data_output_wrd_local 1297 IF ( user_module_enabled ) CALL user_wrd_local 1298 1299 1300 END SUBROUTINE module_interface_wrd_local 1296 1301 1297 1302 … … 1301 1306 !> Perform module-specific last actions before the program terminates 1302 1307 !------------------------------------------------------------------------------! 1303 SUBROUTINE module_interface_last_actions 1304 1305 IF ( virtual_measurement ) CALL vm_last_actions 1306 IF ( user_module_enabled ) CALL user_last_actions 1307 1308 1309 END SUBROUTINE module_interface_last_actions 1310 1311 1312 END MODULE module_interface 1308 SUBROUTINE module_interface_last_actions 1309 1310 1311 IF ( virtual_measurement ) CALL vm_last_actions 1312 IF ( user_module_enabled ) CALL user_last_actions 1313 1314 1315 END SUBROUTINE module_interface_last_actions 1316 1317 1318 END MODULE module_interface -
palm/trunk/SOURCE/multi_agent_system_mod.f90
r3665 r3766 25 25 ! ----------------- 26 26 ! $Id$ 27 ! save attribute added to local targets to avoid outlive pointer target warning 28 ! 29 ! 3665 2019-01-10 08:28:24Z raasch 27 30 ! unused variables removed 28 31 ! … … 1239 1242 1240 1243 INTEGER(iwp), DIMENSION(0:numprocs-1) :: noa_arr !< number of agents on each PE 1241 1242 TYPE(agent_type), DIMENSION(:), ALLOCATABLE, TARGET :: trf_agents !< all agents on current PE 1243 TYPE(agent_type), DIMENSION(:), ALLOCATABLE, TARGET :: out_agents !< all agents in entire domain 1244 ! 1245 !-- SAVE attribute required to avoid compiler warning about pointer outlive the pointer target 1246 TYPE(agent_type), DIMENSION(:), ALLOCATABLE, TARGET, SAVE :: trf_agents !< all agents on current PE 1247 TYPE(agent_type), DIMENSION(:), ALLOCATABLE, TARGET, SAVE :: out_agents !< all agents in entire domain 1244 1248 1245 1249 LOGICAL, INTENT (INOUT) :: ftest … … 1445 1449 1446 1450 #endif 1447 NULLIFY( agents ) 1451 1448 1452 #if defined( __parallel ) 1449 1453 IF ( ALLOCATED( out_agents ) ) DEALLOCATE( out_agents ) -
palm/trunk/SOURCE/netcdf_interface_mod.f90
r3745 r3766 25 25 ! ----------------- 26 26 ! $Id$ 27 ! bugfix in im_define_netcdf_grid argument list 28 ! 29 ! 3745 2019-02-15 18:57:56Z suehring 27 30 ! Add indoor model 28 31 ! … … 1922 1925 IF ( .NOT. found .AND. indoor_model ) THEN 1923 1926 CALL im_define_netcdf_grid( do3d(av,i), found, & 1924 grid_x, grid_ x, grid_z )1927 grid_x, grid_y, grid_z ) 1925 1928 ENDIF 1926 1929 -
palm/trunk/SOURCE/read_restart_data_mod.f90
r3668 r3766 25 25 ! ----------------- 26 26 ! $Id$ 27 ! first argument removed from module_interface_rrd_* 28 ! 29 ! 3668 2019-01-14 12:49:24Z maronga 27 30 ! Removed most_method and increased binary version 28 31 ! … … 775 778 ! 776 779 !-- Read global variables from of other modules 777 CALL module_interface_rrd_global( restart_string(1:length),found )780 CALL module_interface_rrd_global( found ) 778 781 779 782 IF ( .NOT. found ) THEN … … 1797 1800 !-- Read restart data of other modules 1798 1801 IF ( .NOT. found ) CALL module_interface_rrd_local( & 1799 restart_string(1:length), i, k,&1802 i, k, & 1800 1803 nxlf, nxlc, nxl_on_file, & 1801 1804 nxrf, nxrc, nxr_on_file, & -
palm/trunk/SOURCE/surface_data_output_mod.f90
r3762 r3766 25 25 ! ----------------- 26 26 ! $Id$ 27 ! bugfix in surface_data_output_rrd_local (variable k removed) 28 ! 29 ! 3762 2019-02-25 16:54:16Z suehring 27 30 ! Remove unused variables and add preprocessor directives for variables that 28 31 ! are used only when netcdf4 is defined … … 4509 4512 IMPLICIT NONE 4510 4513 4511 INTEGER(iwp) :: k !< running index over previous input files covering current local domain4512 4513 4514 LOGICAL, INTENT(OUT) :: found 4515 4514 4516 ! 4515 4517 !-- Here the reading of user-defined restart data follows: … … 4520 4522 4521 4523 CASE ( 'surfaces%var_av' ) 4522 IF ( k == 1 )READ ( 13 ) surfaces%var_av4524 READ ( 13 ) surfaces%var_av 4523 4525 4524 4526 CASE DEFAULT -
palm/trunk/SOURCE/time_integration_spinup.f90
r3719 r3766 25 25 ! ----------------- 26 26 ! $Id$ 27 ! unused variable removed 28 ! 29 ! 3719 2019-02-06 13:10:18Z kanani 27 30 ! Removed log_point(19,54,74,50,75), since they count together with same log 28 31 ! points in time_integration, impossible to separate the contributions. … … 127 130 128 131 USE cpulog, & 129 ONLY: cpu_log, log_point , log_point_s132 ONLY: cpu_log, log_point_s 130 133 131 134 USE date_and_time_mod, & -
palm/trunk/SOURCE/user_init_land_surface.f90
r3700 r3766 25 25 ! ----------------- 26 26 ! $Id$ 27 ! unused variables commented out 28 ! 29 ! 3700 2019-01-26 17:03:42Z knoop 27 30 ! Corrected "Former revisions" section 28 31 ! … … 66 69 IMPLICIT NONE 67 70 68 INTEGER(iwp) :: i !< grid index69 INTEGER(iwp) :: j !< grid index70 INTEGER(iwp) :: m !< running index on 1D wall-type grid71 ! INTEGER(iwp) :: i !< grid index 72 ! INTEGER(iwp) :: j !< grid index 73 ! INTEGER(iwp) :: m !< running index on 1D wall-type grid 71 74 72 75 ! -
palm/trunk/SOURCE/virtual_measurement_mod.f90
r3718 r3766 25 25 ! ----------------- 26 26 ! $Id$ 27 ! unused variables removed 28 ! 29 ! 3718 2019-02-06 11:08:28Z suehring 27 30 ! Adjust variable name connections between UC2 and chemistry variables 28 31 ! … … 414 417 415 418 CHARACTER(LEN=5) :: dum !< dummy string indicate station id 416 CHARACTER(LEN=5) :: dummy_read !< dummy string indicate station id417 419 CHARACTER(LEN=10), DIMENSION(50) :: measured_variables_file = '' !< array with all measured variables read from NetCDF 418 420 CHARACTER(LEN=10), DIMENSION(50) :: measured_variables = '' !< dummy array with all measured variables that are allowed … … 443 445 INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE :: meas_flag !< mask array indicating measurement positions 444 446 445 LOGICAL :: chem_include !< flag indicating that chemical species is considered in modelled mechanism447 ! LOGICAL :: chem_include !< flag indicating that chemical species is considered in modelled mechanism 446 448 LOGICAL :: on_pe !< flag indicating that the respective measurement coordinate is on subdomain 447 449 … … 1045 1047 1046 1048 INTEGER(iwp) :: i !< running index over IO blocks 1047 INTEGER(iwp) :: l !< running index over all stations1048 INTEGER(iwp) :: n !< running index over all measured variables at a station1049 1049 1050 1050 DO i = 0, io_blocks-1
Note: See TracChangeset
for help on using the changeset viewer.