1 #if defined LINUX || defined APPLE
2 SUBROUTINE dcrft(init,x,ldx,y,ldy,n,m,isign,scale,
3 & table,n1,wrk,n2,z,nz)
6 integer init,ldx,ldy,n,m,isign,n1,n2,nz,i,j
7 real x(2*ldx,*),y(ldy,*),scale,table(44002),wrk,z
18 CALL rfftb(n,y(1,j),table)
28 SUBROUTINE scrft(init,x,ldx,y,ldy,n,m,isign,scale,
29 & table,n1,wrk,n2,z,nz)
32 integer init,ldx,ldy,n,m,isign,n1,n2,nz,i,j
33 real x(2*ldx,*),y(ldy,*),scale,table(44002),wrk,z
44 CALL rfftb(n,y(1,j),table)
56 SUBROUTINE csfft(isign,n,scale,x,y,table,work,isys)
59 integer isign,n,isys,i
60 real scale,x(*),y(*),table(*),work(*)
81 SUBROUTINE drcft(init,x,ldx,y,ldy,n,m,isign,scale,
82 & table,n1,wrk,n2,z,nz)
85 integer init,ldx,ldy,n,m,isign,n1,n2,nz,i,j
86 real x(ldx,*),y(2*ldy,*),scale,table(44002),wrk,z
95 CALL rfftf(n,y(1,j),table)
111 SUBROUTINE srcft(init,x,ldx,y,ldy,n,m,isign,scale,
112 & table,n1,wrk,n2,z,nz)
115 integer init,ldx,ldy,n,m,isign,n1,n2,nz,i,j
116 real x(ldx,*),y(2*ldy,*),scale,table(44002),wrk,z
125 CALL rfftf(n,y(1,j),table)
143 SUBROUTINE scfft(isign,n,scale,x,y,table,work,isys)
146 integer isign,n,isys,i
147 real scale,x(*),y(*),table(*),work(*)
152 IF (isign.eq.-1)
THEN
156 CALL rfftf(n,y,table)
177 SUBROUTINE rfftf (N,R,WSAVE)
178 dimension r(1) ,wsave(1)
180 CALL rfftf1 (n,r,wsave,wsave(n+1),wsave(2*n+1))
183 SUBROUTINE rfftb (N,R,WSAVE)
184 dimension r(1) ,wsave(1)
186 CALL rfftb1 (n,r,wsave,wsave(n+1),wsave(2*n+1))
189 SUBROUTINE rffti (N,WSAVE)
192 CALL rffti1 (n,wsave(n+1),wsave(2*n+1))
195 SUBROUTINE rfftb1 (N,C,CH,WA,IFAC)
196 dimension ch(1) ,c(1) ,wa(1) ,ifac(*)
206 IF (ip .NE. 4)
GO TO 103
209 IF (na .NE. 0)
GO TO 101
210 CALL radb4 (ido,l1,c,ch,wa(iw),wa(ix2),wa(ix3))
212 101
CALL radb4 (ido,l1,ch,c,wa(iw),wa(ix2),wa(ix3))
215 103
IF (ip .NE. 2)
GO TO 106
216 IF (na .NE. 0)
GO TO 104
217 CALL radb2 (ido,l1,c,ch,wa(iw))
219 104
CALL radb2 (ido,l1,ch,c,wa(iw))
222 106
IF (ip .NE. 3)
GO TO 109
224 IF (na .NE. 0)
GO TO 107
225 CALL radb3 (ido,l1,c,ch,wa(iw),wa(ix2))
227 107
CALL radb3 (ido,l1,ch,c,wa(iw),wa(ix2))
230 109
IF (ip .NE. 5)
GO TO 112
234 IF (na .NE. 0)
GO TO 110
235 CALL radb5 (ido,l1,c,ch,wa(iw),wa(ix2),wa(ix3),wa(ix4))
237 110
CALL radb5 (ido,l1,ch,c,wa(iw),wa(ix2),wa(ix3),wa(ix4))
240 112
IF (na .NE. 0)
GO TO 113
241 CALL radbg (ido,ip,l1,idl1,c,c,c,ch,ch,wa(iw))
243 113
CALL radbg (ido,ip,l1,idl1,ch,ch,ch,c,c,wa(iw))
244 114
IF (ido .EQ. 1) na = 1-na
248 IF (na .EQ. 0)
RETURN
256 SUBROUTINE rfftf1 (N,C,CH,WA,IFAC)
257 dimension ch(1) ,c(1) ,wa(1) ,ifac(*)
270 IF (ip .NE. 4)
GO TO 102
273 IF (na .NE. 0)
GO TO 101
274 CALL radf4 (ido,l1,c,ch,wa(iw),wa(ix2),wa(ix3))
276 101
CALL radf4 (ido,l1,ch,c,wa(iw),wa(ix2),wa(ix3))
278 102
IF (ip .NE. 2)
GO TO 104
279 IF (na .NE. 0)
GO TO 103
280 CALL radf2 (ido,l1,c,ch,wa(iw))
282 103
CALL radf2 (ido,l1,ch,c,wa(iw))
284 104
IF (ip .NE. 3)
GO TO 106
286 IF (na .NE. 0)
GO TO 105
287 CALL radf3 (ido,l1,c,ch,wa(iw),wa(ix2))
289 105
CALL radf3 (ido,l1,ch,c,wa(iw),wa(ix2))
291 106
IF (ip .NE. 5)
GO TO 108
295 IF (na .NE. 0)
GO TO 107
296 CALL radf5 (ido,l1,c,ch,wa(iw),wa(ix2),wa(ix3),wa(ix4))
298 107
CALL radf5 (ido,l1,ch,c,wa(iw),wa(ix2),wa(ix3),wa(ix4))
300 108
IF (ido .EQ. 1) na = 1-na
301 IF (na .NE. 0)
GO TO 109
302 CALL radfg (ido,ip,l1,idl1,c,c,c,ch,ch,wa(iw))
305 109
CALL radfg (ido,ip,l1,idl1,ch,ch,ch,c,c,wa(iw))
309 IF (na .EQ. 1)
RETURN
317 SUBROUTINE rffti1 (N,WA,IFAC)
318 dimension wa(1) ,ifac(*) ,ntryh(4)
319 DATA ntryh(1),ntryh(2),ntryh(3),ntryh(4)/4,2,3,5/
334 IF (ntry .NE. 2)
GO TO 107
335 IF (nf .EQ. 1)
GO TO 107
338 ifac(ib+2) = ifac(ib+1)
341 107
IF (nl .NE. 1)
GO TO 104
344 tpi = 6.28318530717959
349 IF (nfm1 .EQ. 0)
RETURN
360 argld = float(ld)*argh
378 SUBROUTINE radb2 (IDO,L1,CC,CH,WA1)
379 dimension cc(ido,2,l1) ,ch(ido,l1,2) ,
382 ch(1,k,1) = cc(1,1,k)+cc(ido,2,k)
383 ch(1,k,2) = cc(1,1,k)-cc(ido,2,k)
385 IF (ido-2) 107,105,102
391 ch(i-1,k,1) = cc(i-1,1,k)+cc(ic-1,2,k)
392 tr2 = cc(i-1,1,k)-cc(ic-1,2,k)
393 ch(i,k,1) = cc(i,1,k)-cc(ic,2,k)
394 ti2 = cc(i,1,k)+cc(ic,2,k)
395 ch(i-1,k,2) = wa1(i-2)*tr2-wa1(i-1)*ti2
396 ch(i,k,2) = wa1(i-2)*ti2+wa1(i-1)*tr2
399 IF (mod(ido,2) .EQ. 1)
RETURN
401 ch(ido,k,1) = cc(ido,1,k)+cc(ido,1,k)
402 ch(ido,k,2) = -(cc(1,2,k)+cc(1,2,k))
408 SUBROUTINE radb3 (IDO,L1,CC,CH,WA1,WA2)
409 dimension cc(ido,3,l1) ,ch(ido,l1,3) ,
411 DATA taur,taui /-.5,.866025403784439/
413 tr2 = cc(ido,2,k)+cc(ido,2,k)
414 cr2 = cc(1,1,k)+taur*tr2
415 ch(1,k,1) = cc(1,1,k)+tr2
416 ci3 = taui*(cc(1,3,k)+cc(1,3,k))
420 IF (ido .EQ. 1)
RETURN
426 tr2 = cc(i-1,3,k)+cc(ic-1,2,k)
427 cr2 = cc(i-1,1,k)+taur*tr2
428 ch(i-1,k,1) = cc(i-1,1,k)+tr2
429 ti2 = cc(i,3,k)-cc(ic,2,k)
430 ci2 = cc(i,1,k)+taur*ti2
431 ch(i,k,1) = cc(i,1,k)+ti2
432 cr3 = taui*(cc(i-1,3,k)-cc(ic-1,2,k))
433 ci3 = taui*(cc(i,3,k)+cc(ic,2,k))
438 ch(i-1,k,2) = wa1(i-2)*dr2-wa1(i-1)*di2
439 ch(i,k,2) = wa1(i-2)*di2+wa1(i-1)*dr2
440 ch(i-1,k,3) = wa2(i-2)*dr3-wa2(i-1)*di3
441 ch(i,k,3) = wa2(i-2)*di3+wa2(i-1)*dr3
448 SUBROUTINE radb4 (IDO,L1,CC,CH,WA1,WA2,WA3)
449 dimension cc(ido,4,l1) ,ch(ido,l1,4) ,
450 1 wa1(1) ,wa2(1) ,wa3(1)
451 DATA sqrt2 /1.414213562373095/
453 tr1 = cc(1,1,k)-cc(ido,4,k)
454 tr2 = cc(1,1,k)+cc(ido,4,k)
455 tr3 = cc(ido,2,k)+cc(ido,2,k)
456 tr4 = cc(1,3,k)+cc(1,3,k)
462 IF (ido-2) 107,105,102
468 ti1 = cc(i,1,k)+cc(ic,4,k)
469 ti2 = cc(i,1,k)-cc(ic,4,k)
470 ti3 = cc(i,3,k)-cc(ic,2,k)
471 tr4 = cc(i,3,k)+cc(ic,2,k)
472 tr1 = cc(i-1,1,k)-cc(ic-1,4,k)
473 tr2 = cc(i-1,1,k)+cc(ic-1,4,k)
474 ti4 = cc(i-1,3,k)-cc(ic-1,2,k)
475 tr3 = cc(i-1,3,k)+cc(ic-1,2,k)
476 ch(i-1,k,1) = tr2+tr3
484 ch(i-1,k,2) = wa1(i-2)*cr2-wa1(i-1)*ci2
485 ch(i,k,2) = wa1(i-2)*ci2+wa1(i-1)*cr2
486 ch(i-1,k,3) = wa2(i-2)*cr3-wa2(i-1)*ci3
487 ch(i,k,3) = wa2(i-2)*ci3+wa2(i-1)*cr3
488 ch(i-1,k,4) = wa3(i-2)*cr4-wa3(i-1)*ci4
489 ch(i,k,4) = wa3(i-2)*ci4+wa3(i-1)*cr4
492 IF (mod(ido,2) .EQ. 1)
RETURN
495 ti1 = cc(1,2,k)+cc(1,4,k)
496 ti2 = cc(1,4,k)-cc(1,2,k)
497 tr1 = cc(ido,1,k)-cc(ido,3,k)
498 tr2 = cc(ido,1,k)+cc(ido,3,k)
499 ch(ido,k,1) = tr2+tr2
500 ch(ido,k,2) = sqrt2*(tr1-ti1)
501 ch(ido,k,3) = ti2+ti2
502 ch(ido,k,4) = -sqrt2*(tr1+ti1)
508 SUBROUTINE radb5 (IDO,L1,CC,CH,WA1,WA2,WA3,WA4)
509 dimension cc(ido,5,l1) ,ch(ido,l1,5) ,
510 1 wa1(1) ,wa2(1) ,wa3(1) ,wa4(1)
511 DATA tr11,ti11,tr12,ti12 /.309016994374947,.951056516295154,
512 1-.809016994374947,.587785252292473/
514 ti5 = cc(1,3,k)+cc(1,3,k)
515 ti4 = cc(1,5,k)+cc(1,5,k)
516 tr2 = cc(ido,2,k)+cc(ido,2,k)
517 tr3 = cc(ido,4,k)+cc(ido,4,k)
518 ch(1,k,1) = cc(1,1,k)+tr2+tr3
519 cr2 = cc(1,1,k)+tr11*tr2+tr12*tr3
520 cr3 = cc(1,1,k)+tr12*tr2+tr11*tr3
521 ci5 = ti11*ti5+ti12*ti4
522 ci4 = ti12*ti5-ti11*ti4
528 IF (ido .EQ. 1)
RETURN
533 ti5 = cc(i,3,k)+cc(ic,2,k)
534 ti2 = cc(i,3,k)-cc(ic,2,k)
535 ti4 = cc(i,5,k)+cc(ic,4,k)
536 ti3 = cc(i,5,k)-cc(ic,4,k)
537 tr5 = cc(i-1,3,k)-cc(ic-1,2,k)
538 tr2 = cc(i-1,3,k)+cc(ic-1,2,k)
539 tr4 = cc(i-1,5,k)-cc(ic-1,4,k)
540 tr3 = cc(i-1,5,k)+cc(ic-1,4,k)
541 ch(i-1,k,1) = cc(i-1,1,k)+tr2+tr3
542 ch(i,k,1) = cc(i,1,k)+ti2+ti3
543 cr2 = cc(i-1,1,k)+tr11*tr2+tr12*tr3
544 ci2 = cc(i,1,k)+tr11*ti2+tr12*ti3
545 cr3 = cc(i-1,1,k)+tr12*tr2+tr11*tr3
546 ci3 = cc(i,1,k)+tr12*ti2+tr11*ti3
547 cr5 = ti11*tr5+ti12*tr4
548 ci5 = ti11*ti5+ti12*ti4
549 cr4 = ti12*tr5-ti11*tr4
550 ci4 = ti12*ti5-ti11*ti4
559 ch(i-1,k,2) = wa1(i-2)*dr2-wa1(i-1)*di2
560 ch(i,k,2) = wa1(i-2)*di2+wa1(i-1)*dr2
561 ch(i-1,k,3) = wa2(i-2)*dr3-wa2(i-1)*di3
562 ch(i,k,3) = wa2(i-2)*di3+wa2(i-1)*dr3
563 ch(i-1,k,4) = wa3(i-2)*dr4-wa3(i-1)*di4
564 ch(i,k,4) = wa3(i-2)*di4+wa3(i-1)*dr4
565 ch(i-1,k,5) = wa4(i-2)*dr5-wa4(i-1)*di5
566 ch(i,k,5) = wa4(i-2)*di5+wa4(i-1)*dr5
573 SUBROUTINE radbg (IDO,IP,L1,IDL1,CC,C1,C2,CH,CH2,WA)
574 dimension ch(ido,l1,ip) ,cc(ido,ip,l1) ,
575 1 c1(ido,l1,ip) ,c2(idl1,ip),
576 2 ch2(idl1,ip) ,wa(1)
577 DATA tpi/6.28318530717959/
585 IF (ido .LT. l1)
GO TO 103
588 ch(i,k,1) = cc(i,1,k)
594 ch(i,k,1) = cc(i,1,k)
602 ch(1,k,j) = cc(ido,j2-2,k)+cc(ido,j2-2,k)
603 ch(1,k,jc) = cc(1,j2-1,k)+cc(1,j2-1,k)
606 IF (ido .EQ. 1)
GO TO 116
607 IF (nbd .LT. l1)
GO TO 112
614 ch(i-1,k,j) = cc(i-1,2*j-1,k)+cc(ic-1,2*j-2,k)
615 ch(i-1,k,jc) = cc(i-1,2*j-1,k)-cc(ic-1,2*j-2,k)
616 ch(i,k,j) = cc(i,2*j-1,k)-cc(ic,2*j-2,k)
617 ch(i,k,jc) = cc(i,2*j-1,k)+cc(ic,2*j-2,k)
627 ch(i-1,k,j) = cc(i-1,2*j-1,k)+cc(ic-1,2*j-2,k)
628 ch(i-1,k,jc) = cc(i-1,2*j-1,k)-cc(ic-1,2*j-2,k)
629 ch(i,k,j) = cc(i,2*j-1,k)-cc(ic,2*j-2,k)
630 ch(i,k,jc) = cc(i,2*j-1,k)+cc(ic,2*j-2,k)
639 ar1h = dcp*ar1-dsp*ai1
640 ai1 = dcp*ai1+dsp*ar1
643 c2(ik,l) = ch2(ik,1)+ar1*ch2(ik,2)
644 c2(ik,lc) = ai1*ch2(ik,ip)
653 ar2h = dc2*ar2-ds2*ai2
654 ai2 = dc2*ai2+ds2*ar2
657 c2(ik,l) = c2(ik,l)+ar2*ch2(ik,j)
658 c2(ik,lc) = c2(ik,lc)+ai2*ch2(ik,jc)
665 ch2(ik,1) = ch2(ik,1)+ch2(ik,j)
672 ch(1,k,j) = c1(1,k,j)-c1(1,k,jc)
673 ch(1,k,jc) = c1(1,k,j)+c1(1,k,jc)
676 IF (ido .EQ. 1)
GO TO 132
677 IF (nbd .LT. l1)
GO TO 128
683 ch(i-1,k,j) = c1(i-1,k,j)-c1(i,k,jc)
684 ch(i-1,k,jc) = c1(i-1,k,j)+c1(i,k,jc)
685 ch(i,k,j) = c1(i,k,j)+c1(i-1,k,jc)
686 ch(i,k,jc) = c1(i,k,j)-c1(i-1,k,jc)
695 ch(i-1,k,j) = c1(i-1,k,j)-c1(i,k,jc)
696 ch(i-1,k,jc) = c1(i-1,k,j)+c1(i,k,jc)
697 ch(i,k,j) = c1(i,k,j)+c1(i-1,k,jc)
698 ch(i,k,jc) = c1(i,k,j)-c1(i-1,k,jc)
703 IF (ido .EQ. 1)
RETURN
709 c1(1,k,j) = ch(1,k,j)
712 IF (nbd .GT. l1)
GO TO 139
720 c1(i-1,k,j) = wa(idij-1)*ch(i-1,k,j)-wa(idij)*ch(i,k,j)
721 c1(i,k,j) = wa(idij-1)*ch(i,k,j)+wa(idij)*ch(i-1,k,j)
734 c1(i-1,k,j) = wa(idij-1)*ch(i-1,k,j)-wa(idij)*ch(i,k,j)
735 c1(i,k,j) = wa(idij-1)*ch(i,k,j)+wa(idij)*ch(i-1,k,j)
743 SUBROUTINE radf2 (IDO,L1,CC,CH,WA1)
744 dimension ch(ido,2,l1) ,cc(ido,l1,2) ,
747 ch(1,1,k) = cc(1,k,1)+cc(1,k,2)
748 ch(ido,2,k) = cc(1,k,1)-cc(1,k,2)
750 IF (ido-2) 107,105,102
755 tr2 = wa1(i-2)*cc(i-1,k,2)+wa1(i-1)*cc(i,k,2)
756 ti2 = wa1(i-2)*cc(i,k,2)-wa1(i-1)*cc(i-1,k,2)
757 ch(i,1,k) = cc(i,k,1)+ti2
758 ch(ic,2,k) = ti2-cc(i,k,1)
759 ch(i-1,1,k) = cc(i-1,k,1)+tr2
760 ch(ic-1,2,k) = cc(i-1,k,1)-tr2
763 IF (mod(ido,2) .EQ. 1)
RETURN
765 ch(1,2,k) = -cc(ido,k,2)
766 ch(ido,1,k) = cc(ido,k,1)
772 SUBROUTINE radf3 (IDO,L1,CC,CH,WA1,WA2)
773 dimension ch(ido,3,l1) ,cc(ido,l1,3) ,
775 DATA taur,taui /-.5,.866025403784439/
777 cr2 = cc(1,k,2)+cc(1,k,3)
778 ch(1,1,k) = cc(1,k,1)+cr2
779 ch(1,3,k) = taui*(cc(1,k,3)-cc(1,k,2))
780 ch(ido,2,k) = cc(1,k,1)+taur*cr2
782 IF (ido .EQ. 1)
RETURN
787 dr2 = wa1(i-2)*cc(i-1,k,2)+wa1(i-1)*cc(i,k,2)
788 di2 = wa1(i-2)*cc(i,k,2)-wa1(i-1)*cc(i-1,k,2)
789 dr3 = wa2(i-2)*cc(i-1,k,3)+wa2(i-1)*cc(i,k,3)
790 di3 = wa2(i-2)*cc(i,k,3)-wa2(i-1)*cc(i-1,k,3)
793 ch(i-1,1,k) = cc(i-1,k,1)+cr2
794 ch(i,1,k) = cc(i,k,1)+ci2
795 tr2 = cc(i-1,k,1)+taur*cr2
796 ti2 = cc(i,k,1)+taur*ci2
799 ch(i-1,3,k) = tr2+tr3
800 ch(ic-1,2,k) = tr2-tr3
807 SUBROUTINE radf4 (IDO,L1,CC,CH,WA1,WA2,WA3)
808 dimension cc(ido,l1,4) ,ch(ido,4,l1) ,
809 1 wa1(1) ,wa2(1) ,wa3(1)
810 DATA hsqt2 /.7071067811865475/
812 tr1 = cc(1,k,2)+cc(1,k,4)
813 tr2 = cc(1,k,1)+cc(1,k,3)
815 ch(ido,4,k) = tr2-tr1
816 ch(ido,2,k) = cc(1,k,1)-cc(1,k,3)
817 ch(1,3,k) = cc(1,k,4)-cc(1,k,2)
819 IF (ido-2) 107,105,102
825 cr2 = wa1(i-2)*cc(i-1,k,2)+wa1(i-1)*cc(i,k,2)
826 ci2 = wa1(i-2)*cc(i,k,2)-wa1(i-1)*cc(i-1,k,2)
827 cr3 = wa2(i-2)*cc(i-1,k,3)+wa2(i-1)*cc(i,k,3)
828 ci3 = wa2(i-2)*cc(i,k,3)-wa2(i-1)*cc(i-1,k,3)
829 cr4 = wa3(i-2)*cc(i-1,k,4)+wa3(i-1)*cc(i,k,4)
830 ci4 = wa3(i-2)*cc(i,k,4)-wa3(i-1)*cc(i-1,k,4)
837 tr2 = cc(i-1,k,1)+cr3
838 tr3 = cc(i-1,k,1)-cr3
839 ch(i-1,1,k) = tr1+tr2
840 ch(ic-1,4,k) = tr2-tr1
843 ch(i-1,3,k) = ti4+tr3
844 ch(ic-1,2,k) = tr3-ti4
849 IF (mod(ido,2) .EQ. 1)
RETURN
852 ti1 = -hsqt2*(cc(ido,k,2)+cc(ido,k,4))
853 tr1 = hsqt2*(cc(ido,k,2)-cc(ido,k,4))
854 ch(ido,1,k) = tr1+cc(ido,k,1)
855 ch(ido,3,k) = cc(ido,k,1)-tr1
856 ch(1,2,k) = ti1-cc(ido,k,3)
857 ch(1,4,k) = ti1+cc(ido,k,3)
863 SUBROUTINE radf5 (IDO,L1,CC,CH,WA1,WA2,WA3,WA4)
864 dimension cc(ido,l1,5) ,ch(ido,5,l1) ,
865 1 wa1(1) ,wa2(1) ,wa3(1) ,wa4(1)
866 DATA tr11,ti11,tr12,ti12 /.309016994374947,.951056516295154,
867 1-.809016994374947,.587785252292473/
869 cr2 = cc(1,k,5)+cc(1,k,2)
870 ci5 = cc(1,k,5)-cc(1,k,2)
871 cr3 = cc(1,k,4)+cc(1,k,3)
872 ci4 = cc(1,k,4)-cc(1,k,3)
873 ch(1,1,k) = cc(1,k,1)+cr2+cr3
874 ch(ido,2,k) = cc(1,k,1)+tr11*cr2+tr12*cr3
875 ch(1,3,k) = ti11*ci5+ti12*ci4
876 ch(ido,4,k) = cc(1,k,1)+tr12*cr2+tr11*cr3
877 ch(1,5,k) = ti12*ci5-ti11*ci4
879 IF (ido .EQ. 1)
RETURN
884 dr2 = wa1(i-2)*cc(i-1,k,2)+wa1(i-1)*cc(i,k,2)
885 di2 = wa1(i-2)*cc(i,k,2)-wa1(i-1)*cc(i-1,k,2)
886 dr3 = wa2(i-2)*cc(i-1,k,3)+wa2(i-1)*cc(i,k,3)
887 di3 = wa2(i-2)*cc(i,k,3)-wa2(i-1)*cc(i-1,k,3)
888 dr4 = wa3(i-2)*cc(i-1,k,4)+wa3(i-1)*cc(i,k,4)
889 di4 = wa3(i-2)*cc(i,k,4)-wa3(i-1)*cc(i-1,k,4)
890 dr5 = wa4(i-2)*cc(i-1,k,5)+wa4(i-1)*cc(i,k,5)
891 di5 = wa4(i-2)*cc(i,k,5)-wa4(i-1)*cc(i-1,k,5)
900 ch(i-1,1,k) = cc(i-1,k,1)+cr2+cr3
901 ch(i,1,k) = cc(i,k,1)+ci2+ci3
902 tr2 = cc(i-1,k,1)+tr11*cr2+tr12*cr3
903 ti2 = cc(i,k,1)+tr11*ci2+tr12*ci3
904 tr3 = cc(i-1,k,1)+tr12*cr2+tr11*cr3
905 ti3 = cc(i,k,1)+tr12*ci2+tr11*ci3
906 tr5 = ti11*cr5+ti12*cr4
907 ti5 = ti11*ci5+ti12*ci4
908 tr4 = ti12*cr5-ti11*cr4
909 ti4 = ti12*ci5-ti11*ci4
910 ch(i-1,3,k) = tr2+tr5
911 ch(ic-1,2,k) = tr2-tr5
914 ch(i-1,5,k) = tr3+tr4
915 ch(ic-1,4,k) = tr3-tr4
924 SUBROUTINE radfg (IDO,IP,L1,IDL1,CC,C1,C2,CH,CH2,WA)
925 dimension ch(ido,l1,ip) ,cc(ido,ip,l1) ,
926 1 c1(ido,l1,ip) ,c2(idl1,ip),
927 2 ch2(idl1,ip) ,wa(1)
928 DATA tpi/6.28318530717959/
936 IF (ido .EQ. 1)
GO TO 119
942 ch(1,k,j) = c1(1,k,j)
945 IF (nbd .GT. l1)
GO TO 107
953 ch(i-1,k,j) = wa(idij-1)*c1(i-1,k,j)+wa(idij)*c1(i,k,j)
954 ch(i,k,j) = wa(idij-1)*c1(i,k,j)-wa(idij)*c1(i-1,k,j)
966 ch(i-1,k,j) = wa(idij-1)*c1(i-1,k,j)+wa(idij)*c1(i,k,j)
967 ch(i,k,j) = wa(idij-1)*c1(i,k,j)-wa(idij)*c1(i-1,k,j)
971 111
IF (nbd .LT. l1)
GO TO 115
976 c1(i-1,k,j) = ch(i-1,k,j)+ch(i-1,k,jc)
977 c1(i-1,k,jc) = ch(i,k,j)-ch(i,k,jc)
978 c1(i,k,j) = ch(i,k,j)+ch(i,k,jc)
979 c1(i,k,jc) = ch(i-1,k,jc)-ch(i-1,k,j)
988 c1(i-1,k,j) = ch(i-1,k,j)+ch(i-1,k,jc)
989 c1(i-1,k,jc) = ch(i,k,j)-ch(i,k,jc)
990 c1(i,k,j) = ch(i,k,j)+ch(i,k,jc)
991 c1(i,k,jc) = ch(i-1,k,jc)-ch(i-1,k,j)
1002 c1(1,k,j) = ch(1,k,j)+ch(1,k,jc)
1003 c1(1,k,jc) = ch(1,k,jc)-ch(1,k,j)
1011 ar1h = dcp*ar1-dsp*ai1
1012 ai1 = dcp*ai1+dsp*ar1
1015 ch2(ik,l) = c2(ik,1)+ar1*c2(ik,2)
1016 ch2(ik,lc) = ai1*c2(ik,ip)
1024 ar2h = dc2*ar2-ds2*ai2
1025 ai2 = dc2*ai2+ds2*ar2
1028 ch2(ik,l) = ch2(ik,l)+ar2*c2(ik,j)
1029 ch2(ik,lc) = ch2(ik,lc)+ai2*c2(ik,jc)
1035 ch2(ik,1) = ch2(ik,1)+c2(ik,j)
1039 IF (ido .LT. l1)
GO TO 132
1042 cc(i,1,k) = ch(i,k,1)
1048 cc(i,1,k) = ch(i,k,1)
1055 cc(ido,j2-2,k) = ch(1,k,j)
1056 cc(1,j2-1,k) = ch(1,k,jc)
1059 IF (ido .EQ. 1)
RETURN
1060 IF (nbd .LT. l1)
GO TO 141
1067 cc(i-1,j2-1,k) = ch(i-1,k,j)+ch(i-1,k,jc)
1068 cc(ic-1,j2-2,k) = ch(i-1,k,j)-ch(i-1,k,jc)
1069 cc(i,j2-1,k) = ch(i,k,j)+ch(i,k,jc)
1070 cc(ic,j2-2,k) = ch(i,k,jc)-ch(i,k,j)
1081 cc(i-1,j2-1,k) = ch(i-1,k,j)+ch(i-1,k,jc)
1082 cc(ic-1,j2-2,k) = ch(i-1,k,j)-ch(i-1,k,jc)
1083 cc(i,j2-1,k) = ch(i,k,j)+ch(i,k,jc)
1084 cc(ic,j2-2,k) = ch(i,k,jc)-ch(i,k,j)