Type | Intent | Optional | 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 |
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