Appendix 1
Fortran Program Code to Simulate Changes in Lake Stage Due to Variations In Hydrologic-budget Components
C
C DECLARE AND DIMENSION VARIBLES
C
PARAMETER ND=4657,MD=740
COMMON PI(ND),RO(ND),EO(ND),PRECIP(ND),EVAP(ND),
&LL(ND),PUMP(ND),AREA(ND),STOR(ND),YEAR(ND),
&MONTH(ND),DAY(ND)
REAL PI,RO,EO,PRECIP,EVAP,LL,AREA,STOR,GW,SUM
INTEGER YEAR,MONTH,DAY,MYEAR,MMONTH,MDAY
C
C
C PRECIP IS PRECIPITATION FROM BARABOO OR GAGE (INCHES)
C PI IS DIRECT PRECIPITATION ON LAKE (FEET)
C RO IS RUNOFF FROM DRAINAGE AREA (CUBIC FEET)
C EVAP IS PAN EVAPORATION FROM ARLINGTON (INCHES)
C EO IS EVAPORATION FROM LAKE SURFACE (FEET)
C GW IS NET GROUND-WATER FLOW (FEET PER DAY)
C SUM IS THE TOTAL PRECIPITATION USED TO CALCULATE RUNOFF
C FROM SNOWMELT (FEET)
C AREA IS TOTAL LAKE AREA (SQUARE FEET)
C STOR IS LAKE STORAGE (CUBIC FEET)
C PUMP IS AMOUNT PUMPED FROM LAKE (FEET)
C LL IS DAILY LAKE LEVEL (FEET ABOVE MEAN SEA LEVEL)
C
C READ IN DATE AND PRECIP AND EVAP IN INCHES
C
DO 3 I=1,ND
3 READ(11,20)YEAR(I),MONTH(I),DAY(I),PRECIP(I),EVAP(I)
20 FORMAT(3I2,2F10.2)
C
C INITIALIZE SUM OF SNOWMELT, RUNOFF AND GROUND-WATER
C AND EVAPORATION COEFFICIENTS AND, DRAINAGE AREA
C
SUM=0.0
ROCOEF=0.21
EVCOEF=0.69
GW=0.01
DA=90480000.00
C
C INITIALIZE LAKE LEVEL
C
LL(1)=961.30
C
DO 9 I=1,ND
C
C CALCULATE LAKE STORAGE IN CUBIC FEET
C
IF (LL(I).GT.958.00) THEN
STOR(I)=-1.427657E10+(1.532838E7*LL(I))
APPENDIX 1. FORTRAN PROGRAM CODE TO SIMULATE CHANGES IN LAKE
STAGE DUE TO VARIATIONS IN HYDROLOGIC-BUDGET COMPONENTS--Continued
ELSE
STOR(I)=-1.243888E10+(1.340973E7*LL(I))
END IF
C
C CALCULATE PI (PRECIP IN FEET)
C
PI(I)= PRECIP(I)/12
C
C SUM PRECIP FOR SNOWMELT
C
SUM=SUM+PI(I)
C
C CALCULATE EO (EVAP IN FEET)
C
EO(I)=(EVAP(I)/12)*EVCOEF
C
C CALCULATE RO (RUNOFF IN CUBIC FEET)
C
C
C RUNOFF FOR DECEMBER, JANUARY AND, FEBRUARY
C
IF (MONTH(I).GT.11.OR.MONTH(I).LT.3) THEN
RO(I)=0.0
C
C RUNOFF FOR MARCH, APRIL, MAY, SEPTEMBER, OCTOBER AND, NOVEMBER
C
ELSE IF (MONTH(I).LT.6.OR.MONTH(I).GT.8) THEN
RO(I)=PI(I)*DA*ROCOEF
C
C RUNOFF FOR MARCH 1-15 IS ZERO
C
IF (MONTH(I).EQ.3.AND.DAY(I).LT.16) THEN
RO(I)=0.0
END IF
C
C RUNOFF FOR JUNE, JULY AND AUGUST
C
ELSE IF (MONTH(I).GT.5.AND.MONTH(I).LT.9) THEN
IF (PRECIP(I-1).LT.0.001.AND.PRECIP(I).LT.0.5) THEN
RO(I)=0.0
ELSE
RO(I)=PI(I)*DA*ROCOEF
END IF
END IF
C
C RUNOFF FROM SNOWMELT (FEBRUARY 15 AND MARCH 15)
C
IF (MONTH(I).EQ.2.AND.DAY(I).EQ.15) THEN
RO(I)=SUM*DA*ROCOEF
APPENDIX 1. FORTRAN PROGRAM CODE TO SIMULATE CHANGES IN LAKE STAGE DUE TO
VARIATIONS IN HYDROLOGIC-BUDGET COMPONENTS--Continued
SUM=0.0
END IF
C
IF (MONTH(I).EQ.3.AND.DAY(I).EQ.15) THEN
RO(I)=SUM*DA*ROCOEF
END IF
C
IF (MONTH(I).EQ.11.AND.DAY(I).EQ.30) THEN
SUM=0.0
END IF
C
C CALCULATE NEW LAKE STAGE IN FEET ABOVE MSL AND RUNOFF IN INCHES
C
C EQUATION 1
IF (RO(I).LE.0.0) THEN
LL(I+1)=LL(I)+PI(I)-EO(I)-GW
C EQUATION 2
ELSE IF (LL(I).GT.958.) THEN
LL(I+1)=PI(I)-EO(I)-GW+9.313862E2+(6.522769E-8*
&(RO(I)+STOR(I)))
C EQUATION 3
ELSE IF (LL(I).GT.948.) THEN
LL(I+1)=PI(I)-EO(I)-GW+9.276105E2+(7.454654E-8*
&(RO(I)+STOR(I)))
C EQUATION 4
ELSE
LL(I+1)=PI(I)-EO(I)-GW+9.244415E2+(8.570591E-8*
&(RO(I)+STOR(I)))
END IF
C
C WRITE DATE AND LAKE LEVEL
C
WRITE(13,21)YEAR(I),MONTH(I),DAY(I),LL(I)
21 FORMAT (I2,'/',I2,'/',I2,2X,F8.2)
C
9 CONTINUE
C
STOP
END