      PROGRAM TEST
      IMPLICIT NONE

      INTEGER*4   STATUS
      INTEGER*4   CLI$DCL_PARSE,  CLI$DISPATCH
      INTEGER*4   LIB$GET_FOREIGN

      CHARACTER*255   COMMAND_LINE
      INTEGER*2       LEN_COMMAND

      EXTERNAL  LIB$GET_INPUT
      EXTERNAL  TEST_COMMANDS

!      STATUS = LIB$GET_FOREIGN( COMMAND_LINE, ,LEN_COMMAND )
!      IF( .NOT. STATUS ) CALL LIB$SIGNAL( %VAL( STATUS ) )

!      COMMAND_LINE = 'TEST ' // COMMAND_LINE( 1:LEN_COMMAND )


 10   STATUS = CLI$DCL_PARSE( %VAL( 0 )
     1                       ,TEST_COMMANDS
     2                       ,LIB$GET_INPUT
     3                       ,LIB$GET_INPUT
     4                       ,'TEST> ' )

      CALL CLI$DISPATCH     ! Dispatch the command, then
      GOTO 10               ! Prompt for another command

      STOP ' End TEST program'
      END


      SUBROUTINE TEST_SUB
      IMPLICIT NONE

      CHARACTER*80   PARAMETER
      INTEGER*2      LEN_PARAM

      INTEGER*4   CLI$PRESENT, CLI$GET_VALUE, STATUS
      EXTERNAL    CLI$_PRESENT
      EXTERNAL    CLI$_NEGATED


      STATUS = CLI$PRESENT( 'P1' )
      IF ( STATUS .EQ. %LOC(CLI$_PRESENT) )  THEN
         STATUS = CLI$GET_VALUE( 'P1',PARAMETER,LEN_PARAM )
      ELSE
         CALL LIB$GET_INPUT( PARAMETER,' Enter parameter: ',LEN_PARAM )
      END IF

      STATUS = CLI$PRESENT( 'FULL' )
      IF ( STATUS .EQ. %LOC(CLI$_PRESENT) )  THEN
         WRITE( 6,* ) ' FULL qualifier is present'
      END IF

      STATUS = CLI$PRESENT( 'DATE' )
      IF ( STATUS .EQ. %LOC(CLI$_PRESENT) )  THEN
         WRITE( 6,* ) ' DATE qualifier is present'
      ELSE IF( STATUS .EQ. %LOC(CLI$_NEGATED) ) THEN
         WRITE( 6,* ) ' DATE qualifier is negated'
      ELSE
         WRITE( 6,* ) ' DATE qualifier is NOT present'
      END IF

      END


      SUBROUTINE SHOW
      IMPLICIT NONE
                                                              
      WRITE( 6,* ) ' Routine SHOW'

      RETURN
      END

      

      SUBROUTINE HELP
      IMPLICIT NONE


      INTEGER*4   CLI$GET_VALUE, LBR$OUTPUT_HELP
      INTEGER*4   STATUS
      CHARACTER   HELP_TOPIC*32
      EXTERNAL    LIB$GET_INPUT
      EXTERNAL    LIB$PUT_OUTPUT

      INCLUDE     '( $HLPDEF )'


      WRITE( 6,* ) ' Routine HELP'


      STATUS = CLI$GET_VALUE( 'HELP_TOPIC',HELP_TOPIC )

      STATUS = LBR$OUTPUT_HELP( LIB$PUT_OUTPUT,,HELP_TOPIC
     1   ,'DKB100:[MIKE.FALL92]TEST.HLB'
     2   ,HLP$M_HELP+HLP$M_PROMPT,LIB$GET_INPUT )

      RETURN
      END

                           
      SUBROUTINE EXIT
      IMPLICIT NONE

      STOP ' Exit PARSEDATE'
      END
