Ignore:
Timestamp:
Jun 14, 2019 2:04:35 PM (5 years ago)
Author:
raasch
Message:

bugfix: decycling of chemistry species after nesting data transfer, exchange of ghost points and boundary conditions separated for chemical species and SALSA module, nest_chemistry option removed, netcdf variable NF90_NOFILL is used as argument instead of 1 in calls to NF90_DEF_VAR_FILL

File:
1 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/pmc_interface_mod.f90

    r4026 r4029  
    2525! -----------------
    2626! $Id$
     27! nest_chemistry switch removed
     28!
     29! 4026 2019-06-12 16:50:15Z suehring
    2730! Masked topography at boundary grid points in mass conservation, in order to
    2831! avoid that mean velocities within topography are imposed
     
    465468
    466469    USE chemistry_model_mod,                                                   &
    467         ONLY:  nest_chemistry, spec_conc_2
     470        ONLY:  spec_conc_2
    468471
    469472    USE cpulog,                                                                &
     
    14291432       ENDIF
    14301433       
    1431        IF ( air_chemistry  .AND.  nest_chemistry )  THEN
     1434       IF ( air_chemistry )  THEN
    14321435          DO n = 1, nspec
    14331436             CALL pmc_set_dataarray_name( 'parent', 'chem_' // TRIM( chem_species(n)%name ),        &
     
    25462549!
    25472550!-- Chemistry, depends on number of species
    2548     IF ( air_chemistry  .AND.  nest_chemistry )  pmc_max_array = pmc_max_array + nspec
     2551    IF ( air_chemistry )  pmc_max_array = pmc_max_array + nspec
    25492552!
    25502553!-- SALSA, depens on the number aerosol size bins and chemical components +
     
    26232626    IF ( TRIM(name) == "s"    )  p_3d_sec => s_2
    26242627    IF ( TRIM(name) == "diss" )  p_3d_sec => diss_2
    2625     IF ( INDEX( TRIM(name), "chem_" ) /= 0      )  p_3d_sec => spec_conc_2(:,:,:,n)
    2626     IF ( INDEX( TRIM(name), "an_" ) /= 0 )  p_3d_sec => nconc_2(:,:,:,n)
    2627     IF ( INDEX( TRIM(name), "am_" ) /= 0 )  p_3d_sec => mconc_2(:,:,:,n)
    2628     IF ( INDEX( TRIM(name), "sg_" ) /= 0  .AND.  .NOT. salsa_gases_from_chem ) &
    2629        p_3d_sec => gconc_2(:,:,:,n)
     2628    IF ( INDEX( TRIM(name), "chem_" ) /= 0 )  p_3d_sec => spec_conc_2(:,:,:,n)
     2629    IF ( INDEX( TRIM(name), "an_" )   /= 0 )  p_3d_sec => nconc_2(:,:,:,n)
     2630    IF ( INDEX( TRIM(name), "am_" )   /= 0 )  p_3d_sec => mconc_2(:,:,:,n)
     2631    IF ( INDEX( TRIM(name), "sg_" )   /= 0  .AND.  .NOT. salsa_gases_from_chem ) &
     2632                                 p_3d_sec => gconc_2(:,:,:,n)
    26302633
    26312634    IF ( ASSOCIATED( p_3d ) )  THEN
     
    29532956       ENDIF
    29542957
    2955        IF ( air_chemistry  .AND.  nest_chemistry )  THEN
     2958       IF ( air_chemistry )  THEN
    29562959          DO  n = 1, nspec
    29572960             CALL pmci_interp_1sto_all ( chem_species(n)%conc, chem_spec_c(:,:,:,n),                &
     
    36303633             ENDIF
    36313634
    3632              IF ( air_chemistry  .AND.  nest_chemistry )  THEN
     3635             IF ( air_chemistry )  THEN
    36333636                DO  n = 1, nspec
    36343637                   CALL pmci_interp_1sto_lr( chem_species(n)%conc, chem_spec_c(:,:,:,n),            &
     
    37013704             ENDIF
    37023705
    3703              IF ( air_chemistry  .AND.  nest_chemistry )  THEN
     3706             IF ( air_chemistry )  THEN
    37043707                DO  n = 1, nspec
    37053708                   CALL pmci_interp_1sto_lr( chem_species(n)%conc, chem_spec_c(:,:,:,n),            &
     
    37723775             ENDIF
    37733776
    3774              IF ( air_chemistry  .AND.  nest_chemistry )  THEN
     3777             IF ( air_chemistry )  THEN
    37753778                DO  n = 1, nspec
    37763779                   CALL pmci_interp_1sto_sn( chem_species(n)%conc, chem_spec_c(:,:,:,n),            &
     
    38433846             ENDIF
    38443847
    3845              IF ( air_chemistry  .AND.  nest_chemistry )  THEN
     3848             IF ( air_chemistry )  THEN
    38463849                DO  n = 1, nspec
    38473850                   CALL pmci_interp_1sto_sn( chem_species(n)%conc, chem_spec_c(:,:,:,n),            &
     
    39093912       ENDIF
    39103913
    3911        IF ( air_chemistry  .AND.  nest_chemistry )  THEN
     3914       IF ( air_chemistry )  THEN
    39123915          DO  n = 1, nspec
    39133916             CALL pmci_interp_1sto_t( chem_species(n)%conc, chem_spec_c(:,:,:,n),                   &
     
    40004003      ENDIF
    40014004
    4002       IF ( air_chemistry  .AND.  nest_chemistry )  THEN
     4005      IF ( air_chemistry )  THEN
    40034006         DO  n = 1, nspec
    40044007            CALL pmci_anterp_tophat( chem_species(n)%conc, chem_spec_c(:,:,:,n),                    &
     
    50525055!
    50535056!-- Set Neumann boundary conditions for chemical species
    5054     IF ( air_chemistry  .AND.  nest_chemistry )  THEN
     5057    IF ( air_chemistry )  THEN
    50555058       IF ( ibc_cs_b == 1 )  THEN
    50565059          DO  n = 1, nspec
Note: See TracChangeset for help on using the changeset viewer.