SUBROUTINE KEYWRD (KEYWD,LOGK,NKEY,NALPHA,ALPH,ONE) C*********************************************************************** C SUBROUTINE KEYWRD TAKES A STRING OF CHARACTERS (ALPH) AND DETER- C MINES WHICH OF THE KEYWORDS ARE PRESENT IN THE STRING. THE STRING C CAN BE FREE FORMAT TO THE EXTENT THAT ANY NUMBER OF CHARACTERS OR C BLANKS CAN BE BETWEEN THE KEYWORDS BUT BUT THE KEYWORD ITSELF MUST C BE CONTIGUOUS. IF THE KEYWORD IS PRESENT THEN THE APPROPRIATE C LOGICAL VARIABLE IS SET TO TRUE. THE STRING IS LIMITED TO 80 CHAR- C ACTERS. IF THE LOGICAL VARIABLE ONE IS SET TO TRUE THEN AFTER ONE C KEYWORD IS FOUND CONTROL IS RETURNED TO THE CALLING ROUTINE. C*********************************************************************** CHARACTER*1 ALPH(80), KEYWD(4,NKEY), IBLANK, ICOMMA LOGICAL LOGK(NKEY), ONE DATA IBLANK /' '/, ICOMMA /','/ DO 10 K=1,NKEY 10 LOGK(K)=.FALSE. IF(NALPHA.EQ.0) RETURN I=1 20 IF (ALPH(I).EQ.IBLANK.OR.ALPH(I).EQ.ICOMMA) GO TO 50 DO 40 K=1,NKEY IF (ALPH(I).NE.KEYWD(1,K)) GO TO 40 I1=I+1 I3=I+3 DO 30 J=I1,I3 I2=J-I+1 IF (ALPH(J).NE.KEYWD(I2,K)) GO TO 40 30 CONTINUE LOGK(K)=.TRUE. IF (ONE) RETURN I=I+3 GO TO 50 40 CONTINUE 50 I=I+1 IF (I.LE.NALPHA-3) GO TO 20 RETURN END