Skip to content

Commit ca0e228

Browse files
committed
added option to use different emission factors
1 parent 1f6c7e2 commit ca0e228

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

src/nope/nope.F90

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)