ch_rtpath.f90 Source File


This file depends on

sourcefile~~ch_rtpath.f90~~EfferentGraph sourcefile~ch_rtpath.f90 ch_rtpath.f90 sourcefile~basin_module.f90 basin_module.f90 sourcefile~ch_rtpath.f90->sourcefile~basin_module.f90 sourcefile~channel_module.f90 channel_module.f90 sourcefile~ch_rtpath.f90->sourcefile~channel_module.f90 sourcefile~climate_module.f90 climate_module.f90 sourcefile~ch_rtpath.f90->sourcefile~climate_module.f90 sourcefile~constituent_mass_module.f90 constituent_mass_module.f90 sourcefile~ch_rtpath.f90->sourcefile~constituent_mass_module.f90 sourcefile~hydrograph_module.f90 hydrograph_module.f90 sourcefile~ch_rtpath.f90->sourcefile~hydrograph_module.f90 sourcefile~pathogen_data_module.f90 pathogen_data_module.f90 sourcefile~ch_rtpath.f90->sourcefile~pathogen_data_module.f90 sourcefile~time_module.f90 time_module.f90 sourcefile~ch_rtpath.f90->sourcefile~time_module.f90 sourcefile~hydrograph_module.f90->sourcefile~basin_module.f90 sourcefile~hydrograph_module.f90->sourcefile~time_module.f90

Source Code

      subroutine ch_rtpath
      
!!    ~ ~ ~ PURPOSE ~ ~ ~
!!    this subroutine routes bacteria through the stream network

!!    ~ ~ ~ INCOMING VARIABLES ~ ~ ~
!!    name             |units       |definition
!!    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
!!    hrchwtr(:)       |m^3 H2O     |water stored in reach at beginning of hour
!!    rch_bactlp(:)    |# cfu/100ml |less persistent bacteria stored in reach
!!    rch_bactp(:)     |# cfu/100ml |persistent bacteria stored in reach
!!    rchwtr           |m^3 H2O     |water stored in reach at beginning of day
!!    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

!!    ~ ~ ~ OUTGOING VARIABLES ~ ~ ~
!!    name        |units         |definition
!!    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
!!    hbactlp(:)   |# cfu/100mL  |less persistent bacteria in reach/outflow
!!                               |during hour
!!    hbactp(:)    |# cfu/100mL  |persistent bacteria in reach/outflow during
!!                               |hour
!!    rch_bactlp(:)|# cfu/100ml  |less persistent bacteria in reach/outflow
!!                               |at end of day
!!    rch_bactp(:) |# cfu/100ml  |persistent bacteria in reach/outflow at end
!!                               |of day
!!    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

!!    ~ ~ ~ LOCAL DEFINITIONS ~ ~ ~
!!    name        |units         |definition
!!    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
!!    ii          |none          |counter
!!    initlp      |# cfu/100mL   |bacteria concentration in reach at beginning
!!                               |of hour (less persistent)
!!    initp       |# cfu/100mL   |bacteria concentration in reach at beginning
!!                               |of hour (persistent)
!!    jrch        |none          |reach number
!!    netwtr      |m^3 H2O       |net amount of water in reach during time step
!!    tday        |day           |routing time for the reach
!!    totbactlp   |10^4 cfu      |mass less persistent bacteria
!!    totbactp    |10^4 cfu      |mass persistent bacteria
!!    wtmp        |deg C         |temperature of water in reach
!!    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

!!    ~ ~ ~ SUBROUTINES/FUNCTIONS CALLED ~ ~ ~
!!    Intrinsic: Exp, Max
!!    SWAT: Theta

!!    ~ ~ ~ ~ ~ ~ END SPECIFICATIONS ~ ~ ~ ~ ~ ~

      use basin_module
      use time_module
      use pathogen_data_module
      use channel_module
      use hydrograph_module, only : ob
      use climate_module
      use constituent_mass_module
      
      implicit none

      real, external :: Theta  !units         |description        
      real :: path_tot = 0.    !10^4 cfu      |mass persistent bacteria
      real :: netwtr = 0.      !m^3 H2O       |net amount of water in reach during time step
      real :: tday = 0.        !day           |routing time for the reach
      real :: wtmp = 0.        !deg C         |temperature of water in reach
      real :: rchwtr = 0.      !m^3 H2O       |water stored in reach at beginning of day
      integer :: iwst = 0      !units         |description
      integer :: ipath = 0     !none          |pathogen counter
      integer :: jrch = 0      !none          |reach number
      integer :: iob = 0       !none          |
      integer :: icmd = 0      !none          |

      if (rtwtr > 0. .and. rchdep > 0.) then

        wtmp = 5.0 + 0.75 * wst(iwst)%weat%tave
        if (wtmp <= 0.) wtmp = 0.1

        do ipath = 1, cs_db%num_paths
          !isp_ini = hru(ihru)%dbs%soil_plant_init
          !ipath_db = sol_plt_ini(isp_ini)%path
      
          !! total pathogen mass in reach
          path_tot = obcs(iob)%hd(1)%path(ipath) * ob(icmd)%hin%flo + ch(jrch)%bactp * rchwtr

          !! compute pathogen die-off
          tday = rttime / 24.0            !! calculate flow duration
          if (tday > 1.0) tday = 1.0
          path_tot = path_tot * Exp(-Theta(path_db(ipath)%do_stream, path_db(ipath)%t_adj,wtmp) * tday)
          path_tot = Max(0., path_tot)

          !! new concentration
          netwtr = ob(icmd)%hin%flo  + rchwtr
    
          !! change made by CS while running region 4; date 2 jan 2006  
          if (path_tot < 1.e-6) path_tot = 0.0 
          if (netwtr >= 1.) then
            ch_water(jrch)%path(ipath) = path_tot / netwtr
          else
            ch_water(jrch)%path(ipath) = 0.
          end if

        end do
      end if

      return
      end subroutine ch_rtpath