      SUBROUTINE VRCDHP
     I                  (IVRCNT,VARPOS,INVRNM)
C
C     + + + PURPOSE + + +
C     routine to write out all valid variable codes
C     in alphabetical order
C
C     + + + DUMMY ARGUMENTS + + +
      INTEGER     IVRCNT,VARPOS(150)
      CHARACTER*1 INVRNM(8,150)
C
C     + + + ARGUMENT DEFINITIONS + + +
C     IVRCNT - number of variable codes in INVRNM array
C     VARPOS - bubble sort pointer to INVRNM array
C     INVRNM - character array holding variable codes from INVAR.DAT
C
C     + + + LOCAL VARIABLES + + +
      INTEGER     I,I1,I8,J,K
      CHARACTER*1 BLNK(1),TBUFF(80),COMMA
C
C     + + + EXTERNALS + + +
      EXTERNAL   CHRCHR, ZIPC
C
C     + + + END SPECIFICATIONS + + +
C
      BLNK(1)= ' '
      COMMA  = ','
      I1     = 1
      I8     = 8
C     print out allowable variable codes
      I= 80
      CALL ZIPC (I,BLNK(1),TBUFF)
      I= 2
      J= 2
 5    CONTINUE
        J= J+ 1
        K= VARPOS(J)
        CALL CHRCHR (I8,INVRNM(1,K),TBUFF(I))
        I= I+ I8
        CALL CHRCHR (I1,COMMA,TBUFF(I))
        CALL CHRCHR (I1,BLNK(1),TBUFF(I))
        I= I+ 1
        IF (I.GE.71.OR.J.EQ.IVRCNT) THEN
          I= I- 1
C         CALL SCPRST (I1,BLNK(1))
C         CALL PRTSCR (I,TBUFF)
          CALL ZIPC (I,BLNK(1),TBUFF)
          I= 2
        END IF
      IF (J.LT.IVRCNT) GO TO 5
C
      RETURN
      END
