module modal_aero_data use shr_kind_mod, only: r8 => shr_kind_r8 use module_cam_support, only : pcnst => pcnst_runtime use radconstants, only: nswbands, nlwbands implicit none save integer, parameter :: maxd_aspectype = 14 integer, parameter :: ntot_amode = 3 integer, parameter :: ntot_aspectype = 8 character(len=*),parameter :: specname_amode(ntot_aspectype) = (/ 'sulfate ', 'ammonium ', 'nitrate ', & 'p-organic ', 's-organic ', 'black-c ', & 'seasalt ', 'dust ' /) real(r8) :: specmw_amode(ntot_aspectype) = (/ 115.0, 115.0, 62.0, 12.0, 12.0, 12.0, 58.5, 135.0 /) character(len=*), parameter :: modename_amode(ntot_amode) = (/'accum ', & 'aitken ', & 'coarse '/) integer :: nspec_amode(ntot_amode) = (/ 6, 3, 3 /) integer, parameter :: nspec_amode_max = 6 integer, parameter :: mprognum_amode(ntot_amode) = (/ 1, 1, 1/) integer, parameter :: mdiagnum_amode(ntot_amode) = (/ 0, 0, 0/) integer, parameter :: mprogsfc_amode(ntot_amode) = (/ 0, 0, 0/) integer, parameter :: mcalcwater_amode(ntot_amode) = (/ 0, 0, 0/) real(r8), parameter :: dgnum_amode(ntot_amode) = (/ 0.1100e-6, 0.0260e-6, 2.000e-6 /) real(r8), parameter :: dgnumlo_amode(ntot_amode) = (/ 0.0535e-6, 0.0087e-6, 1.000e-6 /) real(r8), parameter :: dgnumhi_amode(ntot_amode) = (/ 0.4400e-6, 0.0520e-6, 4.000e-6 /) real(r8), parameter :: sigmag_amode(ntot_amode) = (/ 1.800, 1.600, 1.800 /) real(r8), parameter :: rhcrystal_amode(ntot_amode) = (/ 0.350, 0.350, 0.350 /) real(r8), parameter :: rhdeliques_amode(ntot_amode) = (/ 0.800, 0.800, 0.800 /) integer :: msectional = -1 integer & lspectype_amode( maxd_aspectype, ntot_amode ), & lmassptr_amode( maxd_aspectype, ntot_amode ), & lmassptrcw_amode( maxd_aspectype, ntot_amode ), & numptr_amode( ntot_amode ), & numptrcw_amode( ntot_amode ) real(r8) :: & alnsg_amode( ntot_amode ), & voltonumb_amode( ntot_amode ), & voltonumblo_amode( ntot_amode ), & voltonumbhi_amode( ntot_amode ), & alnv2n_amode( ntot_amode ), & alnv2nlo_amode( ntot_amode ), & alnv2nhi_amode( ntot_amode ), & specdens_amode( maxd_aspectype ), & spechygro( maxd_aspectype ) complex & specrefndxsw( nswbands, maxd_aspectype ), & specrefndxlw( nlwbands, maxd_aspectype ) character(len=16), allocatable :: cnst_name_cw( : ) character(len=8) :: aodvisname(ntot_amode ), & ssavisname(ntot_amode ) character(len=48) :: aodvislongname(ntot_amode ), & ssavislongname(ntot_amode ) character(len=8) :: fnactname(ntot_amode ), & fmactname(ntot_amode ), & nactname(ntot_amode ) character(len=48) :: fnactlongname(ntot_amode ), & fmactlongname(ntot_amode ), & nactlongname(ntot_amode ) integer & lptr_so4_a_amode(ntot_amode), lptr_so4_cw_amode(ntot_amode), & lptr_msa_a_amode(ntot_amode), lptr_msa_cw_amode(ntot_amode), & lptr_nh4_a_amode(ntot_amode), lptr_nh4_cw_amode(ntot_amode), & lptr_no3_a_amode(ntot_amode), lptr_no3_cw_amode(ntot_amode), & lptr_pom_a_amode(ntot_amode), lptr_pom_cw_amode(ntot_amode), & lptr_soa_a_amode(ntot_amode), lptr_soa_cw_amode(ntot_amode), & lptr_bc_a_amode(ntot_amode), lptr_bc_cw_amode(ntot_amode), & lptr_nacl_a_amode(ntot_amode), lptr_nacl_cw_amode(ntot_amode),& lptr_dust_a_amode(ntot_amode), lptr_dust_cw_amode(ntot_amode),& modeptr_accum, modeptr_aitken, & modeptr_ufine, modeptr_coarse, & modeptr_pcarbon, & modeptr_finedust, modeptr_fineseas, & modeptr_coardust, modeptr_coarseas real(r8) :: & specmw_so4_amode, specdens_so4_amode, & specmw_nh4_amode, specdens_nh4_amode, & specmw_no3_amode, specdens_no3_amode, & specmw_pom_amode, specdens_pom_amode, & specmw_soa_amode, specdens_soa_amode, & specmw_bc_amode, specdens_bc_amode, & specmw_dust_amode, specdens_dust_amode, & specmw_seasalt_amode, specdens_seasalt_amode integer, allocatable:: species_class(:) integer spec_class_undefined parameter ( spec_class_undefined = 0 ) integer spec_class_cldphysics parameter ( spec_class_cldphysics = 1 ) integer spec_class_aerosol parameter ( spec_class_aerosol = 2 ) integer spec_class_gas parameter ( spec_class_gas = 3 ) integer spec_class_other parameter ( spec_class_other = 4 ) real(r8), allocatable :: qneg3_worst_thresh_amode(:) character(len=16), allocatable :: cnst_name_cw_mp(:) integer :: msectional_mp = -1 integer :: modeptr_accum_mp integer :: modeptr_coarse_mp integer :: modeptr_coardust_mp integer :: modeptr_aitken_mp integer :: ntot_amode_mp = ntot_amode integer :: numptrcw_amode_mp(ntot_amode) integer :: lptr_dust_a_amode_mp(ntot_amode) integer :: lptr_nacl_a_amode_mp(ntot_amode) integer :: numptr_amode_mp(ntot_amode) integer :: nspec_amode_mp(ntot_amode) = (/ 6, 3, 3 /) integer :: lmassptr_amode_mp(maxd_aspectype, ntot_amode) integer :: lspectype_amode_mp(maxd_aspectype, ntot_amode) integer :: lmassptrcw_amode_mp(maxd_aspectype, ntot_amode) real(r8) :: voltonumb_amode_mp( ntot_amode ) real(r8) :: alnsg_amode_mp( ntot_amode ) real(r8) :: voltonumbhi_amode_mp(ntot_amode) real(r8) :: voltonumblo_amode_mp(ntot_amode) real(r8) :: sigmag_amode_mp(ntot_amode) = sigmag_amode(1:ntot_amode) real(r8) :: dgnum_amode_mp(ntot_amode) = dgnum_amode(1:ntot_amode) real(r8) :: dgnumlo_amode_mp(ntot_amode) = dgnumlo_amode(1:ntot_amode) real(r8) :: dgnumhi_amode_mp(ntot_amode) = dgnumhi_amode(ntot_amode) real(r8) :: specdens_amode_mp( maxd_aspectype ) real(r8) :: specmw_amode_mp(ntot_aspectype) real(r8) :: spechygro_mp( maxd_aspectype ) end module modal_aero_data