V3FIT
Main Page
Related Pages
Modules
Modules List
Module Members
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions/Subroutines
a
b
c
d
e
f
g
h
i
l
m
o
p
r
s
t
u
v
w
y
Variables
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Data Types List
Data Types List
Data Types
Class Hierarchy
Data Fields
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
y
z
~
Functions/Subroutines
a
b
c
d
e
f
g
i
l
m
n
p
r
s
t
u
v
x
y
~
Variables
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
y
z
Files
File List
File Members
All
b
c
g
i
l
m
n
p
t
v
w
Functions/Subroutines
b
c
g
i
m
p
t
v
w
Variables
Enumerations
Macros
•
All
Classes
Namespaces
Files
Functions
Variables
Enumerations
Macros
Pages
LIBSTELL
Sources
FFTpack
fact.f90
1
SUBROUTINE
fact_g(n, ifax)
2
USE
stel_kinds
3
IMPLICIT NONE
4
!-----------------------------------------------
5
! D u m m y A r g u m e n t s
6
!-----------------------------------------------
7
INTEGER
n
8
INTEGER
,
DIMENSION(13)
:: ifax
9
#if
!defined(CRAY) || defined(LONESTAR) || defined(MCURIE)
10
!-----------------------------------------------
11
! L o c a l V a r i a b l e s
12
!-----------------------------------------------
13
INTEGER
:: nn, k, l, MAX, inc
14
!-----------------------------------------------
15
! factorization routine that first extracts ALL factors of 4
16
IF
(n.gt.1)
GOTO
10
17
ifax(1) = 0
18
IF
(n.lt.1) ifax(1) = -99
19
RETURN
20
10 nn=n
21
k=1
22
! test for factors of 4
23
20
IF
(mod(nn,4).ne.0)
GOTO
30
24
k=k+1
25
ifax(k)=4
26
nn=nn/4
27
IF
(nn.eq.1)
GOTO
80
28
GOTO
20
29
! test for extra factor of 2
30
30
IF
(mod(nn,2).ne.0)
GOTO
40
31
k=k+1
32
ifax(k)=2
33
nn=nn/2
34
IF
(nn.eq.1)
GOTO
80
35
! test for factors of 3
36
40
IF
(mod(nn,3).ne.0)
GOTO
50
37
k=k+1
38
ifax(k)=3
39
nn=nn/3
40
IF
(nn.eq.1)
GOTO
80
41
GOTO
40
42
! now find remaining factors
43
50 l=5
44
max = sqrt(real(nn,rprec))
45
inc=2
46
! inc alternately takes on values 2 and 4
47
60
IF
(mod(nn,l).ne.0)
GOTO
70
48
k=k+1
49
ifax(k)=l
50
nn=nn/l
51
IF
(nn.eq.1)
GOTO
80
52
GOTO
60
53
70
IF
(l.gt.max)
GOTO
75
54
l=l+inc
55
inc=6-inc
56
GOTO
60
57
75 k = k+1
58
ifax(k) = nn
59
80 ifax(1)=k-1
60
! ifax(1) now CONTAINS number of factors
61
#else
62
CALL
fact (n, ifax)
63
#endif
64
END SUBROUTINE
fact_g
Generated on Thu Mar 5 2020 15:49:23 for V3FIT by
1.8.17