snow_glacier_melt Subroutine

public subroutine snow_glacier_melt(j, jea)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: j
integer, intent(in) :: jea

Called by

proc~~snow_glacier_melt~~CalledByGraph proc~snow_glacier_melt snow_glacier_melt proc~snow_process snow_process proc~snow_process->proc~snow_glacier_melt proc~runsubbasin runsubbasin proc~runsubbasin->proc~snow_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


Source Code

  subroutine snow_glacier_melt(j, jea)
    !**** PURPOSE: THIS SUBROUTINE COMPUTES DAILY ICE MELT
    !              WHEN AVERAGE AIR TEMP EXCEEDS 0 DEGREES C
    !**** CALLED IN: SUBBASIN
    !     snow melt rate in SWAT = 4.57: sml = 4.57 * tmax
    !     snow melt rate in HBV = 3.2
    !     current version in SWIM: sml = 3.2 * tx(j
    !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    !     PARAMETERS & VARIABLES
    !
    !      >>>>> COMMON PARAMETERS & VARIABLES
    !      precipe = precipitation in the hydrotop, mm
    !      gmle = ice melt, mm
    !      gla(j, jea) = glacier water equivalent, mm
    !      tmax = daily max temp, read in readcli, degree C
    !      tmit = daily average temp, read in readcli, degree C
    !      >>>>>

    !      >>>>> STATIC PARAMETERS
    !      gmr = ice melt rate, coef for the degree-day method, mm/degree
    !      >>>>>
    !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    !**** Include common parameters
    integer, intent(in) :: j, jea

    if (tmit > tmelt(j) ) then
      gmle = gmrate(j) * (tmit - tmelt(j))
      if (gmle > gla(j, jea)) gmle = gla(j, jea)
      gla(j, jea) = gla(j, jea) - gmle
      precipe = precipe + gmle
    else
      gmle = 0.
    end if

  end subroutine snow_glacier_melt