Skip to content

Commit 99cdfa8

Browse files
committed
Fixing reservoir inflows, design water level and total storage capacity bugs
1 parent 1b58a4b commit 99cdfa8

1 file changed

Lines changed: 21 additions & 29 deletions

File tree

Routing/SourceCode/reservoir.f

Lines changed: 21 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -830,7 +830,7 @@ SUBROUTINE MAKE_CONVOLUTIONRS
830830
DO J = 1, NO_STAS-1
831831
CURRENTYEAR = START_YEAR + INT(I/365) ! approximate, does not consider leap years
832832
IF (CURRENTYEAR>=OPEYEAR(J)) THEN
833-
VRESER(J) = VRESERTHAT(J)
833+
VRESER(J) = VRESERTHAT(J)+VDEAD(J)
834834
REALHEAD(J) = HYDRAUHEAD(J)
835835
QRESER(J) = QRESERTHAT(J)
836836
ELSE
@@ -850,43 +850,35 @@ SUBROUTINE MAKE_CONVOLUTIONRS
850850
END IF
851851
IF (RULE(J) .EQ. 1) THEN
852852
IF (OP1(J,1)>OP1(J,2)) THEN
853-
TEMPO = OP1(J,1)
854-
OP1(J,1) = OP1(J,2)
855-
OP1(J,2) = TEMPO
856-
END IF
857853
! Caculate target water level
858-
IF ((CRTDATE .GT. OP1(J,1)) .and. (CRTDATE .LT. OP1(J,2))) THEN
859-
IF (HMAX(J) .GE. HMIN(J)) THEN
860-
DESIGNWL=(CRTDATE-OP1(J,1))/(OP1(J,2)-OP1(J,1))
854+
IF ((CRTDATE .GT. OP1(J,2)) .and. (CRTDATE .LT. OP1(J,1))) THEN
855+
DESIGNWL=(CRTDATE-OP1(J,2))/(OP1(J,1)-OP1(J,2))
861856
& *(HMAX(J)-HMIN(J))
862-
ELSE
863-
DESIGNWL=(HMIN(J)-HMAX(J))-(CRTDATE-OP1(J,1))/(OP1(J,2)-OP1(J,1))
864-
& *(HMIN(J)-HMAX(J))
865-
END IF
866-
ELSE IF (CRTDATE .GE. OP1(J,2)) THEN
867-
IF (HMAX(J) .GE. HMIN(J)) THEN
857+
ELSE IF (CRTDATE .GE. OP1(J,1)) THEN
868858
DESIGNWL=(HMAX(J)-HMIN(J))
869-
& -(CRTDATE-OP1(J,2))/(365-OP1(J,2)+OP1(J,1))*
859+
& -(CRTDATE-OP1(J,1))/(365-OP1(J,1)+OP1(J,2))*
870860
& (HMAX(J)-HMIN(J))
871861
ELSE
872-
DESIGNWL=(CRTDATE-OP1(J,2))/(365-OP1(J,2)+OP1(J,1))*
873-
& (HMIN(J)-HMAX(J))
862+
DESIGNWL=(HMAX(J)-HMIN(J))
863+
& -(CRTDATE+365-OP1(J,1))/(365-OP1(J,1)+OP1(J,2))*
864+
& (HMAX(J)-HMIN(J))
874865
END IF
875866
ELSE
876-
IF (HMAX(J) .GE. HMIN(J)) THEN
877-
DESIGNWL=(HMAX(J)-HMIN(J))
878-
& -(CRTDATE+365-OP1(J,2))/(365-OP1(J,2)+OP1(J,1))*
879-
& (HMAX(J)-HMIN(J))
880-
ELSE
881-
DESIGNWL=(CRTDATE+365-OP1(J,2))/(365-OP1(J,2)+OP1(J,1))*
882-
& (HMIN(J)-HMAX(J))
867+
IF ((CRTDATE .GT. OP1(J,1)) .and. (CRTDATE .LT. OP1(J,2))) THEN
868+
DESIGNWL=(HMAX(J)-HMIN(J))-(CRTDATE-OP1(J,1))/(OP1(J,2)-OP1(J,1))
869+
& *(HMAX(J)-HMIN(J))
870+
ELSE IF (CRTDATE .GE. OP1(J,2)) THEN
871+
DESIGNWL=(HMAX(J)-HMIN(J))/(365-OP1(J,2)+OP1(J,1))*(CRTDATE-OP1(J,2))
872+
ELSE
873+
DESIGNWL=(HMAX(J)-HMIN(J))/(365-OP1(J,2)+OP1(J,1))*
874+
& (CRTDATE-OP1(J,1))
875+
END IF
883876
END IF
877+
DESIGNWL = DESIGNWL + (HMIN(J) - H0(J))
878+
ELSE
879+
DESIGNWL = RESLV(J,CAL_MONTH(CRTDATE))
880+
DESIGNWL = DESIGNWL - H0(J)
884881
END IF
885-
DESIGNWL = DESIGNWL + (HMIN(J) - HRESERMIN(J))
886-
ELSE
887-
DESIGNWL = RESLV(J,CAL_MONTH(CRTDATE))
888-
DESIGNWL = DESIGNWL - H0(J)
889-
END IF
890882
HTK(J,I) = DESIGNWL + H0(J) ! water head
891883
CURRENTWL = VOL(J,I) * (HRESERMAX(J)-H0(J))/VRESER(J)
892884
IF (CURRENTWL>=DESIGNWL) THEN ! Zone 3

0 commit comments

Comments
 (0)