90  REM  ********** HP TIME-SHARED BASIC PROGRAM LIBRARY ***************
91  REM
92  REM            SPCTRA: SIMULATION OF OPTICAL ABSORPTION SPECTRA OF
93  REM                    TWO SPECIES EQUILIBRIUM MIXTURES
94  REM
95  REM               36184   REV A      3/72
96  REM
97  REM ************ CONTRIBUTED PROGRAM *********************************
98  REM  PLOTTING SPECIFICATIONS
100  READ X2,X3,X1
102  DATA -4,9,.25
110  READ Y2,Y3
112  DATA 0,3
120  LET X8=INT(X2/X1)
130  LET X9=INT(X3/X1+.5)
140  LET D=(Y3-Y2)/70
150  DEF FNI()=INT(/X1)
160  DEF FNJ()=INT((-Y2)/D+.5)+1
198  REM  SPECTRUM SPECIFICATIONS
199  DIM A$[72],Z$[10],Y[10],M[10]
200  READ D1,C1
210  DATA 4,3
218  PRINT "NUMBER OF SPECTRA (5 MAX.)";
220  INPUT N
222  PRINT 
224  PRINT "ENTER MOLE FRACTION OF COMPONENT 'A' FOR EACH SPECTRUM"
225  PRINT 
226  PRINT "SPECTRUM #","        MOLE FRACTION OF 'A'"
230  FOR I=1 TO N
238  PRINT I,"         ";
240  INPUT M[I]
250  NEXT I
258  REM  GAUSSIAN DEFINITIONS
260  DEF FNA()=EXP(-(^2)/2)
270  DEF FNB()=(EXP(-((-D1)^2)/2))*C1
280  DEF FNC()=M[]*FNA(X)+(1-M[])*FNB(X)
898  PRINT 
900  GOSUB 9000
980  LET M=N
990  LET Z$="12345"
998  REM  PLOTTING SECTION
1000  FOR X=X2 TO X3 STEP X1
1010  FOR I=1 TO 72
1020  LET A$[I,I]=" "
1030  NEXT I
1040  FOR I=1 TO M
1045  LET Y[I]=FNC(I)
1050  NEXT I
1055  LET J1=M
1060  FOR I=1 TO M
1070  LET Y[I]=FNJ(Y[I])
1080  IF Y[I]>71 THEN 1130
1085  IF Y[I]<1 THEN 1130
1090  IF A$[Y[I],Y[I]]#" " THEN 1120
1100  LET A$[Y[I],Y[I]]=Z$[I]
1110  GOTO 1140
1120  LET A$[Y[I],Y[I]]="X"
1130  LET J1=J1-1
1140  NEXT I
1150  LET J2=0
1160  PRINT ".";
1170  FOR I=1 TO 71
1180  IF J2=J1 THEN 1230
1190  PRINT A$[I,I];
1200  IF A$[I,I]=" " THEN 1220
1210  LET J2=J2+1
1220  NEXT I
1230  PRINT 
1240  NEXT X
2000  GOSUB 9000
8998  STOP 
8999  REM  AXIS SUBROUTINE
9000  PRINT " ";
9010  FOR I=1 TO 71
9020  PRINT ".";
9030  NEXT I
9040  PRINT 
9050  RETURN 
9999  END 
