@@ -50,7 +50,7 @@ module hereon_nope
5050 type (type_surface_diagnostic_variable_id) :: id_k_wanninkhof, id_k_borges, id_Sc
5151
5252! Model parameters
53- real (rk) :: n2o_emission_factor_nitri, n2o_emission_factor_denit
53+ real (rk) :: n2o_emission_factor_nitri, n2o_emission_factor_denit, n2o_emission_factor_nitri_type
5454 real (rk) :: wind_data_type
5555 real (rk) :: wind_mean_annual, wind_mean_spring, wind_mean_summer, wind_mean_fall, wind_mean_winter
5656
@@ -87,7 +87,7 @@ subroutine initialize(self,configunit)
8787! Original author(s): Nina Preußler
8888!
8989! !LOCAL VARIABLES:
90- real (rk) :: n2o_emission_factor_nitri, n2o_emission_factor_denit
90+ real (rk) :: n2o_emission_factor_nitri, n2o_emission_factor_denit, n2o_emission_factor_nitri_type
9191 real (rk) :: wind_data_type
9292 real (rk) :: wind_mean_annual, wind_mean_spring, wind_mean_summer, wind_mean_fall, wind_mean_winter
9393
@@ -101,6 +101,7 @@ subroutine initialize(self,configunit)
101101
102102 ! Register parameters
103103 call self% get_parameter(self% n2o_emission_factor_nitri,' n2o_emission_factor_nitri' ,' ' ,' EF nitrification ' ,default= 0.0025_rk )
104+ call self% get_parameter(self% n2o_emission_factor_nitri_type,' n2o_emission_factor_nitri_type' ,' ' ,' type of EF to use for nitri ' ,default= 1._rk )
104105 call self% get_parameter(self% n2o_emission_factor_denit,' n2o_emission_factor_denit' ,' ' ,' EF denitation ' ,default= 0.01_rk )
105106 call self% get_parameter(self% wind_data_type,' wind_data_type' ,' -' ,' type of wind data used (hourly-1, seasonal-2, annual-3) ' ,default= 1._rk )
106107 call self% get_parameter(self% wind_mean_annual,' wind_mean_annual' ,' m s**-1' ,' yearly mean of wind speed' ,default= 4.28_rk )
@@ -180,6 +181,7 @@ subroutine do(self,_ARGUMENTS_DO_)
180181 real (rk) :: n2o_from_nitri, n2o_from_denit, n2o_yield_nitri
181182 real (rk) :: n2o_from_nitri_tang, n2o_from_denit_tang
182183 real (rk) :: n2o_yield_nitri_2
184+ real (rk) :: n2o_yield_nitri_to_use
183185
184186
185187! EOP
@@ -207,7 +209,21 @@ subroutine do(self,_ARGUMENTS_DO_)
207209 n2o_yield_nitri = (1.52_rk / (oxy + 1.59_rk )) / 100._rk ! oxygen-dependent N2O yield from nitrification based on Tang et al. 2022
208210 ! n2o_from_nitri = nitri * self%n2o_emission_factor_nitri * 1000._rk ! 1000 because nitri in mmol m3 and n2o in umol m-3
209211 n2o_yield_nitri_2 = 0.004_rk - 0.003_rk * (oxy/ 350 ) ! to get a yield between 0.1% and 0.4%
210- n2o_from_nitri = nitri * self% n2o_emission_factor_nitri * 1000._rk / 2 ! 1000 because nitri in mmol m3 and n2o in umol m-3, and /2 because 2 N
212+
213+ ! depends on which emission factor / yield to use
214+ ! 1: constant factor as defined with self%n2o_emission_factor_nitri
215+ ! 2: factor between 0.1 and 0.4% calculated based on oxygen concentration (lower oxy = higher yield)
216+ ! 3: factor/yield using equation by Tang 2022
217+ IF (self% n2o_emission_factor_nitri_type == 1.0 ) THEN
218+ n2o_yield_nitri_to_use = self% n2o_emission_factor_nitri
219+ ELSEIF (self% n2o_emission_factor_nitri_type == 2.0 ) THEN
220+ n2o_yield_nitri_to_use = n2o_yield_nitri_2
221+ ELSE
222+ n2o_yield_nitri_to_use = n2o_yield_nitri
223+ END IF
224+
225+ n2o_from_nitri = nitri * n2o_yield_nitri_to_use * 1000._rk / 2 ! 1000 because nitri in mmol m3 and n2o in umol m-3, and /2 because 2 N
226+
211227 n2o_from_nitri_tang = ( 1000._rk * oxy / (oxy+4.3_rk ) ) * n2o_yield_nitri ! nitri * yield from Tang
212228
213229
0 commit comments