Changeset 3956 for palm/trunk/SOURCE/prognostic_equations.f90
- Timestamp:
- May 7, 2019 12:32:52 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/prognostic_equations.f90
r3931 r3956 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Removed salsa calls. 28 ! 29 ! 3931 2019-04-24 16:34:28Z schwenkel 27 30 ! Correct/complete module_interface introduction for chemistry model 28 31 ! … … 464 467 #endif 465 468 466 USE salsa_mod, &467 ONLY: aerosol_mass, aerosol_number, dt_salsa, last_salsa_time, &468 nbins_aerosol, ncomponents_mass, ngases_salsa, &469 salsa_boundary_conds, salsa_diagnostics, salsa_driver, &470 salsa_gas, salsa_gases_from_chem, skip_time_do_salsa471 472 469 USE statistics, & 473 470 ONLY: hom … … 518 515 INTEGER(iwp) :: i !< 519 516 INTEGER(iwp) :: i_omp_start !< 520 INTEGER(iwp) :: ib !< index for aerosol size bins (salsa)521 INTEGER(iwp) :: ic !< index for chemical compounds (salsa)522 INTEGER(iwp) :: icc !< additional index for chemical compounds (salsa)523 INTEGER(iwp) :: ig !< index for gaseous compounds (salsa)524 517 INTEGER(iwp) :: j !< 525 518 INTEGER(iwp) :: k !< … … 550 543 ! 551 544 !-- Module Inferface for exchange horiz after non_advective_processes but before 552 !-- advection. Therefore, non_advective_processes must not run for ghost points. 545 !-- advection. Therefore, non_advective_processes must not run for ghost points. 546 !$OMP END PARALLEL 553 547 CALL module_interface_exchange_horiz() 554 !$OMP END PARALLEL555 556 !557 !-- Run SALSA and aerosol dynamic processes. SALSA is run with a longer time558 !-- step. The exchange of ghost points is required after this update of the559 !-- concentrations of aerosol number and mass560 IF ( salsa ) THEN561 562 IF ( time_since_reference_point >= skip_time_do_salsa ) THEN563 IF ( ( time_since_reference_point - last_salsa_time ) >= dt_salsa ) &564 THEN565 CALL cpu_log( log_point_s(90), 'salsa processes ', 'start' )566 !$OMP PARALLEL PRIVATE (i,j)567 !568 !-- Call salsa processes569 !$OMP DO570 DO i = nxl, nxr571 DO j = nys, nyn572 CALL salsa_diagnostics( i, j )573 CALL salsa_driver( i, j, 3 )574 CALL salsa_diagnostics( i, j )575 ENDDO576 ENDDO577 !$OMP END PARALLEL578 579 CALL cpu_log( log_point_s(90), 'salsa processes ', 'stop' )580 581 CALL cpu_log( log_point_s(91), 'salsa exch-horiz ', 'start' )582 !583 !-- Exchange ghost points and decycle if needed.584 DO ib = 1, nbins_aerosol585 CALL exchange_horiz( aerosol_number(ib)%conc, nbgp )586 CALL salsa_boundary_conds( aerosol_number(ib)%conc, &587 aerosol_number(ib)%init )588 DO ic = 1, ncomponents_mass589 icc = ( ic - 1 ) * nbins_aerosol + ib590 CALL exchange_horiz( aerosol_mass(icc)%conc, nbgp )591 CALL salsa_boundary_conds( aerosol_mass(icc)%conc, &592 aerosol_mass(icc)%init )593 ENDDO594 ENDDO595 596 IF ( .NOT. salsa_gases_from_chem ) THEN597 DO ig = 1, ngases_salsa598 CALL exchange_horiz( salsa_gas(ig)%conc, nbgp )599 CALL salsa_boundary_conds( salsa_gas(ig)%conc, &600 salsa_gas(ig)%init )601 ENDDO602 ENDIF603 CALL cpu_log( log_point_s(91), 'salsa exch-horiz ', 'stop' )604 last_salsa_time = time_since_reference_point605 606 ENDIF607 608 ENDIF609 610 ENDIF611 612 548 ! 613 549 !-- Loop over all prognostic equations … … 1153 1089 1154 1090 INTEGER(iwp) :: i !< 1155 INTEGER(iwp) :: ib !< index for aerosol size bins (salsa)1156 INTEGER(iwp) :: ic !< index for chemical compounds (salsa)1157 INTEGER(iwp) :: icc !< additional index for chemical compounds (salsa)1158 INTEGER(iwp) :: ig !< index for gaseous compounds (salsa)1159 1091 INTEGER(iwp) :: j !< 1160 1092 INTEGER(iwp) :: k !< … … 1168 1100 ENDIF 1169 1101 ! 1170 !-- Run SALSA and aerosol dynamic processes. SALSA is run with a longer time1171 !-- step. The exchange of ghost points is required after this update of the1172 !-- concentrations of aerosol number and mass1173 IF ( salsa ) THEN1174 IF ( time_since_reference_point >= skip_time_do_salsa ) THEN1175 IF ( ( time_since_reference_point - last_salsa_time ) >= dt_salsa ) &1176 THEN1177 CALL cpu_log( log_point_s(90), 'salsa processes ', 'start' )1178 !$OMP PARALLEL PRIVATE (i,j)1179 !$OMP DO1180 !1181 !-- Call salsa processes1182 DO i = nxl, nxr1183 DO j = nys, nyn1184 CALL salsa_diagnostics( i, j )1185 CALL salsa_driver( i, j, 3 )1186 CALL salsa_diagnostics( i, j )1187 ENDDO1188 ENDDO1189 !$OMP END PARALLEL1190 1191 CALL cpu_log( log_point_s(90), 'salsa processes ', 'stop' )1192 CALL cpu_log( log_point_s(91), 'salsa exch-horiz ', 'start' )1193 !1194 !-- Exchange ghost points and decycle if needed.1195 DO ib = 1, nbins_aerosol1196 CALL exchange_horiz( aerosol_number(ib)%conc, nbgp )1197 CALL salsa_boundary_conds( aerosol_number(ib)%conc, &1198 aerosol_number(ib)%init )1199 DO ic = 1, ncomponents_mass1200 icc = ( ic - 1 ) * nbins_aerosol + ib1201 CALL exchange_horiz( aerosol_mass(icc)%conc, nbgp )1202 CALL salsa_boundary_conds( aerosol_mass(icc)%conc, &1203 aerosol_mass(icc)%init )1204 ENDDO1205 ENDDO1206 IF ( .NOT. salsa_gases_from_chem ) THEN1207 DO ig = 1, ngases_salsa1208 CALL exchange_horiz( salsa_gas(ig)%conc, nbgp )1209 CALL salsa_boundary_conds( salsa_gas(ig)%conc, &1210 salsa_gas(ig)%init )1211 ENDDO1212 ENDIF1213 CALL cpu_log( log_point_s(91), 'salsa exch-horiz ', 'stop' )1214 last_salsa_time = time_since_reference_point1215 ENDIF1216 ENDIF1217 ENDIF1218 1219 !1220 1102 !-- Calculate non advective processes for all other modules 1221 1103 CALL module_interface_non_advective_processes 1222 1104 ! 1223 1105 !-- Module Inferface for exchange horiz after non_advective_processes but before 1224 !-- advection. Therefore, non_advective_processes must not run for ghost points. 1106 !-- advection. Therefore, non_advective_processes must not run for ghost points. 1225 1107 CALL module_interface_exchange_horiz() 1226 1227 1108 ! 1228 1109 !-- u-velocity component
Note: See TracChangeset
for help on using the changeset viewer.