Changeset 4508 for palm/trunk/SOURCE/time_integration.f90
- Timestamp:
- Apr 24, 2020 1:32:20 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/time_integration.f90
r4502 r4508 25 25 ! ----------------- 26 26 ! $Id$ 27 ! salsa decycling replaced by explicit setting of lateral boundary conditions 28 ! 29 ! 4502 2020-04-17 16:14:16Z schwenkel 27 30 ! Implementation of ice microphysics 28 31 ! … … 213 216 214 217 USE arrays_3d, & 215 ONLY: diss, diss_p, dzu, e_p, nc_p, nr_p, prho, pt, pt_p, pt_init, q, qc_p, qr_p, q_init, & 216 q_p, ref_state, rho_ocean, sa_p, s_p, tend, u, u_p, v, vpt, v_p, w_p, & 217 qi_p, ni_p 218 ONLY: diss, diss_p, dzu, e_p, nc_p, ni_p, nr_p, prho, pt, pt_p, pt_init, q, qc_p, qr_p, & 219 q_init, q_p, qi_p, ref_state, rho_ocean, sa_p, s_p, tend, u, u_p, v, vpt, v_p, w_p 218 220 219 221 #if defined( __parallel ) && ! defined( _OPENACC ) 220 222 USE arrays_3d, & 221 ONLY: e, nc, n r, qc, qr, s, w, qi, ni223 ONLY: e, nc, ni, nr, qc, qi, qr, s, w 222 224 #endif 223 225 … … 228 230 USE bulk_cloud_model_mod, & 229 231 ONLY: bulk_cloud_model, calc_liquid_water_content, collision_turbulence, & 230 microphysics_ morrison, microphysics_seifert, microphysics_ice_extension232 microphysics_ice_extension, microphysics_morrison, microphysics_seifert 231 233 232 234 USE calc_mean_profile_mod, & … … 274 276 time_dopr_listing, time_dopts, time_dosp, time_dosp_av, time_dots, time_do_av, & 275 277 time_do_sla, time_disturb, time_run_control, time_since_reference_point, & 276 t urbulent_inflow, turbulent_outflow, urban_surface,&278 timestep_count, turbulent_inflow, turbulent_outflow, urban_surface, & 277 279 use_initial_profile_as_reference, use_single_reference_value, u_gtrans, v_gtrans, & 278 virtual_flight, virtual_measurement, ws_scheme_mom, ws_scheme_sca , timestep_count280 virtual_flight, virtual_measurement, ws_scheme_mom, ws_scheme_sca 279 281 280 282 #if defined( __parallel ) … … 365 367 USE salsa_mod, & 366 368 ONLY: aerosol_number, aerosol_mass, bc_am_t_val, bc_an_t_val, bc_gt_t_val, & 367 nbins_aerosol, ncomponents_mass, ngases_salsa, salsa_boundary_conds, & 368 salsa_emission_update, salsa_gas, salsa_gases_from_chem, skip_time_do_salsa 369 communicator_salsa, nbins_aerosol, ncomponents_mass, ngases_salsa, & 370 salsa_boundary_conditions, salsa_emission_update, salsa_gas, salsa_gases_from_chem, & 371 skip_time_do_salsa 369 372 370 373 USE spectra_mod, & … … 434 437 flux_s_w, & 435 438 heatflux_output_conversion, & 436 kh, km, momentumflux_output_conversion, nc, n r, p, ptdf_x, ptdf_y, qc, qr, rdf, &439 kh, km, momentumflux_output_conversion, nc, ni, nr, p, ptdf_x, ptdf_y, qc, qi, qr, rdf, & 437 440 rdf_sc, rho_air, rho_air_zw, s, tdiss_m, te_m, tpt_m, tu_m, tv_m, tw_m, ug, u_init, & 438 u_stokes_zu, vg, v_init, v_stokes_zu, w, zu , qi, ni441 u_stokes_zu, vg, v_init, v_stokes_zu, w, zu 439 442 440 443 USE control_parameters, & … … 448 451 sums_wsus_ws_l, sums_vs2_ws_l, sums_wsvs_ws_l, sums_ws2_ws_l, sums_wspts_ws_l, & 449 452 sums_wsqs_ws_l, sums_wssas_ws_l, sums_wsqcs_ws_l, sums_wsqrs_ws_l, sums_wsncs_ws_l, & 450 sums_wsnrs_ws_l, sums_wsss_ws_l, weight_substep, sums_salsa_ws_l, 451 sums_ws qis_ws_l, sums_wsnis_ws_l453 sums_wsnrs_ws_l, sums_wsss_ws_l, weight_substep, sums_salsa_ws_l, sums_wsqis_ws_l, & 454 sums_wsnis_ws_l 452 455 453 456 USE surface_mod, & … … 703 706 CALL module_interface_actions( 'before_timestep' ) 704 707 708 ! 705 709 !-- Start of intermediate step loop 706 710 intermediate_timestep_count = 0 … … 770 774 CALL prognostic_equations_vector 771 775 ENDIF 776 772 777 ! 773 778 !-- Movement of agents in multi agent system … … 826 831 IF ( salsa .AND. time_since_reference_point >= skip_time_do_salsa ) THEN 827 832 DO ib = 1, nbins_aerosol 828 CALL exchange_horiz( aerosol_number(ib)%conc_p, nbgp ) 833 CALL exchange_horiz( aerosol_number(ib)%conc_p, nbgp, & 834 alternative_communicator = communicator_salsa ) 829 835 DO ic = 1, ncomponents_mass 830 836 icc = ( ic - 1 ) * nbins_aerosol + ib 831 CALL exchange_horiz( aerosol_mass(icc)%conc_p, nbgp ) 837 CALL exchange_horiz( aerosol_mass(icc)%conc_p, nbgp, & 838 alternative_communicator = communicator_salsa ) 832 839 ENDDO 833 840 ENDDO 834 841 IF ( .NOT. salsa_gases_from_chem ) THEN 835 842 DO ig = 1, ngases_salsa 836 CALL exchange_horiz( salsa_gas(ig)%conc_p, nbgp ) 843 CALL exchange_horiz( salsa_gas(ig)%conc_p, nbgp, & 844 alternative_communicator = communicator_salsa ) 837 845 ENDDO 838 846 ENDIF 839 847 ENDIF 848 840 849 CALL cpu_log( log_point(26), 'exchange-horiz-progn', 'stop' ) 841 850 … … 845 854 !-- boundary conditions for module-specific variables 846 855 CALL module_interface_boundary_conditions 856 847 857 ! 848 858 !-- Incrementing timestep counter … … 906 916 ENDIF 907 917 IF ( bulk_cloud_model .AND. microphysics_ice_extension ) THEN 908 909 918 CALL exchange_horiz( qi, nbgp ) 919 CALL exchange_horiz( ni, nbgp ) 910 920 ENDIF 921 911 922 ENDIF 912 923 … … 927 938 IF ( salsa .AND. time_since_reference_point >= skip_time_do_salsa ) THEN 928 939 DO ib = 1, nbins_aerosol 929 CALL exchange_horiz( aerosol_number(ib)%conc, nbgp ) 940 CALL exchange_horiz( aerosol_number(ib)%conc, nbgp, & 941 alternative_communicator = communicator_salsa ) 930 942 DO ic = 1, ncomponents_mass 931 943 icc = ( ic - 1 ) * nbins_aerosol + ib 932 CALL exchange_horiz( aerosol_mass(icc)%conc, nbgp ) 944 CALL exchange_horiz( aerosol_mass(icc)%conc, nbgp, & 945 alternative_communicator = communicator_salsa ) 933 946 ENDDO 934 947 ENDDO 935 948 IF ( .NOT. salsa_gases_from_chem ) THEN 936 949 DO ig = 1, ngases_salsa 937 CALL exchange_horiz( salsa_gas(ig)%conc, nbgp ) 950 CALL exchange_horiz( salsa_gas(ig)%conc, nbgp, & 951 alternative_communicator = communicator_salsa ) 938 952 ENDDO 939 953 ENDIF … … 960 974 ENDDO 961 975 ENDDO 962 ENDIF963 964 !965 !-- Set SALSA boundary conditions (decycling)966 IF ( salsa .AND. time_since_reference_point >= skip_time_do_salsa ) THEN967 DO ib = 1, nbins_aerosol968 CALL salsa_boundary_conds( aerosol_number(ib)%conc, aerosol_number(ib)%init )969 DO ic = 1, ncomponents_mass970 icc = ( ic - 1 ) * nbins_aerosol + ib971 CALL salsa_boundary_conds( aerosol_mass(icc)%conc, aerosol_mass(icc)%init )972 ENDDO973 ENDDO974 IF ( .NOT. salsa_gases_from_chem ) THEN975 DO ig = 1, ngases_salsa976 CALL salsa_boundary_conds( salsa_gas(ig)%conc, salsa_gas(ig)%init )977 ENDDO978 ENDIF979 976 ENDIF 980 977
Note: See TracChangeset
for help on using the changeset viewer.