SUBROUTINE DEFSTA(INDE,ILEN,CNAM,FOK)
C For statement class INDE returns length of FORTRAN
C keyword (ILEN), keyword name (CNAM*25) and logical
C FOK, which is set if the keyword is to be checked
C for embedded blanks.
C INPUT ; INDE
C OUTPUT; ILEN
C         CNAM
C         FOK
C
      include 'param.h'
      PARAMETER (Lnochk=24)
      CHARACTER*25 CFORTS(MXSTAT)
      character*(*) cnam
      logical fok
      integer nochk(lnochk)
      save cforts
c
      data nochk /8,9,10,12,13,21,23,24,26,33,37,38,39,45,46,51,
     &            52,64,65,73,74,75,27,14/
c
      DATA CFORTS(  1)/'ASSIGN                   '/
      DATA CFORTS(  2)/'BACKSPACE                '/
      DATA CFORTS(  3)/'BLOCKDATA                '/
      DATA CFORTS(  4)/'BUFFERIN                 '/
      DATA CFORTS(  5)/'BUFFEROUT                '/
      DATA CFORTS(  6)/'CONTINUE                 '/
      DATA CFORTS(  7)/'CALL                     '/
      DATA CFORTS(  8)/'COMMON                   '/
      DATA CFORTS(  9)/'COMPLEXFUNCTION          '/
      DATA CFORTS( 10)/'COMPLEX                  '/
      DATA CFORTS( 11)/'COMPLEX                  '/
      DATA CFORTS( 12)/'CHARACTERFUNCTION        '/
      DATA CFORTS( 13)/'CHARACTER                '/
      DATA CFORTS( 14)/'CHARACTER                '/
      DATA CFORTS( 15)/'CLOSE                    '/
      DATA CFORTS( 16)/'DATA                     '/
      DATA CFORTS( 17)/'DIMENSION                '/
      DATA CFORTS( 18)/'DO                       '/
      DATA CFORTS( 19)/'DO                       '/
      data cforts( 20)/'DO                       '/
      data cforts( 21)/'DOWHILE                  '/
      DATA CFORTS( 22)/'DECODE                   '/
      DATA CFORTS( 23)/'DOUBLEPRECISIONFUNCTION  '/
      DATA CFORTS( 24)/'DOUBLEPRECISION          '/
      DATA CFORTS( 25)/'END                      '/
      data cforts( 26)/'ENDDO                    '/
      DATA CFORTS( 27)/'ENDIF                    '/
      DATA CFORTS( 28)/'ENDFILE                  '/
      DATA CFORTS( 29)/'ENTRY                    '/
      DATA CFORTS( 30)/'EQUIVALENCE              '/
      DATA CFORTS( 31)/'EXTERNAL                 '/
      DATA CFORTS( 32)/'ELSE                     '/
      DATA CFORTS( 33)/'ELSEIF                   '/
      DATA CFORTS( 34)/'ENCODE                   '/
      DATA CFORTS( 35)/'FORMAT                   '/
      DATA CFORTS( 36)/'FUNCTION                 '/
      DATA CFORTS( 37)/'GOTO                     '/
      DATA CFORTS( 38)/'GOTO                     '/
      DATA CFORTS( 39)/'GOTO                     '/
      DATA CFORTS( 40)/'IF                       '/
      DATA CFORTS( 41)/'IF                       '/
      DATA CFORTS( 42)/'IF                       '/
      DATA CFORTS( 43)/'ILLEGAL                  '/
      data cforts( 44)/'INCLUDE                  '/
      DATA CFORTS( 45)/'INTEGERFUNCTION          '/
      DATA CFORTS( 46)/'INTEGER                  '/
      DATA CFORTS( 47)/'INTEGER                  '/
      DATA CFORTS( 48)/'IMPLICIT                 '/
      DATA CFORTS( 49)/'INQUIRE                  '/
      DATA CFORTS( 50)/'INTRINSIC                '/
      DATA CFORTS( 51)/'LOGICALFUNCTION          '/
      DATA CFORTS( 52)/'LOGICAL                  '/
      DATA CFORTS( 53)/'LOGICAL                  '/
      DATA CFORTS( 54)/'LEVEL                    '/
      DATA CFORTS( 55)/'NAMELIST                 '/
      DATA CFORTS( 56)/'OPEN                     '/
      DATA CFORTS( 57)/'PRINT                    '/
      DATA CFORTS( 58)/'PARAMETER                '/
      DATA CFORTS( 59)/'PAUSE                    '/
      DATA CFORTS( 60)/'PROGRAM                  '/
      DATA CFORTS( 61)/'PUNCH                    '/
      DATA CFORTS( 62)/'READ                     '/
      DATA CFORTS( 63)/'READ                     '/
      DATA CFORTS( 64)/'REALFUNCTION             '/
      DATA CFORTS( 65)/'REAL                     '/
      DATA CFORTS( 66)/'REAL                     '/
      DATA CFORTS( 67)/'RETURN                   '/
      DATA CFORTS( 68)/'REWIND                   '/
      DATA CFORTS( 69)/'SAVE                     '/
      DATA CFORTS( 70)/'STOP                     '/
      DATA CFORTS( 71)/'SUBROUTINE               '/
      DATA CFORTS( 72)/'WRITE                    '/
      DATA CFORTS( 73)/'ASSIGNMENT               '/
      DATA CFORTS( 74)/'ASSIGNMENT               '/
      DATA CFORTS( 75)/'ASSIGNMENT               '/
C
      FOK = .false.
      DO 10 I=1,Lnochk
         IF(INDE.EQ.nochk(i)) RETURN
   10 CONTINUE
      FOK = .TRUE.
      CNAM = CFORTS(INDE)
      ILEN = INDEX(CNAM,' ')-1
      END