PROGRAM LGFOR
********************************************
****** 12-31-90
********************************************
IMPLICIT REAL*8(A-G,O-R,T-Z)
IMPLICIT INTEGER(H-N)
INTEGER X(100),IORDER(100)
CHARACTER IFMT(1)*127,TITLE(1)*127,IFT(1)*127,OUTFMT(1)*127,
& ITMNAM(100)*8,KEYWRD*10,YESNO*10,NOYES*10,SSFILE*20
REAL*8 N
WRITE(*,'(A/A/A,A\)')' What is the input specification file?',
&' INPUT = 1',
&' or Specify different file name = 2',
&' '
READ(*,*)INKEY
IF (INKEY .EQ. 1)THEN
SSFILE='INPUT'
ELSE
WRITE(*,'(A/A\)')' Input specification file is: ',
&' ===> '
READ(*,'(A)')SSFILE
ENDIF
WRITE (*,'(A\)') ' File "'
WRITE (*,'(A\)')SSFILE
WRITE (*,'(A)') ' " will be used as the input specification file.'
OPEN (1,FILE=SSFILE,STATUS='OLD')
OPEN (2,FILE='LG.OUT',STATUS='NEW')
WRITE(*,'(A/A)')' ',
&' '
WRITE(*,'(A/A/A,A\)')' What is the raw data input file?',
&' RAW = 1',
&' or Specify different file name = 2',
&' '
READ(*,*)INKEY
IF (INKEY .EQ. 1)THEN
SSFILE='RAW'
ELSE
WRITE(*,'(A/A\)')' Raw data input file is: ',
&' ===> '
READ(*,'(A)')SSFILE
ENDIF
WRITE (*,'(A\)') ' ..... File "'
WRITE (*,'(A\)')SSFILE
WRITE (*,'(A)') ' " is being input as the raw data file.'
OPEN (4,FILE=SSFILE,STATUS='OLD')
50 READ (1,'(A10)',END=65)KEYWRD
65 IF (KEYWRD .EQ. 'TITLE') THEN
READ (1,'(A127)')TITLE
WRITE(2,'(A127)')TITLE
GOTO 50
ELSE IF (KEYWRD .EQ. 'NCASES') THEN
READ (1,'(I4)')NCASES
GOTO 50
ELSE IF (KEYWRD .EQ. 'WAVES')THEN
READ (1,'(I4)')NWAVES
GOTO 50
ELSE IF (KEYWRD .EQ. 'SELECT')THEN
IYES=1
READ (1,'(I1)')IFNUM
GOTO 50
70 ELSE IF (KEYWRD .EQ. 'HOWREAD') THEN
READ (1,'(A127)',END=100)IFMT(1)
IF (IYES .EQ. 0) IFMT(2)=IFMT(1)
GOTO 50
100 ELSE IF (KEYWRD .EQ. 'ITEMS')THEN
READ (1,'(I4)')NVARS
110 DO 120 I=1,NVARS
READ (1,*,END=175)ITMNAM(I),IORDER(I)
120 ICOUNT=ICOUNT+1
DO 150 I=1,ICOUNT
IF (ITMNAM(I) .EQ. ' ')GO TO 175
150 CONTINUE
175 II=I-1
GOTO 50
ELSE IF (KEYWRD .EQ. 'LCSMAX') THEN
READ (1,'(A10)')YESNO
GOTO 50
ELSE IF (KEYWRD .EQ. 'FREQUENCY') THEN
READ (1,'(A10)')NOYES
GOTO 50
ELSE IF (KEYWRD .EQ. 'END') THEN
GOTO 185
ENDIF
185 IF (YESNO .EQ. 'YES') ION=1
IF (YESNO .EQ. 'yes') ION=1
IF (YESNO .EQ. 'Yes') ION=1
IF (NOYES .EQ. 'YES') IION=1
IF (NOYES .EQ. 'yes') IION=1
IF (NOYES .EQ. 'Yes') IION=1
WRITE(2,'(I1)')ION
WRITE(2,'(I1)')IION
WRITE(2,'(I4)')NVARS/NWAVES
CLOSE(1)
186 IF (IYES .EQ. 1)GOTO 200
188 READ (4,IFMT(1))(X(I),I=1,NVARS)
III=III+1
WRITE (*,'(A)')
& ' NREAL NCASES III '
WRITE (*,'(I8,3X,I8,3X,I8)')
& NREAL,NCASES,III
189 DO 190 I=1,NVARS
190 IF (X(I) .NE. 0 .AND. X(I) .NE. 1)GOTO 198
191 DO 192 I=1,NVARS
192 WRITE(2,'(I1\)') X(IORDER(I))
WRITE(2,'(A)')
& ' '
NREAL=NREAL+1
198 IF (X(I) .EQ. 0 .OR. X(I) .EQ. 1)GOTO 199
WRITE (*,'(A)')
& ' X(I) NCASES III '
WRITE (*,'(I8,3X,I8,3X,I8)')
& X(I),NCASES,III
199 IF (III.LT.NCASES)GOTO 188
GOTO 500
200 READ (4,IFMT(1))(X(I),I=1,NVARS+1)
III=III+1
IF (X(1) .EQ. IFNUM)GOTO 220
210 IF (III.LT.NCASES)GOTO 200
GOTO 500
220 DO 222 I=2,NVARS+1
222 IF (X(I) .NE. 0 .AND. X(I) .NE. 1)GOTO 210
290 DO 292 I=1,NVARS
292 WRITE(2,'(I1\)') X(IORDER(I)+1)
WRITE(2,'(A)')
& ' '
NREAL=NREAL+1
IF (III.LT.NCASES)GOTO 200
500 WRITE(2,'(A)')
& '-'
510 DO 520 I=1,NVARS
WRITE(2,*) ITMNAM(IORDER(I))
520 CONTINUE
600 END