      SUBROUTINE DEFINE(LINE,ERROR)
      USE GKERNEL_INTERFACES
      CHARACTER LINE*(*)
      logical error
*      
      INCLUDE 'constant.inc'
      INCLUDE 'elements.inc'
*
      INTEGER MVOCAB
      PARAMETER (MVOCAB=1)
      CHARACTER*12 VOCAB(MVOCAB),ARGUM,KEYWOR
      INTEGER MVOCAB_METH
      PARAMETER (MVOCAB_METH=2)
      CHARACTER*12 VOCAB_METH(MVOCAB_METH)
      CHARACTER*12 METHOD
      INTEGER NKEY
      INTEGER I,J,NC
* Data
      DATA VOCAB /'METHOD'/
      DATA VOCAB_METH /'GAUSS-JORDAN','DIAGONALISE'/
*
      CALL SIC_CH (LINE,0,1,ARGUM,NC,.TRUE.,ERROR)
      IF (ERROR) RETURN
      CALL SIC_AMBIGS('DEFINE',ARGUM,KEYWOR,NKEY,
     +     VOCAB,MVOCAB,ERROR)
      IF (ERROR) RETURN
      IF (KEYWOR.EQ.'METHOD') THEN
         CALL SIC_CH (LINE,0,2,ARGUM,NC,.TRUE.,ERROR)
         IF (ERROR) RETURN
         CALL SIC_AMBIGS('DEFINE METHOD',ARGUM,METHOD,NKEY,
     +        VOCAB_METH,MVOCAB_METH,ERROR)
         IF (ERROR) RETURN
      ELSE
         ERROR = .TRUE.
      ENDIF
      RETURN
*
      END
