tunnel_deposition_factor Subroutine

private subroutine tunnel_deposition_factor(tunnel_pollutant_index, tunnel_length, tunnel_ADT, ventilation_fac, min_ADT_ventilation_fac, min_length_ventilation_fac, windspeed_tunnel_in, ratio)

Uses

  • proc~~tunnel_deposition_factor~~UsesGraph proc~tunnel_deposition_factor tunnel_deposition_factor module~uemep_definitions uEMEP_definitions proc~tunnel_deposition_factor->module~uemep_definitions

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: tunnel_pollutant_index
real, intent(in) :: tunnel_length
real, intent(in) :: tunnel_ADT
real, intent(in) :: ventilation_fac
real, intent(in) :: min_ADT_ventilation_fac
real, intent(in) :: min_length_ventilation_fac
real, intent(in) :: windspeed_tunnel_in
real, intent(out) :: ratio

Called by

proc~~tunnel_deposition_factor~~CalledByGraph proc~tunnel_deposition_factor tunnel_deposition_factor proc~uemep_grid_roads uEMEP_grid_roads proc~uemep_grid_roads->proc~tunnel_deposition_factor proc~uemep_calculate_emissions_for_emep uEMEP_calculate_emissions_for_EMEP proc~uemep_calculate_emissions_for_emep->proc~uemep_grid_roads program~uemep uEMEP program~uemep->proc~uemep_grid_roads program~uemep->proc~uemep_calculate_emissions_for_emep

Source Code

    subroutine tunnel_deposition_factor(tunnel_pollutant_index,tunnel_length,tunnel_ADT,ventilation_fac,min_ADT_ventilation_fac,min_length_ventilation_fac,windspeed_tunnel_in,ratio)

        use uEMEP_definitions

        implicit none

        integer, intent(in) :: tunnel_pollutant_index
        real, intent(in) :: tunnel_length,tunnel_ADT
        real, intent(in) :: ventilation_fac,min_ADT_ventilation_fac,min_length_ventilation_fac
        real, intent(in) :: windspeed_tunnel_in !(m/s)
        real:: dep_velocity !(cm/s)
        real:: radius_tunnel=5. !Radius of the tunnel opening. Fixed
        real :: B
        real, intent(out) ::  ratio

        dep_velocity=0.

        if (tunnel_pollutant_index.eq.pm10_index) dep_velocity=0.1
        if (tunnel_pollutant_index.eq.pm25_index) dep_velocity=0.05
        if (tunnel_pollutant_index.eq.pmex_index) dep_velocity=0.05
        if (tunnel_pollutant_index.eq.nox_index) dep_velocity=0.02

        B=2./radius_tunnel*dep_velocity/100./max(windspeed_tunnel_in,0.1)

        ratio=1.
        if (B*tunnel_length.lt.1e-5) then
            ratio=1-B*tunnel_length/2.
        else
            ratio=1/B*(1-exp(-B*tunnel_length))/tunnel_length
        endif

        !Adjust for ventilation
        if (tunnel_ADT.gt.min_ADT_ventilation_fac.and.tunnel_length.gt.min_length_ventilation_fac) then
            !write(*,*) min_ADT_ventilation_fac,min_length_ventilation_fac,ratio,B
            ratio=ratio*ventilation_fac
            !write(*,*) tunnel_ADT,tunnel_length,ratio,ventilation_fac
        endif

        !write(*,*) tunnel_pollutant_index,tunnel_length,ratio

    end subroutine tunnel_deposition_factor