pest_pl_up.f90 Source File


This file depends on

sourcefile~~pest_pl_up.f90~~EfferentGraph sourcefile~pest_pl_up.f90 pest_pl_up.f90 sourcefile~constituent_mass_module.f90 constituent_mass_module.f90 sourcefile~pest_pl_up.f90->sourcefile~constituent_mass_module.f90 sourcefile~hru_module.f90 hru_module.f90 sourcefile~pest_pl_up.f90->sourcefile~hru_module.f90 sourcefile~output_ls_pesticide_module.f90 output_ls_pesticide_module.f90 sourcefile~pest_pl_up.f90->sourcefile~output_ls_pesticide_module.f90 sourcefile~pesticide_data_module.f90 pesticide_data_module.f90 sourcefile~pest_pl_up.f90->sourcefile~pesticide_data_module.f90 sourcefile~plant_module.f90 plant_module.f90 sourcefile~pest_pl_up.f90->sourcefile~plant_module.f90 sourcefile~soil_module.f90 soil_module.f90 sourcefile~pest_pl_up.f90->sourcefile~soil_module.f90

Source Code

      subroutine pest_pl_up

!!    ~ ~ ~ PURPOSE ~ ~ ~
!!    this subroutine calculates the amount of pesticide washed off the plant
!!    foliage and onto the soil

      use pesticide_data_module
      use output_ls_pesticide_module
      use hru_module, only :  ihru
      use soil_module
      use constituent_mass_module
      use plant_module
      
      implicit none       
      
      integer :: j = 0    !none          |HRU number
      integer :: k = 0    !none          |pesticide number
      integer :: ly = 0   !none          |soil layer number
      integer :: ipl = 0  !none          |plant number
      integer :: ipest_db = 0!none          |pesticide number from pest.dat
      real :: pest_up = 0.  !kg/ha         |amount of pesticide in soil   

      j = ihru

      if (cs_db%num_pests == 0) return

      do k = 1, cs_db%num_pests
        ipest_db = cs_db%pest_num(k)
        hpestb_d(j)%pest(k)%pl_uptake = 0.
        !! adjust foliar pesticide for wash off
        do ipl = 1, pcom(j)%npl
          if (cs_pl(j)%pl_on(ipl)%pest(k) >= 0.0001) then
            if (ipest_db > 0) then
              do ly = 1, soil(j)%nly
                pest_up = pestdb(ipest_db)%pl_uptake * pcom(j)%plcur(ipl)%uptake(ly) / soil(j)%phys(k)%st   &
                                                                                * cs_soil(j)%ly(ly)%pest(k)
                if (pest_up > cs_soil(j)%ly(ly)%pest(k)) pest_up = cs_soil(j)%ly(ly)%pest(k)
                cs_soil(j)%ly(ly)%pest(k) = cs_soil(j)%ly(ly)%pest(k) - pest_up
                cs_pl(j)%pl_in(ipl)%pest(k) = cs_pl(j)%pl_in(ipl)%pest(k) + pest_up
                hpestb_d(j)%pest(k)%pl_uptake = hpestb_d(j)%pest(k)%pl_uptake + pest_up
              end do
            end if
          end if 
        end do
      end do

      return
      end subroutine pest_pl_up