Changeset 4102 for palm/trunk/SOURCE/salsa_mod.f90
- Timestamp:
- Jul 17, 2019 4:00:03 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/salsa_mod.f90
r4079 r4102 26 26 ! ----------------- 27 27 ! $Id$ 28 ! Slightly revise setting of boundary conditions at horizontal walls, use 29 ! data-structure offset index instead of pre-calculate it for each facing 30 ! 31 ! 4079 2019-07-09 18:04:41Z suehring 28 32 ! Application of monotonic flux limiter for the vertical scalar advection 29 33 ! up to the topography top (only for the cache-optimized version at the … … 8017 8021 INTEGER(iwp) :: j !< grid index y direction 8018 8022 INTEGER(iwp) :: k !< grid index y direction 8019 INTEGER(iwp) :: kb !< variable to set respective boundary value, depends on facing.8020 8023 INTEGER(iwp) :: l !< running index boundary type, for up- and downward-facing walls 8021 8024 INTEGER(iwp) :: m !< running index surface elements … … 8030 8033 !-- belongs to the atmospheric grid point, therefore, set s_p at k-1 8031 8034 DO l = 0, 1 8032 !8033 !-- Set kb, for upward-facing surfaces value at topography top (k-1) is8034 !-- set, for downward-facing surfaces at topography bottom (k+1)8035 kb = MERGE ( -1, 1, l == 0 )8036 8035 !$OMP PARALLEL PRIVATE( ib, ic, icc, ig, i, j, k ) 8037 8036 !$OMP DO … … 8043 8042 8044 8043 DO ib = 1, nbins_aerosol 8045 aerosol_number(ib)%conc_p(k+kb,j,i) = aerosol_number(ib)%conc(k+kb,j,i) 8044 aerosol_number(ib)%conc_p(k+bc_h(l)%koff,j,i) = & 8045 aerosol_number(ib)%conc(k+bc_h(l)%koff,j,i) 8046 8046 DO ic = 1, ncomponents_mass 8047 8047 icc = ( ic - 1 ) * nbins_aerosol + ib 8048 aerosol_mass(icc)%conc_p(k+kb,j,i) = aerosol_mass(icc)%conc(k+kb,j,i) 8048 aerosol_mass(icc)%conc_p(k+bc_h(l)%koff,j,i) = & 8049 aerosol_mass(icc)%conc(k+bc_h(l)%koff,j,i) 8049 8050 ENDDO 8050 8051 ENDDO 8051 8052 IF ( .NOT. salsa_gases_from_chem ) THEN 8052 8053 DO ig = 1, ngases_salsa 8053 salsa_gas(ig)%conc_p(k+kb,j,i) = salsa_gas(ig)%conc(k+kb,j,i) 8054 salsa_gas(ig)%conc_p(k+bc_h(l)%koff,j,i) = & 8055 salsa_gas(ig)%conc(k+bc_h(l)%koff,j,i) 8054 8056 ENDDO 8055 8057 ENDIF … … 8063 8065 8064 8066 DO l = 0, 1 8065 !8066 !-- Set kb, for upward-facing surfaces value at topography top (k-1) is8067 !-- set, for downward-facing surfaces at topography bottom (k+1)8068 kb = MERGE( -1, 1, l == 0 )8069 8067 !$OMP PARALLEL PRIVATE( ib, ic, icc, ig, i, j, k ) 8070 8068 !$OMP DO … … 8076 8074 8077 8075 DO ib = 1, nbins_aerosol 8078 aerosol_number(ib)%conc_p(k+kb,j,i) = aerosol_number(ib)%conc_p(k,j,i) 8076 aerosol_number(ib)%conc_p(k+bc_h(l)%koff,j,i) = & 8077 aerosol_number(ib)%conc_p(k,j,i) 8079 8078 DO ic = 1, ncomponents_mass 8080 8079 icc = ( ic - 1 ) * nbins_aerosol + ib 8081 aerosol_mass(icc)%conc_p(k+kb,j,i) = aerosol_mass(icc)%conc_p(k,j,i) 8080 aerosol_mass(icc)%conc_p(k+bc_h(l)%koff,j,i) = & 8081 aerosol_mass(icc)%conc_p(k,j,i) 8082 8082 ENDDO 8083 8083 ENDDO 8084 8084 IF ( .NOT. salsa_gases_from_chem ) THEN 8085 8085 DO ig = 1, ngases_salsa 8086 salsa_gas(ig)%conc_p(k+kb,j,i) = salsa_gas(ig)%conc_p(k,j,i) 8086 salsa_gas(ig)%conc_p(k+bc_h(l)%koff,j,i) = & 8087 salsa_gas(ig)%conc_p(k,j,i) 8087 8088 ENDDO 8088 8089 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.