water_allocation_module Module

transfer source objects source and receiving objects water transfer objects source output water_transfer_data routines for hydrograph module


Used by

  • module~~water_allocation_module~~UsedByGraph module~water_allocation_module water_allocation_module proc~actions actions proc~actions->module~water_allocation_module proc~conditions conditions proc~conditions->module~water_allocation_module proc~cs_irrig cs_irrig proc~cs_irrig->module~water_allocation_module proc~header_water_allocation header_water_allocation proc~header_water_allocation->module~water_allocation_module proc~om_osrc_read om_osrc_read proc~om_osrc_read->module~water_allocation_module proc~om_treat_read om_treat_read proc~om_treat_read->module~water_allocation_module proc~om_use_read om_use_read proc~om_use_read->module~water_allocation_module proc~recalldb_read recalldb_read proc~recalldb_read->module~water_allocation_module proc~res_hydro res_hydro proc~res_hydro->module~water_allocation_module proc~res_weir_release res_weir_release proc~res_weir_release->module~water_allocation_module proc~salt_irrig salt_irrig proc~salt_irrig->module~water_allocation_module proc~wallo_allo_output wallo_allo_output proc~wallo_allo_output->module~water_allocation_module proc~wallo_control wallo_control proc~wallo_control->module~water_allocation_module proc~wallo_demand wallo_demand proc~wallo_demand->module~water_allocation_module proc~wallo_transfer wallo_transfer proc~wallo_transfer->module~water_allocation_module proc~wallo_treat_output wallo_treat_output proc~wallo_treat_output->module~water_allocation_module proc~wallo_treatment wallo_treatment proc~wallo_treatment->module~water_allocation_module proc~wallo_trn_output wallo_trn_output proc~wallo_trn_output->module~water_allocation_module proc~wallo_use wallo_use proc~wallo_use->module~water_allocation_module proc~wallo_use_output wallo_use_output proc~wallo_use_output->module~water_allocation_module proc~wallo_withdraw wallo_withdraw proc~wallo_withdraw->module~water_allocation_module proc~water_allocation_read water_allocation_read proc~water_allocation_read->module~water_allocation_module proc~water_osrc_read water_osrc_read proc~water_osrc_read->module~water_allocation_module proc~water_pipe_read water_pipe_read proc~water_pipe_read->module~water_allocation_module proc~water_tower_read water_tower_read proc~water_tower_read->module~water_allocation_module proc~water_treatment_read water_treatment_read proc~water_treatment_read->module~water_allocation_module proc~water_use_read water_use_read proc~water_use_read->module~water_allocation_module

Variables

Type Visibility Attributes Name Initial
real, public :: trans_m3 = 0.
real, public :: trn_m3 = 0.

water source objects

type(source_output), public :: walloz
type(water_allocation), public, dimension(:), allocatable :: wallo
type(water_allocation), public, pointer :: wal

water treatment and use data

type(water_treatment_use_data), public, dimension(:), allocatable :: wtp
type(water_treatment_use_data), public, dimension(:), allocatable :: wuse

outside basin data

type(outside_basin_data), public, dimension(:), allocatable :: osrc
type(water_transfer_data), public, dimension(:), allocatable :: wtow
type(water_transfer_data), public, dimension(:), allocatable :: pipe
type(water_transfer_data), public, dimension(:), allocatable :: canal
character(len=16), public, dimension(:), allocatable :: om_init_name
character(len=16), public, dimension(:), allocatable :: om_treat_name
character(len=16), public, dimension(:), allocatable :: om_use_name
character(len=16), public, dimension(:), allocatable :: om_osrc_name
type(water_allocation_output), public, dimension(:), allocatable :: wallod_out
type(water_allocation_output), public, dimension(:), allocatable :: wallom_out
type(water_allocation_output), public, dimension(:), allocatable :: walloy_out
type(water_allocation_output), public, dimension(:), allocatable :: walloa_out
type(wallo_header), public :: wallo_hdr
type(wallo_header_units), public :: wallo_hdr_units

Interfaces

public interface operator (+)

public interface operator (/)

  • public function wallo_div_const(wallo1, const) result(wallo2)

    Arguments

    Type IntentOptional Attributes Name
    type(source_output), intent(in) :: wallo1
    real, intent(in) :: const

    Return Value type(source_output)


Derived Types

type, public ::  water_source_objects

Components

Type Visibility Attributes Name Initial
integer, public :: num = 0
character(len=6), public :: ob_typ = ""
integer, public :: ob_num = 0
character(len=10), public :: lim_typ = ""
character(len=25), public :: lim_name = ""
integer, public :: dtbl_num = 0
integer, public :: rec_num = 0
real, public, dimension (12) :: limit_mon = 0.

type, public ::  transfer_source_objects

Components

Type Visibility Attributes Name Initial
character(len=10), public :: typ = ""
integer, public :: num = 0
character(len=10), public :: conv_typ = ""
integer, public :: conv_num = 0
real, public :: frac = 0.
character(len=1), public :: comp = ""

type, public ::  transfer_receiving_objects

Components

Type Visibility Attributes Name Initial
character(len=10), public :: typ = ""
integer, public :: num = 0
character(len=25), public :: dtbl_rob = ""
real, public :: frac = 0.

type, public ::  water_transfer_objects

Components

Type Visibility Attributes Name Initial
integer, public :: num = 0
character(len=10), public :: trn_typ = ""
character(len=40), public :: trn_typ_name = ""
integer, public :: dtbl_num = 0
integer, public :: rec_num = 0
real, public :: amount = 0.
character(len=2), public :: right = ""
integer, public :: src_num = 0
character(len=25), public :: dtbl_src = ""
integer, public :: dtbl_src_num = 0
type(transfer_source_objects), public, dimension(:), allocatable :: src
integer, public, dimension(:), allocatable :: src_wal
integer, public :: rcv_num = 0
character(len=25), public :: dtbl_rcv = ""
type(transfer_receiving_objects), public :: rcv
real, public :: unmet_m3 = 0.
real, public :: withdr_tot = 0.
real, public :: irr_eff = 0.
real, public :: surq = 0.

type, public ::  source_output

Components

Type Visibility Attributes Name Initial
real, public :: demand = 0.
real, public :: withdr = 0.
real, public :: unmet = 0.

type, public ::  water_allocation

Components

Type Visibility Attributes Name Initial
character(len=25), public :: name = ""
character(len=25), public :: rule_typ = ""
integer, public :: src_obs = 0
integer, public :: trn_obs = 0
integer, public :: out_src = 0
integer, public :: out_rcv = 0
integer, public :: wtp = 0
integer, public :: uses = 0
integer, public :: stor = 0
integer, public :: pipe = 0
integer, public :: canal = 0
integer, public :: pump = 0
character(len=1), public :: cha_ob = ""
type(source_output), public :: tot
type(water_source_objects), public, dimension(:), allocatable :: src
type(water_transfer_objects), public, dimension(:), allocatable :: trn

type, public ::  water_treatment_use_data

Components

Type Visibility Attributes Name Initial
character(len=25), public :: name = ""
real, public :: stor_mx
real, public :: lag_days
real, public :: loss_fr
character(len=25), public :: org_min = ""
character(len=25), public :: pests = ""
character(len=25), public :: paths = ""
character(len=25), public :: hmets = ""
character(len=25), public :: salts = ""
character(len=25), public :: constit = ""
character(len=80), public :: descrip = ""
integer, public :: iorg_min = 0
integer, public :: ipests = 0
integer, public :: ipaths = 0
integer, public :: isalts = 0
integer, public :: iconstit = 0

type, public ::  outside_basin_data

Components

Type Visibility Attributes Name Initial
character(len=25), public :: name = ""
real, public :: stor_mx
real, public :: lag_days
real, public :: loss_fr
integer, public :: iorg_min = 0
integer, public :: ipests = 0
integer, public :: ipaths = 0
integer, public :: isalts = 0
integer, public :: iconstit = 0

type, public ::  aquifer_loss

Components

Type Visibility Attributes Name Initial
real, public :: aqu_num
real, public :: frac

type, public ::  water_transfer_data

Components

Type Visibility Attributes Name Initial
character(len=25), public :: name = ""
character(len=25), public :: init = ""
real, public :: stor_mx
real, public :: lag_days
real, public :: loss_fr
integer, public :: num_aqu
type(aquifer_loss), public, dimension(:), allocatable :: aqu_loss

type, public ::  transfer_object_output

Components

Type Visibility Attributes Name Initial
real, public :: trn_flo = 0.
type(source_output), public, dimension(:), allocatable :: src

type, public ::  water_allocation_output

Components

Type Visibility Attributes Name Initial
type(transfer_object_output), public, dimension(:), allocatable :: trn

type, public ::  wallo_header

Components

Type Visibility Attributes Name Initial
character(len=6), public :: day = "  jday"
character(len=6), public :: mo = "   mon"
character(len=6), public :: day_mo = " day "
character(len=6), public :: yrc = " yr  "
character(len=8), public :: itrn = " unit   "
character(len=16), public :: trn_typ = "trn_typ         "
character(len=16), public :: trn_num = "    trn_num     "
character(len=17), public :: rcv_typ = "drcv_typ         "
character(len=16), public :: rcv_num = "    rcv_num     "
character(len=12), public :: src1_obj = "   src1_obj "
character(len=12), public :: src1_typ = " src1_typ   "
character(len=12), public :: src1_num = " src1_num   "
character(len=15), public :: trn1 = "    demand     "

ha-m |demand - muni or irrigation

character(len=15), public :: s1out = "src1_withdraw  "

ha-m |withdrawal from source 1

character(len=12), public :: s1un = "  src1_unmet"

ha-m |unmet from source 1

character(len=12), public :: src2_typ = " src2_typ   "
character(len=12), public :: src2_num = " src2_num   "
character(len=15), public :: trn2 = "    demand     "

ha-m |demand - muni or irrigation

character(len=15), public :: s2out = "src2_withdraw  "

ha-m |withdrawal from source 2

character(len=12), public :: s2un = "  src2_unmet"

ha-m |unmet from source 2

character(len=12), public :: src3_typ = " src3_typ   "
character(len=12), public :: src3_num = " src3_num   "
character(len=15), public :: trn3 = "    demand     "

ha-m |demand - muni or irrigation

character(len=15), public :: s3out = "src3_withdraw  "

ha-m |withdrawal from source 3

character(len=12), public :: s3un = "  src3_unmet"

ha-m |unmet from source 3

type, public ::  wallo_header_units

Components

Type Visibility Attributes Name Initial
character(len=8), public :: day = "        "
character(len=8), public :: mo = "        "
character(len=8), public :: day_mo = "        "
character(len=8), public :: yrc = "        "
character(len=8), public :: itrn = "        "
character(len=16), public :: trn_typ = "                "
character(len=16), public :: trn_num = "                "
character(len=16), public :: rcv_typ = "                "
character(len=16), public :: rcv_num = "                "
character(len=12), public :: src1_obj = "            "
character(len=12), public :: src1_typ = "            "
character(len=8), public :: src1_num = "        "
character(len=15), public :: trn1 = "m^3            "

ha-m |demand - muni or irrigation

character(len=15), public :: s1out = "m^3            "

ha-m |withdrawal from source 1

character(len=9), public :: s1un = "m^3      "

ha-m |unmet from source 1

character(len=15), public :: src2_typ = "               "
character(len=15), public :: src2_num = "               "
character(len=15), public :: trn2 = "m^3            "

ha-m |demand - muni or irrigation

character(len=15), public :: s2out = "m^3            "

ha-m |withdrawal from source 2

character(len=15), public :: s2un = "m^3            "

ha-m |unmet from source 2

character(len=15), public :: src3_typ = "               "
character(len=15), public :: src3_num = "               "
character(len=15), public :: trn3 = "m^3            "

ha-m |demand - muni or irrigation

character(len=15), public :: s3out = "m^3            "

ha-m |withdrawal from source 3

character(len=15), public :: s3un = "m^3            "

ha-m |unmet from source 3


Functions

public function wallout_add(wallo1, wallo2) result(wallo3)

Arguments

Type IntentOptional Attributes Name
type(source_output), intent(in) :: wallo1
type(source_output), intent(in) :: wallo2

Return Value type(source_output)

public function wallo_div_const(wallo1, const) result(wallo2)

Arguments

Type IntentOptional Attributes Name
type(source_output), intent(in) :: wallo1
real, intent(in) :: const

Return Value type(source_output)