Ignore:
Timestamp:
Jul 9, 2019 6:04:41 PM (5 years ago)
Author:
suehring
Message:

Implementation of a monotonic flux limiter for vertical advection term in Wicker-Skamarock scheme. The flux limiter is currently only applied for passive scalars (passive scalar, chemical species, aerosols) within the region up to the highest topography, in order to avoid the built-up of large concentrations within poorly resolved cavities in urban environments. To enable the limiter monotonic_limiter_z = .T. must be set. Note, the limiter is currently only implemented for the cache-optimized version of advec_ws. Further changes in offline nesting: Set boundary condition for w at nzt+1 at all lateral boundaries (even though these won't enter the numerical solution), in order to avoid high vertical velocities in the run-control file which might built-up due to the mass-conservation; bugfix in offline nesting for chemical species

File:
1 edited

Legend:

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

    r4069 r4079  
    2727! -----------------
    2828! $Id$
     29! Application of monotonic flux limiter for the vertical scalar advection
     30! up to the topography top (only for the cache-optimized version at the
     31! moment).
     32!
     33! 4069 2019-07-01 14:05:51Z Giersch
    2934! Masked output running index mid has been introduced as a local variable to
    3035! avoid runtime error (Loop variable has been modified) in time_integration
     
    354359                dt_3d, humidity, initializing_actions, message_string,                             &
    355360                omega, tsc, intermediate_timestep_count, intermediate_timestep_count_max,          &
    356          max_pr_user, timestep_scheme, use_prescribed_profile_data, ws_scheme_sca, air_chemistry
     361                max_pr_user,                                                                       &
     362                monotonic_limiter_z,                                                               &
     363                timestep_scheme, use_prescribed_profile_data, ws_scheme_sca, air_chemistry
    357364
    358365    USE arrays_3d,                                                                                 &
     
    27502757             CALL advec_s_ws( i, j, chem_species(ilsp)%conc, 'kc', chem_species(ilsp)%flux_s_cs,   &
    27512758                              chem_species(ilsp)%diss_s_cs, chem_species(ilsp)%flux_l_cs,          &
    2752                               chem_species(ilsp)%diss_l_cs, i_omp_start, tn )
     2759                              chem_species(ilsp)%diss_l_cs, i_omp_start, tn, monotonic_limiter_z )
    27532760          ELSE
    27542761             CALL advec_s_pw( i, j, chem_species(ilsp)%conc )
     
    27822789               BTEST( wall_flags_0(k,j,i), 0 )                                                     &
    27832790               )
    2784 
    2785           IF ( chem_species(ilsp)%conc_p(k,j,i) < 0.0_wp )  THEN
    2786              chem_species(ilsp)%conc_p(k,j,i) = 0.1_wp * chem_species(ilsp)%conc(k,j,i)    !FKS6
    2787           ENDIF
    27882791       ENDDO
    27892792!
     
    33153318       r_aero_surf = surf_lsm_h%r_a(m)
    33163319       solar_rad   = surf_lsm_h%rad_sw_dir(m) + surf_lsm_h%rad_sw_dif(m)
     3320       
    33173321       lai = surf_lsm_h%lai(m)
    33183322       sai = lai + 1
Note: See TracChangeset for help on using the changeset viewer.