-
Notifications
You must be signed in to change notification settings - Fork 1
/
crackflow.f
67 lines (56 loc) · 2.36 KB
/
crackflow.f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
subroutine crackflow
!! ~ ~ ~ PURPOSE ~ ~ ~
!! this surboutine modifies surface runoff to account for crack flow
!! ~ ~ ~ INCOMING VARIABLES ~ ~ ~
!! name |units |definition
!! ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
!! hhqday(:) |mm H2O |surface runoff for the hour in HRUS
!! ievent |none |rainfall/runoff code
!! |0 daily rainfall/curve number technique
!! |1 sub-daily rainfall/Green&Ampt/hourly
!! | routing
!! ihru |none |HRU number
!! surfq(:) |mm H2O |surface runoff in the HRU for the day
!! voltot |mm |total volume of cracks expressed as depth
!! |per unit area
!! ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
!! ~ ~ ~ OUTGOING VARIABLES ~ ~ ~
!! name |units |definition
!! ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
!! hhqday(:) |mm H2O |surface runoff for the hour in HRU
!! surfq(:) |mm H2O |surface runoff in the HRU for the day
!! ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
!! ~ ~ ~ LOCAL DEFINITIONS ~ ~ ~
!! name |units |definition
!! ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
!! ii |none |counter
!! j |none |HRU number
!! voli |none |volume available for crack flow
!! ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
!! ~ ~ ~ ~ ~ ~ END SPECIFICATIONS ~ ~ ~ ~ ~ ~
use parm
integer :: j, ii
real :: voli
j = 0
j = ihru
!! subtract crack flow from surface runoff
if (surfq(j) > voltot) then
surfq(j) = surfq(j) - voltot
else
surfq(j) = 0.
endif
if (ievent > 0) then
voli = 0.
voli = voltot
do ii = 1, nstep !j.jeong 4/24/2009
if (hhqday(ii) > voli) then
hhqday(ii) = hhqday(ii) - voli
voli = 0.
else
voli = voli - hhqday(ii)
hhqday(ii) = 0.
endif
end do
end if
return
end