1  REM  ****  HP BASIC PROGRAM LIBRARY  ****************************
2  REM
3  REM        POLUT:  WATER POLLUTION SIMULATION
4  REM
5  REM        36639  REV B   10/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  *********************************
100  REM POLUT -- WATER POLLUTION SIMULATION FROM ECCP 
105  REM COPYRIGHT 1971 - POLYTECHNIC INSTITUTE OF BROOKLYN
110  REM MAJOR VARIABLES: X(OXY. CONTENT);  W1,W2,W(POLLUTION CONTENT) 
115  REM OTHERS ARE DEFINED AS THEY APPEAR; EITHER IN PRINTS OR REMS 
120  REM DEVELOPED BY L. BRAUN, T. LIAO, AND D. PESSEL 
125  REM PROGRAMMED BY L. BRAUN, C. LOSIK, AND D. PESSEL 
130  REM LATEST REVISION: 8-18-71
135  DIM X[51],W[51]
140  PRINT " ","WATER POLLUTION STUDY"
145  PRINT 
150  PRINT "INSTRUCTIONS (1=YES, 0=NO)";
155  INPUT Q
160  IF Q=0 THEN 310
165  IF Q <> 1 THEN 150
170  REM INTRODUCTION  
175  PRINT 
180  PRINT 
185  PRINT "IN THIS STUDY YOU CAN SPECIFY ";
190  PRINT "THE FOLLOWING CHARACTERISTICS:"
195  PRINT 
200  PRINT "A. THE KIND OF BODY OF WATER:"
205  PRINT "   1. LARGE POND"
210  PRINT "   2. LARGE LAKE"
215  PRINT "   3. SLOW-MOVING RIVER"
220  PRINT "   4. FAST-MOVING RIVER"
225  PRINT 
230  PRINT "B. THE WATER TEMPERATURE IN DEGREES FAHRENHEIT:"
235  PRINT 
240  PRINT "C. THE KIND OF WASTE DUMPED INTO THE WATER:"
245  PRINT "   1. INDUSTRIAL"
250  PRINT "   2. SEWAGE"
255  PRINT 
260  PRINT "D. THE RATE OF DUMPING OF WASTE,";
265  PRINT " IN PARTS PER MILLION (PPM)/DAY."
270  PRINT 
275  PRINT "E. THE TYPE OF TREATMENT OF THE WASTE:"
280  PRINT "   0. NONE "
285  PRINT "   1. PRIMARY (SEDIMENTATION OR PASSAGE THROUGH FINE"
290  PRINT "               SCREENS TO REMOVE GROSS SOLIDS)"
295  PRINT "   2. SECONDARY (SAND FILTERS OR THE ACTIVATED SLUDGE"
300  PRINT "                 METHOD TO REMOVE DISSOLVED AND COLLOIDAL"
305  PRINT "                 ORGANIC MATTER)"
310  PRINT 
315  PRINT 
320  PRINT "***********"
325  PRINT 
330  REM INPUT PARAMETERS  
335  PRINT "BODY OF WATER";
340  INPUT Q
345  REM D1:  RATE OF INJECTION OF NATURAL POLLUTANTS  
350  LET D1=2
355  REM N:  NATURAL WASTE DECOMPOSITION COEFF.  
360  LET N=.75
365  REM C:  RATE OF WATER ABSORPTION OF OXYGEN (BASED ON Q) 
370  IF Q=4 THEN 420
375  IF Q=3 THEN 410
380  IF Q=2 THEN 400
385  IF Q <> 1 THEN 335
390  LET C=.4
395  GOTO 425
400  LET C=1
405  GOTO 425
410  LET C=1.5
415  GOTO 425
420  LET C=3
425  PRINT "WATER TEMPERATURE";
430  INPUT T
435  IF T>90 THEN 1055
440  IF T <= 32 THEN 1070
445  IF T>50 THEN 465
450  REM X9=MAX. OXYGEN CONTENT OF WATER 
455  LET X9=15-2*(T-32)/9
460  GOTO 470
465  LET X9=11-(T-50)/9
470  PRINT "KIND OF WASTE";
475  INPUT Q
480  REM H:  HUMAN WASTE DECOMPOSITION COEFF.  
485  IF Q=2 THEN 505
490  IF Q <> 1 THEN 470
495  LET H=.25
500  GOTO 510
505  LET H=.75
510  PRINT "DUMPING RATE";
515  INPUT D2
520  REM KEEPS D2 IN RANGE 0 TO 14 
525  IF ABS(D2-7)>7 THEN 1040
530  REM W1:  WASTE DUE TO NATURAL POLLUTANTS; INITIALIZATION
535  REM W2:  WASTE DUE TO HUMANS; INITIALIZATION  
540  REM X:   OXYGEN CONTENT; INITIALIZATION 
545  LET W1=D1/N
550  LET W2=0
555  LET X=X9-D1/C
560  REM W(1),X(1):  INITIALIZE STORAGE ARRAYS (TOTAL WASTE,OXYGEN)  
565  REM T2,K:  STORE DAY FISH BEGIN TO DIE, IF THEY DO  
570  REM T9:  NEEDED FOR DAY COUNT;  M:  TOTAL DAYS FOR RUN  
575  REM T1:  INTEGRATION INTERVAL 
580  LET T2=0
585  LET T9=0
590  LET K=0
595  LET T1=.1
600  LET W[1]=W1+W2
605  LET X[1]=X
610  LET M=31
615  REM D2:  RATE OF INJECTION OF HUMAN POLLUTANTS  
620  PRINT "TYPE OF TREATMENT";
625  INPUT Q
630  IF Q=0 THEN 660
635  IF Q=1 THEN 655
640  IF Q <> 2 THEN 620
645  LET D2=.1*D2
650  GOTO 660
655  LET D2=.5*D2
660  PRINT 
665  PRINT 
670  FOR J=2 TO M
675  FOR I=1 TO 10
680  LET T9=T9+T1
685  REM PAIR OF DIFF. EQNS. , EULER INTEGRATION 
690  LET X=X+T1*(C*(X9-X)-N*W1-H*W2)
695  REM PREVENTS NEGATIVE OXYGEN LEVEL  
700  IF X>0 THEN 710
705  LET X=0
710  LET W1=W1+T1*(D1-N*W1)
715  LET W2=W2+T1*(D2-H*W2)
720  IF X>5 THEN 740
725  LET K=K+1
730  IF K>1 THEN 740
735  LET T2=INT(T9)
740  NEXT I
745  REM W(J),X(J):  STORAGE OF RESULTS IN ARRAYS  
750  LET X[J]=X
755  LET W[J]=W1+W2
760  NEXT J
765  PRINT "DO YOU WANT: A GRAPH(1), A TABLE(2), OR BOTH(3)";
770  INPUT Q
775  IF (Q-1)*(Q-2)*(Q-3) <> 0 THEN 765
780  PRINT 
785  PRINT 
790  REM TABLE OUTPUT ROUTINE  
795  IF K<1 THEN 820
800  PRINT 
805  PRINT 
810  PRINT "AFTER DAY";T2;" THE FISH BEGIN TO DIE, BECAUSE"
815  PRINT "THE OXYGEN CONTENT OF THE WATER DROPPED BELOW 5 PPM."
820  PRINT 
825  IF Q<2 THEN 880
830  PRINT 
835  PRINT 
840  PRINT "TIME","OXY. CONTENT","WASTE CONTENT"
845  PRINT "DAYS","     PPM    ","     PPM     "
850  PRINT "----","------------","-------------"
855  FOR J=1 TO M
860  PRINT J-1,INT(100*X[J]+.5)/100,INT(100*W[J]+.5)/100
865  NEXT J
870  IF Q=2 THEN 1005
875  REM GRAPHING ROUTINE  
880  PRINT 
885  PRINT 
890  PRINT "       0...OXYGEN-SCALE....5...OXYGEN-SCALE...10";
895  PRINT "...OXYGEN-SCALE...15"
900  PRINT "       0..WASTE.10..SCALE.20..WASTE.30..SCALE.40";
905  PRINT "..WASTE.50..SCALE.60"
910  PRINT "DAY    I---------I---------I---------I---------I";
915  PRINT "---------I---------I"
920  FOR J=1 TO M
925  PRINT J-1;TAB(6);"I";
930  IF 4*X[J]>W[J] THEN 945
935  PRINT TAB(7+INT(4*X[J]+.5));"0";TAB(7+INT(W[J]+.5));"W"
940  GOTO 950
945  PRINT TAB(7+INT(W[J]+.5));"W";TAB(7+INT(4*X[J]+.5));"O"
950  IF J<5 THEN 985
955  FOR K=1 TO 4
960  REM DETERMINES WHEN SYSTEM HAS REACHED EQUILIBRIUM  
965  IF INT(W[J]+.5) <> INT(W[J-K]+.5) THEN 985
970  IF INT(4*X[J]+.5) <> INT(4*X[J-K]+.5) THEN 985
975  NEXT K
980  GOTO 990
985  NEXT J
990  PRINT 
995  PRINT "THE WASTE CONTENT AND OXYGEN CONTENT WILL REMAIN AT"
1000  PRINT "THESE LEVELS UNTIL ONE OF THE VARIABLES CHANGES."
1005  PRINT 
1010  PRINT 
1015  PRINT "ANOTHER RUN (1=YES, 0=NO)";
1020  INPUT Q
1025  IF Q=1 THEN 310
1030  IF Q <> 0 THEN 1015
1035  STOP 
1040  PRINT "NEW YORK CITY ONLY POLLUTES ITS WATER AT THE RATE OF"
1045  PRINT "12 PPM/DAY.  MAKE YOUR RATE BETWEEN 0 AND 14."
1050  GOTO 510
1055  PRINT "THE WATER TEMPERATURE IS HIGH ENOUGH TO DESTROY MOST LIFE."
1060  PRINT "TRY A NEW TEMPERATURE."
1065  GOTO 425
1070  PRINT "YOUR BODY OF WATER IS A BLOCK OF ICE, AND CAN'T"
1075  PRINT "ACCEPT ANY WASTE.  TRY A NEW TEMPERATURE."
1080  GOTO 425
1085  END 
