42 INTEGER,
INTENT(in):: is
44 REAL(KIND(1d0)),
INTENT(in)::state_is
45 REAL(KIND(1d0)),
INTENT(in)::StorCap
46 REAL(KIND(1d0)),
INTENT(in)::DrainCoef1
47 REAL(KIND(1d0)),
INTENT(in)::DrainCoef2
48 REAL(KIND(1d0)),
INTENT(in)::DrainEq
49 REAL(KIND(1d0)),
INTENT(in)::nsh_real
50 REAL(KIND(1d0)),
INTENT(out):: drain_is
53 IF (state_is < 0.000000001)
THEN 56 IF (int(draineq) == 1)
THEN 58 IF (state_is < storcap)
THEN 61 drain_is = (draincoef1*(state_is - storcap)**draincoef2)/nsh_real
64 ELSEIF (int(draineq) == 2)
THEN 65 drain_is = (draincoef1*(exp(draincoef2*state_is) - 1))/nsh_real
68 ELSEIF (int(draineq) == 3)
THEN 69 drain_is = (draincoef1*(state_is**draincoef2))/nsh_real
77 IF (drain_is > state_is)
THEN 79 CALL errorhint(61,
'SUEWS_drain: drain_is > state_is for surface is ', drain_is, state_is, is)
81 ELSEIF (drain_is < 0.0001)
THEN 93 is, sfr, PipeCapacity, RunoffToWater, pin, & ! input:
94 wu_EveTr, wu_DecTr, wu_Grass, drain, AddWater, addImpervious, nsh_real, stateOld, AddWaterRunoff, &
95 PervFraction, addVeg, SoilStoreCap, addWaterBody, FlowChange, StateLimit, &
96 runoffAGimpervious, surplusWaterBody, & ! inout:
97 runoffAGveg, runoffPipes, ev, soilstore_id, SurplusEvap, runoffWaterBody, &
98 p_mm, chang, runoff, state_id)
140 INTEGER,
INTENT(in)::is
142 REAL(KIND(1d0)),
DIMENSION(nsurf),
INTENT(in)::sfr
143 REAL(KIND(1d0)),
DIMENSION(nsurf),
INTENT(in)::AddWater
144 REAL(KIND(1d0)),
DIMENSION(nsurf),
INTENT(in)::stateOld
145 REAL(KIND(1d0)),
DIMENSION(nsurf),
INTENT(in)::AddWaterRunoff
146 REAL(KIND(1d0)),
DIMENSION(nsurf),
INTENT(in)::SoilStoreCap
147 REAL(KIND(1d0)),
DIMENSION(nsurf),
INTENT(in)::StateLimit
149 REAL(KIND(1d0)),
INTENT(in)::PipeCapacity
150 REAL(KIND(1d0)),
INTENT(in)::RunoffToWater
151 REAL(KIND(1d0)),
INTENT(in)::pin
152 REAL(KIND(1d0)),
INTENT(in)::wu_EveTr
153 REAL(KIND(1d0)),
INTENT(in)::wu_DecTr
154 REAL(KIND(1d0)),
INTENT(in)::wu_Grass
155 REAL(KIND(1d0)),
INTENT(in)::addImpervious
156 REAL(KIND(1d0)),
INTENT(in)::nsh_real
157 REAL(KIND(1d0)),
INTENT(in)::PervFraction
158 REAL(KIND(1d0)),
INTENT(in)::addVeg
159 REAL(KIND(1d0)),
INTENT(in)::addWaterBody
160 REAL(KIND(1d0)),
INTENT(in)::FlowChange
162 REAL(KIND(1d0)),
INTENT(inout)::runoffAGimpervious
163 REAL(KIND(1d0)),
INTENT(inout)::surplusWaterBody
164 REAL(KIND(1d0)),
INTENT(inout)::runoffAGveg
165 REAL(KIND(1d0)),
INTENT(inout)::runoffPipes
166 REAL(KIND(1d0)),
INTENT(inout)::ev
167 REAL(KIND(1d0)),
INTENT(inout)::runoffWaterBody
169 REAL(KIND(1d0)),
DIMENSION(nsurf),
INTENT(inout)::soilstore_id
170 REAL(KIND(1d0)),
DIMENSION(2),
INTENT(inout) ::SurplusEvap
172 REAL(KIND(1d0)),
INTENT(out)::p_mm
174 REAL(KIND(1d0)),
DIMENSION(nsurf),
INTENT(out)::chang
175 REAL(KIND(1d0)),
DIMENSION(nsurf),
INTENT(out)::runoff
176 REAL(KIND(1d0)),
DIMENSION(nsurf),
INTENT(in) ::drain
177 REAL(KIND(1d0)),
DIMENSION(nsurf),
INTENT(out)::state_id
180 REAL(KIND(1d0)):: EvPart
181 REAL(KIND(1d0)),
PARAMETER:: NotUsed = -55.5
182 REAL(KIND(1d0)),
PARAMETER:: IPThreshold_mmhr = 10
194 p_mm = pin + wu_evetr
196 p_mm = pin + wu_dectr
198 p_mm = pin + wu_grass
206 p_mm = p_mm + addwater(is)
217 p_mm = p_mm + addimpervious/sfr(
pavsurf)
222 chang(is) = p_mm - (drain(is) + ev)
226 IF (p_mm > ipthreshold_mmhr/nsh_real)
THEN 227 runoff(is) = runoff(is) + (p_mm - ipthreshold_mmhr/nsh_real)
228 chang(is) = ipthreshold_mmhr/nsh_real - (drain(is) + ev)
232 state_id(is) = stateold(is) + chang(is)
235 IF (state_id(is) < 0.0)
THEN 238 surplusevap(is) = abs(state_id(is))
239 ev = ev - surplusevap(is)
249 chang(is) = state_id(is) - stateold(is)
253 runoff(is) = runoff(is) + drain(is)*addwaterrunoff(is)
280 chang(is) = p_mm - (drain(is) + ev)
284 IF (p_mm > ipthreshold_mmhr/nsh_real)
THEN 285 runoff(is) = runoff(is) + (p_mm - ipthreshold_mmhr/nsh_real)
286 chang(is) = ipthreshold_mmhr/nsh_real - (drain(is) + ev)
290 state_id(is) = stateold(is) + chang(is)
293 IF (state_id(is) < 0.0)
THEN 296 IF ((soilstore_id(is) + state_id(is)) >= 0)
THEN 297 soilstore_id(is) = soilstore_id(is) + state_id(is)
301 ev = ev - abs(state_id(is))
313 chang(is) = state_id(is) - stateold(is)
319 soilstore_id(is) = soilstore_id(is) + drain(is)*addwaterrunoff(is)
322 IF (soilstore_id(is) > soilstorecap(is))
THEN 323 runoff(is) = runoff(is) + (soilstore_id(is) - soilstorecap(is))
324 soilstore_id(is) = soilstorecap(is)
325 ELSEIF (soilstore_id(is) < 0)
THEN 326 CALL errorhint(62,
'SUEWS_store: soilstore_id(is) < 0 ', soilstore_id(is), notused, is)
335 p_mm = p_mm + addwaterbody/sfr(
watersurf)
340 chang(is) = p_mm + flowchange/nsh_real - ev
343 state_id(is) = stateold(is) + chang(is)
346 IF (state_id(is) < 0.0)
THEN 348 ev = ev - abs(state_id(is))
358 chang(is) = state_id(is) - stateold(is)
374 chang(is) = state_id(is) - stateold(is)
389 sfr, pipecapacity, runofftowater, &
390 runoffagimpervious, surpluswaterbody, runoffagveg, runoffpipes)
398 is, runoff, &! input:
399 sfr, PipeCapacity, RunoffToWater, &
400 runoffAGimpervious, surplusWaterBody, runoffAGveg, runoffPipes)
404 INTEGER,
INTENT(in) :: is
405 REAL(KIND(1d0)),
INTENT(in) :: sfr(
nsurf), runoff(
nsurf), PipeCapacity, RunoffToWater
406 REAL(KIND(1d0)),
INTENT(inout) :: runoffAGimpervious, surplusWaterBody, runoffAGveg, runoffPipes
409 runoffpipes = runoffpipes + (runoff(is)*sfr(is))
413 IF (runoffpipes > pipecapacity)
THEN 420 runoffagimpervious = runoffagimpervious + (runoffpipes - pipecapacity)*(1 - runofftowater)
421 surpluswaterbody = surpluswaterbody + (runoffpipes - pipecapacity)*runofftowater
424 runoffagimpervious = runoffagimpervious + (runoffpipes - pipecapacity)
430 runoffagveg = runoffagveg + (runoffpipes - pipecapacity)*(1 - runofftowater)
431 surpluswaterbody = surpluswaterbody + (runoffpipes - pipecapacity)*runofftowater
434 runoffagveg = runoffagveg + (runoffpipes - pipecapacity)
438 runoffpipes = pipecapacity
447 snowUse, WaterDist, sfr, Drain, &! input:
448 AddWaterRunoff, AddWater)
455 INTEGER,
INTENT(in)::snowUse
457 REAL(KIND(1d0)),
INTENT(in)::WaterDist(
nsurf + 1,
nsurf - 1)
458 REAL(KIND(1d0)),
INTENT(in)::sfr(
nsurf)
459 REAL(KIND(1d0)),
INTENT(in)::Drain(
nsurf)
461 REAL(KIND(1d0)),
INTENT(out)::AddWaterRunoff(
nsurf)
462 REAL(KIND(1d0)),
INTENT(out)::AddWater(
nsurf)
465 INTEGER::NSurfDoNotReceiveDrainage = 0
469 addwaterrunoff(ii) = waterdist(8, ii)
474 DO ii = 1,
nsurf - nsurfdonotreceivedrainage
475 DO jj = 1,
nsurf - (nsurfdonotreceivedrainage + 1)
477 IF (sfr(ii) /= 0)
THEN 480 IF (snowuse == 0)
THEN 481 addwater(ii) = addwater(ii) + (drain(jj)*sfr(jj)/sfr(ii))*waterdist(ii, jj)
485 addwaterrunoff(jj) = addwaterrunoff(jj) + waterdist(ii, jj)
489 addwaterrunoff(jj) = addwaterrunoff(jj) + waterdist(ii, jj)
500 NonWaterFraction, &!input
501 SoilStoreCap, sfr, soilstore_id, &
502 SoilMoistCap, SoilState, &!output
507 REAL(KIND(1d0)),
INTENT(in)::NonWaterFraction
508 REAL(KIND(1d0)),
INTENT(in),
DIMENSION(nsurf)::SoilStoreCap, sfr, soilstore_id
510 REAL(KIND(1d0)),
INTENT(out)::SoilMoistCap, SoilState
511 REAL(KIND(1d0)),
INTENT(out)::vsmd, smd
518 IF (nonwaterfraction /= 0)
THEN 520 soilmoistcap = soilmoistcap + (soilstorecap(is)*sfr(is)/nonwaterfraction)
521 soilstate = soilstate + (soilstore_id(is)*sfr(is)/nonwaterfraction)
527 smd = soilmoistcap - soilstate
546 SMDMethod, xsmd, NonWaterFraction, SoilMoistCap, &!input
547 SoilStoreCap, surf_chang_per_tstep, &
548 soilstore_id, soilstoreOld, sfr, &
549 smd, smd_nsurf, tot_chang_per_tstep, SoilState)
552 INTEGER,
PARAMETER :: nsurf = 7
554 INTEGER,
INTENT(in) ::SMDMethod
555 REAL(KIND(1d0)),
INTENT(in)::xsmd
556 REAL(KIND(1d0)),
INTENT(in)::NonWaterFraction
557 REAL(KIND(1d0)),
INTENT(in)::SoilMoistCap
559 REAL(KIND(1d0)),
INTENT(in)::surf_chang_per_tstep
560 REAL(KIND(1d0)),
DIMENSION(nsurf),
INTENT(in)::soilstore_id
561 REAL(KIND(1d0)),
DIMENSION(nsurf),
INTENT(in)::soilstoreOld
562 REAL(KIND(1d0)),
DIMENSION(nsurf),
INTENT(in)::sfr
563 REAL(KIND(1d0)),
DIMENSION(nsurf),
INTENT(in)::SoilStoreCap
565 REAL(KIND(1d0)),
DIMENSION(nsurf),
INTENT(out)::smd_nsurf
566 REAL(KIND(1d0)),
INTENT(out)::SoilState
567 REAL(KIND(1d0)),
INTENT(out)::smd
568 REAL(KIND(1d0)),
INTENT(out)::tot_chang_per_tstep
570 REAL(KIND(1d0)),
PARAMETER::NotUsed = -999
571 REAL(KIND(1d0)),
PARAMETER::NAN = -999
575 IF (nonwaterfraction /= 0)
THEN 577 soilstate = soilstate + (soilstore_id(is)*sfr(is)/nonwaterfraction)
578 IF (soilstate < 0)
THEN 579 CALL errorhint(62,
'SUEWS_Calculations: total SoilState < 0 (just added surface is) ', soilstate, notused, is)
580 ELSEIF (soilstate > soilmoistcap)
THEN 581 CALL errorhint(62,
'SUEWS_Calculations: total SoilState > capacity (just added surface is) ', soilstate, notused, is)
595 smd = soilmoistcap - soilstate
596 smd_nsurf = soilstorecap - soilstore_id
600 tot_chang_per_tstep = surf_chang_per_tstep
601 DO is = 1, (nsurf - 1)
602 tot_chang_per_tstep = tot_chang_per_tstep + ((soilstore_id(is) - soilstoreold(is))*sfr(is))
605 IF (smdmethod > 0)
THEN 615 sfr, &! input: ! surface fractions
616 SoilStoreCap, &!Capacity of soil store for each surface [mm]
617 SoilDepth, &!Depth of sub-surface soil store for each surface [mm]
618 SatHydraulicConduct, &!Saturated hydraulic conductivity for each soil subsurface [mm s-1]
619 SurfaceArea, &!Surface area of the study area [m2]
620 NonWaterFraction, &! sum of surface cover fractions for all except water surfaces
621 tstep_real, & !tstep cast as a real for use in calculations
622 soilstore_id, &! inout: !Soil moisture of each surface type [mm]
623 runoffSoil, &!Soil runoff from each soil sub-surface [mm]
624 runoffSoil_per_tstep &! output:!Runoff to deep soil per timestep [mm] (for whole surface, excluding water body)
647 REAL(KIND(1d0)),
INTENT(in) ::sfr(
nsurf)
648 REAL(KIND(1d0)),
INTENT(in) ::SoilStoreCap(
nsurf)
649 REAL(KIND(1d0)),
INTENT(in) ::SoilDepth(
nsurf)
650 REAL(KIND(1d0)),
INTENT(in) ::SatHydraulicConduct(
nsurf)
651 REAL(KIND(1d0)),
INTENT(in) ::SurfaceArea
652 REAL(KIND(1d0)),
INTENT(in) ::NonWaterFraction
653 REAL(KIND(1d0)),
INTENT(in) ::tstep_real
655 REAL(KIND(1d0)),
DIMENSION(nsurf),
INTENT(inout) ::soilstore_id
656 REAL(KIND(1d0)),
DIMENSION(nsurf),
INTENT(inout) ::runoffSoil
658 REAL(KIND(1d0)),
INTENT(out) :: runoffSoil_per_tstep
662 DimenWaterCon1, DimenWaterCon2, &
667 B_r1, MatPot1, Km1, &
668 B_r2, MatPot2, Km2, &
669 Distance, KmWeight, dI, &
672 REAL(KIND(1d0)),
PARAMETER:: &
689 runoffsoil_per_tstep = 0
693 IF (sfr(is) /= 0 .AND. soilstorecap(is) > 0)
THEN 695 DO jj = is + 1,
nsurf - 1
697 IF (sfr(jj) /= 0 .AND. soilstorecap(jj) > 0)
THEN 702 soilmoistcap_vol1 = soilstorecap(is)/soildepth(is)
703 soilmoist_vol1 = soilstore_id(is)/soildepth(is)
712 IF (b_r1 >= soilmoist_vol1)
THEN 717 dimenwatercon1 = (soilmoist_vol1 - b_r1)/(soilmoistcap_vol1 - b_r1)
720 IF (dimenwatercon1 > 0.99999)
THEN 721 dimenwatercon1 = dimenwatercon1 - 0.0001
724 IF (dimenwatercon1 < 0.00000005)
THEN 725 dimenwatercon1 = dimenwatercon1 + 0.0000001
730 matpot1 = sqrt(1/dimenwatercon1**2 - 1)/alphavg
733 km1 = sathydraulicconduct(is)*sqrt(dimenwatercon1)*(1 - (1 - dimenwatercon1**2)**0.5)**2
736 IF (matpot1 > 100000)
THEN 745 soilmoistcap_vol2 = soilstorecap(jj)/soildepth(jj)
746 soilmoist_vol2 = soilstore_id(jj)/soildepth(jj)
754 IF (b_r2 >= soilmoist_vol2)
THEN 758 dimenwatercon2 = (soilmoist_vol2 - b_r2)/(soilmoistcap_vol2 - b_r2)
760 IF (dimenwatercon2 > 0.99999)
THEN 761 dimenwatercon2 = dimenwatercon2 - 0.0001
764 IF (dimenwatercon2 < 0.00000005)
THEN 765 dimenwatercon2 = dimenwatercon2 + 0.0000001
770 matpot2 = sqrt(1/dimenwatercon2**2 - 1)/alphavg
773 km2 = sathydraulicconduct(jj)*sqrt(dimenwatercon2)*(1 - (1 - dimenwatercon2**2)**0.5)**2
775 IF ((matpot2) > 100000)
THEN 786 distance = (sqrt(sfr(is)*surfacearea/nunits) + sqrt(sfr(jj)*surfacearea/nunits))/2
789 kmweight = (sfr(is)*km1 + sfr(jj)*km2)/(sfr(is) + sfr(jj))
793 di_dt = -(kmweight)*(-matpot1 + matpot2)/(distance*1000)
797 di = di_dt*tstep_real
803 IF ((soilstore_id(jj) >= di*sfr(is)/sfr(jj)) .AND. ((soilstore_id(is) + di) >= 0))
THEN 804 soilstore_id(is) = soilstore_id(is) + di
805 soilstore_id(jj) = soilstore_id(jj) - di*sfr(is)/sfr(jj)
808 ELSEIF ((soilstore_id(is) + di) < 0)
THEN 809 soilstore_id(jj) = soilstore_id(jj) + soilstore_id(is)*sfr(is)/sfr(jj)
814 soilstore_id(is) = soilstore_id(is) + soilstore_id(jj)*sfr(jj)/sfr(is)
819 IF (soilstore_id(is) > soilstorecap(is))
THEN 820 runoffsoil(is) = runoffsoil(is) + (soilstore_id(is) - soilstorecap(is))
821 soilstore_id(is) = soilstorecap(is)
827 IF (soilstore_id(jj) > soilstorecap(jj))
THEN 828 runoffsoil(jj) = runoffsoil(jj) + (soilstore_id(jj) - soilstorecap(jj))
829 soilstore_id(jj) = soilstorecap(jj)
838 runoffsoil_per_tstep = runoffsoil_per_tstep + (runoffsoil(is)*sfr(is)/nonwaterfraction)
852 wu_m3, SurfaceArea, sfr, &
853 IrrFracConif, IrrFracDecid, IrrFracGrass, &
854 DayofWeek_id, WUProfA_24hr, WUProfM_24hr, &
855 InternalWaterUse_h, HDD_id, WUDay_id, &
856 WaterUseMethod, NSH, it, imin, DLS, &
857 wu_EveTr, wu_DecTr, wu_Grass, int_wu, ext_wu)
874 INTEGER,
PARAMETER :: nsurf = 7
876 REAL(KIND(1d0)),
INTENT(in)::nsh_real
877 REAL(KIND(1d0)),
INTENT(in)::wu_m3
878 REAL(KIND(1d0)),
INTENT(in)::SurfaceArea
879 REAL(KIND(1d0)),
INTENT(in)::sfr(nsurf)
880 REAL(KIND(1d0)),
INTENT(in)::IrrFracConif
881 REAL(KIND(1d0)),
INTENT(in)::IrrFracDecid
882 REAL(KIND(1d0)),
INTENT(in)::IrrFracGrass
883 REAL(KIND(1d0)),
INTENT(in)::InternalWaterUse_h
886 REAL(KIND(1d0)),
DIMENSION(0:23, 2),
INTENT(in)::WUProfA_24hr
887 REAL(KIND(1d0)),
DIMENSION(0:23, 2),
INTENT(in)::WUProfM_24hr
889 REAL(KIND(1d0)),
DIMENSION(12),
INTENT(in)::HDD_id
890 REAL(KIND(1d0)),
DIMENSION(9),
INTENT(in)::WUDay_id
892 INTEGER,
INTENT(in):: &
901 REAL(KIND(1d0)),
INTENT(out):: &
919 REAL(KIND(1d0)),
PARAMETER::NAN = -999.
920 REAL(KIND(1d0)):: OverUse
921 REAL(KIND(1d0)):: rain_cum_daily
923 REAL(KIND(1d0)):: get_Prof_SpecTime_sum
930 tstep = int(3600/nsh)
933 rain_cum_daily = hdd_id(11)
938 IF (waterusemethod == 1)
THEN 940 wuareaevetr_m2 = irrfracconif*sfr(
conifsurf)*surfacearea
941 wuareadectr_m2 = irrfracdecid*sfr(
decidsurf)*surfacearea
942 wuareagrass_m2 = irrfracgrass*sfr(
grasssurf)*surfacearea
943 wuareatotal_m2 = wuareaevetr_m2 + wuareadectr_m2 + wuareagrass_m2
949 IF (wu_m3 == nan .OR. wu_m3 == 0)
THEN 953 IF (wuareatotal_m2 > 0)
THEN 954 wu = (wu_m3/wuareatotal_m2*1000)
955 IF (wuareaevetr_m2 > 0)
THEN 957 wu_evetr = wu_evetr*irrfracconif
959 IF (wuareadectr_m2 > 0)
THEN 961 wu_dectr = wu_dectr*irrfracdecid
963 IF (wuareagrass_m2 > 0)
THEN 965 wu_grass = wu_grass*irrfracgrass
967 wu = (wu_m3/surfacearea*1000)
973 ELSEIF (waterusemethod == 0)
THEN 982 IF (dayofweek_id(1) == 1 .OR. dayofweek_id(1) == 7)
THEN 992 wu_evetr = get_prof_spectime_sum(ih, imin, 0, wuprofa_24hr(:, iu), tstep)*wuday_id(2)
993 wu_dectr = get_prof_spectime_sum(ih, imin, 0, wuprofa_24hr(:, iu), tstep)*wuday_id(5)
994 wu_grass = get_prof_spectime_sum(ih, imin, 0, wuprofa_24hr(:, iu), tstep)*wuday_id(8)
1007 IF (rain_cum_daily > 2)
THEN 1015 wu_evetr = wu_evetr + (get_prof_spectime_sum(ih, imin, 0, wuprofm_24hr(:, iu), tstep)*wufr*wuday_id(3))
1016 wu_dectr = wu_dectr + (get_prof_spectime_sum(ih, imin, 0, wuprofm_24hr(:, iu), tstep)*wufr*wuday_id(6))
1017 wu_grass = wu_grass + (get_prof_spectime_sum(ih, imin, 0, wuprofm_24hr(:, iu), tstep)*wufr*wuday_id(9))
1027 wu_evetr = wu_evetr*irrfracconif
1028 wu_dectr = wu_dectr*irrfracdecid
1029 wu_grass = wu_grass*irrfracgrass
1044 internalwateruse = internalwateruse_h/nsh_real
1047 ext_wu = wu - (internalwateruse + overuse)
1049 IF (ext_wu < 0)
THEN 1050 overuse = abs(ext_wu)
1056 int_wu = wu - ext_wu
1059 IF (ext_wu /= 0 .AND. wu /= 0)
THEN 1060 wu_evetr = wu_evetr*ext_wu/wu
1061 wu_dectr = wu_dectr*ext_wu/wu
1062 wu_grass = wu_grass*ext_wu/wu
subroutine suews_update_soilmoist(NonWaterFraction, SoilStoreCap, sfr, soilstore_id, SoilMoistCap, SoilState, vsmd, smd)
subroutine suews_cal_soilstate(SMDMethod, xsmd, NonWaterFraction, SoilMoistCap, SoilStoreCap, surf_chang_per_tstep, soilstore_id, soilstoreOld, sfr, smd, smd_nsurf, tot_chang_per_tstep, SoilState)
subroutine redistributewater(snowUse, WaterDist, sfr, Drain, AddWaterRunoff, AddWater)
integer, parameter bsoilsurf
integer, parameter conifsurf
subroutine updateflood(is, runoff, sfr, PipeCapacity, RunoffToWater, runoffAGimpervious, surplusWaterBody, runoffAGveg, runoffPipes)
subroutine soilstore(is, sfr, PipeCapacity, RunoffToWater, pin, wu_EveTr, wu_DecTr, wu_Grass, drain, AddWater, addImpervious, nsh_real, stateOld, AddWaterRunoff, PervFraction, addVeg, SoilStoreCap, addWaterBody, FlowChange, StateLimit, runoffAGimpervious, surplusWaterBody, runoffAGveg, runoffPipes, ev, soilstore_id, SurplusEvap, runoffWaterBody, p_mm, chang, runoff, state_id)
integer, parameter grasssurf
subroutine suews_cal_horizontalsoilwater(sfr, SoilStoreCap, SoilDepth, SatHydraulicConduct, SurfaceArea, NonWaterFraction, tstep_real, soilstore_id, runoffSoil, runoffSoil_per_tstep)
subroutine suews_cal_wateruse(nsh_real, wu_m3, SurfaceArea, sfr, IrrFracConif, IrrFracDecid, IrrFracGrass, DayofWeek_id, WUProfA_24hr, WUProfM_24hr, InternalWaterUse_h, HDD_id, WUDay_id, WaterUseMethod, NSH, it, imin, DLS, wu_EveTr, wu_DecTr, wu_Grass, int_wu, ext_wu)
integer, parameter excesssurf
integer, parameter decidsurf
integer, parameter pavsurf
subroutine errorhint(errh, ProblemFile, VALUE, value2, valueI)
integer, parameter bldgsurf
integer, parameter watersurf
subroutine drainage(is, state_is, StorCap, DrainEq, DrainCoef1, DrainCoef2, nsh_real, drain_is)