]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MINICERN/mathlib/gen/d/mft.F
Changes needed by ICC/IFC compiler (Intel)
[u/mrichter/AliRoot.git] / MINICERN / mathlib / gen / d / mft.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1996/04/01 15:02:19 mclareni
6* Mathlib gen
7*
8*
9#include "gen/pilot.h"
10 SUBROUTINE MFT(M1,MD1,VIN,VOU,U,IAS)
11 DIMENSION VIN(M1),VOU(M1),U(MD1)
12 M=M1-1
13 MH=M/2
14 MHA=MH-1
15 XMH=MH
16 MD=2*M
17 AX=(1./LOG10(2.))+.01
18 XM=MD
19 AM=AX*LOG10(XM)
20 IM=INT(AM)
21 DO 1 I=1,MD1
22 1 U(I)=0.
23 VOU(1)=VIN(1)
24 IF(IAS.EQ.2) GO TO 100
25 DO 2 I=1,MH
26 IN=2*I
27 2 U(IN)=VIN(IN)
28 CALL RFT(IM,U,1,U,1,3)
29 DO 3 I=1,MH
30 IN=2*I
31 3 VOU(IN)=U(IN)
32 DO 4 I=1,MD1
33 4 U(I)=0.
34 DO 5 I=1,MHA
35 IN=2*I+1
36 5 U(IN)=VIN(IN)
37 U(M1)=.5*VIN(M1)
38 CALL RFT(IM,U,1,U,1,3)
39 DO 6 I=1,MH
40 IN=2*I
41 6 VOU(IN+1)=U(IN)
42 DO 16 I=1,MH
43 IN=2*I
44 VIN(IN)=VOU(IN)
45 VOU(IN)=VOU(IN)+VOU(IN+1)
46 16 VOU(IN+1)=VIN(IN)-VOU(IN+1)
47 RETURN
48 100 DO 17 I=1,MH
49 IN=2*I
50 VOU(IN)=VIN(IN)
51 VIN(IN)=2.*(VIN(IN)+VIN(IN+1))
52 17 VIN(IN+1)=2.*(VOU(IN)-VIN(IN+1))
53 DO 7 I=1,MH
54 IN=2*I
55 7 U(IN)=VIN(IN)
56 CALL RFT(IM,U,1,U,1,6)
57 DO 8 I=1,MH
58 IN=2*I
59 8 VOU(IN)=U(IN)
60 DO 9 I=1,MD1
61 9 U(I)=0.
62 DO 10 I=1,MH
63 IN=2*I+1
64 10 U(IN-1)=VIN(IN)
65 CALL RFT(IM,U,1,U,1,6)
66 DO 11 I=1,MH
67 IN=2*I+1
68 11 VOU(IN)=U(IN)
69 RETURN
70 END