!> @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