From 4d06ffb7c2bcf17f8cfe4536d62582cd2f813c27 Mon Sep 17 00:00:00 2001 From: Luca Polimene Date: Tue, 26 Jun 2018 12:13:33 +0100 Subject: [PATCH 01/26] UDOM implementation initiated --- src/CMakeLists.txt | 1 + src/TDOC.F90 | 146 ++++++++++++++++++++++++++++++++++++ src/bacteria_docdyn.F90 | 70 ++++++++++++++--- src/ersem_model_library.F90 | 2 + 4 files changed, 208 insertions(+), 11 deletions(-) create mode 100644 src/TDOC.F90 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3b07d53..a498b4a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -20,6 +20,7 @@ add_library(fabm_models_ersem OBJECT mesozooplankton.F90 bacteria.F90 bacteria_docdyn.F90 + TDOC.F90 calcification.F90 carbonate.F90 oxygen.F90 diff --git a/src/TDOC.F90 b/src/TDOC.F90 new file mode 100644 index 0000000..a26238d --- /dev/null +++ b/src/TDOC.F90 @@ -0,0 +1,146 @@ +#include "fabm_driver.h" + +module ersem_TDOC + + use fabm_types + use fabm_particle + + use ersem_shared + use ersem_pelagic_base + + implicit none + + private + + type,extends(type_ersem_pelagic_base),public :: type_ersem_TDOC + ! Variables + type (type_state_variable_id) :: id_RPc,id_T2c, id_O3c + type (type_state_variable_id) :: id_RPn, id_RPp, id_T2n, id_T2p, id_N1p, id_N4n + type (type_model_id) :: id_T2 + type (type_dependency_id) :: id_ETW,id_EIR +! type (type_horizontal_dependency_id) :: id_R1c,id_R1d +! type (type_horizontal_diagnostic_variable_id) :: id_airseaN2O + + ! Parameters + + real(rk) :: suva, iref,phyref,phyt,floc,qp,qn + contains +! Model procedures + procedure :: initialize +! procedure :: do_surface + procedure :: do + end type + +contains + + subroutine initialize(self,configunit) +! +! !DESCRIPTION: +! +! !INPUT PARAMETERS: + class (type_ersem_TDOC),intent(inout),target :: self + integer, intent(in) :: configunit + +! !LOCAL VARIABLES: + real(rk) :: c0,EPS +! +!EOP +!----------------------------------------------------------------------- +!BOC +! call self%get_parameter(self%kuw,'kuw', 'm-1', 'extinction of UV in the water') +! call self%get_parameter(self%suva,'suva','m2*mmol C-1', 'specific UV absorption at 350 nm') + call self%get_parameter(self%iref,'iref','W m-2', 'reference irradiance') + call self%get_parameter(self%phyref,'phyref','d-1 ', 'reference photooxidation rate') + call self%get_parameter(self%phyt,'phyt','adim', 'photooxidated fraction of T1 going into T2) ') + call self%get_parameter(self%floc,'floc','(mmol C-3)-1*d-1 ', 'reference photooxidation rate') + call self%get_parameter(self%qp, 'qp', 'mmol P/mg C','phosphorus to carbon ratio') + call self%get_parameter(self%qn, 'qn', 'mmol N/mg C','nitrogen to carbon ratio') + call self%get_parameter(EPS, 'EPS', 'm^2/mg C','specific shortwave attenuation', default=4.E-4_rk) + call self%get_parameter(c0,'c0','mg C/m^3','background carbon concentration') + + +! Allow ERSEM base model to declare our own state variables. + call self%initialize_ersem_base(sedimentation=.false.) + call self%add_constituent('c',1.e-4_rk,c0,qn=self%qn,qp=self%qp) +! call self%add_constituent('c',0.0_rk) + +! Register links to nutrient pools. +! call self%register_dependency(self%id_EIR,'EIR','W/m^2','downwelling_shortwave_flux', & +! standard_variable=standard_variables%downwelling_shortwave_flux,source=source_do_column) + call self%register_dependency(self%id_EIR,standard_variables%downwelling_shortwave_flux) + call self%register_state_dependency(self%id_RPc,'RPc','mg C/m^3', 'particulate organic carbon') + call self%register_state_dependency(self%id_RPp,'RPp','mmol P/m^3', 'particulate organic phosphorus') + call self%register_state_dependency(self%id_RPn,'RPn','mmol N/m^3', 'particulate organic nitrogen') +! call self%register_state_dependency(self%id_R8c,'R8c','mg C/m^3', 'large particulate organic carbon') +! call self%register_state_dependency(self%id_R8n,'R8n','mmol N /m^3', 'large particulate organic nitrogen') +! call self%register_state_dependency(self%id_R8c,'R8p','mmol P/m^3', 'large particulate organic phosphorus') + call self%register_model_dependency(self%id_T2,'T2') +! call self%register_dependency(self%id_T2c,'T2c','mg C/m^3','non photolabile terrigenous DOC') +! call self%register_dependency(self%id_T2n,'T2n','mmol N/m^3','non photolabile terrigenous DON') +! call self%register_dependency(self%id_T2p,'T2p','mmol P/m^3','non photolabile terrigenous DOP') + call self%register_state_dependency(self%id_T2c,'T2c','mg C/m^3','non photolabile terrigenous DOC') + call self%register_state_dependency(self%id_T2n,'T2n','mg C/m^3','non photolabile terrigenous DON') + call self%register_state_dependency(self%id_T2p,'T2p','mg C/m^3','non photolabile terrigenous DOP') + call self%request_coupling_to_model(self%id_T2c,self%id_T2,standard_variables%total_carbon) + call self%request_coupling_to_model(self%id_T2n,self%id_T2,standard_variables%total_nitrogen) + call self%request_coupling_to_model(self%id_T2p,self%id_T2,standard_variables%total_phosphorus) + + call self%register_state_dependency(self%id_O3c,'O3c','mmol C/m^3','carbon dioxide sink') + ! Register links to nutrient pools. + call self%register_state_dependency(self%id_N1p,'N1p','mmol P/m^3','phosphate') + call self%register_state_dependency(self%id_N4n,'N4n','mmol N/m^3','ammonium') + + ! Register contribution to light extinction + call self%add_to_aggregate_variable(standard_variables%attenuation_coefficient_of_photosynthetic_radiative_flux, & + self%id_c,scale_factor=EPS,include_background=.true.) + + + end subroutine initialize + subroutine do(self,_ARGUMENTS_DO_) + + class (type_ersem_TDOC),intent(in) :: self + _DECLARE_ARGUMENTS_DO_ + + ! !LOCAL VARIABLES: + real(rk) :: flocc,photolysis,R8cP,R8c,T2c,T2n,T2p,O3c,O3cP,T2cP,EIR,c,Xp,Xn + +! Enter spatial loops (if any) + _LOOP_BEGIN_ + + _GET_(self%id_c,c) + _GET_(self%id_T2c,T2cP) +! _GET_(self%id_R8c,R8cP) + _GET_(self%id_O3c,O3cP) + _GET_WITH_BACKGROUND_(self%id_T2c,T2c) + _GET_WITH_BACKGROUND_(self%id_T2n,T2n) + _GET_WITH_BACKGROUND_(self%id_T2p,T2p) +! _GET_WITH_BACKGROUND_(self%id_R8c,R8c) + _GET_(self%id_EIR,EIR) + + IF(T2c.gt.0._rk) then + Xn=self%qn-(T2n/T2c) + Xp=self%qp-(T2p/T2c) + else + Xn=0. + Xp=0. + endif + + photolysis=self%phyref*(EIR/self%iref)*c + flocc=self%floc*c**2 + + _SET_ODE_(self%id_c,-photolysis-flocc) + _SET_ODE_(self%id_RPc,+flocc) + _SET_ODE_(self%id_RPn,+flocc*self%qn) + _SET_ODE_(self%id_RPp,+flocc*self%qp) + _SET_ODE_(self%id_T2c,+photolysis*self%phyt) +! _SET_ODE_(self%id_T2n,photolysis*self%phyt*qn) +! _SET_ODE_(self%id_T2p,photolysis*self%phyt*qp) + _SET_ODE_(self%id_O3c,photolysis*(1._rk-self%phyt)) + _SET_ODE_(self%id_N1p,photolysis*(1._rk-self%phyt)*self%qp+photolysis*self%phyt*Xp) + _SET_ODE_(self%id_N4n,photolysis*(1._rk-self%phyt)*self%qn+photolysis*self%phyt*Xn) + + _LOOP_END_ + + end subroutine do + +end module diff --git a/src/bacteria_docdyn.F90 b/src/bacteria_docdyn.F90 index 4c66b47..a0f0626 100644 --- a/src/bacteria_docdyn.F90 +++ b/src/bacteria_docdyn.F90 @@ -15,16 +15,17 @@ module ersem_bacteria_docdyn type,extends(type_ersem_pelagic_base),public :: type_ersem_bacteria_docdyn ! Variables type (type_state_variable_id) :: id_O3c, id_O2o, id_TA - type (type_state_variable_id) :: id_R1c, id_R2c, id_R3c - type (type_state_variable_id) :: id_R1p + type (type_state_variable_id) :: id_R1c, id_R2c, id_R3c,id_T1c,id_T2c + type (type_state_variable_id) :: id_R1p, id_T1p, id_T1n, id_T2n, id_T2p type (type_state_variable_id) :: id_R1n type (type_state_variable_id) :: id_N1p,id_N4n,id_N7f type (type_dependency_id) :: id_ETW,id_eO2mO2 type (type_state_variable_id),allocatable,dimension(:) :: id_RPc,id_RPp,id_RPn,id_RPf type (type_model_id), allocatable,dimension(:) :: id_RP + type (type_model_id) :: id_T1,id_T2 type (type_diagnostic_variable_id) :: id_fB1O3c, id_fB1NIn, id_fB1N1p type (type_diagnostic_variable_id) :: id_fR1B1c, id_fR2B1c, id_fR3B1c,id_fB1R1c, id_fB1R2c, id_fB1R3c - type (type_diagnostic_variable_id) :: id_fR1B1n,id_fB1R1n,id_fR1B1p,id_fB1R1p + type (type_diagnostic_variable_id) :: id_fR1B1n,id_fB1R1n,id_fR1B1p,id_fB1R1p,id_fT1B1c,id_fT2B1c type (type_diagnostic_variable_id) :: id_minn,id_minp ! Parameters integer :: nRP @@ -36,7 +37,7 @@ module ersem_bacteria_docdyn real(rk) :: puB1X,puB1oX,srsB1X,sR1B1X real(rk) :: qpB1cX,qnB1cX real(rk) :: urB1_O2X - real(rk) :: rR2B1X,rR3B1X + real(rk) :: rR2B1X,rR3B1X,rT1B1X,rT2B1X real(rk),allocatable :: sRPR1(:) real(rk) :: frB1R3 @@ -135,6 +136,34 @@ subroutine initialize(self,configunit) ! Register links to semi-refractory dissolved organic matter pool. call self%register_state_dependency(self%id_R3c,'R3c','mg C/m^3','semi-refractory DOC') + ! Register links to terrigenous dissolved organic matter pool. + call self%register_model_dependency(self%id_T2,'T2') +! call self%register_dependency(self%id_T2c,'T2c','mg C/m^3','non photolabile terrigenous DOC') +! call self%register_dependency(self%id_T2n,'T2n','mmol N/m^3','non photolabile terrigenous DON') +! call self%register_dependency(self%id_T2p,'T2p','mmol P/m^3','non photolabile terrigenous DOP') + call self%register_state_dependency(self%id_T2c,'T2c','mg C/m^3','non photolabile terrigenous DOC') + call self%register_state_dependency(self%id_T2n,'T2n','mg C/m^3','non photolabile terrigenous DON') + call self%register_state_dependency(self%id_T2p,'T2p','mg C/m^3','non photolabile terrigenous DOP') + call self%request_coupling_to_model(self%id_T2c,self%id_T2,standard_variables%total_carbon) + call self%request_coupling_to_model(self%id_T2n,self%id_T2,standard_variables%total_nitrogen) + call self%request_coupling_to_model(self%id_T2p,self%id_T2,standard_variables%total_phosphorus) + + call self%register_model_dependency(self%id_T1,'T1') +! call self%register_dependency(self%id_T1c,'T1c','mg C/m^3','photolabile terrigenous DOC') +! call self%register_dependency(self%id_T1n,'T1n','mmol N/m^3','photolabile terrigenous DON') +! call self%register_dependency(self%id_T1p,'T1p','mmol P/m^3','photolabile terrigenous DOP') +! call self%request_coupling_to_model(self%id_T1c,self%id_T1,standard_variables%total_carbon) +! call self%request_coupling_to_model(self%id_T1n,self%id_T1,standard_variables%total_nitrogen) +! call self%request_coupling_to_model(self%id_T1p,self%id_T1,standard_variables%total_phosphorus) + call self%register_state_dependency(self%id_T1c,'T1c','mg C/m^3','photolabile terrigenous DOC') + call self%register_state_dependency(self%id_T1n,'T1n','mg C/m^3','photolabile terrigenous DON') + call self%register_state_dependency(self%id_T1p,'T1p','mg C/m^3','photolabile terrigenous DOP') + call self%request_coupling_to_model(self%id_T1c,self%id_T1,standard_variables%total_carbon) + call self%request_coupling_to_model(self%id_T1n,self%id_T1,standard_variables%total_nitrogen) + call self%request_coupling_to_model(self%id_T1p,self%id_T1,standard_variables%total_phosphorus) +! call self%register_state_dependency(self%id_T2c,'T2c','mg C/m^3','non photolabile terrigenous DOC') +! call self%register_state_dependency(self%id_T2n,'T2n','mg C/m^3','non photolabile terrigenous DON') +! call self%register_state_dependency(self%id_T2p,'T2p','mg C/m^3','non photolabile terrigenous DOP') allocate(self%sRPR1(self%nRP)) do iRP=1,self%nRP @@ -144,6 +173,8 @@ subroutine initialize(self,configunit) call self%get_parameter(self%rR2B1X,'rR2','-','fraction of semi-labile DOC available to bacteria') call self%get_parameter(self%rR3B1X,'rR3','-','fraction of semi-refractory DOC available to bacteria') + call self%get_parameter(self%rT1B1X,'rT1','-','fraction of T1 available to bacteria') + call self%get_parameter(self%rT2B1X,'rT2','-','fraction of T2 available to bacteria') call self%get_parameter(self%frB1R3,'frR3','-','fraction of activity respiration converted to semi-refractory DOC') ! Register links to external total dissolved inorganic carbon, dissolved oxygen pools @@ -169,6 +200,9 @@ subroutine initialize(self,configunit) call self%register_diagnostic_variable(self%id_fR1B1c,'fR1B1c','mg C/m^3/d','bacterial uptake of labile DOC ') call self%register_diagnostic_variable(self%id_fR2B1c,'fR2B1c','mg C/m^3/d','bacterial uptake of semi-labile DOC ') call self%register_diagnostic_variable(self%id_fR3B1c,'fR3B1c','mg C/m^3/d','bacterial uptake of semi-refractory DOC ') + call self%register_diagnostic_variable(self%id_fT1B1c,'fT1B1c','mg C/m^3/d','bacterial uptake of photolabile terrigenous DOC ') + call self%register_diagnostic_variable(self%id_fT2B1c,'fT2B1c','mg C/m^3/d','bacterial uptake of nonphotolabile terrigenous') + call self%register_diagnostic_variable(self%id_fR1B1n,'fR1B1n','mmol N/m^3/d','bacterial DON uptake') call self%register_diagnostic_variable(self%id_fR1B1p,'fR1B1p','mmol P/m^3/d','bacterial DOP uptake') @@ -191,9 +225,9 @@ subroutine do(self,_ARGUMENTS_DO_) real(rk) :: sB1RD,sutB1,rumB1,sugB1,rugB1,rraB1,fB1O3c real(rk) :: sB1R2,fB1R2c,fB1R3c,fB1RDc real(rk) :: netb1,bge - real(rk) :: fB1N1p,fR1B1p,fB1RDp - real(rk) :: fB1NIn,fR1B1n,fB1RDn - real(rk) :: R3c,R2cP,R3cP + real(rk) :: fB1N1p,fR1B1p,fB1RDp,fTXB1p + real(rk) :: fB1NIn,fR1B1n,fB1RDn,fTXB1n + real(rk) :: R3c,R2cP,R3cP,T1cP,T2cP,T1c,T2c,T1n,T1p,T2n,T2p,T2pP,T2nP,T1nP,T1pP real(rk) :: fB1R1c real(rk) :: totsubst real(rk) :: CORROX @@ -219,13 +253,21 @@ subroutine do(self,_ARGUMENTS_DO_) _GET_(self%id_N4n,N4nP) _GET_WITH_BACKGROUND_(self%id_R1c,R1c) _GET_WITH_BACKGROUND_(self%id_R2c,R2c) + _GET_WITH_BACKGROUND_(self%id_T1c,T1c) + _GET_WITH_BACKGROUND_(self%id_T2c,T2c) _GET_(self%id_R1c,R1cP) _GET_(self%id_R1p,R1pP) _GET_(self%id_R1n,R1nP) + _GET_(self%id_T1n,T1nP) + _GET_(self%id_T1p,T1pP) + _GET_(self%id_T2n,T2nP) + _GET_(self%id_T2p,T2pP) _GET_WITH_BACKGROUND_(self%id_R3c,R3c) _GET_(self%id_R2c,R2cP) _GET_(self%id_R3c,R3cP) + _GET_(self%id_T1c,T1cP) + _GET_(self%id_T2c,T2cP) do iRP=1,self%nRP _GET_WITH_BACKGROUND_(self%id_RPc(iRP),RPc(iRP)) _GET_(self%id_RPc(iRP),RPcP(iRP)) @@ -262,7 +304,7 @@ subroutine do(self,_ARGUMENTS_DO_) ! rugB1 = MIN(rumB1,rutB1) ! specific in substrate concentration: - totsubst = R1cP+R2cP*self%rR2B1X+R3cP*self%rR3B1X+sum(RPcP*self%sRPR1/sutB1) + totsubst = R1cP+R2cP*self%rR2B1X+R3cP*self%rR3B1X+T1cP*self%rT1B1X+T2cP*self%rT2B1X+sum(RPcP*self%sRPR1/sutB1) ! Jorn: check whether total substrate>0 to prevent NaNs if (totsubst>0.0_rk) then sugB1 = rumB1/max(rumB1/sutB1,totsubst) @@ -270,7 +312,7 @@ subroutine do(self,_ARGUMENTS_DO_) sugB1 = 0.0_rk end if ! = MIN(rumB1,rutB1)=MIN(rumB1/(R1cP+R2cP*rR2B1X,sutB1) avoid pot. div. by 0 - rugB1 = sugB1*(R1cP+R2cP*self%rR2B1X+R3cP*self%rR3B1X+sum(RPcP*self%sRPR1/sutB1)) + rugB1 = sugB1*(R1cP+R2cP*self%rR2B1X+R3cP*self%rR3B1X+T1cP*self%rT1B1X+T2cP*self%rT2B1X+sum(RPcP*self%sRPR1/sutB1)) !..Respiration : @@ -305,6 +347,8 @@ subroutine do(self,_ARGUMENTS_DO_) _SET_ODE_(self%id_R1c,+ fB1R1c - sugB1*R1cP) _SET_ODE_(self%id_R2c,+ fB1R2c - sugB1*R2cP*self%rR2B1X) _SET_ODE_(self%id_R3c,+ fB1R3c - sugB1*R3cP*self%rR3B1X) + _SET_ODE_(self%id_T1c, - sugB1*T1cP*self%rT1B1X) + _SET_ODE_(self%id_T2c, - sugB1*T2cP*self%rT2B1X) _SET_DIAGNOSTIC_(self%id_fB1R1c, fB1R1c) _SET_DIAGNOSTIC_(self%id_fB1R2c, fB1R2c) @@ -312,6 +356,8 @@ subroutine do(self,_ARGUMENTS_DO_) _SET_DIAGNOSTIC_(self%id_fR1B1c, sugB1*R1cP) _SET_DIAGNOSTIC_(self%id_fR2B1c, sugB1*R2cP*self%rR2B1X) _SET_DIAGNOSTIC_(self%id_fR3B1c, sugB1*R3cP*self%rR3B1X) + _SET_DIAGNOSTIC_(self%id_fT1B1c, sugB1*T1cP*self%rT1B1X) + _SET_DIAGNOSTIC_(self%id_fT2B1c, sugB1*T2cP*self%rT2B1X) do iRP=1,self%nRP _SET_ODE_(self%id_RPc(iRP),- sugB1*RPcP(iRP)*self%sRPR1(iRP)) @@ -332,6 +378,7 @@ subroutine do(self,_ARGUMENTS_DO_) !..uptake of DOP fR1B1p = sugB1*R1pP + fTXB1p=sugB1*T1pP*self%rT1B1X+sugB1*T2pP*self%rT2B1X !..flux of DOP from B1 @@ -346,7 +393,7 @@ subroutine do(self,_ARGUMENTS_DO_) _SET_ODE_(self%id_RPp(iRP), - fRPB1p(iRP)) end do - _SET_ODE_(self%id_p, + fR1B1p - fB1N1p - fB1RDp) + _SET_ODE_(self%id_p, + fR1B1p +fTXB1p - fB1N1p - fB1RDp) _SET_ODE_(self%id_N1p, + fB1N1p) _SET_ODE_(self%id_R1p, + fB1RDp - fR1B1p) _SET_ODE_(self%id_TA, - fB1N1p) ! Contribution to alkalinity: -1 for phosphate @@ -368,6 +415,7 @@ subroutine do(self,_ARGUMENTS_DO_) !..uptake of DON fR1B1n = sugB1*R1nP + fTXB1n = sugB1*T1nP*self%rT1B1X+sugB1*T2nP*self%rT2B1X !..flux of DON from B1 @@ -382,7 +430,7 @@ subroutine do(self,_ARGUMENTS_DO_) end do _SET_ODE_(self%id_N4n, + fB1NIn) - _SET_ODE_(self%id_n, + fR1B1n - fB1NIn - fB1RDn) + _SET_ODE_(self%id_n, + fR1B1n + fTXB1n - fB1NIn - fB1RDn) _SET_ODE_(self%id_R1n, + fB1RDn - fR1B1n) _SET_ODE_(self%id_TA, + fB1NIn) ! Contribution to alkalinity: +1 for ammonium diff --git a/src/ersem_model_library.F90 b/src/ersem_model_library.F90 index f012295..fa3fb42 100644 --- a/src/ersem_model_library.F90 +++ b/src/ersem_model_library.F90 @@ -13,6 +13,7 @@ module ersem_model_library use ersem_mesozooplankton use ersem_bacteria use ersem_bacteria_docdyn + use ersem_TDOC use ersem_nitrification use ersem_light use ersem_light_iop @@ -63,6 +64,7 @@ subroutine create(self,name,model) case ('mesozooplankton'); allocate(type_ersem_mesozooplankton::model) case ('bacteria'); allocate(type_ersem_bacteria::model) case ('bacteria_docdyn'); allocate(type_ersem_bacteria_docdyn::model) + case ('TDOC'); allocate(type_ersem_TDOC::model) case ('nitrification'); allocate(type_ersem_nitrification::model) case ('light'); allocate(type_ersem_light::model) case ('light_iop'); allocate(type_ersem_light_iop::model) From db1780dc24229e5f191b92567351d2a723141b98 Mon Sep 17 00:00:00 2001 From: Luca Polimene Date: Fri, 29 Jun 2018 10:45:01 +0100 Subject: [PATCH 02/26] mass conservation issues due to mg to mml conversion solved --- src/TDOC.F90 | 32 ++++++++++++++++++++++---------- src/bacteria_docdyn.F90 | 4 ++-- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/TDOC.F90 b/src/TDOC.F90 index a26238d..2a15a0b 100644 --- a/src/TDOC.F90 +++ b/src/TDOC.F90 @@ -20,6 +20,7 @@ module ersem_TDOC type (type_dependency_id) :: id_ETW,id_EIR ! type (type_horizontal_dependency_id) :: id_R1c,id_R1d ! type (type_horizontal_diagnostic_variable_id) :: id_airseaN2O + type (type_diagnostic_variable_id) :: id_photolysis,id_flocc ! Parameters @@ -81,7 +82,7 @@ subroutine initialize(self,configunit) call self%register_state_dependency(self%id_T2c,'T2c','mg C/m^3','non photolabile terrigenous DOC') call self%register_state_dependency(self%id_T2n,'T2n','mg C/m^3','non photolabile terrigenous DON') call self%register_state_dependency(self%id_T2p,'T2p','mg C/m^3','non photolabile terrigenous DOP') - call self%request_coupling_to_model(self%id_T2c,self%id_T2,standard_variables%total_carbon) + call self%request_coupling_to_model(self%id_T2c,self%id_T2,'c') call self%request_coupling_to_model(self%id_T2n,self%id_T2,standard_variables%total_nitrogen) call self%request_coupling_to_model(self%id_T2p,self%id_T2,standard_variables%total_phosphorus) @@ -89,6 +90,8 @@ subroutine initialize(self,configunit) ! Register links to nutrient pools. call self%register_state_dependency(self%id_N1p,'N1p','mmol P/m^3','phosphate') call self%register_state_dependency(self%id_N4n,'N4n','mmol N/m^3','ammonium') + call self%register_diagnostic_variable(self%id_photolysis,'photolysis','mgC/m^3/d','photolysis') + call self%register_diagnostic_variable(self%id_flocc,'flocc','mgC/m^3/d','flocculation') ! Register contribution to light extinction call self%add_to_aggregate_variable(standard_variables%attenuation_coefficient_of_photosynthetic_radiative_flux, & @@ -102,7 +105,7 @@ subroutine do(self,_ARGUMENTS_DO_) _DECLARE_ARGUMENTS_DO_ ! !LOCAL VARIABLES: - real(rk) :: flocc,photolysis,R8cP,R8c,T2c,T2n,T2p,O3c,O3cP,T2cP,EIR,c,Xp,Xn + real(rk) :: flocc,photolysis,R8cP,R8c,T2c,T2n,T2p,O3c,O3cP,T2cP,EIR,c,Xp,Xn,XXn,T1T2,px,nx ! Enter spatial loops (if any) _LOOP_BEGIN_ @@ -118,26 +121,35 @@ subroutine do(self,_ARGUMENTS_DO_) _GET_(self%id_EIR,EIR) IF(T2c.gt.0._rk) then - Xn=self%qn-(T2n/T2c) - Xp=self%qp-(T2p/T2c) + Xn=self%qn/(T2n/T2c) + Xp=self%qp/(T2p/T2c) + nx=self%qn-(T2n/T2c) + px=self%qp-(T2p/T2c) else - Xn=0. - Xp=0. + Xn=0._rk + Xp=0._rk + nx=1._rk + px=1._rk endif + XXn=min(Xn,Xp) + photolysis=self%phyref*(EIR/self%iref)*c flocc=self%floc*c**2 + T1T2=self%phyt*min(1._rk,XXn) _SET_ODE_(self%id_c,-photolysis-flocc) _SET_ODE_(self%id_RPc,+flocc) _SET_ODE_(self%id_RPn,+flocc*self%qn) _SET_ODE_(self%id_RPp,+flocc*self%qp) - _SET_ODE_(self%id_T2c,+photolysis*self%phyt) + _SET_ODE_(self%id_T2c,+photolysis*T1T2) ! _SET_ODE_(self%id_T2n,photolysis*self%phyt*qn) ! _SET_ODE_(self%id_T2p,photolysis*self%phyt*qp) - _SET_ODE_(self%id_O3c,photolysis*(1._rk-self%phyt)) - _SET_ODE_(self%id_N1p,photolysis*(1._rk-self%phyt)*self%qp+photolysis*self%phyt*Xp) - _SET_ODE_(self%id_N4n,photolysis*(1._rk-self%phyt)*self%qn+photolysis*self%phyt*Xn) + _SET_ODE_(self%id_O3c,photolysis*(1._rk-T1T2)/CMass) + _SET_ODE_(self%id_N1p,photolysis*(1._rk-T1T2)*self%qp+photolysis*T1T2*px) + _SET_ODE_(self%id_N4n,photolysis*(1._rk-T1T2)*self%qn+photolysis*T1T2*nx) + _SET_DIAGNOSTIC_(self%id_photolysis, photolysis) + _SET_DIAGNOSTIC_(self%id_flocc, flocc) _LOOP_END_ diff --git a/src/bacteria_docdyn.F90 b/src/bacteria_docdyn.F90 index a0f0626..c1482ad 100644 --- a/src/bacteria_docdyn.F90 +++ b/src/bacteria_docdyn.F90 @@ -144,7 +144,7 @@ subroutine initialize(self,configunit) call self%register_state_dependency(self%id_T2c,'T2c','mg C/m^3','non photolabile terrigenous DOC') call self%register_state_dependency(self%id_T2n,'T2n','mg C/m^3','non photolabile terrigenous DON') call self%register_state_dependency(self%id_T2p,'T2p','mg C/m^3','non photolabile terrigenous DOP') - call self%request_coupling_to_model(self%id_T2c,self%id_T2,standard_variables%total_carbon) + call self%request_coupling_to_model(self%id_T2c,self%id_T2,'c') call self%request_coupling_to_model(self%id_T2n,self%id_T2,standard_variables%total_nitrogen) call self%request_coupling_to_model(self%id_T2p,self%id_T2,standard_variables%total_phosphorus) @@ -158,7 +158,7 @@ subroutine initialize(self,configunit) call self%register_state_dependency(self%id_T1c,'T1c','mg C/m^3','photolabile terrigenous DOC') call self%register_state_dependency(self%id_T1n,'T1n','mg C/m^3','photolabile terrigenous DON') call self%register_state_dependency(self%id_T1p,'T1p','mg C/m^3','photolabile terrigenous DOP') - call self%request_coupling_to_model(self%id_T1c,self%id_T1,standard_variables%total_carbon) + call self%request_coupling_to_model(self%id_T1c,self%id_T1,'c') call self%request_coupling_to_model(self%id_T1n,self%id_T1,standard_variables%total_nitrogen) call self%request_coupling_to_model(self%id_T1p,self%id_T1,standard_variables%total_phosphorus) ! call self%register_state_dependency(self%id_T2c,'T2c','mg C/m^3','non photolabile terrigenous DOC') From 86ba5c3b741cc80993a3ec0b2ccbbd377695872e Mon Sep 17 00:00:00 2001 From: Luca Polimene Date: Mon, 2 Jul 2018 16:52:37 +0100 Subject: [PATCH 03/26] UDOM implementation completed with flocculation --- src/TDOC.F90 | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/TDOC.F90 b/src/TDOC.F90 index 2a15a0b..c951841 100644 --- a/src/TDOC.F90 +++ b/src/TDOC.F90 @@ -18,13 +18,14 @@ module ersem_TDOC type (type_state_variable_id) :: id_RPn, id_RPp, id_T2n, id_T2p, id_N1p, id_N4n type (type_model_id) :: id_T2 type (type_dependency_id) :: id_ETW,id_EIR + type (type_dependency_id) :: id_X1X ! Salinity ! type (type_horizontal_dependency_id) :: id_R1c,id_R1d ! type (type_horizontal_diagnostic_variable_id) :: id_airseaN2O type (type_diagnostic_variable_id) :: id_photolysis,id_flocc ! Parameters - real(rk) :: suva, iref,phyref,phyt,floc,qp,qn + real(rk) :: suva, iref,phyref,phyt,floc,qp,qn,scx,sbx contains ! Model procedures procedure :: initialize @@ -58,6 +59,8 @@ subroutine initialize(self,configunit) call self%get_parameter(self%qn, 'qn', 'mmol N/mg C','nitrogen to carbon ratio') call self%get_parameter(EPS, 'EPS', 'm^2/mg C','specific shortwave attenuation', default=4.E-4_rk) call self%get_parameter(c0,'c0','mg C/m^3','background carbon concentration') + call self%get_parameter(self%sbx, 'sbx', 'psu', 'optimal salinity') + call self%get_parameter(self%scx, 'scx', '', 'salinity function parameter') ! Allow ERSEM base model to declare our own state variables. @@ -69,6 +72,7 @@ subroutine initialize(self,configunit) ! call self%register_dependency(self%id_EIR,'EIR','W/m^2','downwelling_shortwave_flux', & ! standard_variable=standard_variables%downwelling_shortwave_flux,source=source_do_column) call self%register_dependency(self%id_EIR,standard_variables%downwelling_shortwave_flux) + call self%register_dependency(self%id_X1X,standard_variables%practical_salinity) call self%register_state_dependency(self%id_RPc,'RPc','mg C/m^3', 'particulate organic carbon') call self%register_state_dependency(self%id_RPp,'RPp','mmol P/m^3', 'particulate organic phosphorus') call self%register_state_dependency(self%id_RPn,'RPn','mmol N/m^3', 'particulate organic nitrogen') @@ -106,6 +110,7 @@ subroutine do(self,_ARGUMENTS_DO_) ! !LOCAL VARIABLES: real(rk) :: flocc,photolysis,R8cP,R8c,T2c,T2n,T2p,O3c,O3cP,T2cP,EIR,c,Xp,Xn,XXn,T1T2,px,nx + real(rk) :: X1X,sal ! Enter spatial loops (if any) _LOOP_BEGIN_ @@ -119,6 +124,7 @@ subroutine do(self,_ARGUMENTS_DO_) _GET_WITH_BACKGROUND_(self%id_T2p,T2p) ! _GET_WITH_BACKGROUND_(self%id_R8c,R8c) _GET_(self%id_EIR,EIR) + _GET_(self%id_X1X,X1X) IF(T2c.gt.0._rk) then Xn=self%qn/(T2n/T2c) @@ -134,8 +140,17 @@ subroutine do(self,_ARGUMENTS_DO_) XXn=min(Xn,Xp) +!Flocculation is assumed to be (log-normal) function of salinity(sal) + + X1X=max(X1X,0.01_rk) !to avoid log(0) in sal!! + sal=exp(-((log(X1X)-self%sbx)**2._rk)/(2._rk*self%scx**2._rk)) + flocc=self%floc*sal*c**2 + +! Photolysis photolysis=self%phyref*(EIR/self%iref)*c - flocc=self%floc*c**2 + +! in order to ensure mass conservation, the fraction of carbon going from T1 to T2 after photolysis is down regulated +! if T1 has less N and/or P than T2. Any excess of nutrients is redirected into the dissolved pool (N1p and N4n). (Luca, July 2018) T1T2=self%phyt*min(1._rk,XXn) _SET_ODE_(self%id_c,-photolysis-flocc) @@ -143,8 +158,6 @@ subroutine do(self,_ARGUMENTS_DO_) _SET_ODE_(self%id_RPn,+flocc*self%qn) _SET_ODE_(self%id_RPp,+flocc*self%qp) _SET_ODE_(self%id_T2c,+photolysis*T1T2) -! _SET_ODE_(self%id_T2n,photolysis*self%phyt*qn) -! _SET_ODE_(self%id_T2p,photolysis*self%phyt*qp) _SET_ODE_(self%id_O3c,photolysis*(1._rk-T1T2)/CMass) _SET_ODE_(self%id_N1p,photolysis*(1._rk-T1T2)*self%qp+photolysis*T1T2*px) _SET_ODE_(self%id_N4n,photolysis*(1._rk-T1T2)*self%qn+photolysis*T1T2*nx) From c8638b1eadffedbc7f9582a0dc03f761400bdc83 Mon Sep 17 00:00:00 2001 From: Luca Polimene Date: Wed, 22 May 2019 10:39:00 +0100 Subject: [PATCH 04/26] yaml file updated with the master --- .../fabm-ersem-15.06-L4-ben-docdyn-iop.yaml | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/testcases/fabm-ersem-15.06-L4-ben-docdyn-iop.yaml b/testcases/fabm-ersem-15.06-L4-ben-docdyn-iop.yaml index 73b709f..749977f 100644 --- a/testcases/fabm-ersem-15.06-L4-ben-docdyn-iop.yaml +++ b/testcases/fabm-ersem-15.06-L4-ben-docdyn-iop.yaml @@ -85,6 +85,33 @@ instances: c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 initialization: c: 12.0 # carbon (mg C/m^3) + T1: + long_name: photolabile terrigenous DOC + model: ersem/TDOC + parameters: + composition: c + qn: 0.0042 + qp: 0.0001 # elemental composition + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + phyref: 0.03 #reference photooxidation rate (d-1) + iref: 130 # reference irradinace for photooxidation (W m-2) + floc: 0.000002 # flocculation rate (d-1) + initialization: + c: 12.0 + coupling: + T2: T2/c + R8: R8 + O3: O3/c + T2: + long_name: non photolabile terrigenous DOC + model: ersem/pelagic_base + parameters: + composition: c + qn: 0.0042 + qp: 0.0001 # elemental composition + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + c: 12.0 R4: long_name: small-size pom model: ersem/pelagic_base @@ -245,7 +272,13 @@ instances: R1p: R1/p # labile dissolved organic phosphorus (mmol P/m^3) R1n: R1/n # labile dissolved organic nitrogen (mmol N/m^3) R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) - R3c: R3/c # semi-refractory DOC (mg C/m^3) + R3c: R3/c + T1c: T1/c # photolabile terrigenous dissolved organic carbon (mg C/m^3) + T1p: T1/p # photolabile terrigenous dissolved organic phosphorus (mmol P/m^3) + T1n: T1/n # photolabile terrigenous dissolved organic nitrogen (mmol N/m^3) + T2c: T2/c # non-photolabile terrigenous dissolved organic carbon (mg C/m^3) + T2p: T2/p # non-photolabile terrigenous dissolved organic phosphorus (mmol P/m^3) + T2n: T2/n # non-photolabile terrigenous dissolved organic nitrogen (mmol N/m^3) O3c: O3/c # carbon dioxide (mmol C/m^3) O2o: O2/o # oxygen (mmol O_2/m^3) pel_nit: From 88754dabc23453400da3799aa8956264cb0b28fc Mon Sep 17 00:00:00 2001 From: Luca Polimene Date: Wed, 22 May 2019 14:38:10 +0100 Subject: [PATCH 05/26] yaml file updated --- src/TDOC.F90 | 6 +-- .../fabm-ersem-15.06-L4-ben-docdyn-iop.yaml | 42 +++++++++++-------- 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/src/TDOC.F90 b/src/TDOC.F90 index c951841..1f7cac8 100644 --- a/src/TDOC.F90 +++ b/src/TDOC.F90 @@ -158,9 +158,9 @@ subroutine do(self,_ARGUMENTS_DO_) _SET_ODE_(self%id_RPn,+flocc*self%qn) _SET_ODE_(self%id_RPp,+flocc*self%qp) _SET_ODE_(self%id_T2c,+photolysis*T1T2) - _SET_ODE_(self%id_O3c,photolysis*(1._rk-T1T2)/CMass) - _SET_ODE_(self%id_N1p,photolysis*(1._rk-T1T2)*self%qp+photolysis*T1T2*px) - _SET_ODE_(self%id_N4n,photolysis*(1._rk-T1T2)*self%qn+photolysis*T1T2*nx) + _SET_ODE_(self%id_O3c,+photolysis*(1._rk-T1T2)/CMass) + _SET_ODE_(self%id_N1p,+photolysis*(1._rk-T1T2)*self%qp+photolysis*T1T2*px) + _SET_ODE_(self%id_N4n,+photolysis*(1._rk-T1T2)*self%qn+photolysis*T1T2*nx) _SET_DIAGNOSTIC_(self%id_photolysis, photolysis) _SET_DIAGNOSTIC_(self%id_flocc, flocc) diff --git a/testcases/fabm-ersem-15.06-L4-ben-docdyn-iop.yaml b/testcases/fabm-ersem-15.06-L4-ben-docdyn-iop.yaml index 749977f..53676e9 100644 --- a/testcases/fabm-ersem-15.06-L4-ben-docdyn-iop.yaml +++ b/testcases/fabm-ersem-15.06-L4-ben-docdyn-iop.yaml @@ -89,19 +89,25 @@ instances: long_name: photolabile terrigenous DOC model: ersem/TDOC parameters: - composition: c qn: 0.0042 qp: 0.0001 # elemental composition - c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 - phyref: 0.03 #reference photooxidation rate (d-1) - iref: 130 # reference irradinace for photooxidation (W m-2) - floc: 0.000002 # flocculation rate (d-1) + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + phyref: 0.03 # reference photooxidation rate (d-1) + iref: 130 # reference irradinace for photooxidation (W m-2) + floc: 0.000002 # max flocculation rate [d-1 (mg C)-1] + sbx: 0.69 # log(salinity) (psu) at which flocculation is max.max is assumed to be around 2 psu. 0.69=log(2) + scx: 1.35 # salinity function parameter. 1.35 allows the max flocc rate to decrease of one order of magnitude at 35 psu + phyt: 0.24 # fraction of T1 going to T2 after photolysis initialization: - c: 12.0 + c: 1200.0 coupling: - T2: T2/c - R8: R8 - O3: O3/c + T2: T2 + RPc: R6/c + RPn: R6/n + RPp: R6/p + O3c: O3/c + N1p: N1/p + N4n: N4/n T2: long_name: non photolabile terrigenous DOC model: ersem/pelagic_base @@ -111,7 +117,7 @@ instances: qp: 0.0001 # elemental composition c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 initialization: - c: 12.0 + c: 1200.0 R4: long_name: small-size pom model: ersem/pelagic_base @@ -257,6 +263,8 @@ instances: sRP3R1: 0.001 # remineralisation of substrate 3 to DOM (1/d) rR2: 0.0075 # fraction of semi-labile DOC available to bacteria (-) rR3: 0.0025 # fraction of semi-refractory DOC available to bacteria (-) + rT1: 0.002 # fraction of T1 available for bacteria + rT2: 0.006 # fraction of T2 available for bacteria frR3: 0.3 # fraction of activity respiration converted to semi-refractory DOC (-) initialization: c: 15.7 # carbon (mg C/m^3) @@ -272,13 +280,13 @@ instances: R1p: R1/p # labile dissolved organic phosphorus (mmol P/m^3) R1n: R1/n # labile dissolved organic nitrogen (mmol N/m^3) R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) - R3c: R3/c - T1c: T1/c # photolabile terrigenous dissolved organic carbon (mg C/m^3) - T1p: T1/p # photolabile terrigenous dissolved organic phosphorus (mmol P/m^3) - T1n: T1/n # photolabile terrigenous dissolved organic nitrogen (mmol N/m^3) - T2c: T2/c # non-photolabile terrigenous dissolved organic carbon (mg C/m^3) - T2p: T2/p # non-photolabile terrigenous dissolved organic phosphorus (mmol P/m^3) - T2n: T2/n # non-photolabile terrigenous dissolved organic nitrogen (mmol N/m^3) + R3c: R3/c + T1: T1 # photolabile terrigenous dissolved organic carbon (mg C/m^3) +# T1p: T1/p # photolabile terrigenous dissolved organic phosphorus (mmol P/m^3) +# T1n: T1/n # photolabile terrigenous dissolved organic nitrogen (mmol N/m^3) + T2: T2 # non-photolabile terrigenous dissolved organic carbon (mg C/m^3) +# T2p: T2/p # non-photolabile terrigenous dissolved organic phosphorus (mmol P/m^3) +# T2n: T2/n # non-photolabile terrigenous dissolved organic nitrogen (mmol N/m^3) O3c: O3/c # carbon dioxide (mmol C/m^3) O2o: O2/o # oxygen (mmol O_2/m^3) pel_nit: From 62d8d923a6507b6c00de1b1462e0850442a0dd40 Mon Sep 17 00:00:00 2001 From: Yuri Artioli Date: Sat, 26 Oct 2019 13:27:27 +0100 Subject: [PATCH 06/26] added option to do photolysis only at surface to mimic UV driven photolysis --- src/TDOC.F90 | 49 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/src/TDOC.F90 b/src/TDOC.F90 index 1f7cac8..87d69a3 100644 --- a/src/TDOC.F90 +++ b/src/TDOC.F90 @@ -20,12 +20,12 @@ module ersem_TDOC type (type_dependency_id) :: id_ETW,id_EIR type (type_dependency_id) :: id_X1X ! Salinity ! type (type_horizontal_dependency_id) :: id_R1c,id_R1d -! type (type_horizontal_diagnostic_variable_id) :: id_airseaN2O + type (type_horizontal_diagnostic_variable_id) :: id_surface_photolysis type (type_diagnostic_variable_id) :: id_photolysis,id_flocc ! Parameters - real(rk) :: suva, iref,phyref,phyt,floc,qp,qn,scx,sbx + real(rk) :: suva, iref,phyref,surf_phyref,phyt,floc,qp,qn,scx,sbx contains ! Model procedures procedure :: initialize @@ -53,6 +53,7 @@ subroutine initialize(self,configunit) ! call self%get_parameter(self%suva,'suva','m2*mmol C-1', 'specific UV absorption at 350 nm') call self%get_parameter(self%iref,'iref','W m-2', 'reference irradiance') call self%get_parameter(self%phyref,'phyref','d-1 ', 'reference photooxidation rate') + call self%get_parameter(self%surf_phyref,'surf_phyref','d-1 ', 'reference surface_photooxidation rate',default=0._rk) call self%get_parameter(self%phyt,'phyt','adim', 'photooxidated fraction of T1 going into T2) ') call self%get_parameter(self%floc,'floc','(mmol C-3)-1*d-1 ', 'reference photooxidation rate') call self%get_parameter(self%qp, 'qp', 'mmol P/mg C','phosphorus to carbon ratio') @@ -95,6 +96,7 @@ subroutine initialize(self,configunit) call self%register_state_dependency(self%id_N1p,'N1p','mmol P/m^3','phosphate') call self%register_state_dependency(self%id_N4n,'N4n','mmol N/m^3','ammonium') call self%register_diagnostic_variable(self%id_photolysis,'photolysis','mgC/m^3/d','photolysis') + call self%register_horizontal_diagnostic_variable(self%id_surface_photolysis,'surface_photolysis','mgC/m^2/d','surface photolysis') call self%register_diagnostic_variable(self%id_flocc,'flocc','mgC/m^3/d','flocculation') ! Register contribution to light extinction @@ -167,5 +169,48 @@ subroutine do(self,_ARGUMENTS_DO_) _LOOP_END_ end subroutine do + + subroutine do_surface(self,_ARGUMENTS_DO_SURFACE_) + class (type_ersem_TDOC), intent(in) :: self + _DECLARE_ARGUMENTS_DO_SURFACE_ + + real (rk) :: EIR,photolysis,c,T1T2,T2c,T2n,T2p + real (rk) :: Xn,Xp,XXn,nx,px + + _GET_(self%id_EIR,EIR) + _GET_(self%id_c,c) + _GET_WITH_BACKGROUND_(self%id_T2c,T2c) + _GET_WITH_BACKGROUND_(self%id_T2n,T2n) + _GET_WITH_BACKGROUND_(self%id_T2p,T2p) + + IF(T2c.gt.0._rk) then + Xn=self%qn/(T2n/T2c) + Xp=self%qp/(T2p/T2c) + nx=self%qn-(T2n/T2c) + px=self%qp-(T2p/T2c) + else + Xn=0._rk + Xp=0._rk + nx=1._rk + px=1._rk + endif + + XXn=min(Xn,Xp) + ! Photolysis + photolysis=self%surf_phyref*(EIR/self%iref)*c + ! in order to ensure mass conservation, the fraction of carbon going from T1 to T2 after photolysis is down regulated + ! if T1 has less N and/or P than T2. Any excess of nutrients is redirected into the dissolved pool (N1p and N4n). (Luca, July 2018) + T1T2=self%phyt*min(1._rk,XXn) + + + _SET_SURFACE_EXCHANGE_(self%id_c,-photolysis) + _SET_SURFACE_EXCHANGE_(self%id_T2c,+photolysis*T1T2) + _SET_SURFACE_EXCHANGE_(self%id_O3c,+photolysis*(1._rk-T1T2)/CMass) + _SET_SURFACE_EXCHANGE_(self%id_N1p,+photolysis*(1._rk-T1T2)*self%qp+photolysis*T1T2*px) + _SET_SURFACE_EXCHANGE_(self%id_N4n,+photolysis*(1._rk-T1T2)*self%qn+photolysis*T1T2*nx) + _SET_HORIZONTAL_DIAGNOSTIC_(self%id_surface_photolysis, photolysis) + + _HORIZONTAL_LOOP_END_ + end subroutine end module From 609fe0d5c2f6eb7f6fc4024a05412abb2742d4b2 Mon Sep 17 00:00:00 2001 From: Yuri Artioli Date: Tue, 29 Oct 2019 11:55:46 +0000 Subject: [PATCH 07/26] added declaration of do_surface procedure --- src/TDOC.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TDOC.F90 b/src/TDOC.F90 index 87d69a3..1febd13 100644 --- a/src/TDOC.F90 +++ b/src/TDOC.F90 @@ -29,7 +29,7 @@ module ersem_TDOC contains ! Model procedures procedure :: initialize -! procedure :: do_surface + procedure :: do_surface procedure :: do end type From aec904516b559678df10fcd36215e520a7a476ae Mon Sep 17 00:00:00 2001 From: Yuri Artioli Date: Tue, 29 Oct 2019 15:00:48 +0000 Subject: [PATCH 08/26] added flexibility in the light source activating photochemistry. This should be safeguard the model in respect to upcoming changes to the light modules and allow for easier coupliong to spectral light module --- src/TDOC.F90 | 21 ++++++++++--------- .../fabm-ersem-15.06-L4-ben-docdyn-iop.yaml | 2 ++ 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/TDOC.F90 b/src/TDOC.F90 index 1febd13..f0b9adb 100644 --- a/src/TDOC.F90 +++ b/src/TDOC.F90 @@ -17,7 +17,7 @@ module ersem_TDOC type (type_state_variable_id) :: id_RPc,id_T2c, id_O3c type (type_state_variable_id) :: id_RPn, id_RPp, id_T2n, id_T2p, id_N1p, id_N4n type (type_model_id) :: id_T2 - type (type_dependency_id) :: id_ETW,id_EIR + type (type_dependency_id) :: id_ETW, id_chemEIR type (type_dependency_id) :: id_X1X ! Salinity ! type (type_horizontal_dependency_id) :: id_R1c,id_R1d type (type_horizontal_diagnostic_variable_id) :: id_surface_photolysis @@ -25,7 +25,7 @@ module ersem_TDOC ! Parameters - real(rk) :: suva, iref,phyref,surf_phyref,phyt,floc,qp,qn,scx,sbx + real(rk) :: suva, iref,phyref,surf_phyref,phyt,floc,qp,qn,scx,sbx,chemEIR_scaling contains ! Model procedures procedure :: initialize @@ -62,7 +62,7 @@ subroutine initialize(self,configunit) call self%get_parameter(c0,'c0','mg C/m^3','background carbon concentration') call self%get_parameter(self%sbx, 'sbx', 'psu', 'optimal salinity') call self%get_parameter(self%scx, 'scx', '', 'salinity function parameter') - + call self%get_parameter(self%chemEIR_scaling, 'chemEIR_scaling', '', 'scaling factor for incoming radiation activating photochemical reaction', default=1._rk) ! Allow ERSEM base model to declare our own state variables. call self%initialize_ersem_base(sedimentation=.false.) @@ -72,7 +72,8 @@ subroutine initialize(self,configunit) ! Register links to nutrient pools. ! call self%register_dependency(self%id_EIR,'EIR','W/m^2','downwelling_shortwave_flux', & ! standard_variable=standard_variables%downwelling_shortwave_flux,source=source_do_column) - call self%register_dependency(self%id_EIR,standard_variables%downwelling_shortwave_flux) + !call self%register_dependency(self%id_EIR,standard_variables%downwelling_shortwave_flux) + call self%register_dependency(self%id_chemEIR,'chemEIR','W/m^2','incoming radiation activating photochemical reaction') call self%register_dependency(self%id_X1X,standard_variables%practical_salinity) call self%register_state_dependency(self%id_RPc,'RPc','mg C/m^3', 'particulate organic carbon') call self%register_state_dependency(self%id_RPp,'RPp','mmol P/m^3', 'particulate organic phosphorus') @@ -111,7 +112,7 @@ subroutine do(self,_ARGUMENTS_DO_) _DECLARE_ARGUMENTS_DO_ ! !LOCAL VARIABLES: - real(rk) :: flocc,photolysis,R8cP,R8c,T2c,T2n,T2p,O3c,O3cP,T2cP,EIR,c,Xp,Xn,XXn,T1T2,px,nx + real(rk) :: flocc,photolysis,R8cP,R8c,T2c,T2n,T2p,O3c,O3cP,T2cP,chemEIR,c,Xp,Xn,XXn,T1T2,px,nx real(rk) :: X1X,sal ! Enter spatial loops (if any) @@ -125,7 +126,7 @@ subroutine do(self,_ARGUMENTS_DO_) _GET_WITH_BACKGROUND_(self%id_T2n,T2n) _GET_WITH_BACKGROUND_(self%id_T2p,T2p) ! _GET_WITH_BACKGROUND_(self%id_R8c,R8c) - _GET_(self%id_EIR,EIR) + _GET_(self%id_chemEIR,chemEIR) _GET_(self%id_X1X,X1X) IF(T2c.gt.0._rk) then @@ -149,7 +150,7 @@ subroutine do(self,_ARGUMENTS_DO_) flocc=self%floc*sal*c**2 ! Photolysis - photolysis=self%phyref*(EIR/self%iref)*c + photolysis=self%phyref*(chemEIR*self%chemEIR_scaling/self%iref)*c ! in order to ensure mass conservation, the fraction of carbon going from T1 to T2 after photolysis is down regulated ! if T1 has less N and/or P than T2. Any excess of nutrients is redirected into the dissolved pool (N1p and N4n). (Luca, July 2018) @@ -174,10 +175,10 @@ subroutine do_surface(self,_ARGUMENTS_DO_SURFACE_) class (type_ersem_TDOC), intent(in) :: self _DECLARE_ARGUMENTS_DO_SURFACE_ - real (rk) :: EIR,photolysis,c,T1T2,T2c,T2n,T2p + real (rk) :: chemEIR,photolysis,c,T1T2,T2c,T2n,T2p real (rk) :: Xn,Xp,XXn,nx,px - _GET_(self%id_EIR,EIR) + _GET_(self%id_chemEIR,chemEIR) _GET_(self%id_c,c) _GET_WITH_BACKGROUND_(self%id_T2c,T2c) _GET_WITH_BACKGROUND_(self%id_T2n,T2n) @@ -197,7 +198,7 @@ subroutine do_surface(self,_ARGUMENTS_DO_SURFACE_) XXn=min(Xn,Xp) ! Photolysis - photolysis=self%surf_phyref*(EIR/self%iref)*c + photolysis=self%surf_phyref*(chemEIR*self%chemEIR_scaling/self%iref)*c ! in order to ensure mass conservation, the fraction of carbon going from T1 to T2 after photolysis is down regulated ! if T1 has less N and/or P than T2. Any excess of nutrients is redirected into the dissolved pool (N1p and N4n). (Luca, July 2018) T1T2=self%phyt*min(1._rk,XXn) diff --git a/testcases/fabm-ersem-15.06-L4-ben-docdyn-iop.yaml b/testcases/fabm-ersem-15.06-L4-ben-docdyn-iop.yaml index 53676e9..616e670 100644 --- a/testcases/fabm-ersem-15.06-L4-ben-docdyn-iop.yaml +++ b/testcases/fabm-ersem-15.06-L4-ben-docdyn-iop.yaml @@ -98,9 +98,11 @@ instances: sbx: 0.69 # log(salinity) (psu) at which flocculation is max.max is assumed to be around 2 psu. 0.69=log(2) scx: 1.35 # salinity function parameter. 1.35 allows the max flocc rate to decrease of one order of magnitude at 35 psu phyt: 0.24 # fraction of T1 going to T2 after photolysis + chemEIR_Scaling: 2. # scaling factor for incoming radiation activiating photochemical reactions initialization: c: 1200.0 coupling: + chemEIR: light/perEIR T2: T2 RPc: R6/c RPn: R6/n From 1d956df8ba97ffcdb6ff24c8ede2945a0b23b331 Mon Sep 17 00:00:00 2001 From: Yuri Artioli Date: Thu, 31 Oct 2019 13:57:34 +0000 Subject: [PATCH 09/26] fixing typos in the yaml file --- testcases/fabm-ersem-15.06-L4-ben-docdyn-iop.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/testcases/fabm-ersem-15.06-L4-ben-docdyn-iop.yaml b/testcases/fabm-ersem-15.06-L4-ben-docdyn-iop.yaml index 616e670..b18c48c 100644 --- a/testcases/fabm-ersem-15.06-L4-ben-docdyn-iop.yaml +++ b/testcases/fabm-ersem-15.06-L4-ben-docdyn-iop.yaml @@ -98,11 +98,11 @@ instances: sbx: 0.69 # log(salinity) (psu) at which flocculation is max.max is assumed to be around 2 psu. 0.69=log(2) scx: 1.35 # salinity function parameter. 1.35 allows the max flocc rate to decrease of one order of magnitude at 35 psu phyt: 0.24 # fraction of T1 going to T2 after photolysis - chemEIR_Scaling: 2. # scaling factor for incoming radiation activiating photochemical reactions + chemEIR_scaling: 2. # scaling factor for incoming radiation activiating photochemical reactions initialization: c: 1200.0 coupling: - chemEIR: light/perEIR + chemEIR: light/parEIR T2: T2 RPc: R6/c RPn: R6/n From fb7ecf0ebe35751ca6c98929e69cefcb2406af63 Mon Sep 17 00:00:00 2001 From: Yuri Artioli Date: Thu, 7 Nov 2019 10:21:33 +0000 Subject: [PATCH 10/26] added begin statement for horizontal loop --- src/TDOC.F90 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/TDOC.F90 b/src/TDOC.F90 index f0b9adb..ef96939 100644 --- a/src/TDOC.F90 +++ b/src/TDOC.F90 @@ -178,6 +178,9 @@ subroutine do_surface(self,_ARGUMENTS_DO_SURFACE_) real (rk) :: chemEIR,photolysis,c,T1T2,T2c,T2n,T2p real (rk) :: Xn,Xp,XXn,nx,px +! Enter horizontal loops (if any) + _HORIZONTAL_LOOP_BEGIN_ + _GET_(self%id_chemEIR,chemEIR) _GET_(self%id_c,c) _GET_WITH_BACKGROUND_(self%id_T2c,T2c) From 49ad3244e7f3a3a455163685737801a42a12c431 Mon Sep 17 00:00:00 2001 From: Yuri Artioli Date: Thu, 12 Dec 2019 16:26:35 +0000 Subject: [PATCH 11/26] changes to account for aging processes in TDOC COMPILES - DOESN'T RUN --- src/TDOC.F90 | 117 +++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 103 insertions(+), 14 deletions(-) diff --git a/src/TDOC.F90 b/src/TDOC.F90 index ef96939..4c5e077 100644 --- a/src/TDOC.F90 +++ b/src/TDOC.F90 @@ -3,6 +3,7 @@ module ersem_TDOC use fabm_types + use fabm_builtin_models use fabm_particle use ersem_shared @@ -16,22 +17,40 @@ module ersem_TDOC ! Variables type (type_state_variable_id) :: id_RPc,id_T2c, id_O3c type (type_state_variable_id) :: id_RPn, id_RPp, id_T2n, id_T2p, id_N1p, id_N4n - type (type_model_id) :: id_T2 + type (type_state_variable_id) :: id_T1_older_c,id_T1_older_n,id_T1_older_p + type (type_model_id) :: id_T2, id_T1_older type (type_dependency_id) :: id_ETW, id_chemEIR type (type_dependency_id) :: id_X1X ! Salinity ! type (type_horizontal_dependency_id) :: id_R1c,id_R1d - type (type_horizontal_diagnostic_variable_id) :: id_surface_photolysis - type (type_diagnostic_variable_id) :: id_photolysis,id_flocc + type (type_horizontal_diagnostic_variable_id) :: id_surface_photolysis, id_surface_photo_aging + type (type_diagnostic_variable_id) :: id_photolysis,id_flocc, id_photo_aging ! Parameters real(rk) :: suva, iref,phyref,surf_phyref,phyt,floc,qp,qn,scx,sbx,chemEIR_scaling + real(rk) :: age, photoaging,bioaging + contains ! Model procedures procedure :: initialize procedure :: do_surface procedure :: do end type + + ! Submodel that is seen by bacteria for microbial degradation + ! this is currently needed because the microbial degradation flux (calculated by the bacteria module) is needed here for the aging of tDOC + type,extends(type_particle_model),public :: type_ersem_shadow_tDOC + type (type_diagnostic_variable_id) :: id_c_shadow ! shadow state variable + type (type_state_variable_id) :: id_parent_c, id_T1_older_parent_c ! ,id_parent_n, id_T1_older_parent_n,id_parent_p, id_T1_older_parent_p + type (type_model_id) :: id_parent, id_T1_older_parent + + real (rk) :: qn, qp, bioaging + + contains + procedure :: initialize => shadow_initialize + procedure :: do => shadow_do + end type + contains @@ -45,6 +64,7 @@ subroutine initialize(self,configunit) ! !LOCAL VARIABLES: real(rk) :: c0,EPS + class (type_ersem_shadow_tDOC), pointer :: shadow ! !EOP !----------------------------------------------------------------------- @@ -63,7 +83,10 @@ subroutine initialize(self,configunit) call self%get_parameter(self%sbx, 'sbx', 'psu', 'optimal salinity') call self%get_parameter(self%scx, 'scx', '', 'salinity function parameter') call self%get_parameter(self%chemEIR_scaling, 'chemEIR_scaling', '', 'scaling factor for incoming radiation activating photochemical reaction', default=1._rk) - + !call self%get_parameter(self%age, 'age', 'd', 'Characteristic age of the tDOC pool', default=0._rk)) ! for now the parameter is calculated a priori + call self%get_parameter(self%photoaging, 'photoaging', '-', 'aging due to photo oxidation') + call self%get_parameter(self%bioaging, 'bioaging', '-', 'aging due to microbial oxidation') + ! Allow ERSEM base model to declare our own state variables. call self%initialize_ersem_base(sedimentation=.false.) call self%add_constituent('c',1.e-4_rk,c0,qn=self%qn,qp=self%qp) @@ -78,16 +101,18 @@ subroutine initialize(self,configunit) call self%register_state_dependency(self%id_RPc,'RPc','mg C/m^3', 'particulate organic carbon') call self%register_state_dependency(self%id_RPp,'RPp','mmol P/m^3', 'particulate organic phosphorus') call self%register_state_dependency(self%id_RPn,'RPn','mmol N/m^3', 'particulate organic nitrogen') -! call self%register_state_dependency(self%id_R8c,'R8c','mg C/m^3', 'large particulate organic carbon') -! call self%register_state_dependency(self%id_R8n,'R8n','mmol N /m^3', 'large particulate organic nitrogen') -! call self%register_state_dependency(self%id_R8c,'R8p','mmol P/m^3', 'large particulate organic phosphorus') + call self%register_model_dependency(self%id_T1_older,'T1_older') + call self%register_state_dependency(self%id_T1_older_c,'T1_older_c','mg C/m^3','non photolabile terrigenous DOC') + call self%register_state_dependency(self%id_T1_older_n,'T1_older_n','mmol N/m^3','non photolabile terrigenous DON') + call self%register_state_dependency(self%id_T1_older_p,'T1_older_p','mmol P/m^3','non photolabile terrigenous DOP') + call self%request_coupling_to_model(self%id_T1_older_c,self%id_T1_older,'c') + call self%request_coupling_to_model(self%id_T1_older_n,self%id_T1_older,standard_variables%total_nitrogen) + call self%request_coupling_to_model(self%id_T1_older_p,self%id_T1_older,standard_variables%total_phosphorus) + call self%register_model_dependency(self%id_T2,'T2') -! call self%register_dependency(self%id_T2c,'T2c','mg C/m^3','non photolabile terrigenous DOC') -! call self%register_dependency(self%id_T2n,'T2n','mmol N/m^3','non photolabile terrigenous DON') -! call self%register_dependency(self%id_T2p,'T2p','mmol P/m^3','non photolabile terrigenous DOP') call self%register_state_dependency(self%id_T2c,'T2c','mg C/m^3','non photolabile terrigenous DOC') - call self%register_state_dependency(self%id_T2n,'T2n','mg C/m^3','non photolabile terrigenous DON') - call self%register_state_dependency(self%id_T2p,'T2p','mg C/m^3','non photolabile terrigenous DOP') + call self%register_state_dependency(self%id_T2n,'T2n','mmol N/m^3','non photolabile terrigenous DON') + call self%register_state_dependency(self%id_T2p,'T2p','mmol P/m^3','non photolabile terrigenous DOP') call self%request_coupling_to_model(self%id_T2c,self%id_T2,'c') call self%request_coupling_to_model(self%id_T2n,self%id_T2,standard_variables%total_nitrogen) call self%request_coupling_to_model(self%id_T2p,self%id_T2,standard_variables%total_phosphorus) @@ -97,15 +122,27 @@ subroutine initialize(self,configunit) call self%register_state_dependency(self%id_N1p,'N1p','mmol P/m^3','phosphate') call self%register_state_dependency(self%id_N4n,'N4n','mmol N/m^3','ammonium') call self%register_diagnostic_variable(self%id_photolysis,'photolysis','mgC/m^3/d','photolysis') + call self%register_diagnostic_variable(self%id_photo_aging,'photoaging','mgC/m^3/d','aging due to 3D photoloysis') call self%register_horizontal_diagnostic_variable(self%id_surface_photolysis,'surface_photolysis','mgC/m^2/d','surface photolysis') + call self%register_horizontal_diagnostic_variable(self%id_surface_photo_aging,'surface_photoaging','mgC/m^2/d','aging due to surface photolysis') call self%register_diagnostic_variable(self%id_flocc,'flocc','mgC/m^3/d','flocculation') ! Register contribution to light extinction call self%add_to_aggregate_variable(standard_variables%attenuation_coefficient_of_photosynthetic_radiative_flux, & self%id_c,scale_factor=EPS,include_background=.true.) - + + + allocate(shadow) + shadow%qn=self%qn + shadow%qp=self%qp + shadow%bioaging=self%bioaging + call shadow%couplings%set_string('parent',self%name) + call shadow%couplings%set_string('T1_older_parent','T1_older') + call self%add_child(shadow,'shadow',configunit=configunit) end subroutine initialize + + subroutine do(self,_ARGUMENTS_DO_) class (type_ersem_TDOC),intent(in) :: self @@ -156,7 +193,12 @@ subroutine do(self,_ARGUMENTS_DO_) ! if T1 has less N and/or P than T2. Any excess of nutrients is redirected into the dissolved pool (N1p and N4n). (Luca, July 2018) T1T2=self%phyt*min(1._rk,XXn) - _SET_ODE_(self%id_c,-photolysis-flocc) + _SET_ODE_(self%id_c,-(1._rk+self%photoaging)*photolysis-flocc) + + _SET_ODE_(self%id_T1_older_c,self%photoaging*photolysis) + _SET_ODE_(self%id_T1_older_n,self%photoaging*photolysis*self%qn) + _SET_ODE_(self%id_T1_older_p,self%photoaging*photolysis*self%qp) + _SET_ODE_(self%id_RPc,+flocc) _SET_ODE_(self%id_RPn,+flocc*self%qn) _SET_ODE_(self%id_RPp,+flocc*self%qp) @@ -216,5 +258,52 @@ subroutine do_surface(self,_ARGUMENTS_DO_SURFACE_) _HORIZONTAL_LOOP_END_ end subroutine + + subroutine shadow_initialize(self,configunit) + + ! !INPUT PARAMETERS: + class (type_ersem_shadow_TDOC),intent(inout),target :: self + integer, intent(in) :: configunit + + self%dt = 3600._rk*24._rk + + call self%register_diagnostic_variable(self%id_c_shadow,'c','mgC/m^3','shadow carbon') + call self%add_to_aggregate_variable(standard_variables%total_carbon,self%id_c_shadow) + call self%add_to_aggregate_variable(standard_variables%total_phosphorus,self%id_c_shadow,scale_factor=self%qp) + call self%add_to_aggregate_variable(standard_variables%total_nitrogen,self%id_c_shadow,scale_factor=self%qn) + + call self%register_model_dependency(self%id_parent,'parent') + call self%register_state_dependency(self%id_parent_c,'parent_c','mg C/m^3','non photolabile terrigenous DOC') + + + call self%request_coupling_to_model(self%id_parent_c,self%id_parent,'c') + + + + call self%register_model_dependency(self%id_T1_older_parent,'T1_older') + call self%register_state_dependency(self%id_T1_older_parent_c,'T1_older_parent_c','mg C/m^3','non photolabile terrigenous DOC') + call self%request_coupling_to_model(self%id_T1_older_parent_c,self%id_T1_older_parent,'c') + + call copy_fluxes(self,self%id_c_shadow,self%id_parent_c,(1._rk+self%bioaging)) + call copy_fluxes(self,self%id_c_shadow,self%id_T1_older_parent_c,self%bioaging) + + end subroutine shadow_initialize + subroutine shadow_do(self,_ARGUMENTS_DO_) + + class (type_ersem_shadow_TDOC),intent(in) :: self + _DECLARE_ARGUMENTS_DO_ + + real (rk) :: c_shadow + +! Enter horizontal loops (if any) + _LOOP_BEGIN_ + + _GET_(self%id_parent_c,c_shadow) + _SET_DIAGNOSTIC_(self%id_c_shadow,c_shadow) + + _LOOP_END_ + end subroutine shadow_do + + end module From 8295d99a4e709078920b2fac61ae68dc38ba578f Mon Sep 17 00:00:00 2001 From: Yuri Artioli Date: Thu, 12 Dec 2019 18:04:20 +0000 Subject: [PATCH 12/26] update bacteria to uptake variable number of TDOC pools --- src/TDOC.F90 | 52 +++++++++------- src/bacteria_docdyn.F90 | 127 ++++++++++++++++++++-------------------- 2 files changed, 96 insertions(+), 83 deletions(-) diff --git a/src/TDOC.F90 b/src/TDOC.F90 index 4c5e077..1cdebc4 100644 --- a/src/TDOC.F90 +++ b/src/TDOC.F90 @@ -101,13 +101,16 @@ subroutine initialize(self,configunit) call self%register_state_dependency(self%id_RPc,'RPc','mg C/m^3', 'particulate organic carbon') call self%register_state_dependency(self%id_RPp,'RPp','mmol P/m^3', 'particulate organic phosphorus') call self%register_state_dependency(self%id_RPn,'RPn','mmol N/m^3', 'particulate organic nitrogen') - call self%register_model_dependency(self%id_T1_older,'T1_older') - call self%register_state_dependency(self%id_T1_older_c,'T1_older_c','mg C/m^3','non photolabile terrigenous DOC') - call self%register_state_dependency(self%id_T1_older_n,'T1_older_n','mmol N/m^3','non photolabile terrigenous DON') - call self%register_state_dependency(self%id_T1_older_p,'T1_older_p','mmol P/m^3','non photolabile terrigenous DOP') - call self%request_coupling_to_model(self%id_T1_older_c,self%id_T1_older,'c') - call self%request_coupling_to_model(self%id_T1_older_n,self%id_T1_older,standard_variables%total_nitrogen) - call self%request_coupling_to_model(self%id_T1_older_p,self%id_T1_older,standard_variables%total_phosphorus) + + if ((self%bioaging.gt.0._rk).or.(self%photoaging.gt.0._rk)) then + call self%register_model_dependency(self%id_T1_older,'T1_older') + call self%register_state_dependency(self%id_T1_older_c,'T1_older_c','mg C/m^3','non photolabile terrigenous DOC') + call self%register_state_dependency(self%id_T1_older_n,'T1_older_n','mmol N/m^3','non photolabile terrigenous DON') + call self%register_state_dependency(self%id_T1_older_p,'T1_older_p','mmol P/m^3','non photolabile terrigenous DOP') + call self%request_coupling_to_model(self%id_T1_older_c,self%id_T1_older,'c') + call self%request_coupling_to_model(self%id_T1_older_n,self%id_T1_older,standard_variables%total_nitrogen) + call self%request_coupling_to_model(self%id_T1_older_p,self%id_T1_older,standard_variables%total_phosphorus) + end if call self%register_model_dependency(self%id_T2,'T2') call self%register_state_dependency(self%id_T2c,'T2c','mg C/m^3','non photolabile terrigenous DOC') @@ -137,7 +140,7 @@ subroutine initialize(self,configunit) shadow%qp=self%qp shadow%bioaging=self%bioaging call shadow%couplings%set_string('parent',self%name) - call shadow%couplings%set_string('T1_older_parent','T1_older') + if ((self%bioaging.gt.0._rk)) call shadow%couplings%set_string('T1_older_parent','../T1_older') call self%add_child(shadow,'shadow',configunit=configunit) end subroutine initialize @@ -195,9 +198,11 @@ subroutine do(self,_ARGUMENTS_DO_) _SET_ODE_(self%id_c,-(1._rk+self%photoaging)*photolysis-flocc) - _SET_ODE_(self%id_T1_older_c,self%photoaging*photolysis) - _SET_ODE_(self%id_T1_older_n,self%photoaging*photolysis*self%qn) - _SET_ODE_(self%id_T1_older_p,self%photoaging*photolysis*self%qp) + if (self%photoaging.gt.0._rk) then + _SET_ODE_(self%id_T1_older_c,self%photoaging*photolysis) + _SET_ODE_(self%id_T1_older_n,self%photoaging*photolysis*self%qn) + _SET_ODE_(self%id_T1_older_p,self%photoaging*photolysis*self%qp) + end if _SET_ODE_(self%id_RPc,+flocc) _SET_ODE_(self%id_RPn,+flocc*self%qn) @@ -249,8 +254,15 @@ subroutine do_surface(self,_ARGUMENTS_DO_SURFACE_) T1T2=self%phyt*min(1._rk,XXn) - _SET_SURFACE_EXCHANGE_(self%id_c,-photolysis) + _SET_SURFACE_EXCHANGE_(self%id_c,-photolysis*(1+self%photoaging)) _SET_SURFACE_EXCHANGE_(self%id_T2c,+photolysis*T1T2) + + if (self%photoaging.gt.0._rk) then + _SET_SURFACE_EXCHANGE_(self%id_T1_older_c,self%photoaging*photolysis) + _SET_SURFACE_EXCHANGE_(self%id_T1_older_n,self%photoaging*photolysis*self%qn) + _SET_SURFACE_EXCHANGE_(self%id_T1_older_p,self%photoaging*photolysis*self%qp) + end if + _SET_SURFACE_EXCHANGE_(self%id_O3c,+photolysis*(1._rk-T1T2)/CMass) _SET_SURFACE_EXCHANGE_(self%id_N1p,+photolysis*(1._rk-T1T2)*self%qp+photolysis*T1T2*px) _SET_SURFACE_EXCHANGE_(self%id_N4n,+photolysis*(1._rk-T1T2)*self%qn+photolysis*T1T2*nx) @@ -267,25 +279,23 @@ subroutine shadow_initialize(self,configunit) self%dt = 3600._rk*24._rk - call self%register_diagnostic_variable(self%id_c_shadow,'c','mgC/m^3','shadow carbon') + call self%register_diagnostic_variable(self%id_c_shadow,'c','mgC/m^3','shadow carbon',act_as_state_variable=.true.,output=output_none) call self%add_to_aggregate_variable(standard_variables%total_carbon,self%id_c_shadow) call self%add_to_aggregate_variable(standard_variables%total_phosphorus,self%id_c_shadow,scale_factor=self%qp) call self%add_to_aggregate_variable(standard_variables%total_nitrogen,self%id_c_shadow,scale_factor=self%qn) call self%register_model_dependency(self%id_parent,'parent') call self%register_state_dependency(self%id_parent_c,'parent_c','mg C/m^3','non photolabile terrigenous DOC') - - call self%request_coupling_to_model(self%id_parent_c,self%id_parent,'c') - - - call self%register_model_dependency(self%id_T1_older_parent,'T1_older') - call self%register_state_dependency(self%id_T1_older_parent_c,'T1_older_parent_c','mg C/m^3','non photolabile terrigenous DOC') - call self%request_coupling_to_model(self%id_T1_older_parent_c,self%id_T1_older_parent,'c') + if (self%bioaging.gt.0._rk) then + call self%register_model_dependency(self%id_T1_older_parent,'T1_older_parent') + call self%register_state_dependency(self%id_T1_older_parent_c,'T1_older_parent_c','mg C/m^3','non photolabile terrigenous DOC') + call self%request_coupling_to_model(self%id_T1_older_parent_c,self%id_T1_older_parent,'c') +! call copy_fluxes(self,self%id_c_shadow,self%id_T1_older_parent_c,self%bioaging) + end if call copy_fluxes(self,self%id_c_shadow,self%id_parent_c,(1._rk+self%bioaging)) - call copy_fluxes(self,self%id_c_shadow,self%id_T1_older_parent_c,self%bioaging) end subroutine shadow_initialize diff --git a/src/bacteria_docdyn.F90 b/src/bacteria_docdyn.F90 index 15b5718..3ccfeb3 100644 --- a/src/bacteria_docdyn.F90 +++ b/src/bacteria_docdyn.F90 @@ -16,19 +16,22 @@ module ersem_bacteria_docdyn ! Variables type (type_state_variable_id) :: id_O3c, id_O2o, id_TA type (type_state_variable_id) :: id_R1c, id_R2c, id_R3c,id_T1c,id_T2c - type (type_state_variable_id) :: id_R1p, id_T1p, id_T1n, id_T2n, id_T2p + type (type_state_variable_id) :: id_R1p type (type_state_variable_id) :: id_R1n type (type_state_variable_id) :: id_N1p,id_N4n,id_N7f type (type_dependency_id) :: id_ETW,id_eO2mO2 type (type_state_variable_id),allocatable,dimension(:) :: id_RPc,id_RPp,id_RPn,id_RPf type (type_model_id), allocatable,dimension(:) :: id_RP + type (type_state_variable_id),allocatable,dimension(:) :: id_TDc,id_TDp,id_TDn + type (type_model_id), allocatable,dimension(:) :: id_TD type (type_model_id) :: id_T1,id_T2 type (type_diagnostic_variable_id) :: id_fB1O3c, id_fB1NIn, id_fB1N1p type (type_diagnostic_variable_id) :: id_fR1B1c, id_fR2B1c, id_fR3B1c,id_fRPB1c,id_fB1R1c, id_fB1R2c, id_fB1R3c - type (type_diagnostic_variable_id) :: id_fR1B1n,id_fB1R1n,id_fR1B1p,id_fB1R1p,id_fRPB1n,id_fRPB1p,id_fT1B1c,id_fT2B1c + type (type_diagnostic_variable_id) :: id_fR1B1n,id_fB1R1n,id_fR1B1p,id_fB1R1p,id_fRPB1n,id_fRPB1p + type (type_diagnostic_variable_id), allocatable,dimension(:) :: id_fTDB1c type (type_diagnostic_variable_id) :: id_minn,id_minp ! Parameters - integer :: nRP + integer :: nRP,nTD integer :: iswBlimX real(rk) :: q10B1X,chdB1oX real(rk) :: chB1nX,chB1pX @@ -37,8 +40,8 @@ module ersem_bacteria_docdyn real(rk) :: puB1X,puB1oX,srsB1X,sR1B1X real(rk) :: qpB1cX,qnB1cX real(rk) :: urB1_O2X - real(rk) :: rR2B1X,rR3B1X,rT1B1X,rT2B1X - real(rk),allocatable :: sRPR1(:) + real(rk) :: rR2B1X,rR3B1X + real(rk),allocatable :: sRPR1(:), rTDB1X(:) real(rk) :: frB1R3 ! Remineralization @@ -65,7 +68,7 @@ subroutine initialize(self,configunit) ! !REVISION HISTORY: ! ! !LOCAL VARIABLES: - integer :: iRP + integer :: iRP,iTD character(len=16) :: index real(rk) :: c0 !EOP @@ -134,36 +137,29 @@ subroutine initialize(self,configunit) end if end do + + ! Register links to terrestrial Dissolved Organic Matter. + call self%get_parameter(self%nTD,'nTD','','number of substrates',default=0) + allocate(self%id_TD(self%nTD)) + allocate(self%id_TDc(self%nTD)) + allocate(self%id_TDn(self%nTD)) + allocate(self%id_TDp(self%nTD)) + allocate(self%id_fTDB1c(self%nTD)) + do iTD=1,self%nTD + write (index,'(i0)') iTD + call self%register_state_dependency(self%id_TDc(iTD),'TD'//trim(index)//'c','mg C/m^3', 'carbon in substrate '//trim(index)) + call self%register_state_dependency(self%id_TDn(iTD),'TD'//trim(index)//'n','mmol N/m^3', 'nitrogen in substrate '//trim(index)) + call self%register_state_dependency(self%id_TDp(iTD),'TD'//trim(index)//'p','mmol P/m^3', 'phosphorus in substrate '//trim(index)) + call self%register_model_dependency(self%id_TD(iTD),'TD'//trim(index)) + call self%request_coupling_to_model(self%id_TDc(iTD),self%id_RP(iRP),'c') ! For now link to hardcoded "c" to get a direct link to state mg C/m3 (and not a diagnostic for mmol C/m3) + call self%request_coupling_to_model(self%id_TDn(iTD),self%id_TD(iTD),standard_variables%total_nitrogen) + call self%request_coupling_to_model(self%id_TDp(iTD),self%id_TD(iTD),standard_variables%total_phosphorus) + call self%register_diagnostic_variable(self%id_fTDB1c(iTD),'fT'//trim(index)//'B1c','mg C/m^3/d','bacterial uptake of terrigenous DOC'//trim(index)) + end do + + ! Register links to semi-refractory dissolved organic matter pool. call self%register_state_dependency(self%id_R3c,'R3c','mg C/m^3','semi-refractory DOC') - ! Register links to terrigenous dissolved organic matter pool. - call self%register_model_dependency(self%id_T2,'T2') -! call self%register_dependency(self%id_T2c,'T2c','mg C/m^3','non photolabile terrigenous DOC') -! call self%register_dependency(self%id_T2n,'T2n','mmol N/m^3','non photolabile terrigenous DON') -! call self%register_dependency(self%id_T2p,'T2p','mmol P/m^3','non photolabile terrigenous DOP') - call self%register_state_dependency(self%id_T2c,'T2c','mg C/m^3','non photolabile terrigenous DOC') - call self%register_state_dependency(self%id_T2n,'T2n','mg C/m^3','non photolabile terrigenous DON') - call self%register_state_dependency(self%id_T2p,'T2p','mg C/m^3','non photolabile terrigenous DOP') - call self%request_coupling_to_model(self%id_T2c,self%id_T2,'c') - call self%request_coupling_to_model(self%id_T2n,self%id_T2,standard_variables%total_nitrogen) - call self%request_coupling_to_model(self%id_T2p,self%id_T2,standard_variables%total_phosphorus) - - call self%register_model_dependency(self%id_T1,'T1') -! call self%register_dependency(self%id_T1c,'T1c','mg C/m^3','photolabile terrigenous DOC') -! call self%register_dependency(self%id_T1n,'T1n','mmol N/m^3','photolabile terrigenous DON') -! call self%register_dependency(self%id_T1p,'T1p','mmol P/m^3','photolabile terrigenous DOP') -! call self%request_coupling_to_model(self%id_T1c,self%id_T1,standard_variables%total_carbon) -! call self%request_coupling_to_model(self%id_T1n,self%id_T1,standard_variables%total_nitrogen) -! call self%request_coupling_to_model(self%id_T1p,self%id_T1,standard_variables%total_phosphorus) - call self%register_state_dependency(self%id_T1c,'T1c','mg C/m^3','photolabile terrigenous DOC') - call self%register_state_dependency(self%id_T1n,'T1n','mg C/m^3','photolabile terrigenous DON') - call self%register_state_dependency(self%id_T1p,'T1p','mg C/m^3','photolabile terrigenous DOP') - call self%request_coupling_to_model(self%id_T1c,self%id_T1,'c') - call self%request_coupling_to_model(self%id_T1n,self%id_T1,standard_variables%total_nitrogen) - call self%request_coupling_to_model(self%id_T1p,self%id_T1,standard_variables%total_phosphorus) -! call self%register_state_dependency(self%id_T2c,'T2c','mg C/m^3','non photolabile terrigenous DOC') -! call self%register_state_dependency(self%id_T2n,'T2n','mg C/m^3','non photolabile terrigenous DON') -! call self%register_state_dependency(self%id_T2p,'T2p','mg C/m^3','non photolabile terrigenous DOP') allocate(self%sRPR1(self%nRP)) do iRP=1,self%nRP @@ -171,10 +167,14 @@ subroutine initialize(self,configunit) call self%get_parameter(self%sRPR1(iRP),'sRP'//trim(index)//'R1','1/d','remineralisation of substrate '//trim(index)//' to DOM') end do + allocate(self%rTDB1X(self%nTD)) + do iTD=1,self%nTD + write (index,'(i0)') iTD + call self%get_parameter(self%rTDB1X(iTD),'rTD'//trim(index)//'B1X','-','fraction of substrate T'//trim(index)//'available to bacteria') + end do + call self%get_parameter(self%rR2B1X,'rR2','-','fraction of semi-labile DOC available to bacteria') call self%get_parameter(self%rR3B1X,'rR3','-','fraction of semi-refractory DOC available to bacteria') - call self%get_parameter(self%rT1B1X,'rT1','-','fraction of T1 available to bacteria') - call self%get_parameter(self%rT2B1X,'rT2','-','fraction of T2 available to bacteria') call self%get_parameter(self%frB1R3,'frR3','-','fraction of activity respiration converted to semi-refractory DOC') ! Register links to external total dissolved inorganic carbon, dissolved oxygen pools @@ -197,9 +197,6 @@ subroutine initialize(self,configunit) call self%register_diagnostic_variable(self%id_fB1R1n,'fB1R1n','mmol N/m^3/d','release of DON') call self%register_diagnostic_variable(self%id_fB1R1p,'fB1R1p','mmol P/m^3/d','release of DOP') - call self%register_diagnostic_variable(self%id_fT1B1c,'fT1B1c','mg C/m^3/d','bacterial uptake of photolabile terrigenous DOC ') - call self%register_diagnostic_variable(self%id_fT2B1c,'fT2B1c','mg C/m^3/d','bacterial uptake of nonphotolabile terrigenous') - call self%register_diagnostic_variable(self%id_fR1B1c,'fR1B1c','mg C/m^3/d','uptake of labile DOC ') call self%register_diagnostic_variable(self%id_fR2B1c,'fR2B1c','mg C/m^3/d','uptake of semi-labile DOC ') call self%register_diagnostic_variable(self%id_fR3B1c,'fR3B1c','mg C/m^3/d','uptake of semi-refractory DOC ') @@ -228,16 +225,18 @@ subroutine do(self,_ARGUMENTS_DO_) real(rk) :: sB1RD,sutB1,rumB1,sugB1,rugB1,rraB1,fB1O3c real(rk) :: sB1R2,fB1R2c,fB1R3c,fB1RDc real(rk) :: netb1,bge - real(rk) :: fB1N1p,fR1B1p,fB1RDp,fTXB1p - real(rk) :: fB1NIn,fR1B1n,fB1RDn,fTXB1n - real(rk) :: R3c,R2cP,R3cP,T1cP,T2cP,T1c,T2c,T1n,T1p,T2n,T2p,T2pP,T2nP,T1nP,T1pP + real(rk) :: fB1N1p,fR1B1p,fB1RDp + real(rk) :: fB1NIn,fR1B1n,fB1RDn + real(rk) :: R3c,R2cP,R3cP real(rk) :: fB1R1c real(rk) :: totsubst real(rk) :: CORROX - integer :: iRP + integer :: iRP, iTD real(rk),dimension(self%nRP) :: RPc,RPcP,RPnP,RPpP real(rk),dimension(self%nRP) :: fRPB1c,fRPB1p,fRPB1n - + real(rk),dimension(self%nRP) :: TDcP,TDc,TDnP,TDpP + real(rk),dimension(self%nRP) :: fTDB1c,fTDB1p,fTDB1n + ! Enter spatial loops (if any) _LOOP_BEGIN_ @@ -256,21 +255,16 @@ subroutine do(self,_ARGUMENTS_DO_) _GET_(self%id_N4n,N4nP) _GET_WITH_BACKGROUND_(self%id_R1c,R1c) _GET_WITH_BACKGROUND_(self%id_R2c,R2c) - _GET_WITH_BACKGROUND_(self%id_T1c,T1c) - _GET_WITH_BACKGROUND_(self%id_T2c,T2c) + _GET_(self%id_R1c,R1cP) _GET_(self%id_R1p,R1pP) _GET_(self%id_R1n,R1nP) - _GET_(self%id_T1n,T1nP) - _GET_(self%id_T1p,T1pP) - _GET_(self%id_T2n,T2nP) - _GET_(self%id_T2p,T2pP) _GET_WITH_BACKGROUND_(self%id_R3c,R3c) _GET_(self%id_R2c,R2cP) _GET_(self%id_R3c,R3cP) - _GET_(self%id_T1c,T1cP) - _GET_(self%id_T2c,T2cP) + + do iRP=1,self%nRP _GET_WITH_BACKGROUND_(self%id_RPc(iRP),RPc(iRP)) _GET_(self%id_RPc(iRP),RPcP(iRP)) @@ -278,6 +272,13 @@ subroutine do(self,_ARGUMENTS_DO_) _GET_(self%id_RPp(iRP),RPpP(iRP)) end do + do iTD=1,self%nTD + _GET_WITH_BACKGROUND_(self%id_TDc(iTD),TDc(iTD)) + _GET_(self%id_TDc(iTD),TDcP(iRP)) + _GET_(self%id_TDn(iTD),TDnP(iRP)) + _GET_(self%id_TDp(iTD),TDpP(iRP)) + end do + qpB1c = B1p/B1c qnB1c = B1n/B1c !..Temperature effect on pelagic bacteria: @@ -307,7 +308,7 @@ subroutine do(self,_ARGUMENTS_DO_) ! rugB1 = MIN(rumB1,rutB1) ! specific in substrate concentration: - totsubst = R1cP+R2cP*self%rR2B1X+R3cP*self%rR3B1X+T1cP*self%rT1B1X+T2cP*self%rT2B1X+sum(RPcP*self%sRPR1/sutB1) + totsubst = R1cP+R2cP*self%rR2B1X+R3cP*self%rR3B1X+sum(TDcP*self%rTDB1X)+sum(RPcP*self%sRPR1/sutB1) ! Jorn: check whether total substrate>0 to prevent NaNs if (totsubst>0.0_rk) then sugB1 = rumB1/max(rumB1/sutB1,totsubst) @@ -316,7 +317,7 @@ subroutine do(self,_ARGUMENTS_DO_) end if ! = MIN(rumB1,rutB1)=MIN(rumB1/(R1cP+R2cP*rR2B1X,sutB1) avoid pot. div. by 0 fRPB1c = sugB1*RPcP*self%sRPR1/sutB1 - rugB1 = sugB1*(R1cP+R2cP*self%rR2B1X+R3cP*self%rR3B1X+T1cP*self%rT1B1X+T2cP*self%rT2B1X)+sum(fRPB1c) + rugB1 = sugB1*(R1cP+R2cP*self%rR2B1X+R3cP*self%rR3B1X+sum(TDcP*self%rTDB1X))+sum(fRPB1c) !..Respiration : @@ -351,8 +352,6 @@ subroutine do(self,_ARGUMENTS_DO_) _SET_ODE_(self%id_R1c,+ fB1R1c - sugB1*R1cP) _SET_ODE_(self%id_R2c,+ fB1R2c - sugB1*R2cP*self%rR2B1X) _SET_ODE_(self%id_R3c,+ fB1R3c - sugB1*R3cP*self%rR3B1X) - _SET_ODE_(self%id_T1c, - sugB1*T1cP*self%rT1B1X) - _SET_ODE_(self%id_T2c, - sugB1*T2cP*self%rT2B1X) _SET_DIAGNOSTIC_(self%id_fB1R1c, fB1R1c) _SET_DIAGNOSTIC_(self%id_fB1R2c, fB1R2c) @@ -361,13 +360,17 @@ subroutine do(self,_ARGUMENTS_DO_) _SET_DIAGNOSTIC_(self%id_fRPB1c, sum(fRPB1c)) _SET_DIAGNOSTIC_(self%id_fR2B1c, sugB1*R2cP*self%rR2B1X) _SET_DIAGNOSTIC_(self%id_fR3B1c, sugB1*R3cP*self%rR3B1X) - _SET_DIAGNOSTIC_(self%id_fT1B1c, sugB1*T1cP*self%rT1B1X) - _SET_DIAGNOSTIC_(self%id_fT2B1c, sugB1*T2cP*self%rT2B1X) do iRP=1,self%nRP _SET_ODE_(self%id_RPc(iRP), -fRPB1c(iRP)) end do + do iTD=1,self%nTD + _SET_ODE_(self%id_TDc(iTD), -sugB1*TDcP(iTD)*self%rTDB1X(iTD)) + _SET_DIAGNOSTIC_(self%id_fTDB1c(iTD), sugB1*TDcP(iTD)*self%rTDB1X(iTD)) + end do + + _SET_ODE_(self%id_O3c,+ fB1O3c/CMass) _SET_ODE_(self%id_O2o,- fB1O3c*self%urB1_O2X) @@ -383,7 +386,7 @@ subroutine do(self,_ARGUMENTS_DO_) !..uptake of DOP fR1B1p = sugB1*R1pP - fTXB1p=sugB1*T1pP*self%rT1B1X+sugB1*T2pP*self%rT2B1X + fTDB1p= sugB1*TDpP*self%rTDB1X !..flux of DOP from B1 @@ -398,7 +401,7 @@ subroutine do(self,_ARGUMENTS_DO_) _SET_ODE_(self%id_RPp(iRP), - fRPB1p(iRP)) end do - _SET_ODE_(self%id_p, + fR1B1p +fTXB1p - fB1N1p - fB1RDp) + _SET_ODE_(self%id_p, + fR1B1p + sum(fTDB1p) - fB1N1p - fB1RDp) _SET_ODE_(self%id_N1p, + fB1N1p) _SET_ODE_(self%id_R1p, + fB1RDp - fR1B1p) _SET_ODE_(self%id_TA, - fB1N1p) ! Contribution to alkalinity: -1 for phosphate @@ -421,7 +424,7 @@ subroutine do(self,_ARGUMENTS_DO_) !..uptake of DON fR1B1n = sugB1*R1nP - fTXB1n = sugB1*T1nP*self%rT1B1X+sugB1*T2nP*self%rT2B1X + fTDB1n= sugB1*TDnP*self%rTDB1X !..flux of DON from B1 @@ -436,7 +439,7 @@ subroutine do(self,_ARGUMENTS_DO_) end do _SET_ODE_(self%id_N4n, + fB1NIn) - _SET_ODE_(self%id_n, + fR1B1n + fTXB1n - fB1NIn - fB1RDn) + _SET_ODE_(self%id_n, + fR1B1n + sum(fTDB1n) - fB1NIn - fB1RDn) _SET_ODE_(self%id_R1n, + fB1RDn - fR1B1n) _SET_ODE_(self%id_TA, + fB1NIn) ! Contribution to alkalinity: +1 for ammonium From 90f499ce94d4fcb7b75e3b01ab6d403b9ad85aa2 Mon Sep 17 00:00:00 2001 From: Yuri Artioli Date: Mon, 16 Dec 2019 14:42:22 +0000 Subject: [PATCH 13/26] made module flexible to represent both T1 and T2 --- src/TDOC.F90 | 188 ++++++++++++++++++++++++++++----------------------- 1 file changed, 104 insertions(+), 84 deletions(-) diff --git a/src/TDOC.F90 b/src/TDOC.F90 index 1cdebc4..2cf9c9b 100644 --- a/src/TDOC.F90 +++ b/src/TDOC.F90 @@ -17,9 +17,10 @@ module ersem_TDOC ! Variables type (type_state_variable_id) :: id_RPc,id_T2c, id_O3c type (type_state_variable_id) :: id_RPn, id_RPp, id_T2n, id_T2p, id_N1p, id_N4n - type (type_state_variable_id) :: id_T1_older_c,id_T1_older_n,id_T1_older_p - type (type_model_id) :: id_T2, id_T1_older + type (type_state_variable_id) :: id_TD_older_c,id_TD_older_n,id_TD_older_p + type (type_model_id) :: id_T2, id_TD_older type (type_dependency_id) :: id_ETW, id_chemEIR + type (type_dependency_id) :: id_shadow_bioflux type (type_dependency_id) :: id_X1X ! Salinity ! type (type_horizontal_dependency_id) :: id_R1c,id_R1d type (type_horizontal_diagnostic_variable_id) :: id_surface_photolysis, id_surface_photo_aging @@ -29,6 +30,7 @@ module ersem_TDOC real(rk) :: suva, iref,phyref,surf_phyref,phyt,floc,qp,qn,scx,sbx,chemEIR_scaling real(rk) :: age, photoaging,bioaging + logical :: is_photolabile contains ! Model procedures @@ -41,8 +43,8 @@ module ersem_TDOC ! this is currently needed because the microbial degradation flux (calculated by the bacteria module) is needed here for the aging of tDOC type,extends(type_particle_model),public :: type_ersem_shadow_tDOC type (type_diagnostic_variable_id) :: id_c_shadow ! shadow state variable - type (type_state_variable_id) :: id_parent_c, id_T1_older_parent_c ! ,id_parent_n, id_T1_older_parent_n,id_parent_p, id_T1_older_parent_p - type (type_model_id) :: id_parent, id_T1_older_parent + type (type_state_variable_id) :: id_parent_c, id_TD_older_parent_c ! ,id_parent_n, id_T1_older_parent_n,id_parent_p, id_T1_older_parent_p + type (type_model_id) :: id_parent, id_TD_older_parent real (rk) :: qn, qp, bioaging @@ -71,21 +73,26 @@ subroutine initialize(self,configunit) !BOC ! call self%get_parameter(self%kuw,'kuw', 'm-1', 'extinction of UV in the water') ! call self%get_parameter(self%suva,'suva','m2*mmol C-1', 'specific UV absorption at 350 nm') - call self%get_parameter(self%iref,'iref','W m-2', 'reference irradiance') - call self%get_parameter(self%phyref,'phyref','d-1 ', 'reference photooxidation rate') - call self%get_parameter(self%surf_phyref,'surf_phyref','d-1 ', 'reference surface_photooxidation rate',default=0._rk) - call self%get_parameter(self%phyt,'phyt','adim', 'photooxidated fraction of T1 going into T2) ') - call self%get_parameter(self%floc,'floc','(mmol C-3)-1*d-1 ', 'reference photooxidation rate') call self%get_parameter(self%qp, 'qp', 'mmol P/mg C','phosphorus to carbon ratio') call self%get_parameter(self%qn, 'qn', 'mmol N/mg C','nitrogen to carbon ratio') call self%get_parameter(EPS, 'EPS', 'm^2/mg C','specific shortwave attenuation', default=4.E-4_rk) call self%get_parameter(c0,'c0','mg C/m^3','background carbon concentration') - call self%get_parameter(self%sbx, 'sbx', 'psu', 'optimal salinity') - call self%get_parameter(self%scx, 'scx', '', 'salinity function parameter') - call self%get_parameter(self%chemEIR_scaling, 'chemEIR_scaling', '', 'scaling factor for incoming radiation activating photochemical reaction', default=1._rk) !call self%get_parameter(self%age, 'age', 'd', 'Characteristic age of the tDOC pool', default=0._rk)) ! for now the parameter is calculated a priori call self%get_parameter(self%photoaging, 'photoaging', '-', 'aging due to photo oxidation') call self%get_parameter(self%bioaging, 'bioaging', '-', 'aging due to microbial oxidation') + call self%get_parameter(self%is_photolabile,'photolabile','-', 'definition of the type of tDOC: True=photolabile; False=non-photolabile') + + ! if it is photolabile then set all process parameters + if (self%is_photolabile) then + call self%get_parameter(self%chemEIR_scaling, 'chemEIR_scaling', '', 'scaling factor for incoming radiation activating photochemical reaction', default=1._rk) + call self%get_parameter(self%iref,'iref','W m-2', 'reference irradiance') + call self%get_parameter(self%phyref,'phyref','d-1 ', 'reference photooxidation rate',default=0._rk) + call self%get_parameter(self%surf_phyref,'surf_phyref','d-1 ', 'reference surface_photooxidation rate',default=0._rk) + call self%get_parameter(self%phyt,'phyt','adim', 'photooxidated fraction of T1 going into T2) ') + call self%get_parameter(self%floc,'floc','(mmol C-3)-1*d-1 ', 'reference photooxidation rate') + call self%get_parameter(self%sbx, 'sbx', 'psu', 'optimal salinity') + call self%get_parameter(self%scx, 'scx', '', 'salinity function parameter') + endif ! Allow ERSEM base model to declare our own state variables. call self%initialize_ersem_base(sedimentation=.false.) @@ -96,39 +103,44 @@ subroutine initialize(self,configunit) ! call self%register_dependency(self%id_EIR,'EIR','W/m^2','downwelling_shortwave_flux', & ! standard_variable=standard_variables%downwelling_shortwave_flux,source=source_do_column) !call self%register_dependency(self%id_EIR,standard_variables%downwelling_shortwave_flux) - call self%register_dependency(self%id_chemEIR,'chemEIR','W/m^2','incoming radiation activating photochemical reaction') - call self%register_dependency(self%id_X1X,standard_variables%practical_salinity) - call self%register_state_dependency(self%id_RPc,'RPc','mg C/m^3', 'particulate organic carbon') - call self%register_state_dependency(self%id_RPp,'RPp','mmol P/m^3', 'particulate organic phosphorus') - call self%register_state_dependency(self%id_RPn,'RPn','mmol N/m^3', 'particulate organic nitrogen') - if ((self%bioaging.gt.0._rk).or.(self%photoaging.gt.0._rk)) then - call self%register_model_dependency(self%id_T1_older,'T1_older') - call self%register_state_dependency(self%id_T1_older_c,'T1_older_c','mg C/m^3','non photolabile terrigenous DOC') - call self%register_state_dependency(self%id_T1_older_n,'T1_older_n','mmol N/m^3','non photolabile terrigenous DON') - call self%register_state_dependency(self%id_T1_older_p,'T1_older_p','mmol P/m^3','non photolabile terrigenous DOP') - call self%request_coupling_to_model(self%id_T1_older_c,self%id_T1_older,'c') - call self%request_coupling_to_model(self%id_T1_older_n,self%id_T1_older,standard_variables%total_nitrogen) - call self%request_coupling_to_model(self%id_T1_older_p,self%id_T1_older,standard_variables%total_phosphorus) + if (self%is_photolabile) then + call self%register_dependency(self%id_X1X,standard_variables%practical_salinity) + call self%register_state_dependency(self%id_RPc,'RPc','mg C/m^3', 'particulate organic carbon') + call self%register_state_dependency(self%id_RPp,'RPp','mmol P/m^3', 'particulate organic phosphorus') + call self%register_state_dependency(self%id_RPn,'RPn','mmol N/m^3', 'particulate organic nitrogen') + call self%register_model_dependency(self%id_T2,'T2') + call self%register_state_dependency(self%id_T2c,'T2c','mg C/m^3','non photolabile terrigenous DOC') + call self%register_state_dependency(self%id_T2n,'T2n','mmol N/m^3','non photolabile terrigenous DON') + call self%register_state_dependency(self%id_T2p,'T2p','mmol P/m^3','non photolabile terrigenous DOP') + call self%request_coupling_to_model(self%id_T2c,self%id_T2,'c') + call self%request_coupling_to_model(self%id_T2n,self%id_T2,standard_variables%total_nitrogen) + call self%request_coupling_to_model(self%id_T2p,self%id_T2,standard_variables%total_phosphorus) + call self%register_dependency(self%id_chemEIR,'chemEIR','W/m^2','incoming radiation activating photochemical reaction') + call self%register_state_dependency(self%id_O3c,'O3c','mmol C/m^3','carbon dioxide sink') + call self%register_state_dependency(self%id_N1p,'N1p','mmol P/m^3','phosphate') + call self%register_state_dependency(self%id_N4n,'N4n','mmol N/m^3','ammonium') + call self%register_diagnostic_variable(self%id_photolysis,'photolysis','mgC/m^3/d','photolysis') + call self%register_horizontal_diagnostic_variable(self%id_surface_photolysis,'surface_photolysis','mgC/m^2/d','surface photolysis') + call self%register_diagnostic_variable(self%id_flocc,'flocc','mgC/m^3/d','flocculation') end if - - call self%register_model_dependency(self%id_T2,'T2') - call self%register_state_dependency(self%id_T2c,'T2c','mg C/m^3','non photolabile terrigenous DOC') - call self%register_state_dependency(self%id_T2n,'T2n','mmol N/m^3','non photolabile terrigenous DON') - call self%register_state_dependency(self%id_T2p,'T2p','mmol P/m^3','non photolabile terrigenous DOP') - call self%request_coupling_to_model(self%id_T2c,self%id_T2,'c') - call self%request_coupling_to_model(self%id_T2n,self%id_T2,standard_variables%total_nitrogen) - call self%request_coupling_to_model(self%id_T2p,self%id_T2,standard_variables%total_phosphorus) - - call self%register_state_dependency(self%id_O3c,'O3c','mmol C/m^3','carbon dioxide sink') - ! Register links to nutrient pools. - call self%register_state_dependency(self%id_N1p,'N1p','mmol P/m^3','phosphate') - call self%register_state_dependency(self%id_N4n,'N4n','mmol N/m^3','ammonium') - call self%register_diagnostic_variable(self%id_photolysis,'photolysis','mgC/m^3/d','photolysis') - call self%register_diagnostic_variable(self%id_photo_aging,'photoaging','mgC/m^3/d','aging due to 3D photoloysis') - call self%register_horizontal_diagnostic_variable(self%id_surface_photolysis,'surface_photolysis','mgC/m^2/d','surface photolysis') - call self%register_horizontal_diagnostic_variable(self%id_surface_photo_aging,'surface_photoaging','mgC/m^2/d','aging due to surface photolysis') - call self%register_diagnostic_variable(self%id_flocc,'flocc','mgC/m^3/d','flocculation') + + if ((self%bioaging.gt.0._rk).or.(self%photoaging.gt.0._rk)) then + call self%register_model_dependency(self%id_TD_older,'TD_older') + call self%register_state_dependency(self%id_TD_older_c,'TD_older_c','mg C/m^3','non photolabile terrigenous DOC') + call self%register_state_dependency(self%id_TD_older_n,'TD_older_n','mmol N/m^3','non photolabile terrigenous DON') + call self%register_state_dependency(self%id_TD_older_p,'TD_older_p','mmol P/m^3','non photolabile terrigenous DOP') + call self%request_coupling_to_model(self%id_TD_older_c,self%id_TD_older,'c') + call self%request_coupling_to_model(self%id_TD_older_n,self%id_TD_older,standard_variables%total_nitrogen) + call self%request_coupling_to_model(self%id_TD_older_p,self%id_TD_older,standard_variables%total_phosphorus) + if (self%is_photolabile) then + call self%register_diagnostic_variable(self%id_photo_aging,'photoaging','mgC/m^3/d','aging due to 3D photoloysis') + call self%register_horizontal_diagnostic_variable(self%id_surface_photo_aging,'surface_photoaging','mgC/m^2/d','aging due to surface photolysis') + end if + + + + end if ! Register contribution to light extinction call self%add_to_aggregate_variable(standard_variables%attenuation_coefficient_of_photosynthetic_radiative_flux, & @@ -140,9 +152,13 @@ subroutine initialize(self,configunit) shadow%qp=self%qp shadow%bioaging=self%bioaging call shadow%couplings%set_string('parent',self%name) - if ((self%bioaging.gt.0._rk)) call shadow%couplings%set_string('T1_older_parent','../T1_older') + if ((self%bioaging.gt.0._rk)) call shadow%couplings%set_string('TD_older_parent','../TD_older') call self%add_child(shadow,'shadow',configunit=configunit) + if bioaging + call copier%register_dependency(%id_sms, 'sms', '','sources minus sinks') + call copier%request_coupling(copier%id_sms, trim(source_variable%link%target%name)//'_sms_tot') + end subroutine initialize @@ -158,6 +174,7 @@ subroutine do(self,_ARGUMENTS_DO_) ! Enter spatial loops (if any) _LOOP_BEGIN_ + if (self%is_photolabile) then _GET_(self%id_c,c) _GET_(self%id_T2c,T2cP) ! _GET_(self%id_R8c,R8cP) @@ -169,19 +186,19 @@ subroutine do(self,_ARGUMENTS_DO_) _GET_(self%id_chemEIR,chemEIR) _GET_(self%id_X1X,X1X) - IF(T2c.gt.0._rk) then - Xn=self%qn/(T2n/T2c) - Xp=self%qp/(T2p/T2c) - nx=self%qn-(T2n/T2c) - px=self%qp-(T2p/T2c) - else - Xn=0._rk - Xp=0._rk - nx=1._rk - px=1._rk - endif - - XXn=min(Xn,Xp) + IF(T2c.gt.0._rk) then + Xn=self%qn/(T2n/T2c) + Xp=self%qp/(T2p/T2c) + nx=self%qn-(T2n/T2c) + px=self%qp-(T2p/T2c) + else + Xn=0._rk + Xp=0._rk + nx=1._rk + px=1._rk + endif + + XXn=min(Xn,Xp) !Flocculation is assumed to be (log-normal) function of salinity(sal) @@ -190,31 +207,32 @@ subroutine do(self,_ARGUMENTS_DO_) flocc=self%floc*sal*c**2 ! Photolysis - photolysis=self%phyref*(chemEIR*self%chemEIR_scaling/self%iref)*c + photolysis=self%phyref*(chemEIR*self%chemEIR_scaling/self%iref)*c ! in order to ensure mass conservation, the fraction of carbon going from T1 to T2 after photolysis is down regulated ! if T1 has less N and/or P than T2. Any excess of nutrients is redirected into the dissolved pool (N1p and N4n). (Luca, July 2018) - T1T2=self%phyt*min(1._rk,XXn) + T1T2=self%phyt*min(1._rk,XXn) - _SET_ODE_(self%id_c,-(1._rk+self%photoaging)*photolysis-flocc) + _SET_ODE_(self%id_c,-(1._rk+self%photoaging)*photolysis-flocc) - if (self%photoaging.gt.0._rk) then - _SET_ODE_(self%id_T1_older_c,self%photoaging*photolysis) - _SET_ODE_(self%id_T1_older_n,self%photoaging*photolysis*self%qn) - _SET_ODE_(self%id_T1_older_p,self%photoaging*photolysis*self%qp) - end if + if (self%photoaging.gt.0._rk) then + _SET_ODE_(self%id_TD_older_c,self%photoaging*photolysis) + _SET_ODE_(self%id_TD_older_n,self%photoaging*photolysis*self%qn) + _SET_ODE_(self%id_TD_older_p,self%photoaging*photolysis*self%qp) + end if - _SET_ODE_(self%id_RPc,+flocc) - _SET_ODE_(self%id_RPn,+flocc*self%qn) - _SET_ODE_(self%id_RPp,+flocc*self%qp) - _SET_ODE_(self%id_T2c,+photolysis*T1T2) - _SET_ODE_(self%id_O3c,+photolysis*(1._rk-T1T2)/CMass) - _SET_ODE_(self%id_N1p,+photolysis*(1._rk-T1T2)*self%qp+photolysis*T1T2*px) - _SET_ODE_(self%id_N4n,+photolysis*(1._rk-T1T2)*self%qn+photolysis*T1T2*nx) - _SET_DIAGNOSTIC_(self%id_photolysis, photolysis) - _SET_DIAGNOSTIC_(self%id_flocc, flocc) - - _LOOP_END_ + _SET_ODE_(self%id_RPc,+flocc) + _SET_ODE_(self%id_RPn,+flocc*self%qn) + _SET_ODE_(self%id_RPp,+flocc*self%qp) + _SET_ODE_(self%id_T2c,+photolysis*T1T2) + _SET_ODE_(self%id_O3c,+photolysis*(1._rk-T1T2)/CMass) + _SET_ODE_(self%id_N1p,+photolysis*(1._rk-T1T2)*self%qp+photolysis*T1T2*px) + _SET_ODE_(self%id_N4n,+photolysis*(1._rk-T1T2)*self%qn+photolysis*T1T2*nx) + _SET_DIAGNOSTIC_(self%id_photolysis, photolysis) + _SET_DIAGNOSTIC_(self%id_flocc, flocc) + + end if !is_photolabile + _LOOP_END_ end subroutine do @@ -228,6 +246,7 @@ subroutine do_surface(self,_ARGUMENTS_DO_SURFACE_) ! Enter horizontal loops (if any) _HORIZONTAL_LOOP_BEGIN_ + if (self%is_photolabile) then _GET_(self%id_chemEIR,chemEIR) _GET_(self%id_c,c) _GET_WITH_BACKGROUND_(self%id_T2c,T2c) @@ -258,16 +277,16 @@ subroutine do_surface(self,_ARGUMENTS_DO_SURFACE_) _SET_SURFACE_EXCHANGE_(self%id_T2c,+photolysis*T1T2) if (self%photoaging.gt.0._rk) then - _SET_SURFACE_EXCHANGE_(self%id_T1_older_c,self%photoaging*photolysis) - _SET_SURFACE_EXCHANGE_(self%id_T1_older_n,self%photoaging*photolysis*self%qn) - _SET_SURFACE_EXCHANGE_(self%id_T1_older_p,self%photoaging*photolysis*self%qp) + _SET_SURFACE_EXCHANGE_(self%id_TD_older_c,self%photoaging*photolysis) + _SET_SURFACE_EXCHANGE_(self%id_TD_older_n,self%photoaging*photolysis*self%qn) + _SET_SURFACE_EXCHANGE_(self%id_TD_older_p,self%photoaging*photolysis*self%qp) end if _SET_SURFACE_EXCHANGE_(self%id_O3c,+photolysis*(1._rk-T1T2)/CMass) _SET_SURFACE_EXCHANGE_(self%id_N1p,+photolysis*(1._rk-T1T2)*self%qp+photolysis*T1T2*px) _SET_SURFACE_EXCHANGE_(self%id_N4n,+photolysis*(1._rk-T1T2)*self%qn+photolysis*T1T2*nx) _SET_HORIZONTAL_DIAGNOSTIC_(self%id_surface_photolysis, photolysis) - + end if !is_photolabile _HORIZONTAL_LOOP_END_ end subroutine @@ -289,10 +308,11 @@ subroutine shadow_initialize(self,configunit) call self%request_coupling_to_model(self%id_parent_c,self%id_parent,'c') if (self%bioaging.gt.0._rk) then - call self%register_model_dependency(self%id_T1_older_parent,'T1_older_parent') - call self%register_state_dependency(self%id_T1_older_parent_c,'T1_older_parent_c','mg C/m^3','non photolabile terrigenous DOC') - call self%request_coupling_to_model(self%id_T1_older_parent_c,self%id_T1_older_parent,'c') -! call copy_fluxes(self,self%id_c_shadow,self%id_T1_older_parent_c,self%bioaging) + call self%register_model_dependency(self%id_TD_older_parent,'TD_older_parent') + call self%register_state_dependency(self%id_TD_older_parent_c,'TD_older_parent_c','mg C/m^3','non photolabile terrigenous DOC') + call self%request_coupling_to_model(self%id_TD_older_parent_c,self%id_TD_older_parent,'c') + !call copy_fluxes(self,self%id_c_shadow,self%id_TD_older_parent_c,self%bioaging) + end if call copy_fluxes(self,self%id_c_shadow,self%id_parent_c,(1._rk+self%bioaging)) From 6cbc51c81da7a9b3457d27dd0136b968192d5cdb Mon Sep 17 00:00:00 2001 From: Yuri Artioli Date: Mon, 16 Dec 2019 14:43:18 +0000 Subject: [PATCH 14/26] made bactaria able to feed on variable numbers of tDOC pools --- src/bacteria_docdyn.F90 | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/bacteria_docdyn.F90 b/src/bacteria_docdyn.F90 index 3ccfeb3..39cca3a 100644 --- a/src/bacteria_docdyn.F90 +++ b/src/bacteria_docdyn.F90 @@ -151,7 +151,7 @@ subroutine initialize(self,configunit) call self%register_state_dependency(self%id_TDn(iTD),'TD'//trim(index)//'n','mmol N/m^3', 'nitrogen in substrate '//trim(index)) call self%register_state_dependency(self%id_TDp(iTD),'TD'//trim(index)//'p','mmol P/m^3', 'phosphorus in substrate '//trim(index)) call self%register_model_dependency(self%id_TD(iTD),'TD'//trim(index)) - call self%request_coupling_to_model(self%id_TDc(iTD),self%id_RP(iRP),'c') ! For now link to hardcoded "c" to get a direct link to state mg C/m3 (and not a diagnostic for mmol C/m3) + call self%request_coupling_to_model(self%id_TDc(iTD),self%id_TD(iTD),'c') ! For now link to hardcoded "c" to get a direct link to state mg C/m3 (and not a diagnostic for mmol C/m3) call self%request_coupling_to_model(self%id_TDn(iTD),self%id_TD(iTD),standard_variables%total_nitrogen) call self%request_coupling_to_model(self%id_TDp(iTD),self%id_TD(iTD),standard_variables%total_phosphorus) call self%register_diagnostic_variable(self%id_fTDB1c(iTD),'fT'//trim(index)//'B1c','mg C/m^3/d','bacterial uptake of terrigenous DOC'//trim(index)) @@ -170,7 +170,7 @@ subroutine initialize(self,configunit) allocate(self%rTDB1X(self%nTD)) do iTD=1,self%nTD write (index,'(i0)') iTD - call self%get_parameter(self%rTDB1X(iTD),'rTD'//trim(index)//'B1X','-','fraction of substrate T'//trim(index)//'available to bacteria') + call self%get_parameter(self%rTDB1X(iTD),'rTD'//trim(index),'-','fraction of substrate T'//trim(index)//'available to bacteria') end do call self%get_parameter(self%rR2B1X,'rR2','-','fraction of semi-labile DOC available to bacteria') @@ -234,8 +234,8 @@ subroutine do(self,_ARGUMENTS_DO_) integer :: iRP, iTD real(rk),dimension(self%nRP) :: RPc,RPcP,RPnP,RPpP real(rk),dimension(self%nRP) :: fRPB1c,fRPB1p,fRPB1n - real(rk),dimension(self%nRP) :: TDcP,TDc,TDnP,TDpP - real(rk),dimension(self%nRP) :: fTDB1c,fTDB1p,fTDB1n + real(rk),dimension(self%nTD) :: TDcP,TDc,TDnP,TDpP + real(rk),dimension(self%nTD) :: fTDB1c,fTDB1p,fTDB1n ! Enter spatial loops (if any) _LOOP_BEGIN_ @@ -274,9 +274,9 @@ subroutine do(self,_ARGUMENTS_DO_) do iTD=1,self%nTD _GET_WITH_BACKGROUND_(self%id_TDc(iTD),TDc(iTD)) - _GET_(self%id_TDc(iTD),TDcP(iRP)) - _GET_(self%id_TDn(iTD),TDnP(iRP)) - _GET_(self%id_TDp(iTD),TDpP(iRP)) + _GET_(self%id_TDc(iTD),TDcP(iTD)) + _GET_(self%id_TDn(iTD),TDnP(iTD)) + _GET_(self%id_TDp(iTD),TDpP(iTD)) end do qpB1c = B1p/B1c From 4d6d254497eae779de6432b96698b72afb570eea Mon Sep 17 00:00:00 2001 From: Yuri Artioli Date: Tue, 17 Dec 2019 14:53:38 +0000 Subject: [PATCH 15/26] various bits for bacterial uptake and aging added DOESNOT CONSERVE MASS WHEN PHOTOAGING>0 --- src/TDOC.F90 | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/src/TDOC.F90 b/src/TDOC.F90 index 2cf9c9b..9d7226b 100644 --- a/src/TDOC.F90 +++ b/src/TDOC.F90 @@ -24,7 +24,7 @@ module ersem_TDOC type (type_dependency_id) :: id_X1X ! Salinity ! type (type_horizontal_dependency_id) :: id_R1c,id_R1d type (type_horizontal_diagnostic_variable_id) :: id_surface_photolysis, id_surface_photo_aging - type (type_diagnostic_variable_id) :: id_photolysis,id_flocc, id_photo_aging + type (type_diagnostic_variable_id) :: id_photolysis,id_flocc, id_photo_aging, id_bio_aging ! Parameters @@ -134,10 +134,10 @@ subroutine initialize(self,configunit) call self%request_coupling_to_model(self%id_TD_older_n,self%id_TD_older,standard_variables%total_nitrogen) call self%request_coupling_to_model(self%id_TD_older_p,self%id_TD_older,standard_variables%total_phosphorus) if (self%is_photolabile) then - call self%register_diagnostic_variable(self%id_photo_aging,'photoaging','mgC/m^3/d','aging due to 3D photoloysis') + call self%register_diagnostic_variable(self%id_photo_aging,'photoaging','mgC/m^3/d','aging due to 3D photoloysis') call self%register_horizontal_diagnostic_variable(self%id_surface_photo_aging,'surface_photoaging','mgC/m^2/d','aging due to surface photolysis') end if - + call self%register_diagnostic_variable(self%id_bio_aging,'bioaging','mgC/m^3/d','aging due to microbial degrdation') end if @@ -152,13 +152,14 @@ subroutine initialize(self,configunit) shadow%qp=self%qp shadow%bioaging=self%bioaging call shadow%couplings%set_string('parent',self%name) - if ((self%bioaging.gt.0._rk)) call shadow%couplings%set_string('TD_older_parent','../TD_older') call self%add_child(shadow,'shadow',configunit=configunit) + if ((self%bioaging.gt.0._rk)) then + call shadow%couplings%set_string('TD_older_parent','../TD_older') + !call self%register_dependency(self%id_shadow_bioflux,'B_degradation','','bacterial degradation of tDOC') + !call self%request_coupling(self%id_shadow_bioflux,trim(shadow%id_c_shadow%link%target%name//'_sms_tot')) ! + !call copy_fluxes(self,shadow%id_c_shadow,self%id_c,(1._rk+self%bioaging)) + endif - if bioaging - call copier%register_dependency(%id_sms, 'sms', '','sources minus sinks') - call copier%request_coupling(copier%id_sms, trim(source_variable%link%target%name)//'_sms_tot') - end subroutine initialize @@ -168,7 +169,7 @@ subroutine do(self,_ARGUMENTS_DO_) _DECLARE_ARGUMENTS_DO_ ! !LOCAL VARIABLES: - real(rk) :: flocc,photolysis,R8cP,R8c,T2c,T2n,T2p,O3c,O3cP,T2cP,chemEIR,c,Xp,Xn,XXn,T1T2,px,nx + real(rk) :: flocc,photolysis,R8cP,R8c,T2c,T2n,T2p,O3c,O3cP,T2cP,chemEIR,c,Xp,Xn,XXn,T1T2,px,nx, bio_flux real(rk) :: X1X,sal ! Enter spatial loops (if any) @@ -216,10 +217,16 @@ subroutine do(self,_ARGUMENTS_DO_) _SET_ODE_(self%id_c,-(1._rk+self%photoaging)*photolysis-flocc) if (self%photoaging.gt.0._rk) then - _SET_ODE_(self%id_TD_older_c,self%photoaging*photolysis) + _SET_ODE_(self%id_TD_older_c,self%photoaging*photolysis/CMASS) _SET_ODE_(self%id_TD_older_n,self%photoaging*photolysis*self%qn) _SET_ODE_(self%id_TD_older_p,self%photoaging*photolysis*self%qp) end if + + !if (self%bioaging.gt.0._rk) then + ! _GET_(self%id_shadow_bioflux,bio_flux) + ! _SET_ODE_(self%id_TD_older_c,self%bioaging*bio_flux) + ! _SET_DIAGNOSTIC_(self%id_bio_aging,self%bioaging*bio_flux) + !endif _SET_ODE_(self%id_RPc,+flocc) _SET_ODE_(self%id_RPn,+flocc*self%qn) @@ -311,11 +318,11 @@ subroutine shadow_initialize(self,configunit) call self%register_model_dependency(self%id_TD_older_parent,'TD_older_parent') call self%register_state_dependency(self%id_TD_older_parent_c,'TD_older_parent_c','mg C/m^3','non photolabile terrigenous DOC') call self%request_coupling_to_model(self%id_TD_older_parent_c,self%id_TD_older_parent,'c') - !call copy_fluxes(self,self%id_c_shadow,self%id_TD_older_parent_c,self%bioaging) + call copy_fluxes(self,self%id_c_shadow,self%id_TD_older_parent_c,-self%bioaging) end if - call copy_fluxes(self,self%id_c_shadow,self%id_parent_c,(1._rk+self%bioaging)) + call copy_fluxes(self,self%id_c_shadow,self%id_parent_c,1._rk+self%bioaging)!scale_factor=(1._rk+self%bioaging)) end subroutine shadow_initialize From 1f73404241cd0b0a9b431eabfbb1326f34e5f2f7 Mon Sep 17 00:00:00 2001 From: Yuri Artioli Date: Tue, 17 Dec 2019 16:51:33 +0000 Subject: [PATCH 16/26] MASS is conserved but use it only in the case when T1 and T2 --- src/TDOC.F90 | 57 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 37 insertions(+), 20 deletions(-) diff --git a/src/TDOC.F90 b/src/TDOC.F90 index 9d7226b..0ab87ee 100644 --- a/src/TDOC.F90 +++ b/src/TDOC.F90 @@ -217,9 +217,9 @@ subroutine do(self,_ARGUMENTS_DO_) _SET_ODE_(self%id_c,-(1._rk+self%photoaging)*photolysis-flocc) if (self%photoaging.gt.0._rk) then - _SET_ODE_(self%id_TD_older_c,self%photoaging*photolysis/CMASS) - _SET_ODE_(self%id_TD_older_n,self%photoaging*photolysis*self%qn) - _SET_ODE_(self%id_TD_older_p,self%photoaging*photolysis*self%qp) + _SET_ODE_(self%id_TD_older_c,self%photoaging*photolysis) +! _SET_ODE_(self%id_TD_older_n,self%photoaging*photolysis*self%qn) +! _SET_ODE_(self%id_TD_older_p,self%photoaging*photolysis*self%qp) end if !if (self%bioaging.gt.0._rk) then @@ -260,18 +260,34 @@ subroutine do_surface(self,_ARGUMENTS_DO_SURFACE_) _GET_WITH_BACKGROUND_(self%id_T2n,T2n) _GET_WITH_BACKGROUND_(self%id_T2p,T2p) - IF(T2c.gt.0._rk) then - Xn=self%qn/(T2n/T2c) - Xp=self%qp/(T2p/T2c) - nx=self%qn-(T2n/T2c) - px=self%qp-(T2p/T2c) - else - Xn=0._rk - Xp=0._rk - nx=1._rk - px=1._rk - endif - + ! YA: this BLOCK is commented because does not work as it should + ! for now I leave it like that and force behaviour as if T1 stoichiometry is identical to T2 stoichiometry (True for LOCATE 3D runs) +! IF(T2c.gt.0._rk) then +! Xn=self%qn/(T2n/T2c) +! Xp=self%qp/(T2p/T2c) +! nx=self%qn-(T2n/T2c) +! px=self%qp-(T2p/T2c) +! else +! Xn=0._rk +! Xp=0._rk +! nx=1._rk +! px=1._rk +! endif +! +! ! the two following checks are needed because due to roundings, N and P are not conserved otherwise +! if (abs(nx).lt.1.e-5_rk) then +! nx=0._rk +! Xn=1._rk +! endif +! if (abs(px).lt.1.e-5_rk) then +! px=0._rk +! Xp=1._rk +! endif + + nx=0._rk + Xn=1._rk + px=0._rk + Xp=1._rk XXn=min(Xn,Xp) ! Photolysis photolysis=self%surf_phyref*(chemEIR*self%chemEIR_scaling/self%iref)*c @@ -285,13 +301,14 @@ subroutine do_surface(self,_ARGUMENTS_DO_SURFACE_) if (self%photoaging.gt.0._rk) then _SET_SURFACE_EXCHANGE_(self%id_TD_older_c,self%photoaging*photolysis) - _SET_SURFACE_EXCHANGE_(self%id_TD_older_n,self%photoaging*photolysis*self%qn) - _SET_SURFACE_EXCHANGE_(self%id_TD_older_p,self%photoaging*photolysis*self%qp) +! _SET_SURFACE_EXCHANGE_(self%id_TD_older_n,-self%photoaging*photolysis*self%qn) +! _SET_SURFACE_EXCHANGE_(self%id_TD_older_p,-self%photoaging*photolysis*self%qp) end if _SET_SURFACE_EXCHANGE_(self%id_O3c,+photolysis*(1._rk-T1T2)/CMass) - _SET_SURFACE_EXCHANGE_(self%id_N1p,+photolysis*(1._rk-T1T2)*self%qp+photolysis*T1T2*px) - _SET_SURFACE_EXCHANGE_(self%id_N4n,+photolysis*(1._rk-T1T2)*self%qn+photolysis*T1T2*nx) + if (nx.NE.0._rk) write(6,*) trim(self%name),T2c,T2n,self%qn,Xn + _SET_SURFACE_EXCHANGE_(self%id_N1p,+photolysis*(1._rk-T1T2)*self%qp)!+photolysis*T1T2*px) + _SET_SURFACE_EXCHANGE_(self%id_N4n,+photolysis*(1._rk-T1T2)*self%qn)!+photolysis*T1T2*nx) _SET_HORIZONTAL_DIAGNOSTIC_(self%id_surface_photolysis, photolysis) end if !is_photolabile _HORIZONTAL_LOOP_END_ @@ -318,7 +335,7 @@ subroutine shadow_initialize(self,configunit) call self%register_model_dependency(self%id_TD_older_parent,'TD_older_parent') call self%register_state_dependency(self%id_TD_older_parent_c,'TD_older_parent_c','mg C/m^3','non photolabile terrigenous DOC') call self%request_coupling_to_model(self%id_TD_older_parent_c,self%id_TD_older_parent,'c') - call copy_fluxes(self,self%id_c_shadow,self%id_TD_older_parent_c,-self%bioaging) + call copy_fluxes(self,self%id_c_shadow,self%id_TD_older_parent_c,-self%bioaging) ! - because an uptake (negative flux) from bacteria correspond to increase of the older DOC (positive fulx) end if From e1feb13375ddfef02a0cc1b266d6e9aeee14e74c Mon Sep 17 00:00:00 2001 From: Dr Helen Powley Date: Tue, 13 Oct 2020 10:45:59 +0100 Subject: [PATCH 17/26] fabm 1.0 compatibility for registering horizonatal diagnostics --- src/TDOC.F90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/TDOC.F90 b/src/TDOC.F90 index 0ab87ee..25a25e1 100644 --- a/src/TDOC.F90 +++ b/src/TDOC.F90 @@ -121,7 +121,7 @@ subroutine initialize(self,configunit) call self%register_state_dependency(self%id_N1p,'N1p','mmol P/m^3','phosphate') call self%register_state_dependency(self%id_N4n,'N4n','mmol N/m^3','ammonium') call self%register_diagnostic_variable(self%id_photolysis,'photolysis','mgC/m^3/d','photolysis') - call self%register_horizontal_diagnostic_variable(self%id_surface_photolysis,'surface_photolysis','mgC/m^2/d','surface photolysis') + call self%register_horizontal_diagnostic_variable(self%id_surface_photolysis,'surface_photolysis','mgC/m^2/d','surface photolysis',source=source_do_surface) call self%register_diagnostic_variable(self%id_flocc,'flocc','mgC/m^3/d','flocculation') end if @@ -135,7 +135,7 @@ subroutine initialize(self,configunit) call self%request_coupling_to_model(self%id_TD_older_p,self%id_TD_older,standard_variables%total_phosphorus) if (self%is_photolabile) then call self%register_diagnostic_variable(self%id_photo_aging,'photoaging','mgC/m^3/d','aging due to 3D photoloysis') - call self%register_horizontal_diagnostic_variable(self%id_surface_photo_aging,'surface_photoaging','mgC/m^2/d','aging due to surface photolysis') + call self%register_horizontal_diagnostic_variable(self%id_surface_photo_aging,'surface_photoaging','mgC/m^2/d','aging due to surface photolysis',source=source_do_surface) end if call self%register_diagnostic_variable(self%id_bio_aging,'bioaging','mgC/m^3/d','aging due to microbial degrdation') From 7e865d394b23107ece5016d8fbd4ec973acc03e0 Mon Sep 17 00:00:00 2001 From: Ricardo Torres Date: Mon, 1 Mar 2021 10:00:40 +0000 Subject: [PATCH 18/26] added diagnostics to bacteria docdyn --- src/bacteria_docdyn.F90 | 48 ++++++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 17 deletions(-) diff --git a/src/bacteria_docdyn.F90 b/src/bacteria_docdyn.F90 index 39cca3a..57861f6 100644 --- a/src/bacteria_docdyn.F90 +++ b/src/bacteria_docdyn.F90 @@ -30,6 +30,10 @@ module ersem_bacteria_docdyn type (type_diagnostic_variable_id) :: id_fR1B1n,id_fB1R1n,id_fR1B1p,id_fB1R1p,id_fRPB1n,id_fRPB1p type (type_diagnostic_variable_id), allocatable,dimension(:) :: id_fTDB1c type (type_diagnostic_variable_id) :: id_minn,id_minp + ! add diagnostics variables for bacteria production and respiration budgets and metabolic status + ! RJT 2019 + type (type_diagnostic_variable_id) :: id_net_B1,id_uptake_B1 + ! RJT 2019 ! Parameters integer :: nRP,nTD integer :: iswBlimX @@ -188,26 +192,32 @@ subroutine initialize(self,configunit) ! Register diagnostics. call self%register_diagnostic_variable(self%id_fB1O3c,'fB1O3c','mg C/m^3/d','respiration') - call self%register_diagnostic_variable(self%id_fB1NIn,'fB1NIn','mmol N/m^3/d','release of DIN') - call self%register_diagnostic_variable(self%id_fB1N1p,'fB1N1p','mmol P/m^3/d','release of DIP') - - call self%register_diagnostic_variable(self%id_fB1R1c,'fB1R1c','mg C/m^3/d','release of labile DOC ') - call self%register_diagnostic_variable(self%id_fB1R2c,'fB1R2c','mg C/m^3/d','release of semi-labile DOC ') - call self%register_diagnostic_variable(self%id_fB1R3c,'fB1R3c','mg C/m^3/d','release of semi-refractory DOC ') - call self%register_diagnostic_variable(self%id_fB1R1n,'fB1R1n','mmol N/m^3/d','release of DON') - call self%register_diagnostic_variable(self%id_fB1R1p,'fB1R1p','mmol P/m^3/d','release of DOP') - - call self%register_diagnostic_variable(self%id_fR1B1c,'fR1B1c','mg C/m^3/d','uptake of labile DOC ') - call self%register_diagnostic_variable(self%id_fR2B1c,'fR2B1c','mg C/m^3/d','uptake of semi-labile DOC ') - call self%register_diagnostic_variable(self%id_fR3B1c,'fR3B1c','mg C/m^3/d','uptake of semi-refractory DOC ') - call self%register_diagnostic_variable(self%id_fRPB1c,'fRPB1c','mg C/m^3/d','total uptake of POC') - call self%register_diagnostic_variable(self%id_fRPB1n,'fRPB1n','mg N/m^3/d','total uptake of PON') - call self%register_diagnostic_variable(self%id_fRPB1p,'fRPB1p','mg P/m^3/d','total uptake of POP') - call self%register_diagnostic_variable(self%id_fR1B1n,'fR1B1n','mmol N/m^3/d','uptake of DON') - call self%register_diagnostic_variable(self%id_fR1B1p,'fR1B1p','mmol P/m^3/d','uptake of DOP') + call self%register_diagnostic_variable(self%id_fB1NIn,'fB1NIn','mmol N/m^3/d','bacterial DIN release') + call self%register_diagnostic_variable(self%id_fB1N1p,'fB1N1p','mmol P/m^3/d','bacterial DIP release') + + call self%register_diagnostic_variable(self%id_fB1R1c,'fB1R1c','mg C/m^3/d','bacterial release of labile DOC ') + call self%register_diagnostic_variable(self%id_fB1R2c,'fB1R2c','mg C/m^3/d','bacterial release of semi-labile DOC ') + call self%register_diagnostic_variable(self%id_fB1R3c,'fB1R3c','mg C/m^3/d','bacterial release of semi-refractory DOC ') + call self%register_diagnostic_variable(self%id_fB1R1n,'fB1R1n','mmol N/m^3/d','bacterial DON release') + call self%register_diagnostic_variable(self%id_fB1R1p,'fB1R1p','mmol P/m^3/d','bacterial DOP release') + + call self%register_diagnostic_variable(self%id_fR1B1c,'fR1B1c','mg C/m^3/d','bacterial uptake of labile DOC ') + call self%register_diagnostic_variable(self%id_fR2B1c,'fR2B1c','mg C/m^3/d','bacterial uptake of semi-labile DOC ') + call self%register_diagnostic_variable(self%id_fR3B1c,'fR3B1c','mg C/m^3/d','bacterial uptake of semi-refractory DOC ') + call self%register_diagnostic_variable(self%id_fT1B1c,'fT1B1c','mg C/m^3/d','bacterial uptake of photolabile terrigenous DOC ') + call self%register_diagnostic_variable(self%id_fT2B1c,'fT2B1c','mg C/m^3/d','bacterial uptake of nonphotolabile terrigenous') + call self%register_diagnostic_variable(self%id_fRPB1c,'fRPB1c','mg C/m^3/d','bacterial total uptake of POC') + call self%register_diagnostic_variable(self%id_fRPB1n,'fRPB1n','mg N/m^3/d','bacterial total uptake of PON') + call self%register_diagnostic_variable(self%id_fRPB1p,'fRPB1p','mg P/m^3/d','bacterial total uptake of POP') + call self%register_diagnostic_variable(self%id_fR1B1n,'fR1B1n','mmol N/m^3/d','bacterial uptake of DON') + call self%register_diagnostic_variable(self%id_fR1B1p,'fR1B1p','mmol P/m^3/d','bacterial uptake of DOP') call self%register_diagnostic_variable(self%id_minn,'minn','mmol N/m^3/d','mineralisation of DON to DIN') call self%register_diagnostic_variable(self%id_minp,'minp','mmol P/m^3/d','mineralisation of DOP to DIP') +! RJT 2019 - Bacteria metabolic status diagnostics + call self%register_diagnostic_variable(self%id_net_B1,'netB1','mmol C/m^3/d','net bacterial production') + call self%register_diagnostic_variable(self%id_uptake_B1,'rugB1','mmol C/m^3/d','actual uptake from substrates') +! RJT 2019 end subroutine subroutine do(self,_ARGUMENTS_DO_) @@ -353,6 +363,10 @@ subroutine do(self,_ARGUMENTS_DO_) _SET_ODE_(self%id_R2c,+ fB1R2c - sugB1*R2cP*self%rR2B1X) _SET_ODE_(self%id_R3c,+ fB1R3c - sugB1*R3cP*self%rR3B1X) +! RJT 2019 Bacteria production diagnostics + _SET_DIAGNOSTIC_(self%id_net_B1, netB1) + _SET_DIAGNOSTIC_(self%id_uptake_B1, rugB1) +! RJT 2019 _SET_DIAGNOSTIC_(self%id_fB1R1c, fB1R1c) _SET_DIAGNOSTIC_(self%id_fB1R2c, fB1R2c) _SET_DIAGNOSTIC_(self%id_fB1R3c, fB1R3c) From 84c9962aaa3a72604a2b8debe05cb500a6056c87 Mon Sep 17 00:00:00 2001 From: Ricardo Torres Date: Mon, 1 Mar 2021 12:59:59 +0000 Subject: [PATCH 19/26] added yaml examples for tdoc --- testcases/fabm-ersem-locate-arctic.yaml | 759 +++++++++ testcases/fabm-nemo-ages-tdoc.yaml | 1953 +++++++++++++++++++++++ 2 files changed, 2712 insertions(+) create mode 100644 testcases/fabm-ersem-locate-arctic.yaml create mode 100644 testcases/fabm-nemo-ages-tdoc.yaml diff --git a/testcases/fabm-ersem-locate-arctic.yaml b/testcases/fabm-ersem-locate-arctic.yaml new file mode 100644 index 0000000..27716aa --- /dev/null +++ b/testcases/fabm-ersem-locate-arctic.yaml @@ -0,0 +1,759 @@ +check_conservation: true +require_initialization: true +instances: + zenithAngle: + model: ersem/zenith_angle + light: + model: ersem/light_iop + parameters: + a0w: 0.03 # absorption coefficient of clear water (1/m), default = 0.036 + b0w: 0.0015 # backscatter coefficient of clear water (1/m), default = 0.0016 + pEIR_eow: 0.5 # photosynthetically active fraction of shortwave radiation (-), default = 0.5 +# relax: 0.033 +# initialization: +# ady: 0.03 + N1: + long_name: phosphate + model: ersem/pelagic_base + parameters: + composition: p # elemental composition + c0: 0.001 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + p: 0.8 # phosphorus (mmol P/m^3) + N3: + long_name: nitrate + model: ersem/pelagic_base + parameters: + composition: n # elemental composition + c0: 0.001 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + n: 4.0 # nitrogen (mmol N/m^3) + N4: + long_name: ammonium + model: ersem/pelagic_base + parameters: + composition: n # elemental composition + c0: 0.001 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + n: 0.1 # nitrogen (mmol N/m^3) + N5: + long_name: silicate + model: ersem/pelagic_base + parameters: + composition: s # elemental composition + s0: 0.0003 # background silicon concentration (mmol Si/m^3), default = 0.0 + initialization: + s: 8. #4.5 # silicate (mmol Si/m^3) + O2: + long_name: oxygen + model: ersem/oxygen + parameters: + ISWO2: 2 # saturation formulation (1: legacy ERSEM, 2: Weiss 1970) + initialization: + o: 300.0 # oxygen (mmol O_2/m^3) + O3: + long_name: carbonate + model: ersem/carbonate + parameters: + iswCO2: 1 # carbonate system diagnostics (0: off, 1: on), default = 1 + iswASFLUX: 1 # air-sea CO2 exchange (0: none, 1: Nightingale and Liss, 2: Wanninkhof 1992 without chemical enhancement, 3: Wanninkhof 1992 with chemical enhancement, 4: Wanninkhof 1999), default = 1 + iswtalk: 5 # alkalinity formulation (1-4: from salinity and temperature, 5: dynamic alkalinity), default = 5 + initialization: + c: 1600. #2130.0 # total dissolved inorganic carbon (mmol C/m^3) + TA: 1620. + R1: + long_name: labile dissolved organic matter + model: ersem/pelagic_base + parameters: + composition: cnp # elemental composition + c0: 0.0034 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + c: 10.0 # carbon (mg C/m^3) + n: 0.14 # nitrogen (mmol N/m^3) + p: 0.01 # phosphorus (mmol P/m^3) + R2: + long_name: semi-labile dissolved organic matter + model: ersem/pelagic_base + parameters: + composition: c # elemental composition + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + c: 12.0 # carbon (mg C/m^3) + R3: + long_name: semi-refractory dissolved organic matter + model: ersem/pelagic_base + parameters: + composition: c # elemental composition + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + c: 12.0 # carbon (mg C/m^3) + T1: + long_name: photolabile terrigenous DOC + model: ersem/TDOC + parameters: + qn: 0.0038 # 0.0167 #0.0042 + qp: 0.00009 #0.0019 #0.0001 # elemental composition + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + iopABS: 0.0002 # specific shortwave absorption (m^2/mg C), default = 0.0 + iopBBS: 0.0 # specific shortwave backscatter (m^2/mg C), default = 0.0 + phyref: 0.03 # reference photooxidation rate (d-1) + iref: 130 # reference irradinace for photooxidation (W m-2) + floc: 0.000002 # max flocculation rate [d-1 (mg C)-1] + sbx: 0.69 # log(salinity) (psu) at which flocculation is max.max is assumed to be around 2 psu. 0.69=log(2) + scx: 1.35 # salinity function parameter. 1.35 allows the max flocc rate to decrease of one order of magnitude at 35 psu + phyt: 0.24 # fraction of T1 going to T2 after photolysis + initialization: + c: 1200.0 + coupling: + T2: T2 + RPc: R6/c + RPn: R6/n + RPp: R6/p + O3c: O3/c + N1p: N1/p + N4n: N4/n + T2: + long_name: non photolabile terrigenous DOC + model: ersem/pelagic_base + parameters: + composition: c + qn: 0.0038 # 0.0167 #0.0042 + qp: 0.00009 # 0.0019 #0.0001 # elemental composition + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + c: 1200.0 + R4: + long_name: small-size pom + model: ersem/pelagic_base + parameters: + composition: cnpf # elemental composition + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + iopABS: 1e-04 # specific shortwave absorption (m^2/mg C), default = 0.0 + iopBBS: 1.6e-05 # specific shortwave backscatter (m^2/mg C), default = 0.0 + rm: 1.0 # sinking velocity (m/d), default = 0.0 + ndeposition: 2 # number of target pools for sedimentation, default = 0 + qxc2: 0.1 # fraction of carbon sinking into deposition target 2 (-) + qxn2: 0.1 # fraction of nitrogen sinking into deposition target 2 (-) + qxp2: 0.06 # fraction of phosphorus sinking into deposition target 2 (-) + initialization: + c: 7.2 # carbon (mg C/m^3) + n: 0.1 # nitrogen (mmol N/m^3) + p: 0.007 # phosphorus (mmol P/m^3) + coupling: + deposition_target1: Q6 + deposition_target2: Q7 + R6: + long_name: medium-size pom + model: ersem/pelagic_base + parameters: + composition: cnpsf # elemental composition + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + iopABS: 1e-05 # specific shortwave absorption (m^2/mg C), default = 0.0 + iopBBS: 1.6e-05 # specific shortwave backscatter (m^2/mg C), default = 0.0 + rm: 5.0 # sinking velocity (m/d), default = 0.0 + ndeposition: 2 # number of target pools for sedimentation, default = 0 + qxc2: 0.1 # fraction of carbon sinking into deposition target 2 (-) + qxn2: 0.1 # fraction of nitrogen sinking into deposition target 2 (-) + qxp2: 0.06 # fraction of phosphorus sinking into deposition target 2 (-) + qxs2: 0.0 # fraction of silicate sinking into deposition target 2 (-) + initialization: + c: 17.0 # carbon (mg C/m^3) + n: 0.24 # nitrogen (mmol N/m^3) + p: 0.02 # phosphorus (mmol P/m^3) + s: 0.1 # silicate (mmol Si/m^3) + coupling: + deposition_target1: Q6 + deposition_target2: Q7 + R8: + long_name: large-size pom + model: ersem/pelagic_base + parameters: + composition: cnps # elemental composition + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + iopABS: 1e-05 # specific shortwave absorption (m^2/mg C), default = 0.0 + iopBBS: 1.6e-05 # specific shortwave backscatter (m^2/mg C), default = 0.0 + rm: 10.0 # sinking velocity (m/d), default = 0.0 + ndeposition: 2 # number of target pools for sedimentation, default = 0 + qxc2: 0.1 # fraction of carbon sinking into deposition target 2 (-) + qxn2: 0.1 # fraction of nitrogen sinking into deposition target 2 (-) + qxp2: 0.06 # fraction of phosphorus sinking into deposition target 2 (-) + qxs2: 0.0 # fraction of silicate sinking into deposition target 2 (-) + initialization: + c: 0.17 # carbon (mg C/m^3) + n: 0.0024 # nitrogen (mmol N/m^3) + p: 0.0002 # phosphorus (mmol P/m^3) + s: 0.001 # silicate (mmol Si/m^3) + coupling: + deposition_target1: Q6 + deposition_target2: Q7 + Q1: + long_name: benthic dissolved organic matter + model: ersem/benthic_base + parameters: + composition: cnp # elemental composition + remin: 0.1 # remineralisation rate (1/d), default = 0.0 + pN3: 0.9 # nitrate fraction of remineralised nitrogen (remainder is ammonium) (-), default = 0.0 + c0: 0.001 # background carbon concentration (mg C/m^2), default = 0.0 + initialization: + c: 18.9 # carbon (mg C/m^2) + n: 0.6 # nitrogen (mmol N/m^2) + p: 0.0035 # phosphorus (mmol P/m^2) + coupling: + O3c: O3/c # dissolved inorganic carbon (mmol/m^3) + N1p: N1/p # phosphate (mmol P/m^3) + N3n: N3/n # nitrate (mmol N/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + Q6: + long_name: benthic particulate organic matter + model: ersem/benthic_base + parameters: + composition: cnpsf # elemental composition + remin: 0.05 # remineralisation rate (1/d), default = 0.0 + pN3: 0.9 # nitrate fraction of remineralised nitrogen (remainder is ammonium) (-), default = 0.0 + resuspension: true # enable resuspension, default = false + vel_crit: 0.02 # critical shear velocity for resuspension (m/s), default = 0.02 + c0: 0.001 # background carbon concentration (mg C/m^2), default = 0.0 + initialization: + c: 3052.0 # carbon (mg C/m^2) + n: 3.5 # nitrogen (mmol N/m^2) + p: 0.5 # phosphorus (mmol P/m^2) + s: 149.0 # silicate (mmol Si/m^2) +# pen_depth_c: 0.0173 # penetration depth of carbon (m) +# pen_depth_n: 0.02 # penetration depth of nitrogen (m) +# pen_depth_p: 0.025 # penetration depth of phosphorus (m) +# pen_depth_s: 0.0313 # penetration depth of silicate (m) + coupling: + RP: R6 + O3c: O3/c # dissolved inorganic carbon (mmol/m^3) + N1p: N1/p # phosphate (mmol P/m^3) + N3n: N3/n # nitrate (mmol N/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + N5s: N5/s # silicate (mmol Si/m^3) + Q7: + long_name: benthic refractory matter + model: ersem/benthic_base + parameters: + composition: cnp # elemental composition + remin: 0.01 # remineralisation rate (1/d), default = 0.0 + pN3: 0.9 # nitrate fraction of remineralised nitrogen (remainder is ammonium) (-), default = 0.0 + c0: 0.001 # background carbon concentration (mg C/m^2), default = 0.0 + initialization: + c: 30520.0 # carbon (mg C/m^2) + n: 80.0 # nitrogen (mmol N/m^2) + p: 8.0 # phosphorus (mmol P/m^2) + coupling: + O3c: O3/c # dissolved inorganic carbon (mmol/m^3) + N1p: N1/p # phosphate (mmol P/m^3) + N3n: N3/n # nitrate (mmol N/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + B1: + long_name: bacteria + model: ersem/bacteria_docdyn + parameters: + iswBlim: 2 # nutrient limitation (1: minimum of inorganic and organic availability, 2: additive availability) + q10: 2.0 # Q_10 temperature coefficient (-) + chdo: 0.31 # Michaelis-Menten constant for oxygen limitation (-) + chn: 0.5 # Michaelis-Menten constant for nitrate limitation (mmol N/m^3) + chp: 0.1 # Michaelis-Menten constant for phosphate limitation (mmol P/m^3) + sd: 0.05 # specific mortality at reference temperature (1/d) + sum: 2.2 # maximum specific uptake at reference temperature (1/d) + pu: 0.6 # efficiency at high oxygen levels (-) + puo: 0.2 # efficiency at low oxygen levels (-) + srs: 0.1 # specific rest respiration at reference temperature (1/d) + sR1: 1.0 # maximum turn-over rate of DOM (1/d), default = 1.0 + qpc: 0.0019 # maximum phosphorus to carbon ratio (mmol P/mg C) + qnc: 0.0167 # maximum nitrogen to carbon ratio (mmol N/mg C) + ur_O2: 0.1 # oxygen consumed per carbon respired (mmol O_2/mg C) + sR1N1: 0.0 # mineralisation rate of labile dissolved organic phosphorus (1/d) + sR1N4: 0.0 # mineralisation rate of labile dissolved organic nitrogen (1/d) + fsink: 7e-05 # scavenging rate for iron (1/d) + c0: 0.01 # background carbon concentration (mg C/m^3) + nRP: 3 # number of substrates, default = 0 + sRP1R1: 0.01 # remineralisation of substrate 1 to DOM (1/d) + sRP2R1: 0.0025 # remineralisation of substrate 2 to DOM (1/d) + sRP3R1: 0.001 # remineralisation of substrate 3 to DOM (1/d) + rR2: 0.0075 # fraction of semi-labile DOC available to bacteria (-) + rR3: 0.0025 # fraction of semi-refractory DOC available to bacteria (-) + rT1: 0.2 #0.2 #0.02 #0.002 # fraction of T1 available for bacteria + rT2: 0.6 #0.6 #0.6 #0.06 #0.006 # fraction of T2 available for bacteria + frR3: 0.3 # fraction of activity respiration converted to semi-refractory DOC (-) + initialization: + c: 15.7 # carbon (mg C/m^3) + n: 0.26 # nitrogen (mmol N/m^3) + p: 0.029 # phosphorus (mmol P/m^3) + coupling: + RP1: R4 + RP2: R6 + RP3: R8 + N1p: N1/p # phosphate (mmol P/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + R1c: R1/c # labile dissolved organic carbon (mg C/m^3) + R1p: R1/p # labile dissolved organic phosphorus (mmol P/m^3) + R1n: R1/n # labile dissolved organic nitrogen (mmol N/m^3) + R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) + R3c: R3/c + T1: T1 # photolabile terrigenous dissolved organic carbon (mg C/m^3) +# T1p: T1/p # photolabile terrigenous dissolved organic phosphorus (mmol P/m^3) +# T1n: T1/n # photolabile terrigenous dissolved organic nitrogen (mmol N/m^3) + T2: T2 # non-photolabile terrigenous dissolved organic carbon (mg C/m^3) +# T2p: T2/p # non-photolabile terrigenous dissolved organic phosphorus (mmol P/m^3) +# T2n: T2/n # non-photolabile terrigenous dissolved organic nitrogen (mmol N/m^3) + O3c: O3/c # carbon dioxide (mmol C/m^3) + O2o: O2/o # oxygen (mmol O_2/m^3) + pel_nit: + long_name: pelagic nitrification + model: ersem/nitrification + parameters: + q10: 2.0 # Q_10 temperature coefficient (-) + ISWph: 1 # pH impact on nitrification (0: off, 1: on) + sN4N3: 0.5 # specific nitrification rate (1/d) + chN3o: 2700.0 # Michaelis-Menten constant for cubic oxygen dependence of nitrification ((mmol O_2/m^3)^3) + chN4n: 0.5 # Michaelis-Menten constant for cubic ammonium dependence of nitrification ((mmol N/m^3)^3), default = 0.0 + coupling: + N3n: N3/n # nitrate (mmol N/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + O2o: O2/o # oxygen (mmol O_2/m^3) + P1: + long_name: diatoms + model: ersem/primary_producer + parameters: + sum: 1.375 # maximum specific productivity at reference temperature (1/d) + q10: 2.0 # Q_10 temperature coefficient (-) + srs: 0.04 # specific rest respiration at reference temperature (1/d) + pu_ea: 0.2 # excreted fraction of primary production (-) + pu_ra: 0.2 # respired fraction of primary production (-) + qnlc: 0.0042 # minimum nitrogen to carbon ratio (mmol N/mg C) + qplc: 0.0001 # minimum phosphorus to carbon ratio (mmol P/mg C) + xqcp: 1.0 # threshold for phosphorus limitation (relative to Redfield ratio) (-) + xqcn: 1.0 # threshold for nitrogen limitation (relative to Redfield ratio) (-) + xqp: 2.0 # maximum phosphorus to carbon ratio (relative to Redfield ratio) (-) + xqn: 1.075 # maximum nitrogen to carbon ratio (relative to Redfield ratio) (-) + qun3: 0.0025 # nitrate affinity (m^3/mg C/d) + qun4: 0.0025 # ammonium affinity (m^3/mg C/d) + qurp: 0.003 # phosphate affinity (m^3/mg C/d) + snplux: 1.0 # specific tendency of luxury uptake of nutrients towards maximum quota (1/d), default = 1.0 + use_Si: true # use silicate, default = false + qsc: 0.0118 # maximum silicate to carbon ratio (mmol Si/mg C) + chs: 0.2 # Michaelis-Menten constant for silicate limitation (mmol/m^3) + sdo: 0.05 # 1.1 of minimal specific lysis rate (1/d) + alpha: 4.0 # initial slope of PI-curve (mg C m^2/mg Chl/W/d) + beta: 0.07 # photoinhibition parameter (mg C m^2/mg Chl/W/d) + phim: 0.06 # maximum effective chlorophyll to carbon photosynthesis ratio (mg Chl/mg C) + Limnut: 1 # nitrogen-phosphorus colimitation formulation (0: geometric mean, 1: minimum, 2: harmonic mean) + docdyn: true # use dynamic ratio of labile to semi-labile DOM production, default = false + uB1c_O2: 0.11 # oxygen produced per unit of carbon fixed (mmol O_2/mg C) + urB1_O2: 0.1 # oxygen consumed per unit of carbon respired (mmol O_2/mg C) + iopABS: 0.007 # specific shortwave absorption (m^2/mg Chl), default = 0.008 + iopBBS: 0.00048 # specific shortwave backscatter (m^2/mg Chl), default = 0.003 + c0: 0.0001 # background carbon concentration (mg C/m^3), default = 0.0 + resm: 5.0 # maximum nutrient-limitation-induced sinking velocity (m/d), default = 0.0 + esni: 0.7 # level of nutrient limitation below which sinking commences (-) + cenh: false # enable atmospheric CO2 influence on photosynthesis, default = false + ndeposition: 3 # number of target pools for sedimentation, default = 1 + qxc2: 0.2 # fraction of carbon sinking into deposition target 2 (-) + qxc3: 0.005 # fraction of carbon sinking into deposition target 3 (-) + qxn2: 0.2 # fraction of nitrogen sinking into deposition target 2 (-) + qxn3: 0.005 # fraction of nitrogen sinking into deposition target 3 (-) + qxp2: 0.24 # fraction of phosphorus sinking into deposition target 2 (-) + qxp3: 0.003 # fraction of phosphorus sinking into deposition target 3 (-) + qxs2: 0.0 # fraction of silicate sinking into deposition target 2 (-) + qxs3: 0.0 # fraction of silicate sinking into deposition target 3 (-) + initialization: + c: 8.0 # carbon (mg C/m^3) + n: 0.1114 # nitrogen (mmol N/m^3) + p: 0.009 # phosphorus (mmol P/m^3) + s: 0.128 # silicate (mmol Si/m^3) + Chl: 0.4 # chlorophyll a (mg/m^3) + coupling: + RP: R6 + deposition_target1: Q6 + deposition_target2: Q1 + deposition_target3: Q7 + N1p: N1/p # phosphate (mmol P/m^3) + N3n: N3/n # nitrate (mmol N/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + N5s: N5/s # silicate (mmol Si/m^3) + R1c: R1/c # dissolved organic carbon (mg C/m^3) + R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) + R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) + R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) + O2o: O2/o # oxygen (mmol O_2/m^3) + O3c: O3/c # carbon dioxide (mmol C/m^3) + P2: + long_name: nanophytoplankton + model: ersem/primary_producer + parameters: + sum: 1.625 # maximum specific productivity at reference temperature (1/d) + q10: 2.0 # Q_10 temperature coefficient (-) + srs: 0.04 # specific rest respiration at reference temperature (1/d) + pu_ea: 0.2 # excreted fraction of primary production (-) + pu_ra: 0.2 # respired fraction of primary production (-) + qnlc: 0.005 # minimum nitrogen to carbon ratio (mmol N/mg C) + qplc: 0.000225 # minimum phosphorus to carbon ratio (mmol P/mg C) + xqcp: 1.0 # threshold for phosphorus limitation (relative to Redfield ratio) (-) + xqcn: 1.0 # threshold for nitrogen limitation (relative to Redfield ratio) (-) + xqp: 2.0 # maximum phosphorus to carbon ratio (relative to Redfield ratio) (-) + xqn: 1.075 # maximum nitrogen to carbon ratio (relative to Redfield ratio) (-) + qun3: 0.004 # nitrate affinity (m^3/mg C/d) + qun4: 0.004 # ammonium affinity (m^3/mg C/d) + qurp: 0.004 # phosphate affinity (m^3/mg C/d) + snplux: 1.0 # specific tendency of luxury uptake of nutrients towards maximum quota (1/d), default = 1.0 + use_Si: false # use silicate, default = false + sdo: 0.05 # 1.1 of minimal specific lysis rate (1/d) + alpha: 5.0 # initial slope of PI-curve (mg C m^2/mg Chl/W/d) + beta: 0.1 # photoinhibition parameter (mg C m^2/mg Chl/W/d) + phim: 0.025 # maximum effective chlorophyll to carbon photosynthesis ratio (mg Chl/mg C) + Limnut: 1 # nitrogen-phosphorus colimitation formulation (0: geometric mean, 1: minimum, 2: harmonic mean) + docdyn: true # use dynamic ratio of labile to semi-labile DOM production, default = false + uB1c_O2: 0.11 # oxygen produced per unit of carbon fixed (mmol O_2/mg C) + urB1_O2: 0.1 # oxygen consumed per unit of carbon respired (mmol O_2/mg C) + iopABS: 0.0041 # specific shortwave absorption (m^2/mg Chl), default = 0.008 + iopBBS: 0.003 # specific shortwave backscatter (m^2/mg Chl), default = 0.003 + c0: 0.001 # background carbon concentration (mg C/m^3), default = 0.0 + calcify: false # calcify, default = false + resm: 0.0 # maximum nutrient-limitation-induced sinking velocity (m/d), default = 0.0 + esni: 0.7 # level of nutrient limitation below which sinking commences (-) + cenh: false # enable atmospheric CO2 influence on photosynthesis, default = false + ndeposition: 3 # number of target pools for sedimentation, default = 1 + qxc2: 0.5 # fraction of carbon sinking into deposition target 2 (-) + qxc3: 0.05 # fraction of carbon sinking into deposition target 3 (-) + qxn2: 0.5 # fraction of nitrogen sinking into deposition target 2 (-) + qxn3: 0.05 # fraction of nitrogen sinking into deposition target 3 (-) + qxp2: 0.6 # fraction of phosphorus sinking into deposition target 2 (-) + qxp3: 0.03 # fraction of phosphorus sinking into deposition target 3 (-) + initialization: + c: 5.9 # carbon (mg C/m^3) + n: 0.0926 # nitrogen (mmol N/m^3) + p: 0.0036 # phosphorus (mmol P/m^3) + Chl: 0.3 # chlorophyll a (mg/m^3) + coupling: + RP: R4 + deposition_target1: Q6 + deposition_target2: Q1 + deposition_target3: Q7 + N1p: N1/p # phosphate (mmol P/m^3) + N3n: N3/n # nitrate (mmol N/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + R1c: R1/c # dissolved organic carbon (mg C/m^3) + R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) + R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) + R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) + O2o: O2/o # oxygen (mmol O_2/m^3) + O3c: O3/c # carbon dioxide (mmol C/m^3) +# RainR: L2/RainR # rain ratio (PIC : POC) (-) +# L2c: L2/c # free calcite (mg C/m^3) + P3: + long_name: picophytoplankton + model: ersem/primary_producer + parameters: + sum: 2.0 # maximum specific productivity at reference temperature (1/d) + q10: 2.0 # Q_10 temperature coefficient (-) + srs: 0.045 # specific rest respiration at reference temperature (1/d) + pu_ea: 0.2 # excreted fraction of primary production (-) + pu_ra: 0.2 # respired fraction of primary production (-) + qnlc: 0.006 # minimum nitrogen to carbon ratio (mmol N/mg C) + qplc: 0.00035 # minimum phosphorus to carbon ratio (mmol P/mg C) + xqcp: 1.0 # threshold for phosphorus limitation (relative to Redfield ratio) (-) + xqcn: 1.0 # threshold for nitrogen limitation (relative to Redfield ratio) (-) + xqp: 1.5 # maximum phosphorus to carbon ratio (relative to Redfield ratio) (-) + xqn: 1.05 # maximum nitrogen to carbon ratio (relative to Redfield ratio) (-) + qun3: 0.006 # nitrate affinity (m^3/mg C/d) + qun4: 0.007 # ammonium affinity (m^3/mg C/d) + qurp: 0.006 # phosphate affinity (m^3/mg C/d) + snplux: 1.0 # specific tendency of luxury uptake of nutrients towards maximum quota (1/d), default = 1.0 + use_Si: false # use silicate, default = false + sdo: 0.055 # 1.1 of minimal specific lysis rate (1/d) + alpha: 6.0 # initial slope of PI-curve (mg C m^2/mg Chl/W/d) + beta: 0.12 # photoinhibition parameter (mg C m^2/mg Chl/W/d) + phim: 0.015 # maximum effective chlorophyll to carbon photosynthesis ratio (mg Chl/mg C) + Limnut: 1 # nitrogen-phosphorus colimitation formulation (0: geometric mean, 1: minimum, 2: harmonic mean) + docdyn: true # use dynamic ratio of labile to semi-labile DOM production, default = false + uB1c_O2: 0.11 # oxygen produced per unit of carbon fixed (mmol O_2/mg C) + urB1_O2: 0.1 # oxygen consumed per unit of carbon respired (mmol O_2/mg C) + iopABS: 0.023 # specific shortwave absorption (m^2/mg Chl), default = 0.008 + iopBBS: 0.003 # specific shortwave backscatter (m^2/mg Chl), default = 0.003 + c0: 0.0088 # background carbon concentration (mg C/m^3), default = 0.0 + resm: 0.0 # maximum nutrient-limitation-induced sinking velocity (m/d), default = 0.0 + esni: 0.7 # level of nutrient limitation below which sinking commences (-) + cenh: false # enable atmospheric CO2 influence on photosynthesis, default = false + ndeposition: 3 # number of target pools for sedimentation, default = 1 + qxc2: 0.5 # fraction of carbon sinking into deposition target 2 (-) + qxc3: 0.05 # fraction of carbon sinking into deposition target 3 (-) + qxn2: 0.5 # fraction of nitrogen sinking into deposition target 2 (-) + qxn3: 0.05 # fraction of nitrogen sinking into deposition target 3 (-) + qxp2: 0.6 # fraction of phosphorus sinking into deposition target 2 (-) + qxp3: 0.03 # fraction of phosphorus sinking into deposition target 3 (-) + initialization: + c: 5.9 # carbon (mg C/m^3) + n: 0.0926 # nitrogen (mmol N/m^3) + p: 0.0036 # phosphorus (mmol P/m^3) + Chl: 0.3 # chlorophyll a (mg/m^3) + coupling: + RP: R4 + deposition_target1: Q6 + deposition_target2: Q1 + deposition_target3: Q7 + N1p: N1/p # phosphate (mmol P/m^3) + N3n: N3/n # nitrate (mmol N/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + R1c: R1/c # dissolved organic carbon (mg C/m^3) + R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) + R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) + R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) + O2o: O2/o # oxygen (mmol O_2/m^3) + O3c: O3/c # carbon dioxide (mmol C/m^3) + P4: + long_name: microphytoplankton + model: ersem/primary_producer + parameters: + sum: 1.125 # maximum specific productivity at reference temperature (1/d) + q10: 2.0 # Q_10 temperature coefficient (-) + srs: 0.035 # specific rest respiration at reference temperature (1/d) + pu_ea: 0.2 # excreted fraction of primary production (-) + pu_ra: 0.2 # respired fraction of primary production (-) + qnlc: 0.0042 # minimum nitrogen to carbon ratio (mmol N/mg C) + qplc: 0.0001 # minimum phosphorus to carbon ratio (mmol P/mg C) + xqcp: 1.0 # threshold for phosphorus limitation (relative to Redfield ratio) (-) + xqcn: 1.0 # threshold for nitrogen limitation (relative to Redfield ratio) (-) + xqp: 2.7 # maximum phosphorus to carbon ratio (relative to Redfield ratio) (-) + xqn: 1.1 # maximum nitrogen to carbon ratio (relative to Redfield ratio) (-) + qun3: 0.002 # nitrate affinity (m^3/mg C/d) + qun4: 0.002 # ammonium affinity (m^3/mg C/d) + qurp: 0.002 # phosphate affinity (m^3/mg C/d) + snplux: 1.0 # specific tendency of luxury uptake of nutrients towards maximum quota (1/d), default = 1.0 + use_Si: false # use silicate, default = false + sdo: 0.045 # 1.1 of minimal specific lysis rate (1/d) + alpha: 3.0 # initial slope of PI-curve (mg C m^2/mg Chl/W/d) + beta: 0.06 # photoinhibition parameter (mg C m^2/mg Chl/W/d) + phim: 0.045 # maximum effective chlorophyll to carbon photosynthesis ratio (mg Chl/mg C) + Limnut: 1 # nitrogen-phosphorus colimitation formulation (0: geometric mean, 1: minimum, 2: harmonic mean) + docdyn: true # use dynamic ratio of labile to semi-labile DOM production, default = false + uB1c_O2: 0.11 # oxygen produced per unit of carbon fixed (mmol O_2/mg C) + urB1_O2: 0.1 # oxygen consumed per unit of carbon respired (mmol O_2/mg C) + iopABS: 0.008 # specific shortwave absorption (m^2/mg Chl), default = 0.008 + iopBBS: 0.00048 # specific shortwave backscatter (m^2/mg Chl), default = 0.003 + c0: 0.0001 # background carbon concentration (mg C/m^3), default = 0.0 + resm: 5.0 # maximum nutrient-limitation-induced sinking velocity (m/d), default = 0.0 + esni: 0.7 # level of nutrient limitation below which sinking commences (-) + cenh: false # enable atmospheric CO2 influence on photosynthesis, default = false + ndeposition: 3 # number of target pools for sedimentation, default = 1 + qxc2: 0.5 # fraction of carbon sinking into deposition target 2 (-) + qxc3: 0.05 # fraction of carbon sinking into deposition target 3 (-) + qxn2: 0.5 # fraction of nitrogen sinking into deposition target 2 (-) + qxn3: 0.05 # fraction of nitrogen sinking into deposition target 3 (-) + qxp2: 0.6 # fraction of phosphorus sinking into deposition target 2 (-) + qxp3: 0.03 # fraction of phosphorus sinking into deposition target 3 (-) + initialization: + c: 5.9 # carbon (mg C/m^3) + n: 0.0926 # nitrogen (mmol N/m^3) + p: 0.0036 # phosphorus (mmol P/m^3) + Chl: 0.3 # chlorophyll a (mg/m^3) + coupling: + RP: R6 + deposition_target1: Q6 + deposition_target2: Q1 + deposition_target3: Q7 + N1p: N1/p # phosphate (mmol P/m^3) + N3n: N3/n # nitrate (mmol N/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + R1c: R1/c # dissolved organic carbon (mg C/m^3) + R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) + R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) + R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) + O2o: O2/o # oxygen (mmol O_2/m^3) + O3c: O3/c # carbon dioxide (mmol C/m^3) + Z4: + long_name: mesozooplankton + model: ersem/mesozooplankton + parameters: + q10: 2.0 # Q_10 temperature coefficient (-) + minfood: 12.0 # Michaelis-Menten constant to perceive food (mg C/m^3) + chuc: 36.0 # Michaelis-Menten constant for food uptake (mg C/m^3) + sum: 1.0 # maximum specific uptake at reference temperature (1/d) + pu: 0.6 # assimilation efficiency (-) + pu_ea: 0.5 # fraction of unassimilated prey that is excreted (not respired) (-) + pu_eaR: 0.9 # fraction of unassimilated detritus that is excreted (not respired) (-) + pe_R1: 0.5 # dissolved fraction of excreted/dying matter (-) + srs: 0.015 # specific rest respiration at reference temperature (1/d) + sd: 0.05 # basal mortality (1/d) + sdo: 0.2 # maximum mortality due to oxygen limitation (1/d) + chro: 7.81 # Michaelis-Menten constant for oxygen limitation (-) + qpc: 0.000786 # phosphorus to carbon ratio (mmol P/mg C) + qnc: 0.0126 # nitrogen to carbon ratio (mmol N/mg C) + Minprey: 300.0 # food threshold for overwintering state (mg C/m^2) + repw: 0.0025 # specific overwintering respiration (1/d) + mort: 0.0025 # specific overwintering mortality (1/d) + R1R2: 1.0 # labile fraction of produced dissolved organic carbon (-) + xR1p: 1.2 # transfer of phosphorus to DOM, relative to POM (-), default = 0.0 + xR1n: 1.0 # transfer of nitrogen to DOM, relative to POM (-), default = 0.0 + urB1_O2: 0.1 # oxygen consumed per carbon respired (mmol O_2/mg C) + gutdiss: 0.5 # fraction of prey calcite that dissolves after ingestion (-) + c0: 0.0033 # background concentration (mg C/m^3) + nprey: 9 # number of prey types, default = 0 + suprey1: 0.15 # relative affinity for prey type 1 (-) + suprey2: 0.05 # relative affinity for prey type 2 (-) + suprey3: 0.0 # relative affinity for prey type 3 (-) + suprey4: 0.15 # relative affinity for prey type 4 (-) + suprey5: 0.25 # relative affinity for prey type 5 (-) + suprey6: 0.25 # relative affinity for prey type 6 (-) + suprey7: 0.05 # relative affinity for prey type 7 (-) + suprey8: 0.0 # relative affinity for prey type 8 (-) + suprey9: 0.1 # relative affinity for prey type 9 (-) + prey9ispom: true # prey type 9 is detritus, default = false + initialization: + c: 1.2 # carbon (mg C/m^3) + coupling: + prey1: P1 + prey2: P2 + prey3: P3 + prey4: P4 + prey5: Z4 + prey6: Z5 + prey7: Z6 + prey8: B1 + prey9: R6 + RP: R8 + N1p: N1/p # phosphate (mmol P/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + R1c: R1/c # dissolved organic carbon (mg C/m^3) + R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) + R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) + R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) + O2o: O2/o # oxygen source (mmol O_2/m^3) + O3c: O3/c # carbon dioxide sink (mmol C/m^3) + L2c: L2/c # calcite (mg C/m^3) + Z5: + long_name: microzooplankton + model: ersem/microzooplankton + parameters: + q10: 2.0 # Q_10 temperature coefficient (-) + minfood: 12.0 # Michaelis-Menten constant to perceive food (mg C/m^3) + chuc: 32.0 # Michaelis-Menten constant for food uptake (mg C/m^3) + sum: 1.25 # maximum specific uptake at reference temperature (1/d) + pu: 0.5 # assimilation efficiency (-) + pu_ea: 0.5 # fraction of unassimilated prey that is excreted (not respired) (-) + pe_R1: 0.5 # dissolved fraction of excreted/dying matter (-) + srs: 0.02 # specific rest respiration at reference temperature (1/d) + sd: 0.05 # basal mortality (1/d) + sdo: 0.25 # maximum mortality due to oxygen limitation (1/d) + chro: 7.81 # Michaelis-Menten constant for oxygen limitation (-) + qpc: 0.001 # maximum phosphorus to carbon ratio (mmol P/mg C) + qnc: 0.0167 # maximum nitrogen to carbon ratio (mmol N/mg C) + stempp: 0.5 # specific excretion rate of excess phosphorus (1/d) + stempn: 0.5 # specific excretion rate of excess nitrogen (1/d) + R1R2: 1.0 # labile fraction of produced dissolved organic carbon (-) + xR1p: 1.2 # transfer of phosphorus to DOM, relative to POM (-), default = 1.0 + xR1n: 1.0 # transfer of nitrogen to DOM, relative to POM (-), default = 1.0 + urB1_O2: 0.1 # oxygen consumed per carbon respired (mmol O_2/mg C) + gutdiss: 0.5 # fraction of prey calcite that dissolves after ingestion (-) + c0: 0.0033 # background concentration (mg C/m^3) + nprey: 7 # number of prey types, default = 0 + suprey1: 0.1 # relative affinity for prey type 1 (-) + suprey2: 0.15 # relative affinity for prey type 2 (-) + suprey3: 0.15 # relative affinity for prey type 3 (-) + suprey4: 0.15 # relative affinity for prey type 4 (-) + suprey5: 0.1 # relative affinity for prey type 5 (-) + suprey6: 0.15 # relative affinity for prey type 6 (-) + suprey7: 0.2 # relative affinity for prey type 7 (-) + initialization: + c: 7.2 # carbon (mg C/m^3) + n: 0.12 # nitrogen (mmol N/m^3) + p: 0.0113 # phosphorus (mmol P/m^3) + coupling: + prey1: B1 + prey2: P1 + prey3: P2 + prey4: P3 + prey5: P4 + prey6: Z5 + prey7: Z6 + RP: R6 + N1p: N1/p # phosphate (mmol P/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + R1c: R1/c # dissolved organic carbon (mg C/m^3) + R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) + R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) + R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) + O2o: O2/o # oxygen source (mmol O_2/m^3) + O3c: O3/c # carbon dioxide sink (mmol C/m^3) + L2c: L2/c # calcite (mg C/m^3) + Z6: + long_name: nanoflagellates + model: ersem/microzooplankton + parameters: + q10: 2.0 # Q_10 temperature coefficient (-) + minfood: 12.0 # Michaelis-Menten constant to perceive food (mg C/m^3) + chuc: 28.0 # Michaelis-Menten constant for food uptake (mg C/m^3) + sum: 1.5 # maximum specific uptake at reference temperature (1/d) + pu: 0.4 # assimilation efficiency (-) + pu_ea: 0.5 # fraction of unassimilated prey that is excreted (not respired) (-) + pe_R1: 0.5 # dissolved fraction of excreted/dying matter (-) + srs: 0.025 # specific rest respiration at reference temperature (1/d) + sd: 0.05 # basal mortality (1/d) + sdo: 0.3 # maximum mortality due to oxygen limitation (1/d) + chro: 7.81 # Michaelis-Menten constant for oxygen limitation (-) + qpc: 0.001 # maximum phosphorus to carbon ratio (mmol P/mg C) + qnc: 0.0167 # maximum nitrogen to carbon ratio (mmol N/mg C) + stempp: 0.5 # specific excretion rate of excess phosphorus (1/d) + stempn: 0.5 # specific excretion rate of excess nitrogen (1/d) + R1R2: 1.0 # labile fraction of produced dissolved organic carbon (-) + xR1p: 1.2 # transfer of phosphorus to DOM, relative to POM (-), default = 1.0 + xR1n: 1.0 # transfer of nitrogen to DOM, relative to POM (-), default = 1.0 + urB1_O2: 0.1 # oxygen consumed per carbon respired (mmol O_2/mg C) + gutdiss: 0.5 # fraction of prey calcite that dissolves after ingestion (-) + c0: 0.0033 # background concentration (mg C/m^3) + nprey: 4 # number of prey types, default = 0 + suprey1: 0.45 # relative affinity for prey type 1 (-) + suprey2: 0.15 # relative affinity for prey type 2 (-) + suprey3: 0.25 # relative affinity for prey type 3 (-) + suprey4: 0.15 # relative affinity for prey type 4 (-) + initialization: + c: 2.421 # carbon (mg C/m^3) + n: 0.0505 # nitrogen (mmol N/m^3) + p: 0.047 # phosphorus (mmol P/m^3) + coupling: + prey1: B1 + prey2: P2 + prey3: P3 + prey4: Z6 + RP: R4 + N1p: N1/p # phosphate (mmol P/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + R1c: R1/c # dissolved organic carbon (mg C/m^3) + R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) + R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) + R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) + RPs: R6/s # particulate organic silicate (mmol Si/m^3) + O2o: O2/o # oxygen source (mmol O_2/m^3) + O3c: O3/c # carbon dioxide sink (mmol C/m^3) + L2c: L2/c # calcite (mg C/m^3) + L2: + long_name: calcite + model: ersem/calcification + parameters: + iswcal: 1 # calcification/dissolution dependence on calcite saturation (1: power law, 2: hyperbolic) + ncalc: 0.81 # power of the calcification law (Ridgwell et al. 2007, mineral calcite) (-) + ndiss: 2.22 # power of the dissolution law (Keir 1980) (-) + Rain0: 0.6 # maximum rain ratio from PISCES (-) + sedL2: 10.0 # sinking velocity (m/d) + sL2O3: 0.03 # maximum specific dissolution rate (1/d), default = 1.0 + c0: 1e-05 # background concentration (mg C/m^3), default = 0.0 + ndeposition: 1 # number of target pools for sedimentation, default = 1 + initialization: + c: 0.05 # carbon (mg C/m^3) + coupling: + deposition_target1: bL2 + om_cal: O3/Om_cal # calcite saturation (-) + O3c: O3/c # total dissolved inorganic carbon (mmol C/m^3) + bL2: + long_name: benthic calcite + model: ersem/benthic_base + parameters: + composition: c # elemental composition + remin: 0.05 # remineralisation rate (1/d), default = 0.0 + c0: 1e-05 # background carbon concentration (mg C/m^2), default = 0.0 + initialization: + c: 0.05 # carbon (mg C/m^2) + coupling: + O3c: O3/c # dissolved inorganic carbon (mmol/m^3) + diff --git a/testcases/fabm-nemo-ages-tdoc.yaml b/testcases/fabm-nemo-ages-tdoc.yaml new file mode 100644 index 0000000..d5aad7f --- /dev/null +++ b/testcases/fabm-nemo-ages-tdoc.yaml @@ -0,0 +1,1953 @@ +check_conservation: false +require_initialization: true +instances: + + zenithAngle: + model: ersem/zenith_angle + light: + model: ersem/light_iop_ady + parameters: + a0w: 0.03 # absorption coefficient of clear water (1/m), default = 0.036 + b0w: 0.0015 # backscatter coefficient of clear water (1/m), default = 0.0016 + pEIR_eow: 0.5 # photosynthetically active fraction of shortwave radiation (-), default = 0.5 + relax: 0.143 # relaxation towards satellite gelbstoff absorption (1/d), default=0.033 + initialization: + ADY: 0.05 + N1: + long_name: phosphate + model: ersem/pelagic_base + parameters: + composition: p # elemental composition + c0: 0.001 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + p: 0.4 # phosphorus (mmol P/m^3) + N3: + long_name: nitrate + model: ersem/pelagic_base + parameters: + composition: n # elemental composition + c0: 0.001 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + n: 8.0 # nitrogen (mmol N/m^3) + N4: + long_name: ammonium + model: ersem/pelagic_base + parameters: + composition: n # elemental composition + c0: 0.001 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + n: 0.1 # nitrogen (mmol N/m^3) + N5: + long_name: silicate + model: ersem/pelagic_base + parameters: + composition: s # elemental composition + s0: 0.0003 # background silicon concentration (mmol Si/m^3), default = 0.0 + initialization: + s: 4.5 # silicate (mmol Si/m^3) + O2: + long_name: oxygen + model: ersem/oxygen + parameters: + ISWO2: 2 # saturation formulation (1: legacy ERSEM, 2: Weiss 1970) + initialization: + o: 300.0 # oxygen (mmol O_2/m^3) + O3: + long_name: carbonate + model: ersem/carbonate + parameters: + iswCO2: 1 # carbonate system diagnostics (0: off, 1: on), default = 1 + iswASFLUX: 1 # air-sea CO2 exchange (0: none, 1: Nightingale and Liss, 2: Wanninkhof 1992 without chemical enhancement, 3: Wanninkhof 1992 with chemical enhancement, 4: Wanninkhof 1999), default = 1 + iswtalk: 2 # alkalinity formulation (1-4: from salinity and temperature, 5: dynamic alkalinity), default = 5 + iswbioalk: 1 + initialization: + c: 2130.0 # total dissolved inorganic carbon (mmol C/m^3) + R1: + long_name: labile dissolved organic matter + model: ersem/pelagic_base + parameters: + composition: cnp # elemental composition + c0: 0.0034 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + c: 10.0 # carbon (mg C/m^3) + n: 0.14 # nitrogen (mmol N/m^3) + p: 0.01 # phosphorus (mmol P/m^3) + R2: + long_name: semi-labile dissolved organic matter + model: ersem/pelagic_base + parameters: + composition: c # elemental composition + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + c: 12.0 # carbon (mg C/m^3) + R3: + long_name: semi-refractory dissolved organic matter + model: ersem/pelagic_base + parameters: + composition: c # elemental composition + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + c: 12.0 # carbon (mg C/m^3) + R4: + long_name: small-size pom + model: ersem/pelagic_base + parameters: + composition: cnpf # elemental composition + rm: 1.0 # sinking velocity (m/d), default = 0.0 + ndeposition: 2 # number of target pools where the sedimentation flux goes (-) + qxc2: 0.1 + qxn2: 0.1 + qxp2: 0.06 + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + c: 7.2 # carbon (mg C/m^3) + n: 0.1 # nitrogen (mmol N/m^3) + p: 0.007 # phosphorus (mmol P/m^3) + coupling: + deposition_target1: Q6/surface + deposition_target2: Q7/surface + R6: + long_name: medium-size pom + model: ersem/pelagic_base + parameters: + composition: cnpsf # elemental composition + rm: 5.0 # sinking velocity (m/d), default = 0.0 + ndeposition: 2 # number of target pools where the sedimentation flux goes (-) + qxc2: 0.1 + qxn2: 0.1 + qxp2: 0.06 + qxs2: 0.0 + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + c: 17.0 # carbon (mg C/m^3) + n: 0.24 # nitrogen (mmol N/m^3) + p: 0.02 # phosphorus (mmol P/m^3) + s: 0.1 # silicate (mmol Si/m^3) + coupling: + deposition_target1: Q6/surface + deposition_target2: Q7/surface + R8: + long_name: large-size pom + model: ersem/pelagic_base + parameters: + composition: cnps # elemental composition + rm: 10.0 # sinking velocity (m/d), default = 0.0 + ndeposition: 2 # number of target pools where the sedimentation flux goes (-) + qxc2: 0.1 + qxn2: 0.1 + qxp2: 0.06 + qxs2: 0.0 + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + c: 0.17 # carbon (mg C/m^3) + n: 0.0024 # nitrogen (mmol N/m^3) + p: 0.0002 # phosphorus (mmol P/m^3) + s: 0.001 # silicate (mmol Si/m^3) + coupling: + deposition_target1: Q6/surface + deposition_target2: Q7/surface + Q1: + long_name: benthic dissolved organic matter + model: ersem/benthic_base + parameters: + composition: cnp # elemental composition + c0: 0.001 # background carbon concentration (mg C/m^2) + initialization: + c: 18.9 # carbon (mg C/m^2) + n: 0.6 # nitrogen (mmol N/m^2) + p: 0.0035 # phosphorus (mmol P/m^2) + Q6: + long_name: benthic particulate organic matter + model: ersem/benthic_column_particulate_matter + parameters: + composition: cnpsf # elemental composition + resuspension: true # enable resuspension, default = false + c0: 0.001 # background carbon concentration (mg C/m^2) + initialization: + c: 3052.0 # carbon (mg C/m^2) + n: 3.5 # nitrogen (mmol N/m^2) + p: 0.5 # phosphorus (mmol P/m^2) + s: 149.0 # silicate (mmol Si/m^2) + pen_depth_c: 0.0173 # penetration depth of carbon (m) + pen_depth_n: 0.02 # penetration depth of nitrogen (m) + pen_depth_p: 0.025 # penetration depth of phosphorus (m) + pen_depth_s: 0.0313 # penetration depth of silicate (m) + coupling: + RP: R6 + Q7: + long_name: benthic refractory matter + model: ersem/benthic_column_particulate_matter + parameters: + composition: cnp # elemental composition + burial: true # enable burial, default = false + c0: 0.001 # background carbon concentration (mg C/m^2) + initialization: + c: 30520.0 # carbon (mg C/m^2) + n: 80.0 # nitrogen (mmol N/m^2) + p: 8.0 # phosphorus (mmol P/m^2) + pen_depth_c: 0.2 # penetration depth of carbon (m) + pen_depth_n: 0.25 # penetration depth of nitrogen (m) + pen_depth_p: 0.313 # penetration depth of phosphorus (m) + coupling: + burial_target: Q17 + Q17: + long_name: benthic buried matter + model: ersem/benthic_base + parameters: + composition: cnp # elemental composition + initialization: + c: 0.0 # carbon (mg C/m^2) + n: 0.0 # nitrogen (mmol N/m^2) + p: 0.0 # phosphorus (mmol P/m^2) + B1: + long_name: bacteria + model: ersem/bacteria_docdyn + parameters: + iswBlim: 2 # nutrient limitation (1: minimum of inorganic and organic availability, 2: additive availability) + q10: 2.0 # Q_10 temperature coefficient (-) + chdo: 0.31 # Michaelis-Menten constant for oxygen limitation (-) + chn: 0.5 # Michaelis-Menten constant for nitrate limitation (mmol N/m^3) + chp: 0.1 # Michaelis-Menten constant for phosphate limitation (mmol P/m^3) + sd: 0.05 # specific mortality at reference temperature (1/d) + sum: 2.2 # maximum specific uptake at reference temperature (1/d) + pu: 0.6 # efficiency at high oxygen levels (-) + puo: 0.2 # efficiency at low oxygen levels (-) + srs: 0.1 # specific rest respiration at reference temperature (1/d) + sR1: 1.0 # maximum turn-over rate of DOM (1/d), default = 1.0 + qpc: 0.0019 # maximum phosphorus to carbon ratio (mmol P/mg C) + qnc: 0.0167 # maximum nitrogen to carbon ratio (mmol N/mg C) + ur_O2: 0.1 # oxygen consumed per carbon respired (mmol O_2/mg C) + sR1N1: 0.0 # mineralisation rate of labile dissolved organic phosphorus (1/d) + sR1N4: 0.0 # mineralisation rate of labile dissolved organic nitrogen (1/d) + fsink: 7e-05 # scavenging rate for iron (1/d) + c0: 0.01 # background carbon concentration (mg C/m^3) + nRP: 3 # number of substrates, default = 0 + sRP1R1: 0.01 # remineralisation of substrate 1 to DOM (1/d) + sRP2R1: 0.0025 # remineralisation of substrate 2 to DOM (1/d) + sRP3R1: 0.001 # remineralisation of substrate 3 to DOM (1/d) + rR2: 0.0075 #0.0075 # fraction of semi-labile DOC available to bacteria (-) + rR3: 0.0025 #0.0025 # fraction of semi-refractory DOC available to bacteria (-) + frR3: 0.3 # fraction of activity respiration converted to semi-refractory DOC (-) + nTD: 6 # number of substrates, default = 0 + rTD1: 0.003525 #0.002 # fraction of tDOC pool 1 available for bacteria + rTD2: 0.000627 #0.0003554 # factor of .17777 from 30d # fraction of tDOC pool 2 available for bacteria + rTD3: 0.000275 #0.000156 # factor of .078 from 30d # fraction of tDOC pool 3 available for bacteria + rTD4: 0.0106 #0.006 # fraction of tDOC pool 4 available for bacteria + rTD5: 0.001888 #0.001066 # factor of .17777 from 30d # fraction of tDOC pool 5 available for bacteria + rTD6: 0.000825 #0.000468 # factor of .078 from 30d # fraction of tDOC pool 6 available for bacteria + initialization: + c: 15.7 # carbon (mg C/m^3) + n: 0.26 # nitrogen (mmol N/m^3) + p: 0.029 # phosphorus (mmol P/m^3) + coupling: + RP1: R4 + RP2: R6 + RP3: R8 + N1p: N1/p # phosphate (mmol P/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + R1c: R1/c # labile dissolved organic carbon (mg C/m^3) + R1p: R1/p # labile dissolved organic phosphorus (mmol P/m^3) + R1n: R1/n # labile dissolved organic nitrogen (mmol N/m^3) + R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) + R3c: R3/c + TD1: T1_30d/shadow # terrigenous dissolved organic carbon pool 1 (mg C/m^3) + TD2: T1_8y/shadow # terrigenous dissolved organic carbon pool 2 (mg C/m^3) + TD3: T1_70y/shadow # terrigenous dissolved organic carbon pool 3 (mg C/m^3) + TD4: T2_30d/shadow # terrigenous dissolved organic carbon pool 4 (mg C/m^3) + TD5: T2_8y/shadow # terrigenous dissolved organic carbon pool 5 (mg C/m^3) + TD6: T2_70y/shadow # terrigenous dissolved organic carbon pool 6 (mg C/m^3) + O3c: O3/c # carbon dioxide (mmol C/m^3) + O2o: O2/o # oxygen (mmol O_2/m^3) + pel_nit: + long_name: pelagic nitrification + model: ersem/nitrification + parameters: + q10: 2.0 # Q_10 temperature coefficient (-) + ISWph: 1 # pH impact on nitrification (0: off, 1: on) + sN4N3: 0.5 # specific nitrification rate (1/d) + chN3o: 2700.0 # Michaelis-Menten constant for cubic oxygen dependence of nitrification ((mmol O_2/m^3)^3) + chN4n: 0.5 # Michaelis-Menten constant for cubic ammonium dependence of nitrification ((mmol N/m^3)^3), default = 0.0 + coupling: + N3n: N3/n # nitrate (mmol N/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + O2o: O2/o # oxygen (mmol O_2/m^3) + P1: + long_name: diatoms + model: ersem/primary_producer + parameters: + sum: 1.375 # maximum specific productivity at reference temperature (1/d) + q10: 2.0 # Q_10 temperature coefficient (-) + srs: 0.04 # specific rest respiration at reference temperature (1/d) + pu_ea: 0.2 # excreted fraction of primary production (-) + pu_ra: 0.2 # respired fraction of primary production (-) + qnlc: 0.0042 # minimum nitrogen to carbon ratio (mmol N/mg C) + qplc: 0.0001 # minimum phosphorus to carbon ratio (mmol P/mg C) + xqcp: 1.0 # threshold for phosphorus limitation (relative to Redfield ratio) (-) + xqcn: 1.0 # threshold for nitrogen limitation (relative to Redfield ratio) (-) + xqp: 2.0 # maximum phosphorus to carbon ratio (relative to Redfield ratio) (-) + xqn: 1.075 # maximum nitrogen to carbon ratio (relative to Redfield ratio) (-) + qun3: 0.0025 # nitrate affinity (m^3/mg C/d) + qun4: 0.0025 # ammonium affinity (m^3/mg C/d) + qurp: 0.003 # phosphate affinity (m^3/mg C/d) + snplux: 1.0 # specific tendency of luxury uptake of nutrients towards maximum quota (1/d), default = 1.0 + use_Si: true # use silicate, default = false + qsc: 0.0118 # maximum silicate to carbon ratio (mmol Si/mg C) + chs: 0.2 # Michaelis-Menten constant for silicate limitation (mmol/m^3) + sdo: 0.05 # 1.1 of minimal specific lysis rate (1/d) + alpha: 4.0 # initial slope of PI-curve (mg C m^2/mg Chl/W/d) + beta: 0.07 # photoinhibition parameter (mg C m^2/mg Chl/W/d) + phim: 0.06 # maximum effective chlorophyll to carbon photosynthesis ratio (mg Chl/mg C) + Limnut: 1 # nitrogen-phosphorus colimitation formulation (0: geometric mean, 1: minimum, 2: harmonic mean) + docdyn: true # use dynamic ratio of labile to semi-labile DOM production, default = false + uB1c_O2: 0.11 # oxygen produced per unit of carbon fixed (mmol O_2/mg C) + urB1_O2: 0.1 # oxygen consumed per unit of carbon respired (mmol O_2/mg C) + iopABS: 0.007 # specific shortwave absorption (m^2/mg Chl), default = 0.008 + iopBBS: 0.00048 # specific shortwave backscatter (m^2/mg Chl), default = 0.003 + c0: 0.0001 # background carbon concentration (mg C/m^3), default = 0.0 + resm: 5.0 # maximum nutrient-limitation-induced sinking velocity (m/d), default = 0.0 + esni: 0.7 # level of nutrient limitation below which sinking commences (-) + cenh: false # enable atmospheric CO2 influence on photosynthesis, default = false + ndeposition: 3 # number of target pools for sedimentation, default = 1 + qxc2: 0.2 # fraction of carbon sinking into deposition target 2 (-) + qxc3: 0.005 # fraction of carbon sinking into deposition target 3 (-) + qxn2: 0.2 # fraction of nitrogen sinking into deposition target 2 (-) + qxn3: 0.005 # fraction of nitrogen sinking into deposition target 3 (-) + qxp2: 0.24 # fraction of phosphorus sinking into deposition target 2 (-) + qxp3: 0.003 # fraction of phosphorus sinking into deposition target 3 (-) + qxs2: 0.0 # fraction of silicate sinking into deposition target 2 (-) + qxs3: 0.0 # fraction of silicate sinking into deposition target 3 (-) + initialization: + c: 8.0 # carbon (mg C/m^3) + n: 0.1114 # nitrogen (mmol N/m^3) + p: 0.009 # phosphorus (mmol P/m^3) + s: 0.128 # silicate (mmol Si/m^3) + Chl: 0.4 # chlorophyll a (mg/m^3) + coupling: + RP: R6 + deposition_target1: Q6/surface + deposition_target2: Q1 + deposition_target3: Q7/surface + N1p: N1/p # phosphate (mmol P/m^3) + N3n: N3/n # nitrate (mmol N/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + N5s: N5/s # silicate (mmol Si/m^3) + R1c: R1/c # dissolved organic carbon (mg C/m^3) + R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) + R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) + R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) + O2o: O2/o # oxygen (mmol O_2/m^3) + O3c: O3/c # carbon dioxide (mmol C/m^3) + P2: + long_name: nanophytoplankton + model: ersem/primary_producer + parameters: + sum: 1.625 # maximum specific productivity at reference temperature (1/d) + q10: 2.0 # Q_10 temperature coefficient (-) + srs: 0.04 # specific rest respiration at reference temperature (1/d) + pu_ea: 0.2 # excreted fraction of primary production (-) + pu_ra: 0.2 # respired fraction of primary production (-) + qnlc: 0.005 # minimum nitrogen to carbon ratio (mmol N/mg C) + qplc: 0.000225 # minimum phosphorus to carbon ratio (mmol P/mg C) + xqcp: 1.0 # threshold for phosphorus limitation (relative to Redfield ratio) (-) + xqcn: 1.0 # threshold for nitrogen limitation (relative to Redfield ratio) (-) + xqp: 2.0 # maximum phosphorus to carbon ratio (relative to Redfield ratio) (-) + xqn: 1.075 # maximum nitrogen to carbon ratio (relative to Redfield ratio) (-) + qun3: 0.004 # nitrate affinity (m^3/mg C/d) + qun4: 0.004 # ammonium affinity (m^3/mg C/d) + qurp: 0.004 # phosphate affinity (m^3/mg C/d) + snplux: 1.0 # specific tendency of luxury uptake of nutrients towards maximum quota (1/d), default = 1.0 + use_Si: false # use silicate, default = false + sdo: 0.05 # 1.1 of minimal specific lysis rate (1/d) + alpha: 5.0 # initial slope of PI-curve (mg C m^2/mg Chl/W/d) + beta: 0.1 # photoinhibition parameter (mg C m^2/mg Chl/W/d) + phim: 0.025 # maximum effective chlorophyll to carbon photosynthesis ratio (mg Chl/mg C) + Limnut: 1 # nitrogen-phosphorus colimitation formulation (0: geometric mean, 1: minimum, 2: harmonic mean) + docdyn: true # use dynamic ratio of labile to semi-labile DOM production, default = false + uB1c_O2: 0.11 # oxygen produced per unit of carbon fixed (mmol O_2/mg C) + urB1_O2: 0.1 # oxygen consumed per unit of carbon respired (mmol O_2/mg C) + iopABS: 0.0041 # specific shortwave absorption (m^2/mg Chl), default = 0.008 + iopBBS: 0.003 # specific shortwave backscatter (m^2/mg Chl), default = 0.003 + c0: 0.001 # background carbon concentration (mg C/m^3), default = 0.0 + calcify: true # calcify, default = false + resm: 0.0 # maximum nutrient-limitation-induced sinking velocity (m/d), default = 0.0 + esni: 0.7 # level of nutrient limitation below which sinking commences (-) + cenh: false # enable atmospheric CO2 influence on photosynthesis, default = false + ndeposition: 3 # number of target pools for sedimentation, default = 1 + qxc2: 0.5 # fraction of carbon sinking into deposition target 2 (-) + qxc3: 0.05 # fraction of carbon sinking into deposition target 3 (-) + qxn2: 0.5 # fraction of nitrogen sinking into deposition target 2 (-) + qxn3: 0.05 # fraction of nitrogen sinking into deposition target 3 (-) + qxp2: 0.6 # fraction of phosphorus sinking into deposition target 2 (-) + qxp3: 0.03 # fraction of phosphorus sinking into deposition target 3 (-) + initialization: + c: 5.9 # carbon (mg C/m^3) + n: 0.0926 # nitrogen (mmol N/m^3) + p: 0.0036 # phosphorus (mmol P/m^3) + Chl: 0.3 # chlorophyll a (mg/m^3) + coupling: + RP: R4 + deposition_target1: Q6/surface + deposition_target2: Q1 + deposition_target3: Q7/surface + N1p: N1/p # phosphate (mmol P/m^3) + N3n: N3/n # nitrate (mmol N/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + R1c: R1/c # dissolved organic carbon (mg C/m^3) + R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) + R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) + R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) + O2o: O2/o # oxygen (mmol O_2/m^3) + O3c: O3/c # carbon dioxide (mmol C/m^3) + RainR: L2/RainR # rain ratio (PIC : POC) (-) + L2c: L2/c # free calcite (mg C/m^3) + P3: + long_name: picophytoplankton + model: ersem/primary_producer + parameters: + sum: 2.0 # maximum specific productivity at reference temperature (1/d) + q10: 2.0 # Q_10 temperature coefficient (-) + srs: 0.045 # specific rest respiration at reference temperature (1/d) + pu_ea: 0.2 # excreted fraction of primary production (-) + pu_ra: 0.2 # respired fraction of primary production (-) + qnlc: 0.006 # minimum nitrogen to carbon ratio (mmol N/mg C) + qplc: 0.00035 # minimum phosphorus to carbon ratio (mmol P/mg C) + xqcp: 1.0 # threshold for phosphorus limitation (relative to Redfield ratio) (-) + xqcn: 1.0 # threshold for nitrogen limitation (relative to Redfield ratio) (-) + xqp: 1.5 # maximum phosphorus to carbon ratio (relative to Redfield ratio) (-) + xqn: 1.05 # maximum nitrogen to carbon ratio (relative to Redfield ratio) (-) + qun3: 0.006 # nitrate affinity (m^3/mg C/d) + qun4: 0.007 # ammonium affinity (m^3/mg C/d) + qurp: 0.006 # phosphate affinity (m^3/mg C/d) + snplux: 1.0 # specific tendency of luxuary uptake of nutrients towards maximum quoata (1/d) + use_Si: false # use silicate, default = false + sdo: 0.055 # 1.1 of minimal specific lysis rate (1/d) + alpha: 6.0 # initial slope of PI-curve (mg C m^2/mg Chl/W/d) + beta: 0.12 # photoinhibition parameter (mg C m^2/mg Chl/W/d) + phim: 0.015 # maximum effective chlorophyll to carbon photosynthesis ratio (mg Chl/mg C) + Limnut: 1 # nitrogen-phosphorus colimitation formulation (0: geometric mean, 1: minimum, 2: harmonic mean) + docdyn: true # use dynamic ratio of labile to semi-labile DOM production, default = false + uB1c_O2: 0.11 # oxygen produced per unit of carbon fixed (mmol O_2/mg C) + urB1_O2: 0.1 # oxygen consumed per unit of carbon respired (mmol O_2/mg C) + iopABS: 0.023 # specific shortwave absorption (m^2/mg Chl), default = 0.008 + iopBBS: 0.003 # specific shortwave backscatter (m^2/mg Chl), default = 0.003 + c0: 0.0088 # background carbon concentration (mg C/m^3), default = 0.0 + resm: 0.0 # maximum nutrient-limitation-induced sinking velocity (m/d), default = 0.0 + esni: 0.7 # level of nutrient limitation below which sinking commences (-) + cenh: false # enable atmospheric CO2 influence on photosynthesis, default = false + ndeposition: 3 # number of target pools for sedimentation, default = 1 + qxc2: 0.5 # fraction of carbon sinking into deposition target 2 (-) + qxc3: 0.05 # fraction of carbon sinking into deposition target 3 (-) + qxn2: 0.5 # fraction of nitrogen sinking into deposition target 2 (-) + qxn3: 0.05 # fraction of nitrogen sinking into deposition target 3 (-) + qxp2: 0.6 # fraction of phosphorus sinking into deposition target 2 (-) + qxp3: 0.03 # fraction of phosphorus sinking into deposition target 3 (-) + initialization: + c: 5.9 # carbon (mg C/m^3) + n: 0.0926 # nitrogen (mmol N/m^3) + p: 0.0036 # phosphorus (mmol P/m^3) + Chl: 0.3 # chlorophyll a (mg/m^3) + coupling: + RP: R4 + deposition_target1: Q6/surface + deposition_target2: Q1 + deposition_target3: Q7/surface + N1p: N1/p # phosphate (mmol P/m^3) + N3n: N3/n # nitrate (mmol N/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + R1c: R1/c # dissolved organic carbon (mg C/m^3) + R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) + R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) + R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) + O2o: O2/o # oxygen (mmol O_2/m^3) + O3c: O3/c # carbon dioxide (mmol C/m^3) + P4: + long_name: microphytoplankton + model: ersem/primary_producer + parameters: + sum: 1.125 # maximum specific productivity at reference temperature (1/d) + q10: 2.0 # Q_10 temperature coefficient (-) + srs: 0.035 # specific rest respiration at reference temperature (1/d) + pu_ea: 0.2 # excreted fraction of primary production (-) + pu_ra: 0.2 # respired fraction of primary production (-) + qnlc: 0.0042 # minimum nitrogen to carbon ratio (mmol N/mg C) + qplc: 0.0001 # minimum phosphorus to carbon ratio (mmol P/mg C) + xqcp: 1.0 # threshold for phosphorus limitation (relative to Redfield ratio) (-) + xqcn: 1.0 # threshold for nitrogen limitation (relative to Redfield ratio) (-) + xqp: 2.7 # maximum phosphorus to carbon ratio (relative to Redfield ratio) (-) + xqn: 1.1 # maximum nitrogen to carbon ratio (relative to Redfield ratio) (-) + qun3: 0.002 # nitrate affinity (m^3/mg C/d) + qun4: 0.002 # ammonium affinity (m^3/mg C/d) + qurp: 0.002 # phosphate affinity (m^3/mg C/d) + snplux: 1.0 # specific tendency of luxuary uptake of nutrients towards maximum quoata (1/d) + use_Si: false # use silicate, default = false + sdo: 0.045 # 1.1 of minimal specific lysis rate (1/d) + alpha: 3.0 # initial slope of PI-curve (mg C m^2/mg Chl/W/d) + beta: 0.06 # photoinhibition parameter (mg C m^2/mg Chl/W/d) + phim: 0.045 # maximum effective chlorophyll to carbon photosynthesis ratio (mg Chl/mg C) + Limnut: 1 # nitrogen-phosphorus colimitation formulation (0: geometric mean, 1: minimum, 2: harmonic mean) + docdyn: true # use dynamic ratio of labile to semi-labile DOM production, default = false + uB1c_O2: 0.11 # oxygen produced per unit of carbon fixed (mmol O_2/mg C) + urB1_O2: 0.1 # oxygen consumed per unit of carbon respired (mmol O_2/mg C) + iopABS: 0.008 # specific shortwave absorption (m^2/mg Chl), default = 0.008 + iopBBS: 0.00048 # specific shortwave backscatter (m^2/mg Chl), default = 0.003 + c0: 0.0001 # background carbon concentration (mg C/m^3), default = 0.0 + resm: 5.0 # maximum nutrient-limitation-induced sinking velocity (m/d), default = 0.0 + esni: 0.7 # level of nutrient limitation below which sinking commences (-) + cenh: false # enable atmospheric CO2 influence on photosynthesis, default = false + ndeposition: 3 # number of target pools for sedimentation, default = 1 + qxc2: 0.5 # fraction of carbon sinking into deposition target 2 (-) + qxc3: 0.05 # fraction of carbon sinking into deposition target 3 (-) + qxn2: 0.5 # fraction of nitrogen sinking into deposition target 2 (-) + qxn3: 0.05 # fraction of nitrogen sinking into deposition target 3 (-) + qxp2: 0.6 # fraction of phosphorus sinking into deposition target 2 (-) + qxp3: 0.03 # fraction of phosphorus sinking into deposition target 3 (-) + initialization: + c: 5.9 # carbon (mg C/m^3) + n: 0.0926 # nitrogen (mmol N/m^3) + p: 0.0036 # phosphorus (mmol P/m^3) + Chl: 0.3 # chlorophyll a (mg/m^3) + coupling: + RP: R6 + deposition_target1: Q6/surface + deposition_target2: Q1 + deposition_target3: Q7/surface + N1p: N1/p # phosphate (mmol P/m^3) + N3n: N3/n # nitrate (mmol N/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + R1c: R1/c # dissolved organic carbon (mg C/m^3) + R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) + R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) + R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) + O2o: O2/o # oxygen (mmol O_2/m^3) + O3c: O3/c # carbon dioxide (mmol C/m^3) + Z4: + long_name: mesozooplankton + model: ersem/mesozooplankton + parameters: + q10: 2.0 # Q_10 temperature coefficient (-) + minfood: 12.0 # Michaelis-Menten constant to perceive food (mg C/m^3) + chuc: 36.0 # Michaelis-Menten constant for food uptake (mg C/m^3) + sum: 1.0 # maximum specific uptake at reference temperature (1/d) + pu: 0.6 # assimilation efficiency (-) + pu_ea: 0.5 # fraction of unassimilated prey that is excreted (not respired) (-) + pu_eaR: 0.9 # fraction of unassimilated detritus that is excreted (not respired) (-) + pe_R1: 0.5 # dissolved fraction of excreted/dying matter (-) + srs: 0.015 # specific rest respiration at reference temperature (1/d) + sd: 0.05 # basal mortality (1/d) + sdo: 0.2 # maximum mortality due to oxygen limitation (1/d) + chro: 7.81 # Michaelis-Menten constant for oxygen limitation (-) + qpc: 0.000786 # phosphorus to carbon ratio (mmol P/mg C) + qnc: 0.0126 # nitrogen to carbon ratio (mmol N/mg C) + Minprey: 300.0 # food threshold for overwintering state (mg C/m^2) + repw: 0.0025 # specific overwintering respiration (1/d) + mort: 0.0025 # specific overwintering mortality (1/d) + R1R2: 1.0 # labile fraction of produced dissolved organic carbon (-) + xR1p: 1.2 # transfer of phosphorus to DOM, relative to POM (-), default = 0.0 + xR1n: 1.0 # transfer of nitrogen to DOM, relative to POM (-), default = 0.0 + urB1_O2: 0.1 # oxygen consumed per carbon respired (mmol O_2/mg C) + gutdiss: 0.5 # fraction of prey calcite that dissolves after ingestion (-) + c0: 0.0033 # background concentration (mg C/m^3) + nprey: 9 # number of prey types, default = 0 + suprey1: 0.15 # relative affinity for prey type 1 (-) + suprey2: 0.05 # relative affinity for prey type 2 (-) + suprey3: 0.0 # relative affinity for prey type 3 (-) + suprey4: 0.15 # relative affinity for prey type 4 (-) + suprey5: 0.25 # relative affinity for prey type 5 (-) + suprey6: 0.25 # relative affinity for prey type 6 (-) + suprey7: 0.05 # relative affinity for prey type 7 (-) + suprey8: 0.0 # relative affinity for prey type 8 (-) + suprey9: 0.1 # relative affinity for prey type 9 (-) + prey9ispom: true # prey type 9 is detritus, default = false + initialization: + c: 1.2 # carbon (mg C/m^3) + coupling: + prey1: P1 + prey2: P2 + prey3: P3 + prey4: P4 + prey5: Z4 + prey6: Z5 + prey7: Z6 + prey8: B1 + prey9: R6 + RP: R8 + N1p: N1/p # phosphate (mmol P/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + R1c: R1/c # dissolved organic carbon (mg C/m^3) + R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) + R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) + R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) + O2o: O2/o # oxygen source (mmol O_2/m^3) + O3c: O3/c # carbon dioxide sink (mmol C/m^3) + L2c: L2/c # calcite (mg C/m^3) + Z5: + long_name: microzooplankton + model: ersem/microzooplankton + parameters: + q10: 2.0 # Q_10 temperature coefficient (-) + minfood: 12.0 # Michaelis-Menten constant to perceive food (mg C/m^3) + chuc: 32.0 # Michaelis-Menten constant for food uptake (mg C/m^3) + sum: 1.25 # maximum specific uptake at reference temperature (1/d) + pu: 0.5 # assimilation efficiency (-) + pu_ea: 0.5 # fraction of unassimilated prey that is excreted (not respired) (-) + pe_R1: 0.5 # dissolved fraction of excreted/dying matter (-) + srs: 0.02 # specific rest respiration at reference temperature (1/d) + sd: 0.05 # basal mortality (1/d) + sdo: 0.25 # maximum mortality due to oxygen limitation (1/d) + chro: 7.81 # Michaelis-Menten constant for oxygen limitation (-) + qpc: 0.001 # maximum phosphorus to carbon ratio (mmol P/mg C) + qnc: 0.0167 # maximum nitrogen to carbon ratio (mmol N/mg C) + stempp: 0.5 # specific excretion rate of excess phosphorus (1/d) + stempn: 0.5 # specific excretion rate of excess nitrogen (1/d) + R1R2: 1.0 # labile fraction of produced dissolved organic carbon (-) + xR1p: 1.2 # transfer of phosphorus to DOM, relative to POM (-), default = 1.0 + xR1n: 1.0 # transfer of nitrogen to DOM, relative to POM (-), default = 1.0 + urB1_O2: 0.1 # oxygen consumed per carbon respired (mmol O_2/mg C) + gutdiss: 0.5 # fraction of prey calcite that dissolves after ingestion (-) + c0: 0.0033 # background concentration (mg C/m^3) + nprey: 7 # number of prey types, default = 0 + suprey1: 0.1 # relative affinity for prey type 1 (-) + suprey2: 0.15 # relative affinity for prey type 2 (-) + suprey3: 0.15 # relative affinity for prey type 3 (-) + suprey4: 0.15 # relative affinity for prey type 4 (-) + suprey5: 0.1 # relative affinity for prey type 5 (-) + suprey6: 0.15 # relative affinity for prey type 6 (-) + suprey7: 0.2 # relative affinity for prey type 7 (-) + initialization: + c: 7.2 # carbon (mg C/m^3) + n: 0.12 # nitrogen (mmol N/m^3) + p: 0.0113 # phosphorus (mmol P/m^3) + coupling: + prey1: B1 + prey2: P1 + prey3: P2 + prey4: P3 + prey5: P4 + prey6: Z5 + prey7: Z6 + RP: R6 + N1p: N1/p # phosphate (mmol P/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + R1c: R1/c # dissolved organic carbon (mg C/m^3) + R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) + R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) + R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) + O2o: O2/o # oxygen source (mmol O_2/m^3) + O3c: O3/c # carbon dioxide sink (mmol C/m^3) + L2c: L2/c # calcite (mg C/m^3) + Z6: + long_name: nanoflagellates + model: ersem/microzooplankton + parameters: + q10: 2.0 # Q_10 temperature coefficient (-) + minfood: 12.0 # Michaelis-Menten constant to perceive food (mg C/m^3) + chuc: 28.0 # Michaelis-Menten constant for food uptake (mg C/m^3) + sum: 1.5 # maximum specific uptake at reference temperature (1/d) + pu: 0.4 # assimilation efficiency (-) + pu_ea: 0.5 # fraction of unassimilated prey that is excreted (not respired) (-) + pe_R1: 0.5 # dissolved fraction of excreted/dying matter (-) + srs: 0.025 # specific rest respiration at reference temperature (1/d) + sd: 0.05 # basal mortality (1/d) + sdo: 0.3 # maximum mortality due to oxygen limitation (1/d) + chro: 7.81 # Michaelis-Menten constant for oxygen limitation (-) + qpc: 0.001 # maximum phosphorus to carbon ratio (mmol P/mg C) + qnc: 0.0167 # maximum nitrogen to carbon ratio (mmol N/mg C) + stempp: 0.5 # specific excretion rate of excess phosphorus (1/d) + stempn: 0.5 # specific excretion rate of excess nitrogen (1/d) + R1R2: 1.0 # labile fraction of produced dissolved organic carbon (-) + xR1p: 1.2 # transfer of phosphorus to DOM, relative to POM (-), default = 1.0 + xR1n: 1.0 # transfer of nitrogen to DOM, relative to POM (-), default = 1.0 + urB1_O2: 0.1 # oxygen consumed per carbon respired (mmol O_2/mg C) + gutdiss: 0.5 # fraction of prey calcite that dissolves after ingestion (-) + c0: 0.0033 # background concentration (mg C/m^3) + nprey: 4 # number of prey types, default = 0 + suprey1: 0.45 # relative affinity for prey type 1 (-) + suprey2: 0.15 # relative affinity for prey type 2 (-) + suprey3: 0.25 # relative affinity for prey type 3 (-) + suprey4: 0.15 # relative affinity for prey type 4 (-) + initialization: + c: 2.421 # carbon (mg C/m^3) + n: 0.0505 # nitrogen (mmol N/m^3) + p: 0.047 # phosphorus (mmol P/m^3) + coupling: + prey1: B1 + prey2: P2 + prey3: P3 + prey4: Z6 + RP: R4 + N1p: N1/p # phosphate (mmol P/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + R1c: R1/c # dissolved organic carbon (mg C/m^3) + R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) + R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) + R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) + RPs: R6/s # particulate organic silicate (mmol Si/m^3) + O2o: O2/o # oxygen source (mmol O_2/m^3) + O3c: O3/c # carbon dioxide sink (mmol C/m^3) + L2c: L2/c # calcite (mg C/m^3) + L2: + long_name: calcite + model: ersem/calcification + parameters: + iswcal: 1 # calcification/dissolution dependence on calcite saturation (1: power law, 2: hyperbolic) + ncalc: 0.81 # power of the calcification law (Ridgwell et al. 2007, mineral calcite) (-) + ndiss: 2.22 # power of the dissolution law (Keir 1980) (-) + Rain0: 0.6 # maximum rain ratio from PISCES (-) + sedL2: 10.0 # sinking velocity (m/d) + sL2O3: 0.03 # maximum specific dissolution rate (1/d), default = 1.0 + c0: 1e-05 # background concentration (mg C/m^3), default = 0.0 + ndeposition: 1 # number of target pools for sedimentation, default = 1 + initialization: + c: 0.05 # carbon (mg C/m^3) + coupling: + deposition_target1: bL2 + om_cal: O3/Om_cal # calcite saturation (-) + O3c: O3/c # total dissolved inorganic carbon (mmol C/m^3) + T1_30d: + long_name: photolabile terrigenous DOC + model: ersem/TDOC + parameters: + photolabile: True + #age: 30. + photoaging: .5 + bioaging: .5 + qn: 0.0042 + qp: 0.0001 # elemental composition + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + phyref: 0.0 #0.03 # reference photooxidation rate (d-1) + surf_phyref: 0.045 #0.03 # reference photooxidation rate (d-1) + iref: 130 # reference irradinace for photooxidation (W m-2) + floc: 0.000002 # max flocculation rate [d-1 (mg C)-1] + sbx: 0.69 # log(salinity) (psu) at which flocculation is max.max is assumed to be around 2 psu. 0.69=log(2) + scx: 1.35 # salinity function parameter. 1.35 allows the max flocc rate to decrease of one order of magnitude at 35 psu + phyt: 0.24 # fraction of T1 going to T2 after photolysis + chemEIR_scaling: 2. + initialization: + c: 1200 + coupling: + chemEIR: light/parEIR + TD_older: T1_8y + T2: T2_30d + RPc: R6/c + RPn: R6/n + RPp: R6/p + O3c: O3/c + N1p: N1/p + N4n: N4/n + T1_8y: + long_name: photolabile terrigenous DOC + model: ersem/TDOC + parameters: + #age: 10950. + photolabile: True + photoaging: 0.025 + bioaging: 0.025 + qn: 0.0042 + qp: 0.0001 # elemental composition + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + phyref: 0.0 #0.00533 # reference photooxidation rate (d-1) + surf_phyref: 0.00803 #0.00533 # factor of .17777 from 30d # reference photooxidation rate (d-1) + iref: 130 # reference irradinace for photooxidation (W m-2) + floc: 0.000002 # max flocculation rate [d-1 (mg C)-1] + sbx: 0.69 # log(salinity) (psu) at which flocculation is max.max is assumed to be around 2 psu. 0.69=log(2) + scx: 1.35 # salinity function parameter. 1.35 allows the max flocc rate to decrease of one order of magnitude at 35 psu + phyt: 0.24 # fraction of T1 going to T2 after photolysis + chemEIR_scaling: 2. + initialization: + c: 0. #1200.0 + coupling: + chemEIR: light/parEIR + TD_older: T1_70y + T2: T2_8y + RPc: R6/c + RPn: R6/n + RPp: R6/p + O3c: O3/c + N1p: N1/p + N4n: N4/n + T1_70y: + long_name: photolabile terrigenous DOC + model: ersem/TDOC + parameters: + #age: 10950. + photolabile: True + photoaging: 0. + bioaging: 0. + qn: 0.0042 + qp: 0.0001 # elemental composition + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + phyref: 0.0 #0.0023 # reference photooxidation rate (d-1) + surf_phyref: 0.00352 ##0.0023 # # factor of .078 from 30d # reference photooxidation rate (d-1) + iref: 130 # reference irradinace for photooxidation (W m-2) + floc: 0.000002 # max flocculation rate [d-1 (mg C)-1] + sbx: 0.69 # log(salinity) (psu) at which flocculation is max.max is assumed to be around 2 psu. 0.69=log(2) + scx: 1.35 # salinity function parameter. 1.35 allows the max flocc rate to decrease of one order of magnitude at 35 psu + phyt: 0.24 # fraction of T1 going to T2 after photolysis + chemEIR_scaling: 2. + initialization: + c: 0. #1200.0 + coupling: + chemEIR: light/parEIR + T2: T2_70y + RPc: R6/c + RPn: R6/n + RPp: R6/p + O3c: O3/c + N1p: N1/p + N4n: N4/n + T2_30d: + long_name: photolabile terrigenous DOC + model: ersem/TDOC + parameters: + #age: 30. + photolabile: False + photoaging: 0. + bioaging: .1 + qn: 0.0042 + qp: 0.0001 # elemental composition + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + c: 1200. #1200.0 + coupling: + TD_older: T2_8y + T2_8y: + long_name: photolabile terrigenous DOC + model: ersem/TDOC + parameters: + #age: 2920 + photolabile: False + photoaging: 0.0 + bioaging: .005 + qn: 0.0042 + qp: 0.0001 # elemental composition + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + c: 0. #1200.0 + coupling: + TD_older: T2_70y + T2_70y: + long_name: photolabile terrigenous DOC + model: ersem/TDOC + parameters: + #age: 25550. + photolabile: False + photoaging: 0. + bioaging: 0. + qn: 0.0042 + qp: 0.0001 # elemental composition + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + c: 0. #1200.0 +# L2: +# long_name: calcite +# model: ersem/calcification +# parameters: +# iswcal: 1 # calcification/dissolution dependence on calcite saturation (1: power law, 2: hyperbolic) +# ncalc: 0.81 # power of the calcification law (Ridgwell et al. 2007, mineral calcite) (-) +# ndiss: 2.22 # power of the dissolution law (Keir 1980) (-) +# Rain0: 0.6 # maximum rain ratio from PISCES (-) +# sedL2: 10.0 # sinking velocity (m/d) +# sL2O3: 0.03 # maximum specific dissolution rate (1/d), default = 1.0 +# c0: 1e-05 # background concentration (mg C/m^3), default = 0.0 +# ndeposition: 1 # number of target pools for sedimentation, default = 1 +# initialization: +# c: 0.05 # carbon (mg C/m^3) +# coupling: +# deposition_target1: bL2 +# om_cal: O3/Om_cal # calcite saturation (-) +# O3c: O3/c # total dissolved inorganic carbon (mmol C/m^3) +# bL2: +# long_name: benthic calcite +# model: ersem/benthic_base +# parameters: +# composition: c # elemental composition +# remin: 0.05 # remineralisation rate (1/d), default = 0.0 +# c0: 1.e-05 # background value for benthic calcite +# initialization: +# c: 0.05 # carbon (mg C/m^2) +# coupling: +# O3c: O3/c # dissolved inorganic carbon (mmol/m^3) + bL2: + long_name: benthic calcite + model: ersem/benthic_calcite + parameters: + iswcal: 1 # dissolution dependence on calcite saturation (0: none, 1: power law, 2: hyperbolic) + ndiss: 2.22 # power of the dissolution law (Keir 1980) (-) + fdissmax: 30.0 # maximum specific dissolution rate (1/d), default = 0.0 + fdissmin: 0.05 # minimum specific dissolution rate (1/d), default = 0.03 + c0: 1e-05 # background calcite concentration (mg C/m^2), default = 0.0 + initialization: + c: 0.05 # carbon (mg C/m^2) + coupling: + Om_Cal: O3/Om_cal # calcite saturation (-) + O3c: O3/c # dissolved inorganic carbon (mmol/m^3) +# sL2O3X: 30.0 # remineralisation rate at 10 degrees Celsius (1/d), default = 0.0 +# ndiss: 2.22 # power of the dissolution law (Keir 1980) (-) +# c0: 1e-05 # background carbon concentration (mg C/m^2), default = 0.0 +# iswcal: 1 # calcification/dissolution dependence on calcite saturation (1: power law, 2: hyperbolic) + # initialization: + # c: 5000.05 # carbon (mg C/m^2) + # coupling: + # O3c: O3/c # dissolved inorganic carbon (mmol/m^3) + # Om_Cal: O3/Om_cal + ben_col: + long_name: benthic column + model: ersem/benthic_column + parameters: + qPW: 0.4 # sediment porosity (-) + EDZ_mix: 20.0 # equilibrium diffusive speed between sediment surface water (d/m) + d_tot: 0.3 # depth of sediment column (m) + Etur: 2e-06 # basal bioturbation rate (m^2/d) + mtur: 10.0 # maximum relative turbation enhancement (-) + htur: 116.0 # Michaelis-Menten constant for bioturbation (mg C/m^2/d) + dtur: 0.02 # bioturbation depth (m) + EDZ_1: 5e-05 # diffusivity in oxygenated layer (m^2/d) + EDZ_2: 5e-05 # diffusivity in oxidized layer (m^2/d) + EDZ_3: 5e-05 # diffusivity in anoxic layer (m^2/d) + irr_min: 2.0 # minimum diffusion enhancement through bioirrigation (-) + mirr: 10.0 # maximum relative diffusion enhancement due to bioirrigation (-) + hirr: 101.0 # Michaelis-Menten constant for bioirrigation (mg C/m^2/d) + initialization: + D1m: 0.009 # depth of bottom interface of oxygenated layer (m) + D2m: 0.05 # depth of bottom interface of oxidized layer (m) + K1: + long_name: benthic phosphate + model: ersem/benthic_column_dissolved_matter + parameters: + composition: p # composition (any combination of c,n,p,s,o,a) + ads1: 100.0 # adsorption in layer 1 (total:dissolved) (-), default = 1.0 + ads2: 100.0 # adsorption in layer 2 (total:dissolved) (-), default = 1.0 + ads3: 2.0 # adsorption in layer 3 (total:dissolved) (-), default = 1.0 + c0: 0.0003 # background concentration (mg C/m^2) + initialization: + p: 6.8 # phosphorus (mmol/m^2) + coupling: + p_pel: N1/p # pelagic phosphorus (mmol/m^3) + K3: + long_name: benthic nitrate + model: ersem/benthic_column_dissolved_matter + parameters: + composition: n # composition (any combination of c,n,p,s,o,a) + last_layer: 2 # sediment layer where concentration drops to zero, default = 3 + relax: 5.0 # rate of relaxation towards equilibrium concentration profile (1/d) + minD: 0.0001 # minimum depth of zero-concentration isocline (m) + c0: 0.0003 # background concentration (mg C/m^2) + initialization: + n: 0.584 # nitrogen (mmol/m^2) + coupling: + n_pel: N3/n # pelagic nitrogen (mmol/m^3) + K4: + long_name: benthic ammonium + model: ersem/benthic_column_dissolved_matter + parameters: + composition: n # composition (any combination of c,n,p,s,o,a) + ads1: 3.0 # adsorption in layer 1 (total:dissolved) (-), default = 1.0 + ads2: 3.0 # adsorption in layer 2 (total:dissolved) (-), default = 1.0 + ads3: 3.0 # adsorption in layer 3 (total:dissolved) (-), default = 1.0 + correction: true # move losses in oxygenic layer to deeper layers if pelagic concentration is limiting, default = false + c0: 0.0003 # background concentration (mg C/m^2) + initialization: + n: 25.0 # nitrogen (mmol/m^2) + coupling: + n_pel: N4/n # pelagic nitrogen (mmol/m^3) + K5: + long_name: benthic silicate + model: ersem/benthic_column_dissolved_matter + parameters: + composition: s # composition (any combination of c,n,p,s,o,a) + c0: 9.e-05 # background concentration (mg C/m^2) + initialization: + s: 20.1 # silicate (mmol/m^2) + coupling: + s_pel: N5/s # pelagic silicate (mmol/m^3) + G2: + long_name: benthic oxygen + model: ersem/benthic_column_dissolved_matter + parameters: + composition: o # composition (any combination of c,n,p,s,o,a) + last_layer: 1 # sediment layer where concentration drops to zero, default = 3 + relax: 5.0 # rate of relaxation towards equilibrium concentration profile (1/d) + minD: 0.0001 # minimum depth of zero-concentration isocline (m) + initialization: + o: 0.0225 # oxygen (mmol/m^2) + coupling: + o_pel: O2/o # pelagic oxygen (mmol/m^3) + G3: + long_name: benthic dissolved inorganic carbon + model: ersem/benthic_column_dissolved_matter + parameters: + composition: c # composition (any combination of c,n,p,s,o,a) + initialization: + c: 375.0 # carbon (mmol/m^2) + coupling: + c_pel: O3/c # pelagic carbon (mmol/m^3) + Q6s_aerobic: + long_name: aerobic particulate silicate + model: ersem/benthic_column_particulate_matter_layer + parameters: + composition: s # elemental composition + remin: 0.007 # remineralization rate (1/d), default = 0.0 + minimum_depth: 0.0 # minimum depth (m), default = 0.0 + variable_maximum_depth: true # maximum depth is variable, default = false + coupling: + Q: Q6 + maximum_depth: ben_col/D1m # maximum depth (m) + s_remin_target: K5/per_layer/s1 # sink for remineralized silicate (mmol Si/m^2) + Q6s_anaerobic: + long_name: anaerobic particulate silicate + model: ersem/benthic_column_particulate_matter_layer + parameters: + composition: s # elemental composition + remin: 0.007 # remineralization rate (1/d), default = 0.0 + variable_minimum_depth: true # minimum depth is variable, default = false + maximum_depth: 0.3 # maximum depth (m), default = 0.0 + source_depth_distribution: 2 # vertical distribution of changes (1: constant absolute rate, 2: constant relative rate, 3: constant carbon-based relative rate), default = 1 + coupling: + Q: Q6 + minimum_depth: ben_col/D1m # minimum depth (m) + s_remin_target: K5/per_layer/s2 # sink for remineralized silicate (mmol Si/m^2) + ben_nit: + long_name: benthic nitrogen cycle + model: ersem/benthic_nitrogen_cycle + parameters: + q10nit: 2.0 # Q_10 temperature coefficient (-) + hM4M3: 10.0 # Michaelis-Menten constant for nitrate limitation (mmol/m^3) + ISWph: 1 # pH impact on nitrification (0: off, 1: on), default = 0 + sM4M3: 4.0 # maximum nitrification rate at 10 degrees Celsius (1/d) + xno3: 2.0 # oxygen consumed per nitrate produced (mol O_2/mol N) + pammon: 0.5 # fraction of oxygen demand fulfilled by denitrification under anaerobic conditions (-) + pdenit: 0.05 # fraction of denitrification producing dinitrogen gas (remainder produces ammonium) (-) + xn2: 1.25 # oxygen produced per N2 produced (-) + hM3G4: 1.0 # Michaelis-Menten constant for nitrate limitation of denitrification (mmol N/m^3) + coupling: + K3n: K3/per_layer/n1 # nitrate (mmol N/m^2) + K4n: K4/per_layer/n1 # ammonium (mmol N/m^2) + G2o: G2/per_layer/o1 # oxygen (mmol O_2/m^2) + N4n: N4/n # pelagic ammonium (mmol N/m^3) + benTA: zero_hz # benthic alkalinity in aerobic layer (mEq/m^2) + benTA2: zero_hz # benthic alkalinity in anaerobic layer (mEq/m^2) + K3n2: K3/per_layer/n2 # benthic nitrate in 2nd layer (mmol N/m^2) + K4n2: K4/per_layer/n2 # benthic ammonium in 2nd layer (mmol N/m^2) + G2o2: G2/per_layer/o2 # oxygen in 2nd layer (mmol O_2/m^2) + layer2_thickness: ben_col/layer2_thickness # thickness of 2nd layer (m) + H1: + long_name: benthic aerobic bacteria + model: ersem/benthic_bacteria + parameters: + qnc: 0.0167 # nitrogen to carbon ratio (mmol N/mg C) + qpc: 0.00125 # phosphorus to carbon ratio (mmol P/mg C) + c0: 1.e-06 # background carbon concentration (mg C/m^2) + q10: 2.0 # Q_10 temperature coefficient (-) + dd: 0.001 # Michaelis-Menten constant for oxygen limitation through layer thickness (m) + nfood: 3 # number of food sources + su1: 0.0005 # base affinity for food source 1 (m^2/mg C/d) + su2: 2.e-05 # base affinity for food source 2 (m^2/mg C/d) + suf2: 0.0002 # additional affinity for food source 2 subject to nutrient limitation (m^2/mg C/d), default = 0.0 + puinc2: 2.0 # affinity for nutrients relative to carbon in food source 2 (-), default = 1.0 + pue2: 0.1 # fraction of consumed food source 2 that is excreted (-), default = 0.0 + su3: 2.e-06 # base affinity for food source 3 (m^2/mg C/d) + pue3: 0.1 # fraction of consumed food source 3 that is excreted (-), default = 0.0 + pur: 0.3 # fraction of consumed carbon that is respired (-) + sr: 0.02 # specific rest respiration (1/d) + pdQ1: 0.1 # fraction of dying matter that is dissolved (-) + sd: 0.05 # specific maximum mortality related to oxygen limitation (1/d) + initialization: + c: 25.0 # carbon (mg C/m^2) + coupling: + Q1: Q1 + Q6: H1_Q6 + food1: Q1 + food2: H1_Q6 + food3: H1_Q7 + Dm: ben_col/D1m # depth interval available to bacteria (m) + K4n: K4/per_layer/n1_pw # ammonium (mmol N/m^2) + K1p: K1/per_layer/p1_pw # phosphate (mmol N/m^2) + G2o: G2/per_layer/o1 # oxygen (mmol O_2/m^2) + G3c: G3/per_layer/c1 # dissolved inorganic carbon (mmol C/m^2) + benTA: zero_hz # benthic alkalinity (mEq/m^2) + H1_Q6: + long_name: benthic aerobic bacteria POM + model: ersem/benthic_column_particulate_matter_layer + parameters: + composition: cnps # elemental composition + minimum_depth: 0.0 # minimum depth (m), default = 0.0 + variable_maximum_depth: true # maximum depth is variable, default = false + coupling: + Q: Q6 + maximum_depth: ben_col/D1m # maximum depth (m) + H1_Q7: + long_name: benthic aerobic bacteria refractory POM + model: ersem/benthic_column_particulate_matter_layer + parameters: + composition: cnp # elemental composition + minimum_depth: 0.0 # minimum depth (m), default = 0.0 + variable_maximum_depth: true # maximum depth is variable, default = false + coupling: + Q: Q7 + maximum_depth: ben_col/D1m # maximum depth (m) + H2: + long_name: benthic anaerobic bacteria + model: ersem/benthic_bacteria + parameters: + qnc: 0.0167 # nitrogen to carbon ratio (mmol N/mg C) + qpc: 0.00125 # phosphorus to carbon ratio (mmol P/mg C) + c0: 1.e-06 # background carbon concentration (mg C/m^2) + q10: 2.0 # Q_10 temperature coefficient (-) + dd: 0.01 # Michaelis-Menten constant for oxygen limitation through layer thickness (m) + nfood: 2 # number of food sources + su1: 2e-05 # base affinity for food source 1 (m^2/mg C/d) + suf1: 0.0002 # additional affinity for food source 1 subject to nutrient limitation (m^2/mg C/d), default = 0.0 + puinc1: 2.0 # affinity for nutrients relative to carbon in food source 1 (-), default = 1.0 + pue1: 0.0 # fraction of consumed food source 1 that is excreted (-), default = 0.0 + su2: 2e-06 # base affinity for food source 2 (m^2/mg C/d) + pue2: 0.0 # fraction of consumed food source 2 that is excreted (-), default = 0.0 + pur: 0.3 # fraction of consumed carbon that is respired (-) + sr: 0.02 # specific rest respiration (1/d) + pdQ1: 0.0 # fraction of dying matter that is dissolved (-) + sd: 0.05 # specific maximum mortality related to oxygen limitation (1/d) + initialization: + c: 400.0 # carbon (mg C/m^2) + coupling: + Q1: Q1 + Q6: H2_Q6 + food1: H2_Q6 + food2: H2_Q7 + Dm: ben_col/layer2_thickness # depth interval available to bacteria (m) + K4n: K4/per_layer/n2_pw # ammonium (mmol N/m^2) + K1p: K1/per_layer/p2_pw # phosphate (mmol N/m^2) + G2o: ben_nit/K6_calculator/K6 # oxygen (mmol O_2/m^2) + G3c: G3/per_layer/c2 # dissolved inorganic carbon (mmol C/m^2) + benTA: zero_hz # benthic alkalinity (mEq/m^2) + H2_Q6: + long_name: benthic anaerobic bacteria POM + model: ersem/benthic_column_particulate_matter_layer + parameters: + composition: cnps # elemental composition + variable_minimum_depth: true # minimum depth is variable, default = false + maximum_depth: 0.3 # maximum depth (m), default = 0.0 + source_depth_distribution: 3 # vertical distribution of changes (1: constant absolute rate, 2: constant relative rate, 3: constant carbon-based relative rate), default = 1 + coupling: + Q: Q6 + minimum_depth: ben_col/D1m # minimum depth (m) + H2_Q7: + long_name: benthic anaerobic bacteria refractory POM + model: ersem/benthic_column_particulate_matter_layer + parameters: + composition: cnp # elemental composition + variable_minimum_depth: true # minimum depth is variable, default = false + maximum_depth: 0.3 # maximum depth (m), default = 0.0 + source_depth_distribution: 3 # vertical distribution of changes (1: constant absolute rate, 2: constant relative rate, 3: constant carbon-based relative rate), default = 1 + coupling: + Q: Q7 + minimum_depth: ben_col/D1m # minimum depth (m) + Y2: + long_name: benthic deposit feeder + model: ersem/benthic_fauna + parameters: + qnc: 0.0119 # nitrogen to carbon ratio (mmol N/mg C) + qpc: 0.000792 # phosphorus to carbon ratio (mmol P/mg C) + c0: 0.001 # background carbon concentration (mg C/m^2) + q10: 2.0 # Q_10 temperature coefficient (-) + rlO2: 0.0 # minimum pelagic oxygen concentration (mmol O2/m^3) + hO2: 0.0 # Michaelis-Menten constant for oxygen limitation (mmol O2/m^3) + xcl: 2500.0 # abundance above which crowding reduces food uptake (mg C/m^2) + xcs: 3000.0 # Michaelis-Menten constant for the impact of crowding (mg C/m^2) + xch: 5000.0 # abundance determining asymptotic threshold of crowding limitation (-> xch/(Yc+xch) for Yc-> inf) (mg C/m^2) + su: 0.11 # specific maximum uptake at reference temperature (1/d) + lu: 250.0 # Michaelis-Menten constant for food preference as function of food concentration (mg C/m^2) + hu: 3000.0 # Michaelis-Menten constant for gross carbon uptake (mg C/m^2) + pue: 0.35 # fraction of carbon in consumed live food that goes to faeces (-) + pueQ: 0.8 # fraction of carbon in consumed detritus that goes to faeces (-) + pudil: 0.8 # relative nutrient content of faeces (-) + sd: 0.001 # specific mortality at reference temperature (1/d) + sdmO2: 1.0 # specific maximum additional mortality due to oxygen stress (1/d) + sdc: 0.022 # specific maximum additional mortality induced by cold temperature (1/d) + xdc: -0.7 # e-folding temperature factor of cold mortality response (1/degree_C) + sr: 0.0027 # specific rest respiration at reference temperature (1/d) + pur: 0.35 # fraction of assimilated food that is respired (-) + nfood: 4 # number of food sources, default = 0 + pufood1: 1.0 # preference for food source 1 (-) + pufood2: 1.0 # preference for food source 2 (-) + pufood3: 0.1 # preference for food source 3 (-) + pufood4: 1.0 # preference for food source 4 (-) + food3ispom: true # food source 3 is detritus, default = false + ptur: 1.0 # relative contribution to bioturbation (-), default = 0.0 + pirr: 1.0 # relative contribution to bioirrigation (-), default = 0.0 + initialization: + c: 3000.0 # carbon (mg C/m^2) + coupling: + food1: H1 + food2: H2 + food3: Y2_Q6_source + food4: Y4 + Q: Y2_Q6_sink + Dm: ben_col/D1m # depth of limiting layer for uptake (m) + O2o: O2/o # pelagic oxygen (mmol O_2/m^3) + G3c: G3/per_layer/c1 # carbon dioxide (mmol C/m^2) + G2o: G2/per_layer/o1 # oxygen (mmol O_2/m^2) + K1p: K1/per_layer/p1 # benthic phosphate in aerobic layer (mmol P/m^2) + K4n: K4/per_layer/n1 # benthic ammonium in aerobic layer (mmol N/m^2) + K1p2: K1/per_layer/p2 # benthic phosphate in anaerobic layer (mmol P/m^2) + K4n2: K4/per_layer/n2 # benthic ammonium in anaerobic layer (mmol N/m^2) + benTA: zero_hz # benthic alkalinity in aerobic layer (mEq/m^2) + benTA2: zero_hz # benthic alkalinity in anaerobic layer (mEq/m^2) + food2c_an: H2/c # food source 2 carbon in anaerobic layer (mg C/m^2) + food3c_an: Y2_Q6_source_anaerobic/c # food source 3 carbon in anaerobic layer (mg C/m^2) + Y2_Q6_source: + long_name: benthic deposit feeder total POM + model: ersem/benthic_column_particulate_matter_layer + parameters: + composition: cnps # elemental composition + minimum_depth: 0.0025 # minimum depth (m), default = 0.0 + maximum_depth: 0.3 # maximum depth (m), default = 0.0 + coupling: + Q: Q6 + Y2_Q6_source_anaerobic: + long_name: benthic deposit feeder anaerobic POM + model: ersem/benthic_column_particulate_matter_layer + parameters: + composition: cnps # elemental composition + variable_minimum_depth: true # minimum depth is variable, default = false + maximum_depth: 0.3 # maximum depth (m), default = 0.0 + coupling: + Q: Q6 + minimum_depth: ben_col/D1m # minimum depth (m) + Y2_Q6_sink: + long_name: benthic deposit feeder POM sink + model: ersem/benthic_column_particulate_matter_layer + parameters: + composition: cnps # elemental composition + minimum_depth: 0.0 # minimum depth (m), default = 0.0 + variable_maximum_depth: true # maximum depth is variable, default = false + coupling: + Q: Q6 + maximum_depth: Q6/pen_depth_c # maximum depth (m) + Y3: + long_name: benthic suspension feeder + model: ersem/benthic_fauna + parameters: + qnc: 0.0119 # nitrogen to carbon ratio (mmol N/mg C) + qpc: 0.000792 # phosphorus to carbon ratio (mmol P/mg C) + c0: 0.001 # background carbon concentration (mg C/m^2) + q10: 2.0 # Q_10 temperature coefficient (-) + rlO2: 0.0 # minimum pelagic oxygen concentration (mmol O2/m^3) + hO2: 0.0 # Michaelis-Menten constant for oxygen limitation (mmol O2/m^3) + xcl: 2500.0 # abundance above which crowding reduces food uptake (mg C/m^2) + xcs: 3000.0 # Michaelis-Menten constant for the impact of crowding (mg C/m^2) + xch: 5000.0 # abundance determining asymptotic threshold of crowding limitation (-> xch/(Yc+xch) for Yc-> inf) (mg C/m^2) + su: 0.09 # specific maximum uptake at reference temperature (1/d) + lu: 10.0 # Michaelis-Menten constant for food preference as function of food concentration (mg C/m^2) + hu: 300.0 # Michaelis-Menten constant for gross carbon uptake (mg C/m^2) + pue: 0.35 # fraction of carbon in consumed live food that goes to faeces (-) + pueQ: 0.85 # fraction of carbon in consumed detritus that goes to faeces (-) + pudil: 0.8 # relative nutrient content of faeces (-) + sd: 0.001 # specific mortality at reference temperature (1/d) + sdmO2: 1.0 # specific maximum additional mortality due to oxygen stress (1/d) + sdc: 0.022 # specific maximum additional mortality induced by cold temperature (1/d) + xdc: -0.7 # e-folding temperature factor of cold mortality response (1/degree_C) + sr: 0.0027 # specific rest respiration at reference temperature (1/d) + pur: 0.4 # fraction of assimilated food that is respired (-) + nfood: 6 # number of food sources, default = 0 + food1ispel: true # food source 1 is pelagic, default = false + food2ispel: true # food source 2 is pelagic, default = false + food3ispel: true # food source 3 is pelagic, default = false + food4ispel: true # food source 4 is pelagic, default = false + food5_ll: true # availability of food source 5 is limited by aerobic layer height, default = false + pufood1: 1.0 # preference for food source 1 (-) + pufood2: 1.0 # preference for food source 2 (-) + pufood3: 1.0 # preference for food source 3 (-) + pufood4: 1.0 # preference for food source 4 (-) + pufood5: 1.0 # preference for food source 5 (-) + pufood6: 0.1 # preference for food source 6 (-) + food4ispom: true # food source 4 is detritus, default = false + food6ispom: true # food source 6 is detritus, default = false + dwat: 1.0 # water layer accessible for pelagic food uptake (m), default = 1.0 + dQ6: 0.0025 # depth of available sediment layer (m), default = 0.0 + initialization: + c: 2000.0 # carbon (mg C/m^2) + coupling: + food1: P1 + food2: P2 + food3: P3 + food4: R6 + food5: H1 + food6: Y3_Q6 + Q: Y3_Q6 + Dm: ben_col/D1m # depth of limiting layer for uptake (m) + O2o: O2/o # pelagic oxygen (mmol O_2/m^3) + G3c: G3/per_layer/c1 # carbon dioxide (mmol C/m^2) + G2o: G2/per_layer/o1 # oxygen (mmol O_2/m^2) + K1p: K1/per_layer/p1 # benthic phosphate in aerobic layer (mmol P/m^2) + K4n: K4/per_layer/n1 # benthic ammonium in aerobic layer (mmol N/m^2) + K1p2: K1/per_layer/p2 # benthic phosphate in anaerobic layer (mmol P/m^2) + K4n2: K4/per_layer/n2 # benthic ammonium in anaerobic layer (mmol N/m^2) + benTA: zero_hz # benthic alkalinity in aerobic layer (mEq/m^2) + benTA2: zero_hz # benthic alkalinity in anaerobic layer (mEq/m^2) + Y3_Q6: + long_name: benthic suspension feeder POM + model: ersem/benthic_column_particulate_matter_layer + parameters: + composition: cnps # elemental composition + minimum_depth: 0.0 # minimum depth (m), default = 0.0 + maximum_depth: 0.0025 # maximum depth (m), default = 0.0 + coupling: + Q: Q6 + Y4: + long_name: benthic meiofauna + model: ersem/benthic_fauna + parameters: + qnc: 0.0119 # nitrogen to carbon ratio (mmol N/mg C) + qpc: 0.000792 # phosphorus to carbon ratio (mmol P/mg C) + c0: 0.001 # background carbon concentration (mg C/m^2) + q10: 2.0 # Q_10 temperature coefficient (-) + rlO2: 0.0 # minimum pelagic oxygen concentration (mmol O2/m^3) + hO2: 0.0 # Michaelis-Menten constant for oxygen limitation (mmol O2/m^3) + xcl: 25000.0 # abundance above which crowding reduces food uptake (mg C/m^2) + xcs: 3000.0 # Michaelis-Menten constant for the impact of crowding (mg C/m^2) + xch: 5000.0 # abundance determining asymptotic threshold of crowding limitation (-> xch/(Yc+xch) for Yc-> inf) (mg C/m^2) + su: 0.4 # specific maximum uptake at reference temperature (1/d) + lu: 50.0 # Michaelis-Menten constant for food preference as function of food concentration (mg C/m^2) + hu: 1000.0 # Michaelis-Menten constant for gross carbon uptake (mg C/m^2) + pue: 0.25 # fraction of carbon in consumed live food that goes to faeces (-) + pueQ: 0.4 # fraction of carbon in consumed detritus that goes to faeces (-) + pudil: 0.8 # relative nutrient content of faeces (-) + sd: 0.01 # specific mortality at reference temperature (1/d) + sdmO2: 1.0 # specific maximum additional mortality due to oxygen stress (1/d) + sdc: 0.02 # specific maximum additional mortality induced by cold temperature (1/d) + xdc: -0.7 # e-folding temperature factor of cold mortality response (1/degree_C) + sr: 0.01 # specific rest respiration at reference temperature (1/d) + pur: 0.45 # fraction of assimilated food that is respired (-) + nfood: 4 # number of food sources, default = 0 + pufood1: 1.0 # preference for food source 1 (-) + pufood2: 1.0 # preference for food source 2 (-) + pufood3: 1.0 # preference for food source 3 (-) + pufood4: 0.3 # preference for food source 4 (-) + food4ispom: true # food source 4 is detritus, default = false + pirr: 0.2 # relative contribution to bioirrigation (-), default = 0.0 + initialization: + c: 200.0 # carbon (mg C/m^2) + coupling: + food1: H1 + food2: H2 + food3: Y4 + food4: Y4_Q6 + Q: Y4_Q6 + Dm: ben_col/D1m # depth of limiting layer for uptake (m) + O2o: O2/o # pelagic oxygen (mmol O_2/m^3) + G3c: G3/per_layer/c1 # carbon dioxide (mmol C/m^2) + G2o: G2/per_layer/o1 # oxygen (mmol O_2/m^2) + K1p: K1/per_layer/p1 # benthic phosphate in aerobic layer (mmol P/m^2) + K4n: K4/per_layer/n1 # benthic ammonium in aerobic layer (mmol N/m^2) + K1p2: K1/per_layer/p2 # benthic phosphate in anaerobic layer (mmol P/m^2) + K4n2: K4/per_layer/n2 # benthic ammonium in anaerobic layer (mmol N/m^2) + benTA: zero_hz # benthic alkalinity in aerobic layer (mEq/m^2) + benTA2: zero_hz # benthic alkalinity in anaerobic layer (mEq/m^2) + Y4_Q6: + long_name: benthic meiofauna POM + model: ersem/benthic_column_particulate_matter_layer + parameters: + composition: cnps # elemental composition + minimum_depth: 0.0 # minimum depth (m), default = 0.0 + maximum_depth: 0.03 # maximum depth (m), default = 0.0 + coupling: + Q: Q6 + N3_flux: + model: external_surface_flux + coupling: + target: N3/n + N4_flux: + model: external_surface_flux + coupling: + target: N4/n + erosion: + model: ersem/benthic_erosion + #Diagnostics: + PON: + long_name: particulate organic nitrogen + model: weighted_sum + parameters: + n: 11 + weight5: 0.0126 + coupling: + term1: P1/n + term2: P2/n + term3: P3/n + term4: P4/n + term5: Z4/c + term6: Z5/n + term7: Z6/n + term8: B1/n + term9: R4/n + term10: R6/n + term11: R8/n + POP: + long_name: particulate organic phosphorus + model: weighted_sum + parameters: + n: 11 + weight5: 0.000786 + coupling: + term1: P1/p + term2: P2/p + term3: P3/p + term4: P4/p + term5: Z4/c + term6: Z5/p + term7: Z6/p + term8: B1/p + term9: R4/p + term10: R6/p + term11: R8/p + POSi: + model: weighted_sum + parameters: + n: 3 + coupling: + term1: P1/s + term2: R6/s + term3: R8/s + P1_fPIRIc: + long_name: diatom loss to organic carbon + model: weighted_sum + parameters: + n: 3 + coupling: + term1: P1/fPIR1c + term2: P1/fPIR2c + term3: P1/fPIRPc + P2_fPIRIc: + long_name: nanophytoplankton loss to organic carbon + model: weighted_sum + parameters: + n: 3 + coupling: + term1: P2/fPIR1c + term2: P2/fPIR2c + term3: P2/fPIRPc + P3_fPIRIc: + long_name: picophytoplankton loss to organic carbon + model: weighted_sum + parameters: + n: 3 + coupling: + term1: P3/fPIR1c + term2: P3/fPIR2c + term3: P3/fPIRPc + P4_fPIRIc: + long_name: microphytoplankton loss to organic carbon + model: weighted_sum + parameters: + n: 3 + coupling: + term1: P4/fPIR1c + term2: P4/fPIR2c + term3: P4/fPIRPc + phytoplankton_loss_to_labile_DOC: + long_name: phytoplankton loss to labile dissolved organic carbon + model: weighted_sum + parameters: + n: 4 + coupling: + term1: P1/fPIR1c + term2: P2/fPIR1c + term3: P3/fPIR1c + term4: P4/fPIR1c + phytoplankton_loss_to_labile_DON: + long_name: phytoplankton loss to labile dissolved organic nitrogen + model: weighted_sum + parameters: + n: 4 + coupling: + term1: P1/fPIR1n + term2: P2/fPIR1n + term3: P3/fPIR1n + term4: P4/fPIR1n + phytoplankton_loss_to_labile_DOP: + long_name: phytoplankton loss to labile dissolved organic phosphorus + model: weighted_sum + parameters: + n: 4 + coupling: + term1: P1/fPIR1p + term2: P2/fPIR1p + term3: P3/fPIR1p + term4: P4/fPIR1p + phytoplankton_loss_to_non_labile_DOC: + long_name: phytoplankton loss to non-labile dissolved organic carbon + model: weighted_sum + parameters: + n: 4 + coupling: + term1: P1/fPIR2c + term2: P2/fPIR2c + term3: P3/fPIR2c + term4: P4/fPIR2c + phytoplankton_loss_to_POC: + long_name: phytoplankton loss to particulate organic carbon + model: weighted_sum + parameters: + n: 4 + coupling: + term1: P1/fPIRPc + term2: P2/fPIRPc + term3: P3/fPIRPc + term4: P4/fPIRPc + phytoplankton_loss_to_PON: + long_name: phytoplankton loss to particulate organic nitrogen + model: weighted_sum + parameters: + n: 4 + coupling: + term1: P1/fPIRPn + term2: P2/fPIRPn + term3: P3/fPIRPn + term4: P4/fPIRPn + phytoplankton_loss_to_POP: + long_name: phytoplankton loss to particulate organic phosphorus + model: weighted_sum + parameters: + n: 4 + coupling: + term1: P1/fPIRPp + term2: P2/fPIRPp + term3: P3/fPIRPp + term4: P4/fPIRPp + phytoplankton_uptake_oxN: + long_name: phytoplankton uptake of oxidized nitrogen + model: weighted_sum + parameters: + n: 4 + coupling: + term1: P1/fN3PIn + term2: P2/fN3PIn + term3: P3/fN3PIn + term4: P4/fN3PIn + phytoplankton_uptake_redN: + long_name: phytoplankton uptake of reduced nitrogen + model: weighted_sum + parameters: + n: 4 + coupling: + term1: P1/fN4PIn + term2: P2/fN4PIn + term3: P3/fN4PIn + term4: P4/fN4PIn + phytoplankton_uptake_DIP: + long_name: phytoplankton uptake of dissolved inorganic phosphorus + model: weighted_sum + parameters: + n: 4 + coupling: + term1: P1/fN1PIp + term2: P2/fN1PIp + term3: P3/fN1PIp + term4: P4/fN1PIp + Z4_fphytoc: + long_name: mesozooplankton grazing of phytoplankton carbon + model: weighted_sum + parameters: + n: 4 + coupling: + term1: Z4/fprey1c + term2: Z4/fprey2c + term3: Z4/fprey3c + term4: Z4/fprey4c + Z4_fphyton: + long_name: mesozooplankton grazing of phytoplankton nitrogen + model: weighted_sum + parameters: + n: 4 + coupling: + term1: Z4/fprey1n + term2: Z4/fprey2n + term3: Z4/fprey3n + term4: Z4/fprey4n + Z4_fphytop: + long_name: mesozooplankton grazing of phytoplankton phosphorus + model: weighted_sum + parameters: + n: 4 + coupling: + term1: Z4/fprey1p + term2: Z4/fprey2p + term3: Z4/fprey3p + term4: Z4/fprey4p + Z4_fzooc: + long_name: mesozooplankton predation of phytoplankton carbon + model: weighted_sum + parameters: + n: 3 + coupling: + term1: Z4/fprey5c + term2: Z4/fprey6c + term3: Z4/fprey7c + Z4_fzoon: + long_name: mesozooplankton predation of phytoplankton nitrogen + model: weighted_sum + parameters: + n: 3 + coupling: + term1: Z4/fprey5n + term2: Z4/fprey6n + term3: Z4/fprey7n + Z4_fzoop: + long_name: mesozooplankton predation of zooplankton phosphorus + model: weighted_sum + parameters: + n: 3 + coupling: + term1: Z4/fprey5p + term2: Z4/fprey6p + term3: Z4/fprey7p + Z5_fphytoc: + long_name: microzooplankton grazing of phytoplankton carbon + model: weighted_sum + parameters: + n: 4 + coupling: + term1: Z5/fprey2c + term2: Z5/fprey3c + term3: Z5/fprey4c + term4: Z5/fprey5c + Z5_fphyton: + long_name: microzooplankton grazing of phytoplankton nitrogen + model: weighted_sum + parameters: + n: 4 + coupling: + term1: Z5/fprey2n + term2: Z5/fprey3n + term3: Z5/fprey4n + term4: Z5/fprey5n + Z5_fphytop: + long_name: microzooplankton grazing of phytoplankton phosphorus + model: weighted_sum + parameters: + n: 4 + coupling: + term1: Z5/fprey2p + term2: Z5/fprey3p + term3: Z5/fprey4p + term4: Z5/fprey5p + Z5_fzooc: + long_name: microzooplankton predation of zooplankton carbon + model: weighted_sum + parameters: + n: 2 + coupling: + term1: Z5/fprey6c + term2: Z5/fprey7c + Z5_fzoon: + long_name: microzooplankton predation of zooplankton nitrogen + model: weighted_sum + parameters: + n: 2 + coupling: + term1: Z5/fprey6n + term2: Z5/fprey7n + Z5_fzoop: + long_name: microzooplankton predation of zooplankton phosphorus + model: weighted_sum + parameters: + n: 2 + coupling: + term1: Z5/fprey6p + term2: Z5/fprey7p + Z6_fphytoc: + long_name: heterotrophic flagellate grazing of phytoplankton carbon + model: weighted_sum + parameters: + n: 2 + coupling: + term1: Z6/fprey2c + term2: Z6/fprey3c + Z6_fphyton: + long_name: heterotrophic flagellate grazing of phytoplankton nitrogen + model: weighted_sum + parameters: + n: 2 + coupling: + term1: Z6/fprey2n + term2: Z6/fprey3n + Z6_fphytop: + long_name: heterotrophic flagellate grazing of phytoplankton phosphorus + model: weighted_sum + parameters: + n: 2 + coupling: + term1: Z6/fprey2p + term2: Z6/fprey3p + total_microzooplankton_loss_to_POC: + long_name: total microzooplankton loss to particulate organic carbon + model: weighted_sum + parameters: + n: 2 + coupling: + term1: Z5/fZIRPc + term2: Z6/fZIRPc + total_microzooplankton_loss_to_PON: + long_name: total microzooplankton loss to particulate organic nitrogen + model: weighted_sum + parameters: + n: 2 + coupling: + term1: Z5/fZIRPn + term2: Z6/fZIRPn + total_microzooplankton_loss_to_POP: + long_name: total microzooplankton loss to particulate organic phosphorus + model: weighted_sum + parameters: + n: 2 + coupling: + term1: Z5/fZIRPp + term2: Z6/fZIRPp + total_microzooplankton_loss_to_DOC: + long_name: total microzooplankton loss to dissolved organic carbon + model: weighted_sum + parameters: + n: 2 + coupling: + term1: Z5/fZIRDc + term2: Z6/fZIRDc + total_microzooplankton_loss_to_DON: + long_name: total microzooplankton loss to dissolved organic nitrogen + model: weighted_sum + parameters: + n: 2 + coupling: + term1: Z5/fZIRDn + term2: Z6/fZIRDn + total_microzooplankton_loss_to_DOP: + long_name: total microzooplankton loss to dissolved organic phosphorus + model: weighted_sum + parameters: + n: 2 + coupling: + term1: Z5/fZIRDp + term2: Z6/fZIRDp + total_microzooplankton_respiration: + long_name: total microzooplankton respiration + model: weighted_sum + parameters: + n: 2 + coupling: + term1: Z5/fZIO3c + term2: Z6/fZIO3c + total_microzooplankton_loss_to_DIN: + long_name: total microzooplankton loss to dissolved inorganic nitrogen + model: weighted_sum + parameters: + n: 2 + coupling: + term1: Z5/fZINIn + term2: Z6/fZINIn + total_microzooplankton_loss_to_DIP: + long_name: total microzooplankton loss to dissolved inorganic phosphorus + model: weighted_sum + parameters: + n: 2 + coupling: + term1: Z5/fZINIp + term2: Z6/fZINIp + gross_calcification_rate: + long_name: gross calcification rate + model: weighted_sum + parameters: + n: 4 + coupling: + term1: P2/calcification + term2: Z4/calcification + term3: Z5/calcification + term4: Z6/calcification + ben_PON: + long_name: benthic particulate organic nitrogen + model: horizontal_weighted_sum + parameters: + n: 2 + coupling: + term1: Q6/n + term2: Q7/n + ben_POP: + long_name: benthic particulate organic phosphate + model: horizontal_weighted_sum + parameters: + n: 2 + coupling: + term1: Q6/p + term2: Q7/p + benthic_denitrification_ammonification: + long_name: benthic denitrification and ammonification + model: horizontal_weighted_sum + parameters: + n: 2 + coupling: + term1: ben_nit/jM3G4n + term2: ben_nit/jM3M4n + Y3_fphytoc: + long_name: benthic suspension feeder grazing of phytoplankton carbon + model: horizontal_weighted_sum + parameters: + n: 3 + coupling: + term1: Y3/fprey1c + term2: Y3/fprey2c + term3: Y3/fprey3c + Y3_fphyton: + long_name: benthic suspension feeder grazing of phytoplankton nitrogen + model: horizontal_weighted_sum + parameters: + n: 3 + coupling: + term1: Y3/fprey1n + term2: Y3/fprey2n + term3: Y3/fprey3n + Y3_fphytop: + long_name: benthic suspension feeder grazing of phytoplankton phosphorus + model: horizontal_weighted_sum + parameters: + n: 3 + coupling: + term1: Y3/fprey1p + term2: Y3/fprey2p + term3: Y3/fprey3p + Ymacro_fYG3c: + long_name: benthic macrofauna respiration + model: horizontal_weighted_sum + parameters: + n: 2 + coupling: + term1: Y2/fYG3c + term2: Y3/fYG3c + Ymacro_fYQPc: + long_name: benthic macrofauna loass to particulate organic carbon + model: horizontal_weighted_sum + parameters: + n: 2 + coupling: + term1: Y2/fYQPc + term2: Y3/fYQPc + Ymacro_fYQPn: + long_name: benthic macrofauna loass to particulate organic nitrogen + model: horizontal_weighted_sum + parameters: + n: 2 + coupling: + term1: Y2/fYQPn + term2: Y3/fYQPn + Ymacro_fYQPp: + long_name: benthic macrofauna loass to particulate organic phosphorus + model: horizontal_weighted_sum + parameters: + n: 2 + coupling: + term1: Y2/fYQPp + term2: Y3/fYQPp + Ymacro_fYKIn: + long_name: benthic macrofauna loass to dissolved inorganic nitrogen + model: horizontal_weighted_sum + parameters: + n: 2 + coupling: + term1: Y2/fYKIn + term2: Y3/fYKIn + Ymacro_fYK1p: + long_name: benthic macrofauna loass to dissolved inorganic phosphorus + model: horizontal_weighted_sum + parameters: + n: 2 + coupling: + term1: Y2/fYK1p + term2: Y3/fYK1p + Q6_remins: + long_name: benthic remineralisation of silicate + model: horizontal_weighted_sum + parameters: + n: 1 + weight1: 0.007 + coupling: + term1: Q6/s + net_PelBen_POC: + long_name: flux of particulate organic carbon from pelagic to benthos + model: horizontal_weighted_sum + parameters: + n: 17 + weight17: -1. + coupling: + term1: R4/dep1c + term2: R4/dep2c + term3: R6/dep1c + term4: R6/dep2c + term5: R8/dep1c + term6: R8/dep2c + term7: P1/dep1c + term8: P1/dep2c + term9: P1/dep3c + term10: P4/dep1c + term11: P4/dep2c + term12: P4/dep3c + term13: Y3/fprey1c + term14: Y3/fprey2c + term15: Y3/fprey3c + term16: Y3/fprey4c + term17: Q6/resuspension_flux_c + net_PelBen_PON: + long_name: flux of particulate organic nitrogen from pelagic to benthos + model: horizontal_weighted_sum + parameters: + n: 17 + weight17: -1. + coupling: + term1: R4/dep1n + term2: R4/dep2n + term3: R6/dep1n + term4: R6/dep2n + term5: R8/dep1n + term6: R8/dep2n + term7: P1/dep1n + term8: P1/dep2n + term9: P1/dep3n + term10: P4/dep1n + term11: P4/dep2n + term12: P4/dep3n + term13: Y3/fprey1n + term14: Y3/fprey2n + term15: Y3/fprey3n + term16: Y3/fprey4n + term17: Q6/resuspension_flux_n + net_PelBen_POP: + long_name: flux of particulate organic phosphorus from pelagic to benthos + model: horizontal_weighted_sum + parameters: + n: 17 + weight17: -1. + coupling: + term1: R4/dep1p + term2: R4/dep2p + term3: R6/dep1p + term4: R6/dep2p + term5: R8/dep1p + term6: R8/dep2p + term7: P1/dep1p + term8: P1/dep2p + term9: P1/dep3p + term10: P4/dep1p + term11: P4/dep2p + term12: P4/dep3p + term13: Y3/fprey1p + term14: Y3/fprey2p + term15: Y3/fprey3p + term16: Y3/fprey4p + term17: Q6/resuspension_flux_p + net_PelBen_POSi: + long_name: flux of particulate organic silicate from pelagic to benthos + model: horizontal_weighted_sum + parameters: + n: 6 + weight6: -1. + coupling: + term1: R6/dep1s + term2: R8/dep1s + term3: P1/dep1s + term4: Y3/fprey1s + term5: Y3/fprey4s + term6: Q6/resuspension_flux_s From 7738338e2702984f2bbe52b88e79dbd42245e639 Mon Sep 17 00:00:00 2001 From: Ricardo Torres Date: Mon, 8 Mar 2021 12:27:21 +0000 Subject: [PATCH 20/26] remove fT1B1 and fT2B1 diagnostics as they were already included in loop --- src/bacteria_docdyn.F90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bacteria_docdyn.F90 b/src/bacteria_docdyn.F90 index 57861f6..390e876 100644 --- a/src/bacteria_docdyn.F90 +++ b/src/bacteria_docdyn.F90 @@ -204,8 +204,8 @@ subroutine initialize(self,configunit) call self%register_diagnostic_variable(self%id_fR1B1c,'fR1B1c','mg C/m^3/d','bacterial uptake of labile DOC ') call self%register_diagnostic_variable(self%id_fR2B1c,'fR2B1c','mg C/m^3/d','bacterial uptake of semi-labile DOC ') call self%register_diagnostic_variable(self%id_fR3B1c,'fR3B1c','mg C/m^3/d','bacterial uptake of semi-refractory DOC ') - call self%register_diagnostic_variable(self%id_fT1B1c,'fT1B1c','mg C/m^3/d','bacterial uptake of photolabile terrigenous DOC ') - call self%register_diagnostic_variable(self%id_fT2B1c,'fT2B1c','mg C/m^3/d','bacterial uptake of nonphotolabile terrigenous') + ! call self%register_diagnostic_variable(self%id_fT1B1c,'fT1B1c','mg C/m^3/d','bacterial uptake of photolabile terrigenous DOC ') + ! call self%register_diagnostic_variable(self%id_fT2B1c,'fT2B1c','mg C/m^3/d','bacterial uptake of nonphotolabile terrigenous') call self%register_diagnostic_variable(self%id_fRPB1c,'fRPB1c','mg C/m^3/d','bacterial total uptake of POC') call self%register_diagnostic_variable(self%id_fRPB1n,'fRPB1n','mg N/m^3/d','bacterial total uptake of PON') call self%register_diagnostic_variable(self%id_fRPB1p,'fRPB1p','mg P/m^3/d','bacterial total uptake of POP') From d44ed54a5e97f153b6e2d03edee884609b68df8e Mon Sep 17 00:00:00 2001 From: Helen Powley Date: Wed, 9 Jun 2021 12:40:09 +0100 Subject: [PATCH 21/26] Corrected units for surface photolysis (from mgC/m2/d to mgC/m3/d) --- src/TDOC.F90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/TDOC.F90 b/src/TDOC.F90 index 25a25e1..565d3b9 100644 --- a/src/TDOC.F90 +++ b/src/TDOC.F90 @@ -121,7 +121,7 @@ subroutine initialize(self,configunit) call self%register_state_dependency(self%id_N1p,'N1p','mmol P/m^3','phosphate') call self%register_state_dependency(self%id_N4n,'N4n','mmol N/m^3','ammonium') call self%register_diagnostic_variable(self%id_photolysis,'photolysis','mgC/m^3/d','photolysis') - call self%register_horizontal_diagnostic_variable(self%id_surface_photolysis,'surface_photolysis','mgC/m^2/d','surface photolysis',source=source_do_surface) + call self%register_horizontal_diagnostic_variable(self%id_surface_photolysis,'surface_photolysis','mgC/m^3/d','surface photolysis',source=source_do_surface) call self%register_diagnostic_variable(self%id_flocc,'flocc','mgC/m^3/d','flocculation') end if @@ -135,7 +135,7 @@ subroutine initialize(self,configunit) call self%request_coupling_to_model(self%id_TD_older_p,self%id_TD_older,standard_variables%total_phosphorus) if (self%is_photolabile) then call self%register_diagnostic_variable(self%id_photo_aging,'photoaging','mgC/m^3/d','aging due to 3D photoloysis') - call self%register_horizontal_diagnostic_variable(self%id_surface_photo_aging,'surface_photoaging','mgC/m^2/d','aging due to surface photolysis',source=source_do_surface) + call self%register_horizontal_diagnostic_variable(self%id_surface_photo_aging,'surface_photoaging','mgC/m^3/d','aging due to surface photolysis',source=source_do_surface) end if call self%register_diagnostic_variable(self%id_bio_aging,'bioaging','mgC/m^3/d','aging due to microbial degrdation') From efa3986869bfb1f1f06b82033f8809b5fb3eb7c2 Mon Sep 17 00:00:00 2001 From: Yuri Artioli Date: Thu, 10 Jun 2021 19:13:35 +0100 Subject: [PATCH 22/26] Corrected surface photolysis to account for the fact that _set_sruface_exchange_ need a flux in mgC/m2/d the surface_photolysis diagnostic save the flus in mgC/m3/d because this is what is more senisble to save and use in the analysis --- src/TDOC.F90 | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/TDOC.F90 b/src/TDOC.F90 index 565d3b9..5222cea 100644 --- a/src/TDOC.F90 +++ b/src/TDOC.F90 @@ -20,7 +20,7 @@ module ersem_TDOC type (type_state_variable_id) :: id_TD_older_c,id_TD_older_n,id_TD_older_p type (type_model_id) :: id_T2, id_TD_older type (type_dependency_id) :: id_ETW, id_chemEIR - type (type_dependency_id) :: id_shadow_bioflux + type (type_dependency_id) :: id_shadow_bioflux, id_dz type (type_dependency_id) :: id_X1X ! Salinity ! type (type_horizontal_dependency_id) :: id_R1c,id_R1d type (type_horizontal_diagnostic_variable_id) :: id_surface_photolysis, id_surface_photo_aging @@ -105,6 +105,7 @@ subroutine initialize(self,configunit) !call self%register_dependency(self%id_EIR,standard_variables%downwelling_shortwave_flux) if (self%is_photolabile) then + call self%register_dependency(self%id_dz, standard_variables%cell_thickness) call self%register_dependency(self%id_X1X,standard_variables%practical_salinity) call self%register_state_dependency(self%id_RPc,'RPc','mg C/m^3', 'particulate organic carbon') call self%register_state_dependency(self%id_RPp,'RPp','mmol P/m^3', 'particulate organic phosphorus') @@ -248,7 +249,7 @@ subroutine do_surface(self,_ARGUMENTS_DO_SURFACE_) _DECLARE_ARGUMENTS_DO_SURFACE_ real (rk) :: chemEIR,photolysis,c,T1T2,T2c,T2n,T2p - real (rk) :: Xn,Xp,XXn,nx,px + real (rk) :: Xn,Xp,XXn,nx,px,dz ! Enter horizontal loops (if any) _HORIZONTAL_LOOP_BEGIN_ @@ -256,6 +257,7 @@ subroutine do_surface(self,_ARGUMENTS_DO_SURFACE_) if (self%is_photolabile) then _GET_(self%id_chemEIR,chemEIR) _GET_(self%id_c,c) + _GET_(self%id_dz,dz) _GET_WITH_BACKGROUND_(self%id_T2c,T2c) _GET_WITH_BACKGROUND_(self%id_T2n,T2n) _GET_WITH_BACKGROUND_(self%id_T2p,T2p) @@ -290,7 +292,16 @@ subroutine do_surface(self,_ARGUMENTS_DO_SURFACE_) Xp=1._rk XXn=min(Xn,Xp) ! Photolysis + ! this is the real photolitic rate in mgC/m3/d photolysis=self%surf_phyref*(chemEIR*self%chemEIR_scaling/self%iref)*c + _SET_HORIZONTAL_DIAGNOSTIC_(self%id_surface_photolysis, photolysis) + + ! because this is a do_surface subroutine only _set_surface_exchange_ can be used, not _set_ode_ + ! _set_surface_exchange_ requires the flux being vertically integrated (units = 1/m2/d) + ! so the flux is multiplied by the cell thickness. _set_surface_exchange_ will re-convert back the unit automatically + + photolysis = photolysis * dz + ! in order to ensure mass conservation, the fraction of carbon going from T1 to T2 after photolysis is down regulated ! if T1 has less N and/or P than T2. Any excess of nutrients is redirected into the dissolved pool (N1p and N4n). (Luca, July 2018) T1T2=self%phyt*min(1._rk,XXn) @@ -309,7 +320,6 @@ subroutine do_surface(self,_ARGUMENTS_DO_SURFACE_) if (nx.NE.0._rk) write(6,*) trim(self%name),T2c,T2n,self%qn,Xn _SET_SURFACE_EXCHANGE_(self%id_N1p,+photolysis*(1._rk-T1T2)*self%qp)!+photolysis*T1T2*px) _SET_SURFACE_EXCHANGE_(self%id_N4n,+photolysis*(1._rk-T1T2)*self%qn)!+photolysis*T1T2*nx) - _SET_HORIZONTAL_DIAGNOSTIC_(self%id_surface_photolysis, photolysis) end if !is_photolabile _HORIZONTAL_LOOP_END_ end subroutine From 9d5f6db1ffffe28f9609c040477957393f72552c Mon Sep 17 00:00:00 2001 From: Helen Powley Date: Fri, 21 Nov 2025 14:11:14 +0000 Subject: [PATCH 23/26] Add file from master, remove additional LOCATE files --- .../fabm-ersem-15.06-L4-ben-docdyn-iop.yaml | 45 +- testcases/fabm-ersem-locate-arctic.yaml | 759 ------- testcases/fabm-nemo-ages-tdoc.yaml | 1953 ----------------- 3 files changed, 1 insertion(+), 2756 deletions(-) delete mode 100644 testcases/fabm-ersem-locate-arctic.yaml delete mode 100644 testcases/fabm-nemo-ages-tdoc.yaml diff --git a/testcases/fabm-ersem-15.06-L4-ben-docdyn-iop.yaml b/testcases/fabm-ersem-15.06-L4-ben-docdyn-iop.yaml index 4e49bb5..652033d 100644 --- a/testcases/fabm-ersem-15.06-L4-ben-docdyn-iop.yaml +++ b/testcases/fabm-ersem-15.06-L4-ben-docdyn-iop.yaml @@ -85,41 +85,6 @@ instances: c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 initialization: c: 12.0 # carbon (mg C/m^3) - T1: - long_name: photolabile terrigenous DOC - model: ersem/TDOC - parameters: - qn: 0.0042 - qp: 0.0001 # elemental composition - c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 - phyref: 0.03 # reference photooxidation rate (d-1) - iref: 130 # reference irradinace for photooxidation (W m-2) - floc: 0.000002 # max flocculation rate [d-1 (mg C)-1] - sbx: 0.69 # log(salinity) (psu) at which flocculation is max.max is assumed to be around 2 psu. 0.69=log(2) - scx: 1.35 # salinity function parameter. 1.35 allows the max flocc rate to decrease of one order of magnitude at 35 psu - phyt: 0.24 # fraction of T1 going to T2 after photolysis - chemEIR_scaling: 2. # scaling factor for incoming radiation activiating photochemical reactions - initialization: - c: 1200.0 - coupling: - chemEIR: light/parEIR - T2: T2 - RPc: R6/c - RPn: R6/n - RPp: R6/p - O3c: O3/c - N1p: N1/p - N4n: N4/n - T2: - long_name: non photolabile terrigenous DOC - model: ersem/pelagic_base - parameters: - composition: c - qn: 0.0042 - qp: 0.0001 # elemental composition - c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 - initialization: - c: 1200.0 R4: long_name: small-size pom model: ersem/pelagic_base @@ -265,8 +230,6 @@ instances: sRP3R1: 0.001 # remineralisation of substrate 3 to DOM (1/d) rR2: 0.0075 # fraction of semi-labile DOC available to bacteria (-) rR3: 0.0025 # fraction of semi-refractory DOC available to bacteria (-) - rT1: 0.002 # fraction of T1 available for bacteria - rT2: 0.006 # fraction of T2 available for bacteria frR3: 0.3 # fraction of activity respiration converted to semi-refractory DOC (-) initialization: c: 15.7 # carbon (mg C/m^3) @@ -282,13 +245,7 @@ instances: R1p: R1/p # labile dissolved organic phosphorus (mmol P/m^3) R1n: R1/n # labile dissolved organic nitrogen (mmol N/m^3) R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) - R3c: R3/c - T1: T1 # photolabile terrigenous dissolved organic carbon (mg C/m^3) -# T1p: T1/p # photolabile terrigenous dissolved organic phosphorus (mmol P/m^3) -# T1n: T1/n # photolabile terrigenous dissolved organic nitrogen (mmol N/m^3) - T2: T2 # non-photolabile terrigenous dissolved organic carbon (mg C/m^3) -# T2p: T2/p # non-photolabile terrigenous dissolved organic phosphorus (mmol P/m^3) -# T2n: T2/n # non-photolabile terrigenous dissolved organic nitrogen (mmol N/m^3) + R3c: R3/c # semi-refractory DOC (mg C/m^3) O3c: O3/c # carbon dioxide (mmol C/m^3) O2o: O2/o # oxygen (mmol O_2/m^3) pel_nit: diff --git a/testcases/fabm-ersem-locate-arctic.yaml b/testcases/fabm-ersem-locate-arctic.yaml deleted file mode 100644 index 27716aa..0000000 --- a/testcases/fabm-ersem-locate-arctic.yaml +++ /dev/null @@ -1,759 +0,0 @@ -check_conservation: true -require_initialization: true -instances: - zenithAngle: - model: ersem/zenith_angle - light: - model: ersem/light_iop - parameters: - a0w: 0.03 # absorption coefficient of clear water (1/m), default = 0.036 - b0w: 0.0015 # backscatter coefficient of clear water (1/m), default = 0.0016 - pEIR_eow: 0.5 # photosynthetically active fraction of shortwave radiation (-), default = 0.5 -# relax: 0.033 -# initialization: -# ady: 0.03 - N1: - long_name: phosphate - model: ersem/pelagic_base - parameters: - composition: p # elemental composition - c0: 0.001 # background carbon concentration (mg C/m^3), default = 0.0 - initialization: - p: 0.8 # phosphorus (mmol P/m^3) - N3: - long_name: nitrate - model: ersem/pelagic_base - parameters: - composition: n # elemental composition - c0: 0.001 # background carbon concentration (mg C/m^3), default = 0.0 - initialization: - n: 4.0 # nitrogen (mmol N/m^3) - N4: - long_name: ammonium - model: ersem/pelagic_base - parameters: - composition: n # elemental composition - c0: 0.001 # background carbon concentration (mg C/m^3), default = 0.0 - initialization: - n: 0.1 # nitrogen (mmol N/m^3) - N5: - long_name: silicate - model: ersem/pelagic_base - parameters: - composition: s # elemental composition - s0: 0.0003 # background silicon concentration (mmol Si/m^3), default = 0.0 - initialization: - s: 8. #4.5 # silicate (mmol Si/m^3) - O2: - long_name: oxygen - model: ersem/oxygen - parameters: - ISWO2: 2 # saturation formulation (1: legacy ERSEM, 2: Weiss 1970) - initialization: - o: 300.0 # oxygen (mmol O_2/m^3) - O3: - long_name: carbonate - model: ersem/carbonate - parameters: - iswCO2: 1 # carbonate system diagnostics (0: off, 1: on), default = 1 - iswASFLUX: 1 # air-sea CO2 exchange (0: none, 1: Nightingale and Liss, 2: Wanninkhof 1992 without chemical enhancement, 3: Wanninkhof 1992 with chemical enhancement, 4: Wanninkhof 1999), default = 1 - iswtalk: 5 # alkalinity formulation (1-4: from salinity and temperature, 5: dynamic alkalinity), default = 5 - initialization: - c: 1600. #2130.0 # total dissolved inorganic carbon (mmol C/m^3) - TA: 1620. - R1: - long_name: labile dissolved organic matter - model: ersem/pelagic_base - parameters: - composition: cnp # elemental composition - c0: 0.0034 # background carbon concentration (mg C/m^3), default = 0.0 - initialization: - c: 10.0 # carbon (mg C/m^3) - n: 0.14 # nitrogen (mmol N/m^3) - p: 0.01 # phosphorus (mmol P/m^3) - R2: - long_name: semi-labile dissolved organic matter - model: ersem/pelagic_base - parameters: - composition: c # elemental composition - c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 - initialization: - c: 12.0 # carbon (mg C/m^3) - R3: - long_name: semi-refractory dissolved organic matter - model: ersem/pelagic_base - parameters: - composition: c # elemental composition - c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 - initialization: - c: 12.0 # carbon (mg C/m^3) - T1: - long_name: photolabile terrigenous DOC - model: ersem/TDOC - parameters: - qn: 0.0038 # 0.0167 #0.0042 - qp: 0.00009 #0.0019 #0.0001 # elemental composition - c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 - iopABS: 0.0002 # specific shortwave absorption (m^2/mg C), default = 0.0 - iopBBS: 0.0 # specific shortwave backscatter (m^2/mg C), default = 0.0 - phyref: 0.03 # reference photooxidation rate (d-1) - iref: 130 # reference irradinace for photooxidation (W m-2) - floc: 0.000002 # max flocculation rate [d-1 (mg C)-1] - sbx: 0.69 # log(salinity) (psu) at which flocculation is max.max is assumed to be around 2 psu. 0.69=log(2) - scx: 1.35 # salinity function parameter. 1.35 allows the max flocc rate to decrease of one order of magnitude at 35 psu - phyt: 0.24 # fraction of T1 going to T2 after photolysis - initialization: - c: 1200.0 - coupling: - T2: T2 - RPc: R6/c - RPn: R6/n - RPp: R6/p - O3c: O3/c - N1p: N1/p - N4n: N4/n - T2: - long_name: non photolabile terrigenous DOC - model: ersem/pelagic_base - parameters: - composition: c - qn: 0.0038 # 0.0167 #0.0042 - qp: 0.00009 # 0.0019 #0.0001 # elemental composition - c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 - initialization: - c: 1200.0 - R4: - long_name: small-size pom - model: ersem/pelagic_base - parameters: - composition: cnpf # elemental composition - c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 - iopABS: 1e-04 # specific shortwave absorption (m^2/mg C), default = 0.0 - iopBBS: 1.6e-05 # specific shortwave backscatter (m^2/mg C), default = 0.0 - rm: 1.0 # sinking velocity (m/d), default = 0.0 - ndeposition: 2 # number of target pools for sedimentation, default = 0 - qxc2: 0.1 # fraction of carbon sinking into deposition target 2 (-) - qxn2: 0.1 # fraction of nitrogen sinking into deposition target 2 (-) - qxp2: 0.06 # fraction of phosphorus sinking into deposition target 2 (-) - initialization: - c: 7.2 # carbon (mg C/m^3) - n: 0.1 # nitrogen (mmol N/m^3) - p: 0.007 # phosphorus (mmol P/m^3) - coupling: - deposition_target1: Q6 - deposition_target2: Q7 - R6: - long_name: medium-size pom - model: ersem/pelagic_base - parameters: - composition: cnpsf # elemental composition - c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 - iopABS: 1e-05 # specific shortwave absorption (m^2/mg C), default = 0.0 - iopBBS: 1.6e-05 # specific shortwave backscatter (m^2/mg C), default = 0.0 - rm: 5.0 # sinking velocity (m/d), default = 0.0 - ndeposition: 2 # number of target pools for sedimentation, default = 0 - qxc2: 0.1 # fraction of carbon sinking into deposition target 2 (-) - qxn2: 0.1 # fraction of nitrogen sinking into deposition target 2 (-) - qxp2: 0.06 # fraction of phosphorus sinking into deposition target 2 (-) - qxs2: 0.0 # fraction of silicate sinking into deposition target 2 (-) - initialization: - c: 17.0 # carbon (mg C/m^3) - n: 0.24 # nitrogen (mmol N/m^3) - p: 0.02 # phosphorus (mmol P/m^3) - s: 0.1 # silicate (mmol Si/m^3) - coupling: - deposition_target1: Q6 - deposition_target2: Q7 - R8: - long_name: large-size pom - model: ersem/pelagic_base - parameters: - composition: cnps # elemental composition - c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 - iopABS: 1e-05 # specific shortwave absorption (m^2/mg C), default = 0.0 - iopBBS: 1.6e-05 # specific shortwave backscatter (m^2/mg C), default = 0.0 - rm: 10.0 # sinking velocity (m/d), default = 0.0 - ndeposition: 2 # number of target pools for sedimentation, default = 0 - qxc2: 0.1 # fraction of carbon sinking into deposition target 2 (-) - qxn2: 0.1 # fraction of nitrogen sinking into deposition target 2 (-) - qxp2: 0.06 # fraction of phosphorus sinking into deposition target 2 (-) - qxs2: 0.0 # fraction of silicate sinking into deposition target 2 (-) - initialization: - c: 0.17 # carbon (mg C/m^3) - n: 0.0024 # nitrogen (mmol N/m^3) - p: 0.0002 # phosphorus (mmol P/m^3) - s: 0.001 # silicate (mmol Si/m^3) - coupling: - deposition_target1: Q6 - deposition_target2: Q7 - Q1: - long_name: benthic dissolved organic matter - model: ersem/benthic_base - parameters: - composition: cnp # elemental composition - remin: 0.1 # remineralisation rate (1/d), default = 0.0 - pN3: 0.9 # nitrate fraction of remineralised nitrogen (remainder is ammonium) (-), default = 0.0 - c0: 0.001 # background carbon concentration (mg C/m^2), default = 0.0 - initialization: - c: 18.9 # carbon (mg C/m^2) - n: 0.6 # nitrogen (mmol N/m^2) - p: 0.0035 # phosphorus (mmol P/m^2) - coupling: - O3c: O3/c # dissolved inorganic carbon (mmol/m^3) - N1p: N1/p # phosphate (mmol P/m^3) - N3n: N3/n # nitrate (mmol N/m^3) - N4n: N4/n # ammonium (mmol N/m^3) - Q6: - long_name: benthic particulate organic matter - model: ersem/benthic_base - parameters: - composition: cnpsf # elemental composition - remin: 0.05 # remineralisation rate (1/d), default = 0.0 - pN3: 0.9 # nitrate fraction of remineralised nitrogen (remainder is ammonium) (-), default = 0.0 - resuspension: true # enable resuspension, default = false - vel_crit: 0.02 # critical shear velocity for resuspension (m/s), default = 0.02 - c0: 0.001 # background carbon concentration (mg C/m^2), default = 0.0 - initialization: - c: 3052.0 # carbon (mg C/m^2) - n: 3.5 # nitrogen (mmol N/m^2) - p: 0.5 # phosphorus (mmol P/m^2) - s: 149.0 # silicate (mmol Si/m^2) -# pen_depth_c: 0.0173 # penetration depth of carbon (m) -# pen_depth_n: 0.02 # penetration depth of nitrogen (m) -# pen_depth_p: 0.025 # penetration depth of phosphorus (m) -# pen_depth_s: 0.0313 # penetration depth of silicate (m) - coupling: - RP: R6 - O3c: O3/c # dissolved inorganic carbon (mmol/m^3) - N1p: N1/p # phosphate (mmol P/m^3) - N3n: N3/n # nitrate (mmol N/m^3) - N4n: N4/n # ammonium (mmol N/m^3) - N5s: N5/s # silicate (mmol Si/m^3) - Q7: - long_name: benthic refractory matter - model: ersem/benthic_base - parameters: - composition: cnp # elemental composition - remin: 0.01 # remineralisation rate (1/d), default = 0.0 - pN3: 0.9 # nitrate fraction of remineralised nitrogen (remainder is ammonium) (-), default = 0.0 - c0: 0.001 # background carbon concentration (mg C/m^2), default = 0.0 - initialization: - c: 30520.0 # carbon (mg C/m^2) - n: 80.0 # nitrogen (mmol N/m^2) - p: 8.0 # phosphorus (mmol P/m^2) - coupling: - O3c: O3/c # dissolved inorganic carbon (mmol/m^3) - N1p: N1/p # phosphate (mmol P/m^3) - N3n: N3/n # nitrate (mmol N/m^3) - N4n: N4/n # ammonium (mmol N/m^3) - B1: - long_name: bacteria - model: ersem/bacteria_docdyn - parameters: - iswBlim: 2 # nutrient limitation (1: minimum of inorganic and organic availability, 2: additive availability) - q10: 2.0 # Q_10 temperature coefficient (-) - chdo: 0.31 # Michaelis-Menten constant for oxygen limitation (-) - chn: 0.5 # Michaelis-Menten constant for nitrate limitation (mmol N/m^3) - chp: 0.1 # Michaelis-Menten constant for phosphate limitation (mmol P/m^3) - sd: 0.05 # specific mortality at reference temperature (1/d) - sum: 2.2 # maximum specific uptake at reference temperature (1/d) - pu: 0.6 # efficiency at high oxygen levels (-) - puo: 0.2 # efficiency at low oxygen levels (-) - srs: 0.1 # specific rest respiration at reference temperature (1/d) - sR1: 1.0 # maximum turn-over rate of DOM (1/d), default = 1.0 - qpc: 0.0019 # maximum phosphorus to carbon ratio (mmol P/mg C) - qnc: 0.0167 # maximum nitrogen to carbon ratio (mmol N/mg C) - ur_O2: 0.1 # oxygen consumed per carbon respired (mmol O_2/mg C) - sR1N1: 0.0 # mineralisation rate of labile dissolved organic phosphorus (1/d) - sR1N4: 0.0 # mineralisation rate of labile dissolved organic nitrogen (1/d) - fsink: 7e-05 # scavenging rate for iron (1/d) - c0: 0.01 # background carbon concentration (mg C/m^3) - nRP: 3 # number of substrates, default = 0 - sRP1R1: 0.01 # remineralisation of substrate 1 to DOM (1/d) - sRP2R1: 0.0025 # remineralisation of substrate 2 to DOM (1/d) - sRP3R1: 0.001 # remineralisation of substrate 3 to DOM (1/d) - rR2: 0.0075 # fraction of semi-labile DOC available to bacteria (-) - rR3: 0.0025 # fraction of semi-refractory DOC available to bacteria (-) - rT1: 0.2 #0.2 #0.02 #0.002 # fraction of T1 available for bacteria - rT2: 0.6 #0.6 #0.6 #0.06 #0.006 # fraction of T2 available for bacteria - frR3: 0.3 # fraction of activity respiration converted to semi-refractory DOC (-) - initialization: - c: 15.7 # carbon (mg C/m^3) - n: 0.26 # nitrogen (mmol N/m^3) - p: 0.029 # phosphorus (mmol P/m^3) - coupling: - RP1: R4 - RP2: R6 - RP3: R8 - N1p: N1/p # phosphate (mmol P/m^3) - N4n: N4/n # ammonium (mmol N/m^3) - R1c: R1/c # labile dissolved organic carbon (mg C/m^3) - R1p: R1/p # labile dissolved organic phosphorus (mmol P/m^3) - R1n: R1/n # labile dissolved organic nitrogen (mmol N/m^3) - R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) - R3c: R3/c - T1: T1 # photolabile terrigenous dissolved organic carbon (mg C/m^3) -# T1p: T1/p # photolabile terrigenous dissolved organic phosphorus (mmol P/m^3) -# T1n: T1/n # photolabile terrigenous dissolved organic nitrogen (mmol N/m^3) - T2: T2 # non-photolabile terrigenous dissolved organic carbon (mg C/m^3) -# T2p: T2/p # non-photolabile terrigenous dissolved organic phosphorus (mmol P/m^3) -# T2n: T2/n # non-photolabile terrigenous dissolved organic nitrogen (mmol N/m^3) - O3c: O3/c # carbon dioxide (mmol C/m^3) - O2o: O2/o # oxygen (mmol O_2/m^3) - pel_nit: - long_name: pelagic nitrification - model: ersem/nitrification - parameters: - q10: 2.0 # Q_10 temperature coefficient (-) - ISWph: 1 # pH impact on nitrification (0: off, 1: on) - sN4N3: 0.5 # specific nitrification rate (1/d) - chN3o: 2700.0 # Michaelis-Menten constant for cubic oxygen dependence of nitrification ((mmol O_2/m^3)^3) - chN4n: 0.5 # Michaelis-Menten constant for cubic ammonium dependence of nitrification ((mmol N/m^3)^3), default = 0.0 - coupling: - N3n: N3/n # nitrate (mmol N/m^3) - N4n: N4/n # ammonium (mmol N/m^3) - O2o: O2/o # oxygen (mmol O_2/m^3) - P1: - long_name: diatoms - model: ersem/primary_producer - parameters: - sum: 1.375 # maximum specific productivity at reference temperature (1/d) - q10: 2.0 # Q_10 temperature coefficient (-) - srs: 0.04 # specific rest respiration at reference temperature (1/d) - pu_ea: 0.2 # excreted fraction of primary production (-) - pu_ra: 0.2 # respired fraction of primary production (-) - qnlc: 0.0042 # minimum nitrogen to carbon ratio (mmol N/mg C) - qplc: 0.0001 # minimum phosphorus to carbon ratio (mmol P/mg C) - xqcp: 1.0 # threshold for phosphorus limitation (relative to Redfield ratio) (-) - xqcn: 1.0 # threshold for nitrogen limitation (relative to Redfield ratio) (-) - xqp: 2.0 # maximum phosphorus to carbon ratio (relative to Redfield ratio) (-) - xqn: 1.075 # maximum nitrogen to carbon ratio (relative to Redfield ratio) (-) - qun3: 0.0025 # nitrate affinity (m^3/mg C/d) - qun4: 0.0025 # ammonium affinity (m^3/mg C/d) - qurp: 0.003 # phosphate affinity (m^3/mg C/d) - snplux: 1.0 # specific tendency of luxury uptake of nutrients towards maximum quota (1/d), default = 1.0 - use_Si: true # use silicate, default = false - qsc: 0.0118 # maximum silicate to carbon ratio (mmol Si/mg C) - chs: 0.2 # Michaelis-Menten constant for silicate limitation (mmol/m^3) - sdo: 0.05 # 1.1 of minimal specific lysis rate (1/d) - alpha: 4.0 # initial slope of PI-curve (mg C m^2/mg Chl/W/d) - beta: 0.07 # photoinhibition parameter (mg C m^2/mg Chl/W/d) - phim: 0.06 # maximum effective chlorophyll to carbon photosynthesis ratio (mg Chl/mg C) - Limnut: 1 # nitrogen-phosphorus colimitation formulation (0: geometric mean, 1: minimum, 2: harmonic mean) - docdyn: true # use dynamic ratio of labile to semi-labile DOM production, default = false - uB1c_O2: 0.11 # oxygen produced per unit of carbon fixed (mmol O_2/mg C) - urB1_O2: 0.1 # oxygen consumed per unit of carbon respired (mmol O_2/mg C) - iopABS: 0.007 # specific shortwave absorption (m^2/mg Chl), default = 0.008 - iopBBS: 0.00048 # specific shortwave backscatter (m^2/mg Chl), default = 0.003 - c0: 0.0001 # background carbon concentration (mg C/m^3), default = 0.0 - resm: 5.0 # maximum nutrient-limitation-induced sinking velocity (m/d), default = 0.0 - esni: 0.7 # level of nutrient limitation below which sinking commences (-) - cenh: false # enable atmospheric CO2 influence on photosynthesis, default = false - ndeposition: 3 # number of target pools for sedimentation, default = 1 - qxc2: 0.2 # fraction of carbon sinking into deposition target 2 (-) - qxc3: 0.005 # fraction of carbon sinking into deposition target 3 (-) - qxn2: 0.2 # fraction of nitrogen sinking into deposition target 2 (-) - qxn3: 0.005 # fraction of nitrogen sinking into deposition target 3 (-) - qxp2: 0.24 # fraction of phosphorus sinking into deposition target 2 (-) - qxp3: 0.003 # fraction of phosphorus sinking into deposition target 3 (-) - qxs2: 0.0 # fraction of silicate sinking into deposition target 2 (-) - qxs3: 0.0 # fraction of silicate sinking into deposition target 3 (-) - initialization: - c: 8.0 # carbon (mg C/m^3) - n: 0.1114 # nitrogen (mmol N/m^3) - p: 0.009 # phosphorus (mmol P/m^3) - s: 0.128 # silicate (mmol Si/m^3) - Chl: 0.4 # chlorophyll a (mg/m^3) - coupling: - RP: R6 - deposition_target1: Q6 - deposition_target2: Q1 - deposition_target3: Q7 - N1p: N1/p # phosphate (mmol P/m^3) - N3n: N3/n # nitrate (mmol N/m^3) - N4n: N4/n # ammonium (mmol N/m^3) - N5s: N5/s # silicate (mmol Si/m^3) - R1c: R1/c # dissolved organic carbon (mg C/m^3) - R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) - R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) - R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) - O2o: O2/o # oxygen (mmol O_2/m^3) - O3c: O3/c # carbon dioxide (mmol C/m^3) - P2: - long_name: nanophytoplankton - model: ersem/primary_producer - parameters: - sum: 1.625 # maximum specific productivity at reference temperature (1/d) - q10: 2.0 # Q_10 temperature coefficient (-) - srs: 0.04 # specific rest respiration at reference temperature (1/d) - pu_ea: 0.2 # excreted fraction of primary production (-) - pu_ra: 0.2 # respired fraction of primary production (-) - qnlc: 0.005 # minimum nitrogen to carbon ratio (mmol N/mg C) - qplc: 0.000225 # minimum phosphorus to carbon ratio (mmol P/mg C) - xqcp: 1.0 # threshold for phosphorus limitation (relative to Redfield ratio) (-) - xqcn: 1.0 # threshold for nitrogen limitation (relative to Redfield ratio) (-) - xqp: 2.0 # maximum phosphorus to carbon ratio (relative to Redfield ratio) (-) - xqn: 1.075 # maximum nitrogen to carbon ratio (relative to Redfield ratio) (-) - qun3: 0.004 # nitrate affinity (m^3/mg C/d) - qun4: 0.004 # ammonium affinity (m^3/mg C/d) - qurp: 0.004 # phosphate affinity (m^3/mg C/d) - snplux: 1.0 # specific tendency of luxury uptake of nutrients towards maximum quota (1/d), default = 1.0 - use_Si: false # use silicate, default = false - sdo: 0.05 # 1.1 of minimal specific lysis rate (1/d) - alpha: 5.0 # initial slope of PI-curve (mg C m^2/mg Chl/W/d) - beta: 0.1 # photoinhibition parameter (mg C m^2/mg Chl/W/d) - phim: 0.025 # maximum effective chlorophyll to carbon photosynthesis ratio (mg Chl/mg C) - Limnut: 1 # nitrogen-phosphorus colimitation formulation (0: geometric mean, 1: minimum, 2: harmonic mean) - docdyn: true # use dynamic ratio of labile to semi-labile DOM production, default = false - uB1c_O2: 0.11 # oxygen produced per unit of carbon fixed (mmol O_2/mg C) - urB1_O2: 0.1 # oxygen consumed per unit of carbon respired (mmol O_2/mg C) - iopABS: 0.0041 # specific shortwave absorption (m^2/mg Chl), default = 0.008 - iopBBS: 0.003 # specific shortwave backscatter (m^2/mg Chl), default = 0.003 - c0: 0.001 # background carbon concentration (mg C/m^3), default = 0.0 - calcify: false # calcify, default = false - resm: 0.0 # maximum nutrient-limitation-induced sinking velocity (m/d), default = 0.0 - esni: 0.7 # level of nutrient limitation below which sinking commences (-) - cenh: false # enable atmospheric CO2 influence on photosynthesis, default = false - ndeposition: 3 # number of target pools for sedimentation, default = 1 - qxc2: 0.5 # fraction of carbon sinking into deposition target 2 (-) - qxc3: 0.05 # fraction of carbon sinking into deposition target 3 (-) - qxn2: 0.5 # fraction of nitrogen sinking into deposition target 2 (-) - qxn3: 0.05 # fraction of nitrogen sinking into deposition target 3 (-) - qxp2: 0.6 # fraction of phosphorus sinking into deposition target 2 (-) - qxp3: 0.03 # fraction of phosphorus sinking into deposition target 3 (-) - initialization: - c: 5.9 # carbon (mg C/m^3) - n: 0.0926 # nitrogen (mmol N/m^3) - p: 0.0036 # phosphorus (mmol P/m^3) - Chl: 0.3 # chlorophyll a (mg/m^3) - coupling: - RP: R4 - deposition_target1: Q6 - deposition_target2: Q1 - deposition_target3: Q7 - N1p: N1/p # phosphate (mmol P/m^3) - N3n: N3/n # nitrate (mmol N/m^3) - N4n: N4/n # ammonium (mmol N/m^3) - R1c: R1/c # dissolved organic carbon (mg C/m^3) - R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) - R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) - R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) - O2o: O2/o # oxygen (mmol O_2/m^3) - O3c: O3/c # carbon dioxide (mmol C/m^3) -# RainR: L2/RainR # rain ratio (PIC : POC) (-) -# L2c: L2/c # free calcite (mg C/m^3) - P3: - long_name: picophytoplankton - model: ersem/primary_producer - parameters: - sum: 2.0 # maximum specific productivity at reference temperature (1/d) - q10: 2.0 # Q_10 temperature coefficient (-) - srs: 0.045 # specific rest respiration at reference temperature (1/d) - pu_ea: 0.2 # excreted fraction of primary production (-) - pu_ra: 0.2 # respired fraction of primary production (-) - qnlc: 0.006 # minimum nitrogen to carbon ratio (mmol N/mg C) - qplc: 0.00035 # minimum phosphorus to carbon ratio (mmol P/mg C) - xqcp: 1.0 # threshold for phosphorus limitation (relative to Redfield ratio) (-) - xqcn: 1.0 # threshold for nitrogen limitation (relative to Redfield ratio) (-) - xqp: 1.5 # maximum phosphorus to carbon ratio (relative to Redfield ratio) (-) - xqn: 1.05 # maximum nitrogen to carbon ratio (relative to Redfield ratio) (-) - qun3: 0.006 # nitrate affinity (m^3/mg C/d) - qun4: 0.007 # ammonium affinity (m^3/mg C/d) - qurp: 0.006 # phosphate affinity (m^3/mg C/d) - snplux: 1.0 # specific tendency of luxury uptake of nutrients towards maximum quota (1/d), default = 1.0 - use_Si: false # use silicate, default = false - sdo: 0.055 # 1.1 of minimal specific lysis rate (1/d) - alpha: 6.0 # initial slope of PI-curve (mg C m^2/mg Chl/W/d) - beta: 0.12 # photoinhibition parameter (mg C m^2/mg Chl/W/d) - phim: 0.015 # maximum effective chlorophyll to carbon photosynthesis ratio (mg Chl/mg C) - Limnut: 1 # nitrogen-phosphorus colimitation formulation (0: geometric mean, 1: minimum, 2: harmonic mean) - docdyn: true # use dynamic ratio of labile to semi-labile DOM production, default = false - uB1c_O2: 0.11 # oxygen produced per unit of carbon fixed (mmol O_2/mg C) - urB1_O2: 0.1 # oxygen consumed per unit of carbon respired (mmol O_2/mg C) - iopABS: 0.023 # specific shortwave absorption (m^2/mg Chl), default = 0.008 - iopBBS: 0.003 # specific shortwave backscatter (m^2/mg Chl), default = 0.003 - c0: 0.0088 # background carbon concentration (mg C/m^3), default = 0.0 - resm: 0.0 # maximum nutrient-limitation-induced sinking velocity (m/d), default = 0.0 - esni: 0.7 # level of nutrient limitation below which sinking commences (-) - cenh: false # enable atmospheric CO2 influence on photosynthesis, default = false - ndeposition: 3 # number of target pools for sedimentation, default = 1 - qxc2: 0.5 # fraction of carbon sinking into deposition target 2 (-) - qxc3: 0.05 # fraction of carbon sinking into deposition target 3 (-) - qxn2: 0.5 # fraction of nitrogen sinking into deposition target 2 (-) - qxn3: 0.05 # fraction of nitrogen sinking into deposition target 3 (-) - qxp2: 0.6 # fraction of phosphorus sinking into deposition target 2 (-) - qxp3: 0.03 # fraction of phosphorus sinking into deposition target 3 (-) - initialization: - c: 5.9 # carbon (mg C/m^3) - n: 0.0926 # nitrogen (mmol N/m^3) - p: 0.0036 # phosphorus (mmol P/m^3) - Chl: 0.3 # chlorophyll a (mg/m^3) - coupling: - RP: R4 - deposition_target1: Q6 - deposition_target2: Q1 - deposition_target3: Q7 - N1p: N1/p # phosphate (mmol P/m^3) - N3n: N3/n # nitrate (mmol N/m^3) - N4n: N4/n # ammonium (mmol N/m^3) - R1c: R1/c # dissolved organic carbon (mg C/m^3) - R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) - R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) - R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) - O2o: O2/o # oxygen (mmol O_2/m^3) - O3c: O3/c # carbon dioxide (mmol C/m^3) - P4: - long_name: microphytoplankton - model: ersem/primary_producer - parameters: - sum: 1.125 # maximum specific productivity at reference temperature (1/d) - q10: 2.0 # Q_10 temperature coefficient (-) - srs: 0.035 # specific rest respiration at reference temperature (1/d) - pu_ea: 0.2 # excreted fraction of primary production (-) - pu_ra: 0.2 # respired fraction of primary production (-) - qnlc: 0.0042 # minimum nitrogen to carbon ratio (mmol N/mg C) - qplc: 0.0001 # minimum phosphorus to carbon ratio (mmol P/mg C) - xqcp: 1.0 # threshold for phosphorus limitation (relative to Redfield ratio) (-) - xqcn: 1.0 # threshold for nitrogen limitation (relative to Redfield ratio) (-) - xqp: 2.7 # maximum phosphorus to carbon ratio (relative to Redfield ratio) (-) - xqn: 1.1 # maximum nitrogen to carbon ratio (relative to Redfield ratio) (-) - qun3: 0.002 # nitrate affinity (m^3/mg C/d) - qun4: 0.002 # ammonium affinity (m^3/mg C/d) - qurp: 0.002 # phosphate affinity (m^3/mg C/d) - snplux: 1.0 # specific tendency of luxury uptake of nutrients towards maximum quota (1/d), default = 1.0 - use_Si: false # use silicate, default = false - sdo: 0.045 # 1.1 of minimal specific lysis rate (1/d) - alpha: 3.0 # initial slope of PI-curve (mg C m^2/mg Chl/W/d) - beta: 0.06 # photoinhibition parameter (mg C m^2/mg Chl/W/d) - phim: 0.045 # maximum effective chlorophyll to carbon photosynthesis ratio (mg Chl/mg C) - Limnut: 1 # nitrogen-phosphorus colimitation formulation (0: geometric mean, 1: minimum, 2: harmonic mean) - docdyn: true # use dynamic ratio of labile to semi-labile DOM production, default = false - uB1c_O2: 0.11 # oxygen produced per unit of carbon fixed (mmol O_2/mg C) - urB1_O2: 0.1 # oxygen consumed per unit of carbon respired (mmol O_2/mg C) - iopABS: 0.008 # specific shortwave absorption (m^2/mg Chl), default = 0.008 - iopBBS: 0.00048 # specific shortwave backscatter (m^2/mg Chl), default = 0.003 - c0: 0.0001 # background carbon concentration (mg C/m^3), default = 0.0 - resm: 5.0 # maximum nutrient-limitation-induced sinking velocity (m/d), default = 0.0 - esni: 0.7 # level of nutrient limitation below which sinking commences (-) - cenh: false # enable atmospheric CO2 influence on photosynthesis, default = false - ndeposition: 3 # number of target pools for sedimentation, default = 1 - qxc2: 0.5 # fraction of carbon sinking into deposition target 2 (-) - qxc3: 0.05 # fraction of carbon sinking into deposition target 3 (-) - qxn2: 0.5 # fraction of nitrogen sinking into deposition target 2 (-) - qxn3: 0.05 # fraction of nitrogen sinking into deposition target 3 (-) - qxp2: 0.6 # fraction of phosphorus sinking into deposition target 2 (-) - qxp3: 0.03 # fraction of phosphorus sinking into deposition target 3 (-) - initialization: - c: 5.9 # carbon (mg C/m^3) - n: 0.0926 # nitrogen (mmol N/m^3) - p: 0.0036 # phosphorus (mmol P/m^3) - Chl: 0.3 # chlorophyll a (mg/m^3) - coupling: - RP: R6 - deposition_target1: Q6 - deposition_target2: Q1 - deposition_target3: Q7 - N1p: N1/p # phosphate (mmol P/m^3) - N3n: N3/n # nitrate (mmol N/m^3) - N4n: N4/n # ammonium (mmol N/m^3) - R1c: R1/c # dissolved organic carbon (mg C/m^3) - R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) - R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) - R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) - O2o: O2/o # oxygen (mmol O_2/m^3) - O3c: O3/c # carbon dioxide (mmol C/m^3) - Z4: - long_name: mesozooplankton - model: ersem/mesozooplankton - parameters: - q10: 2.0 # Q_10 temperature coefficient (-) - minfood: 12.0 # Michaelis-Menten constant to perceive food (mg C/m^3) - chuc: 36.0 # Michaelis-Menten constant for food uptake (mg C/m^3) - sum: 1.0 # maximum specific uptake at reference temperature (1/d) - pu: 0.6 # assimilation efficiency (-) - pu_ea: 0.5 # fraction of unassimilated prey that is excreted (not respired) (-) - pu_eaR: 0.9 # fraction of unassimilated detritus that is excreted (not respired) (-) - pe_R1: 0.5 # dissolved fraction of excreted/dying matter (-) - srs: 0.015 # specific rest respiration at reference temperature (1/d) - sd: 0.05 # basal mortality (1/d) - sdo: 0.2 # maximum mortality due to oxygen limitation (1/d) - chro: 7.81 # Michaelis-Menten constant for oxygen limitation (-) - qpc: 0.000786 # phosphorus to carbon ratio (mmol P/mg C) - qnc: 0.0126 # nitrogen to carbon ratio (mmol N/mg C) - Minprey: 300.0 # food threshold for overwintering state (mg C/m^2) - repw: 0.0025 # specific overwintering respiration (1/d) - mort: 0.0025 # specific overwintering mortality (1/d) - R1R2: 1.0 # labile fraction of produced dissolved organic carbon (-) - xR1p: 1.2 # transfer of phosphorus to DOM, relative to POM (-), default = 0.0 - xR1n: 1.0 # transfer of nitrogen to DOM, relative to POM (-), default = 0.0 - urB1_O2: 0.1 # oxygen consumed per carbon respired (mmol O_2/mg C) - gutdiss: 0.5 # fraction of prey calcite that dissolves after ingestion (-) - c0: 0.0033 # background concentration (mg C/m^3) - nprey: 9 # number of prey types, default = 0 - suprey1: 0.15 # relative affinity for prey type 1 (-) - suprey2: 0.05 # relative affinity for prey type 2 (-) - suprey3: 0.0 # relative affinity for prey type 3 (-) - suprey4: 0.15 # relative affinity for prey type 4 (-) - suprey5: 0.25 # relative affinity for prey type 5 (-) - suprey6: 0.25 # relative affinity for prey type 6 (-) - suprey7: 0.05 # relative affinity for prey type 7 (-) - suprey8: 0.0 # relative affinity for prey type 8 (-) - suprey9: 0.1 # relative affinity for prey type 9 (-) - prey9ispom: true # prey type 9 is detritus, default = false - initialization: - c: 1.2 # carbon (mg C/m^3) - coupling: - prey1: P1 - prey2: P2 - prey3: P3 - prey4: P4 - prey5: Z4 - prey6: Z5 - prey7: Z6 - prey8: B1 - prey9: R6 - RP: R8 - N1p: N1/p # phosphate (mmol P/m^3) - N4n: N4/n # ammonium (mmol N/m^3) - R1c: R1/c # dissolved organic carbon (mg C/m^3) - R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) - R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) - R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) - O2o: O2/o # oxygen source (mmol O_2/m^3) - O3c: O3/c # carbon dioxide sink (mmol C/m^3) - L2c: L2/c # calcite (mg C/m^3) - Z5: - long_name: microzooplankton - model: ersem/microzooplankton - parameters: - q10: 2.0 # Q_10 temperature coefficient (-) - minfood: 12.0 # Michaelis-Menten constant to perceive food (mg C/m^3) - chuc: 32.0 # Michaelis-Menten constant for food uptake (mg C/m^3) - sum: 1.25 # maximum specific uptake at reference temperature (1/d) - pu: 0.5 # assimilation efficiency (-) - pu_ea: 0.5 # fraction of unassimilated prey that is excreted (not respired) (-) - pe_R1: 0.5 # dissolved fraction of excreted/dying matter (-) - srs: 0.02 # specific rest respiration at reference temperature (1/d) - sd: 0.05 # basal mortality (1/d) - sdo: 0.25 # maximum mortality due to oxygen limitation (1/d) - chro: 7.81 # Michaelis-Menten constant for oxygen limitation (-) - qpc: 0.001 # maximum phosphorus to carbon ratio (mmol P/mg C) - qnc: 0.0167 # maximum nitrogen to carbon ratio (mmol N/mg C) - stempp: 0.5 # specific excretion rate of excess phosphorus (1/d) - stempn: 0.5 # specific excretion rate of excess nitrogen (1/d) - R1R2: 1.0 # labile fraction of produced dissolved organic carbon (-) - xR1p: 1.2 # transfer of phosphorus to DOM, relative to POM (-), default = 1.0 - xR1n: 1.0 # transfer of nitrogen to DOM, relative to POM (-), default = 1.0 - urB1_O2: 0.1 # oxygen consumed per carbon respired (mmol O_2/mg C) - gutdiss: 0.5 # fraction of prey calcite that dissolves after ingestion (-) - c0: 0.0033 # background concentration (mg C/m^3) - nprey: 7 # number of prey types, default = 0 - suprey1: 0.1 # relative affinity for prey type 1 (-) - suprey2: 0.15 # relative affinity for prey type 2 (-) - suprey3: 0.15 # relative affinity for prey type 3 (-) - suprey4: 0.15 # relative affinity for prey type 4 (-) - suprey5: 0.1 # relative affinity for prey type 5 (-) - suprey6: 0.15 # relative affinity for prey type 6 (-) - suprey7: 0.2 # relative affinity for prey type 7 (-) - initialization: - c: 7.2 # carbon (mg C/m^3) - n: 0.12 # nitrogen (mmol N/m^3) - p: 0.0113 # phosphorus (mmol P/m^3) - coupling: - prey1: B1 - prey2: P1 - prey3: P2 - prey4: P3 - prey5: P4 - prey6: Z5 - prey7: Z6 - RP: R6 - N1p: N1/p # phosphate (mmol P/m^3) - N4n: N4/n # ammonium (mmol N/m^3) - R1c: R1/c # dissolved organic carbon (mg C/m^3) - R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) - R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) - R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) - O2o: O2/o # oxygen source (mmol O_2/m^3) - O3c: O3/c # carbon dioxide sink (mmol C/m^3) - L2c: L2/c # calcite (mg C/m^3) - Z6: - long_name: nanoflagellates - model: ersem/microzooplankton - parameters: - q10: 2.0 # Q_10 temperature coefficient (-) - minfood: 12.0 # Michaelis-Menten constant to perceive food (mg C/m^3) - chuc: 28.0 # Michaelis-Menten constant for food uptake (mg C/m^3) - sum: 1.5 # maximum specific uptake at reference temperature (1/d) - pu: 0.4 # assimilation efficiency (-) - pu_ea: 0.5 # fraction of unassimilated prey that is excreted (not respired) (-) - pe_R1: 0.5 # dissolved fraction of excreted/dying matter (-) - srs: 0.025 # specific rest respiration at reference temperature (1/d) - sd: 0.05 # basal mortality (1/d) - sdo: 0.3 # maximum mortality due to oxygen limitation (1/d) - chro: 7.81 # Michaelis-Menten constant for oxygen limitation (-) - qpc: 0.001 # maximum phosphorus to carbon ratio (mmol P/mg C) - qnc: 0.0167 # maximum nitrogen to carbon ratio (mmol N/mg C) - stempp: 0.5 # specific excretion rate of excess phosphorus (1/d) - stempn: 0.5 # specific excretion rate of excess nitrogen (1/d) - R1R2: 1.0 # labile fraction of produced dissolved organic carbon (-) - xR1p: 1.2 # transfer of phosphorus to DOM, relative to POM (-), default = 1.0 - xR1n: 1.0 # transfer of nitrogen to DOM, relative to POM (-), default = 1.0 - urB1_O2: 0.1 # oxygen consumed per carbon respired (mmol O_2/mg C) - gutdiss: 0.5 # fraction of prey calcite that dissolves after ingestion (-) - c0: 0.0033 # background concentration (mg C/m^3) - nprey: 4 # number of prey types, default = 0 - suprey1: 0.45 # relative affinity for prey type 1 (-) - suprey2: 0.15 # relative affinity for prey type 2 (-) - suprey3: 0.25 # relative affinity for prey type 3 (-) - suprey4: 0.15 # relative affinity for prey type 4 (-) - initialization: - c: 2.421 # carbon (mg C/m^3) - n: 0.0505 # nitrogen (mmol N/m^3) - p: 0.047 # phosphorus (mmol P/m^3) - coupling: - prey1: B1 - prey2: P2 - prey3: P3 - prey4: Z6 - RP: R4 - N1p: N1/p # phosphate (mmol P/m^3) - N4n: N4/n # ammonium (mmol N/m^3) - R1c: R1/c # dissolved organic carbon (mg C/m^3) - R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) - R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) - R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) - RPs: R6/s # particulate organic silicate (mmol Si/m^3) - O2o: O2/o # oxygen source (mmol O_2/m^3) - O3c: O3/c # carbon dioxide sink (mmol C/m^3) - L2c: L2/c # calcite (mg C/m^3) - L2: - long_name: calcite - model: ersem/calcification - parameters: - iswcal: 1 # calcification/dissolution dependence on calcite saturation (1: power law, 2: hyperbolic) - ncalc: 0.81 # power of the calcification law (Ridgwell et al. 2007, mineral calcite) (-) - ndiss: 2.22 # power of the dissolution law (Keir 1980) (-) - Rain0: 0.6 # maximum rain ratio from PISCES (-) - sedL2: 10.0 # sinking velocity (m/d) - sL2O3: 0.03 # maximum specific dissolution rate (1/d), default = 1.0 - c0: 1e-05 # background concentration (mg C/m^3), default = 0.0 - ndeposition: 1 # number of target pools for sedimentation, default = 1 - initialization: - c: 0.05 # carbon (mg C/m^3) - coupling: - deposition_target1: bL2 - om_cal: O3/Om_cal # calcite saturation (-) - O3c: O3/c # total dissolved inorganic carbon (mmol C/m^3) - bL2: - long_name: benthic calcite - model: ersem/benthic_base - parameters: - composition: c # elemental composition - remin: 0.05 # remineralisation rate (1/d), default = 0.0 - c0: 1e-05 # background carbon concentration (mg C/m^2), default = 0.0 - initialization: - c: 0.05 # carbon (mg C/m^2) - coupling: - O3c: O3/c # dissolved inorganic carbon (mmol/m^3) - diff --git a/testcases/fabm-nemo-ages-tdoc.yaml b/testcases/fabm-nemo-ages-tdoc.yaml deleted file mode 100644 index d5aad7f..0000000 --- a/testcases/fabm-nemo-ages-tdoc.yaml +++ /dev/null @@ -1,1953 +0,0 @@ -check_conservation: false -require_initialization: true -instances: - - zenithAngle: - model: ersem/zenith_angle - light: - model: ersem/light_iop_ady - parameters: - a0w: 0.03 # absorption coefficient of clear water (1/m), default = 0.036 - b0w: 0.0015 # backscatter coefficient of clear water (1/m), default = 0.0016 - pEIR_eow: 0.5 # photosynthetically active fraction of shortwave radiation (-), default = 0.5 - relax: 0.143 # relaxation towards satellite gelbstoff absorption (1/d), default=0.033 - initialization: - ADY: 0.05 - N1: - long_name: phosphate - model: ersem/pelagic_base - parameters: - composition: p # elemental composition - c0: 0.001 # background carbon concentration (mg C/m^3), default = 0.0 - initialization: - p: 0.4 # phosphorus (mmol P/m^3) - N3: - long_name: nitrate - model: ersem/pelagic_base - parameters: - composition: n # elemental composition - c0: 0.001 # background carbon concentration (mg C/m^3), default = 0.0 - initialization: - n: 8.0 # nitrogen (mmol N/m^3) - N4: - long_name: ammonium - model: ersem/pelagic_base - parameters: - composition: n # elemental composition - c0: 0.001 # background carbon concentration (mg C/m^3), default = 0.0 - initialization: - n: 0.1 # nitrogen (mmol N/m^3) - N5: - long_name: silicate - model: ersem/pelagic_base - parameters: - composition: s # elemental composition - s0: 0.0003 # background silicon concentration (mmol Si/m^3), default = 0.0 - initialization: - s: 4.5 # silicate (mmol Si/m^3) - O2: - long_name: oxygen - model: ersem/oxygen - parameters: - ISWO2: 2 # saturation formulation (1: legacy ERSEM, 2: Weiss 1970) - initialization: - o: 300.0 # oxygen (mmol O_2/m^3) - O3: - long_name: carbonate - model: ersem/carbonate - parameters: - iswCO2: 1 # carbonate system diagnostics (0: off, 1: on), default = 1 - iswASFLUX: 1 # air-sea CO2 exchange (0: none, 1: Nightingale and Liss, 2: Wanninkhof 1992 without chemical enhancement, 3: Wanninkhof 1992 with chemical enhancement, 4: Wanninkhof 1999), default = 1 - iswtalk: 2 # alkalinity formulation (1-4: from salinity and temperature, 5: dynamic alkalinity), default = 5 - iswbioalk: 1 - initialization: - c: 2130.0 # total dissolved inorganic carbon (mmol C/m^3) - R1: - long_name: labile dissolved organic matter - model: ersem/pelagic_base - parameters: - composition: cnp # elemental composition - c0: 0.0034 # background carbon concentration (mg C/m^3), default = 0.0 - initialization: - c: 10.0 # carbon (mg C/m^3) - n: 0.14 # nitrogen (mmol N/m^3) - p: 0.01 # phosphorus (mmol P/m^3) - R2: - long_name: semi-labile dissolved organic matter - model: ersem/pelagic_base - parameters: - composition: c # elemental composition - c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 - initialization: - c: 12.0 # carbon (mg C/m^3) - R3: - long_name: semi-refractory dissolved organic matter - model: ersem/pelagic_base - parameters: - composition: c # elemental composition - c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 - initialization: - c: 12.0 # carbon (mg C/m^3) - R4: - long_name: small-size pom - model: ersem/pelagic_base - parameters: - composition: cnpf # elemental composition - rm: 1.0 # sinking velocity (m/d), default = 0.0 - ndeposition: 2 # number of target pools where the sedimentation flux goes (-) - qxc2: 0.1 - qxn2: 0.1 - qxp2: 0.06 - c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 - initialization: - c: 7.2 # carbon (mg C/m^3) - n: 0.1 # nitrogen (mmol N/m^3) - p: 0.007 # phosphorus (mmol P/m^3) - coupling: - deposition_target1: Q6/surface - deposition_target2: Q7/surface - R6: - long_name: medium-size pom - model: ersem/pelagic_base - parameters: - composition: cnpsf # elemental composition - rm: 5.0 # sinking velocity (m/d), default = 0.0 - ndeposition: 2 # number of target pools where the sedimentation flux goes (-) - qxc2: 0.1 - qxn2: 0.1 - qxp2: 0.06 - qxs2: 0.0 - c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 - initialization: - c: 17.0 # carbon (mg C/m^3) - n: 0.24 # nitrogen (mmol N/m^3) - p: 0.02 # phosphorus (mmol P/m^3) - s: 0.1 # silicate (mmol Si/m^3) - coupling: - deposition_target1: Q6/surface - deposition_target2: Q7/surface - R8: - long_name: large-size pom - model: ersem/pelagic_base - parameters: - composition: cnps # elemental composition - rm: 10.0 # sinking velocity (m/d), default = 0.0 - ndeposition: 2 # number of target pools where the sedimentation flux goes (-) - qxc2: 0.1 - qxn2: 0.1 - qxp2: 0.06 - qxs2: 0.0 - c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 - initialization: - c: 0.17 # carbon (mg C/m^3) - n: 0.0024 # nitrogen (mmol N/m^3) - p: 0.0002 # phosphorus (mmol P/m^3) - s: 0.001 # silicate (mmol Si/m^3) - coupling: - deposition_target1: Q6/surface - deposition_target2: Q7/surface - Q1: - long_name: benthic dissolved organic matter - model: ersem/benthic_base - parameters: - composition: cnp # elemental composition - c0: 0.001 # background carbon concentration (mg C/m^2) - initialization: - c: 18.9 # carbon (mg C/m^2) - n: 0.6 # nitrogen (mmol N/m^2) - p: 0.0035 # phosphorus (mmol P/m^2) - Q6: - long_name: benthic particulate organic matter - model: ersem/benthic_column_particulate_matter - parameters: - composition: cnpsf # elemental composition - resuspension: true # enable resuspension, default = false - c0: 0.001 # background carbon concentration (mg C/m^2) - initialization: - c: 3052.0 # carbon (mg C/m^2) - n: 3.5 # nitrogen (mmol N/m^2) - p: 0.5 # phosphorus (mmol P/m^2) - s: 149.0 # silicate (mmol Si/m^2) - pen_depth_c: 0.0173 # penetration depth of carbon (m) - pen_depth_n: 0.02 # penetration depth of nitrogen (m) - pen_depth_p: 0.025 # penetration depth of phosphorus (m) - pen_depth_s: 0.0313 # penetration depth of silicate (m) - coupling: - RP: R6 - Q7: - long_name: benthic refractory matter - model: ersem/benthic_column_particulate_matter - parameters: - composition: cnp # elemental composition - burial: true # enable burial, default = false - c0: 0.001 # background carbon concentration (mg C/m^2) - initialization: - c: 30520.0 # carbon (mg C/m^2) - n: 80.0 # nitrogen (mmol N/m^2) - p: 8.0 # phosphorus (mmol P/m^2) - pen_depth_c: 0.2 # penetration depth of carbon (m) - pen_depth_n: 0.25 # penetration depth of nitrogen (m) - pen_depth_p: 0.313 # penetration depth of phosphorus (m) - coupling: - burial_target: Q17 - Q17: - long_name: benthic buried matter - model: ersem/benthic_base - parameters: - composition: cnp # elemental composition - initialization: - c: 0.0 # carbon (mg C/m^2) - n: 0.0 # nitrogen (mmol N/m^2) - p: 0.0 # phosphorus (mmol P/m^2) - B1: - long_name: bacteria - model: ersem/bacteria_docdyn - parameters: - iswBlim: 2 # nutrient limitation (1: minimum of inorganic and organic availability, 2: additive availability) - q10: 2.0 # Q_10 temperature coefficient (-) - chdo: 0.31 # Michaelis-Menten constant for oxygen limitation (-) - chn: 0.5 # Michaelis-Menten constant for nitrate limitation (mmol N/m^3) - chp: 0.1 # Michaelis-Menten constant for phosphate limitation (mmol P/m^3) - sd: 0.05 # specific mortality at reference temperature (1/d) - sum: 2.2 # maximum specific uptake at reference temperature (1/d) - pu: 0.6 # efficiency at high oxygen levels (-) - puo: 0.2 # efficiency at low oxygen levels (-) - srs: 0.1 # specific rest respiration at reference temperature (1/d) - sR1: 1.0 # maximum turn-over rate of DOM (1/d), default = 1.0 - qpc: 0.0019 # maximum phosphorus to carbon ratio (mmol P/mg C) - qnc: 0.0167 # maximum nitrogen to carbon ratio (mmol N/mg C) - ur_O2: 0.1 # oxygen consumed per carbon respired (mmol O_2/mg C) - sR1N1: 0.0 # mineralisation rate of labile dissolved organic phosphorus (1/d) - sR1N4: 0.0 # mineralisation rate of labile dissolved organic nitrogen (1/d) - fsink: 7e-05 # scavenging rate for iron (1/d) - c0: 0.01 # background carbon concentration (mg C/m^3) - nRP: 3 # number of substrates, default = 0 - sRP1R1: 0.01 # remineralisation of substrate 1 to DOM (1/d) - sRP2R1: 0.0025 # remineralisation of substrate 2 to DOM (1/d) - sRP3R1: 0.001 # remineralisation of substrate 3 to DOM (1/d) - rR2: 0.0075 #0.0075 # fraction of semi-labile DOC available to bacteria (-) - rR3: 0.0025 #0.0025 # fraction of semi-refractory DOC available to bacteria (-) - frR3: 0.3 # fraction of activity respiration converted to semi-refractory DOC (-) - nTD: 6 # number of substrates, default = 0 - rTD1: 0.003525 #0.002 # fraction of tDOC pool 1 available for bacteria - rTD2: 0.000627 #0.0003554 # factor of .17777 from 30d # fraction of tDOC pool 2 available for bacteria - rTD3: 0.000275 #0.000156 # factor of .078 from 30d # fraction of tDOC pool 3 available for bacteria - rTD4: 0.0106 #0.006 # fraction of tDOC pool 4 available for bacteria - rTD5: 0.001888 #0.001066 # factor of .17777 from 30d # fraction of tDOC pool 5 available for bacteria - rTD6: 0.000825 #0.000468 # factor of .078 from 30d # fraction of tDOC pool 6 available for bacteria - initialization: - c: 15.7 # carbon (mg C/m^3) - n: 0.26 # nitrogen (mmol N/m^3) - p: 0.029 # phosphorus (mmol P/m^3) - coupling: - RP1: R4 - RP2: R6 - RP3: R8 - N1p: N1/p # phosphate (mmol P/m^3) - N4n: N4/n # ammonium (mmol N/m^3) - R1c: R1/c # labile dissolved organic carbon (mg C/m^3) - R1p: R1/p # labile dissolved organic phosphorus (mmol P/m^3) - R1n: R1/n # labile dissolved organic nitrogen (mmol N/m^3) - R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) - R3c: R3/c - TD1: T1_30d/shadow # terrigenous dissolved organic carbon pool 1 (mg C/m^3) - TD2: T1_8y/shadow # terrigenous dissolved organic carbon pool 2 (mg C/m^3) - TD3: T1_70y/shadow # terrigenous dissolved organic carbon pool 3 (mg C/m^3) - TD4: T2_30d/shadow # terrigenous dissolved organic carbon pool 4 (mg C/m^3) - TD5: T2_8y/shadow # terrigenous dissolved organic carbon pool 5 (mg C/m^3) - TD6: T2_70y/shadow # terrigenous dissolved organic carbon pool 6 (mg C/m^3) - O3c: O3/c # carbon dioxide (mmol C/m^3) - O2o: O2/o # oxygen (mmol O_2/m^3) - pel_nit: - long_name: pelagic nitrification - model: ersem/nitrification - parameters: - q10: 2.0 # Q_10 temperature coefficient (-) - ISWph: 1 # pH impact on nitrification (0: off, 1: on) - sN4N3: 0.5 # specific nitrification rate (1/d) - chN3o: 2700.0 # Michaelis-Menten constant for cubic oxygen dependence of nitrification ((mmol O_2/m^3)^3) - chN4n: 0.5 # Michaelis-Menten constant for cubic ammonium dependence of nitrification ((mmol N/m^3)^3), default = 0.0 - coupling: - N3n: N3/n # nitrate (mmol N/m^3) - N4n: N4/n # ammonium (mmol N/m^3) - O2o: O2/o # oxygen (mmol O_2/m^3) - P1: - long_name: diatoms - model: ersem/primary_producer - parameters: - sum: 1.375 # maximum specific productivity at reference temperature (1/d) - q10: 2.0 # Q_10 temperature coefficient (-) - srs: 0.04 # specific rest respiration at reference temperature (1/d) - pu_ea: 0.2 # excreted fraction of primary production (-) - pu_ra: 0.2 # respired fraction of primary production (-) - qnlc: 0.0042 # minimum nitrogen to carbon ratio (mmol N/mg C) - qplc: 0.0001 # minimum phosphorus to carbon ratio (mmol P/mg C) - xqcp: 1.0 # threshold for phosphorus limitation (relative to Redfield ratio) (-) - xqcn: 1.0 # threshold for nitrogen limitation (relative to Redfield ratio) (-) - xqp: 2.0 # maximum phosphorus to carbon ratio (relative to Redfield ratio) (-) - xqn: 1.075 # maximum nitrogen to carbon ratio (relative to Redfield ratio) (-) - qun3: 0.0025 # nitrate affinity (m^3/mg C/d) - qun4: 0.0025 # ammonium affinity (m^3/mg C/d) - qurp: 0.003 # phosphate affinity (m^3/mg C/d) - snplux: 1.0 # specific tendency of luxury uptake of nutrients towards maximum quota (1/d), default = 1.0 - use_Si: true # use silicate, default = false - qsc: 0.0118 # maximum silicate to carbon ratio (mmol Si/mg C) - chs: 0.2 # Michaelis-Menten constant for silicate limitation (mmol/m^3) - sdo: 0.05 # 1.1 of minimal specific lysis rate (1/d) - alpha: 4.0 # initial slope of PI-curve (mg C m^2/mg Chl/W/d) - beta: 0.07 # photoinhibition parameter (mg C m^2/mg Chl/W/d) - phim: 0.06 # maximum effective chlorophyll to carbon photosynthesis ratio (mg Chl/mg C) - Limnut: 1 # nitrogen-phosphorus colimitation formulation (0: geometric mean, 1: minimum, 2: harmonic mean) - docdyn: true # use dynamic ratio of labile to semi-labile DOM production, default = false - uB1c_O2: 0.11 # oxygen produced per unit of carbon fixed (mmol O_2/mg C) - urB1_O2: 0.1 # oxygen consumed per unit of carbon respired (mmol O_2/mg C) - iopABS: 0.007 # specific shortwave absorption (m^2/mg Chl), default = 0.008 - iopBBS: 0.00048 # specific shortwave backscatter (m^2/mg Chl), default = 0.003 - c0: 0.0001 # background carbon concentration (mg C/m^3), default = 0.0 - resm: 5.0 # maximum nutrient-limitation-induced sinking velocity (m/d), default = 0.0 - esni: 0.7 # level of nutrient limitation below which sinking commences (-) - cenh: false # enable atmospheric CO2 influence on photosynthesis, default = false - ndeposition: 3 # number of target pools for sedimentation, default = 1 - qxc2: 0.2 # fraction of carbon sinking into deposition target 2 (-) - qxc3: 0.005 # fraction of carbon sinking into deposition target 3 (-) - qxn2: 0.2 # fraction of nitrogen sinking into deposition target 2 (-) - qxn3: 0.005 # fraction of nitrogen sinking into deposition target 3 (-) - qxp2: 0.24 # fraction of phosphorus sinking into deposition target 2 (-) - qxp3: 0.003 # fraction of phosphorus sinking into deposition target 3 (-) - qxs2: 0.0 # fraction of silicate sinking into deposition target 2 (-) - qxs3: 0.0 # fraction of silicate sinking into deposition target 3 (-) - initialization: - c: 8.0 # carbon (mg C/m^3) - n: 0.1114 # nitrogen (mmol N/m^3) - p: 0.009 # phosphorus (mmol P/m^3) - s: 0.128 # silicate (mmol Si/m^3) - Chl: 0.4 # chlorophyll a (mg/m^3) - coupling: - RP: R6 - deposition_target1: Q6/surface - deposition_target2: Q1 - deposition_target3: Q7/surface - N1p: N1/p # phosphate (mmol P/m^3) - N3n: N3/n # nitrate (mmol N/m^3) - N4n: N4/n # ammonium (mmol N/m^3) - N5s: N5/s # silicate (mmol Si/m^3) - R1c: R1/c # dissolved organic carbon (mg C/m^3) - R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) - R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) - R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) - O2o: O2/o # oxygen (mmol O_2/m^3) - O3c: O3/c # carbon dioxide (mmol C/m^3) - P2: - long_name: nanophytoplankton - model: ersem/primary_producer - parameters: - sum: 1.625 # maximum specific productivity at reference temperature (1/d) - q10: 2.0 # Q_10 temperature coefficient (-) - srs: 0.04 # specific rest respiration at reference temperature (1/d) - pu_ea: 0.2 # excreted fraction of primary production (-) - pu_ra: 0.2 # respired fraction of primary production (-) - qnlc: 0.005 # minimum nitrogen to carbon ratio (mmol N/mg C) - qplc: 0.000225 # minimum phosphorus to carbon ratio (mmol P/mg C) - xqcp: 1.0 # threshold for phosphorus limitation (relative to Redfield ratio) (-) - xqcn: 1.0 # threshold for nitrogen limitation (relative to Redfield ratio) (-) - xqp: 2.0 # maximum phosphorus to carbon ratio (relative to Redfield ratio) (-) - xqn: 1.075 # maximum nitrogen to carbon ratio (relative to Redfield ratio) (-) - qun3: 0.004 # nitrate affinity (m^3/mg C/d) - qun4: 0.004 # ammonium affinity (m^3/mg C/d) - qurp: 0.004 # phosphate affinity (m^3/mg C/d) - snplux: 1.0 # specific tendency of luxury uptake of nutrients towards maximum quota (1/d), default = 1.0 - use_Si: false # use silicate, default = false - sdo: 0.05 # 1.1 of minimal specific lysis rate (1/d) - alpha: 5.0 # initial slope of PI-curve (mg C m^2/mg Chl/W/d) - beta: 0.1 # photoinhibition parameter (mg C m^2/mg Chl/W/d) - phim: 0.025 # maximum effective chlorophyll to carbon photosynthesis ratio (mg Chl/mg C) - Limnut: 1 # nitrogen-phosphorus colimitation formulation (0: geometric mean, 1: minimum, 2: harmonic mean) - docdyn: true # use dynamic ratio of labile to semi-labile DOM production, default = false - uB1c_O2: 0.11 # oxygen produced per unit of carbon fixed (mmol O_2/mg C) - urB1_O2: 0.1 # oxygen consumed per unit of carbon respired (mmol O_2/mg C) - iopABS: 0.0041 # specific shortwave absorption (m^2/mg Chl), default = 0.008 - iopBBS: 0.003 # specific shortwave backscatter (m^2/mg Chl), default = 0.003 - c0: 0.001 # background carbon concentration (mg C/m^3), default = 0.0 - calcify: true # calcify, default = false - resm: 0.0 # maximum nutrient-limitation-induced sinking velocity (m/d), default = 0.0 - esni: 0.7 # level of nutrient limitation below which sinking commences (-) - cenh: false # enable atmospheric CO2 influence on photosynthesis, default = false - ndeposition: 3 # number of target pools for sedimentation, default = 1 - qxc2: 0.5 # fraction of carbon sinking into deposition target 2 (-) - qxc3: 0.05 # fraction of carbon sinking into deposition target 3 (-) - qxn2: 0.5 # fraction of nitrogen sinking into deposition target 2 (-) - qxn3: 0.05 # fraction of nitrogen sinking into deposition target 3 (-) - qxp2: 0.6 # fraction of phosphorus sinking into deposition target 2 (-) - qxp3: 0.03 # fraction of phosphorus sinking into deposition target 3 (-) - initialization: - c: 5.9 # carbon (mg C/m^3) - n: 0.0926 # nitrogen (mmol N/m^3) - p: 0.0036 # phosphorus (mmol P/m^3) - Chl: 0.3 # chlorophyll a (mg/m^3) - coupling: - RP: R4 - deposition_target1: Q6/surface - deposition_target2: Q1 - deposition_target3: Q7/surface - N1p: N1/p # phosphate (mmol P/m^3) - N3n: N3/n # nitrate (mmol N/m^3) - N4n: N4/n # ammonium (mmol N/m^3) - R1c: R1/c # dissolved organic carbon (mg C/m^3) - R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) - R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) - R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) - O2o: O2/o # oxygen (mmol O_2/m^3) - O3c: O3/c # carbon dioxide (mmol C/m^3) - RainR: L2/RainR # rain ratio (PIC : POC) (-) - L2c: L2/c # free calcite (mg C/m^3) - P3: - long_name: picophytoplankton - model: ersem/primary_producer - parameters: - sum: 2.0 # maximum specific productivity at reference temperature (1/d) - q10: 2.0 # Q_10 temperature coefficient (-) - srs: 0.045 # specific rest respiration at reference temperature (1/d) - pu_ea: 0.2 # excreted fraction of primary production (-) - pu_ra: 0.2 # respired fraction of primary production (-) - qnlc: 0.006 # minimum nitrogen to carbon ratio (mmol N/mg C) - qplc: 0.00035 # minimum phosphorus to carbon ratio (mmol P/mg C) - xqcp: 1.0 # threshold for phosphorus limitation (relative to Redfield ratio) (-) - xqcn: 1.0 # threshold for nitrogen limitation (relative to Redfield ratio) (-) - xqp: 1.5 # maximum phosphorus to carbon ratio (relative to Redfield ratio) (-) - xqn: 1.05 # maximum nitrogen to carbon ratio (relative to Redfield ratio) (-) - qun3: 0.006 # nitrate affinity (m^3/mg C/d) - qun4: 0.007 # ammonium affinity (m^3/mg C/d) - qurp: 0.006 # phosphate affinity (m^3/mg C/d) - snplux: 1.0 # specific tendency of luxuary uptake of nutrients towards maximum quoata (1/d) - use_Si: false # use silicate, default = false - sdo: 0.055 # 1.1 of minimal specific lysis rate (1/d) - alpha: 6.0 # initial slope of PI-curve (mg C m^2/mg Chl/W/d) - beta: 0.12 # photoinhibition parameter (mg C m^2/mg Chl/W/d) - phim: 0.015 # maximum effective chlorophyll to carbon photosynthesis ratio (mg Chl/mg C) - Limnut: 1 # nitrogen-phosphorus colimitation formulation (0: geometric mean, 1: minimum, 2: harmonic mean) - docdyn: true # use dynamic ratio of labile to semi-labile DOM production, default = false - uB1c_O2: 0.11 # oxygen produced per unit of carbon fixed (mmol O_2/mg C) - urB1_O2: 0.1 # oxygen consumed per unit of carbon respired (mmol O_2/mg C) - iopABS: 0.023 # specific shortwave absorption (m^2/mg Chl), default = 0.008 - iopBBS: 0.003 # specific shortwave backscatter (m^2/mg Chl), default = 0.003 - c0: 0.0088 # background carbon concentration (mg C/m^3), default = 0.0 - resm: 0.0 # maximum nutrient-limitation-induced sinking velocity (m/d), default = 0.0 - esni: 0.7 # level of nutrient limitation below which sinking commences (-) - cenh: false # enable atmospheric CO2 influence on photosynthesis, default = false - ndeposition: 3 # number of target pools for sedimentation, default = 1 - qxc2: 0.5 # fraction of carbon sinking into deposition target 2 (-) - qxc3: 0.05 # fraction of carbon sinking into deposition target 3 (-) - qxn2: 0.5 # fraction of nitrogen sinking into deposition target 2 (-) - qxn3: 0.05 # fraction of nitrogen sinking into deposition target 3 (-) - qxp2: 0.6 # fraction of phosphorus sinking into deposition target 2 (-) - qxp3: 0.03 # fraction of phosphorus sinking into deposition target 3 (-) - initialization: - c: 5.9 # carbon (mg C/m^3) - n: 0.0926 # nitrogen (mmol N/m^3) - p: 0.0036 # phosphorus (mmol P/m^3) - Chl: 0.3 # chlorophyll a (mg/m^3) - coupling: - RP: R4 - deposition_target1: Q6/surface - deposition_target2: Q1 - deposition_target3: Q7/surface - N1p: N1/p # phosphate (mmol P/m^3) - N3n: N3/n # nitrate (mmol N/m^3) - N4n: N4/n # ammonium (mmol N/m^3) - R1c: R1/c # dissolved organic carbon (mg C/m^3) - R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) - R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) - R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) - O2o: O2/o # oxygen (mmol O_2/m^3) - O3c: O3/c # carbon dioxide (mmol C/m^3) - P4: - long_name: microphytoplankton - model: ersem/primary_producer - parameters: - sum: 1.125 # maximum specific productivity at reference temperature (1/d) - q10: 2.0 # Q_10 temperature coefficient (-) - srs: 0.035 # specific rest respiration at reference temperature (1/d) - pu_ea: 0.2 # excreted fraction of primary production (-) - pu_ra: 0.2 # respired fraction of primary production (-) - qnlc: 0.0042 # minimum nitrogen to carbon ratio (mmol N/mg C) - qplc: 0.0001 # minimum phosphorus to carbon ratio (mmol P/mg C) - xqcp: 1.0 # threshold for phosphorus limitation (relative to Redfield ratio) (-) - xqcn: 1.0 # threshold for nitrogen limitation (relative to Redfield ratio) (-) - xqp: 2.7 # maximum phosphorus to carbon ratio (relative to Redfield ratio) (-) - xqn: 1.1 # maximum nitrogen to carbon ratio (relative to Redfield ratio) (-) - qun3: 0.002 # nitrate affinity (m^3/mg C/d) - qun4: 0.002 # ammonium affinity (m^3/mg C/d) - qurp: 0.002 # phosphate affinity (m^3/mg C/d) - snplux: 1.0 # specific tendency of luxuary uptake of nutrients towards maximum quoata (1/d) - use_Si: false # use silicate, default = false - sdo: 0.045 # 1.1 of minimal specific lysis rate (1/d) - alpha: 3.0 # initial slope of PI-curve (mg C m^2/mg Chl/W/d) - beta: 0.06 # photoinhibition parameter (mg C m^2/mg Chl/W/d) - phim: 0.045 # maximum effective chlorophyll to carbon photosynthesis ratio (mg Chl/mg C) - Limnut: 1 # nitrogen-phosphorus colimitation formulation (0: geometric mean, 1: minimum, 2: harmonic mean) - docdyn: true # use dynamic ratio of labile to semi-labile DOM production, default = false - uB1c_O2: 0.11 # oxygen produced per unit of carbon fixed (mmol O_2/mg C) - urB1_O2: 0.1 # oxygen consumed per unit of carbon respired (mmol O_2/mg C) - iopABS: 0.008 # specific shortwave absorption (m^2/mg Chl), default = 0.008 - iopBBS: 0.00048 # specific shortwave backscatter (m^2/mg Chl), default = 0.003 - c0: 0.0001 # background carbon concentration (mg C/m^3), default = 0.0 - resm: 5.0 # maximum nutrient-limitation-induced sinking velocity (m/d), default = 0.0 - esni: 0.7 # level of nutrient limitation below which sinking commences (-) - cenh: false # enable atmospheric CO2 influence on photosynthesis, default = false - ndeposition: 3 # number of target pools for sedimentation, default = 1 - qxc2: 0.5 # fraction of carbon sinking into deposition target 2 (-) - qxc3: 0.05 # fraction of carbon sinking into deposition target 3 (-) - qxn2: 0.5 # fraction of nitrogen sinking into deposition target 2 (-) - qxn3: 0.05 # fraction of nitrogen sinking into deposition target 3 (-) - qxp2: 0.6 # fraction of phosphorus sinking into deposition target 2 (-) - qxp3: 0.03 # fraction of phosphorus sinking into deposition target 3 (-) - initialization: - c: 5.9 # carbon (mg C/m^3) - n: 0.0926 # nitrogen (mmol N/m^3) - p: 0.0036 # phosphorus (mmol P/m^3) - Chl: 0.3 # chlorophyll a (mg/m^3) - coupling: - RP: R6 - deposition_target1: Q6/surface - deposition_target2: Q1 - deposition_target3: Q7/surface - N1p: N1/p # phosphate (mmol P/m^3) - N3n: N3/n # nitrate (mmol N/m^3) - N4n: N4/n # ammonium (mmol N/m^3) - R1c: R1/c # dissolved organic carbon (mg C/m^3) - R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) - R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) - R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) - O2o: O2/o # oxygen (mmol O_2/m^3) - O3c: O3/c # carbon dioxide (mmol C/m^3) - Z4: - long_name: mesozooplankton - model: ersem/mesozooplankton - parameters: - q10: 2.0 # Q_10 temperature coefficient (-) - minfood: 12.0 # Michaelis-Menten constant to perceive food (mg C/m^3) - chuc: 36.0 # Michaelis-Menten constant for food uptake (mg C/m^3) - sum: 1.0 # maximum specific uptake at reference temperature (1/d) - pu: 0.6 # assimilation efficiency (-) - pu_ea: 0.5 # fraction of unassimilated prey that is excreted (not respired) (-) - pu_eaR: 0.9 # fraction of unassimilated detritus that is excreted (not respired) (-) - pe_R1: 0.5 # dissolved fraction of excreted/dying matter (-) - srs: 0.015 # specific rest respiration at reference temperature (1/d) - sd: 0.05 # basal mortality (1/d) - sdo: 0.2 # maximum mortality due to oxygen limitation (1/d) - chro: 7.81 # Michaelis-Menten constant for oxygen limitation (-) - qpc: 0.000786 # phosphorus to carbon ratio (mmol P/mg C) - qnc: 0.0126 # nitrogen to carbon ratio (mmol N/mg C) - Minprey: 300.0 # food threshold for overwintering state (mg C/m^2) - repw: 0.0025 # specific overwintering respiration (1/d) - mort: 0.0025 # specific overwintering mortality (1/d) - R1R2: 1.0 # labile fraction of produced dissolved organic carbon (-) - xR1p: 1.2 # transfer of phosphorus to DOM, relative to POM (-), default = 0.0 - xR1n: 1.0 # transfer of nitrogen to DOM, relative to POM (-), default = 0.0 - urB1_O2: 0.1 # oxygen consumed per carbon respired (mmol O_2/mg C) - gutdiss: 0.5 # fraction of prey calcite that dissolves after ingestion (-) - c0: 0.0033 # background concentration (mg C/m^3) - nprey: 9 # number of prey types, default = 0 - suprey1: 0.15 # relative affinity for prey type 1 (-) - suprey2: 0.05 # relative affinity for prey type 2 (-) - suprey3: 0.0 # relative affinity for prey type 3 (-) - suprey4: 0.15 # relative affinity for prey type 4 (-) - suprey5: 0.25 # relative affinity for prey type 5 (-) - suprey6: 0.25 # relative affinity for prey type 6 (-) - suprey7: 0.05 # relative affinity for prey type 7 (-) - suprey8: 0.0 # relative affinity for prey type 8 (-) - suprey9: 0.1 # relative affinity for prey type 9 (-) - prey9ispom: true # prey type 9 is detritus, default = false - initialization: - c: 1.2 # carbon (mg C/m^3) - coupling: - prey1: P1 - prey2: P2 - prey3: P3 - prey4: P4 - prey5: Z4 - prey6: Z5 - prey7: Z6 - prey8: B1 - prey9: R6 - RP: R8 - N1p: N1/p # phosphate (mmol P/m^3) - N4n: N4/n # ammonium (mmol N/m^3) - R1c: R1/c # dissolved organic carbon (mg C/m^3) - R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) - R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) - R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) - O2o: O2/o # oxygen source (mmol O_2/m^3) - O3c: O3/c # carbon dioxide sink (mmol C/m^3) - L2c: L2/c # calcite (mg C/m^3) - Z5: - long_name: microzooplankton - model: ersem/microzooplankton - parameters: - q10: 2.0 # Q_10 temperature coefficient (-) - minfood: 12.0 # Michaelis-Menten constant to perceive food (mg C/m^3) - chuc: 32.0 # Michaelis-Menten constant for food uptake (mg C/m^3) - sum: 1.25 # maximum specific uptake at reference temperature (1/d) - pu: 0.5 # assimilation efficiency (-) - pu_ea: 0.5 # fraction of unassimilated prey that is excreted (not respired) (-) - pe_R1: 0.5 # dissolved fraction of excreted/dying matter (-) - srs: 0.02 # specific rest respiration at reference temperature (1/d) - sd: 0.05 # basal mortality (1/d) - sdo: 0.25 # maximum mortality due to oxygen limitation (1/d) - chro: 7.81 # Michaelis-Menten constant for oxygen limitation (-) - qpc: 0.001 # maximum phosphorus to carbon ratio (mmol P/mg C) - qnc: 0.0167 # maximum nitrogen to carbon ratio (mmol N/mg C) - stempp: 0.5 # specific excretion rate of excess phosphorus (1/d) - stempn: 0.5 # specific excretion rate of excess nitrogen (1/d) - R1R2: 1.0 # labile fraction of produced dissolved organic carbon (-) - xR1p: 1.2 # transfer of phosphorus to DOM, relative to POM (-), default = 1.0 - xR1n: 1.0 # transfer of nitrogen to DOM, relative to POM (-), default = 1.0 - urB1_O2: 0.1 # oxygen consumed per carbon respired (mmol O_2/mg C) - gutdiss: 0.5 # fraction of prey calcite that dissolves after ingestion (-) - c0: 0.0033 # background concentration (mg C/m^3) - nprey: 7 # number of prey types, default = 0 - suprey1: 0.1 # relative affinity for prey type 1 (-) - suprey2: 0.15 # relative affinity for prey type 2 (-) - suprey3: 0.15 # relative affinity for prey type 3 (-) - suprey4: 0.15 # relative affinity for prey type 4 (-) - suprey5: 0.1 # relative affinity for prey type 5 (-) - suprey6: 0.15 # relative affinity for prey type 6 (-) - suprey7: 0.2 # relative affinity for prey type 7 (-) - initialization: - c: 7.2 # carbon (mg C/m^3) - n: 0.12 # nitrogen (mmol N/m^3) - p: 0.0113 # phosphorus (mmol P/m^3) - coupling: - prey1: B1 - prey2: P1 - prey3: P2 - prey4: P3 - prey5: P4 - prey6: Z5 - prey7: Z6 - RP: R6 - N1p: N1/p # phosphate (mmol P/m^3) - N4n: N4/n # ammonium (mmol N/m^3) - R1c: R1/c # dissolved organic carbon (mg C/m^3) - R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) - R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) - R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) - O2o: O2/o # oxygen source (mmol O_2/m^3) - O3c: O3/c # carbon dioxide sink (mmol C/m^3) - L2c: L2/c # calcite (mg C/m^3) - Z6: - long_name: nanoflagellates - model: ersem/microzooplankton - parameters: - q10: 2.0 # Q_10 temperature coefficient (-) - minfood: 12.0 # Michaelis-Menten constant to perceive food (mg C/m^3) - chuc: 28.0 # Michaelis-Menten constant for food uptake (mg C/m^3) - sum: 1.5 # maximum specific uptake at reference temperature (1/d) - pu: 0.4 # assimilation efficiency (-) - pu_ea: 0.5 # fraction of unassimilated prey that is excreted (not respired) (-) - pe_R1: 0.5 # dissolved fraction of excreted/dying matter (-) - srs: 0.025 # specific rest respiration at reference temperature (1/d) - sd: 0.05 # basal mortality (1/d) - sdo: 0.3 # maximum mortality due to oxygen limitation (1/d) - chro: 7.81 # Michaelis-Menten constant for oxygen limitation (-) - qpc: 0.001 # maximum phosphorus to carbon ratio (mmol P/mg C) - qnc: 0.0167 # maximum nitrogen to carbon ratio (mmol N/mg C) - stempp: 0.5 # specific excretion rate of excess phosphorus (1/d) - stempn: 0.5 # specific excretion rate of excess nitrogen (1/d) - R1R2: 1.0 # labile fraction of produced dissolved organic carbon (-) - xR1p: 1.2 # transfer of phosphorus to DOM, relative to POM (-), default = 1.0 - xR1n: 1.0 # transfer of nitrogen to DOM, relative to POM (-), default = 1.0 - urB1_O2: 0.1 # oxygen consumed per carbon respired (mmol O_2/mg C) - gutdiss: 0.5 # fraction of prey calcite that dissolves after ingestion (-) - c0: 0.0033 # background concentration (mg C/m^3) - nprey: 4 # number of prey types, default = 0 - suprey1: 0.45 # relative affinity for prey type 1 (-) - suprey2: 0.15 # relative affinity for prey type 2 (-) - suprey3: 0.25 # relative affinity for prey type 3 (-) - suprey4: 0.15 # relative affinity for prey type 4 (-) - initialization: - c: 2.421 # carbon (mg C/m^3) - n: 0.0505 # nitrogen (mmol N/m^3) - p: 0.047 # phosphorus (mmol P/m^3) - coupling: - prey1: B1 - prey2: P2 - prey3: P3 - prey4: Z6 - RP: R4 - N1p: N1/p # phosphate (mmol P/m^3) - N4n: N4/n # ammonium (mmol N/m^3) - R1c: R1/c # dissolved organic carbon (mg C/m^3) - R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) - R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) - R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) - RPs: R6/s # particulate organic silicate (mmol Si/m^3) - O2o: O2/o # oxygen source (mmol O_2/m^3) - O3c: O3/c # carbon dioxide sink (mmol C/m^3) - L2c: L2/c # calcite (mg C/m^3) - L2: - long_name: calcite - model: ersem/calcification - parameters: - iswcal: 1 # calcification/dissolution dependence on calcite saturation (1: power law, 2: hyperbolic) - ncalc: 0.81 # power of the calcification law (Ridgwell et al. 2007, mineral calcite) (-) - ndiss: 2.22 # power of the dissolution law (Keir 1980) (-) - Rain0: 0.6 # maximum rain ratio from PISCES (-) - sedL2: 10.0 # sinking velocity (m/d) - sL2O3: 0.03 # maximum specific dissolution rate (1/d), default = 1.0 - c0: 1e-05 # background concentration (mg C/m^3), default = 0.0 - ndeposition: 1 # number of target pools for sedimentation, default = 1 - initialization: - c: 0.05 # carbon (mg C/m^3) - coupling: - deposition_target1: bL2 - om_cal: O3/Om_cal # calcite saturation (-) - O3c: O3/c # total dissolved inorganic carbon (mmol C/m^3) - T1_30d: - long_name: photolabile terrigenous DOC - model: ersem/TDOC - parameters: - photolabile: True - #age: 30. - photoaging: .5 - bioaging: .5 - qn: 0.0042 - qp: 0.0001 # elemental composition - c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 - phyref: 0.0 #0.03 # reference photooxidation rate (d-1) - surf_phyref: 0.045 #0.03 # reference photooxidation rate (d-1) - iref: 130 # reference irradinace for photooxidation (W m-2) - floc: 0.000002 # max flocculation rate [d-1 (mg C)-1] - sbx: 0.69 # log(salinity) (psu) at which flocculation is max.max is assumed to be around 2 psu. 0.69=log(2) - scx: 1.35 # salinity function parameter. 1.35 allows the max flocc rate to decrease of one order of magnitude at 35 psu - phyt: 0.24 # fraction of T1 going to T2 after photolysis - chemEIR_scaling: 2. - initialization: - c: 1200 - coupling: - chemEIR: light/parEIR - TD_older: T1_8y - T2: T2_30d - RPc: R6/c - RPn: R6/n - RPp: R6/p - O3c: O3/c - N1p: N1/p - N4n: N4/n - T1_8y: - long_name: photolabile terrigenous DOC - model: ersem/TDOC - parameters: - #age: 10950. - photolabile: True - photoaging: 0.025 - bioaging: 0.025 - qn: 0.0042 - qp: 0.0001 # elemental composition - c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 - phyref: 0.0 #0.00533 # reference photooxidation rate (d-1) - surf_phyref: 0.00803 #0.00533 # factor of .17777 from 30d # reference photooxidation rate (d-1) - iref: 130 # reference irradinace for photooxidation (W m-2) - floc: 0.000002 # max flocculation rate [d-1 (mg C)-1] - sbx: 0.69 # log(salinity) (psu) at which flocculation is max.max is assumed to be around 2 psu. 0.69=log(2) - scx: 1.35 # salinity function parameter. 1.35 allows the max flocc rate to decrease of one order of magnitude at 35 psu - phyt: 0.24 # fraction of T1 going to T2 after photolysis - chemEIR_scaling: 2. - initialization: - c: 0. #1200.0 - coupling: - chemEIR: light/parEIR - TD_older: T1_70y - T2: T2_8y - RPc: R6/c - RPn: R6/n - RPp: R6/p - O3c: O3/c - N1p: N1/p - N4n: N4/n - T1_70y: - long_name: photolabile terrigenous DOC - model: ersem/TDOC - parameters: - #age: 10950. - photolabile: True - photoaging: 0. - bioaging: 0. - qn: 0.0042 - qp: 0.0001 # elemental composition - c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 - phyref: 0.0 #0.0023 # reference photooxidation rate (d-1) - surf_phyref: 0.00352 ##0.0023 # # factor of .078 from 30d # reference photooxidation rate (d-1) - iref: 130 # reference irradinace for photooxidation (W m-2) - floc: 0.000002 # max flocculation rate [d-1 (mg C)-1] - sbx: 0.69 # log(salinity) (psu) at which flocculation is max.max is assumed to be around 2 psu. 0.69=log(2) - scx: 1.35 # salinity function parameter. 1.35 allows the max flocc rate to decrease of one order of magnitude at 35 psu - phyt: 0.24 # fraction of T1 going to T2 after photolysis - chemEIR_scaling: 2. - initialization: - c: 0. #1200.0 - coupling: - chemEIR: light/parEIR - T2: T2_70y - RPc: R6/c - RPn: R6/n - RPp: R6/p - O3c: O3/c - N1p: N1/p - N4n: N4/n - T2_30d: - long_name: photolabile terrigenous DOC - model: ersem/TDOC - parameters: - #age: 30. - photolabile: False - photoaging: 0. - bioaging: .1 - qn: 0.0042 - qp: 0.0001 # elemental composition - c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 - initialization: - c: 1200. #1200.0 - coupling: - TD_older: T2_8y - T2_8y: - long_name: photolabile terrigenous DOC - model: ersem/TDOC - parameters: - #age: 2920 - photolabile: False - photoaging: 0.0 - bioaging: .005 - qn: 0.0042 - qp: 0.0001 # elemental composition - c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 - initialization: - c: 0. #1200.0 - coupling: - TD_older: T2_70y - T2_70y: - long_name: photolabile terrigenous DOC - model: ersem/TDOC - parameters: - #age: 25550. - photolabile: False - photoaging: 0. - bioaging: 0. - qn: 0.0042 - qp: 0.0001 # elemental composition - c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 - initialization: - c: 0. #1200.0 -# L2: -# long_name: calcite -# model: ersem/calcification -# parameters: -# iswcal: 1 # calcification/dissolution dependence on calcite saturation (1: power law, 2: hyperbolic) -# ncalc: 0.81 # power of the calcification law (Ridgwell et al. 2007, mineral calcite) (-) -# ndiss: 2.22 # power of the dissolution law (Keir 1980) (-) -# Rain0: 0.6 # maximum rain ratio from PISCES (-) -# sedL2: 10.0 # sinking velocity (m/d) -# sL2O3: 0.03 # maximum specific dissolution rate (1/d), default = 1.0 -# c0: 1e-05 # background concentration (mg C/m^3), default = 0.0 -# ndeposition: 1 # number of target pools for sedimentation, default = 1 -# initialization: -# c: 0.05 # carbon (mg C/m^3) -# coupling: -# deposition_target1: bL2 -# om_cal: O3/Om_cal # calcite saturation (-) -# O3c: O3/c # total dissolved inorganic carbon (mmol C/m^3) -# bL2: -# long_name: benthic calcite -# model: ersem/benthic_base -# parameters: -# composition: c # elemental composition -# remin: 0.05 # remineralisation rate (1/d), default = 0.0 -# c0: 1.e-05 # background value for benthic calcite -# initialization: -# c: 0.05 # carbon (mg C/m^2) -# coupling: -# O3c: O3/c # dissolved inorganic carbon (mmol/m^3) - bL2: - long_name: benthic calcite - model: ersem/benthic_calcite - parameters: - iswcal: 1 # dissolution dependence on calcite saturation (0: none, 1: power law, 2: hyperbolic) - ndiss: 2.22 # power of the dissolution law (Keir 1980) (-) - fdissmax: 30.0 # maximum specific dissolution rate (1/d), default = 0.0 - fdissmin: 0.05 # minimum specific dissolution rate (1/d), default = 0.03 - c0: 1e-05 # background calcite concentration (mg C/m^2), default = 0.0 - initialization: - c: 0.05 # carbon (mg C/m^2) - coupling: - Om_Cal: O3/Om_cal # calcite saturation (-) - O3c: O3/c # dissolved inorganic carbon (mmol/m^3) -# sL2O3X: 30.0 # remineralisation rate at 10 degrees Celsius (1/d), default = 0.0 -# ndiss: 2.22 # power of the dissolution law (Keir 1980) (-) -# c0: 1e-05 # background carbon concentration (mg C/m^2), default = 0.0 -# iswcal: 1 # calcification/dissolution dependence on calcite saturation (1: power law, 2: hyperbolic) - # initialization: - # c: 5000.05 # carbon (mg C/m^2) - # coupling: - # O3c: O3/c # dissolved inorganic carbon (mmol/m^3) - # Om_Cal: O3/Om_cal - ben_col: - long_name: benthic column - model: ersem/benthic_column - parameters: - qPW: 0.4 # sediment porosity (-) - EDZ_mix: 20.0 # equilibrium diffusive speed between sediment surface water (d/m) - d_tot: 0.3 # depth of sediment column (m) - Etur: 2e-06 # basal bioturbation rate (m^2/d) - mtur: 10.0 # maximum relative turbation enhancement (-) - htur: 116.0 # Michaelis-Menten constant for bioturbation (mg C/m^2/d) - dtur: 0.02 # bioturbation depth (m) - EDZ_1: 5e-05 # diffusivity in oxygenated layer (m^2/d) - EDZ_2: 5e-05 # diffusivity in oxidized layer (m^2/d) - EDZ_3: 5e-05 # diffusivity in anoxic layer (m^2/d) - irr_min: 2.0 # minimum diffusion enhancement through bioirrigation (-) - mirr: 10.0 # maximum relative diffusion enhancement due to bioirrigation (-) - hirr: 101.0 # Michaelis-Menten constant for bioirrigation (mg C/m^2/d) - initialization: - D1m: 0.009 # depth of bottom interface of oxygenated layer (m) - D2m: 0.05 # depth of bottom interface of oxidized layer (m) - K1: - long_name: benthic phosphate - model: ersem/benthic_column_dissolved_matter - parameters: - composition: p # composition (any combination of c,n,p,s,o,a) - ads1: 100.0 # adsorption in layer 1 (total:dissolved) (-), default = 1.0 - ads2: 100.0 # adsorption in layer 2 (total:dissolved) (-), default = 1.0 - ads3: 2.0 # adsorption in layer 3 (total:dissolved) (-), default = 1.0 - c0: 0.0003 # background concentration (mg C/m^2) - initialization: - p: 6.8 # phosphorus (mmol/m^2) - coupling: - p_pel: N1/p # pelagic phosphorus (mmol/m^3) - K3: - long_name: benthic nitrate - model: ersem/benthic_column_dissolved_matter - parameters: - composition: n # composition (any combination of c,n,p,s,o,a) - last_layer: 2 # sediment layer where concentration drops to zero, default = 3 - relax: 5.0 # rate of relaxation towards equilibrium concentration profile (1/d) - minD: 0.0001 # minimum depth of zero-concentration isocline (m) - c0: 0.0003 # background concentration (mg C/m^2) - initialization: - n: 0.584 # nitrogen (mmol/m^2) - coupling: - n_pel: N3/n # pelagic nitrogen (mmol/m^3) - K4: - long_name: benthic ammonium - model: ersem/benthic_column_dissolved_matter - parameters: - composition: n # composition (any combination of c,n,p,s,o,a) - ads1: 3.0 # adsorption in layer 1 (total:dissolved) (-), default = 1.0 - ads2: 3.0 # adsorption in layer 2 (total:dissolved) (-), default = 1.0 - ads3: 3.0 # adsorption in layer 3 (total:dissolved) (-), default = 1.0 - correction: true # move losses in oxygenic layer to deeper layers if pelagic concentration is limiting, default = false - c0: 0.0003 # background concentration (mg C/m^2) - initialization: - n: 25.0 # nitrogen (mmol/m^2) - coupling: - n_pel: N4/n # pelagic nitrogen (mmol/m^3) - K5: - long_name: benthic silicate - model: ersem/benthic_column_dissolved_matter - parameters: - composition: s # composition (any combination of c,n,p,s,o,a) - c0: 9.e-05 # background concentration (mg C/m^2) - initialization: - s: 20.1 # silicate (mmol/m^2) - coupling: - s_pel: N5/s # pelagic silicate (mmol/m^3) - G2: - long_name: benthic oxygen - model: ersem/benthic_column_dissolved_matter - parameters: - composition: o # composition (any combination of c,n,p,s,o,a) - last_layer: 1 # sediment layer where concentration drops to zero, default = 3 - relax: 5.0 # rate of relaxation towards equilibrium concentration profile (1/d) - minD: 0.0001 # minimum depth of zero-concentration isocline (m) - initialization: - o: 0.0225 # oxygen (mmol/m^2) - coupling: - o_pel: O2/o # pelagic oxygen (mmol/m^3) - G3: - long_name: benthic dissolved inorganic carbon - model: ersem/benthic_column_dissolved_matter - parameters: - composition: c # composition (any combination of c,n,p,s,o,a) - initialization: - c: 375.0 # carbon (mmol/m^2) - coupling: - c_pel: O3/c # pelagic carbon (mmol/m^3) - Q6s_aerobic: - long_name: aerobic particulate silicate - model: ersem/benthic_column_particulate_matter_layer - parameters: - composition: s # elemental composition - remin: 0.007 # remineralization rate (1/d), default = 0.0 - minimum_depth: 0.0 # minimum depth (m), default = 0.0 - variable_maximum_depth: true # maximum depth is variable, default = false - coupling: - Q: Q6 - maximum_depth: ben_col/D1m # maximum depth (m) - s_remin_target: K5/per_layer/s1 # sink for remineralized silicate (mmol Si/m^2) - Q6s_anaerobic: - long_name: anaerobic particulate silicate - model: ersem/benthic_column_particulate_matter_layer - parameters: - composition: s # elemental composition - remin: 0.007 # remineralization rate (1/d), default = 0.0 - variable_minimum_depth: true # minimum depth is variable, default = false - maximum_depth: 0.3 # maximum depth (m), default = 0.0 - source_depth_distribution: 2 # vertical distribution of changes (1: constant absolute rate, 2: constant relative rate, 3: constant carbon-based relative rate), default = 1 - coupling: - Q: Q6 - minimum_depth: ben_col/D1m # minimum depth (m) - s_remin_target: K5/per_layer/s2 # sink for remineralized silicate (mmol Si/m^2) - ben_nit: - long_name: benthic nitrogen cycle - model: ersem/benthic_nitrogen_cycle - parameters: - q10nit: 2.0 # Q_10 temperature coefficient (-) - hM4M3: 10.0 # Michaelis-Menten constant for nitrate limitation (mmol/m^3) - ISWph: 1 # pH impact on nitrification (0: off, 1: on), default = 0 - sM4M3: 4.0 # maximum nitrification rate at 10 degrees Celsius (1/d) - xno3: 2.0 # oxygen consumed per nitrate produced (mol O_2/mol N) - pammon: 0.5 # fraction of oxygen demand fulfilled by denitrification under anaerobic conditions (-) - pdenit: 0.05 # fraction of denitrification producing dinitrogen gas (remainder produces ammonium) (-) - xn2: 1.25 # oxygen produced per N2 produced (-) - hM3G4: 1.0 # Michaelis-Menten constant for nitrate limitation of denitrification (mmol N/m^3) - coupling: - K3n: K3/per_layer/n1 # nitrate (mmol N/m^2) - K4n: K4/per_layer/n1 # ammonium (mmol N/m^2) - G2o: G2/per_layer/o1 # oxygen (mmol O_2/m^2) - N4n: N4/n # pelagic ammonium (mmol N/m^3) - benTA: zero_hz # benthic alkalinity in aerobic layer (mEq/m^2) - benTA2: zero_hz # benthic alkalinity in anaerobic layer (mEq/m^2) - K3n2: K3/per_layer/n2 # benthic nitrate in 2nd layer (mmol N/m^2) - K4n2: K4/per_layer/n2 # benthic ammonium in 2nd layer (mmol N/m^2) - G2o2: G2/per_layer/o2 # oxygen in 2nd layer (mmol O_2/m^2) - layer2_thickness: ben_col/layer2_thickness # thickness of 2nd layer (m) - H1: - long_name: benthic aerobic bacteria - model: ersem/benthic_bacteria - parameters: - qnc: 0.0167 # nitrogen to carbon ratio (mmol N/mg C) - qpc: 0.00125 # phosphorus to carbon ratio (mmol P/mg C) - c0: 1.e-06 # background carbon concentration (mg C/m^2) - q10: 2.0 # Q_10 temperature coefficient (-) - dd: 0.001 # Michaelis-Menten constant for oxygen limitation through layer thickness (m) - nfood: 3 # number of food sources - su1: 0.0005 # base affinity for food source 1 (m^2/mg C/d) - su2: 2.e-05 # base affinity for food source 2 (m^2/mg C/d) - suf2: 0.0002 # additional affinity for food source 2 subject to nutrient limitation (m^2/mg C/d), default = 0.0 - puinc2: 2.0 # affinity for nutrients relative to carbon in food source 2 (-), default = 1.0 - pue2: 0.1 # fraction of consumed food source 2 that is excreted (-), default = 0.0 - su3: 2.e-06 # base affinity for food source 3 (m^2/mg C/d) - pue3: 0.1 # fraction of consumed food source 3 that is excreted (-), default = 0.0 - pur: 0.3 # fraction of consumed carbon that is respired (-) - sr: 0.02 # specific rest respiration (1/d) - pdQ1: 0.1 # fraction of dying matter that is dissolved (-) - sd: 0.05 # specific maximum mortality related to oxygen limitation (1/d) - initialization: - c: 25.0 # carbon (mg C/m^2) - coupling: - Q1: Q1 - Q6: H1_Q6 - food1: Q1 - food2: H1_Q6 - food3: H1_Q7 - Dm: ben_col/D1m # depth interval available to bacteria (m) - K4n: K4/per_layer/n1_pw # ammonium (mmol N/m^2) - K1p: K1/per_layer/p1_pw # phosphate (mmol N/m^2) - G2o: G2/per_layer/o1 # oxygen (mmol O_2/m^2) - G3c: G3/per_layer/c1 # dissolved inorganic carbon (mmol C/m^2) - benTA: zero_hz # benthic alkalinity (mEq/m^2) - H1_Q6: - long_name: benthic aerobic bacteria POM - model: ersem/benthic_column_particulate_matter_layer - parameters: - composition: cnps # elemental composition - minimum_depth: 0.0 # minimum depth (m), default = 0.0 - variable_maximum_depth: true # maximum depth is variable, default = false - coupling: - Q: Q6 - maximum_depth: ben_col/D1m # maximum depth (m) - H1_Q7: - long_name: benthic aerobic bacteria refractory POM - model: ersem/benthic_column_particulate_matter_layer - parameters: - composition: cnp # elemental composition - minimum_depth: 0.0 # minimum depth (m), default = 0.0 - variable_maximum_depth: true # maximum depth is variable, default = false - coupling: - Q: Q7 - maximum_depth: ben_col/D1m # maximum depth (m) - H2: - long_name: benthic anaerobic bacteria - model: ersem/benthic_bacteria - parameters: - qnc: 0.0167 # nitrogen to carbon ratio (mmol N/mg C) - qpc: 0.00125 # phosphorus to carbon ratio (mmol P/mg C) - c0: 1.e-06 # background carbon concentration (mg C/m^2) - q10: 2.0 # Q_10 temperature coefficient (-) - dd: 0.01 # Michaelis-Menten constant for oxygen limitation through layer thickness (m) - nfood: 2 # number of food sources - su1: 2e-05 # base affinity for food source 1 (m^2/mg C/d) - suf1: 0.0002 # additional affinity for food source 1 subject to nutrient limitation (m^2/mg C/d), default = 0.0 - puinc1: 2.0 # affinity for nutrients relative to carbon in food source 1 (-), default = 1.0 - pue1: 0.0 # fraction of consumed food source 1 that is excreted (-), default = 0.0 - su2: 2e-06 # base affinity for food source 2 (m^2/mg C/d) - pue2: 0.0 # fraction of consumed food source 2 that is excreted (-), default = 0.0 - pur: 0.3 # fraction of consumed carbon that is respired (-) - sr: 0.02 # specific rest respiration (1/d) - pdQ1: 0.0 # fraction of dying matter that is dissolved (-) - sd: 0.05 # specific maximum mortality related to oxygen limitation (1/d) - initialization: - c: 400.0 # carbon (mg C/m^2) - coupling: - Q1: Q1 - Q6: H2_Q6 - food1: H2_Q6 - food2: H2_Q7 - Dm: ben_col/layer2_thickness # depth interval available to bacteria (m) - K4n: K4/per_layer/n2_pw # ammonium (mmol N/m^2) - K1p: K1/per_layer/p2_pw # phosphate (mmol N/m^2) - G2o: ben_nit/K6_calculator/K6 # oxygen (mmol O_2/m^2) - G3c: G3/per_layer/c2 # dissolved inorganic carbon (mmol C/m^2) - benTA: zero_hz # benthic alkalinity (mEq/m^2) - H2_Q6: - long_name: benthic anaerobic bacteria POM - model: ersem/benthic_column_particulate_matter_layer - parameters: - composition: cnps # elemental composition - variable_minimum_depth: true # minimum depth is variable, default = false - maximum_depth: 0.3 # maximum depth (m), default = 0.0 - source_depth_distribution: 3 # vertical distribution of changes (1: constant absolute rate, 2: constant relative rate, 3: constant carbon-based relative rate), default = 1 - coupling: - Q: Q6 - minimum_depth: ben_col/D1m # minimum depth (m) - H2_Q7: - long_name: benthic anaerobic bacteria refractory POM - model: ersem/benthic_column_particulate_matter_layer - parameters: - composition: cnp # elemental composition - variable_minimum_depth: true # minimum depth is variable, default = false - maximum_depth: 0.3 # maximum depth (m), default = 0.0 - source_depth_distribution: 3 # vertical distribution of changes (1: constant absolute rate, 2: constant relative rate, 3: constant carbon-based relative rate), default = 1 - coupling: - Q: Q7 - minimum_depth: ben_col/D1m # minimum depth (m) - Y2: - long_name: benthic deposit feeder - model: ersem/benthic_fauna - parameters: - qnc: 0.0119 # nitrogen to carbon ratio (mmol N/mg C) - qpc: 0.000792 # phosphorus to carbon ratio (mmol P/mg C) - c0: 0.001 # background carbon concentration (mg C/m^2) - q10: 2.0 # Q_10 temperature coefficient (-) - rlO2: 0.0 # minimum pelagic oxygen concentration (mmol O2/m^3) - hO2: 0.0 # Michaelis-Menten constant for oxygen limitation (mmol O2/m^3) - xcl: 2500.0 # abundance above which crowding reduces food uptake (mg C/m^2) - xcs: 3000.0 # Michaelis-Menten constant for the impact of crowding (mg C/m^2) - xch: 5000.0 # abundance determining asymptotic threshold of crowding limitation (-> xch/(Yc+xch) for Yc-> inf) (mg C/m^2) - su: 0.11 # specific maximum uptake at reference temperature (1/d) - lu: 250.0 # Michaelis-Menten constant for food preference as function of food concentration (mg C/m^2) - hu: 3000.0 # Michaelis-Menten constant for gross carbon uptake (mg C/m^2) - pue: 0.35 # fraction of carbon in consumed live food that goes to faeces (-) - pueQ: 0.8 # fraction of carbon in consumed detritus that goes to faeces (-) - pudil: 0.8 # relative nutrient content of faeces (-) - sd: 0.001 # specific mortality at reference temperature (1/d) - sdmO2: 1.0 # specific maximum additional mortality due to oxygen stress (1/d) - sdc: 0.022 # specific maximum additional mortality induced by cold temperature (1/d) - xdc: -0.7 # e-folding temperature factor of cold mortality response (1/degree_C) - sr: 0.0027 # specific rest respiration at reference temperature (1/d) - pur: 0.35 # fraction of assimilated food that is respired (-) - nfood: 4 # number of food sources, default = 0 - pufood1: 1.0 # preference for food source 1 (-) - pufood2: 1.0 # preference for food source 2 (-) - pufood3: 0.1 # preference for food source 3 (-) - pufood4: 1.0 # preference for food source 4 (-) - food3ispom: true # food source 3 is detritus, default = false - ptur: 1.0 # relative contribution to bioturbation (-), default = 0.0 - pirr: 1.0 # relative contribution to bioirrigation (-), default = 0.0 - initialization: - c: 3000.0 # carbon (mg C/m^2) - coupling: - food1: H1 - food2: H2 - food3: Y2_Q6_source - food4: Y4 - Q: Y2_Q6_sink - Dm: ben_col/D1m # depth of limiting layer for uptake (m) - O2o: O2/o # pelagic oxygen (mmol O_2/m^3) - G3c: G3/per_layer/c1 # carbon dioxide (mmol C/m^2) - G2o: G2/per_layer/o1 # oxygen (mmol O_2/m^2) - K1p: K1/per_layer/p1 # benthic phosphate in aerobic layer (mmol P/m^2) - K4n: K4/per_layer/n1 # benthic ammonium in aerobic layer (mmol N/m^2) - K1p2: K1/per_layer/p2 # benthic phosphate in anaerobic layer (mmol P/m^2) - K4n2: K4/per_layer/n2 # benthic ammonium in anaerobic layer (mmol N/m^2) - benTA: zero_hz # benthic alkalinity in aerobic layer (mEq/m^2) - benTA2: zero_hz # benthic alkalinity in anaerobic layer (mEq/m^2) - food2c_an: H2/c # food source 2 carbon in anaerobic layer (mg C/m^2) - food3c_an: Y2_Q6_source_anaerobic/c # food source 3 carbon in anaerobic layer (mg C/m^2) - Y2_Q6_source: - long_name: benthic deposit feeder total POM - model: ersem/benthic_column_particulate_matter_layer - parameters: - composition: cnps # elemental composition - minimum_depth: 0.0025 # minimum depth (m), default = 0.0 - maximum_depth: 0.3 # maximum depth (m), default = 0.0 - coupling: - Q: Q6 - Y2_Q6_source_anaerobic: - long_name: benthic deposit feeder anaerobic POM - model: ersem/benthic_column_particulate_matter_layer - parameters: - composition: cnps # elemental composition - variable_minimum_depth: true # minimum depth is variable, default = false - maximum_depth: 0.3 # maximum depth (m), default = 0.0 - coupling: - Q: Q6 - minimum_depth: ben_col/D1m # minimum depth (m) - Y2_Q6_sink: - long_name: benthic deposit feeder POM sink - model: ersem/benthic_column_particulate_matter_layer - parameters: - composition: cnps # elemental composition - minimum_depth: 0.0 # minimum depth (m), default = 0.0 - variable_maximum_depth: true # maximum depth is variable, default = false - coupling: - Q: Q6 - maximum_depth: Q6/pen_depth_c # maximum depth (m) - Y3: - long_name: benthic suspension feeder - model: ersem/benthic_fauna - parameters: - qnc: 0.0119 # nitrogen to carbon ratio (mmol N/mg C) - qpc: 0.000792 # phosphorus to carbon ratio (mmol P/mg C) - c0: 0.001 # background carbon concentration (mg C/m^2) - q10: 2.0 # Q_10 temperature coefficient (-) - rlO2: 0.0 # minimum pelagic oxygen concentration (mmol O2/m^3) - hO2: 0.0 # Michaelis-Menten constant for oxygen limitation (mmol O2/m^3) - xcl: 2500.0 # abundance above which crowding reduces food uptake (mg C/m^2) - xcs: 3000.0 # Michaelis-Menten constant for the impact of crowding (mg C/m^2) - xch: 5000.0 # abundance determining asymptotic threshold of crowding limitation (-> xch/(Yc+xch) for Yc-> inf) (mg C/m^2) - su: 0.09 # specific maximum uptake at reference temperature (1/d) - lu: 10.0 # Michaelis-Menten constant for food preference as function of food concentration (mg C/m^2) - hu: 300.0 # Michaelis-Menten constant for gross carbon uptake (mg C/m^2) - pue: 0.35 # fraction of carbon in consumed live food that goes to faeces (-) - pueQ: 0.85 # fraction of carbon in consumed detritus that goes to faeces (-) - pudil: 0.8 # relative nutrient content of faeces (-) - sd: 0.001 # specific mortality at reference temperature (1/d) - sdmO2: 1.0 # specific maximum additional mortality due to oxygen stress (1/d) - sdc: 0.022 # specific maximum additional mortality induced by cold temperature (1/d) - xdc: -0.7 # e-folding temperature factor of cold mortality response (1/degree_C) - sr: 0.0027 # specific rest respiration at reference temperature (1/d) - pur: 0.4 # fraction of assimilated food that is respired (-) - nfood: 6 # number of food sources, default = 0 - food1ispel: true # food source 1 is pelagic, default = false - food2ispel: true # food source 2 is pelagic, default = false - food3ispel: true # food source 3 is pelagic, default = false - food4ispel: true # food source 4 is pelagic, default = false - food5_ll: true # availability of food source 5 is limited by aerobic layer height, default = false - pufood1: 1.0 # preference for food source 1 (-) - pufood2: 1.0 # preference for food source 2 (-) - pufood3: 1.0 # preference for food source 3 (-) - pufood4: 1.0 # preference for food source 4 (-) - pufood5: 1.0 # preference for food source 5 (-) - pufood6: 0.1 # preference for food source 6 (-) - food4ispom: true # food source 4 is detritus, default = false - food6ispom: true # food source 6 is detritus, default = false - dwat: 1.0 # water layer accessible for pelagic food uptake (m), default = 1.0 - dQ6: 0.0025 # depth of available sediment layer (m), default = 0.0 - initialization: - c: 2000.0 # carbon (mg C/m^2) - coupling: - food1: P1 - food2: P2 - food3: P3 - food4: R6 - food5: H1 - food6: Y3_Q6 - Q: Y3_Q6 - Dm: ben_col/D1m # depth of limiting layer for uptake (m) - O2o: O2/o # pelagic oxygen (mmol O_2/m^3) - G3c: G3/per_layer/c1 # carbon dioxide (mmol C/m^2) - G2o: G2/per_layer/o1 # oxygen (mmol O_2/m^2) - K1p: K1/per_layer/p1 # benthic phosphate in aerobic layer (mmol P/m^2) - K4n: K4/per_layer/n1 # benthic ammonium in aerobic layer (mmol N/m^2) - K1p2: K1/per_layer/p2 # benthic phosphate in anaerobic layer (mmol P/m^2) - K4n2: K4/per_layer/n2 # benthic ammonium in anaerobic layer (mmol N/m^2) - benTA: zero_hz # benthic alkalinity in aerobic layer (mEq/m^2) - benTA2: zero_hz # benthic alkalinity in anaerobic layer (mEq/m^2) - Y3_Q6: - long_name: benthic suspension feeder POM - model: ersem/benthic_column_particulate_matter_layer - parameters: - composition: cnps # elemental composition - minimum_depth: 0.0 # minimum depth (m), default = 0.0 - maximum_depth: 0.0025 # maximum depth (m), default = 0.0 - coupling: - Q: Q6 - Y4: - long_name: benthic meiofauna - model: ersem/benthic_fauna - parameters: - qnc: 0.0119 # nitrogen to carbon ratio (mmol N/mg C) - qpc: 0.000792 # phosphorus to carbon ratio (mmol P/mg C) - c0: 0.001 # background carbon concentration (mg C/m^2) - q10: 2.0 # Q_10 temperature coefficient (-) - rlO2: 0.0 # minimum pelagic oxygen concentration (mmol O2/m^3) - hO2: 0.0 # Michaelis-Menten constant for oxygen limitation (mmol O2/m^3) - xcl: 25000.0 # abundance above which crowding reduces food uptake (mg C/m^2) - xcs: 3000.0 # Michaelis-Menten constant for the impact of crowding (mg C/m^2) - xch: 5000.0 # abundance determining asymptotic threshold of crowding limitation (-> xch/(Yc+xch) for Yc-> inf) (mg C/m^2) - su: 0.4 # specific maximum uptake at reference temperature (1/d) - lu: 50.0 # Michaelis-Menten constant for food preference as function of food concentration (mg C/m^2) - hu: 1000.0 # Michaelis-Menten constant for gross carbon uptake (mg C/m^2) - pue: 0.25 # fraction of carbon in consumed live food that goes to faeces (-) - pueQ: 0.4 # fraction of carbon in consumed detritus that goes to faeces (-) - pudil: 0.8 # relative nutrient content of faeces (-) - sd: 0.01 # specific mortality at reference temperature (1/d) - sdmO2: 1.0 # specific maximum additional mortality due to oxygen stress (1/d) - sdc: 0.02 # specific maximum additional mortality induced by cold temperature (1/d) - xdc: -0.7 # e-folding temperature factor of cold mortality response (1/degree_C) - sr: 0.01 # specific rest respiration at reference temperature (1/d) - pur: 0.45 # fraction of assimilated food that is respired (-) - nfood: 4 # number of food sources, default = 0 - pufood1: 1.0 # preference for food source 1 (-) - pufood2: 1.0 # preference for food source 2 (-) - pufood3: 1.0 # preference for food source 3 (-) - pufood4: 0.3 # preference for food source 4 (-) - food4ispom: true # food source 4 is detritus, default = false - pirr: 0.2 # relative contribution to bioirrigation (-), default = 0.0 - initialization: - c: 200.0 # carbon (mg C/m^2) - coupling: - food1: H1 - food2: H2 - food3: Y4 - food4: Y4_Q6 - Q: Y4_Q6 - Dm: ben_col/D1m # depth of limiting layer for uptake (m) - O2o: O2/o # pelagic oxygen (mmol O_2/m^3) - G3c: G3/per_layer/c1 # carbon dioxide (mmol C/m^2) - G2o: G2/per_layer/o1 # oxygen (mmol O_2/m^2) - K1p: K1/per_layer/p1 # benthic phosphate in aerobic layer (mmol P/m^2) - K4n: K4/per_layer/n1 # benthic ammonium in aerobic layer (mmol N/m^2) - K1p2: K1/per_layer/p2 # benthic phosphate in anaerobic layer (mmol P/m^2) - K4n2: K4/per_layer/n2 # benthic ammonium in anaerobic layer (mmol N/m^2) - benTA: zero_hz # benthic alkalinity in aerobic layer (mEq/m^2) - benTA2: zero_hz # benthic alkalinity in anaerobic layer (mEq/m^2) - Y4_Q6: - long_name: benthic meiofauna POM - model: ersem/benthic_column_particulate_matter_layer - parameters: - composition: cnps # elemental composition - minimum_depth: 0.0 # minimum depth (m), default = 0.0 - maximum_depth: 0.03 # maximum depth (m), default = 0.0 - coupling: - Q: Q6 - N3_flux: - model: external_surface_flux - coupling: - target: N3/n - N4_flux: - model: external_surface_flux - coupling: - target: N4/n - erosion: - model: ersem/benthic_erosion - #Diagnostics: - PON: - long_name: particulate organic nitrogen - model: weighted_sum - parameters: - n: 11 - weight5: 0.0126 - coupling: - term1: P1/n - term2: P2/n - term3: P3/n - term4: P4/n - term5: Z4/c - term6: Z5/n - term7: Z6/n - term8: B1/n - term9: R4/n - term10: R6/n - term11: R8/n - POP: - long_name: particulate organic phosphorus - model: weighted_sum - parameters: - n: 11 - weight5: 0.000786 - coupling: - term1: P1/p - term2: P2/p - term3: P3/p - term4: P4/p - term5: Z4/c - term6: Z5/p - term7: Z6/p - term8: B1/p - term9: R4/p - term10: R6/p - term11: R8/p - POSi: - model: weighted_sum - parameters: - n: 3 - coupling: - term1: P1/s - term2: R6/s - term3: R8/s - P1_fPIRIc: - long_name: diatom loss to organic carbon - model: weighted_sum - parameters: - n: 3 - coupling: - term1: P1/fPIR1c - term2: P1/fPIR2c - term3: P1/fPIRPc - P2_fPIRIc: - long_name: nanophytoplankton loss to organic carbon - model: weighted_sum - parameters: - n: 3 - coupling: - term1: P2/fPIR1c - term2: P2/fPIR2c - term3: P2/fPIRPc - P3_fPIRIc: - long_name: picophytoplankton loss to organic carbon - model: weighted_sum - parameters: - n: 3 - coupling: - term1: P3/fPIR1c - term2: P3/fPIR2c - term3: P3/fPIRPc - P4_fPIRIc: - long_name: microphytoplankton loss to organic carbon - model: weighted_sum - parameters: - n: 3 - coupling: - term1: P4/fPIR1c - term2: P4/fPIR2c - term3: P4/fPIRPc - phytoplankton_loss_to_labile_DOC: - long_name: phytoplankton loss to labile dissolved organic carbon - model: weighted_sum - parameters: - n: 4 - coupling: - term1: P1/fPIR1c - term2: P2/fPIR1c - term3: P3/fPIR1c - term4: P4/fPIR1c - phytoplankton_loss_to_labile_DON: - long_name: phytoplankton loss to labile dissolved organic nitrogen - model: weighted_sum - parameters: - n: 4 - coupling: - term1: P1/fPIR1n - term2: P2/fPIR1n - term3: P3/fPIR1n - term4: P4/fPIR1n - phytoplankton_loss_to_labile_DOP: - long_name: phytoplankton loss to labile dissolved organic phosphorus - model: weighted_sum - parameters: - n: 4 - coupling: - term1: P1/fPIR1p - term2: P2/fPIR1p - term3: P3/fPIR1p - term4: P4/fPIR1p - phytoplankton_loss_to_non_labile_DOC: - long_name: phytoplankton loss to non-labile dissolved organic carbon - model: weighted_sum - parameters: - n: 4 - coupling: - term1: P1/fPIR2c - term2: P2/fPIR2c - term3: P3/fPIR2c - term4: P4/fPIR2c - phytoplankton_loss_to_POC: - long_name: phytoplankton loss to particulate organic carbon - model: weighted_sum - parameters: - n: 4 - coupling: - term1: P1/fPIRPc - term2: P2/fPIRPc - term3: P3/fPIRPc - term4: P4/fPIRPc - phytoplankton_loss_to_PON: - long_name: phytoplankton loss to particulate organic nitrogen - model: weighted_sum - parameters: - n: 4 - coupling: - term1: P1/fPIRPn - term2: P2/fPIRPn - term3: P3/fPIRPn - term4: P4/fPIRPn - phytoplankton_loss_to_POP: - long_name: phytoplankton loss to particulate organic phosphorus - model: weighted_sum - parameters: - n: 4 - coupling: - term1: P1/fPIRPp - term2: P2/fPIRPp - term3: P3/fPIRPp - term4: P4/fPIRPp - phytoplankton_uptake_oxN: - long_name: phytoplankton uptake of oxidized nitrogen - model: weighted_sum - parameters: - n: 4 - coupling: - term1: P1/fN3PIn - term2: P2/fN3PIn - term3: P3/fN3PIn - term4: P4/fN3PIn - phytoplankton_uptake_redN: - long_name: phytoplankton uptake of reduced nitrogen - model: weighted_sum - parameters: - n: 4 - coupling: - term1: P1/fN4PIn - term2: P2/fN4PIn - term3: P3/fN4PIn - term4: P4/fN4PIn - phytoplankton_uptake_DIP: - long_name: phytoplankton uptake of dissolved inorganic phosphorus - model: weighted_sum - parameters: - n: 4 - coupling: - term1: P1/fN1PIp - term2: P2/fN1PIp - term3: P3/fN1PIp - term4: P4/fN1PIp - Z4_fphytoc: - long_name: mesozooplankton grazing of phytoplankton carbon - model: weighted_sum - parameters: - n: 4 - coupling: - term1: Z4/fprey1c - term2: Z4/fprey2c - term3: Z4/fprey3c - term4: Z4/fprey4c - Z4_fphyton: - long_name: mesozooplankton grazing of phytoplankton nitrogen - model: weighted_sum - parameters: - n: 4 - coupling: - term1: Z4/fprey1n - term2: Z4/fprey2n - term3: Z4/fprey3n - term4: Z4/fprey4n - Z4_fphytop: - long_name: mesozooplankton grazing of phytoplankton phosphorus - model: weighted_sum - parameters: - n: 4 - coupling: - term1: Z4/fprey1p - term2: Z4/fprey2p - term3: Z4/fprey3p - term4: Z4/fprey4p - Z4_fzooc: - long_name: mesozooplankton predation of phytoplankton carbon - model: weighted_sum - parameters: - n: 3 - coupling: - term1: Z4/fprey5c - term2: Z4/fprey6c - term3: Z4/fprey7c - Z4_fzoon: - long_name: mesozooplankton predation of phytoplankton nitrogen - model: weighted_sum - parameters: - n: 3 - coupling: - term1: Z4/fprey5n - term2: Z4/fprey6n - term3: Z4/fprey7n - Z4_fzoop: - long_name: mesozooplankton predation of zooplankton phosphorus - model: weighted_sum - parameters: - n: 3 - coupling: - term1: Z4/fprey5p - term2: Z4/fprey6p - term3: Z4/fprey7p - Z5_fphytoc: - long_name: microzooplankton grazing of phytoplankton carbon - model: weighted_sum - parameters: - n: 4 - coupling: - term1: Z5/fprey2c - term2: Z5/fprey3c - term3: Z5/fprey4c - term4: Z5/fprey5c - Z5_fphyton: - long_name: microzooplankton grazing of phytoplankton nitrogen - model: weighted_sum - parameters: - n: 4 - coupling: - term1: Z5/fprey2n - term2: Z5/fprey3n - term3: Z5/fprey4n - term4: Z5/fprey5n - Z5_fphytop: - long_name: microzooplankton grazing of phytoplankton phosphorus - model: weighted_sum - parameters: - n: 4 - coupling: - term1: Z5/fprey2p - term2: Z5/fprey3p - term3: Z5/fprey4p - term4: Z5/fprey5p - Z5_fzooc: - long_name: microzooplankton predation of zooplankton carbon - model: weighted_sum - parameters: - n: 2 - coupling: - term1: Z5/fprey6c - term2: Z5/fprey7c - Z5_fzoon: - long_name: microzooplankton predation of zooplankton nitrogen - model: weighted_sum - parameters: - n: 2 - coupling: - term1: Z5/fprey6n - term2: Z5/fprey7n - Z5_fzoop: - long_name: microzooplankton predation of zooplankton phosphorus - model: weighted_sum - parameters: - n: 2 - coupling: - term1: Z5/fprey6p - term2: Z5/fprey7p - Z6_fphytoc: - long_name: heterotrophic flagellate grazing of phytoplankton carbon - model: weighted_sum - parameters: - n: 2 - coupling: - term1: Z6/fprey2c - term2: Z6/fprey3c - Z6_fphyton: - long_name: heterotrophic flagellate grazing of phytoplankton nitrogen - model: weighted_sum - parameters: - n: 2 - coupling: - term1: Z6/fprey2n - term2: Z6/fprey3n - Z6_fphytop: - long_name: heterotrophic flagellate grazing of phytoplankton phosphorus - model: weighted_sum - parameters: - n: 2 - coupling: - term1: Z6/fprey2p - term2: Z6/fprey3p - total_microzooplankton_loss_to_POC: - long_name: total microzooplankton loss to particulate organic carbon - model: weighted_sum - parameters: - n: 2 - coupling: - term1: Z5/fZIRPc - term2: Z6/fZIRPc - total_microzooplankton_loss_to_PON: - long_name: total microzooplankton loss to particulate organic nitrogen - model: weighted_sum - parameters: - n: 2 - coupling: - term1: Z5/fZIRPn - term2: Z6/fZIRPn - total_microzooplankton_loss_to_POP: - long_name: total microzooplankton loss to particulate organic phosphorus - model: weighted_sum - parameters: - n: 2 - coupling: - term1: Z5/fZIRPp - term2: Z6/fZIRPp - total_microzooplankton_loss_to_DOC: - long_name: total microzooplankton loss to dissolved organic carbon - model: weighted_sum - parameters: - n: 2 - coupling: - term1: Z5/fZIRDc - term2: Z6/fZIRDc - total_microzooplankton_loss_to_DON: - long_name: total microzooplankton loss to dissolved organic nitrogen - model: weighted_sum - parameters: - n: 2 - coupling: - term1: Z5/fZIRDn - term2: Z6/fZIRDn - total_microzooplankton_loss_to_DOP: - long_name: total microzooplankton loss to dissolved organic phosphorus - model: weighted_sum - parameters: - n: 2 - coupling: - term1: Z5/fZIRDp - term2: Z6/fZIRDp - total_microzooplankton_respiration: - long_name: total microzooplankton respiration - model: weighted_sum - parameters: - n: 2 - coupling: - term1: Z5/fZIO3c - term2: Z6/fZIO3c - total_microzooplankton_loss_to_DIN: - long_name: total microzooplankton loss to dissolved inorganic nitrogen - model: weighted_sum - parameters: - n: 2 - coupling: - term1: Z5/fZINIn - term2: Z6/fZINIn - total_microzooplankton_loss_to_DIP: - long_name: total microzooplankton loss to dissolved inorganic phosphorus - model: weighted_sum - parameters: - n: 2 - coupling: - term1: Z5/fZINIp - term2: Z6/fZINIp - gross_calcification_rate: - long_name: gross calcification rate - model: weighted_sum - parameters: - n: 4 - coupling: - term1: P2/calcification - term2: Z4/calcification - term3: Z5/calcification - term4: Z6/calcification - ben_PON: - long_name: benthic particulate organic nitrogen - model: horizontal_weighted_sum - parameters: - n: 2 - coupling: - term1: Q6/n - term2: Q7/n - ben_POP: - long_name: benthic particulate organic phosphate - model: horizontal_weighted_sum - parameters: - n: 2 - coupling: - term1: Q6/p - term2: Q7/p - benthic_denitrification_ammonification: - long_name: benthic denitrification and ammonification - model: horizontal_weighted_sum - parameters: - n: 2 - coupling: - term1: ben_nit/jM3G4n - term2: ben_nit/jM3M4n - Y3_fphytoc: - long_name: benthic suspension feeder grazing of phytoplankton carbon - model: horizontal_weighted_sum - parameters: - n: 3 - coupling: - term1: Y3/fprey1c - term2: Y3/fprey2c - term3: Y3/fprey3c - Y3_fphyton: - long_name: benthic suspension feeder grazing of phytoplankton nitrogen - model: horizontal_weighted_sum - parameters: - n: 3 - coupling: - term1: Y3/fprey1n - term2: Y3/fprey2n - term3: Y3/fprey3n - Y3_fphytop: - long_name: benthic suspension feeder grazing of phytoplankton phosphorus - model: horizontal_weighted_sum - parameters: - n: 3 - coupling: - term1: Y3/fprey1p - term2: Y3/fprey2p - term3: Y3/fprey3p - Ymacro_fYG3c: - long_name: benthic macrofauna respiration - model: horizontal_weighted_sum - parameters: - n: 2 - coupling: - term1: Y2/fYG3c - term2: Y3/fYG3c - Ymacro_fYQPc: - long_name: benthic macrofauna loass to particulate organic carbon - model: horizontal_weighted_sum - parameters: - n: 2 - coupling: - term1: Y2/fYQPc - term2: Y3/fYQPc - Ymacro_fYQPn: - long_name: benthic macrofauna loass to particulate organic nitrogen - model: horizontal_weighted_sum - parameters: - n: 2 - coupling: - term1: Y2/fYQPn - term2: Y3/fYQPn - Ymacro_fYQPp: - long_name: benthic macrofauna loass to particulate organic phosphorus - model: horizontal_weighted_sum - parameters: - n: 2 - coupling: - term1: Y2/fYQPp - term2: Y3/fYQPp - Ymacro_fYKIn: - long_name: benthic macrofauna loass to dissolved inorganic nitrogen - model: horizontal_weighted_sum - parameters: - n: 2 - coupling: - term1: Y2/fYKIn - term2: Y3/fYKIn - Ymacro_fYK1p: - long_name: benthic macrofauna loass to dissolved inorganic phosphorus - model: horizontal_weighted_sum - parameters: - n: 2 - coupling: - term1: Y2/fYK1p - term2: Y3/fYK1p - Q6_remins: - long_name: benthic remineralisation of silicate - model: horizontal_weighted_sum - parameters: - n: 1 - weight1: 0.007 - coupling: - term1: Q6/s - net_PelBen_POC: - long_name: flux of particulate organic carbon from pelagic to benthos - model: horizontal_weighted_sum - parameters: - n: 17 - weight17: -1. - coupling: - term1: R4/dep1c - term2: R4/dep2c - term3: R6/dep1c - term4: R6/dep2c - term5: R8/dep1c - term6: R8/dep2c - term7: P1/dep1c - term8: P1/dep2c - term9: P1/dep3c - term10: P4/dep1c - term11: P4/dep2c - term12: P4/dep3c - term13: Y3/fprey1c - term14: Y3/fprey2c - term15: Y3/fprey3c - term16: Y3/fprey4c - term17: Q6/resuspension_flux_c - net_PelBen_PON: - long_name: flux of particulate organic nitrogen from pelagic to benthos - model: horizontal_weighted_sum - parameters: - n: 17 - weight17: -1. - coupling: - term1: R4/dep1n - term2: R4/dep2n - term3: R6/dep1n - term4: R6/dep2n - term5: R8/dep1n - term6: R8/dep2n - term7: P1/dep1n - term8: P1/dep2n - term9: P1/dep3n - term10: P4/dep1n - term11: P4/dep2n - term12: P4/dep3n - term13: Y3/fprey1n - term14: Y3/fprey2n - term15: Y3/fprey3n - term16: Y3/fprey4n - term17: Q6/resuspension_flux_n - net_PelBen_POP: - long_name: flux of particulate organic phosphorus from pelagic to benthos - model: horizontal_weighted_sum - parameters: - n: 17 - weight17: -1. - coupling: - term1: R4/dep1p - term2: R4/dep2p - term3: R6/dep1p - term4: R6/dep2p - term5: R8/dep1p - term6: R8/dep2p - term7: P1/dep1p - term8: P1/dep2p - term9: P1/dep3p - term10: P4/dep1p - term11: P4/dep2p - term12: P4/dep3p - term13: Y3/fprey1p - term14: Y3/fprey2p - term15: Y3/fprey3p - term16: Y3/fprey4p - term17: Q6/resuspension_flux_p - net_PelBen_POSi: - long_name: flux of particulate organic silicate from pelagic to benthos - model: horizontal_weighted_sum - parameters: - n: 6 - weight6: -1. - coupling: - term1: R6/dep1s - term2: R8/dep1s - term3: P1/dep1s - term4: Y3/fprey1s - term5: Y3/fprey4s - term6: Q6/resuspension_flux_s From ef3c60c3ea5dbd0b335fb742369159f9fda06f0b Mon Sep 17 00:00:00 2001 From: Helen Powley Date: Mon, 24 Nov 2025 13:31:19 +0000 Subject: [PATCH 24/26] Add yaml file for tDOC --- testcases/fabm_tDOC.yaml | 1328 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 1328 insertions(+) create mode 100644 testcases/fabm_tDOC.yaml diff --git a/testcases/fabm_tDOC.yaml b/testcases/fabm_tDOC.yaml new file mode 100644 index 0000000..a44e5ac --- /dev/null +++ b/testcases/fabm_tDOC.yaml @@ -0,0 +1,1328 @@ +check_conservation: false +require_initialization: true +instances: + + zenithAngle: + model: ersem/zenith_angle + light: + model: ersem/light_iop_ady + parameters: + a0w: 0.03 # absorption coefficient of clear water (1/m), default = 0.036 + b0w: 0.0015 # backscatter coefficient of clear water (1/m), default = 0.0016 + pEIR_eow: 0.5 # photosynthetically active fraction of shortwave radiation (-), default = 0.5 + relax: 0.143 # relaxation towards satellite gelbstoff absorption (1/d), default=0.033 + initialization: + ADY: 0.05 + N1: + long_name: phosphate + model: ersem/pelagic_base + parameters: + composition: p # elemental composition + c0: 0.001 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + p: 0.4 # phosphorus (mmol P/m^3) + N3: + long_name: nitrate + model: ersem/pelagic_base + parameters: + composition: n # elemental composition + c0: 0.001 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + n: 8.0 # nitrogen (mmol N/m^3) + N4: + long_name: ammonium + model: ersem/pelagic_base + parameters: + composition: n # elemental composition + c0: 0.001 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + n: 0.1 # nitrogen (mmol N/m^3) + N5: + long_name: silicate + model: ersem/pelagic_base + parameters: + composition: s # elemental composition + s0: 0.0003 # background silicon concentration (mmol Si/m^3), default = 0.0 + initialization: + s: 4.5 # silicate (mmol Si/m^3) + O2: + long_name: oxygen + model: ersem/oxygen + parameters: + ISWO2: 2 # saturation formulation (1: legacy ERSEM, 2: Weiss 1970) + initialization: + o: 300.0 # oxygen (mmol O_2/m^3) + O3: + long_name: carbonate + model: ersem/carbonate + parameters: + iswCO2: 1 # carbonate system diagnostics (0: off, 1: on), default = 1 + iswASFLUX: 1 # air-sea CO2 exchange (0: none, 1: Nightingale and Liss, 2: Wanninkhof 1992 without chemical enhancement, 3: Wanninkhof 1992 with chemical enhancement, 4: Wanninkhof 1999), default = 1 + iswtalk: 2 # alkalinity formulation (1-4: from salinity and temperature, 5: dynamic alkalinity), default = 5 + iswbioalk: 1 + initialization: + c: 2130.0 # total dissolved inorganic carbon (mmol C/m^3) + TA: 2300.0 # total alkalinity (mmol/m^3) + R1: + long_name: labile dissolved organic matter + model: ersem/pelagic_base + parameters: + composition: cnp # elemental composition + c0: 0.0034 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + c: 10.0 # carbon (mg C/m^3) + n: 0.14 # nitrogen (mmol N/m^3) + p: 0.01 # phosphorus (mmol P/m^3) + R2: + long_name: semi-labile dissolved organic matter + model: ersem/pelagic_base + parameters: + composition: c # elemental composition + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + c: 12.0 # carbon (mg C/m^3) + R3: + long_name: semi-refractory dissolved organic matter + model: ersem/pelagic_base + parameters: + composition: c # elemental composition + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + c: 12.0 # carbon (mg C/m^3) + R4: + long_name: small-size pom + model: ersem/pelagic_base + parameters: + composition: cnpf # elemental composition + iopABS: 1e-05 # specific shortwave absorption (m^2/mg C), default = 0.0 + iopBBS: 1.6e-05 # specific shortwave backscatter (m^2/mg C), default = 0.0 + rm: 1.0 # sinking velocity (m/d), default = 0.0 + ndeposition: 2 # number of target pools where the sedimentation flux goes (-) + qxc2: 0.1 + qxn2: 0.1 + qxp2: 0.06 + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + c: 7.2 # carbon (mg C/m^3) + n: 0.1 # nitrogen (mmol N/m^3) + p: 0.007 # phosphorus (mmol P/m^3) + coupling: + deposition_target1: Q6/surface + deposition_target2: Q7/surface + R6: + long_name: medium-size pom + model: ersem/pelagic_base + parameters: + composition: cnpsf # elemental composition + iopABS: 1e-05 # specific shortwave absorption (m^2/mg C), default = 0.0 + iopBBS: 1.6e-05 # specific shortwave backscatter (m^2/mg C), default = 0.0 + rm: 5.0 # sinking velocity (m/d), default = 0.0 + ndeposition: 2 # number of target pools where the sedimentation flux goes (-) + qxc2: 0.1 + qxn2: 0.1 + qxp2: 0.06 + qxs2: 0.0 + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + c: 17.0 # carbon (mg C/m^3) + n: 0.24 # nitrogen (mmol N/m^3) + p: 0.02 # phosphorus (mmol P/m^3) + s: 0.1 # silicate (mmol Si/m^3) + coupling: + deposition_target1: Q6/surface + deposition_target2: Q7/surface + R8: + long_name: large-size pom + model: ersem/pelagic_base + parameters: + composition: cnps # elemental composition + iopABS: 1e-05 # specific shortwave absorption (m^2/mg C), default = 0.0 + iopBBS: 1.6e-05 # specific shortwave backscatter (m^2/mg C), default = 0.0 + rm: 10.0 # sinking velocity (m/d), default = 0.0 + ndeposition: 2 # number of target pools where the sedimentation flux goes (-) + qxc2: 0.1 + qxn2: 0.1 + qxp2: 0.06 + qxs2: 0.0 + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + c: 0.17 # carbon (mg C/m^3) + n: 0.0024 # nitrogen (mmol N/m^3) + p: 0.0002 # phosphorus (mmol P/m^3) + s: 0.001 # silicate (mmol Si/m^3) + coupling: + deposition_target1: Q6/surface + deposition_target2: Q7/surface + Q1: + long_name: benthic dissolved organic matter + model: ersem/benthic_base + parameters: + composition: cnp # elemental composition + c0: 0.001 # background carbon concentration (mg C/m^2) + initialization: + c: 18.9 # carbon (mg C/m^2) + n: 0.6 # nitrogen (mmol N/m^2) + p: 0.0035 # phosphorus (mmol P/m^2) + Q6: + long_name: benthic particulate organic matter + model: ersem/benthic_column_particulate_matter + parameters: + composition: cnpsf # elemental composition + resuspension: true # enable resuspension, default = false + c0: 0.001 # background carbon concentration (mg C/m^2) + initialization: + c: 3052.0 # carbon (mg C/m^2) + n: 3.5 # nitrogen (mmol N/m^2) + p: 0.5 # phosphorus (mmol P/m^2) + s: 149.0 # silicate (mmol Si/m^2) + pen_depth_c: 0.0173 # penetration depth of carbon (m) + pen_depth_n: 0.02 # penetration depth of nitrogen (m) + pen_depth_p: 0.025 # penetration depth of phosphorus (m) + pen_depth_s: 0.0313 # penetration depth of silicate (m) + coupling: + RP: R6 + Q7: + long_name: benthic refractory matter + model: ersem/benthic_column_particulate_matter + parameters: + composition: cnp # elemental composition + burial: true # enable burial, default = false + c0: 0.001 # background carbon concentration (mg C/m^2) + initialization: + c: 30520.0 # carbon (mg C/m^2) + n: 80.0 # nitrogen (mmol N/m^2) + p: 8.0 # phosphorus (mmol P/m^2) + pen_depth_c: 0.2 # penetration depth of carbon (m) + pen_depth_n: 0.25 # penetration depth of nitrogen (m) + pen_depth_p: 0.313 # penetration depth of phosphorus (m) + coupling: + burial_target: Q17 + Q17: + long_name: benthic buried matter + model: ersem/benthic_base + parameters: + composition: cnp # elemental composition + initialization: + c: 0.0 # carbon (mg C/m^2) + n: 0.0 # nitrogen (mmol N/m^2) + p: 0.0 # phosphorus (mmol P/m^2) + B1: + long_name: bacteria + model: ersem/bacteria_docdyn + parameters: + iswBlim: 2 # nutrient limitation (1: minimum of inorganic and organic availability, 2: additive availability) + q10: 2.0 # Q_10 temperature coefficient (-) + chdo: 0.31 # Michaelis-Menten constant for oxygen limitation (-) + chn: 0.5 # Michaelis-Menten constant for nitrate limitation (mmol N/m^3) + chp: 0.1 # Michaelis-Menten constant for phosphate limitation (mmol P/m^3) + sd: 0.05 # specific mortality at reference temperature (1/d) + sum: 2.2 # maximum specific uptake at reference temperature (1/d) + pu: 0.6 # efficiency at high oxygen levels (-) + puo: 0.2 # efficiency at low oxygen levels (-) + srs: 0.1 # specific rest respiration at reference temperature (1/d) + sR1: 1.0 # maximum turn-over rate of DOM (1/d), default = 1.0 + qpc: 0.0019 # maximum phosphorus to carbon ratio (mmol P/mg C) + qnc: 0.0167 # maximum nitrogen to carbon ratio (mmol N/mg C) + ur_O2: 0.1 # oxygen consumed per carbon respired (mmol O_2/mg C) + sR1N1: 0.0 # mineralisation rate of labile dissolved organic phosphorus (1/d) + sR1N4: 0.0 # mineralisation rate of labile dissolved organic nitrogen (1/d) + fsink: 7e-05 # scavenging rate for iron (1/d) + c0: 0.01 # background carbon concentration (mg C/m^3) + nRP: 3 # number of substrates, default = 0 + sRP1R1: 0.01 # remineralisation of substrate 1 to DOM (1/d) + sRP2R1: 0.0025 # remineralisation of substrate 2 to DOM (1/d) + sRP3R1: 0.001 # remineralisation of substrate 3 to DOM (1/d) + rR2: 0.0075 # fraction of semi-labile DOC available to bacteria (-) + rR3: 0.0025 # fraction of semi-refractory DOC available to bacteria (-) + frR3: 0.3 # fraction of activity respiration converted to semi-refractory DOC (-) + nTD: 6 # number of substrates, default = 0 + rTD1: 0.003525 # fraction of tDOC pool 1 available for bacteria + rTD2: 0.000627 # factor of .17777 from 30d # fraction of tDOC pool 2 available for bacteria + rTD3: 0.000275 # factor of .078 from 30d # fraction of tDOC pool 3 available for bacteria + rTD4: 0.0106 # fraction of tDOC pool 4 available for bacteria + rTD5: 0.001888 # factor of .17777 from 30d # fraction of tDOC pool 5 available for bacteria + rTD6: 0.000825 # factor of .078 from 30d # fraction of tDOC pool 6 available for bacteria + initialization: + c: 15.7 # carbon (mg C/m^3) + n: 0.26 # nitrogen (mmol N/m^3) + p: 0.029 # phosphorus (mmol P/m^3) + coupling: + RP1: R4 + RP2: R6 + RP3: R8 + N1p: N1/p # phosphate (mmol P/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + R1c: R1/c # labile dissolved organic carbon (mg C/m^3) + R1p: R1/p # labile dissolved organic phosphorus (mmol P/m^3) + R1n: R1/n # labile dissolved organic nitrogen (mmol N/m^3) + R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) + R3c: R3/c + TD1: T1_30d/shadow # terrigenous dissolved organic carbon pool 1 (mg C/m^3) + TD2: T1_8y/shadow # terrigenous dissolved organic carbon pool 2 (mg C/m^3) + TD3: T1_70y/shadow # terrigenous dissolved organic carbon pool 3 (mg C/m^3) + TD4: T2_30d/shadow # terrigenous dissolved organic carbon pool 4 (mg C/m^3) + TD5: T2_8y/shadow # terrigenous dissolved organic carbon pool 5 (mg C/m^3) + TD6: T2_70y/shadow # terrigenous dissolved organic carbon pool 6 (mg C/m^3) + O3c: O3/c # carbon dioxide (mmol C/m^3) + O2o: O2/o # oxygen (mmol O_2/m^3) + pel_nit: + long_name: pelagic nitrification + model: ersem/nitrification + parameters: + q10: 2.0 # Q_10 temperature coefficient (-) + ISWph: 1 # pH impact on nitrification (0: off, 1: on) + sN4N3: 0.5 # specific nitrification rate (1/d) + chN3o: 2700.0 # Michaelis-Menten constant for cubic oxygen dependence of nitrification ((mmol O_2/m^3)^3) + chN4n: 0.5 # Michaelis-Menten constant for cubic ammonium dependence of nitrification ((mmol N/m^3)^3), default = 0.0 + coupling: + N3n: N3/n # nitrate (mmol N/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + O2o: O2/o # oxygen (mmol O_2/m^3) + P1: + long_name: diatoms + model: ersem/primary_producer + parameters: + sum: 1.375 # maximum specific productivity at reference temperature (1/d) + q10: 2.0 # Q_10 temperature coefficient (-) + srs: 0.04 # specific rest respiration at reference temperature (1/d) + pu_ea: 0.2 # excreted fraction of primary production (-) + pu_ra: 0.2 # respired fraction of primary production (-) + qnlc: 0.0042 # minimum nitrogen to carbon ratio (mmol N/mg C) + qplc: 0.0001 # minimum phosphorus to carbon ratio (mmol P/mg C) + xqcp: 1.0 # threshold for phosphorus limitation (relative to Redfield ratio) (-) + xqcn: 1.0 # threshold for nitrogen limitation (relative to Redfield ratio) (-) + xqp: 2.0 # maximum phosphorus to carbon ratio (relative to Redfield ratio) (-) + xqn: 1.075 # maximum nitrogen to carbon ratio (relative to Redfield ratio) (-) + qun3: 0.0025 # nitrate affinity (m^3/mg C/d) + qun4: 0.0025 # ammonium affinity (m^3/mg C/d) + qurp: 0.003 # phosphate affinity (m^3/mg C/d) + snplux: 1.0 # specific tendency of luxury uptake of nutrients towards maximum quota (1/d), default = 1.0 + use_Si: true # use silicate, default = false + qsc: 0.0118 # maximum silicate to carbon ratio (mmol Si/mg C) + chs: 0.2 # Michaelis-Menten constant for silicate limitation (mmol/m^3) + sdo: 0.05 # 1.1 of minimal specific lysis rate (1/d) + alpha: 4.0 # initial slope of PI-curve (mg C m^2/mg Chl/W/d) + beta: 0.07 # photoinhibition parameter (mg C m^2/mg Chl/W/d) + phim: 0.06 # maximum effective chlorophyll to carbon photosynthesis ratio (mg Chl/mg C) + Limnut: 1 # nitrogen-phosphorus colimitation formulation (0: geometric mean, 1: minimum, 2: harmonic mean) + docdyn: true # use dynamic ratio of labile to semi-labile DOM production, default = false + uB1c_O2: 0.11 # oxygen produced per unit of carbon fixed (mmol O_2/mg C) + urB1_O2: 0.1 # oxygen consumed per unit of carbon respired (mmol O_2/mg C) + iopABS: 0.007 # specific shortwave absorption (m^2/mg Chl), default = 0.008 + iopBBS: 0.00048 # specific shortwave backscatter (m^2/mg Chl), default = 0.003 + c0: 0.0001 # background carbon concentration (mg C/m^3), default = 0.0 + resm: 5.0 # maximum nutrient-limitation-induced sinking velocity (m/d), default = 0.0 + esni: 0.7 # level of nutrient limitation below which sinking commences (-) + cenh: false # enable atmospheric CO2 influence on photosynthesis, default = false + ndeposition: 3 # number of target pools for sedimentation, default = 1 + qxc2: 0.2 # fraction of carbon sinking into deposition target 2 (-) + qxc3: 0.005 # fraction of carbon sinking into deposition target 3 (-) + qxn2: 0.2 # fraction of nitrogen sinking into deposition target 2 (-) + qxn3: 0.005 # fraction of nitrogen sinking into deposition target 3 (-) + qxp2: 0.24 # fraction of phosphorus sinking into deposition target 2 (-) + qxp3: 0.003 # fraction of phosphorus sinking into deposition target 3 (-) + qxs2: 0.0 # fraction of silicate sinking into deposition target 2 (-) + qxs3: 0.0 # fraction of silicate sinking into deposition target 3 (-) + initialization: + c: 8.0 # carbon (mg C/m^3) + n: 0.1114 # nitrogen (mmol N/m^3) + p: 0.009 # phosphorus (mmol P/m^3) + s: 0.128 # silicate (mmol Si/m^3) + Chl: 0.4 # chlorophyll a (mg/m^3) + coupling: + RP: R6 + deposition_target1: Q6/surface + deposition_target2: Q1 + deposition_target3: Q7/surface + N1p: N1/p # phosphate (mmol P/m^3) + N3n: N3/n # nitrate (mmol N/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + N5s: N5/s # silicate (mmol Si/m^3) + R1c: R1/c # dissolved organic carbon (mg C/m^3) + R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) + R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) + R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) + O2o: O2/o # oxygen (mmol O_2/m^3) + O3c: O3/c # carbon dioxide (mmol C/m^3) + P2: + long_name: nanophytoplankton + model: ersem/primary_producer + parameters: + sum: 1.625 # maximum specific productivity at reference temperature (1/d) + q10: 2.0 # Q_10 temperature coefficient (-) + srs: 0.04 # specific rest respiration at reference temperature (1/d) + pu_ea: 0.2 # excreted fraction of primary production (-) + pu_ra: 0.2 # respired fraction of primary production (-) + qnlc: 0.005 # minimum nitrogen to carbon ratio (mmol N/mg C) + qplc: 0.000225 # minimum phosphorus to carbon ratio (mmol P/mg C) + xqcp: 1.0 # threshold for phosphorus limitation (relative to Redfield ratio) (-) + xqcn: 1.0 # threshold for nitrogen limitation (relative to Redfield ratio) (-) + xqp: 2.0 # maximum phosphorus to carbon ratio (relative to Redfield ratio) (-) + xqn: 1.075 # maximum nitrogen to carbon ratio (relative to Redfield ratio) (-) + qun3: 0.004 # nitrate affinity (m^3/mg C/d) + qun4: 0.004 # ammonium affinity (m^3/mg C/d) + qurp: 0.004 # phosphate affinity (m^3/mg C/d) + snplux: 1.0 # specific tendency of luxury uptake of nutrients towards maximum quota (1/d), default = 1.0 + use_Si: false # use silicate, default = false + sdo: 0.05 # 1.1 of minimal specific lysis rate (1/d) + alpha: 5.0 # initial slope of PI-curve (mg C m^2/mg Chl/W/d) + beta: 0.1 # photoinhibition parameter (mg C m^2/mg Chl/W/d) + phim: 0.025 # maximum effective chlorophyll to carbon photosynthesis ratio (mg Chl/mg C) + Limnut: 1 # nitrogen-phosphorus colimitation formulation (0: geometric mean, 1: minimum, 2: harmonic mean) + docdyn: true # use dynamic ratio of labile to semi-labile DOM production, default = false + uB1c_O2: 0.11 # oxygen produced per unit of carbon fixed (mmol O_2/mg C) + urB1_O2: 0.1 # oxygen consumed per unit of carbon respired (mmol O_2/mg C) + iopABS: 0.0041 # specific shortwave absorption (m^2/mg Chl), default = 0.008 + iopBBS: 0.003 # specific shortwave backscatter (m^2/mg Chl), default = 0.003 + c0: 0.001 # background carbon concentration (mg C/m^3), default = 0.0 + calcify: true # calcify, default = false + resm: 0.0 # maximum nutrient-limitation-induced sinking velocity (m/d), default = 0.0 + esni: 0.7 # level of nutrient limitation below which sinking commences (-) + cenh: false # enable atmospheric CO2 influence on photosynthesis, default = false + ndeposition: 3 # number of target pools for sedimentation, default = 1 + qxc2: 0.5 # fraction of carbon sinking into deposition target 2 (-) + qxc3: 0.05 # fraction of carbon sinking into deposition target 3 (-) + qxn2: 0.5 # fraction of nitrogen sinking into deposition target 2 (-) + qxn3: 0.05 # fraction of nitrogen sinking into deposition target 3 (-) + qxp2: 0.6 # fraction of phosphorus sinking into deposition target 2 (-) + qxp3: 0.03 # fraction of phosphorus sinking into deposition target 3 (-) + initialization: + c: 5.9 # carbon (mg C/m^3) + n: 0.0926 # nitrogen (mmol N/m^3) + p: 0.0036 # phosphorus (mmol P/m^3) + Chl: 0.3 # chlorophyll a (mg/m^3) + coupling: + RP: R4 + deposition_target1: Q6/surface + deposition_target2: Q1 + deposition_target3: Q7/surface + N1p: N1/p # phosphate (mmol P/m^3) + N3n: N3/n # nitrate (mmol N/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + R1c: R1/c # dissolved organic carbon (mg C/m^3) + R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) + R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) + R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) + O2o: O2/o # oxygen (mmol O_2/m^3) + O3c: O3/c # carbon dioxide (mmol C/m^3) + RainR: L2/RainR # rain ratio (PIC : POC) (-) + L2c: L2/c # free calcite (mg C/m^3) + P3: + long_name: picophytoplankton + model: ersem/primary_producer + parameters: + sum: 2.0 # maximum specific productivity at reference temperature (1/d) + q10: 2.0 # Q_10 temperature coefficient (-) + srs: 0.045 # specific rest respiration at reference temperature (1/d) + pu_ea: 0.2 # excreted fraction of primary production (-) + pu_ra: 0.2 # respired fraction of primary production (-) + qnlc: 0.006 # minimum nitrogen to carbon ratio (mmol N/mg C) + qplc: 0.00035 # minimum phosphorus to carbon ratio (mmol P/mg C) + xqcp: 1.0 # threshold for phosphorus limitation (relative to Redfield ratio) (-) + xqcn: 1.0 # threshold for nitrogen limitation (relative to Redfield ratio) (-) + xqp: 1.5 # maximum phosphorus to carbon ratio (relative to Redfield ratio) (-) + xqn: 1.05 # maximum nitrogen to carbon ratio (relative to Redfield ratio) (-) + qun3: 0.006 # nitrate affinity (m^3/mg C/d) + qun4: 0.007 # ammonium affinity (m^3/mg C/d) + qurp: 0.006 # phosphate affinity (m^3/mg C/d) + snplux: 1.0 # specific tendency of luxury uptake of nutrients towards maximum quota (1/d), default = 1.0 + use_Si: false # use silicate, default = false + sdo: 0.055 # 1.1 of minimal specific lysis rate (1/d) + alpha: 6.0 # initial slope of PI-curve (mg C m^2/mg Chl/W/d) + beta: 0.12 # photoinhibition parameter (mg C m^2/mg Chl/W/d) + phim: 0.015 # maximum effective chlorophyll to carbon photosynthesis ratio (mg Chl/mg C) + Limnut: 1 # nitrogen-phosphorus colimitation formulation (0: geometric mean, 1: minimum, 2: harmonic mean) + docdyn: true # use dynamic ratio of labile to semi-labile DOM production, default = false + uB1c_O2: 0.11 # oxygen produced per unit of carbon fixed (mmol O_2/mg C) + urB1_O2: 0.1 # oxygen consumed per unit of carbon respired (mmol O_2/mg C) + iopABS: 0.023 # specific shortwave absorption (m^2/mg Chl), default = 0.008 + iopBBS: 0.003 # specific shortwave backscatter (m^2/mg Chl), default = 0.003 + c0: 0.0088 # background carbon concentration (mg C/m^3), default = 0.0 + resm: 0.0 # maximum nutrient-limitation-induced sinking velocity (m/d), default = 0.0 + esni: 0.7 # level of nutrient limitation below which sinking commences (-) + cenh: false # enable atmospheric CO2 influence on photosynthesis, default = false + ndeposition: 3 # number of target pools for sedimentation, default = 1 + qxc2: 0.5 # fraction of carbon sinking into deposition target 2 (-) + qxc3: 0.05 # fraction of carbon sinking into deposition target 3 (-) + qxn2: 0.5 # fraction of nitrogen sinking into deposition target 2 (-) + qxn3: 0.05 # fraction of nitrogen sinking into deposition target 3 (-) + qxp2: 0.6 # fraction of phosphorus sinking into deposition target 2 (-) + qxp3: 0.03 # fraction of phosphorus sinking into deposition target 3 (-) + initialization: + c: 5.9 # carbon (mg C/m^3) + n: 0.0926 # nitrogen (mmol N/m^3) + p: 0.0036 # phosphorus (mmol P/m^3) + Chl: 0.3 # chlorophyll a (mg/m^3) + coupling: + RP: R4 + deposition_target1: Q6/surface + deposition_target2: Q1 + deposition_target3: Q7/surface + N1p: N1/p # phosphate (mmol P/m^3) + N3n: N3/n # nitrate (mmol N/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + R1c: R1/c # dissolved organic carbon (mg C/m^3) + R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) + R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) + R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) + O2o: O2/o # oxygen (mmol O_2/m^3) + O3c: O3/c # carbon dioxide (mmol C/m^3) + P4: + long_name: microphytoplankton + model: ersem/primary_producer + parameters: + sum: 1.125 # maximum specific productivity at reference temperature (1/d) + q10: 2.0 # Q_10 temperature coefficient (-) + srs: 0.035 # specific rest respiration at reference temperature (1/d) + pu_ea: 0.2 # excreted fraction of primary production (-) + pu_ra: 0.2 # respired fraction of primary production (-) + qnlc: 0.0042 # minimum nitrogen to carbon ratio (mmol N/mg C) + qplc: 0.0001 # minimum phosphorus to carbon ratio (mmol P/mg C) + xqcp: 1.0 # threshold for phosphorus limitation (relative to Redfield ratio) (-) + xqcn: 1.0 # threshold for nitrogen limitation (relative to Redfield ratio) (-) + xqp: 2.7 # maximum phosphorus to carbon ratio (relative to Redfield ratio) (-) + xqn: 1.1 # maximum nitrogen to carbon ratio (relative to Redfield ratio) (-) + qun3: 0.002 # nitrate affinity (m^3/mg C/d) + qun4: 0.002 # ammonium affinity (m^3/mg C/d) + qurp: 0.002 # phosphate affinity (m^3/mg C/d) + snplux: 1.0 # specific tendency of luxury uptake of nutrients towards maximum quota (1/d), default = 1.0 + use_Si: false # use silicate, default = false + sdo: 0.045 # 1.1 of minimal specific lysis rate (1/d) + alpha: 3.0 # initial slope of PI-curve (mg C m^2/mg Chl/W/d) + beta: 0.06 # photoinhibition parameter (mg C m^2/mg Chl/W/d) + phim: 0.045 # maximum effective chlorophyll to carbon photosynthesis ratio (mg Chl/mg C) + Limnut: 1 # nitrogen-phosphorus colimitation formulation (0: geometric mean, 1: minimum, 2: harmonic mean) + docdyn: true # use dynamic ratio of labile to semi-labile DOM production, default = false + uB1c_O2: 0.11 # oxygen produced per unit of carbon fixed (mmol O_2/mg C) + urB1_O2: 0.1 # oxygen consumed per unit of carbon respired (mmol O_2/mg C) + iopABS: 0.008 # specific shortwave absorption (m^2/mg Chl), default = 0.008 + iopBBS: 0.00048 # specific shortwave backscatter (m^2/mg Chl), default = 0.003 + c0: 0.0001 # background carbon concentration (mg C/m^3), default = 0.0 + resm: 5.0 # maximum nutrient-limitation-induced sinking velocity (m/d), default = 0.0 + esni: 0.7 # level of nutrient limitation below which sinking commences (-) + cenh: false # enable atmospheric CO2 influence on photosynthesis, default = false + ndeposition: 3 # number of target pools for sedimentation, default = 1 + qxc2: 0.5 # fraction of carbon sinking into deposition target 2 (-) + qxc3: 0.05 # fraction of carbon sinking into deposition target 3 (-) + qxn2: 0.5 # fraction of nitrogen sinking into deposition target 2 (-) + qxn3: 0.05 # fraction of nitrogen sinking into deposition target 3 (-) + qxp2: 0.6 # fraction of phosphorus sinking into deposition target 2 (-) + qxp3: 0.03 # fraction of phosphorus sinking into deposition target 3 (-) + initialization: + c: 5.9 # carbon (mg C/m^3) + n: 0.0926 # nitrogen (mmol N/m^3) + p: 0.0036 # phosphorus (mmol P/m^3) + Chl: 0.3 # chlorophyll a (mg/m^3) + coupling: + RP: R6 + deposition_target1: Q6/surface + deposition_target2: Q1 + deposition_target3: Q7/surface + N1p: N1/p # phosphate (mmol P/m^3) + N3n: N3/n # nitrate (mmol N/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + R1c: R1/c # dissolved organic carbon (mg C/m^3) + R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) + R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) + R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) + O2o: O2/o # oxygen (mmol O_2/m^3) + O3c: O3/c # carbon dioxide (mmol C/m^3) + Z4: + long_name: mesozooplankton + model: ersem/mesozooplankton + parameters: + q10: 2.0 # Q_10 temperature coefficient (-) + minfood: 12.0 # Michaelis-Menten constant to perceive food (mg C/m^3) + chuc: 36.0 # Michaelis-Menten constant for food uptake (mg C/m^3) + sum: 1.0 # maximum specific uptake at reference temperature (1/d) + pu: 0.6 # assimilation efficiency (-) + pu_ea: 0.5 # fraction of unassimilated prey that is excreted (not respired) (-) + pu_eaR: 0.9 # fraction of unassimilated detritus that is excreted (not respired) (-) + pe_R1: 0.5 # dissolved fraction of excreted/dying matter (-) + srs: 0.015 # specific rest respiration at reference temperature (1/d) + sd: 0.05 # basal mortality (1/d) + sdo: 0.2 # maximum mortality due to oxygen limitation (1/d) + chro: 7.81 # Michaelis-Menten constant for oxygen limitation (-) + qpc: 0.000786 # phosphorus to carbon ratio (mmol P/mg C) + qnc: 0.0126 # nitrogen to carbon ratio (mmol N/mg C) + Minprey: 300.0 # food threshold for overwintering state (mg C/m^2) + repw: 0.0025 # specific overwintering respiration (1/d) + mort: 0.0025 # specific overwintering mortality (1/d) + R1R2: 1.0 # labile fraction of produced dissolved organic carbon (-) + xR1p: 1.2 # transfer of phosphorus to DOM, relative to POM (-), default = 0.0 + xR1n: 1.0 # transfer of nitrogen to DOM, relative to POM (-), default = 0.0 + urB1_O2: 0.1 # oxygen consumed per carbon respired (mmol O_2/mg C) + gutdiss: 0.5 # fraction of prey calcite that dissolves after ingestion (-) + c0: 0.0033 # background concentration (mg C/m^3) + nprey: 9 # number of prey types, default = 0 + suprey1: 0.15 # relative affinity for prey type 1 (-) + suprey2: 0.05 # relative affinity for prey type 2 (-) + suprey3: 0.0 # relative affinity for prey type 3 (-) + suprey4: 0.15 # relative affinity for prey type 4 (-) + suprey5: 0.25 # relative affinity for prey type 5 (-) + suprey6: 0.25 # relative affinity for prey type 6 (-) + suprey7: 0.05 # relative affinity for prey type 7 (-) + suprey8: 0.0 # relative affinity for prey type 8 (-) + suprey9: 0.1 # relative affinity for prey type 9 (-) + prey9ispom: true # prey type 9 is detritus, default = false + initialization: + c: 1.2 # carbon (mg C/m^3) + coupling: + prey1: P1 + prey2: P2 + prey3: P3 + prey4: P4 + prey5: Z4 + prey6: Z5 + prey7: Z6 + prey8: B1 + prey9: R6 + RP: R8 + N1p: N1/p # phosphate (mmol P/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + R1c: R1/c # dissolved organic carbon (mg C/m^3) + R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) + R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) + R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) + O2o: O2/o # oxygen source (mmol O_2/m^3) + O3c: O3/c # carbon dioxide sink (mmol C/m^3) + L2c: L2/c # calcite (mg C/m^3) + Z5: + long_name: microzooplankton + model: ersem/microzooplankton + parameters: + q10: 2.0 # Q_10 temperature coefficient (-) + minfood: 12.0 # Michaelis-Menten constant to perceive food (mg C/m^3) + chuc: 32.0 # Michaelis-Menten constant for food uptake (mg C/m^3) + sum: 1.25 # maximum specific uptake at reference temperature (1/d) + pu: 0.5 # assimilation efficiency (-) + pu_ea: 0.5 # fraction of unassimilated prey that is excreted (not respired) (-) + pe_R1: 0.5 # dissolved fraction of excreted/dying matter (-) + srs: 0.02 # specific rest respiration at reference temperature (1/d) + sd: 0.05 # basal mortality (1/d) + sdo: 0.25 # maximum mortality due to oxygen limitation (1/d) + chro: 7.81 # Michaelis-Menten constant for oxygen limitation (-) + qpc: 0.001 # maximum phosphorus to carbon ratio (mmol P/mg C) + qnc: 0.0167 # maximum nitrogen to carbon ratio (mmol N/mg C) + stempp: 0.5 # specific excretion rate of excess phosphorus (1/d) + stempn: 0.5 # specific excretion rate of excess nitrogen (1/d) + R1R2: 1.0 # labile fraction of produced dissolved organic carbon (-) + xR1p: 1.2 # transfer of phosphorus to DOM, relative to POM (-), default = 1.0 + xR1n: 1.0 # transfer of nitrogen to DOM, relative to POM (-), default = 1.0 + urB1_O2: 0.1 # oxygen consumed per carbon respired (mmol O_2/mg C) + gutdiss: 0.5 # fraction of prey calcite that dissolves after ingestion (-) + c0: 0.0033 # background concentration (mg C/m^3) + nprey: 7 # number of prey types, default = 0 + suprey1: 0.1 # relative affinity for prey type 1 (-) + suprey2: 0.15 # relative affinity for prey type 2 (-) + suprey3: 0.15 # relative affinity for prey type 3 (-) + suprey4: 0.15 # relative affinity for prey type 4 (-) + suprey5: 0.1 # relative affinity for prey type 5 (-) + suprey6: 0.15 # relative affinity for prey type 6 (-) + suprey7: 0.2 # relative affinity for prey type 7 (-) + initialization: + c: 7.2 # carbon (mg C/m^3) + n: 0.12 # nitrogen (mmol N/m^3) + p: 0.0113 # phosphorus (mmol P/m^3) + coupling: + prey1: B1 + prey2: P1 + prey3: P2 + prey4: P3 + prey5: P4 + prey6: Z5 + prey7: Z6 + RP: R6 + N1p: N1/p # phosphate (mmol P/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + R1c: R1/c # dissolved organic carbon (mg C/m^3) + R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) + R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) + R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) + O2o: O2/o # oxygen source (mmol O_2/m^3) + O3c: O3/c # carbon dioxide sink (mmol C/m^3) + L2c: L2/c # calcite (mg C/m^3) + Z6: + long_name: nanoflagellates + model: ersem/microzooplankton + parameters: + q10: 2.0 # Q_10 temperature coefficient (-) + minfood: 12.0 # Michaelis-Menten constant to perceive food (mg C/m^3) + chuc: 28.0 # Michaelis-Menten constant for food uptake (mg C/m^3) + sum: 1.5 # maximum specific uptake at reference temperature (1/d) + pu: 0.4 # assimilation efficiency (-) + pu_ea: 0.5 # fraction of unassimilated prey that is excreted (not respired) (-) + pe_R1: 0.5 # dissolved fraction of excreted/dying matter (-) + srs: 0.025 # specific rest respiration at reference temperature (1/d) + sd: 0.05 # basal mortality (1/d) + sdo: 0.3 # maximum mortality due to oxygen limitation (1/d) + chro: 7.81 # Michaelis-Menten constant for oxygen limitation (-) + qpc: 0.001 # maximum phosphorus to carbon ratio (mmol P/mg C) + qnc: 0.0167 # maximum nitrogen to carbon ratio (mmol N/mg C) + stempp: 0.5 # specific excretion rate of excess phosphorus (1/d) + stempn: 0.5 # specific excretion rate of excess nitrogen (1/d) + R1R2: 1.0 # labile fraction of produced dissolved organic carbon (-) + xR1p: 1.2 # transfer of phosphorus to DOM, relative to POM (-), default = 1.0 + xR1n: 1.0 # transfer of nitrogen to DOM, relative to POM (-), default = 1.0 + urB1_O2: 0.1 # oxygen consumed per carbon respired (mmol O_2/mg C) + gutdiss: 0.5 # fraction of prey calcite that dissolves after ingestion (-) + c0: 0.0033 # background concentration (mg C/m^3) + nprey: 4 # number of prey types, default = 0 + suprey1: 0.45 # relative affinity for prey type 1 (-) + suprey2: 0.15 # relative affinity for prey type 2 (-) + suprey3: 0.25 # relative affinity for prey type 3 (-) + suprey4: 0.15 # relative affinity for prey type 4 (-) + initialization: + c: 2.421 # carbon (mg C/m^3) + n: 0.0505 # nitrogen (mmol N/m^3) + p: 0.047 # phosphorus (mmol P/m^3) + coupling: + prey1: B1 + prey2: P2 + prey3: P3 + prey4: Z6 + RP: R4 + N1p: N1/p # phosphate (mmol P/m^3) + N4n: N4/n # ammonium (mmol N/m^3) + R1c: R1/c # dissolved organic carbon (mg C/m^3) + R1p: R1/p # dissolved organic phosphorus (mmol P/m^3) + R1n: R1/n # dissolved organic nitrogen (mmol N/m^3) + R2c: R2/c # semi-labile dissolved organic carbon (mg C/m^3) + RPs: R6/s # particulate organic silicate (mmol Si/m^3) + O2o: O2/o # oxygen source (mmol O_2/m^3) + O3c: O3/c # carbon dioxide sink (mmol C/m^3) + L2c: L2/c # calcite (mg C/m^3) + L2: + long_name: calcite + model: ersem/calcification + parameters: + iswcal: 1 # calcification/dissolution dependence on calcite saturation (1: power law, 2: hyperbolic) + ncalc: 0.81 # power of the calcification law (Ridgwell et al. 2007, mineral calcite) (-) + ndiss: 2.22 # power of the dissolution law (Keir 1980) (-) + Rain0: 0.6 # maximum rain ratio from PISCES (-) + sedL2: 10.0 # sinking velocity (m/d) + sL2O3: 0.03 # maximum specific dissolution rate (1/d), default = 1.0 + c0: 1e-05 # background concentration (mg C/m^3), default = 0.0 + ndeposition: 1 # number of target pools for sedimentation, default = 1 + initialization: + c: 0.05 # carbon (mg C/m^3) + coupling: + deposition_target1: bL2 + om_cal: O3/Om_cal # calcite saturation (-) + O3c: O3/c # total dissolved inorganic carbon (mmol C/m^3) + T1_30d: + long_name: photolabile terrigenous DOC + model: ersem/TDOC + parameters: + photolabile: True + #age: 30. + photoaging: .5 + bioaging: .5 + qn: 0.0042 + qp: 0.0001 # elemental composition + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + phyref: 0.0 #0.03 # reference photooxidation rate (d-1) + surf_phyref: 0.042 # 0.045 #0.03 # reference photooxidation rate (d-1) + iref: 130 # reference irradinace for photooxidation (W m-2) + floc: 0.000002 # max flocculation rate [d-1 (mg C)-1] + sbx: 0.69 # log(salinity) (psu) at which flocculation is max.max is assumed to be around 2 psu. 0.69=log(2) + scx: 1.35 # salinity function parameter. 1.35 allows the max flocc rate to decrease of one order of magnitude at 35 psu + phyt: 0.24 # fraction of T1 going to T2 after photolysis + chemEIR_scaling: 2. + initialization: + c: 1200 + coupling: + chemEIR: light/parEIR + TD_older: T1_8y + T2: T2_30d + RPc: R6/c + RPn: R6/n + RPp: R6/p + O3c: O3/c + N1p: N1/p + N4n: N4/n + T1_8y: + long_name: photolabile terrigenous DOC + model: ersem/TDOC + parameters: + #age: 10950. + photolabile: True + photoaging: 0.025 + bioaging: 0.025 + qn: 0.0042 + qp: 0.0001 # elemental composition + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + phyref: 0.0 #0.00533 # reference photooxidation rate (d-1) + surf_phyref: 0.0074 #0.00803 #0.00533 # factor of .17777 from 30d # reference photooxidation rate (d-1) + iref: 130 # reference irradinace for photooxidation (W m-2) + floc: 0.000002 # max flocculation rate [d-1 (mg C)-1] + sbx: 0.69 # log(salinity) (psu) at which flocculation is max.max is assumed to be around 2 psu. 0.69=log(2) + scx: 1.35 # salinity function parameter. 1.35 allows the max flocc rate to decrease of one order of magnitude at 35 psu + phyt: 0.24 # fraction of T1 going to T2 after photolysis + chemEIR_scaling: 2. + initialization: + c: 0. #1200.0 + coupling: + chemEIR: light/parEIR + TD_older: T1_70y + T2: T2_8y + RPc: R6/c + RPn: R6/n + RPp: R6/p + O3c: O3/c + N1p: N1/p + N4n: N4/n + T1_70y: + long_name: photolabile terrigenous DOC + model: ersem/TDOC + parameters: + #age: 10950. + photolabile: True + photoaging: 0. + bioaging: 0. + qn: 0.0042 + qp: 0.0001 # elemental composition + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + phyref: 0.0 #0.0023 # reference photooxidation rate (d-1) + surf_phyref: 0.0033 #0.00352 ##0.0023 # # factor of .078 from 30d # reference photooxidation rate (d-1) + iref: 130 # reference irradinace for photooxidation (W m-2) + floc: 0.000002 # max flocculation rate [d-1 (mg C)-1] + sbx: 0.69 # log(salinity) (psu) at which flocculation is max.max is assumed to be around 2 psu. 0.69=log(2) + scx: 1.35 # salinity function parameter. 1.35 allows the max flocc rate to decrease of one order of magnitude at 35 psu + phyt: 0.24 # fraction of T1 going to T2 after photolysis + chemEIR_scaling: 2. + initialization: + c: 0. #1200.0 + coupling: + chemEIR: light/parEIR + T2: T2_70y + RPc: R6/c + RPn: R6/n + RPp: R6/p + O3c: O3/c + N1p: N1/p + N4n: N4/n + T2_30d: + long_name: photolabile terrigenous DOC + model: ersem/TDOC + parameters: + #age: 30. + photolabile: False + photoaging: 0. + bioaging: .1 + qn: 0.0042 + qp: 0.0001 # elemental composition + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + c: 1200. #1200.0 + coupling: + TD_older: T2_8y + T2_8y: + long_name: photolabile terrigenous DOC + model: ersem/TDOC + parameters: + #age: 2920 + photolabile: False + photoaging: 0.0 + bioaging: .005 + qn: 0.0042 + qp: 0.0001 # elemental composition + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + c: 0. #1200.0 + coupling: + TD_older: T2_70y + T2_70y: + long_name: photolabile terrigenous DOC + model: ersem/TDOC + parameters: + #age: 25550. + photolabile: False + photoaging: 0. + bioaging: 0. + qn: 0.0042 + qp: 0.0001 # elemental composition + c0: 0.0033 # background carbon concentration (mg C/m^3), default = 0.0 + initialization: + c: 0. #1200.0 + + bL2: + long_name: benthic calcite + model: ersem/benthic_calcite + parameters: + iswcal: 1 # dissolution dependence on calcite saturation (0: none, 1: power law, 2: hyperbolic) + ndiss: 2.22 # power of the dissolution law (Keir 1980) (-) + fdissmax: 30.0 # maximum specific dissolution rate (1/d), default = 0.0 + fdissmin: 0.05 # minimum specific dissolution rate (1/d), default = 0.03 + c0: 1e-05 # background calcite concentration (mg C/m^2), default = 0.0 + initialization: + c: 0.05 # carbon (mg C/m^2) + coupling: + Om_Cal: O3/Om_cal # calcite saturation (-) + O3c: O3/c # dissolved inorganic carbon (mmol/m^3) + ben_col: + long_name: benthic column + model: ersem/benthic_column + parameters: + qPW: 0.4 # sediment porosity (-) + EDZ_mix: 20.0 # equilibrium diffusive speed between sediment surface water (d/m) + d_tot: 0.3 # depth of sediment column (m) + Etur: 2e-06 # basal bioturbation rate (m^2/d) + mtur: 10.0 # maximum relative turbation enhancement (-) + htur: 116.0 # Michaelis-Menten constant for bioturbation (mg C/m^2/d) + dtur: 0.02 # bioturbation depth (m) + EDZ_1: 5e-05 # diffusivity in oxygenated layer (m^2/d) + EDZ_2: 5e-05 # diffusivity in oxidized layer (m^2/d) + EDZ_3: 5e-05 # diffusivity in anoxic layer (m^2/d) + irr_min: 2.0 # minimum diffusion enhancement through bioirrigation (-) + mirr: 10.0 # maximum relative diffusion enhancement due to bioirrigation (-) + hirr: 101.0 # Michaelis-Menten constant for bioirrigation (mg C/m^2/d) + initialization: + D1m: 0.009 # depth of bottom interface of oxygenated layer (m) + D2m: 0.05 # depth of bottom interface of oxidized layer (m) + K1: + long_name: benthic phosphate + model: ersem/benthic_column_dissolved_matter + parameters: + composition: p # composition (any combination of c,n,p,s,o,a) + ads1: 100.0 # adsorption in layer 1 (total:dissolved) (-), default = 1.0 + ads2: 100.0 # adsorption in layer 2 (total:dissolved) (-), default = 1.0 + ads3: 2.0 # adsorption in layer 3 (total:dissolved) (-), default = 1.0 + c0: 0.0003 # background concentration (mg C/m^2) + initialization: + p: 6.8 # phosphorus (mmol/m^2) + coupling: + p_pel: N1/p # pelagic phosphorus (mmol/m^3) + K3: + long_name: benthic nitrate + model: ersem/benthic_column_dissolved_matter + parameters: + composition: n # composition (any combination of c,n,p,s,o,a) + last_layer: 2 # sediment layer where concentration drops to zero, default = 3 + relax: 5.0 # rate of relaxation towards equilibrium concentration profile (1/d) + minD: 0.0001 # minimum depth of zero-concentration isocline (m) + c0: 0.0003 # background concentration (mg C/m^2) + initialization: + n: 0.584 # nitrogen (mmol/m^2) + coupling: + n_pel: N3/n # pelagic nitrogen (mmol/m^3) + K4: + long_name: benthic ammonium + model: ersem/benthic_column_dissolved_matter + parameters: + composition: n # composition (any combination of c,n,p,s,o,a) + ads1: 3.0 # adsorption in layer 1 (total:dissolved) (-), default = 1.0 + ads2: 3.0 # adsorption in layer 2 (total:dissolved) (-), default = 1.0 + ads3: 3.0 # adsorption in layer 3 (total:dissolved) (-), default = 1.0 + correction: true # move losses in oxygenic layer to deeper layers if pelagic concentration is limiting, default = false + c0: 0.0003 # background concentration (mg C/m^2) + initialization: + n: 25.0 # nitrogen (mmol/m^2) + coupling: + n_pel: N4/n # pelagic nitrogen (mmol/m^3) + K5: + long_name: benthic silicate + model: ersem/benthic_column_dissolved_matter + parameters: + composition: s # composition (any combination of c,n,p,s,o,a) + c0: 9e-05 # background carbon concentration (mg C/m^2), default = 0.0 + initialization: + s: 20.1 # silicate (mmol/m^2) + coupling: + s_pel: N5/s # pelagic silicate (mmol/m^3) + G2: + long_name: benthic oxygen + model: ersem/benthic_column_dissolved_matter + parameters: + composition: o # composition (any combination of c,n,p,s,o,a) + last_layer: 1 # sediment layer where concentration drops to zero, default = 3 + relax: 5.0 # rate of relaxation towards equilibrium concentration profile (1/d) + minD: 0.0001 # minimum depth of zero-concentration isocline (m) + initialization: + o: 0.0225 # oxygen (mmol/m^2) + o_deep: 0 # oxygen below zero isocline (mmol/m^2) + coupling: + o_pel: O2/o # pelagic oxygen (mmol/m^3) + G3: + long_name: benthic dissolved inorganic carbon + model: ersem/benthic_column_dissolved_matter + parameters: + composition: c # composition (any combination of c,n,p,s,o,a) + initialization: + c: 375.0 # carbon (mmol/m^2) + coupling: + c_pel: O3/c # pelagic carbon (mmol/m^3) + Q6s_aerobic: + long_name: aerobic particulate silicate + model: ersem/benthic_column_particulate_matter_layer + parameters: + composition: s # elemental composition + remin: 0.007 # remineralization rate (1/d), default = 0.0 + minimum_depth: 0.0 # minimum depth (m), default = 0.0 + variable_maximum_depth: true # maximum depth is variable, default = false + coupling: + Q: Q6 + maximum_depth: ben_col/D1m # maximum depth (m) + s_remin_target: K5/per_layer/s1 # sink for remineralized silicate (mmol Si/m^2) + Q6s_anaerobic: + long_name: anaerobic particulate silicate + model: ersem/benthic_column_particulate_matter_layer + parameters: + composition: s # elemental composition + remin: 0.007 # remineralization rate (1/d), default = 0.0 + variable_minimum_depth: true # minimum depth is variable, default = false + maximum_depth: 0.3 # maximum depth (m), default = 0.0 + source_depth_distribution: 2 # vertical distribution of changes (1: constant absolute rate, 2: constant relative rate, 3: constant carbon-based relative rate), default = 1 + coupling: + Q: Q6 + minimum_depth: ben_col/D1m # minimum depth (m) + s_remin_target: K5/per_layer/s2 # sink for remineralized silicate (mmol Si/m^2) + ben_nit: + long_name: benthic nitrogen cycle + model: ersem/benthic_nitrogen_cycle + parameters: + q10nit: 2.0 # Q_10 temperature coefficient (-) + hM4M3: 10.0 # Michaelis-Menten constant for nitrate limitation (mmol/m^3) + ISWph: 1 # pH impact on nitrification (0: off, 1: on), default = 0 + sM4M3: 4.0 # maximum nitrification rate at 10 degrees Celsius (1/d) + xno3: 2.0 # oxygen consumed per nitrate produced (mol O_2/mol N) + pammon: 0.5 # fraction of oxygen demand fulfilled by denitrification under anaerobic conditions (-) + pdenit: 0.05 # fraction of denitrification producing dinitrogen gas (remainder produces ammonium) (-) + xn2: 1.25 # oxygen demand fulfilled by reduction of nitrate to dinitrogen gas (mol O_2/mol N) + hM3G4: 1.0 # Michaelis-Menten constant for nitrate limitation of denitrification (mmol N/m^3) + coupling: + K3n: K3/per_layer/n1 # benthic nitrate in 1st layer (mmol N/m^2) + K4n: K4/per_layer/n1 # benthic ammonium in 1st layer (mmol N/m^2) + G2o: G2/per_layer/o1 # benthic oxygen in 1st layer (mmol O_2/m^2) + N4n: N4/n # pelagic ammonium (mmol N/m^3) + benTA: zero_hz # benthic alkalinity in aerobic layer (mEq/m^2) + benTA2: zero_hz # benthic alkalinity in anaerobic layer (mEq/m^2) + K3n2: K3/per_layer/n2 # benthic nitrate in 2nd layer (mmol N/m^2) + K4n2: K4/per_layer/n2 # benthic ammonium in 2nd layer (mmol N/m^2) + G2o2: G2/per_layer/o2 # oxygen in 2nd layer (mmol O_2/m^2) + layer2_thickness: ben_col/layer2_thickness # thickness of 2nd layer (m) + initialization: + G4n: 0 # dinitrogen gas (mmol N/m^2) + H1: + long_name: benthic aerobic bacteria + model: ersem/benthic_bacteria + parameters: + qnc: 0.0167 # nitrogen to carbon ratio (mmol N/mg C) + qpc: 0.00125 # phosphorus to carbon ratio (mmol P/mg C) + c0: 1e-06 # background concentration (mg C/m^2), default = 0.0 + q10: 2.0 # Q_10 temperature coefficient (-) + dd: 0.001 # Michaelis-Menten constant for oxygen limitation through layer thickness (m) + nfood: 3 # number of food sources + su1: 0.0005 # base affinity for food source 1 (m^2/mg C/d) + su2: 2e-05 # base affinity for food source 2 (m^2/mg C/d) + suf2: 0.0002 # additional affinity for food source 2 subject to nutrient limitation (m^2/mg C/d), default = 0.0 + puinc2: 2.0 # affinity for nutrients relative to carbon in food source 2 (-), default = 1.0 + pue2: 0.1 # fraction of consumed food source 2 that is excreted (-), default = 0.0 + su3: 2e-06 # base affinity for food source 3 (m^2/mg C/d) + pue3: 0.1 # fraction of consumed food source 3 that is excreted (-), default = 0.0 + pur: 0.3 # fraction of consumed carbon that is respired (-) + sr: 0.02 # specific rest respiration (1/d) + pdQ1: 0.1 # fraction of dying matter that is dissolved (-) + sd: 0.05 # specific maximum mortality related to oxygen limitation (1/d) + initialization: + c: 25.0 # carbon (mg C/m^2) + coupling: + Q1: Q1 + Q6: H1_Q6 + food1: Q1 + food2: H1_Q6 + food3: H1_Q7 + Dm: ben_col/D1m # depth interval available to bacteria (m) + K4n: K4/per_layer/n1_pw # ammonium (mmol N/m^2) + K1p: K1/per_layer/p1_pw # phosphate (mmol N/m^2) + G2o: G2/per_layer/o1 # oxygen (mmol O_2/m^2) + G3c: G3/per_layer/c1 # dissolved inorganic carbon (mmol C/m^2) + benTA: zero_hz # benthic alkalinity (mEq/m^2) + H1_Q6: + long_name: benthic aerobic bacteria POM + model: ersem/benthic_column_particulate_matter_layer + parameters: + composition: cnps # elemental composition + minimum_depth: 0.0 # minimum depth (m), default = 0.0 + variable_maximum_depth: true # maximum depth is variable, default = false + coupling: + Q: Q6 + maximum_depth: ben_col/D1m # maximum depth (m) + H1_Q7: + long_name: benthic aerobic bacteria refractory POM + model: ersem/benthic_column_particulate_matter_layer + parameters: + composition: cnp # elemental composition + minimum_depth: 0.0 # minimum depth (m), default = 0.0 + variable_maximum_depth: true # maximum depth is variable, default = false + coupling: + Q: Q7 + maximum_depth: ben_col/D1m # maximum depth (m) + H2: + long_name: benthic anaerobic bacteria + model: ersem/benthic_bacteria + parameters: + qnc: 0.0167 # nitrogen to carbon ratio (mmol N/mg C) + qpc: 0.00125 # phosphorus to carbon ratio (mmol P/mg C) + c0: 1e-06 # background concentration (mg C/m^2), default = 0.0 + q10: 2.0 # Q_10 temperature coefficient (-) + dd: 0.01 # Michaelis-Menten constant for oxygen limitation through layer thickness (m) + nfood: 2 # number of food sources + su1: 2e-05 # base affinity for food source 1 (m^2/mg C/d) + suf1: 0.0002 # additional affinity for food source 1 subject to nutrient limitation (m^2/mg C/d), default = 0.0 + puinc1: 2.0 # affinity for nutrients relative to carbon in food source 1 (-), default = 1.0 + pue1: 0.0 # fraction of consumed food source 1 that is excreted (-), default = 0.0 + su2: 2e-06 # base affinity for food source 2 (m^2/mg C/d) + pue2: 0.0 # fraction of consumed food source 2 that is excreted (-), default = 0.0 + pur: 0.3 # fraction of consumed carbon that is respired (-) + sr: 0.02 # specific rest respiration (1/d) + pdQ1: 0.0 # fraction of dying matter that is dissolved (-) + sd: 0.05 # specific maximum mortality related to oxygen limitation (1/d) + initialization: + c: 400.0 # carbon (mg C/m^2) + coupling: + Q1: Q1 + Q6: H2_Q6 + food1: H2_Q6 + food2: H2_Q7 + Dm: ben_col/layer2_thickness # depth interval available to bacteria (m) + K4n: K4/per_layer/n2_pw # ammonium (mmol N/m^2) + K1p: K1/per_layer/p2_pw # phosphate (mmol N/m^2) + G2o: ben_nit/K6_calculator/K6 # oxygen (mmol O_2/m^2) + G3c: G3/per_layer/c2 # dissolved inorganic carbon (mmol C/m^2) + benTA: zero_hz # benthic alkalinity (mEq/m^2) + H2_Q6: + long_name: benthic anaerobic bacteria POM + model: ersem/benthic_column_particulate_matter_layer + parameters: + composition: cnps # elemental composition + variable_minimum_depth: true # minimum depth is variable, default = false + maximum_depth: 0.3 # maximum depth (m), default = 0.0 + source_depth_distribution: 3 # vertical distribution of changes (1: constant absolute rate, 2: constant relative rate, 3: constant carbon-based relative rate), default = 1 + coupling: + Q: Q6 + minimum_depth: ben_col/D1m # minimum depth (m) + H2_Q7: + long_name: benthic anaerobic bacteria refractory POM + model: ersem/benthic_column_particulate_matter_layer + parameters: + composition: cnp # elemental composition + variable_minimum_depth: true # minimum depth is variable, default = false + maximum_depth: 0.3 # maximum depth (m), default = 0.0 + source_depth_distribution: 3 # vertical distribution of changes (1: constant absolute rate, 2: constant relative rate, 3: constant carbon-based relative rate), default = 1 + coupling: + Q: Q7 + minimum_depth: ben_col/D1m # minimum depth (m) + Y2: + long_name: benthic deposit feeder + model: ersem/benthic_fauna + parameters: + qnc: 0.0119 # nitrogen to carbon ratio (mmol N/mg C) + qpc: 0.000792 # phosphorus to carbon ratio (mmol P/mg C) + c0: 0.001 # background concentration (mg C/m^2), default = 0.0 + q10: 2.0 # Q_10 temperature coefficient (-) + rlO2: 0.0 # minimum pelagic oxygen concentration (mmol O2/m^3) + hO2: 0.0 # Michaelis-Menten constant for oxygen limitation (mmol O2/m^3) + xcl: 2500.0 # abundance above which crowding reduces food uptake (mg C/m^2) + xcs: 3000.0 # Michaelis-Menten constant for the impact of crowding (mg C/m^2) + xch: 5000.0 # abundance determining asymptotic threshold of crowding limitation (-> xch/(Yc+xch) for Yc-> inf) (mg C/m^2) + su: 0.11 # specific maximum uptake at reference temperature (1/d) + lu: 250.0 # Michaelis-Menten constant for food preference as function of food concentration (mg C/m^2) + hu: 3000.0 # Michaelis-Menten constant for gross carbon uptake (mg C/m^2) + pue: 0.35 # fraction of carbon in consumed live food that goes to faeces (-) + pueQ: 0.8 # fraction of carbon in consumed detritus that goes to faeces (-) + pudil: 0.8 # relative nutrient content of faeces (-) + sd: 0.001 # specific mortality at reference temperature (1/d) + sdmO2: 1.0 # specific maximum additional mortality due to oxygen stress (1/d) + sdc: 0.022 # specific maximum additional mortality induced by cold temperature (1/d) + xdc: -0.7 # e-folding temperature factor of cold mortality response (1/degree_C) + sr: 0.0027 # specific rest respiration at reference temperature (1/d) + pur: 0.35 # fraction of assimilated food that is respired (-) + nfood: 4 # number of food sources, default = 0 + pufood1: 1.0 # preference for food source 1 (-) + pufood2: 1.0 # preference for food source 2 (-) + pufood3: 0.1 # preference for food source 3 (-) + pufood4: 1.0 # preference for food source 4 (-) + food3ispom: true # food source 3 is detritus, default = false + ptur: 1.0 # relative contribution to bioturbation (-), default = 0.0 + pirr: 1.0 # relative contribution to bioirrigation (-), default = 0.0 + initialization: + c: 3000.0 # carbon (mg C/m^2) + coupling: + food1: H1 + food2: H2 + food3: Y2_Q6_source + food4: Y4 + Q: Y2_Q6_sink + Dm: ben_col/D1m # depth of limiting layer for uptake (m) + O2o: O2/o # pelagic oxygen (mmol O_2/m^3) + G3c: G3/per_layer/c1 # carbon dioxide (mmol C/m^2) + G2o: G2/per_layer/o1 # oxygen (mmol O_2/m^2) + K1p: K1/per_layer/p1 # benthic phosphate in aerobic layer (mmol P/m^2) + K4n: K4/per_layer/n1 # benthic ammonium in aerobic layer (mmol N/m^2) + K1p2: K1/per_layer/p2 # benthic phosphate in anaerobic layer (mmol P/m^2) + K4n2: K4/per_layer/n2 # benthic ammonium in anaerobic layer (mmol N/m^2) + benTA: zero_hz # benthic alkalinity in aerobic layer (mEq/m^2) + benTA2: zero_hz # benthic alkalinity in anaerobic layer (mEq/m^2) + food2c_an: H2/c # food source 2 carbon in anaerobic layer (mg C/m^2) + food3c_an: Y2_Q6_source_anaerobic/c # food source 3 carbon in anaerobic layer (mg C/m^2) + Y2_Q6_source: + long_name: benthic deposit feeder total POM + model: ersem/benthic_column_particulate_matter_layer + parameters: + composition: cnps # elemental composition + minimum_depth: 0.0025 # minimum depth (m), default = 0.0 + maximum_depth: 0.3 # maximum depth (m), default = 0.0 + coupling: + Q: Q6 + Y2_Q6_source_anaerobic: + long_name: benthic deposit feeder anaerobic POM + model: ersem/benthic_column_particulate_matter_layer + parameters: + composition: cnps # elemental composition + variable_minimum_depth: true # minimum depth is variable, default = false + maximum_depth: 0.3 # maximum depth (m), default = 0.0 + coupling: + Q: Q6 + minimum_depth: ben_col/D1m # minimum depth (m) + Y2_Q6_sink: + long_name: benthic deposit feeder POM sink + model: ersem/benthic_column_particulate_matter_layer + parameters: + composition: cnps # elemental composition + minimum_depth: 0.0 # minimum depth (m), default = 0.0 + variable_maximum_depth: true # maximum depth is variable, default = false + coupling: + Q: Q6 + maximum_depth: Q6/pen_depth_c # maximum depth (m) + Y3: + long_name: benthic suspension feeder + model: ersem/benthic_fauna + parameters: + qnc: 0.0119 # nitrogen to carbon ratio (mmol N/mg C) + qpc: 0.000792 # phosphorus to carbon ratio (mmol P/mg C) + c0: 0.001 # background concentration (mg C/m^2), default = 0.0 + q10: 2.0 # Q_10 temperature coefficient (-) + rlO2: 0.0 # minimum pelagic oxygen concentration (mmol O2/m^3) + hO2: 0.0 # Michaelis-Menten constant for oxygen limitation (mmol O2/m^3) + xcl: 2500.0 # abundance above which crowding reduces food uptake (mg C/m^2) + xcs: 3000.0 # Michaelis-Menten constant for the impact of crowding (mg C/m^2) + xch: 5000.0 # abundance determining asymptotic threshold of crowding limitation (-> xch/(Yc+xch) for Yc-> inf) (mg C/m^2) + su: 0.09 # specific maximum uptake at reference temperature (1/d) + lu: 10.0 # Michaelis-Menten constant for food preference as function of food concentration (mg C/m^2) + hu: 300.0 # Michaelis-Menten constant for gross carbon uptake (mg C/m^2) + pue: 0.35 # fraction of carbon in consumed live food that goes to faeces (-) + pueQ: 0.85 # fraction of carbon in consumed detritus that goes to faeces (-) + pudil: 0.8 # relative nutrient content of faeces (-) + sd: 0.001 # specific mortality at reference temperature (1/d) + sdmO2: 1.0 # specific maximum additional mortality due to oxygen stress (1/d) + sdc: 0.022 # specific maximum additional mortality induced by cold temperature (1/d) + xdc: -0.7 # e-folding temperature factor of cold mortality response (1/degree_C) + sr: 0.0027 # specific rest respiration at reference temperature (1/d) + pur: 0.4 # fraction of assimilated food that is respired (-) + nfood: 6 # number of food sources, default = 0 + food1ispel: true # food source 1 is pelagic, default = false + food2ispel: true # food source 2 is pelagic, default = false + food3ispel: true # food source 3 is pelagic, default = false + food4ispel: true # food source 4 is pelagic, default = false + food5_ll: true # availability of food source 5 is limited by aerobic layer height, default = false + pufood1: 1.0 # preference for food source 1 (-) + pufood2: 1.0 # preference for food source 2 (-) + pufood3: 1.0 # preference for food source 3 (-) + pufood4: 1.0 # preference for food source 4 (-) + pufood5: 1.0 # preference for food source 5 (-) + pufood6: 0.1 # preference for food source 6 (-) + food4ispom: true # food source 4 is detritus, default = false + food6ispom: true # food source 6 is detritus, default = false + dwat: 1.0 # water layer accessible for pelagic food uptake (m), default = 1.0 + dQ6: 0.0025 # depth of available sediment layer (m), default = 0.0 + initialization: + c: 2000.0 # carbon (mg C/m^2) + coupling: + food1: P1 + food2: P2 + food3: P3 + food4: R6 + food5: H1 + food6: Y3_Q6 + Q: Y3_Q6 + Dm: ben_col/D1m # depth of limiting layer for uptake (m) + O2o: O2/o # pelagic oxygen (mmol O_2/m^3) + G3c: G3/per_layer/c1 # carbon dioxide (mmol C/m^2) + G2o: G2/per_layer/o1 # oxygen (mmol O_2/m^2) + K1p: K1/per_layer/p1 # benthic phosphate in aerobic layer (mmol P/m^2) + K4n: K4/per_layer/n1 # benthic ammonium in aerobic layer (mmol N/m^2) + K1p2: K1/per_layer/p2 # benthic phosphate in anaerobic layer (mmol P/m^2) + K4n2: K4/per_layer/n2 # benthic ammonium in anaerobic layer (mmol N/m^2) + benTA: zero_hz # benthic alkalinity in aerobic layer (mEq/m^2) + benTA2: zero_hz # benthic alkalinity in anaerobic layer (mEq/m^2) + Y3_Q6: + long_name: benthic suspension feeder POM + model: ersem/benthic_column_particulate_matter_layer + parameters: + composition: cnps # elemental composition + minimum_depth: 0.0 # minimum depth (m), default = 0.0 + maximum_depth: 0.0025 # maximum depth (m), default = 0.0 + coupling: + Q: Q6 + Y4: + long_name: benthic meiofauna + model: ersem/benthic_fauna + parameters: + qnc: 0.0119 # nitrogen to carbon ratio (mmol N/mg C) + qpc: 0.000792 # phosphorus to carbon ratio (mmol P/mg C) + c0: 0.001 # background concentration (mg C/m^2), default = 0.0 + q10: 2.0 # Q_10 temperature coefficient (-) + rlO2: 0.0 # minimum pelagic oxygen concentration (mmol O2/m^3) + hO2: 0.0 # Michaelis-Menten constant for oxygen limitation (mmol O2/m^3) + xcl: 25000.0 # abundance above which crowding reduces food uptake (mg C/m^2) + xcs: 3000.0 # Michaelis-Menten constant for the impact of crowding (mg C/m^2) + xch: 5000.0 # abundance determining asymptotic threshold of crowding limitation (-> xch/(Yc+xch) for Yc-> inf) (mg C/m^2) + su: 0.4 # specific maximum uptake at reference temperature (1/d) + lu: 50.0 # Michaelis-Menten constant for food preference as function of food concentration (mg C/m^2) + hu: 1000.0 # Michaelis-Menten constant for gross carbon uptake (mg C/m^2) + pue: 0.25 # fraction of carbon in consumed live food that goes to faeces (-) + pueQ: 0.4 # fraction of carbon in consumed detritus that goes to faeces (-) + pudil: 0.8 # relative nutrient content of faeces (-) + sd: 0.01 # specific mortality at reference temperature (1/d) + sdmO2: 1.0 # specific maximum additional mortality due to oxygen stress (1/d) + sdc: 0.02 # specific maximum additional mortality induced by cold temperature (1/d) + xdc: -0.7 # e-folding temperature factor of cold mortality response (1/degree_C) + sr: 0.01 # specific rest respiration at reference temperature (1/d) + pur: 0.45 # fraction of assimilated food that is respired (-) + nfood: 4 # number of food sources, default = 0 + pufood1: 1.0 # preference for food source 1 (-) + pufood2: 1.0 # preference for food source 2 (-) + pufood3: 1.0 # preference for food source 3 (-) + pufood4: 0.3 # preference for food source 4 (-) + food4ispom: true # food source 4 is detritus, default = false + pirr: 0.2 # relative contribution to bioirrigation (-), default = 0.0 + initialization: + c: 200.0 # carbon (mg C/m^2) + coupling: + food1: H1 + food2: H2 + food3: Y4 + food4: Y4_Q6 + Q: Y4_Q6 + Dm: ben_col/D1m # depth of limiting layer for uptake (m) + O2o: O2/o # pelagic oxygen (mmol O_2/m^3) + G3c: G3/per_layer/c1 # carbon dioxide (mmol C/m^2) + G2o: G2/per_layer/o1 # oxygen (mmol O_2/m^2) + K1p: K1/per_layer/p1 # benthic phosphate in aerobic layer (mmol P/m^2) + K4n: K4/per_layer/n1 # benthic ammonium in aerobic layer (mmol N/m^2) + K1p2: K1/per_layer/p2 # benthic phosphate in anaerobic layer (mmol P/m^2) + K4n2: K4/per_layer/n2 # benthic ammonium in anaerobic layer (mmol N/m^2) + benTA: zero_hz # benthic alkalinity in aerobic layer (mEq/m^2) + benTA2: zero_hz # benthic alkalinity in anaerobic layer (mEq/m^2) + Y4_Q6: + long_name: benthic meiofauna POM + model: ersem/benthic_column_particulate_matter_layer + parameters: + composition: cnps # elemental composition + minimum_depth: 0.0 # minimum depth (m), default = 0.0 + maximum_depth: 0.03 # maximum depth (m), default = 0.0 + coupling: + Q: Q6 + erosion: + model: ersem/benthic_erosion From 19892a0cb0280e6d17cae24001fb12a4443538c9 Mon Sep 17 00:00:00 2001 From: Helen Powley Date: Mon, 24 Nov 2025 13:52:46 +0000 Subject: [PATCH 25/26] Fix bugs in fabm.yaml --- testcases/fabm_tDOC.yaml | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/testcases/fabm_tDOC.yaml b/testcases/fabm_tDOC.yaml index a44e5ac..113c876 100644 --- a/testcases/fabm_tDOC.yaml +++ b/testcases/fabm_tDOC.yaml @@ -1,18 +1,14 @@ check_conservation: false require_initialization: true instances: - zenithAngle: model: ersem/zenith_angle light: - model: ersem/light_iop_ady + model: ersem/light_iop parameters: a0w: 0.03 # absorption coefficient of clear water (1/m), default = 0.036 b0w: 0.0015 # backscatter coefficient of clear water (1/m), default = 0.0016 pEIR_eow: 0.5 # photosynthetically active fraction of shortwave radiation (-), default = 0.5 - relax: 0.143 # relaxation towards satellite gelbstoff absorption (1/d), default=0.033 - initialization: - ADY: 0.05 N1: long_name: phosphate model: ersem/pelagic_base @@ -49,7 +45,7 @@ instances: long_name: oxygen model: ersem/oxygen parameters: - ISWO2: 2 # saturation formulation (1: legacy ERSEM, 2: Weiss 1970) + iswO2: 2 # saturation formulation (1: legacy ERSEM, 2: Weiss 1970) initialization: o: 300.0 # oxygen (mmol O_2/m^3) O3: @@ -57,9 +53,9 @@ instances: model: ersem/carbonate parameters: iswCO2: 1 # carbonate system diagnostics (0: off, 1: on), default = 1 - iswASFLUX: 1 # air-sea CO2 exchange (0: none, 1: Nightingale and Liss, 2: Wanninkhof 1992 without chemical enhancement, 3: Wanninkhof 1992 with chemical enhancement, 4: Wanninkhof 1999), default = 1 - iswtalk: 2 # alkalinity formulation (1-4: from salinity and temperature, 5: dynamic alkalinity), default = 5 - iswbioalk: 1 + iswASFLUX: 1 # air-sea CO2 exchange (0: none, 1: Nightingale et al. 2000, 2: Wanninkhof 1992 without chemical enhancement, 3: Wanninkhof 1992 with chemical enhancement, 4: Wanninkhof and McGillis 1999, 5: Wanninkhof 1992 switching to Wanninkhof and McGillis 1999, 6: Wan, default = 6 + iswtalk: 5 # alkalinity formulation (1-4: from salinity and temperature, 5: dynamic alkalinity), default = 5 + pHscale: 1 # pH scale (1: total, 0: SWS, -1: SWS backward compatible), default = 1 initialization: c: 2130.0 # total dissolved inorganic carbon (mmol C/m^3) TA: 2300.0 # total alkalinity (mmol/m^3) From c205eca79fe77a3602c9a1f96a4a3b813f3185d0 Mon Sep 17 00:00:00 2001 From: Helen Powley Date: Tue, 25 Nov 2025 18:10:39 +0000 Subject: [PATCH 26/26] Fix bug introduced after merging bacteria module --- src/bacteria_docdyn.F90 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bacteria_docdyn.F90 b/src/bacteria_docdyn.F90 index 6a727a1..2e21558 100644 --- a/src/bacteria_docdyn.F90 +++ b/src/bacteria_docdyn.F90 @@ -229,7 +229,8 @@ subroutine initialize(self,configunit) call self%register_diagnostic_variable(self%id_fRPB1p,'fRPB1p','mmol P/m^3/d','total uptake of POP') call self%register_diagnostic_variable(self%id_fR1B1n,'fR1B1n','mmol N/m^3/d','uptake of DON') call self%register_diagnostic_variable(self%id_fR1B1p,'fR1B1p','mmol P/m^3/d','uptake of DOP') - + + call self%register_diagnostic_variable(self%id_minn,'minn','mmol N/m^3/d','mineralisation of DON to DIN') call self%register_diagnostic_variable(self%id_minp,'minp','mmol P/m^3/d','mineralisation of DOP to DIP') ! RJT 2019 - Bacteria metabolic status diagnostics