You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To condiser the inhibitation of hypersalinity on the nitrification/denitrification processes;
Reference: Coorong T&I 1.2 report (Mosley et al., 2020); Enrich-Pratt, 2009; Isaji et al, 2019 ..
A proposed function is like below (same method for both nitrif/denit processes but different coefficients):
IF( data%simNitrfSal ) nitrification = nitrification * NitrfSalFunction(salModel, K_sal, S0, sal)
IF( data%simNitrfSal ) denitrification = denitrification * NitrfSalFunction(salModel, K_sal, S0, sal)
where salModel is switch of model selection, Sal is salinity, S0 is the threshold of Salinity starting to affect nit/denif, and Ksal is the half-saturation coefficient.
The function is as below:
FUNCTION NitrfSalFunction(salModel,K_sal,S0,salinity) RESULT(fSal)
!-------------------------------------------------------------------------------
! Salinity dependency of nitrification/denitrification
! based on review of hypersalinity on N cycling, major refs: Mosley et al. 2020;
! Isaji et al. 2019; Enrich-Pratt et al. 2009
!-------------------------------------------------------------------------------
!ARGUMENTS
INTEGER,INTENT(in) :: salModel ! 0: no effect; 1: Michaelis Menten function, default = 0
AED_REAL,INTENT(in) :: K_sal ! half-saturation coefficient, default = 20
AED_REAL,INTENT(in) :: S0 ! salinity threshold, default = 40
AED_REAL,INTENT(in) :: salinity ! salinity
!
!LOCALS
AED_REAL :: fSal ! Returns the salinity function
!
!-------------------------------------------------------------------------------
!BEGIN
fSal = 1.0 !## initialized to be 1
IF (salModel == 0) THEN ! no effect
fSal = 1.0
ELSEIF (salModel == 1) THEN
!# f(S) = 1 at S<=S0, f(S) = K_sal/(K_sal+S-S0) at S>S0
IF (salinity>S0) THEN
fSal = K_sal / (K_sal + salinity - S0)
ELSE
fSal = 1.0
ENDIF
ELSE
PRINT *,'STOP: Unsupported salModel flag for nitrogen module'
ENDIF
IF( fSal < zero_ ) fSal = zero_
END FUNCTION NitrfSalFunction
The text was updated successfully, but these errors were encountered:
libaed-water/src/aed_nitrogen.F90
Line 447 in bd1babc
To condiser the inhibitation of hypersalinity on the nitrification/denitrification processes;
Reference: Coorong T&I 1.2 report (Mosley et al., 2020); Enrich-Pratt, 2009; Isaji et al, 2019 ..
A proposed function is like below (same method for both nitrif/denit processes but different coefficients):
IF( data%simNitrfSal ) nitrification = nitrification * NitrfSalFunction(salModel, K_sal, S0, sal)
IF( data%simNitrfSal ) denitrification = denitrification * NitrfSalFunction(salModel, K_sal, S0, sal)
where salModel is switch of model selection, Sal is salinity, S0 is the threshold of Salinity starting to affect nit/denif, and Ksal is the half-saturation coefficient.
The function is as below:
FUNCTION NitrfSalFunction(salModel,K_sal,S0,salinity) RESULT(fSal)
!-------------------------------------------------------------------------------
! Salinity dependency of nitrification/denitrification
! based on review of hypersalinity on N cycling, major refs: Mosley et al. 2020;
! Isaji et al. 2019; Enrich-Pratt et al. 2009
!-------------------------------------------------------------------------------
!ARGUMENTS
INTEGER,INTENT(in) :: salModel ! 0: no effect; 1: Michaelis Menten function, default = 0
AED_REAL,INTENT(in) :: K_sal ! half-saturation coefficient, default = 20
AED_REAL,INTENT(in) :: S0 ! salinity threshold, default = 40
AED_REAL,INTENT(in) :: salinity ! salinity
!
!LOCALS
AED_REAL :: fSal ! Returns the salinity function
!
!-------------------------------------------------------------------------------
!BEGIN
fSal = 1.0 !## initialized to be 1
IF (salModel == 0) THEN ! no effect
fSal = 1.0
ELSEIF (salModel == 1) THEN
!# f(S) = 1 at S<=S0, f(S) = K_sal/(K_sal+S-S0) at S>S0
IF (salinity>S0) THEN
fSal = K_sal / (K_sal + salinity - S0)
ELSE
fSal = 1.0
ENDIF
ELSE
PRINT *,'STOP: Unsupported salModel flag for nitrogen module'
ENDIF
IF( fSal < zero_ ) fSal = zero_
END FUNCTION NitrfSalFunction
The text was updated successfully, but these errors were encountered: