*COMDECK ALGETWORD
      SUBROUTINE GETWORD (ARRAY,WORD,VALUE) 
C 
C 
C 
C        THIS ROUTINE OBTAINS A 16-BIT WORD FROM THE 60-BIT WORD
C        INPUT ARRAY.  "WORD" IS THE NUMBER OF THE WORD TO FETCH
C        (1 TO N), ARRAY IS THE INPUT ARRAY, AND VALUE IS THE 
C        RETURNED VALUE.
C 
C 
*CALL ALCOMMON
      DIMENSION ARRAY(1)
      DATA HIMASK,LOMASK/77777400000000000000B , 177777B/ 
C 
C 
C 
C 
C        GET THE BIT NUMBER WITHIN THE ARRAY WHERE THE REQUESTED
C        WORD BEGINS. 
C 
      BITNUM = (WORD - 1) * 16
C 
C        GET THE 60-BIT WORD NUMBER WHERE THIS 16-BIT WORD BEGINS 
C        AND ENDS.
C 
      WORDST = BITNUM / 60 + 1
      WORDEND = (BITNUM + 15) / 60 + 1
      BITNUM = MOD(BITNUM,60) 
C 
C        BRANCH IF THE 16-BIT WORD CROSSES 60-BIT WORD BOUNDARIES.
C 
      IF (WORDST.NE.WORDEND) GO TO 10 
C 
C        OTHERWISE, PICK IT UP, ISOLATE IT, AND RETURN. 
C 
      VALUE = AND(SHIFT(ARRAY(WORDST),BITNUM-44),LOMASK)
      RETURN
C 
C        IF IT CROSSES BOUNDARIES, PICK UP BOTH PARTS AND COMBINE THEM. 
C 
   10 VALUE=OR(AND(ARRAY(WORDST),LOMASK),AND(ARRAY(WORDEND),HIMASK))
      VALUE = AND(SHIFT(VALUE,BITNUM-44),LOMASK)
      RETURN
      END 
C 
C 
