Changeset 3820 for palm/trunk/SOURCE


Ignore:
Timestamp:
Mar 27, 2019 11:53:41 AM (3 years ago)
Author:
forkel
Message:

renaming of get_mechanismname, do_emiss and do_depo, sorting in chem_modules

Location:
palm/trunk/SOURCE
Files:
5 edited

Legend:

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

    r3799 r3820  
    8282  PUBLIC :: chem_gasphase_integrate
    8383  PUBLIC :: initialize_kpp_ctrl
    84   PUBLIC :: get_mechanismname
     84  PUBLIC :: get_mechanism_name
    8585
    8686! END OF MODULE HEADER TEMPLATE
     
    114114!
    115115! File                 : chem_gasphase_mod_Parameters.f90
    116 ! Time                 : Fri Mar 15 16:28:29 2019
    117 ! Working directory    : /home/forkel-r/palmstuff/work/trunk20190315/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm
     116! Time                 : Wed Mar 27 09:51:40 2019
     117! Working directory    : /home/forkel-r/palmstuff/work/trunk20190327/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm
    118118! Equation file        : chem_gasphase_mod.kpp
    119119! Output root filename : chem_gasphase_mod
     
    191191!
    192192! File                 : chem_gasphase_mod_Global.f90
    193 ! Time                 : Fri Mar 15 16:28:29 2019
    194 ! Working directory    : /home/forkel-r/palmstuff/work/trunk20190315/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm
     193! Time                 : Wed Mar 27 09:51:40 2019
     194! Working directory    : /home/forkel-r/palmstuff/work/trunk20190327/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm
    195195! Equation file        : chem_gasphase_mod.kpp
    196196! Output root filename : chem_gasphase_mod
     
    256256!
    257257! File                 : chem_gasphase_mod_JacobianSP.f90
    258 ! Time                 : Fri Mar 15 16:28:29 2019
    259 ! Working directory    : /home/forkel-r/palmstuff/work/trunk20190315/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm
     258! Time                 : Wed Mar 27 09:51:40 2019
     259! Working directory    : /home/forkel-r/palmstuff/work/trunk20190327/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm
    260260! Equation file        : chem_gasphase_mod.kpp
    261261! Output root filename : chem_gasphase_mod
     
    300300!
    301301! File                 : chem_gasphase_mod_Monitor.f90
    302 ! Time                 : Fri Mar 15 16:28:29 2019
    303 ! Working directory    : /home/forkel-r/palmstuff/work/trunk20190315/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm
     302! Time                 : Wed Mar 27 09:51:40 2019
     303! Working directory    : /home/forkel-r/palmstuff/work/trunk20190327/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm
    304304! Equation file        : chem_gasphase_mod.kpp
    305305! Output root filename : chem_gasphase_mod
     
    362362!
    363363! File                 : chem_gasphase_mod_Initialize.f90
    364 ! Time                 : Fri Mar 15 16:28:29 2019
    365 ! Working directory    : /home/forkel-r/palmstuff/work/trunk20190315/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm
     364! Time                 : Wed Mar 27 09:51:40 2019
     365! Working directory    : /home/forkel-r/palmstuff/work/trunk20190327/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm
    366366! Equation file        : chem_gasphase_mod.kpp
    367367! Output root filename : chem_gasphase_mod
     
    388388!
    389389! File                 : chem_gasphase_mod_Integrator.f90
    390 ! Time                 : Fri Mar 15 16:28:29 2019
    391 ! Working directory    : /home/forkel-r/palmstuff/work/trunk20190315/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm
     390! Time                 : Wed Mar 27 09:51:40 2019
     391! Working directory    : /home/forkel-r/palmstuff/work/trunk20190327/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm
    392392! Equation file        : chem_gasphase_mod.kpp
    393393! Output root filename : chem_gasphase_mod
     
    446446!
    447447! File                 : chem_gasphase_mod_LinearAlgebra.f90
    448 ! Time                 : Fri Mar 15 16:28:29 2019
    449 ! Working directory    : /home/forkel-r/palmstuff/work/trunk20190315/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm
     448! Time                 : Wed Mar 27 09:51:40 2019
     449! Working directory    : /home/forkel-r/palmstuff/work/trunk20190327/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm
    450450! Equation file        : chem_gasphase_mod.kpp
    451451! Output root filename : chem_gasphase_mod
     
    473473!
    474474! File                 : chem_gasphase_mod_Jacobian.f90
    475 ! Time                 : Fri Mar 15 16:28:29 2019
    476 ! Working directory    : /home/forkel-r/palmstuff/work/trunk20190315/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm
     475! Time                 : Wed Mar 27 09:51:40 2019
     476! Working directory    : /home/forkel-r/palmstuff/work/trunk20190327/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm
    477477! Equation file        : chem_gasphase_mod.kpp
    478478! Output root filename : chem_gasphase_mod
     
    500500!
    501501! File                 : chem_gasphase_mod_Function.f90
    502 ! Time                 : Fri Mar 15 16:28:29 2019
    503 ! Working directory    : /home/forkel-r/palmstuff/work/trunk20190315/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm
     502! Time                 : Wed Mar 27 09:51:40 2019
     503! Working directory    : /home/forkel-r/palmstuff/work/trunk20190327/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm
    504504! Equation file        : chem_gasphase_mod.kpp
    505505! Output root filename : chem_gasphase_mod
     
    529529!
    530530! File                 : chem_gasphase_mod_Rates.f90
    531 ! Time                 : Fri Mar 15 16:28:29 2019
    532 ! Working directory    : /home/forkel-r/palmstuff/work/trunk20190315/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm
     531! Time                 : Wed Mar 27 09:51:40 2019
     532! Working directory    : /home/forkel-r/palmstuff/work/trunk20190327/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm
    533533! Equation file        : chem_gasphase_mod.kpp
    534534! Output root filename : chem_gasphase_mod
     
    555555!
    556556! File                 : chem_gasphase_mod_Util.f90
    557 ! Time                 : Fri Mar 15 16:28:29 2019
    558 ! Working directory    : /home/forkel-r/palmstuff/work/trunk20190315/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm
     557! Time                 : Wed Mar 27 09:51:40 2019
     558! Working directory    : /home/forkel-r/palmstuff/work/trunk20190327/UTIL/chemistry/gasphase_preproc/tmp_kpp4palm
    559559! Equation file        : chem_gasphase_mod.kpp
    560560! Output root filename : chem_gasphase_mod
     
    662662  END INTERFACE        kppdecomp
    663663 
    664   INTERFACE            get_mechanismname
    665     MODULE PROCEDURE   get_mechanismname
    666   END INTERFACE        get_mechanismname
     664  INTERFACE            get_mechanism_name
     665    MODULE PROCEDURE   get_mechanism_name
     666  END INTERFACE        get_mechanism_name
    667667 
    668668  INTERFACE            chem_gasphase_integrate
     
    690690
    691691! Following line is just to avoid compiler message about unused variables
    692 IF ( lu_crow(1) == 1  .OR.  lu_icol(1) == 1  .OR.  lu_irow(1) == 1 )  CONTINUE
     692   IF ( lu_crow(1) == 1  .OR.  lu_icol(1) == 1  .OR.  lu_irow(1) == 1 )  CONTINUE
    693693
    694694
     
    778778
    779779! Following line is just to avoid compiler message about unused variables
    780 IF ( f(nfix) > 0.0_dp )  CONTINUE
     780   IF ( f(nfix) > 0.0_dp )  CONTINUE
    781781
    782782! Computation of equation rates
     
    825825!
    826826! Following line is just to avoid compiler message about unused variables
    827 IF ( f(nfix) > 0.0_dp )  CONTINUE
     827   IF ( f(nfix) > 0.0_dp )  CONTINUE
    828828
    829829! B(1) = dA(1)/dV(3)
     
    972972
    973973! Following line is just to avoid compiler message about unused variables
    974 IF ( incx == 0 )  CONTINUE
     974   IF ( incx == 0 )  CONTINUE
    975975
    976976      IF (alpha .eq. one)RETURN
     
    10381038
    10391039! Following line is just to avoid compiler message about unused variables
    1040 IF ( incx == 0  .OR.  incy == 0 )  CONTINUE
     1040   IF ( incx == 0  .OR.  incy == 0 )  CONTINUE
    10411041      IF (alpha .eq. zero)RETURN
    10421042      IF (n .le. 0)RETURN
     
    17731773
    17741774! Following line is just to avoid compiler message about unused variables
    1775 IF ( pivot(1) == 0 )  CONTINUE
     1775   IF ( pivot(1) == 0 )  CONTINUE
    17761776
    17771777#ifdef full_algebra   
     
    22912291  END SUBROUTINE kppdecomp                                           
    22922292 
    2293 SUBROUTINE get_mechanismname                                        
     2293SUBROUTINE get_mechanism_name                                       
    22942294                                                                   
    22952295  IMPLICIT NONE                                                     
     
    22992299                                                                   
    23002300  RETURN                                                           
    2301 END SUBROUTINE get_mechanismname                                    
     2301END SUBROUTINE get_mechanism_name                                   
    23022302                                                                   
    23032303 
  • palm/trunk/SOURCE/chem_modules.f90

    r3780 r3820  
    2727! -----------------
    2828! $Id$
     29! renamed do_emis to emissions_anthropogenic, removed USE statistics, variables sorted by type
     30!
     31!
     32! 3780 2019-03-05 11:19:45Z forkel
    2933! added cs_mech
    30 !
    3134!
    3235! 3652 2019-01-07 15:29:59Z forkel
    3336! parameter chem_mechanism added (basit)
    34 !
    3537!
    3638! 3636 2018-12-19 13:48:34Z raasch
     
    6062! @author Sabine Banzhaf
    6163! @author Emmanuele Russo
     64! @author Edward C. Chan
    6265!
    6366!------------------------------------------------------------------------------!
     
    7780    USE kinds
    7881
    79     USE statistics,                                                            &
    80         ONLY: pr_palm
    81 
    82 
    8382    IMPLICIT NONE
    8483
     
    8887    PUBLIC spc_names
    8988
    90     INTEGER(iwp), DIMENSION(99) :: cs_pr_index            = 0
    91     INTEGER(iwp) ::  ibc_cs_b                                                      !< integer flag for bc_cs_b
    92     INTEGER(iwp) ::  ibc_cs_t                                                      !< integer flag for bc_cs_t
    93     INTEGER(iwp) ::  cs_pr_count                           = 0
    94     INTEGER(iwp) ::  max_pr_cs                             = 0
    95     INTEGER(iwp) ::  cs_vertical_gradient_level_ind(99,10) = -9999                 !< grid index values of cs_vertical_gradient_level_ind(s)
     89    CHARACTER (LEN=20)                ::  bc_cs_b             = 'dirichlet'         !< namelist parameter
     90    CHARACTER (LEN=20)                ::  bc_cs_t             = 'initial_gradient'  !< namelist parameter
     91    CHARACTER (LEN=30)                ::  chem_mechanism      = 'phstatp'           !< KPP chmical mechanism
     92    CHARACTER (LEN=11), DIMENSION(99) ::  cs_name             = 'novalue'           !< Namelist parameter: chem spcs names
     93    CHARACTER (LEN=11), DIMENSION(99) ::  cs_profile_name     = 'novalue'           !< Namelist parameter: Names of the chem for profiles
     94    CHARACTER (LEN=11), DIMENSION(99) ::  data_output_pr_cs   = 'novalue'           !< Namelist parameter: Names of the chem species for profile output
     95                                                                                    !< by cs_name for each height lvls defined by cs_heights
     96    CHARACTER (LEN=80)                ::  daytype_mdh         ='workday'            !< Type of day in the MDH case: workday, weekend, holiday
     97    CHARACTER (LEN=80)                ::  mode_emis           ='PARAMETERIZED'      !< Mode of chemistry emissions: DEFAULT .OR. EXPERT .OR.
     98                                                                                    !< PARAMETERIZED
     99    CHARACTER (LEN=11), DIMENSION(99) ::  surface_csflux_name = 'novalue'           !< Namelist parameter: chem species names with surface fluxes specified
     100                                                                                    !< active chem spcs, default is 'novalue')  ????
     101    CHARACTER (LEN=80)                ::  time_fac_type       ='MDH'                !< Type of time treatment in the emis DEFAULT mode: HOUR .OR. MDH
    96102
    97     LOGICAL      ::  constant_top_csflux(99)               = .TRUE.                !< chem spcs at the top  orig .TRUE.
    98     LOGICAL      ::  constant_csflux(99)                   = .TRUE.                !< chem spcs at namelist parameter   orig TRUE
    99     LOGICAL      ::  call_chem_at_all_substeps             = .FALSE.               !< namelist parameter
    100     LOGICAL      ::  chem_debug0                           = .FALSE.               !< namelist parameter flag for minimum print output
    101     LOGICAL      ::  chem_debug1                           = .FALSE.               !< namelist parameter flag for print output
    102     LOGICAL      ::  chem_debug2                           = .FALSE.               !< namelist parameter flag for further print output
    103     LOGICAL      ::  chem_gasphase_on                      = .TRUE.                !< namelist parameter
    104     LOGICAL      ::  emission_output_required              = .TRUE.                !< Logical Variable for requiring Emission Outputs
    105     LOGICAL      ::  do_emis                               = .FALSE.               !< Flag for turning on chemistry emissions
    106     LOGICAL      ::  cs_pr_namelist_found                  = .FALSE.               !< Namelist parameter: Names of t
    107     LOGICAL      ::  do_depo                               = .FALSE.               !< namelist parameter for activation of deposition calculation
     103    INTEGER(iwp), DIMENSION(99)            ::  cs_pr_index                           = 0      !< index for chemical species profile (ecc)
     104    INTEGER(iwp)                           ::  cs_pr_count                           = 0      !< namelist parameter : No. of species profiles (ecc)
     105    INTEGER(iwp)                           ::  cs_vertical_gradient_level_ind(99,10) = -9999  !< grid index values of cs_vertical_gradient_level_ind(s)
     106    INTEGER(iwp)                           ::  ibc_cs_b                                       !< integer flag for bc_cs_b
     107    INTEGER(iwp)                           ::  ibc_cs_t                                       !< integer flag for bc_cs_t
     108    INTEGER(iwp),ALLOCATABLE,DIMENSION(:)  ::  match_spec_input                               !< Index of Input chem species for matching routine
     109    INTEGER(iwp),ALLOCATABLE,DIMENSION(:)  ::  match_spec_model                               !< Index of Model chem species for matching routine
     110    INTEGER(iwp),DIMENSION(:)              ::  match_spec_nox(1:2)                            !< results of matching the input and model's NOx
     111    INTEGER(iwp),DIMENSION(:)              ::  match_spec_pm(1:3)                             !< results of matching the input and model's PMs
     112    INTEGER(iwp),DIMENSION(:)              ::  match_spec_sox(1:2)                            !< results of matching the input and model's SOx!
     113    INTEGER(iwp),ALLOCATABLE,DIMENSION(:)  ::  match_spec_voc_input                           !< index of VOC input components matching the model's VOCs
     114    INTEGER(iwp),ALLOCATABLE,DIMENSION(:)  ::  match_spec_voc_model                           !< index of VOC model species matching the input VOCs comp.
     115    INTEGER(iwp)                           ::  main_street_id                        = 0      !< namelist parameter for chem_emissions : ID for main streets 
     116    INTEGER(iwp)                           ::  max_pr_cs                             = 0      !< namelist parameter : Max no. of species profiles (ecc)
     117    INTEGER(iwp)                           ::  max_street_id                         = 0      !< namelist parameter for chem_emissions : maximum street IDs     
     118    INTEGER(iwp)                           ::  nspec_out                                      !< Output of routine chem_emis_matching with
     119    INTEGER(iwp)                           ::  side_street_id                        = 0      !< namelist paramtger for chem_emissions : ID for side streets
    108120
    109 
     121    LOGICAL      ::  constant_top_csflux(99)               = .TRUE.   !< chem spcs at the top  orig .TRUE.
     122    LOGICAL      ::  constant_csflux(99)                   = .TRUE.   !< chem spcs at namelist parameter   orig TRUE
     123    LOGICAL      ::  call_chem_at_all_substeps             = .FALSE.  !< namelist parameter
     124    LOGICAL      ::  chem_debug0                           = .FALSE.  !< namelist parameter flag for minimum print output
     125    LOGICAL      ::  chem_debug1                           = .FALSE.  !< namelist parameter flag for print output
     126    LOGICAL      ::  chem_debug2                           = .FALSE.  !< namelist parameter flag for further print output
     127    LOGICAL      ::  chem_gasphase_on                      = .TRUE.   !< namelist parameter
     128    LOGICAL      ::  emission_output_required              = .TRUE.   !< Logical Variable for requiring Emission Outputs
     129    LOGICAL      ::  cs_pr_namelist_found                  = .FALSE.  !< Namelist parameter: Names of t
     130    LOGICAL      ::  deposition_dry                        = .FALSE.  !< namelist parameter for activation of deposition calculation
     131    LOGICAL      ::  emissions_anthropogenic               = .FALSE.  !< Flag for turning on anthropogenic emissions
    110132!
    111133!-- Namelist parameters for creating initial chemistry profiles
    112     REAL(wp) ::  wall_csflux (99,0:5)               = 0.0_wp                        !< namelist parameter
    113     REAL(wp) ::  cs_vertical_gradient (99,10)       = 0.0_wp                        !< namelist parameter
    114     REAL(wp) ::  cs_vertical_gradient_level (99,10) = -999999.9_wp                  !< namelist parameter
    115     REAL(wp) ::  top_csflux ( 99 )                  = 0.0_wp                        !< namelist parameter
    116     REAL(wp) ::  cs_surface_initial_change(99)      = 0.0_wp                        !< namelist parameter
    117     REAL(wp) ::  surface_csflux(99 )                = 0.0_wp                        !< namelist parameter: fluxes where 'surface_csflux_name' is in the namelist
     134    REAL(wp)                                          ::  cs_surface_initial_change(99)     = 0.0_wp        !< namelist parameter : initial surface flux difference
     135    REAL(wp)                                          ::  cs_vertical_gradient(99,10)       = 0.0_wp        !< namelist parameter : vertical gradient
     136    REAL(wp)                                          ::  cs_vertical_gradient_level(99,10) = -999999.9_wp  !< namelist parameter : vertical gradient level
     137    REAL(wp)                                          ::  surface_csflux(99)                = 0.0_wp        !< namelist parameter : fluxes where 'surface_csflux_name' is
     138                                                                                                            !< in the namelist
     139    REAL(wp)                                          ::  top_csflux(99)                    = 0.0_wp        !< namelist parameter : chemical species flux at ceiling
     140    REAL(wp)                                          ::  wall_csflux(99,0:5)               = 0.0_wp        !< namelist parameter : chemical species flux lateral
     141    REAL(wp), DIMENSION(:), ALLOCATABLE               ::  bc_cs_t_val                                       !< chemical specices time value at BC
     142    REAL(wp), DIMENSION(:,:,:), POINTER               ::  cs                                                !< pointer: sgs chem spcs)
     143    REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE, TARGET ::  cs_1                                              !< pointer for swapping of timelevels for respective quantity
     144    REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE, TARGET ::  cs_2                                              !< pointer for swapping of timelevels for respective quantity
     145    REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE, TARGET ::  cs_3                                              !< pointer for swapping of timelevels for respective quantity
     146    REAL(wp), DIMENSION(:,:,:), POINTER               ::  cs_p                                              !< pointer: prognostic value of sgs chem spcs
     147    REAL(wp), DIMENSION(:), ALLOCATABLE               ::  css                                               !< scaling parameter for chem spcs
     148    REAL(wp), DIMENSION(99,100)                       ::  cs_profile                        = 9999999.9_wp  !< Namelist parameter: Chem conc for each spcs defined
     149    REAL(wp), DIMENSION(99,100)                       ::  cs_heights                        = 9999999.9_wp  !< Namelist parameter: Height lvls(m) for cs_profiles
     150    REAL(wp), DIMENSION(99)                           ::  cs_surface                        = 0.0_wp        !< Namelist parameter: Surface conc of chem spcs'
     151    REAL(wp),ALLOCATABLE, DIMENSION(:,:,:,:)          ::  emis_distribution                                 !< Emissions Final Values (main module output)
     152    REAL(wp)                                          ::  emiss_factor_main(99)             = -9999.0_wp    !< emission factor for main streets
     153    REAL(wp)                                          ::  emiss_factor_side(99)             = -9999.0_wp    !< emission factor for side streets
     154    REAL(wp), DIMENSION(:,:,:), POINTER               ::  tcs_m                                             !< pointer: to tcs array (temp)
     155!
     156!-- molecular weights
     157    REAL, PARAMETER        ::  xm_air   =   28.964e-3             !< air      molecular weight (kg/mol)
     158    REAL, PARAMETER        ::  xm_C     =   12.01115e-3           !< C        molecular weight (kg/mol)
     159    REAL, PARAMETER        ::  xm_Ca    =   40.07800e-3           !< Ca       molecular weight (kg/mol)
     160    REAL, PARAMETER        ::  xm_Cd    =  112.41000e-3           !< Cd       molecular weight (kg/mol)
     161    REAL, PARAMETER        ::  xm_Cl    =   35.45300e-3           !< Cl       molecular weight (kg/mol)
     162    REAL, PARAMETER        ::  xm_dummy = 1000.0e-3               !< dummy    molecular weight (kg/mol)
     163    REAL, PARAMETER        ::  xm_F     =   18.99840e-3           !< F        molecular weight (kg/mol)
     164    REAL, PARAMETER        ::  xm_H     =    1.00790e-3           !< H        molecular weight (kg/mol)
     165    REAL, PARAMETER        ::  xm_K     =   39.09800e-3           !< K        molecular weight (kg/mol)
     166    REAL, PARAMETER        ::  xm_Mg    =   24.30500e-3           !< Mg       molecular weight (kg/mol)
     167    REAL, PARAMETER        ::  xm_N     =   14.00670e-3           !< N        molecular weight (kg/mol)
     168    REAL, PARAMETER        ::  xm_Na    =   22.98977e-3           !< Na       molecular weight (kg/mol)
     169    REAL, PARAMETER        ::  xm_O     =   15.99940e-3           !< O        molecular weight (kg/mol)
     170    REAL, PARAMETER        ::  xm_Pb    =  207.20000e-3           !< Pb       molecular weight (kg/mol)
     171    REAL, PARAMETER        ::  xm_Pb210 =  210.00000e-3           !< Pb (210) molecular weight (kg/mol)
     172    REAL, PARAMETER        ::  xm_Rn222 =  222.00000e-3           !< Rn (222) molecular weight (kg/mol)
     173    REAL, PARAMETER        ::  xm_S     =   32.06400e-3           !< S        molecular weight (kg/mol)
     174    REAL, PARAMETER        ::  xm_CO2   = xm_C + xm_O * 2         !< CO2      molecular weight (kg/mol)
     175    REAL, PARAMETER        ::  xm_h2o   = xm_H * 2 + xm_O         !< H2O      molecular weight (kg/mol)
     176    REAL, PARAMETER        ::  xm_HNO3  = xm_H + xm_N + xm_O * 3  !< HNO3     molecular weight (kg/mol)
     177    REAL, PARAMETER        ::  xm_o3    = xm_O * 3                !< O3       molecular weight (kg/mol)
     178    REAL, PARAMETER        ::  xm_N2O5  = xm_N * 2 + xm_O * 5     !< N2O5     molecular weight (kg/mol)
     179    REAL, PARAMETER        ::  xm_NH4   = xm_N + xm_H * 4         !< NH4      molecular weight (kg/mol)
     180    REAL, PARAMETER        ::  xm_NO3   = xm_N + xm_O * 3         !< NO3      molecular weight (kg/mol)
     181    REAL, PARAMETER        ::  xm_SO4   = xm_S + xm_O * 4         !< SO4      molecular weight (kg/mol)
    118182
    119     REAL(wp), DIMENSION(:), ALLOCATABLE               ::  bc_cs_t_val
    120     REAL(wp), DIMENSION(:), ALLOCATABLE               ::  css                       !< scaling parameter for chem spcs
    121     REAL(wp), DIMENSION(99)                           ::  cs_surface = 0.0_wp       !< Namelist parameter: Surface conc of chem spcs'
    122     REAL(wp), DIMENSION(99,100)                       ::  cs_heights = 9999999.9_wp !< Namelist parameter: Height lvls(m) for cs_profiles
    123     REAL(wp), DIMENSION(99,100)                       ::  cs_profile = 9999999.9_wp !< Namelist parameter: Chem conc for each spcs defined
     183    SAVE
    124184
    125 !
    126 !-- Use pointers cs, cs_p and tcs_m to point arrays cs_1, cs_2, and cs_3
    127     REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE, TARGET ::  cs_1                      !< pointer for swapping of timelevels for respective quantity
    128     REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE, TARGET ::  cs_2                      !< pointer for swapping of timelevels for respective quantity
    129     REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE, TARGET ::  cs_3                      !< pointer for swapping of timelevels for respective quantity
    130     REAL(wp), DIMENSION(:,:,:), POINTER               ::  cs                        !< pointer: sgs chem spcs)
    131     REAL(wp), DIMENSION(:,:,:), POINTER               ::  cs_p                      !< pointer: prognostic value of sgs chem spcs
    132     REAL(wp), DIMENSION(:,:,:), POINTER               ::  tcs_m                     !< pointer:
    133  
    134     CHARACTER (LEN=20)                ::  bc_cs_b             = 'dirichlet'         !< namelist parameter
    135     CHARACTER (LEN=20)                ::  bc_cs_t             = 'initial_gradient'  !< namelist parameter
    136     CHARACTER (LEN=11), DIMENSION(99) ::  cs_name             = 'novalue'           !< Namelist parameter: chem spcs names
    137     CHARACTER (LEN=11), DIMENSION(99) ::  cs_profile_name     = 'novalue'           !< Namelist parameter: Names of the chem for profiles
    138     CHARACTER (LEN=11), DIMENSION(99) ::  surface_csflux_name = 'novalue'           !< Namelist parameter: chem species surface fluxes names
    139                                                                                     !< active chem spcs, default is 'novalue')  ????
    140     CHARACTER (LEN=80)                ::  mode_emis           ='PARAMETERIZED'      !< Mode of chemistry emissions: DEFAULT .OR. EXPERT .OR.
    141                                                                                     !< PARAMETERIZED
    142     CHARACTER (LEN=80)                ::  time_fac_type       ='MDH'                !< Type of time treatment in the emis DEFAULT mode: HOUR .OR. MDH
    143     CHARACTER (LEN=80)                ::  daytype_mdh         ='workday'            !< Type of day in the MDH case: workday, weekend, holiday
    144     CHARACTER (LEN=11), DIMENSION(99) ::  data_output_pr_cs   = 'novalue'           !< Namelist parameter: Names of the chem species for profile output
    145                                                                                     !< by cs_name for each height lvls defined by cs_heights
    146     CHARACTER (LEN=30)                ::  chem_mechanism      = 'phstatp'           !< Namelist parameter: Name of chemistry mechanism
    147                                                                                     !< (must match with third line in chem_gasphase_mod.f90)
    148 !
    149 !-- Namelist parameters for chem_emissions
    150     INTEGER(iwp) ::  main_street_id = 0
    151     INTEGER(iwp) ::  max_street_id  = 0
    152     INTEGER(iwp) ::  side_street_id = 0
    153 !
    154 !-- Constant emission factors
    155     REAL(wp) ::  emiss_factor_main ( 99 ) = -9999.0_wp
    156     REAL(wp) ::  emiss_factor_side ( 99 ) = -9999.0_wp
    157 !   
    158 !-- Other Emissions Variables
    159     INTEGER(iwp) ::  nspec_out                                                     !< Output of routine chem_emis_matching with
    160                                                                                    !< number of matched species
    161     REAL(wp),ALLOCATABLE, DIMENSION(:,:,:,:) ::  emis_distribution                 !> Emissions Final Values (main module output)
    162 
    163     INTEGER(iwp),ALLOCATABLE,DIMENSION(:)    ::  match_spec_input                  !< Index of Input chem species for matching routine
    164     INTEGER(iwp),ALLOCATABLE,DIMENSION(:)    ::  match_spec_model                  !< Index of Model chem species for matching routine
    165     INTEGER(iwp),ALLOCATABLE,DIMENSION(:)    ::  match_spec_voc_input              !< index of VOC input components matching the model's VOCs
    166     INTEGER(iwp),ALLOCATABLE,DIMENSION(:)    ::  match_spec_voc_model              !< index of VOC model species matching the input VOCs comp.
    167     INTEGER(iwp),DIMENSION(:)                ::  match_spec_pm(1:3)                !< results of matching the input and model's PMs
    168     INTEGER(iwp),DIMENSION(:)                ::  match_spec_nox(1:2)               !< results of matching the input and model's NOx
    169     INTEGER(iwp),DIMENSION(:)                ::  match_spec_sox(1:2)               !< results of matching the input and model's SOx!
    170                                                                                  
    171 
    172 !
    173 !-- Selected atomic/molecular weights:
    174     REAL, PARAMETER        ::  xm_H     =    1.00790e-3           !< kg/mol
    175     REAL, PARAMETER        ::  xm_N     =   14.00670e-3           !< kg/mol
    176     REAL, PARAMETER        ::  xm_C     =   12.01115e-3           !< kg/mol
    177     REAL, PARAMETER        ::  xm_S     =   32.06400e-3           !< kg/mol
    178     REAL, PARAMETER        ::  xm_O     =   15.99940e-3           !< kg/mol
    179     REAL, PARAMETER        ::  xm_F     =   18.99840e-3           !< kg/mol
    180     REAL, PARAMETER        ::  xm_Na    =   22.98977e-3           !< kg/mol
    181     REAL, PARAMETER        ::  xm_Cl    =   35.45300e-3           !< kg/mol
    182     REAL, PARAMETER        ::  xm_Rn222 =  222.00000e-3           !< kg/mol
    183     REAL, PARAMETER        ::  xm_Pb210 =  210.00000e-3           !< kg/mol
    184     REAL, PARAMETER        ::  xm_Ca    =   40.07800e-3           !< kg/mol
    185     REAL, PARAMETER        ::  xm_K     =   39.09800e-3           !< kg/mol
    186     REAL, PARAMETER        ::  xm_Mg    =   24.30500e-3           !< kg/mol
    187     REAL, PARAMETER        ::  xm_Pb    =  207.20000e-3           !< kg/mol
    188     REAL, PARAMETER        ::  xm_Cd    =  112.41000e-3           !< kg/mol
    189    
    190     REAL, PARAMETER        ::  xm_h2o   = xm_H * 2 + xm_O         !< kg/mol
    191     REAL, PARAMETER        ::  xm_o3    = xm_O * 3                !< kg/mol
    192     REAL, PARAMETER        ::  xm_N2O5  = xm_N * 2 + xm_O * 5     !< kg/mol
    193     REAL, PARAMETER        ::  xm_HNO3  = xm_H + xm_N + xm_O * 3  !< kg/mol
    194     REAL, PARAMETER        ::  xm_NH4   = xm_N + xm_H * 4         !< kg/mol
    195     REAL, PARAMETER        ::  xm_SO4   = xm_S + xm_O * 4         !< kg/mol
    196     REAL, PARAMETER        ::  xm_NO3   = xm_N + xm_O * 3         !< kg/mol
    197     REAL, PARAMETER        ::  xm_CO2   = xm_C + xm_O * 2         !< kg/mol
    198    
    199 !
    200 !-- mass of air
    201     REAL, PARAMETER        ::  xm_air   =  28.964e-3              !< kg/mol
    202        
    203 !
    204 !-- dummy weight, used for complex molecules:
    205     REAL, PARAMETER        ::  xm_dummy =  1000.0e-3              ! kg/mol
    206 
    207    
    208     SAVE
    209185 END MODULE chem_modules
    210 
  • palm/trunk/SOURCE/chemistry_model_mod.f90

    r3796 r3820  
    2727! -----------------
    2828! $Id: chemistry_model_mod.f90 3784 2019-03-05 14:16:20Z banzhafs
     29! renamed get_mechanismname to get_mechanism_name
     30! renamed do_emiss to emissions_anthropogenic and do_depo to deposition_dry (ecc)
     31!
     32! 3784 2019-03-05 14:16:20Z banzhafs
    2933! Unused variables removed/taken care of
    3034!
     
    303307
    304308    USE chem_gasphase_mod,                                                                         &
    305          ONLY:  atol, chem_gasphase_integrate, get_mechanismname, nkppctrl, nmaxfixsteps,          &
     309         ONLY:  atol, chem_gasphase_integrate, get_mechanism_name, nkppctrl, nmaxfixsteps,         &
    306310         nphot, nreact, nspec, nvar, phot_names, rtol, spc_names, t_steps, vl_dim
    307311
     
    11951199    ENDIF
    11961200!-- check for chemical mechanism used
    1197     CALL get_mechanismname
     1201    CALL get_mechanism_name
    11981202    IF (chem_mechanism /= trim(cs_mech) )  THEN
    11991203       message_string = 'Incorrect chemistry mechanism selected, check spelling in namelist and/or chem_gasphase_mod'
     
    16401644!
    16411645! Get name of chemical mechanism from chem_gasphase_mod
    1642     CALL get_mechanismname
     1646    CALL get_mechanism_name
    16431647
    16441648!-- Write chemistry model  header
     
    17731777
    17741778
    1775     IF ( do_emis )  CALL chem_emissions_init
     1779    IF ( emissions_anthropogenic )  CALL chem_emissions_init
    17761780!
    17771781!-- Chemistry variables will be initialized if availabe from dynamic
     
    18181822    INTEGER(iwp) ::  lpr_lev           !< running index for chem spcs profile level
    18191823
    1820     IF ( do_emis ) THEN
     1824    IF ( emissions_anthropogenic ) THEN
    18211825       CALL netcdf_data_input_chemistry_data( chem_emis_att, chem_emis )
    18221826    ENDIF
     
    22022206         cs_profile,                       &
    22032207         cs_surface,                       &
     2208         cs_surface_initial_change,        &
     2209         cs_vertical_gradient_level,       &
     2210         daytype_mdh,                      &
    22042211         decycle_chem_lr,                  &
    22052212         decycle_chem_ns,                  &           
    22062213         decycle_method,                   &
    2207          do_depo,                          &
     2214         deposition_dry,                   &
     2215         emissions_anthropogenic           & 
    22082216         emiss_factor_main,                &
    22092217         emiss_factor_side,                &                     
     
    22112219         main_street_id,                   &
    22122220         max_street_id,                    &
     2221         mode_emis,                        &
    22132222         my_steps,                         &
    22142223         nest_chemistry,                   &
     
    22212230         surface_csflux,                   &
    22222231         surface_csflux_name,              &
    2223          cs_surface_initial_change,        &
    2224          cs_vertical_gradient_level,       &
    2225          !                                       namelist parameters for emissions
    2226          mode_emis,                        &
    2227          time_fac_type,                    &
    2228          daytype_mdh,                      &
    2229          do_emis                             
     2232         time_fac_type,
    22302233
    22312234    !-- analogue to chem_names(nspj) we could invent chem_surfaceflux(nspj) and chem_topflux(nspj)
     
    33063309
    33073310          !
    3308           !-- Get vd
     3311          !-- Get deposition velocity vd
    33093312          DO  lsp = 1, nvar
    33103313             !
  • palm/trunk/SOURCE/prognostic_equations.f90

    r3797 r3820  
    2525! -----------------
    2626! $Id$
     27! renamed do_depo to deposition_dry (ecc)
     28!
     29! 3797 2019-03-15 11:15:38Z forkel
    2730! Call chem_integegrate in OpenMP loop   (ketelsen)
    2831!
     
    372375           
    373376    USE chem_modules,                                                          &
    374         ONLY:  call_chem_at_all_substeps, chem_gasphase_on, cs_name, do_depo
     377        ONLY:  call_chem_at_all_substeps, chem_gasphase_on, cs_name,           &
     378               deposition_dry
    375379
    376380    USE chem_photolysis_mod,                                                   &
     
    546550             CALL cpu_log( log_point_s(19), 'chem.reactions', 'stop' )
    547551
    548              IF ( do_depo )  THEN
     552             IF ( deposition_dry )  THEN
    549553                CALL cpu_log( log_point_s(24), 'chem.deposition', 'start' )
    550554                DO  i = nxl, nxr
  • palm/trunk/SOURCE/time_integration.f90

    r3774 r3820  
    2525! -----------------
    2626! $Id$
     27! renamed do_emiss to emissions_anthropogenic (ecc)
     28!
     29!
     30! 3774 2019-03-04 10:52:49Z moh.hefny
    2731! rephrase if statement to avoid unallocated array in case of
    2832! nesting_offline is false (crashing during debug mode)
     
    486490
    487491    USE chem_modules,                                                                              &
    488         ONLY:  bc_cs_t_val, cs_name, do_emis, nspec, nspec_out
     492        ONLY:  bc_cs_t_val, cs_name, emissions_anthropogenic, nspec, nspec_out
    489493
    490494    USE chemistry_model_mod,                                                                       &
     
    13861390!
    13871391!--    If required, consider chemical emissions
    1388        IF ( air_chemistry  .AND.  do_emis )  THEN
     1392       IF ( air_chemistry  .AND.  emissions_anthropogenic )  THEN
    13891393!
    13901394!--       Update the time --> kanani: revise location of this CALL
Note: See TracChangeset for help on using the changeset viewer.