Changeset 4273 for palm/trunk/SOURCE/pmc_interface_mod.f90
- Timestamp:
- Oct 24, 2019 1:40:54 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/pmc_interface_mod.f90
r4260 r4273 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Add a logical switch nesting_chem and rename nest_salsa to nesting_salsa 28 ! 29 ! 4260 2019-10-09 14:04:03Z hellstea 27 30 ! Rest of the possibly round-off-error sensitive grid-line matching tests 28 31 ! changed to round-off-error tolerant forms throughout the module. … … 189 192 190 193 USE chem_modules, & 191 ONLY: chem_species 194 ONLY: chem_species, nesting_chem 192 195 193 196 USE chemistry_model_mod, & … … 248 251 USE salsa_mod, & 249 252 ONLY: aerosol_mass, aerosol_number, gconc_2, mconc_2, nbins_aerosol, & 250 ncomponents_mass, nconc_2, nest _salsa, ngases_salsa, salsa_gas,&251 salsa_gas es_from_chem253 ncomponents_mass, nconc_2, nesting_salsa, ngases_salsa, & 254 salsa_gas, salsa_gases_from_chem 252 255 253 256 USE surface_mod, & … … 1166 1169 ENDIF 1167 1170 1168 IF ( air_chemistry ) THEN1171 IF ( air_chemistry .AND. nesting_chem ) THEN 1169 1172 DO n = 1, nspec 1170 1173 CALL pmc_set_dataarray_name( 'parent', 'chem_' // TRIM( chem_species(n)%name ), & … … 1173 1176 ENDIF 1174 1177 1175 IF ( salsa .AND. nest _salsa ) THEN1178 IF ( salsa .AND. nesting_salsa ) THEN 1176 1179 DO lb = 1, nbins_aerosol 1177 1180 WRITE(salsa_char,'(i0)') lb … … 2310 2313 ! 2311 2314 !-- Chemistry, depends on number of species 2312 IF ( air_chemistry ) pmc_max_array = pmc_max_array + nspec2315 IF ( air_chemistry .AND. nesting_chem ) pmc_max_array = pmc_max_array + nspec 2313 2316 ! 2314 2317 !-- SALSA, depens on the number aerosol size bins and chemical components + 2315 2318 !-- the number of default gases 2316 IF ( salsa .AND. nest _salsa ) pmc_max_array = pmc_max_array + nbins_aerosol +&2317 nbins_aerosol * ncomponents_mass2319 IF ( salsa .AND. nesting_salsa ) pmc_max_array = pmc_max_array + nbins_aerosol + & 2320 nbins_aerosol * ncomponents_mass 2318 2321 IF ( .NOT. salsa_gases_from_chem ) pmc_max_array = pmc_max_array + ngases_salsa 2319 2322 … … 2717 2720 ENDIF 2718 2721 2719 IF ( air_chemistry ) THEN2722 IF ( air_chemistry .AND. nesting_chem ) THEN 2720 2723 DO n = 1, nspec 2721 2724 CALL pmci_interp_1sto_all ( chem_species(n)%conc, chem_spec_c(:,:,:,n), & … … 2724 2727 ENDIF 2725 2728 2726 IF ( salsa .AND. nest _salsa ) THEN2729 IF ( salsa .AND. nesting_salsa ) THEN 2727 2730 DO lb = 1, nbins_aerosol 2728 2731 CALL pmci_interp_1sto_all ( aerosol_number(lb)%conc, aerosol_number_c(:,:,:,lb), & … … 3394 3397 ENDIF 3395 3398 3396 IF ( air_chemistry ) THEN3399 IF ( air_chemistry .AND. nesting_chem ) THEN 3397 3400 DO n = 1, nspec 3398 3401 CALL pmci_interp_1sto_lr( chem_species(n)%conc, chem_spec_c(:,:,:,n), & … … 3401 3404 ENDIF 3402 3405 3403 IF ( salsa .AND. nest _salsa ) THEN3406 IF ( salsa .AND. nesting_salsa ) THEN 3404 3407 DO lb = 1, nbins_aerosol 3405 3408 CALL pmci_interp_1sto_lr( aerosol_number(lb)%conc, aerosol_number_c(:,:,:,lb), & … … 3465 3468 ENDIF 3466 3469 3467 IF ( air_chemistry ) THEN3470 IF ( air_chemistry .AND. nesting_chem ) THEN 3468 3471 DO n = 1, nspec 3469 3472 CALL pmci_interp_1sto_lr( chem_species(n)%conc, chem_spec_c(:,:,:,n), & … … 3472 3475 ENDIF 3473 3476 3474 IF ( salsa .AND. nest _salsa ) THEN3477 IF ( salsa .AND. nesting_salsa ) THEN 3475 3478 DO lb = 1, nbins_aerosol 3476 3479 CALL pmci_interp_1sto_lr( aerosol_number(lb)%conc, aerosol_number_c(:,:,:,lb), & … … 3536 3539 ENDIF 3537 3540 3538 IF ( air_chemistry ) THEN3541 IF ( air_chemistry .AND. nesting_chem ) THEN 3539 3542 DO n = 1, nspec 3540 3543 CALL pmci_interp_1sto_sn( chem_species(n)%conc, chem_spec_c(:,:,:,n), & … … 3543 3546 ENDIF 3544 3547 3545 IF ( salsa .AND. nest _salsa ) THEN3548 IF ( salsa .AND. nesting_salsa ) THEN 3546 3549 DO lb = 1, nbins_aerosol 3547 3550 CALL pmci_interp_1sto_sn( aerosol_number(lb)%conc, aerosol_number_c(:,:,:,lb), & … … 3607 3610 ENDIF 3608 3611 3609 IF ( air_chemistry ) THEN3612 IF ( air_chemistry .AND. nesting_chem ) THEN 3610 3613 DO n = 1, nspec 3611 3614 CALL pmci_interp_1sto_sn( chem_species(n)%conc, chem_spec_c(:,:,:,n), & … … 3614 3617 ENDIF 3615 3618 3616 IF ( salsa .AND. nest _salsa ) THEN3619 IF ( salsa .AND. nesting_salsa ) THEN 3617 3620 DO lb = 1, nbins_aerosol 3618 3621 CALL pmci_interp_1sto_sn( aerosol_number(lb)%conc, aerosol_number_c(:,:,:,lb), & … … 3673 3676 ENDIF 3674 3677 3675 IF ( air_chemistry ) THEN3678 IF ( air_chemistry .AND. nesting_chem ) THEN 3676 3679 DO n = 1, nspec 3677 3680 CALL pmci_interp_1sto_t( chem_species(n)%conc, chem_spec_c(:,:,:,n), & … … 3680 3683 ENDIF 3681 3684 3682 IF ( salsa .AND. nest _salsa ) THEN3685 IF ( salsa .AND. nesting_salsa ) THEN 3683 3686 DO lb = 1, nbins_aerosol 3684 3687 CALL pmci_interp_1sto_t( aerosol_number(lb)%conc, aerosol_number_c(:,:,:,lb), & … … 3764 3767 ENDIF 3765 3768 3766 IF ( air_chemistry ) THEN3769 IF ( air_chemistry .AND. nesting_chem ) THEN 3767 3770 DO n = 1, nspec 3768 3771 CALL pmci_anterp_tophat( chem_species(n)%conc, chem_spec_c(:,:,:,n), & … … 3770 3773 ENDDO 3771 3774 ENDIF 3772 3773 IF ( salsa .AND. nest _salsa ) THEN3775 3776 IF ( salsa .AND. nesting_salsa ) THEN 3774 3777 DO lb = 1, nbins_aerosol 3775 3778 CALL pmci_anterp_tophat( aerosol_number(lb)%conc, aerosol_number_c(:,:,:,lb), & … … 4816 4819 ! 4817 4820 !-- Set Neumann boundary conditions for chemical species 4818 IF ( air_chemistry ) THEN4821 IF ( air_chemistry .AND. nesting_chem ) THEN 4819 4822 IF ( ibc_cs_b == 1 ) THEN 4820 4823 DO n = 1, nspec … … 4836 4839 ! 4837 4840 !-- Set Neumann boundary conditions for aerosols and salsa gases 4838 IF ( salsa .AND. nest _salsa ) THEN4841 IF ( salsa .AND. nesting_salsa ) THEN 4839 4842 IF ( ibc_salsa_b == 1 ) THEN 4840 4843 DO m = 1, bc_h(0)%ns
Note: See TracChangeset
for help on using the changeset viewer.