diff --git a/CARMAchem_GridComp/CARMA/source/base/Makefile b/CARMAchem_GridComp/CARMA/source/base/Makefile index 80df4dd..b51164a 100644 --- a/CARMAchem_GridComp/CARMA/source/base/Makefile +++ b/CARMAchem_GridComp/CARMA/source/base/Makefile @@ -16,7 +16,7 @@ setupcoag.o smallconc.o step.o supersat.o vaporp.o vertadv.o \ vertdif.o vertical.o versol.o rhopart.o psolve.o zeromicro.o \ nsubsteps.o setupgrow.o setupgkern.o setupnuc.o growevapl.o microfast.o \ gsolve.o actdropl.o freezglaerl_murray2010.o growp.o downgxfer.o \ -gasexchange.o melticel.o upgxfer.o freezdropl.o \ +gasexchange.o melticel.o upgxfer.o freezdropl.o pfastdmdt.o \ downgevapply.o evapp.o evap_poly.o evap_mono.o \ evap_ingrp.o tsolve.o miess.o vaporp_h2o_buck1981.o \ vaporp_h2o_murphy2005.o maxconc.o setupbdif.o setupvf_std.o \ @@ -159,6 +159,9 @@ growp.o : growp.F90 carma_globaer.h carma_mod.mod carmastate_mod.mod carma_types gsolve.o : gsolve.F90 carma_globaer.h carma_mod.mod carmastate_mod.mod carma_types_mod.mod carma_constants_mod.mod carma_enums_mod.mod carma_precision_mod.mod $(FORTRAN) $(FFLAGS) -c $< +pfastdmdt.o : pfastdmdt.F90 carma_globaer.h carma_mod.mod carmastate_mod.mod carma_types_mod.mod carma_constants_mod.mod carma_enums_mod.mod carma_precision_mod.mod + $(FORTRAN) $(FFLAGS) -c $< + fractal_meanfield_mod.o : fractal_meanfield_mod.F90 carma_globaer.h carma_mod.mod carmastate_mod.mod carma_types_mod.mod carma_constants_mod.mod carma_enums_mod.mod carma_precision_mod.mod adgaquad_mod.mod lusolvec_mod.mod $(FORTRAN) $(FFLAGS) -c $< diff --git a/CARMAchem_GridComp/CARMA/source/base/carma_enums_mod.F90 b/CARMAchem_GridComp/CARMA/source/base/carma_enums_mod.F90 index 3c29caa..76854dd 100644 --- a/CARMAchem_GridComp/CARMA/source/base/carma_enums_mod.F90 +++ b/CARMAchem_GridComp/CARMA/source/base/carma_enums_mod.F90 @@ -85,11 +85,11 @@ module carma_enums_mod integer, public, parameter :: I_SWG_RURAL = 14 !! Rural ! Routines to calculate gas vapor pressures + integer, public, parameter :: I_VAPRTN_NULL = -1 !! For non-condensing gases integer, public, parameter :: I_VAPRTN_H2O_BUCK1981 = 1 !! H2O, Buck[1981] integer, public, parameter :: I_VAPRTN_H2O_MURPHY2005 = 2 !! H2O, Murphy & Koop [2005] integer, public, parameter :: I_VAPRTN_H2O_GOFF1946 = 3 !! H2O, Goff & Gratch [1946], used in CAM integer, public, parameter :: I_VAPRTN_H2SO4_AYERS1980 = 4 !! H2SO4, Ayers [1980] & Kumala [1990] - integer, public, parameter :: I_VAPRTN_NULL = 5 !! For non-condensing gases ! Routines to calculate fall velocities integer, public, parameter :: I_FALLRTN_STD = 1 !! Standard CARMA 2.3 routine (spherical only) @@ -118,6 +118,7 @@ module carma_enums_mod integer, public, parameter :: RC_ERROR = -1 !! Failure integer, public, parameter :: RC_WARNING = 1 !! Warning integer, public, parameter :: RC_WARNING_RETRY = 2 !! Warning, Retry Suggested + integer, public, parameter :: RC_WARNING_PFAST = 3 !! Warning, Parameterization Suggested ! Define values of symbols used to specify horizontal & vertical grid type. diff --git a/CARMAchem_GridComp/CARMA/source/base/carma_globaer.h b/CARMAchem_GridComp/CARMA/source/base/carma_globaer.h index 19be1e9..ea0cf83 100644 --- a/CARMAchem_GridComp/CARMA/source/base/carma_globaer.h +++ b/CARMAchem_GridComp/CARMA/source/base/carma_globaer.h @@ -145,6 +145,7 @@ #define do_print_init carma%f_do_print_init #define do_step carma%f_do_step #define do_substep carma%f_do_substep +#define do_pfast carma%f_do_pfast #define do_thermo carma%f_do_thermo #define do_vdiff carma%f_do_vdiff #define do_vtran carma%f_do_vtran diff --git a/CARMAchem_GridComp/CARMA/source/base/carma_mod.F90 b/CARMAchem_GridComp/CARMA/source/base/carma_mod.F90 index c24fdbf..ebb7f11 100644 --- a/CARMAchem_GridComp/CARMA/source/base/carma_mod.F90 +++ b/CARMAchem_GridComp/CARMA/source/base/carma_mod.F90 @@ -333,7 +333,7 @@ end subroutine CARMA_Create !! @version Feb-2009 !! @author Chuck Bardeen subroutine CARMA_Initialize(carma, rc, do_cnst_rlh, do_coag, do_detrain, do_fixedinit, & - do_grow, do_incloud, do_explised, do_print_init, do_substep, do_thermo, do_vdiff, & + do_grow, do_incloud, do_explised, do_print_init, do_substep, do_pfast, do_thermo, do_vdiff, & do_vtran, do_drydep, vf_const, minsubsteps, maxsubsteps, maxretries, conmax, & do_pheat, do_pheatatm, dt_threshold, cstick, gsticki, gstickl, tstick, do_clearsky, & do_partialinit) @@ -348,6 +348,7 @@ subroutine CARMA_Initialize(carma, rc, do_cnst_rlh, do_coag, do_detrain, do_fixe logical, intent(in), optional :: do_incloud !! do incloud growth and coagulation? logical, intent(in), optional :: do_explised !! do sedimentation with substepping logical, intent(in), optional :: do_substep !! do substepping + logical, intent(in), optional :: do_pfast !! do parameterized microfast logical, intent(in), optional :: do_print_init !! do prinit initializtion information logical, intent(in), optional :: do_thermo !! do thermodynamics logical, intent(in), optional :: do_vdiff !! do Brownian diffusion @@ -384,6 +385,7 @@ subroutine CARMA_Initialize(carma, rc, do_cnst_rlh, do_coag, do_detrain, do_fixe carma%f_do_pheatatm = .FALSE. carma%f_do_print_init = .FALSE. carma%f_do_substep = .FALSE. + carma%f_do_pfast = .FALSE. carma%f_do_thermo = .FALSE. carma%f_do_vdiff = .FALSE. carma%f_do_vtran = .FALSE. @@ -408,6 +410,7 @@ subroutine CARMA_Initialize(carma, rc, do_cnst_rlh, do_coag, do_detrain, do_fixe if (present(do_pheatatm)) carma%f_do_pheatatm = do_pheatatm if (present(do_print_init)) carma%f_do_print_init = (do_print_init .and. carma%f_do_print) if (present(do_substep)) carma%f_do_substep = do_substep + if (present(do_pfast)) carma%f_do_pfast = do_pfast if (present(do_thermo)) carma%f_do_thermo = do_thermo if (present(do_vdiff)) carma%f_do_vdiff = do_vdiff if (present(do_vtran)) carma%f_do_vtran = do_vtran diff --git a/CARMAchem_GridComp/CARMA/source/base/carma_types_mod.F90 b/CARMAchem_GridComp/CARMA/source/base/carma_types_mod.F90 index e0b7517..7aa834c 100644 --- a/CARMAchem_GridComp/CARMA/source/base/carma_types_mod.F90 +++ b/CARMAchem_GridComp/CARMA/source/base/carma_types_mod.F90 @@ -353,6 +353,7 @@ module carma_types_mod ! do_print_init If .true. then do print initializtion info {init} ! do_step if .true. then varstepping succeeded {init} ! do_substep if .true. then use substepping {init} + ! do_pfast if .true. then use microfast parameterization {init} ! do_thermo if .true. then do solve thermodynamic equation {init} ! do_vdiff If .true. then do Brownian diffusion {init} ! do_vtran If .true. then do vertical transport {init} @@ -394,6 +395,7 @@ module carma_types_mod logical :: f_do_print_init logical :: f_do_step logical :: f_do_substep + logical :: f_do_pfast logical :: f_do_thermo logical :: f_do_cnst_rlh logical, allocatable, dimension(:,:) :: f_if_nuc !(NELEM,NELEM) diff --git a/CARMAchem_GridComp/CARMA/source/base/freezaerl_koop2000.F90 b/CARMAchem_GridComp/CARMA/source/base/freezaerl_koop2000.F90 index c26ac32..0bcd047 100644 --- a/CARMAchem_GridComp/CARMA/source/base/freezaerl_koop2000.F90 +++ b/CARMAchem_GridComp/CARMA/source/base/freezaerl_koop2000.F90 @@ -75,8 +75,9 @@ subroutine freezaerl_koop2000(carma, cstate, iz, rc) real(kind=f) :: fkelv real(kind=f) :: fkelvi - - rc = RC_OK + ! PAC: Assuming success inside of a subroutine is a problem, any errors + ! are erased by this. + !rc = RC_OK ! Aerosol freezing limited to T < 240K if (t(iz) <= 240._f) then diff --git a/CARMAchem_GridComp/CARMA/source/base/freezaerl_mohler2010.F90 b/CARMAchem_GridComp/CARMA/source/base/freezaerl_mohler2010.F90 index a21604d..1796388 100644 --- a/CARMAchem_GridComp/CARMA/source/base/freezaerl_mohler2010.F90 +++ b/CARMAchem_GridComp/CARMA/source/base/freezaerl_mohler2010.F90 @@ -76,7 +76,9 @@ subroutine freezaerl_mohler2010(carma, cstate, iz, rc) real(kind=f) :: fkelvi - rc = RC_OK + ! PAC: Assuming success inside of a subroutine is a problem, any errors + ! are erased by this. + !rc = RC_OK ! Aerosol freezing limited to T < 240K if (t(iz) <= 240._f) then diff --git a/CARMAchem_GridComp/CARMA/source/base/freezglaerl_murray2010.F90 b/CARMAchem_GridComp/CARMA/source/base/freezglaerl_murray2010.F90 index 1fa920f..d76bc75 100644 --- a/CARMAchem_GridComp/CARMA/source/base/freezglaerl_murray2010.F90 +++ b/CARMAchem_GridComp/CARMA/source/base/freezglaerl_murray2010.F90 @@ -60,7 +60,9 @@ subroutine freezglaerl_murray2010(carma, cstate, iz, rc) real(kind=f) :: ssi, ssiold ! Assume success. - rc = RC_OK + ! PAC: Assuming success inside of a subroutine is a problem, any errors + ! are erased by this. + !rc = RC_OK ! Loop over particle groups. do igroup = 1,NGROUP diff --git a/CARMAchem_GridComp/CARMA/source/base/gsolve.F90 b/CARMAchem_GridComp/CARMA/source/base/gsolve.F90 index e442575..6edaffc 100644 --- a/CARMAchem_GridComp/CARMA/source/base/gsolve.F90 +++ b/CARMAchem_GridComp/CARMA/source/base/gsolve.F90 @@ -64,7 +64,7 @@ subroutine gsolve(carma, cstate, iz, previous_ice, previous_liquid, scale_thresh if (gc(iz,igas) < 0.0_f) then if (do_substep) then - if (nretries == maxretries) then + if (nretries == maxretries .and. .not. do_pfast) then if (do_print) write(LUNOPRT,1) trim(gasname(igas)), iz, lat, lon, gc(iz,igas), gasprod(igas), & supsati(iz,igas), supsatl(iz,igas), t(iz) if (do_print) write(LUNOPRT,2) gcl(iz,igas), supsatiold(iz,igas), supsatlold(iz,igas), told(iz), d_gc(iz,igas), d_t(iz) diff --git a/CARMAchem_GridComp/CARMA/source/base/microfast.F90 b/CARMAchem_GridComp/CARMA/source/base/microfast.F90 index 48b0344..20c47b5 100644 --- a/CARMAchem_GridComp/CARMA/source/base/microfast.F90 +++ b/CARMAchem_GridComp/CARMA/source/base/microfast.F90 @@ -151,14 +151,17 @@ subroutine microfast(carma, cstate, iz, scale_threshold, rc) call downgevapply(carma, cstate, iz, rc) if (rc < RC_OK) return + ! If this is a parameterized timestep, scale bin values to prevent gas overshoot + if (rc == RC_WARNING_PFAST) call pfastdmdt(carma, cstate, iz, rc) + call gsolve(carma, cstate, iz, previous_ice, previous_liquid, scale_threshold, rc) - if (rc /=RC_OK) return + if (rc /= RC_OK .and. rc /= RC_WARNING_PFAST) return endif ! Update temperature if thermal processes requested if (do_thermo) then call tsolve(carma, cstate, iz, scale_threshold, rc) - if (rc /= RC_OK) return + if (rc /= RC_OK .and. rc /= RC_WARNING_PFAST) return endif ! Update saturation ratios diff --git a/CARMAchem_GridComp/CARMA/source/base/newstate_calc.F90 b/CARMAchem_GridComp/CARMA/source/base/newstate_calc.F90 index ee88a4f..aa9bcbf 100644 --- a/CARMAchem_GridComp/CARMA/source/base/newstate_calc.F90 +++ b/CARMAchem_GridComp/CARMA/source/base/newstate_calc.F90 @@ -188,16 +188,29 @@ subroutine newstate_calc(carma, cstate, scale_threshold, rc) nretries = nretries + 1 if (nretries > maxretries) then - if (do_print) write(LUNOPRT,1) iz, isubstep, ntsubsteps, nretries - 1._f - rc = RC_ERROR - exit + if (do_pfast) then + if (nretries > maxretries+1) then + if (do_print) write(LUNOPRT,1) iz, isubstep, ntsubsteps, -1._f*nretries + rc = RC_ERROR + exit + endif + rc = RC_WARNING_PFAST + else + if (do_print) write(LUNOPRT,1) iz, isubstep, ntsubsteps, nretries - 1._f + rc = RC_ERROR + exit + end if end if ! Try twice the substeps ! ! NOTE: We are going to rely upon retries, so don't clutter the log ! with retry print statements. They slow down the run. - ntsubsteps = ntsubsteps * 2 + if (rc == RC_WARNING_PFAST) then + ntsubsteps = minsubsteps + else + ntsubsteps = ntsubsteps * 2 + endif ! if (do_print) write(LUNOPRT,*) "newstate::WARNING - Substep failed, retrying with ", ntsubsteps, " substeps." @@ -213,7 +226,7 @@ subroutine newstate_calc(carma, cstate, scale_threshold, rc) if (rc < RC_OK) return end do - rc = RC_OK + if (rc == RC_WARNING_RETRY) rc = RC_OK takeSteps = .true. exit @@ -238,6 +251,8 @@ subroutine newstate_calc(carma, cstate, scale_threshold, rc) nsubstep = nsubstep + ntsubsteps nretry = nretry + nretries + if (rc == RC_WARNING_PFAST) rc = RC_OK + if (do_substep) zsubsteps(iz) = ntsubsteps end do diff --git a/CARMAchem_GridComp/CARMA/source/base/pfastdmdt.F90 b/CARMAchem_GridComp/CARMA/source/base/pfastdmdt.F90 new file mode 100644 index 0000000..b23c3ed --- /dev/null +++ b/CARMAchem_GridComp/CARMA/source/base/pfastdmdt.F90 @@ -0,0 +1,68 @@ +! Include shortname defintions, so that the F77 code does not have to be modified to +! reference the CARMA structure. +#include "carma_globaer.h" + +!! This routine normalizes dmdt as to not make gas concentration go negative. +!! +!! @author Parker Case +!! @version Mar-2024 +subroutine pfastdmdt(carma, cstate, iz, rc) + + ! types + use carma_precision_mod + use carma_enums_mod + use carma_constants_mod + use carma_types_mod + use carmastate_mod + use carma_mod + + implicit none + + type(carma_type), intent(in) :: carma !! the carma object + type(carmastate_type), intent(inout) :: cstate !! the carma state object + integer, intent(in) :: iz !! z index + integer, intent(inout) :: rc !! return code, negative indicates failure + + ! Local declarations + real(kind=f) :: rvap + real(kind=f) :: gc_cgs + real(kind=f) :: gc_target + real(kind=f) :: scalefactor + integer :: igroup + integer :: ielem + integer :: igas + integer :: ibin + + do igroup = 1,NGROUP + + ielem = ienconc(igroup) ! element of particle number concentration + + igas = igrowgas(ielem) ! condensing gas + + if ((itype(ielem) == I_VOLATILE) .and. (igas /= 0)) then + + ! Calculate vapor pressures. + call vaporp(carma, cstate, iz, igas, rc) + + ! Define gas constant for this gas + rvap = RGAS / gwtmol(igas) + + ! Current gas concentration + gc_cgs = gc(iz,igas) / (zmet(iz)*xmet(iz)*ymet(iz)) + + ! Gas concentration at equilibrium + gc_target = pvapl(iz,igas) / (rvap * t(iz)) + + ! Determine total mass added to bins in implicit timestep + scalefactor = sum((pc(iz,:,ielem) - pcl(iz,:,ielem))*rmass(:,igroup))/(gc_cgs - gc_target) + + ! Loop through bins and apply correction + do ibin = 1,NBIN + pc(iz,ibin,ielem) = pcl(iz,ibin,ielem) + (pc(iz,ibin,ielem) - pcl(iz,ibin,ielem)) / scalefactor + end do + end if + + end do + + return +end diff --git a/CARMAchem_GridComp/CARMA_GridComp.F90 b/CARMAchem_GridComp/CARMA_GridComp.F90 index 139d8fc..6bdbe4a 100644 --- a/CARMAchem_GridComp/CARMA_GridComp.F90 +++ b/CARMAchem_GridComp/CARMA_GridComp.F90 @@ -1088,7 +1088,7 @@ SUBROUTINE CARMA_GridCompRun ( gcCARMA, qa, impChem, expChem, nymd, nhms, & ! This is set in the internal_spec but possibly is bootstrapped. ! If bootstrapped set to current temperature. n = nCARMAbegin + reg%NBIN*reg%NELEM + reg%NGAS - if(qa(n)%data3d(i1,j2,km) < 0.) qa(n)%data3d = tmpu + if(qa(n)%data3d(i1,j2,km) <= 0.) qa(n)%data3d = tmpu ! And same for gases -- first, initialize water vapor to current do igas = 1, reg%NGAS n = nCARMAbegin + reg%NBIN*reg%NELEM - 1 + igas diff --git a/CARMAchem_GridComp/CARMA_UtilMod.F90 b/CARMAchem_GridComp/CARMA_UtilMod.F90 index 3d4b3a0..c9f56f2 100644 --- a/CARMAchem_GridComp/CARMA_UtilMod.F90 +++ b/CARMAchem_GridComp/CARMA_UtilMod.F90 @@ -310,12 +310,8 @@ SUBROUTINE CARMA_Emissions ( gcCARMA, qa, impChem, expChem, nymd, nhms, cdt, & ! In this implementation we compute f(u,v,...) in a separate routine ! and do the rest here. -! Read dust source function from file if not already allocated - if( .not. associated(gcCARMA%dust_source)) then - allocate(gcCARMA%dust_source(i1:i2,j1:j2),__STAT__) - gcCARMA%dust_source = 0. - call MAPL_GetPointer( impChem, gcCARMA%dust_source, 'CARMA_DU_SRC', __RC__) - endif +! Read dust source function from file + call MAPL_GetPointer( impChem, gcCARMA%dust_source, 'CARMA_DU_SRC', __RC__) ! Do the emission calculation ! The DEAD emission calculation occurs outside the size bins, returning diff --git a/CARMAchem_GridComp/CARMAchem_GridCompMod.F90 b/CARMAchem_GridComp/CARMAchem_GridCompMod.F90 index 0480d56..b039dea 100644 --- a/CARMAchem_GridComp/CARMAchem_GridCompMod.F90 +++ b/CARMAchem_GridComp/CARMAchem_GridCompMod.F90 @@ -987,7 +987,6 @@ SUBROUTINE Finalize_ ( gc, import, export, clock, rc ) ! Destroy emissions ! ----------------- - if(associated(gcCARMA%dust_source)) deallocate( gcCARMA%dust_source, __STAT__) if(associated(gcCARMA%vLat)) deallocate( gcCARMA%vLat, __STAT__) if(associated(gcCARMA%vLon)) deallocate( gcCARMA%vLon, __STAT__) if(associated(gcCARMA%vSO2)) deallocate( gcCARMA%vSO2, __STAT__) diff --git a/CARMAchem_GridComp/CARMAchem_Registry.rc b/CARMAchem_GridComp/CARMAchem_Registry.rc index ce977a0..ae3828d 100644 --- a/CARMAchem_GridComp/CARMAchem_Registry.rc +++ b/CARMAchem_GridComp/CARMAchem_Registry.rc @@ -64,8 +64,9 @@ ICOMPOSITION: 1 2 3 # GASNAME = name # IGCOMP = gas composition: 1 (I_GCOMP_H2O), 2 (I_GCOMP_H2SO4), 3 (I_GCOMP_SO2), # 4 (I_GCOMP_HNO3) -# IGVAPREQ = vapor pressure equation: 1 (I_VAPRTN_H2O_BUCK1981), 2 (I_VAPRTN_H2O_MURPHY2005) -# 3 (I_VAPRTN_H2O_GOFF1946), 4 (I_VAPRTN_H2SO4_AYERS1980) +# IGVAPREQ = vapor pressure equation: -1 (I_VAPRTN_NULL), 1 (I_VAPRTN_H2O_BUCK1981), +# 2 (I_VAPRTN_H2O_MURPHY2005), 3 (I_VAPRTN_H2O_GOFF1946), +# 4 (I_VAPRTN_H2SO4_AYERS1980) GASNAME: H2O H2SO4 HNO3 IGCOMP: 1 2 4 IGVAPREQ: 2 4 -1 diff --git a/CARMAchem_GridComp/CARMAchem_Registry.rc.MIXED b/CARMAchem_GridComp/CARMAchem_Registry.rc.MIXED new file mode 100644 index 0000000..6f1154b --- /dev/null +++ b/CARMAchem_GridComp/CARMAchem_Registry.rc.MIXED @@ -0,0 +1,483 @@ +# +# This the CARMA Grid Component Registry. +# We use a single registry to define the particular instantiation +# of CARMA, as well as to define Import, Internal, and Export +# states +# +# !REVISION HISTORY: +# 16Aug2006 da Silva First Version +# 1Feb2007 Kouatchou Population of specs +# 29Mar2007 Nielsen Name validation, inclusion for GEOS-5 +# 18Nov2009 Colarco First Crack +# 23Nov2009 Colarco Add Control elements to registry +# 16May2019 Case Addition of STS/HNO3 options +# +# ----------------------------------------------------------------- + +# CARMA dimensioning parameters +NBIN: 24 +NGROUP: 2 +NELEM: 3 +NSOLUTE: 0 +NGAS: 3 +NWAVE: 0 + +# PARTICLES +# --------- +# GROUPS: Define the aerosol groups (must be at least NGROUP entries) +# GROUPNAME = name +# RMRAT = ratio of mass of bin i+1 to bin i +# RMIN = central radius [cm] of smallest bin +# ISHAPE = shape type: 1 (Sphere), 2 (Hexagon), 3 (Cylinder) +# ESHAPE = aspect ratio of particle: 1.0 (spherical) +# if CYLINDER, << 1 for disks, >> 1 for needles +# FSCAV = convective scavenging efficiency (fraction km-1) -- deprecated +# IRHSWELL = humidifcation type for fall/optics: 0 (I_NO_SWELLING), 1 (I_FITZGERALD), +# 2 (I_GERBER), 3 (I_WTPCT_H2SO4), +# 4 (I_WTPCT_STS) +# IRHSWCOMP = composition swelling flag +GROUPNAME: sulfate mixedp +RMRAT: 3.7515201 2.2587828 +RMIN: 2.6686863e-8 5.e-06 +ISHAPE: 1 1 +ESHAPE: 1. 1. +FSCAV: 0.4 0.4 +IRHSWELL: 3 0 +IRHSWCOMP: 0 0 + +# ELEMENTS: Define the aerosol elements (must be at least NELEM entries) +# IGROUP = group (above) the element maps to +# RHOP = elements density [g cm-3] +# ELEMNAME = name of element +# ITYPE = element type: 1 (I_INVOLATILE), 2 (I_VOLATILE), 3 (I_COREMASS) +# 4 (I_VOLCORE), 5 (I_CORE2MOM) +# ICOMPOSITION = +IGROUP: 1 2 2 2 2 +RHOP: 1.923 1.923 2.65 1.35 2.20 +ELEMNAME: pc sulfate dust smoke seasalt +ITYPE: 2 2 3 3 3 +ICOMPOSITION: 0 0 1 2 3 + +# GASES +# ----- +# Define the gas properties (must be at least NGAS entries) +# GASNAME = name +# IGCOMP = gas composition: 1 (I_GCOMP_H2O), 2 (I_GCOMP_H2SO4), 3 (I_GCOMP_SO2), +# 4 (I_GCOMP_HNO3) +# IGVAPREQ = vapor pressure equation: -1 (I_VAPRTN_NULL), 1 (I_VAPRTN_H2O_BUCK1981), +# 2 (I_VAPRTN_H2O_MURPHY2005), 3 (I_VAPRTN_H2O_GOFF1946), +# 4 (I_VAPRTN_H2SO4_AYERS1980) +GASNAME: H2O H2SO4 HNO3 +IGCOMP: 1 2 4 +IGVAPREQ: 2 4 -1 + + +# Microphysical process control +# Logical (0 or 1) +DO_COAG: 1 +DO_GROW: 1 +DO_SUBSTEP: 1 +DO_THERMO: 1 +DO_VDIFF: 0 +DO_VTRAN: 1 +DO_FIXEDINIT:1 + +# Substepping and vfall (configured for sulfate case for now) +VF_CONST: 0. +MINSUBSTEPS: 1 +MAXSUBSTEPS: 32 +MAXRETRIES: 16 +CONMAX: 0.1 + +# Species specific parameters (input files, size distribution, other conditions) +# DUST +# Point-wise dust source +point_emissions_srcfilen_dust: /dev/null +dust_emissions_fudgefactor: 2.e-4 + +# SEA SALT +seasalt_emissions_fudgefactor: 1.4 + +# BLACK CARBON + +# SMOKE +organic_matter_to_organic_carbon_ratio: 1.8 +fraction_terpene_to_organic_carbon: 0.1 + +#SULFATE + +# Point-wise sulfate source +point_emissions_srcfilen_sulfate: /dev/null + +# Monochromatic (diagnostic) optical properties + n_channels: 4 + n_moments: 0 + r_channels: 4.7e-7 5.5e-7 6.7e-7 8.7e-7 + filename_optical_properties_DU: /discover/nobackup/pcolarco/fvInput/AeroCom/x/carma_optics_DU.v15.nbin=22.nc + filename_optical_properties_SS: /discover/nobackup/pcolarco/fvInput/AeroCom/x/carma_optics_SS.v3_3.nbin=22.nc + filename_optical_properties_BC: /discover/nobackup/pcolarco/fvInput/AeroCom/x/carma_optics_SU.v1.nbin=22.nc + filename_optical_properties_SM: /discover/nobackup/pcolarco/fvInput/AeroCom/x/carma_optics_SM.v1.nbin=22.nc + filename_optical_properties_SU: /discover/nobackup/pcolarco/fvInput/AeroCom/x/carma_optics_SU.v1.nbin=22.nc + +# Band optical properties +# Current is a place holder...need CARMA tables for RRTMG, these are just +# GOCART tables made to cause code not to crash (although it will if CARMA is +# AeroProvider) + NUM_BANDS: 30 + DU_OPTICS: ExtData/chemistry/AerosolOptics/v0.0.0/x/opticsBands_DU.v15_3.RRTMG.nc + SS_OPTICS: ExtData/chemistry/AerosolOptics/v0.0.0/x/opticsBands_DU.v15_3.RRTMG.nc + SU_OPTICS: ExtData/chemistry/AerosolOptics/v0.0.0/x/opticsBands_DU.v15_3.RRTMG.nc + OC_OPTICS: ExtData/chemistry/AerosolOptics/v0.0.0/x/opticsBands_DU.v15_3.RRTMG.nc + BC_OPTICS: ExtData/chemistry/AerosolOptics/v0.0.0/x/opticsBands_DU.v15_3.RRTMG.nc + BRC_OPTICS: ExtData/chemistry/AerosolOptics/v0.0.0/x/opticsBands_DU.v15_3.RRTMG.nc + NI_OPTICS: ExtData/chemistry/AerosolOptics/v0.0.0/x/opticsBands_DU.v15_3.RRTMG.nc + +# The following code is the initial registry + COMP_NAME: CARMA + +# Only change the Registry version when major structural changes +# occurs, not changes in content +# -------------------------------------------------------------- + MAPL_REGISTRY_VERSION: 1.00 + +# ------------ +# Import State +# ------------ + + +# -------------------|-------------|-----|---|----|---|---|-----|------|-------------------------- +# Short | | | V |Item|Intervl| Sub | Def | Long +# Name | Units | Dim |Loc|Type| R | A |Tiles| ault | Name +# -------------------|-------------|-----|---|----|---|---|-----|------|-------------------------- + ZLE | m | xyz | E | | | | | | Layer interface geopot height + PLE | Pa | xyz | E | | | | | | Layer interface pressure + TROPP | Pa | xy | | | | | | | Tropopause pressure (blended estimate) + Q | kg kg-1 | xyz | C | | | | | | Specific Humidity + RH2 | 1 | xyz | C | | | | | | Relative Humidity after Moist + T | K | xyz | C | | | | | | Air Temperature (from Dynamics) + AIRDENS | kg m-3 | xyz | C | | | | | | Air density + USTAR | m s-1 | xy | | | | | | | Friction Speed + U10M | m s-1 | xy | | | | | | | E/W 10-meter wind speed + V10M | m s-1 | xy | | | | | | | N/S 10-meter wind speed + ZPBL | m | xy | | | | | | | PBL Height + Z0H | m | xy | | | | | | | Roughness Length for Heat + SH | W m-2 | xy | | | | | | | Sensible Heat Flux + NCN_PRCP | kg m-2 s-1 | xy | | | | | | | Non-convective Precipitation + CN_PRCP | kg m-2 s-1 | xy | | | | | | | Surface Conv. rain flux needed by land + LWI | 1 | xy | | | | | | | Land Ocean Ice Mask + FROCEAN | 1 | xy | | | | | | | Ocean fraction + FRLAKE | 1 | xy | | | | | | | Lake fraction + FRLAND | 1 | xy | | | | | | | Land fraction + FRACI | 1 | xy | | | | | | | Ice fraction + WET1 | 1 | xy | | | | | | | Surface Soil Wetness + AREA | m2 | xy | | | | | | | agrid_cell_area + CNV_MFD | kg m-2 s-1 | xyz | C | | | | | | detraining_mass_flux + CNV_MFC | kg m-2 s-1 | xyz | E | | | | | | cumulative_mass_flux + CNV_QC | kg kg-1 | xyz | C | | | | | | grid_mean_convective_condensate + U | m s-1 | xyz | C | | | | | | Eastward (E/W) wind + V | m s-1 | xyz | C | | | | | | Northward (N/S) wind + PFI_LSAN | kg m-2 s-1 | xyz | E | | | | | | 3D flux of ice nonconvective precipitation + PFL_LSAN | kg m-2 s-1 | xyz | E | | | | | | 3D flux of liquid nonconvective precipitation +# Aerosol source functions + CARMA_DU_SRC | 1 | xy | | | | | | | dust source efficiency + CARMA_SM_BIOMASS | 1 | xy | | | | | | | smoke biomass burning + CARMA_SM_BIOFUEL | 1 | xy | | | | | | | smoke biofuel + CARMA_SM_ANTEOC1 | 1 | xy | | | | | | | smoke anthro (1) + CARMA_SM_ANTEOC2 | 1 | xy | | | | | | | smoke anthro (2) + CARMA_SM_SHIP | 1 | xy | | | | | | | smoke ship + CARMA_OC_TERPENE | kg m-2 s-1 | xy | | | | | | | monoterpene emissions + CARMA_PSOA_ANTHRO_VOC | kg m-3 s-1 | xyz | C | | | | | | SOA production anthropogenic VOC + CARMA_PSOA_BIOB_VOC | kg m-3 s-1 | xyz | C | | | | | | SOA production biomass burning VOC + CARMA_PSO4TOT | kg m-2 s-1 | xyz | C | | | | | | so4- production from chemistry + CARMA_HNO3 | mol mol-1 | xyz | C | | | | | | nitric acid + CARMA_H2SO4 | mol mol-1 | xyz | C | | | | | | sulfuric acid +# -------------------|-------------|-----|---|----|---|---|-----|------|-------------------------- + + +# -------------- +# Internal State +# -------------- + +# +# Note: 1) For friendlies, use "D" for dynamics, "T" for turbulence and "C" for convection; leave blank otherwise +# 2) If quantity requires no restart, put an 'x' in the No Rst column +# 3) RO = Alkoxy radical, RO2 = Organic peroxy radical + + +# --------------|------------|-----|---|----|---|---|-----|------|----|----|---------|--------------------------------- +# Short | | | V |Item|Intervl| Sub | Def | No | Ha | Friends | Long +# Name | Units | Dim |Loc|Type| R | A |Tiles| ault | Rst| lo | | Name +# --------------|------------|-----|---|----|---|---|-----|------|----|----|---------|--------------------------------- +# --------------|------------|-----|---|----|---|---|-----|------|----|----|---------|--------------------------------- + + + +# ------------ +# Export State +# ------------ + + +# ------------------|-------------|-----|---|----|---|---|-----|------|-------------------------- +# Short | | | V |Item|Intervl| Sub | Def | Long +# Name | Units | Dim |Loc|Type| R | A |Tiles| ault | Name +# ------------------|-------------|-----|---|----|---|---|-----|------|-------------------------- + CARMA_DUEM | kg m-2 s-1 | xy | | | | | | | Dust emission flux + CARMA_DUDP | kg m-2 s-1 | xy | | | | | | | Dust deposition flux + CARMA_DUSD | kg m-2 s-1 | xy | | | | | | | Dust sedimentation flux + CARMA_DUWT | kg m-2 s-1 | xy | | | | | | | Dust wet-deposition flux + CARMA_DUSV | kg m-2 s-1 | xy | | | | | | | Dust convective scavenging flux + CARMA_DUCMASS | kg m-2 | xy | | | | | | | Dust column burden + CARMA_DUSMASS | kg m-3 | xy | | | | | | | Dust surface mass concentration + CARMA_DUEXTTAU | 1 | xy | | | | | | | Dust 550-nm extinction AOT + CARMA_DUSCATAU | 1 | xy | | | | | | | Dust 550-nm scattering AOT + CARMA_DUANGSTR | 1 | xy | | | | | | | Dust 470-870 nm Angstrom parameter + CARMA_DUFLUXU | kg m-1 s-1 | xy | | | | | | | Dust column u-wind mass flux + CARMA_DUFLUXV | kg m-1 s-1 | xy | | | | | | | Dust column v-wind mass flux + CARMA_DUMASS | kg kg-1 | xyz | C | | | | | | Dust Mass Mixing Ratio + CARMA_DUCONC | kg m-3 | xyz | C | | | | | | Dust Mass Concentration + CARMA_DUSAREA | m-2 m-3 | xyz | C | | | | | | Dust Total Surace Area Density + CARMA_DUNUMD | m-3 | xyz | C | | | | | | Dust Total Number Density + CARMA_DUREFF | m | xyz | C | | | | | | Dust Particle Effective Radius + CARMA_MXDUEM | kg m-2 s-1 | xy | | | | | | | Mixed Dust emission flux + CARMA_MXDUDP | kg m-2 s-1 | xy | | | | | | | Mixed Dust deposition flux + CARMA_MXDUSD | kg m-2 s-1 | xy | | | | | | | Mixed Dust sedimentation flux + CARMA_MXDUWT | kg m-2 s-1 | xy | | | | | | | Mixed Dust wet-deposition flux + CARMA_MXDUSV | kg m-2 s-1 | xy | | | | | | | Mixed Dust convective scavenging flux + CARMA_MXDUCMASS | kg m-2 | xy | | | | | | | Mixed Dust column burden + CARMA_MXDUSMASS | kg m-3 | xy | | | | | | | Mixed Dust surface mass concentration + CARMA_MXDUEXTTAU | 1 | xy | | | | | | | Mixed Dust 550-nm extinction AOT + CARMA_MXDUSCATAU | 1 | xy | | | | | | | Mixed Dust 550-nm scattering AOT + CARMA_MXDUANGSTR | 1 | xy | | | | | | | Mixed Dust 470-870 nm Angstrom parameter + CARMA_MXDUFLUXU | kg m-1 s-1 | xy | | | | | | | Mixed Dust column u-wind mass flux + CARMA_MXDUFLUXV | kg m-1 s-1 | xy | | | | | | | Mixed Dust column v-wind mass flux + CARMA_MXDUMASS | kg kg-1 | xyz | C | | | | | | Mixed Dust Mass Mixing Ratio + CARMA_MXDUCONC | kg m-3 | xyz | C | | | | | | Mixed Dust Mass Concentration + CARMA_ASHEM | kg m-2 s-1 | xy | | | | | | | Ash emission flux + CARMA_ASHDP | kg m-2 s-1 | xy | | | | | | | Ash deposition flux + CARMA_ASHSD | kg m-2 s-1 | xy | | | | | | | Ash sedimentation flux + CARMA_ASHWT | kg m-2 s-1 | xy | | | | | | | Ash wet-deposition flux + CARMA_ASHSV | kg m-2 s-1 | xy | | | | | | | Ash convective scavenging flux + CARMA_ASHCMASS | kg m-2 | xy | | | | | | | Ash column burden + CARMA_ASHSMASS | kg m-3 | xy | | | | | | | Ash surface mass concentration + CARMA_ASHEXTTAU | 1 | xy | | | | | | | Ash 550-nm extinction AOT + CARMA_ASHSCATAU | 1 | xy | | | | | | | Ash 550-nm scattering AOT + CARMA_ASHANGSTR | 1 | xy | | | | | | | Ash 470-870 nm Angstrom parameter + CARMA_ASHFLUXU | kg m-1 s-1 | xy | | | | | | | Ash column u-wind mass flux + CARMA_ASHFLUXV | kg m-1 s-1 | xy | | | | | | | Ash column v-wind mass flux + CARMA_ASHMASS | kg kg-1 | xyz | C | | | | | | Ash Mass Mixing Ratio + CARMA_ASHCONC | kg m-3 | xyz | C | | | | | | Ash Mass Concentration + CARMA_ASHSAREA | m-2 m-3 | xyz | C | | | | | | Ash Total Surace Area Density + CARMA_ASHNUMD | m-3 | xyz | C | | | | | | Ash Total Number Density + CARMA_ASHREFF | m | xyz | C | | | | | | Ash Particle Effective Radius + CARMA_MXASHEM | kg m-2 s-1 | xy | | | | | | | Mixed Ash emission flux + CARMA_MXASHDP | kg m-2 s-1 | xy | | | | | | | Mixed Ash deposition flux + CARMA_MXASHSD | kg m-2 s-1 | xy | | | | | | | Mixed Ash sedimentation flux + CARMA_MXASHWT | kg m-2 s-1 | xy | | | | | | | Mixed Ash wet-deposition flux + CARMA_MXASHSV | kg m-2 s-1 | xy | | | | | | | Mixed Ash convective scavenging flux + CARMA_MXASHCMASS | kg m-2 | xy | | | | | | | Mixed Ash column burden + CARMA_MXASHSMASS | kg m-3 | xy | | | | | | | Mixed Ash surface mass concentration + CARMA_MXASHEXTTAU | 1 | xy | | | | | | | Mixed Ash 550-nm extinction AOT + CARMA_MXASHSCATAU | 1 | xy | | | | | | | Mixed Ash 550-nm scattering AOT + CARMA_MXASHANGSTR | 1 | xy | | | | | | | Mixed Ash 470-870 nm Angstrom parameter + CARMA_MXASHFLUXU | kg m-1 s-1 | xy | | | | | | | Mixed Ash column u-wind mass flux + CARMA_MXASHFLUXV | kg m-1 s-1 | xy | | | | | | | Mixed Ash column v-wind mass flux + CARMA_MXASHMASS | kg kg-1 | xyz | C | | | | | | Mixed Ash Mass Mixing Ratio + CARMA_MXASHCONC | kg m-3 | xyz | C | | | | | | Mixed Ash Mass Concentration + CARMA_SSEM | kg m-2 s-1 | xy | | | | | | | Seasalt emission flux + CARMA_SSDP | kg m-2 s-1 | xy | | | | | | | Seasalt deposition flux + CARMA_SSSD | kg m-2 s-1 | xy | | | | | | | Seasalt sedimentation flux + CARMA_SSWT | kg m-2 s-1 | xy | | | | | | | Seasalt wet-deposition flux + CARMA_SSSV | kg m-2 s-1 | xy | | | | | | | Seasalt convective scavenging flux + CARMA_SSCMASS | kg m-2 | xy | | | | | | | Seasalt column burden + CARMA_SSSMASS | kg m-3 | xy | | | | | | | Seasalt surface mass concentration + CARMA_SSEXTTAU | 1 | xy | | | | | | | Seasalt 550-nm extinction AOT + CARMA_SSSCATAU | 1 | xy | | | | | | | Seasalt 550-nm scattering AOT + CARMA_SSANGSTR | 1 | xy | | | | | | | Seasalt 470-870 nm Angstrom parameter + CARMA_SSFLUXU | kg m-1 s-1 | xy | | | | | | | Seasalt column u-wind mass flux + CARMA_SSFLUXV | kg m-1 s-1 | xy | | | | | | | Seasalt column v-wind mass flux + CARMA_SSMASS | kg kg-1 | xyz | C | | | | | | Seasalt Mass Mixing Ratio + CARMA_SSCONC | kg m-3 | xyz | C | | | | | | Seasalt Mass Concentration + CARMA_SSSAREA | m-2 m-3 | xyz | C | | | | | | Seasalt Total Surace Area Density + CARMA_SSNUMD | m-3 | xyz | C | | | | | | Seasalt Total Number Density + CARMA_SSREFF | m | xyz | C | | | | | | Seasalt Particle Effective Radius + CARMA_MXSSEM | kg m-2 s-1 | xy | | | | | | | Mixed Seasalt emission flux + CARMA_MXSSDP | kg m-2 s-1 | xy | | | | | | | Mixed Seasalt deposition flux + CARMA_MXSSSD | kg m-2 s-1 | xy | | | | | | | Mixed Seasalt sedimentation flux + CARMA_MXSSWT | kg m-2 s-1 | xy | | | | | | | Mixed Seasalt wet-deposition flux + CARMA_MXSSSV | kg m-2 s-1 | xy | | | | | | | Mixed Seasalt convective scavenging flux + CARMA_MXSSCMASS | kg m-2 | xy | | | | | | | Mixed Seasalt column burden + CARMA_MXSSSMASS | kg m-3 | xy | | | | | | | Mixed Seasalt surface mass concentration + CARMA_MXSSEXTTAU | 1 | xy | | | | | | | Mixed Seasalt 550-nm extinction AOT + CARMA_MXSSSCATAU | 1 | xy | | | | | | | Mixed Seasalt 550-nm scattering AOT + CARMA_MXSSANGSTR | 1 | xy | | | | | | | Mixed Seasalt 470-870 nm Angstrom parameter + CARMA_MXSSFLUXU | kg m-1 s-1 | xy | | | | | | | Mixed Seasalt column u-wind mass flux + CARMA_MXSSFLUXV | kg m-1 s-1 | xy | | | | | | | Mixed Seasalt column v-wind mass flux + CARMA_MXSSMASS | kg kg-1 | xyz | C | | | | | | Mixed Seasalt Mass Mixing Ratio + CARMA_MXSSCONC | kg m-3 | xyz | C | | | | | | Mixed Seasalt Mass Concentration + CARMA_SUDP | kg m-2 s-1 | xy | | | | | | | Sulfate deposition flux + CARMA_SUSD | kg m-2 s-1 | xy | | | | | | | Sulfate sedimentation flux + CARMA_SUWT | kg m-2 s-1 | xy | | | | | | | Sulfate wet-deposition flux + CARMA_SUSV | kg m-2 s-1 | xy | | | | | | | Sulfate convective scavenging flux + CARMA_SUCMASS | kg m-2 | xy | | | | | | | Sulfate column burden + CARMA_SUSMASS | kg m-3 | xy | | | | | | | Sulfate surface mass concentration + CARMA_SUEXTTAU | 1 | xy | | | | | | | Sulfate 550-nm extinction AOT + CARMA_SUSCATAU | 1 | xy | | | | | | | Sulfate 550-nm scattering AOT + CARMA_SUSTRATEXTTAU | 1 | xy | | | | | | | Stratospheric Sulfate 550-nm extinction AOT + CARMA_SUSTRATSCATAU | 1 | xy | | | | | | | Stratospheric Sulfate 550-nm scattering AOT + CARMA_SUANGSTR | 1 | xy | | | | | | | Sulfate 470-870 nm Angstrom parameter + CARMA_SUFLUXU | kg m-1 s-1 | xy | | | | | | | Sulfate column u-wind mass flux + CARMA_SUFLUXV | kg m-1 s-1 | xy | | | | | | | Sulfate column v-wind mass flux + CARMA_SUMASS | kg kg-1 | xyz | C | | | | | | Sulfate Mass Mixing Ratio + CARMA_SUCONC | kg m-3 | xyz | C | | | | | | Sulfate Mass Concentration + CARMA_SUNUC | m-3 s-1 | xyz | C | | | | | | Sulfate Total Nucleation Rate + CARMA_SUSAREA | m-2 m-3 | xyz | C | | | | | | Sulfate Total Surace Area Density + CARMA_SUSAREAv | m-2 m-3 | xyz | C | | | | | | Sulfate Total Surace Area Density (zeroed volcanic) + CARMA_SUNUMD | m-3 | xyz | C | | | | | | Sulfate Total Number Density + CARMA_SUREFF | m | xyz | C | | | | | | Sulfate Particle Effective Radius + CARMA_H2SO4CMASS | kg m-2 | xy | | | | | | | Sulfuric Acid vapor column burden + CARMA_MXSAREA | m-2 m-3 | xyz | C | | | | | | Mixed Group Total Surace Area Density + CARMA_MXNUMD | m-3 | xyz | C | | | | | | Mixed Group Total Number Density + CARMA_MXREFF | m | xyz | C | | | | | | Mixed Group Particle Effective Radius + CARMA_MXSUDP | kg m-2 s-1 | xy | | | | | | | Mixed Sulfate deposition flux + CARMA_MXSUSD | kg m-2 s-1 | xy | | | | | | | Mixed Sulfate sedimentation flux + CARMA_MXSUWT | kg m-2 s-1 | xy | | | | | | | Mixed Sulfate wet-deposition flux + CARMA_MXSUSV | kg m-2 s-1 | xy | | | | | | | Mixed Sulfate convective scavenging flux + CARMA_MXSUCMASS | kg m-2 | xy | | | | | | | Mixed Sulfate column burden + CARMA_MXSUSMASS | kg m-3 | xy | | | | | | | Mixed Sulfate surface mass concentration + CARMA_MXSUEXTTAU | 1 | xy | | | | | | | Mixed Sulfate 550-nm extinction AOT + CARMA_MXSUSCATAU | 1 | xy | | | | | | | Mixed Sulfate 550-nm scattering AOT + CARMA_MXSUANGSTR | 1 | xy | | | | | | | Mixed Sulfate 470-870 nm Angstrom parameter + CARMA_MXSUFLUXU | kg m-1 s-1 | xy | | | | | | | Mixed Sulfate column u-wind mass flux + CARMA_MXSUFLUXV | kg m-1 s-1 | xy | | | | | | | Mixed Sulfate column v-wind mass flux + CARMA_MXSUMASS | kg kg-1 | xyz | C | | | | | | Mixed Sulfate Mass Mixing Ratio + CARMA_MXSUCONC | kg m-3 | xyz | C | | | | | | Mixed Sulfate Mass Concentration + CARMA_SMEM | kg m-2 s-1 | xy | | | | | | | Smoke emission flux + CARMA_SMDP | kg m-2 s-1 | xy | | | | | | | Smoke deposition flux + CARMA_SMSD | kg m-2 s-1 | xy | | | | | | | Smoke sedimentation flux + CARMA_SMWT | kg m-2 s-1 | xy | | | | | | | Smoke wet-deposition flux + CARMA_SMSV | kg m-2 s-1 | xy | | | | | | | Smoke convective scavenging flux + CARMA_SMCMASS | kg m-2 | xy | | | | | | | Smoke column burden + CARMA_SMSMASS | kg m-3 | xy | | | | | | | Smoke surface mass concentration + CARMA_SMEXTTAU | 1 | xy | | | | | | | Smoke 550-nm extinction AOT + CARMA_SMSCATAU | 1 | xy | | | | | | | Smoke 550-nm scattering AOT + CARMA_SMANGSTR | 1 | xy | | | | | | | Smoke 470-870 nm Angstrom parameter + CARMA_SMFLUXU | kg m-1 s-1 | xy | | | | | | | Smoke column u-wind mass flux + CARMA_SMFLUXV | kg m-1 s-1 | xy | | | | | | | Smoke column v-wind mass flux + CARMA_SMMASS | kg kg-1 | xyz | C | | | | | | Smoke Mass Mixing Ratio + CARMA_SMCONC | kg m-3 | xyz | C | | | | | | Smoke Mass Concentration + CARMA_SMSAREA | m-2 m-3 | xyz | C | | | | | | Smoke Total Surace Area Density + CARMA_SMNUMD | m-3 | xyz | C | | | | | | Smoke Total Number Density + CARMA_SMREFF | m | xyz | C | | | | | | Smoke Particle Effective Radius + CARMA_MXSMEM | kg m-2 s-1 | xy | | | | | | | Mixed Smoke emission flux + CARMA_MXSMDP | kg m-2 s-1 | xy | | | | | | | Mixed Smoke deposition flux + CARMA_MXSMSD | kg m-2 s-1 | xy | | | | | | | Mixed Smoke sedimentation flux + CARMA_MXSMWT | kg m-2 s-1 | xy | | | | | | | Mixed Smoke wet-deposition flux + CARMA_MXSMSV | kg m-2 s-1 | xy | | | | | | | Mixed Smoke convective scavenging flux + CARMA_MXSMCMASS | kg m-2 | xy | | | | | | | Mixed Smoke column burden + CARMA_MXSMSMASS | kg m-3 | xy | | | | | | | Mixed Smoke surface mass concentration + CARMA_MXSMEXTTAU | 1 | xy | | | | | | | Mixed Smoke 550-nm extinction AOT + CARMA_MXSMSCATAU | 1 | xy | | | | | | | Mixed Smoke 550-nm scattering AOT + CARMA_MXSMANGSTR | 1 | xy | | | | | | | Mixed Smoke 470-870 nm Angstrom parameter + CARMA_MXSMFLUXU | kg m-1 s-1 | xy | | | | | | | Mixed Smoke column u-wind mass flux + CARMA_MXSMFLUXV | kg m-1 s-1 | xy | | | | | | | Mixed Smoke column v-wind mass flux + CARMA_MXSMMASS | kg kg-1 | xyz | C | | | | | | Mixed Smoke Mass Mixing Ratio + CARMA_MXSMCONC | kg m-3 | xyz | C | | | | | | Mixed Smoke Mass Concentration + CARMA_BCEM | kg m-2 s-1 | xy | | | | | | | Black Carbon emission flux + CARMA_BCDP | kg m-2 s-1 | xy | | | | | | | Black Carbon deposition flux + CARMA_BCSD | kg m-2 s-1 | xy | | | | | | | Black Carbon sedimentation flux + CARMA_BCWT | kg m-2 s-1 | xy | | | | | | | Black Carbon wet-deposition flux + CARMA_BCSV | kg m-2 s-1 | xy | | | | | | | Black Carbon convective scavenging flux + CARMA_BCCMASS | kg m-2 | xy | | | | | | | Black Carbon column burden + CARMA_BCSMASS | kg m-3 | xy | | | | | | | Black Carbon surface mass concentration + CARMA_BCEXTTAU | 1 | xy | | | | | | | Black Carbon 550-nm extinction AOT + CARMA_BCSCATAU | 1 | xy | | | | | | | Black Carbon 550-nm scattering AOT + CARMA_BCANGSTR | 1 | xy | | | | | | | Black Carbon 470-870 nm Angstrom parameter + CARMA_BCFLUXU | kg m-1 s-1 | xy | | | | | | | Black Carbon column u-wind mass flux + CARMA_BCFLUXV | kg m-1 s-1 | xy | | | | | | | Black Carbon column v-wind mass flux + CARMA_BCMASS | kg kg-1 | xyz | C | | | | | | Black Carbon Mass Mixing Ratio + CARMA_BCCONC | kg m-3 | xyz | C | | | | | | Black Carbon Mass Concentration + CARMA_MXBCEM | kg m-2 s-1 | xy | | | | | | | Mixed Black Carbon emission flux + CARMA_MXBCDP | kg m-2 s-1 | xy | | | | | | | Mixed Black Carbon deposition flux + CARMA_MXBCSD | kg m-2 s-1 | xy | | | | | | | Mixed Black Carbon sedimentation flux + CARMA_MXBCWT | kg m-2 s-1 | xy | | | | | | | Mixed Black Carbon wet-deposition flux + CARMA_MXBCSV | kg m-2 s-1 | xy | | | | | | | Mixed Black Carbon convective scavenging flux + CARMA_MXBCCMASS | kg m-2 | xy | | | | | | | Mixed Black Carbon column burden + CARMA_MXBCSMASS | kg m-3 | xy | | | | | | | Mixed Black Carbon surface mass concentration + CARMA_MXBCEXTTAU | 1 | xy | | | | | | | Mixed Black Carbon 550-nm extinction AOT + CARMA_MXBCSCATAU | 1 | xy | | | | | | | Mixed Black Carbon 550-nm scattering AOT + CARMA_MXBCANGSTR | 1 | xy | | | | | | | Mixed Black Carbon 470-870 nm Angstrom parameter + CARMA_MXBCFLUXU | kg m-1 s-1 | xy | | | | | | | Mixed Black Carbon column u-wind mass flux + CARMA_MXBCFLUXV | kg m-1 s-1 | xy | | | | | | | Mixed Black Carbon column v-wind mass flux + CARMA_MXBCMASS | kg kg-1 | xyz | C | | | | | | Mixed Black Carbon Mass Mixing Ratio + CARMA_MXBCCONC | kg m-3 | xyz | C | | | | | | Mixed Black Carbon Mass Concentration + CARMA_TOTEXTTAU | 1 | xy | | | | | | | Total 550-nm extinction AOT + CARMA_TOTSCATAU | 1 | xy | | | | | | | Total 550-nm scattering AOT + CARMA_TOTANGSTR | 1 | xy | | | | | | | Total 470-870 nm Angstrom parameter + CARMA_DUEXTCOEF | m-1 | xyz | C | | | | | | Dust 550 nm extinction coefficient + CARMA_DUSCACOEF | m-1 | xyz | C | | | | | | Dust 550 nm scattering coefficient + CARMA_BCEXTCOEF | m-1 | xyz | C | | | | | | Black Carbon 550 nm extinction coefficient + CARMA_BCSCACOEF | m-1 | xyz | C | | | | | | Black Carbon 550 nm scattering coefficient + CARMA_SSEXTCOEF | m-1 | xyz | C | | | | | | Seasalt 550 nm extinction coefficient + CARMA_SSSCACOEF | m-1 | xyz | C | | | | | | Seasalt 550 nm scattering coefficient + CARMA_SMEXTCOEF | m-1 | xyz | C | | | | | | Smoke 550 nm extinction coefficient + CARMA_SMSCACOEF | m-1 | xyz | C | | | | | | Smoke 550 nm scattering coefficient + CARMA_SUEXTCOEF | m-1 | xyz | C | | | | | | Sulfate 550 nm extinction coefficient + CARMA_SUSCACOEF | m-1 | xyz | C | | | | | | Sulfate 550 nm scattering coefficient + CARMA_ASHEXTCOEF | m-1 | xyz | C | | | | | | Ash 550 nm extinction coefficient + CARMA_ASHSCACOEF | m-1 | xyz | C | | | | | | Ash 550 nm scattering coefficient + CARMA_SUBSTEPS | 1 | xy | | | | | | | CARMA substeps + CARMA_RETRIES | 1 | xy | | | | | | | CARMA retries + CARMA_ZSUBSTEPS | 1 | xyz | C | | | | | | CARMA substeps per grid box + CARMA_SATH2SO4 | 1 | xyz | C | | | | | | H2SO4 supersaturation + CARMA_SUVF001 | m s-1 | xyz | E | | | | | | SU group vfall bin 001 + CARMA_SUVF002 | m s-1 | xyz | E | | | | | | SU group vfall bin 002 + CARMA_SUVF003 | m s-1 | xyz | E | | | | | | SU group vfall bin 003 + CARMA_SUVF004 | m s-1 | xyz | E | | | | | | SU group vfall bin 004 + CARMA_SUVF005 | m s-1 | xyz | E | | | | | | SU group vfall bin 005 + CARMA_SUVF006 | m s-1 | xyz | E | | | | | | SU group vfall bin 006 + CARMA_SUVF007 | m s-1 | xyz | E | | | | | | SU group vfall bin 007 + CARMA_SUVF008 | m s-1 | xyz | E | | | | | | SU group vfall bin 008 + CARMA_SUVF009 | m s-1 | xyz | E | | | | | | SU group vfall bin 009 + CARMA_SUVF010 | m s-1 | xyz | E | | | | | | SU group vfall bin 010 + CARMA_SUVF011 | m s-1 | xyz | E | | | | | | SU group vfall bin 011 + CARMA_SUVF012 | m s-1 | xyz | E | | | | | | SU group vfall bin 012 + CARMA_SUVF013 | m s-1 | xyz | E | | | | | | SU group vfall bin 013 + CARMA_SUVF014 | m s-1 | xyz | E | | | | | | SU group vfall bin 014 + CARMA_SUVF015 | m s-1 | xyz | E | | | | | | SU group vfall bin 015 + CARMA_SUVF016 | m s-1 | xyz | E | | | | | | SU group vfall bin 016 + CARMA_SUVF017 | m s-1 | xyz | E | | | | | | SU group vfall bin 017 + CARMA_SUVF018 | m s-1 | xyz | E | | | | | | SU group vfall bin 018 + CARMA_SUVF019 | m s-1 | xyz | E | | | | | | SU group vfall bin 019 + CARMA_SUVF020 | m s-1 | xyz | E | | | | | | SU group vfall bin 020 + CARMA_SUVF021 | m s-1 | xyz | E | | | | | | SU group vfall bin 021 + CARMA_SUVF022 | m s-1 | xyz | E | | | | | | SU group vfall bin 022 + CARMA_SUVF023 | m s-1 | xyz | E | | | | | | SU group vfall bin 023 + CARMA_SUVF024 | m s-1 | xyz | E | | | | | | SU group vfall bin 024 + CARMA_MXVF001 | m s-1 | xyz | E | | | | | | MX group vfall bin 001 + CARMA_MXVF002 | m s-1 | xyz | E | | | | | | MX group vfall bin 002 + CARMA_MXVF003 | m s-1 | xyz | E | | | | | | MX group vfall bin 003 + CARMA_MXVF004 | m s-1 | xyz | E | | | | | | MX group vfall bin 004 + CARMA_MXVF005 | m s-1 | xyz | E | | | | | | MX group vfall bin 005 + CARMA_MXVF006 | m s-1 | xyz | E | | | | | | MX group vfall bin 006 + CARMA_MXVF007 | m s-1 | xyz | E | | | | | | MX group vfall bin 007 + CARMA_MXVF008 | m s-1 | xyz | E | | | | | | MX group vfall bin 008 + CARMA_MXVF009 | m s-1 | xyz | E | | | | | | MX group vfall bin 009 + CARMA_MXVF010 | m s-1 | xyz | E | | | | | | MX group vfall bin 010 + CARMA_MXVF011 | m s-1 | xyz | E | | | | | | MX group vfall bin 011 + CARMA_MXVF012 | m s-1 | xyz | E | | | | | | MX group vfall bin 012 + CARMA_MXVF013 | m s-1 | xyz | E | | | | | | MX group vfall bin 013 + CARMA_MXVF014 | m s-1 | xyz | E | | | | | | MX group vfall bin 014 + CARMA_MXVF015 | m s-1 | xyz | E | | | | | | MX group vfall bin 015 + CARMA_MXVF016 | m s-1 | xyz | E | | | | | | MX group vfall bin 016 + CARMA_MXVF017 | m s-1 | xyz | E | | | | | | MX group vfall bin 017 + CARMA_MXVF018 | m s-1 | xyz | E | | | | | | MX group vfall bin 018 + CARMA_MXVF019 | m s-1 | xyz | E | | | | | | MX group vfall bin 019 + CARMA_MXVF020 | m s-1 | xyz | E | | | | | | MX group vfall bin 020 + CARMA_MXVF021 | m s-1 | xyz | E | | | | | | MX group vfall bin 021 + CARMA_MXVF022 | m s-1 | xyz | E | | | | | | MX group vfall bin 022 + CARMA_MXVF023 | m s-1 | xyz | E | | | | | | MX group vfall bin 023 + CARMA_MXVF024 | m s-1 | xyz | E | | | | | | MX group vfall bin 024 +# ------------------|-------------|-----|---|----|---|---|-----|------|-------------------------- + + + diff --git a/CARMAchem_GridComp/CARMAchem_Registry.rc.SU b/CARMAchem_GridComp/CARMAchem_Registry.rc.SU index a4319aa..912e541 100644 --- a/CARMAchem_GridComp/CARMAchem_Registry.rc.SU +++ b/CARMAchem_GridComp/CARMAchem_Registry.rc.SU @@ -64,8 +64,9 @@ ICOMPOSITION: 0 1 2 3 # GASNAME = name # IGCOMP = gas composition: 1 (I_GCOMP_H2O), 2 (I_GCOMP_H2SO4), 3 (I_GCOMP_SO2), # 4 (I_GCOMP_HNO3) -# IGVAPREQ = vapor pressure equation: 1 (I_VAPRTN_H2O_BUCK1981), 2 (I_VAPRTN_H2O_MURPHY2005) -# 3 (I_VAPRTN_H2O_GOFF1946), 4 (I_VAPRTN_H2SO4_AYERS1980) +# IGVAPREQ = vapor pressure equation: -1 (I_VAPRTN_NULL), 1 (I_VAPRTN_H2O_BUCK1981), +# 2 (I_VAPRTN_H2O_MURPHY2005), 3 (I_VAPRTN_H2O_GOFF1946), +# 4 (I_VAPRTN_H2SO4_AYERS1980) GASNAME: H2O H2SO4 HNO3 IGCOMP: 1 2 4 IGVAPREQ: 2 4 -1 diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b63005..8219a7e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,16 +7,27 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] + ### Added +- in CARMA: Added 'microfast parameterization' +- in CARMA: Added a routine to normalize dmdt (prevent gas overshoot) +- in CARMA: Added a NULL option for vapor pressure equation +- Added SO4REFF connectivity from CARMA to GMI +- Added connectivity (OH, H2O2, NO3) from GMI to GOCART + ### Removed + ### Changed +- in CARMA: In a few routines removed initialization of 'rc' +- in CARMA: Changed the test for bootstrapping temperature + ### Fixed + ### Deprecated ## [1.15.0] - 2025-01-16 -### Added -### Removed + ### Changed - The file path was changed for anthropogenic CO emissions that are used by achem. Note that the previous version of the emissions have an incorrect seasonal cycle. @@ -27,8 +38,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Updated GAAS_Gridcomp_Extdata.yaml in AMIP/ to avoid the model to crash when GAAS is turned on and AMIP emissions chosen. -### Deprecated - ## [1.14.0] - 2024-06-21 diff --git a/GEOS_ChemGridComp.F90 b/GEOS_ChemGridComp.F90 index f21051c..79c84d3 100644 --- a/GEOS_ChemGridComp.F90 +++ b/GEOS_ChemGridComp.F90 @@ -494,8 +494,8 @@ subroutine SetServices ( GC, RC ) endif if(myState%enable_GMICHEM .AND. TRIM(providerName) == "CARMA") then CALL MAPL_AddConnectivity ( GC, & - SRC_NAME = (/ 'CARMA_SUSAREA '/), & - DST_NAME = (/ 'SO4SAREA '/), & + SRC_NAME = (/ 'CARMA_SUSAREA ', 'CARMA_SUREFF '/), & + DST_NAME = (/ 'SO4SAREA ', 'SO4REFF '/), & DST_ID = GMICHEM, SRC_ID = CARMA, __RC__) endif if(myState%enable_STRATCHEM .AND. TRIM(providerName) == "CARMA") then @@ -667,12 +667,20 @@ subroutine SetServices ( GC, RC ) ! --------------------------------- IF(myState%enable_GMICHEM .AND. TRIM(providerName) == "GOCART2G") THEN - IF(myState%enable_GOCART2G) & + IF(myState%enable_GOCART2G) THEN CALL MAPL_AddConnectivity ( GC, & SHORT_NAME = (/'AERO'/), & DST_ID = GMICHEM, SRC_ID = GOCART2G, __RC__ ) + ! ... For GOCART::SU,NI + ! --------------------- + CALL MAPL_AddConnectivity ( GC, & + SRC_NAME = (/ "OH ", "H2O2", "NO3 " /), & + DST_NAME = (/ "GMI_OH ", "GMI_H2O2", "GMI_NO3 " /), & + DST_ID=GOCART2G, SRC_ID=GMICHEM, __RC__) + + END IF END IF ! GOCART.data <=> GMICHEM coupling ...