rls_routesurf.f90 Source File


This file depends on

sourcefile~~rls_routesurf.f90~~EfferentGraph sourcefile~rls_routesurf.f90 rls_routesurf.f90 sourcefile~climate_module.f90 climate_module.f90 sourcefile~rls_routesurf.f90->sourcefile~climate_module.f90 sourcefile~hru_module.f90 hru_module.f90 sourcefile~rls_routesurf.f90->sourcefile~hru_module.f90 sourcefile~hydrograph_module.f90 hydrograph_module.f90 sourcefile~rls_routesurf.f90->sourcefile~hydrograph_module.f90 sourcefile~basin_module.f90 basin_module.f90 sourcefile~hydrograph_module.f90->sourcefile~basin_module.f90 sourcefile~time_module.f90 time_module.f90 sourcefile~hydrograph_module.f90->sourcefile~time_module.f90

Source Code

      subroutine rls_routesurf (iob, tile_fr_surf)
      
!!    ~ ~ ~ PURPOSE ~ ~ ~

!!    ~ ~ ~ INCOMING VARIABLES ~ ~ ~
!!    name        |units         |definition
!!    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 
!!    ~ ~ ~ OUTGOING VARIABLES ~ ~ ~
!!    name        |units         |definition
!!    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 
!!
!!    ht1== deposition: write to deposition.out
!!    ht2== outflow from inflow: added to hru generated flows

      use hru_module, only : hru, ihru, usle_cfac, ls_overq, precip_eff
      use hydrograph_module
      use climate_module, only : w
      
      implicit none
      
      integer :: j = 0                  !       |
      integer :: iob                    !       |
      integer :: ifield = 0             !       |
      real, intent (in)  :: tile_fr_surf    !m3     |overland tile flow
      real :: sed = 0.                  !       |
      real :: trancap = 0.              !       |

      j = ihru
      ifield = hru(j)%dbs%field

      !! compute infiltration from surface runon and tile flow to next landscape unit
      ls_overq = ob(iob)%hin_sur%flo + (ob(iob)%hin_til%flo * tile_fr_surf) / (10. * hru(j)%area_ha)   ! m3/10*ha = mm
      precip_eff = precip_eff + ls_overq
      
      !! add surface runon to subdaily effective precip
      if (time%step > 1) then
          w%ts(:) = w%ts(:) + ls_overq / time%step
      end if
      
!!    compute infiltration from surface runon to next landscape unit
      !ls_overq = ob(iob)%hin%flo    !/ (10. * hru(j)%area_ha) 
      !if (ls_overq > 1.e-6) then
      !  qs = ls_overq / 24.   !mm/hr
      !  vs = (qs ** .4) * (hru(j)%topo%slope ** .3) / (hru(j)%luse%ovn ** .6)
      !  if (vs > 1.e-6) then
      !    trt = hru(j)%topo%slope_len / (3600. * vs)
      !    inflrout = soil(j)%phys(1)%k * trt
      !    inflrout = Min (inflrout, ls_overq)
      !  else
      !    inflrout = ls_overq
      !  end if
      !  ht1%flo = inflrout
      !  ht2%flo = ls_overq - inflrout
      !end if
      
!!    sediment deposition across the landscape
      sed = ob(iob)%hin_sur%sed / hru(j)%area_ha
      !! use surface runoff (mm) for eiq - m3/(10 * ha) = mm
      trancap = hru(j)%topo%dep_co * usle_cfac(j) * ls_overq *        &
                hru(j)%topo%slope**1.4 * hru(j)%field%wid**1.4
      if (sed > trancap) then
        ht1%sed = (sed - trancap) * hru(j)%area_ha
        ht2%sed = trancap * hru(j)%area_ha
      else
        ht1%sed = 0.
        ht2%sed = sed * hru(j)%area_ha
      end if
      
!!    organic nitrogen
!      orgn = hd(ihout)%orgn 
!      cy = hd(ihout)%sed  / (hd(ihout)%flo  + 1.e-6)
!      if (cy > .01) then
!        enratio = .78 * cy ** (-.2468)
!      else
!        enratio = 3.
!      end if
!      enratio = Min(enratio,3.)
!      dr_er = drls * enratio
!      dr_er = Min(dr_er,1.)
!      hd(ihout)%orgn = orgn * dr_er
      
!!    organic phosphorus
!      orgp = hd(ihout)%sedp 
!      hd(ihout)%sedp = orgp * dr_er
      
!!    nitrate (& nitrite)
!      no3 = (hd(ihout)%no3 + hd(ihout)%no2)
!!    soluble phosphorus
!      slbp = hd(ihout)%solp 
!!    soluble pesticide not routed
!!    sorbed pesticide not routed
!!    chlorophyll-a not routed
!!    ammonium
!      nh3 = hd(ihout)%nh3 
!!    CBOD not routed
!!    dissolved oxygen not routed
!!    persistent bacteria not routed
!!    less persistent bacteria not routed

      return
      end subroutine rls_routesurf