-
Couldn't load subscription status.
- Fork 8
Description
libaed-water/src/aed_nitrogen.F90
Line 447 in bd1babc
| nitrification = amm * NitrfO2Function(data%use_oxy,data%Rnitrif,data%Knitrif,data%theta_nitrif,oxy,temp) |
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