uEMEP_SRM_NO2 Subroutine

private subroutine uEMEP_SRM_NO2(nox_bg, no2_bg, nox_loc, o3_bg, f_no2_loc, nox_out, no2_out, o3_out, SRM_params)

Arguments

Type IntentOptional Attributes Name
real, intent(in) :: nox_bg
real, intent(in) :: no2_bg
real, intent(in) :: nox_loc
real, intent(in) :: o3_bg
real, intent(in) :: f_no2_loc
real, intent(out) :: nox_out
real, intent(out) :: no2_out
real, intent(out) :: o3_out
real, intent(in) :: SRM_params(3)

Called by

proc~~uemep_srm_no2~~CalledByGraph proc~uemep_srm_no2 uEMEP_SRM_NO2 proc~uemep_chemistry uEMEP_chemistry proc~uemep_chemistry->proc~uemep_srm_no2 proc~uemep_source_fraction_chemistry uEMEP_source_fraction_chemistry proc~uemep_source_fraction_chemistry->proc~uemep_srm_no2 proc~uemep_save_netcdf_control uEMEP_save_netcdf_control proc~uemep_save_netcdf_control->proc~uemep_source_fraction_chemistry program~uemep uEMEP program~uemep->proc~uemep_chemistry program~uemep->proc~uemep_save_netcdf_control

Source Code

    subroutine uEMEP_SRM_NO2(nox_bg, no2_bg, nox_loc, o3_bg, f_no2_loc, nox_out, no2_out, o3_out, SRM_params)
        ! From model fit
        ! real :: beta = 0.45
        ! real :: K = 30.0
        ! real :: F = 0.2
        ! From RIVM Briefrapport 2014-0109
        ! beta=1
        ! K=100
        ! F=0.2
        !
        ! Reference
        ! https://core.ac.uk/download/pdf/58774365.pdf
        real, intent(in) :: nox_bg, no2_bg, nox_loc, o3_bg, f_no2_loc
        real, intent(in) :: SRM_params(3)
        real, intent(out) :: nox_out, no2_out, o3_out

        ! Local variables
        real :: beta = 0.45
        real :: K = 30.0
        real :: F = 0.2
        real :: ox_init, no2_init

        ! If available, use custom parameter values
        if (abs(SRM_params(1)) > epsilon0) then
            beta = SRM_params(1)
            K = SRM_params(2)
            F = SRM_params(3)
        end if

        nox_out = nox_bg + nox_loc
        no2_out = no2_bg + beta*o3_bg*nox_loc/(nox_loc + K/(1 - F)) + F*nox_loc
        no2_init = no2_bg + f_no2_loc*nox_loc

        ! Small adjustments for molecular weights
        ox_init = no2_init*47.0/46.0 + o3_bg*47.0/48.0
        o3_out = ox_init*48.0/47.0 - no2_out*48.0/46.0
    end subroutine uEMEP_SRM_NO2