      SUBROUTINE ROLLT(ICORE,MAXCOR,IUHF,RLECYC,SINGLE,IENTRY,
     &                 RLETYP,LAMBDA,MAXORD)
C
C UPDATES THE RLE T AMPLITUDE AREA.  IENTRY = -1 PUTS THE 
C  INITIAL T AMPLITUDE ONTO LIST 70.  FOR NONHF CASES, THEN
C  WE HAVE TO ALSO PUT OUT THE T1 AMPLITUDES.
C
CEND
      IMPLICIT INTEGER (A-Z)
      LOGICAL SINGLE,NONHF,LAMBDA
      DIMENSION ICORE(MAXCOR)
      COMMON /FLAGS/ IFLAGS(100)
      COMMON /SYMPOP/ IRPDPD(8,22),ISYTYP(2,500),ID(18)
      COMMON /MACHSP/ IINTLN,IFLTLN,IINTFP,IALONE,IBITWD
      COMMON /SYM/ POP(8,2),VRT(8,2),NT(2),NF(2),NF1(2)
      COMMON /RLEIO/ IOLDEST
      MAXORD=IFLAGS(12)
      IF(IENTRY.EQ.-1)THEN
       IF(MAX(IFLAGS(32),IFLAGS(33),IFLAGS(38)).NE.0)THEN
        NONHF=.TRUE.
       ELSE
        NONHF=.FALSE.
       ENDIF
       DO 100 ISPIN=3,1,IUHF-2
        ISIZE=ISYMSZ(ISYTYP(1,43+ISPIN),ISYTYP(2,43+ISPIN))
        I000=1
        I010=I000+IINTFP*ISIZE
        CALL GETALL(ICORE,ISIZE,1,43+ISPIN)
        IF(SINGLE.AND.ISPIN.LT.3)THEN
         IF(SINGLE.AND.(NONHF.OR.LAMBDA))THEN
          CALL GETLST(ICORE(I010),1,1,1,ISPIN,90)
         ELSE
          CALL IZERO(ICORE(I010),NT(ISPIN)*IINTFP)
         ENDIF
        ENDIF
        CALL PUTLST(ICORE,1,1,1,ISPIN,70)
        IF(RLETYP.EQ.2.OR.RLETYP.EQ.3)THEN
         CALL PUTLST(ICORE,1,1,1,ISPIN+3,70)
        ENDIF
        CALL PUTLST(ICORE,1,1,1,ISPIN,89)
        IOLDEST=2
100    CONTINUE
       RETURN
      ENDIF 
C
      DO 30 ISPIN=3,1,IUHF-2
       ISIZE=ISYMSZ(ISYTYP(1,60+ISPIN),ISYTYP(2,60+ISPIN))
       I000=1
       I010=I000+IINTFP*ISIZE
       CALL GETALL(ICORE,ISIZE,1,60+ISPIN)
       IF(SINGLE.AND.ISPIN.NE.3)CALL GETLST(ICORE(I010),1,1,1,
     &    2+ISPIN,90)
       CALL PUTLST(ICORE,IOLDEST,1,1,ISPIN,70)
30    CONTINUE
      IOLDEST=1+MOD(IOLDEST,MAXORD+1)
      RETURN
      END
