]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.1.1.1 1996/04/01 15:02:18 mclareni | |
6 | * Mathlib gen | |
7 | * | |
8 | * | |
9 | #include "gen/pilot.h" | |
10 | SUBROUTINE ELANAL (MP,N,IBCX,POT,POTW,POTE,POTS,POTN) | |
11 | COMMON/FW1/W1(774)/FW2/W2(100) | |
12 | DIMENSION POT(MP,N) | |
13 | DIMENSION POTW(N),POTE(N),POTS(MP),POTN(MP) | |
14 | M=MP-1 | |
15 | MD=MP+M | |
16 | AX=(1./LOG10(2.))+.01 | |
17 | XM=M | |
18 | AM=AX*LOG10(XM) | |
19 | IM=INT(AM) | |
20 | IF(IBCX.EQ.4) GO TO 400 | |
21 | C THE RFT ROUTINE IS A MODIFIED | |
22 | C VERSION OF HOCKNEY FAST FOURIER | |
23 | C TRANSFORM PACKAGE AND CORRESPONDS TO | |
24 | C ISELIN LIBRARY PROGRAM D 700 | |
25 | C | |
26 | CALL RFT(IM,POTS,1,W1(2*MP+1),1,IBCX) | |
27 | CALL RFT(IM,POTN,1,W1(3*MP+1),1,IBCX) | |
28 | DO 1 J=1,N | |
29 | 1 CALL RFT(IM,POT(1,J),1,POT(1,J),1,IBCX) | |
30 | RETURN | |
31 | C | |
32 | C THE MFT ROUTINE IS USED FOR | |
33 | C THE FOURTH TYPE OF BOUNDARY | |
34 | C CONDITION ALONG X | |
35 | C | |
36 | 400 CALL MFT(MP,MD,POTS,W1(2*MP+1),W1(4*MP+1),1) | |
37 | CALL MFT(MP,MD,POTN,W1(3*MP+1),W1(4*MP+1),1) | |
38 | C | |
39 | DO 2 J=1,N | |
40 | DO 3 I=1,MP | |
41 | 3 W1(I)=POT(I,J) | |
42 | C | |
43 | CALL MFT(MP,MD,W1,W1(MP+1),W1(4*MP+1),1) | |
44 | C | |
45 | DO 4 I=1,MP | |
46 | 4 POT(I,J)=W1(I+MP) | |
47 | 2 CONTINUE | |
48 | RETURN | |
49 | END |