Changeset 3887
- Timestamp:
- Apr 12, 2019 8:47:41 AM (6 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/bulk_cloud_model_mod.f90
r3885 r3887 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Added bcm_exchange_horiz which is called after non_transport_physics 28 ! 29 ! 3885 2019-04-11 11:29:34Z kanani 27 30 ! Changes related to global restructuring of location messages and introduction 28 31 ! of additional debug messages … … 260 263 261 264 USE indices, & 262 ONLY: n xl, nxlg, nxr, nxrg, nys, nysg, nyn, nyng, nzb, nzt,&265 ONLY: nbgp, nxl, nxlg, nxr, nxrg, nys, nysg, nyn, nyng, nzb, nzt, & 263 266 wall_flags_0 264 267 … … 369 372 bcm_actions, & 370 373 bcm_non_transport_physics, & 374 bcm_exchange_horiz, & 371 375 bcm_prognostic_equations, & 372 376 bcm_3d_data_averaging, & … … 432 436 MODULE PROCEDURE bcm_non_transport_physics_ij 433 437 END INTERFACE bcm_non_transport_physics 438 439 INTERFACE bcm_exchange_horiz 440 MODULE PROCEDURE bcm_exchange_horiz 441 END INTERFACE bcm_exchange_horiz 434 442 435 443 INTERFACE bcm_prognostic_equations … … 1312 1320 1313 1321 END SUBROUTINE bcm_non_transport_physics_ij 1322 1323 1324 !------------------------------------------------------------------------------! 1325 ! Description: 1326 ! ------------ 1327 !> Control of microphysics for all grid points 1328 !------------------------------------------------------------------------------! 1329 SUBROUTINE bcm_exchange_horiz 1330 1331 1332 IF ( .NOT. microphysics_sat_adjust .AND. & 1333 ( intermediate_timestep_count == 1 .OR. & 1334 call_microphysics_at_all_substeps ) ) & 1335 THEN 1336 IF ( microphysics_morrison ) THEN 1337 CALL exchange_horiz( nc, nbgp ) 1338 CALL exchange_horiz( qc, nbgp ) 1339 ENDIF 1340 IF ( microphysics_seifert ) THEN 1341 CALL exchange_horiz( qr, nbgp ) 1342 CALL exchange_horiz( nr, nbgp ) 1343 ENDIF 1344 CALL exchange_horiz( q, nbgp ) 1345 CALL exchange_horiz( pt, nbgp ) 1346 ENDIF 1347 1348 1349 END SUBROUTINE bcm_exchange_horiz 1350 1314 1351 1315 1352 … … 2898 2935 CALL cpu_log( log_point_s(50), 'adjust_cloud', 'start' ) 2899 2936 2900 DO i = nxl g, nxrg2901 DO j = nys g, nyng2937 DO i = nxl, nxr 2938 DO j = nys, nyn 2902 2939 DO k = nzb+1, nzt 2903 2940 ! … … 3020 3057 CALL cpu_log( log_point_s(65), 'activation', 'start' ) 3021 3058 3022 DO i = nxl g, nxrg3023 DO j = nys g, nyng3059 DO i = nxl, nxr 3060 DO j = nys, nyn 3024 3061 DO k = nzb+1, nzt 3025 3062 ! … … 3221 3258 CALL cpu_log( log_point_s(66), 'condensation', 'start' ) 3222 3259 3223 DO i = nxl g, nxrg3224 DO j = nys g, nyng3260 DO i = nxl, nxr 3261 DO j = nys, nyn 3225 3262 DO k = nzb+1, nzt 3226 3263 ! … … 3381 3418 CALL cpu_log( log_point_s(47), 'autoconversion', 'start' ) 3382 3419 3383 DO i = nxl g, nxrg3384 DO j = nys g, nyng3420 DO i = nxl, nxr 3421 DO j = nys, nyn 3385 3422 DO k = nzb+1, nzt 3386 3423 ! … … 3615 3652 REAL(wp) :: flag !< flag to mask topography grid points 3616 3653 3617 DO i = nxl g, nxrg3618 DO j = nys g, nyng3654 DO i = nxl, nxr 3655 DO j = nys, nyn 3619 3656 ! 3620 3657 !-- Determine vertical index of topography top … … 3716 3753 CALL cpu_log( log_point_s(56), 'accretion', 'start' ) 3717 3754 3718 DO i = nxl g, nxrg3719 DO j = nys g, nyng3755 DO i = nxl, nxr 3756 DO j = nys, nyn 3720 3757 DO k = nzb+1, nzt 3721 3758 ! … … 3877 3914 CALL cpu_log( log_point_s(57), 'selfcollection', 'start' ) 3878 3915 3879 DO i = nxl g, nxrg3880 DO j = nys g, nyng3916 DO i = nxl, nxr 3917 DO j = nys, nyn 3881 3918 DO k = nzb+1, nzt 3882 3919 ! … … 3994 4031 CALL cpu_log( log_point_s(58), 'evaporation', 'start' ) 3995 4032 3996 DO i = nxl g, nxrg3997 DO j = nys g, nyng4033 DO i = nxl, nxr 4034 DO j = nys, nyn 3998 4035 DO k = nzb+1, nzt 3999 4036 ! … … 4230 4267 sed_nc(nzt+1) = 0.0_wp 4231 4268 4232 DO i = nxl g, nxrg4233 DO j = nys g, nyng4269 DO i = nxl, nxr 4270 DO j = nys, nyn 4234 4271 DO k = nzt, nzb+1, -1 4235 4272 ! … … 4430 4467 ! 4431 4468 !-- Compute velocities 4432 DO i = nxl g, nxrg4433 DO j = nys g, nyng4469 DO i = nxl, nxr 4470 DO j = nys, nyn 4434 4471 DO k = nzb+1, nzt 4435 4472 ! -
palm/trunk/SOURCE/chemistry_model_mod.f90
r3886 r3887 522 522 MODULE PROCEDURE chem_non_transport_physics_ij 523 523 END INTERFACE chem_non_transport_physics 524 525 INTERFACE chem_exchange_horiz 526 MODULE PROCEDURE chem_exchange_horiz 527 END INTERFACE chem_exchange_horiz 524 528 525 529 INTERFACE chem_prognostic_equations … … 622 626 chem_actions, chem_prognostic_equations, chem_rrd_local, & 623 627 chem_statistics, chem_swap_timelevel, chem_wrd_local, chem_depo, & 624 chem_non_transport_physics 628 chem_non_transport_physics, chem_exchange_horiz 625 629 626 630 CONTAINS … … 915 919 DO lsp = 1, nspec 916 920 917 CALL exchange_horiz( chem_species(lsp)%conc _p, nbgp )921 CALL exchange_horiz( chem_species(lsp)%conc, nbgp ) 918 922 lsp_usr = 1 919 923 DO WHILE ( TRIM( cs_name( lsp_usr ) ) /= 'novalue' ) … … 2460 2464 2461 2465 END SUBROUTINE chem_non_transport_physics_ij 2466 2467 SUBROUTINE chem_exchange_horiz 2468 2469 2470 INTEGER(iwp) :: i !< grid index in x-direction 2471 INTEGER(iwp) :: j !< grid index in y-direction 2472 2473 i = i + j 2474 ! ! 2475 ! !-- Loop over chemical species 2476 ! CALL cpu_log( log_point_s(84), 'chem.exch-horiz', 'start' ) 2477 ! DO lsp = 1, nspec 2478 ! CALL exchange_horiz( chem_species(lsp)%conc, nbgp ) 2479 ! lsp_usr = 1 2480 ! DO WHILE ( TRIM( cs_name( lsp_usr ) ) /= 'novalue' ) 2481 ! IF ( TRIM(chem_species(lsp)%name) == TRIM(cs_name(lsp_usr)) ) THEN 2482 ! 2483 ! CALL chem_boundary_conds( chem_species(lsp)%conc_p, & 2484 ! chem_species(lsp)%conc_pr_init ) 2485 ! 2486 ! ENDIF 2487 ! lsp_usr = lsp_usr +1 2488 ! ENDDO 2489 ! 2490 ! 2491 ! ENDDO 2492 ! CALL cpu_log( log_point_s(84), 'chem.exch-horiz', 'stop' ) 2493 2494 2495 END SUBROUTINE chem_exchange_horiz 2496 2462 2497 2463 2498 -
palm/trunk/SOURCE/module_interface.f90
r3885 r3887 152 152 bcm_actions, & 153 153 bcm_non_transport_physics, & 154 bcm_exchange_horiz, & 154 155 bcm_prognostic_equations, & 155 156 bcm_swap_timelevel, & … … 179 180 chem_statistics, & 180 181 chem_rrd_local, & 181 182 chem_wrd_local 182 183 183 184 USE flight_mod, & … … 392 393 module_interface_actions, & 393 394 module_interface_non_transport_physics, & 395 module_interface_exchange_horiz, & 394 396 module_interface_prognostic_equations, & 395 397 module_interface_swap_timelevel, & … … 458 460 MODULE PROCEDURE module_interface_non_transport_physics_ij 459 461 END INTERFACE module_interface_non_transport_physics 460 462 463 INTERFACE module_interface_exchange_horiz 464 MODULE PROCEDURE module_interface_exchange_horiz 465 END INTERFACE module_interface_exchange_horiz 466 461 467 INTERFACE module_interface_prognostic_equations 462 468 MODULE PROCEDURE module_interface_prognostic_equations … … 972 978 973 979 END SUBROUTINE module_interface_non_transport_physics_ij 980 981 !------------------------------------------------------------------------------! 982 ! Description: 983 ! ------------ 984 !> Exchange horiz for module-specific quantities 985 !------------------------------------------------------------------------------! 986 SUBROUTINE module_interface_exchange_horiz() 987 988 989 IF ( bulk_cloud_model ) CALL bcm_exchange_horiz() 990 991 992 END SUBROUTINE module_interface_exchange_horiz 974 993 975 994 -
palm/trunk/SOURCE/prognostic_equations.f90
r3885 r3887 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Implicit Bugfix for chemistry model, loop for non_transport_physics over 28 ! ghost points is avoided. Instead introducing module_interface_exchange_horiz. 29 ! 30 ! 3885 2019-04-11 11:29:34Z kanani 27 31 ! Changes related to global restructuring of location messages and introduction 28 32 ! of additional debug messages … … 441 445 ONLY: module_interface_actions, & 442 446 module_interface_non_transport_physics, & 447 module_interface_exchange_horiz, & 443 448 module_interface_prognostic_equations 444 449 … … 533 538 !$OMP PARALLEL PRIVATE (i,j) 534 539 !$OMP DO 535 DO i = nxl g, nxrg536 DO j = nys g, nyng540 DO i = nxl, nxr 541 DO j = nys, nyn 537 542 ! 538 543 !-- Calculate non transport physics for all other modules … … 540 545 ENDDO 541 546 ENDDO 547 ! 548 !-- Module Inferface for exchange horiz after non_transport_physics but before 549 !-- advection. Therefore, non_transport_physics must not run for ghost points. 550 CALL module_interface_exchange_horiz() 542 551 !$OMP END PARALLEL 543 552 … … 1210 1219 !-- Calculate non transport physics for all other modules 1211 1220 CALL module_interface_non_transport_physics 1212 1221 ! 1222 !-- Module Inferface for exchange horiz after non_transport_physics but before 1223 !-- advection. Therefore, non_transport_physics must not run for ghost points. 1224 CALL module_interface_exchange_horiz() 1225 1213 1226 ! 1214 1227 !-- u-velocity component
Note: See TracChangeset
for help on using the changeset viewer.