TWaterUser Derived Type

type, public :: TWaterUser


Contents

Source Code


Components

TypeVisibility AttributesNameInitial
real(kind=dp), public :: area
real(kind=dp), public, dimension(:), pointer:: data
integer, public :: day_irr_end
integer, public :: day_irr_start
integer, public :: fyr
real(kind=dp), public :: irr_deficit_fac
integer, public :: irr_eff_fac
integer, public :: irr_opt
integer, public :: irr_practice
real(kind=dp), public, dimension(:), pointer:: irrigationDemand
integer, public :: lyr
character(len=path_max_length), public :: name
real(kind=dp), public, dimension(:), pointer:: plantDemand
integer, public :: subd
integer, public :: subs
real(kind=dp), public, dimension(:), pointer:: supplied
real(kind=dp), public :: tr_eff
real(kind=dp), public, dimension(:), pointer:: tr_losses

Following variables are required for water users of type irrigation only wu_opt = 4


method to compute/read the daily irrigation demand

integer, public :: ts_
integer, public :: w_source
integer, public :: wu_opt

Source Code

  TYPE :: TWaterUser
    ! water transfer user name
    character(len=path_max_length) :: name
    ! first year where water user is active
    integer :: fyr
    ! last year where water user is active
    integer :: lyr
    ! time step of input time series:
    integer :: ts_
                                  ! 1 = constant monthly,
                                  ! 2 = monthly,
                                  ! 3 = daily
    ! water use option:
    integer :: wu_opt
                                  ! 1 transfer (from subbasin x to subbasin y)
                                  ! 2 transfer (from subbasin x to external destination)
                                  ! 3 input (from external source to subbasin x)
                                  ! 4 agr = irrigation (agricultural use)
    ! subbasin number of source
    integer :: subs
    ! subbasin number of destination
    integer :: subd
    ! efficiency of transfer from one subbasin to another within the basin
    real(dp) :: tr_eff
                                  ! 0 = 100% losses
                                  ! 1 = 0% losses
    ! area in m^2 only relevant for irrigation water users
    real(dp) :: area

    ! daily time series of withdrawal or supply (read from time series input file)
    ! [m3 / s], dimension (number of days of simulation + 1)
    real(dp), dimension(:), pointer :: data

    ! daily time series of plant water demand for irrigation
    ! [m3 / s], dimension (number of days of simulation + 1)
    real(dp), dimension(:), pointer :: plantDemand

    ! daily time series of total irrigation demand, including losses due to irrigation practice
    ! [m3 / s], dimension (number of days of simulation + 1)
    real(dp), dimension(:), pointer :: irrigationDemand

    ! daily time series of water supplied to this user, excluding transmission losses (calculated during simulation)
    ! [m3 / s]
    real(dp), dimension(:), pointer :: supplied

    ! daily time series of water transmission losses (calculated during simulation)
    ! [m3 / s]
    real(dp), dimension(:), pointer :: tr_losses

    !-------------------------------------------------------------------
    ! Following variables are required for water users of type irrigation only
    ! wu_opt = 4
    !-------------------------------------------------------------------
    ! method to compute/read the daily irrigation demand
    integer :: irr_opt
                                        ! 1 = get daily values from input time series (format as indicated by ts_)
                                        ! 2 = compute demand from deficit method 1
                                        ! 3 = compute demand from deficit method 2
                                        ! 4 = compute demand from deficit method 3
    ! 1 = sprinkler irrigation
    integer :: irr_practice
                                        ! 2 = drip irrigation
    ! Factor of deficit irrigation. 1. = no deficit irrigation: < 1. = deficit irrigation
    real(dp) :: irr_deficit_fac
    ! julian day (day of year) indicating the start of the irrigation period
    integer :: day_irr_start
    ! julian day (day of year) indicating the end of the irrigation period
    integer :: day_irr_end
    ! source of water: 1 = river; 2 = ground water; 3 = both
    integer :: w_source

    integer :: irr_eff_fac
    !-------------------------------------------------------------------
  END TYPE TWaterUser