10  REM ****  HP TIME-SHARED BASIC PROGRAM LIBRARY  ********************
20  REM
30  REM              WATER2:  WATER BUDGET
40  REM
50  REM              36327  (A833)  REV A -- 10/71
60  REM
70  REM ****  CONTRIBUTED PROGRAM  *************************************
80  REM   CALCULATES WATER BUDGET -- PEREZ 20MAR69 
90  DIM P[12],Z[12],X[12],I[12]
100  REM LINES 110,120,130 ARE FOR TITLE,P DATA AND P.E. DATA.
110  PRINT "WATER BUDGET FOR ANCHORAGE,ALASKA:"
120  DATA 22,18,13,10,12,22,48,68,66,47,25,23
130  DATA 0,0,0,18,71,104,115,105,65,21,0,0
140  PRINT "============================================================="
150  PRINT 
160  PRINT "P:"
170  FOR I=1 TO 12
180  READ P[I]
190  LET Z[I]=P[I]
200  GOSUB 1290
210  NEXT I
220  PRINT 
230  REM WATER2-COPYRIGHT 1969, POLYTECHNIC INSTITUTE OF BROOKLYN
240  DIM T[12],A[12],V[12],S[13],D[13],E[12]
250  MAT D=ZER
260  MAT E=ZER
270  PRINT "PE:"
280  FOR I=1 TO 12
290  READ T[I]
300  LET Z[I]=T[I]
310  GOSUB 1290
320  NEXT I
330  PRINT 
340  PRINT "P-PE:"
350  FOR I=1 TO 12
360  LET X[I]=P[I]-T[I]
370  LET Z[I]=X[I]
380  GOSUB 1290
390  NEXT I
400  PRINT 
410  LET G=0
420  FOR I=1 TO 12
430  IF X[I] >= 0 THEN 500
440  LET G=0
450  LET S[I]=T+X[I]
460  LET T=S[I]
470  IF S[I] <= 0 THEN 570
480  LET G=0
490  NEXT I
500  LET T=100
510  LET S[I]=X[I]+G
520  LET G=S[I]
530  LET T=100
540  LET S[I]=X[I]+G
550  IF S[I] >= 100 THEN 590
560  GOTO 490
570  LET S[I]=0
580  GOTO 600
590  LET S[I]=100
600  LET N1=I+1
610  LET G=I
620  FOR I=N1 TO 12
630  LET M=I-1
640  LET N=I+1
650  GOSUB 740
660  NEXT I
670  FOR I=1 TO G
680  LET M=I-1
690  IF I>1 THEN 710
700  LET M=12
710  GOSUB 740
720  NEXT I
730  GOTO 890
740  LET S[I]=S[M]+X[I]
750  IF S[I] >= 100 THEN 790
760  IF S[I]<1 THEN 840
770  GOTO 810
780  GOTO 810
790  LET E[I]=S[I]-100
800  LET S[I]=100
810  LET V[I]=S[I]-S[M]
820  LET A[I]=T[I]
830  GOTO 880
840  LET S[I]=0
850  LET D[I]=ABS(P[I]+S[M]-T[I])
860  LET A[I]=S[M]+P[I]
870  LET V[I]=S[I]-S[M]
880  RETURN 
890  PRINT "DELTA-ST:"
900  FOR I=1 TO 12
910  LET Z[I]=V[I]
920  GOSUB 1290
930  NEXT I
940  PRINT 
950  PRINT "STORAGE-(ST):"
960  FOR I=1 TO 12
970  LET Z[I]=S[I]
980  GOSUB 1290
990  NEXT I
1000  PRINT 
1010  PRINT "AE:"
1020  FOR I=1 TO 12
1030  LET Z[I]=A[I]
1040  GOSUB 1290
1050  NEXT I
1060  PRINT 
1070  PRINT "D:"
1080  FOR I=1 TO 12
1090  LET Z[I]=D[I]
1100  GOSUB 1290
1110  NEXT I
1120  PRINT 
1130  PRINT "SURPLUS:"
1140  FOR I=1 TO 12
1150  LET Z[I]=E[I]
1160  GOSUB 1290
1170  NEXT I
1180  PRINT 
1190  LET O=H=0
1200  FOR I=1 TO 12
1210  LET O=P[I]+O
1220  LET H=T[I]+H
1230  NEXT I
1240  PRINT 
1250  PRINT "TOTAL P =",O
1260  PRINT "TOTAL PE =",H
1270  PRINT "P/PE ="O/H
1280  GOTO 1400
1290  PRINT Z[I];
1300  IF Z[I]>99 THEN 1390
1310  IF Z[I]>9 THEN 1380
1320  IF Z[I]>-1 THEN 1370
1330  IF Z[I]>-10 THEN 1370
1340  IF Z[I]>-1000 THEN 1380
1350  REM 504 READS >1000 TO PREVENT SPACING AFTER NUMBERS  BETWEEN
1360  REM            -100 AND -1000
1370  PRINT " ";
1380  PRINT " ";
1390  RETURN 
1400  END 
