*COMDECK ALGETPARM
      SUBROUTINE GETPARM(PARM,ERRFLAG)
C 
C 
C        THIS ROUTINE EXTRACTS THE NEXT ALPHANUMERIC PARAMETER FROM 
C        THE CARD ARRAY, STARTING AT CARDPTR.  IT TERMINATES AT THE 
C        FIRST NON-ALPHANUMERIC.  ANY NUMBER OF CHARACTERS MAY BE 
C        CONTAINED IN THE PARAMETER, BUT ONLY THE FIRST SIX ARE 
C        RETURNED THROUGH "PARM", WHICH IS LEFT JUSTIFIED AND BLANK 
C        FILLED.  ERRFLAG IS NOT CURRENTLY USED.
C 
C 
C 
C 
C 
C 
*CALL ALCOMMON
      LOGICAL ERRFLAG,ALFANUM 
C 
C        LOOPS COUNTS THE NUMBER OF CHARACTERS THAT HAVE BEEN SAVED.
C        MASKVAL ZEROES OUT THE LOW ORDER CHARACTER OF A WORD.
C 
      LOOPS = 0 
      MASKVAL = MASK(54)
C 
C        INITIALIZE THE RETURNED VALUES.
C 
      PARM = BLANKS 
      ERRFLAG = .FALSE. 
C 
C        BRANCH OUT IF THE NEXT CHARACTER IS NOT ALPHANUMERIC 
C 
    5 IF (.NOT.ALFANUM(CARD(CARDPTR))) GO TO 20 
C 
C        INSERT THE CHARACTER INTO THE RESULT 
C 
      PARM = OR (AND(SHIFT(PARM,6),MASKVAL),CARD(CARDPTR))
C 
C        INCREMENT THE POINTERS 
C 
      CARDPTR = CARDPTR + 1 
      LOOPS = LOOPS + 1 
C 
C        IF SIX CHARACTERS NOT SAVED YET, GO TRY FOR ANOTHER
C 
      IF (LOOPS.LT.6) GO TO 5 
C 
C        NOW JUST SPIN OUR WHEELS UNTIL WE GET A NON-ALPHANUMERIC 
C 
   10 IF (.NOT.ALFANUM(CARD(CARDPTR))) GO TO 20 
      CARDPTR = CARDPTR + 1 
      GO TO 10
C 
C        SHIFT THE RESULT TO THE HIGH ORDER POSITIONS AND RETURN IT 
C        TO THE USER
C 
   20 PARM = SHIFT(PARM,(10-LOOPS)*6) 
      RETURN
      END 
C 
C 
