!> @file chem_emis_biogenic_data_mod.f90
!--------------------------------------------------------------------------------------------------!
! This file is part of the PALM model system.
!
! PALM is free software: you can redistribute it and/or modify it under the terms of the GNU General
! Public License as published by the Free Software Foundation, either version 3 of the License, or
! (at your option) any later version.
!
! PALM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
! implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
! Public License for more details.
!
! You should have received a copy of the GNU General Public License along with PALM. If not, see
! .
!
! Copyright 1997-2021 Leibniz Universitaet Hannover
! Copyright 2017-2021 Karlsruhe Institute of Technology
!--------------------------------------------------------------------------------------------------!
!
! Description:
! ------------
!> Module for biogenic emission data of VOCs, trees, and plant functional types
!--------------------------------------------------------------------------------------------------!
MODULE chem_emis_biogenic_data_mod
USE kinds
IMPLICIT NONE
!
!-- variables declared before CHAR to define array size/length that are required for CHAR, INTEGER and REAL arrays.
INTEGER(iwp), PARAMETER :: n_dcds_blf = 64 !< max number of deiduous broadleaf trees
INTEGER(iwp), PARAMETER :: n_dsoil_layers = 08 !< default number of soil layers
INTEGER(iwp), PARAMETER :: n_ebio_class = 05 !< maximum number of bvoc classes
INTEGER(iwp), PARAMETER :: n_ebio_spc = 30 !< maximum number of bvoc spcs
INTEGER(iwp), PARAMETER :: n_evgn_blf = 04 !< max number of evergreen broadleaf trees
INTEGER(iwp), PARAMETER :: n_evgn_nlf = 16 !< maximum number of evervreen needleleaf trees
INTEGER(iwp), PARAMETER :: n_pft = 18 !< maximum number of vegetation types (ECMWF-IFS)
INTEGER(iwp), PARAMETER :: n_root_layers = 03 !< total number of root layers
INTEGER(iwp), PARAMETER :: n_soil_types = 06 !< total number of soil types
INTEGER(iwp), PARAMETER :: n_tree_types = 86 !< maximum number of tree types
!
CHARACTER(LEN=4), DIMENSION(1:n_ebio_class) :: ltab_ebio_class_nam = (/ & !< names of bvoc classes
'ISOP', &
'MTRP', &
'SQTP', &
'XVOC', &
'OVOC' &
/)
!
CHARACTER(LEN=6), DIMENSION(1:n_ebio_spc) :: ltab_ebio_nam = (/ & !< list of bvoc spcs in BEM
'ISOPRN', &
'MYRCEN', &
'SABINE', &
'LIMONE', &
'3CAREN', &
'OCIMEN', &
'APINEN', &
'BPINEN', &
'BCARYO', &
'ACTLDE', &
'ETHANL', &
'FMALDE', &
'MTHANL', &
'ACETON', &
'FMCACI', &
'ACTACI', &
'232MBO', &
'MTHANE', &
'ETHENE', &
'HYDCYN', &
'TOLUEN', &
'MTHLBR', &
'MTHLCL', &
'MTHLIO', &
'DMTHLS', &
'ETHANE', &
'PROPAN', &
'PROPEN', &
'BUTANE', &
'BNZLDE' &
/)
!
CHARACTER(26), DIMENSION(1:n_pft), PARAMETER :: ltab_pft_nam = (/ & !< ECMWF-IFC vege types/PFT
'bare soil ', &
'crops, mixed farming ', &
'short grass ', &
'evergreen needleleaf trees', &
'deciduous needleleaf trees', &
'evergreen broadleaf trees ', &
'deciduous broadleaf trees ', &
'tall grass ', &
'desert ', &
'tundra ', &
'irrigated crops ', &
'semidesert ', &
'ice caps and glaciers ', &
'bogs and marshes ', &
'evergreen shrubs ', &
'deciduous shrubs ', &
'mixed forest/woodland ', &
'interrupted forest ' &
/)
!
CHARACTER(LEN=18), DIMENSION(1:n_tree_types) :: ltab_tree_nam = (/ & !< single tree spcs BERLIN.
'Abies ', &
'Acer ', &
'Aesculus ', &
'Ailanthus ', &
'Alnus ', &
'Amelanchier ', &
'Betula ', &
'Buxus ', &
'Calocedrus ', &
'Caragana ', &
'Carpinus ', &
'Carya ', &
'Castanea ', &
'Catalpa ', &
'Cedrus ', &
'Celtis ', &
'Cercidiphyllum ', &
'Cercis ', &
'Chamaecyparis ', &
'Cladrastis ', &
'Cornus ', &
'Corylus ', &
'Cotinus ', &
'Crataegus ', &
'Cryptomeria ', &
'Cupressocyparis ', &
'Cupressus ', &
'Cydonia ', &
'Davidia ', &
'Elaeagnus ', &
'Euodia ', &
'Euonymus ', &
'Fagus ', &
'Fraxinus ', &
'Ginkgo ', &
'Gleditsia ', &
'Gymnocladus ', &
'Hippophae ', &
'Ilex ', &
'Juglans ', &
'Juniperus ', &
'Koelreuteria ', &
'Laburnum ', &
'Larix ', &
'Ligustrum ', &
'Liquidambar ', &
'Liriodendron ', &
'Lonicera ', &
'Magnolia ', &
'Malus ', &
'Metasequoia ', &
'Morus ', &
'Ostrya ', &
'Parrotia ', &
'Paulownia ', &
'Phellodendron ', &
'Picea ', &
'Pinus ', &
'Platanus ', &
'Populus ', &
'Prunus ', &
'Pseudotsuga ', &
'Ptelea ', &
'Pterocaria ', &
'Pterocarya ', &
'Pyrus ', &
'Quercus ', &
'Rhamnus ', &
'Rhus ', &
'Robinia ', &
'Salix ', &
'Sambucus ', &
'Sasa ', &
'Sequoiadendron ', &
'Sophora ', &
'Sorbus ', &
'Syringa ', &
'Tamarix ', &
'Taxodium ', &
'Taxus ', &
'Thuja ', &
'Tilia ', &
'Tsuga ', &
'Ulmus ', &
'Zelkova ', &
'Zenobia ' &
/)
!
!-- The named indicies below follow numerical order instead of alphabetical order
!-- becuase these are used in the same order in arrays in this data file
!-- and the biogenic module.
!-- bvoc class indecies/IDs
INTEGER(iwp), PARAMETER :: class_isop = 1 !< index for isoprene
INTEGER(iwp), PARAMETER :: class_mtrp = 2 !< index for monoterpenes
INTEGER(iwp), PARAMETER :: class_sqtp = 3 !< index for sesquiterpenes
INTEGER(iwp), PARAMETER :: class_xvoc = 4 !< index for oxygenated vocs
INTEGER(iwp), PARAMETER :: class_ovoc = 5 !< index for other vocs
!
!-- 30 bvoc spcs IDs
!-- class isoprene
INTEGER(iwp), PARAMETER :: isop = 1 !< isoprene c5h8 /
!
!-- Class monoterpenes MRTP
INTEGER(iwp), PARAMETER :: mtrp1 = 2 !< myrcene c10h16
INTEGER(iwp), PARAMETER :: mtrp2 = 3 !< sabinene c10h16
INTEGER(iwp), PARAMETER :: mtrp3 = 4 !< limonene c10h16
INTEGER(iwp), PARAMETER :: mtrp4 = 5 !< 3carene c10h16
INTEGER(iwp), PARAMETER :: mtrp5 = 6 !< t-b-ocimene c10h16
INTEGER(iwp), PARAMETER :: mtrp6 = 7 !< a-pinene c10h16
INTEGER(iwp), PARAMETER :: mtrp7 = 8 !< b-pinene c10h16
!
!-- class sesquiterpenes
INTEGER(iwp), PARAMETER :: sqtp1 = 9 !< b-caryophyllene c15h24
!
!-- classs oxygenated BVOCs
INTEGER(iwp), PARAMETER :: xvoc1 = 10 !< acetaldehyde c2h4o
INTEGER(iwp), PARAMETER :: xvoc2 = 11 !< ethanol c2h5oh
INTEGER(iwp), PARAMETER :: xvoc3 = 12 !< HCHO'formaldehyde ch2o
INTEGER(iwp), PARAMETER :: xvoc4 = 13 !< methanol ch3oh
INTEGER(iwp), PARAMETER :: xvoc5 = 14 !< acetone c3h6o
INTEGER(iwp), PARAMETER :: xvoc6 = 15 !< farmic_acid ch2o2
INTEGER(iwp), PARAMETER :: xvoc7 = 16 !< acetic_acid ch3cooh
!
!-- class others BVOC