- Timestamp:
- Apr 8, 2019 7:35:54 PM (6 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/chemistry_model_mod.f90
r3877 r3878 314 314 ONLY: photolysis_control 315 315 316 USE cpulog, & 317 ONLY: cpu_log, log_point_s 318 316 319 USE statistics 317 320 … … 486 489 END INTERFACE chem_actions 487 490 491 INTERFACE chem_non_transport_physics 492 MODULE PROCEDURE chem_non_transport_physics 493 MODULE PROCEDURE chem_non_transport_physics_ij 494 END INTERFACE chem_non_transport_physics 495 488 496 INTERFACE chem_prognostic_equations 489 497 MODULE PROCEDURE chem_prognostic_equations … … 583 591 chem_init_profiles, chem_integrate, chem_parin, & 584 592 chem_actions, chem_prognostic_equations, chem_rrd_local, & 585 chem_statistics, chem_swap_timelevel, chem_wrd_local, chem_depo 593 chem_statistics, chem_swap_timelevel, chem_wrd_local, chem_depo, & 594 chem_non_transport_physics 586 595 587 596 CONTAINS … … 2349 2358 2350 2359 END SUBROUTINE chem_actions_ij 2360 2361 2362 !------------------------------------------------------------------------------! 2363 ! Description: 2364 ! ------------ 2365 !> Call for all grid points 2366 !------------------------------------------------------------------------------! 2367 SUBROUTINE chem_non_transport_physics() 2368 2369 2370 INTEGER(iwp) :: i !< 2371 INTEGER(iwp) :: j !< 2372 2373 ! 2374 !-- Calculation of chemical reactions and deposition. 2375 IF ( chem_gasphase_on ) THEN 2376 2377 IF ( intermediate_timestep_count == 1 .OR. call_chem_at_all_substeps ) THEN 2378 2379 CALL cpu_log( log_point_s(19), 'chem.reactions', 'start' ) 2380 !$OMP PARALLEL PRIVATE (i,j) 2381 !$OMP DO schedule(static,1) 2382 DO i = nxl, nxr 2383 DO j = nys, nyn 2384 CALL chem_integrate( i, j ) 2385 ENDDO 2386 ENDDO 2387 !$OMP END PARALLEL 2388 CALL cpu_log( log_point_s(19), 'chem.reactions', 'stop' ) 2389 2390 IF ( deposition_dry ) THEN 2391 CALL cpu_log( log_point_s(24), 'chem.deposition', 'start' ) 2392 DO i = nxl, nxr 2393 DO j = nys, nyn 2394 CALL chem_depo( i, j ) 2395 ENDDO 2396 ENDDO 2397 CALL cpu_log( log_point_s(24), 'chem.deposition', 'stop' ) 2398 ENDIF 2399 2400 ENDIF 2401 2402 ENDIF 2403 2404 END SUBROUTINE chem_non_transport_physics 2405 2406 2407 !------------------------------------------------------------------------------! 2408 ! Description: 2409 ! ------------ 2410 !> Call for grid points i,j 2411 !------------------------------------------------------------------------------! 2412 2413 SUBROUTINE chem_non_transport_physics_ij( i, j ) 2414 2415 2416 INTEGER(iwp), INTENT(IN) :: i !< grid index in x-direction 2417 INTEGER(iwp), INTENT(IN) :: j !< grid index in y-direction 2418 2419 ! 2420 !-- Calculation of chemical reactions and deposition. 2421 IF ( chem_gasphase_on ) THEN 2422 2423 IF ( intermediate_timestep_count == 1 .OR. call_chem_at_all_substeps ) THEN 2424 2425 CALL cpu_log( log_point_s(19), 'chem.reactions', 'start' ) 2426 CALL chem_integrate( i, j ) 2427 CALL cpu_log( log_point_s(19), 'chem.reactions', 'stop' ) 2428 2429 IF ( deposition_dry ) THEN 2430 CALL cpu_log( log_point_s(24), 'chem.deposition', 'start' ) 2431 CALL chem_depo( i, j ) 2432 CALL cpu_log( log_point_s(24), 'chem.deposition', 'stop' ) 2433 ENDIF 2434 2435 ENDIF 2436 2437 ENDIF 2438 2439 END SUBROUTINE chem_non_transport_physics_ij 2351 2440 2352 2441 -
palm/trunk/SOURCE/module_interface.f90
r3877 r3878 167 167 chem_header, & 168 168 chem_actions, & 169 chem_non_transport_physics, & 169 170 chem_swap_timelevel, & 170 171 chem_3d_data_averaging, & … … 935 936 936 937 IF ( bulk_cloud_model ) CALL bcm_non_transport_physics() 938 IF ( air_chemistry ) CALL chem_non_transport_physics() 937 939 938 940 … … 952 954 953 955 956 IF ( air_chemistry ) CALL chem_non_transport_physics( i, j ) 954 957 IF ( bulk_cloud_model ) CALL bcm_non_transport_physics( i, j ) 955 958 -
palm/trunk/SOURCE/prognostic_equations.f90
r3877 r3878 395 395 396 396 USE chemistry_model_mod, & 397 ONLY: chem_boundary_conds, chem_depo, chem_integrate, & 398 chem_prognostic_equations 397 ONLY: chem_boundary_conds, chem_prognostic_equations 399 398 400 399 USE control_parameters, & … … 528 527 CALL cpu_log( log_point(32), 'all progn.equations', 'start' ) 529 528 530 ! 531 !-- Calculation of chemical reactions. This is done outside of main loop, 532 !-- since exchange of ghost points is required after this update of the 533 !-- concentrations of chemical species 529 !$OMP PARALLEL PRIVATE (i,j) 530 !$OMP DO 531 DO i = nxlg, nxrg 532 DO j = nysg, nyng 533 ! 534 !-- Calculate non transport physics for all other modules 535 CALL module_interface_non_transport_physics( i, j ) 536 ENDDO 537 ENDDO 538 !$OMP END PARALLEL 539 534 540 IF ( air_chemistry ) THEN 535 !536 !-- Chemical reactions and deposition537 IF ( chem_gasphase_on ) THEN538 539 IF ( intermediate_timestep_count == 1 .OR. &540 call_chem_at_all_substeps ) THEN541 542 CALL cpu_log( log_point_s(19), 'chem.reactions', 'start' )543 !$OMP PARALLEL PRIVATE (i,j)544 !$OMP DO schedule(static,1)545 DO i = nxl, nxr546 DO j = nys, nyn547 CALL chem_integrate (i,j)548 ENDDO549 ENDDO550 !$OMP END PARALLEL551 CALL cpu_log( log_point_s(19), 'chem.reactions', 'stop' )552 553 IF ( deposition_dry ) THEN554 CALL cpu_log( log_point_s(24), 'chem.deposition', 'start' )555 DO i = nxl, nxr556 DO j = nys, nyn557 CALL chem_depo(i,j)558 ENDDO559 ENDDO560 CALL cpu_log( log_point_s(24), 'chem.deposition', 'stop' )561 ENDIF562 ENDIF563 ENDIF564 541 ! 565 542 !-- Loop over chemical species … … 639 616 640 617 ENDIF 641 642 !$OMP PARALLEL PRIVATE (i,j)643 !$OMP DO644 DO i = nxlg, nxrg645 DO j = nysg, nyng646 !647 !-- Calculate non transport physics for all other modules648 CALL module_interface_non_transport_physics( i, j )649 ENDDO650 ENDDO651 !$OMP END PARALLEL652 618 653 619 !
Note: See TracChangeset
for help on using the changeset viewer.