10  REM ****  HP TIME-SHARED BASIC PROGRAM LIBRARY  *******************
20  REM
30  REM            PHOSYN:  PHOTOSYNTHESIS EXPERIMENT
40  REM
50  REM           36305  (A833)  REV A -- 10/71
60  REM
70  REM ****  CONTRIBUTED PROGRAM  ************************************
80  REM PHOSYN--COPYRIGHT 1970-- POLYTECHNIC INSTITUTE OF BROOKLYN
90  REM F. H. COOPER, WYANDANCH H.S., REVISED 7/69 
100  REM  REVISED BY C.LOSIK  7-9-70
110  REM V(I)=INPUT VALUES (LIGHT INTENSITY, CO2 CONC.) 
120  REM R(I)=RATE OF PHOTOSYNTHESIS
130  DIM V[31],R[31]
140  PRINT "HELLO. BY NOW YOU SHOULD KNOW FROM YOUR LECTURES WHAT"
150  PRINT "PHOTOSYNTHESIS IS. THIS LABORATORY WILL ENABLE YOU TO"
160  PRINT "CONDUCT EXPERIMENTS ON THE COMPUTER WHICH WOULD NOT BE"
170  PRINT "PRACTICAL DURING CLASS TIME."
180  PRINT 
190  PRINT "SINCE ALL OF OUR FOOD COMES FROM PLANTS, LET'S FIND OUT"
200  PRINT "HOW CHANGING THE AMOUNT OF CARBON DIOXIDE OR THE INTENSITY"
210  PRINT "OF LIGHT WILL AFFECT THE PLANT'S RATE OF PHOTOSYNTHESIS,"
220  PRINT "MEASURED IN MICROGRAMS OF GLUCOSE PRODUCED PER DAY."
230  PRINT 
240  PRINT "LET'S BEGIN WITH CHANGING THE LIGHT INTENSITY. YOU WILL"
250  PRINT "VARY THIS BY SELECTING INTEGER VALUES IN THE RANGE OF"
260  PRINT "0 TO 30 (THE UNITS FOR LIGHT INTENSITY ARE IN ERGS/SEC/SQ.CM)"
270  PRINT "BY VARYING ONLY ONE FACTOR AT A TIME, WE ARE CONDUCTING"
280  PRINT "A CONTROLLED EXPERIMENT. WE WILL ASSUME THAT OUR PLANT"
290  PRINT "HAS ALL OF THE CARBON DIOXIDE, WATER AND CHLOROPHYLL"
300  PRINT "THAT IT NEEDS."
310  PRINT 
320  PRINT "YOU SHOULD CHOOSE BETWEEN FIVE AND TEN LIGHT INTENSITY"
330  PRINT "VALUES. TYPE IN ONLY ONE VALUE AFTER EACH QUESTION MARK."
340  PRINT "BY TYPING IN 100, NO MORE QUESTION MARKS WILL APPEAR AND"
350  PRINT "THE PROGRAM WILL CONTINUE."
360  PRINT "(NOTE: 'RP' MEANS RATE OF PHOTHSYNTHESIS)"
370  PRINT 
380  PRINT "LIGHT INTENSITY";
390  REM  INITIALIZE
400  FOR I=1 TO 31
410  LET V[I]=-1
420  NEXT I
430  FOR I=1 TO 10
440  PRINT "(LI)";
450  INPUT W
460  IF W=100 THEN 580
470  IF W>30 THEN 540
480  IF W<0 THEN 540
490  IF W <> INT(W) THEN 540
500  LET V[W+1]=W
510  LET R[W+1]=INT(12500*(1-EXP(-.222*V[W+1]))+.05)/100
520  PRINT "RP=";INT(R[W+1]+.5)
530  GOTO 570
540  PRINT "WRONG!  USE ONLY INTEGER VALUES BETWEEN 0 AND 30."
550  PRINT "TRY AGAIN."
560  GOTO 450
570  NEXT I
580  PRINT 
590  REM  CHOICE OF OUTPUT
600  PRINT "1 = TABLE ONLY, 2 = PLOT ONLY, 3 = BOTH";
610  INPUT W
620  IF W=1 THEN 660
630  IF W=2 THEN 720
640  IF W=3 THEN 660
650  GOTO 600
660  PRINT 
670  PRINT "  LIGHT","   RATE OF"
680  PRINT "INTENSITY","PHOTOSYNTHESIS"
690  PRINT "---------","--------------"
700  GOSUB 1360
710  IF W <> 3 THEN 760
720  PRINT 
730  PRINT "  LIGHT"
740  PRINT "INTENSITY"
750  GOSUB 1420
760  PRINT 
770  PRINT 
780  PRINT "O.K. LET'S NOW VARY THE AMOUNT OF CARBON DIOXIDE IN THE"
790  PRINT "ATMOSPHERE SURROUNDING OUR PLANT."
800  PRINT 
810  PRINT "THIS TIME ASSUME OUR PLANT HAS ALL THE LIGHT, WATER AND"
820  PRINT "CHLOROPHYLL THAT IT NEEDS."
830  PRINT 
840  PRINT "LET THE VALUES YOU SELECT FOR THE CARBON DIOXIDE CONCENTRATION"
850  PRINT "BE FOR TWO DECIMAL PLACES ONLY, AND IN THE RANGE OF 0 TO .30"
860  PRINT "UNITS FOR CO2 CONC. ARE CUBIC CENTIMETERS PER LITER OF AIR."
870  PRINT 
880  PRINT "AS BEFORE, I WILL TYPE IN A '?' AND THEN YOU TYPE IN THE"
890  PRINT "CARBON DIOXIDE CONC. AVAILABLE TO THE PLANT."
900  PRINT "THIS TIME YOU MUST CHOOSE TEN DIFFERENT VALUES."
910  PRINT "REMEMBER RP = RATE OF PHOTOSYNTHESIS."
920  PRINT 
930  PRINT "CARBON DIOXIDE CONC.";
940  REM  INITIALIZE
950  FOR I=1 TO 31
960  LET V[I]=-1
970  NEXT I
980  FOR I=1 TO 10
990  PRINT "(CO2)";
1000  INPUT W
1010  IF W=100 THEN 1150
1020  IF W<0 THEN 1120
1030  IF W>.3 THEN 1120
1040  LET Q=100*W
1050  IF ABS(Q-INT(Q+.5))>.00001 THEN 1120
1060  REM  FUDGE 1005 CAUSE INTEGER MESSES UP
1070  LET Q=INT(100*W+.5)+1
1080  LET V[Q]=W
1090  LET R[Q]=INT(175*(1-EXP(-28*V[Q]))+.005)/174*125
1100  PRINT "RP=";INT(R[Q]+.5)
1110  GOTO 1150
1120  PRINT "INPUT VALUES BETWEEN 0 AND .3 TO TWO PLACES ONLY"
1130  PRINT "TRY AGAIN"
1140  GOTO 1000
1150  NEXT I
1160  PRINT 
1170  PRINT "1 = TABLE ONLY, 2 = PLOT ONLY, 3 = BOTH";
1180  INPUT W
1190  IF W=1 THEN 1230
1200  IF W=2 THEN 1280
1210  IF W=3 THEN 1230
1220  GOTO 1170
1230  PRINT 
1240  PRINT "CO2 CONC.","RATE OF PHOTOSYNTHESIS"
1250  PRINT "--- -----","---- -- --------------"
1260  GOSUB 1360
1270  IF W <> 3 THEN 1310
1280  PRINT 
1290  PRINT "CO2 CONC."
1300  GOSUB 1420
1310  PRINT 
1320  PRINT 
1330  PRINT "DO YOU KNOW WHAT IS HAPPENING IN BOTH THESE INSTANCES?"
1340  STOP 
1350  REM  TABLE PRINTER 
1360  FOR I=1 TO 31
1370  IF V[I]<0 THEN 1390
1380  PRINT V[I],R[I]
1390  NEXT I
1400  RETURN 
1410  REM  PLOT ROUTINE
1420  PRINT " ","RATE OF PHOTOSYNTHESIS"
1430  PRINT " ","0   25   50   75   100  125"
1440  PRINT " ","I----I----I----I----I----I"
1450  FOR I=1 TO 31
1460  IF V[I] >= 0 THEN 1490
1470  PRINT " ","I"
1480  GOTO 1500
1490  PRINT V[I],"I";TAB(14+INT(R[I]/5+.5));"*"
1500  NEXT I
1510  RETURN 
1520  END 
