SUBROUTINE VRFTB1 (M,N,C,CH,MDIMC,WA,FAC) C C VRFFTPK, VERSION 1, AUGUST 1985 C DIMENSION CH(MDIMC,N), C(MDIMC,N), WA(N) ,FAC(15) NF = FAC(2) NA = 0 L1 = 1 IW = 1 DO 116 K1=1,NF IP = FAC(K1+2) L2 = IP*L1 IDO = N/L2 IDL1 = IDO*L1 IF (IP .NE. 4) GO TO 103 IX2 = IW+IDO IX3 = IX2+IDO IF (NA .NE. 0) GO TO 101 CALL VRADB4 (M,IDO,L1,C,CH,MDIMC,WA(IW),WA(IX2),WA(IX3)) GO TO 102 101 CALL VRADB4 (M,IDO,L1,CH,C,MDIMC,WA(IW),WA(IX2),WA(IX3)) 102 NA = 1-NA GO TO 115 103 IF (IP .NE. 2) GO TO 106 IF (NA .NE. 0) GO TO 104 CALL VRADB2 (M,IDO,L1,C,CH,MDIMC,WA(IW)) GO TO 105 104 CALL VRADB2 (M,IDO,L1,CH,C,MDIMC,WA(IW)) 105 NA = 1-NA GO TO 115 106 IF (IP .NE. 3) GO TO 109 IX2 = IW+IDO IF (NA .NE. 0) GO TO 107 CALL VRADB3 (M,IDO,L1,C,CH,MDIMC,WA(IW),WA(IX2)) GO TO 108 107 CALL VRADB3 (M,IDO,L1,CH,C,MDIMC,WA(IW),WA(IX2)) 108 NA = 1-NA GO TO 115 109 IF (IP .NE. 5) GO TO 112 IX2 = IW+IDO IX3 = IX2+IDO IX4 = IX3+IDO IF (NA .NE. 0) GO TO 110 CALL VRADB5 (M,IDO,L1,C,CH,MDIMC,WA(IW),WA(IX2),WA(IX3),WA(IX4)) GO TO 111 110 CALL VRADB5 (M,IDO,L1,CH,C,MDIMC,WA(IW),WA(IX2),WA(IX3),WA(IX4)) 111 NA = 1-NA GO TO 115 112 IF (NA .NE. 0) GO TO 113 CALL VRADBG (M,IDO,IP,L1,IDL1,C,C,C,CH,CH,MDIMC,WA(IW)) GO TO 114 113 CALL VRADBG (M,IDO,IP,L1,IDL1,CH,CH,CH,C,C,MDIMC,WA(IW)) 114 IF (IDO .EQ. 1) NA = 1-NA 115 L1 = L2 IW = IW+(IP-1)*IDO 116 CONTINUE SCALE=SQRT(1./N) IF (NA .EQ. 0) GO TO 118 DO 117 J=1,N DO 117 I=1,M C(I,J) = SCALE*CH(I,J) 117 CONTINUE RETURN 118 DO 119 J=1,N DO 119 I=1,M C(I,J)=SCALE*C(I,J) 119 CONTINUE RETURN END