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