nutrient_phosphorus_loss Subroutine

public subroutine nutrient_phosphorus_loss(j, je, k, bd, qd)

Arguments

Type IntentOptional AttributesName
integer :: j
integer :: je
integer :: k
real(kind=dp), intent(in), dimension(:):: bd
real(kind=dp), intent(in) :: qd

Called by

proc~~nutrient_phosphorus_loss~~CalledByGraph proc~nutrient_phosphorus_loss nutrient_phosphorus_loss proc~nutrient_leaching nutrient_leaching proc~nutrient_leaching->proc~nutrient_phosphorus_loss proc~hydrotope_process hydrotope_process proc~hydrotope_process->proc~nutrient_leaching proc~runsubbasin runsubbasin proc~runsubbasin->proc~hydrotope_process proc~time_process_day time_process_day proc~time_process_day->proc~runsubbasin proc~time_process_month time_process_month proc~time_process_month->proc~time_process_day proc~time_process_years time_process_years proc~time_process_years->proc~time_process_month program~swim swim program~swim->proc~time_process_years

Contents


Source Code

  subroutine nutrient_phosphorus_loss(j, je, k, bd, qd)
    !**** PURPOSE: COMPUTES soluble P loss with surface runoff
    !**** CALLED IN: HYDROTOP
    !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    !     PARAMETERS & VARIABLES
    !
    !      >>>>> COMMON PARAMETERS & VARIABLES
    !      bd(k) = bulk density of the upper soil layer, g/cm3
    !      plab(j, je, 1) = P labile in the I soil layer, kg/ha
    !                     plab(j, je, 1) * (10. / bd(k)), g/t
    !      qd = surface runoff, mm
    !      ysp = soluble P leaching, kg/ha
    !      >>>>>

    !      >>>>> STATIC PARAMETERS
    !      dkd = P conc in sediment divided by that of water in m3/t
    !      xx = local par
    !      >>>>>
    !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    !**** Include common parameters

    real(dp), dimension(:), intent(in) :: bd
    real(dp), intent(in) :: qd
    integer j, je, k
    real(dp) xx

    ysp = .01 * plab(j, je, 1) * (10. / bd(k)) * qd / dkd
    xx = plab(j, je, 1) - ysp
    if (xx .le. 0.) then
      ysp = 0.
    endif
    plab(j, je, 1) = plab(j, je, 1) - ysp
    return
  end subroutine nutrient_phosphorus_loss