Skip to content

Commit a8f7ae8

Browse files
authored
Merge pull request #2 from fortran-fans/add_fpm_support
Add fpm support for fftapck with double precision
2 parents 030cbf4 + b3cbec3 commit a8f7ae8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+236
-89
lines changed

.gitignore

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
build*
2+
3+
# Compiled objects
4+
*.o
5+
*.a
6+
*.so
7+
*.x

Makefile

+16-89
Original file line numberDiff line numberDiff line change
@@ -1,96 +1,23 @@
1-
# Several changes made by HCP so this would build without trouble
2-
# on a Linux/g77 system.
3-
# (1) changed step to build library to use ar instead of update
4-
# (update must mean something different on someone elses Unix.)
5-
# (2) Added make clean step
6-
# (3) In test step, changed a.out to ./a.out for cautious folk who don't
7-
# have "." in their PATH.
8-
# (4) Change FFLAGS from -O to -O2 -funroll-loops
9-
# (5) Specify FC=gcc in case /usr/bin/f77 is not a link to g77
10-
# (as it won't be if you have f77reorder installed)
11-
# (6) Added targets shared and installshared to make and install a shared
12-
# version of the library. You need /usr/local/lib in /etc/ld.so.conf
13-
# for this to work
14-
# (7) Modified names for dble prec version
15-
LIB=dfftpack
1+
# Fortran fftpack Makefile
162

17-
# Use these lines for Linux/g77
18-
FC=g77
19-
FFLAGS=-O2 -funroll-loops -fexpensive-optimizations
3+
LIB = dfftpack
204

21-
# Use these lines for Solaris
22-
#FC=f77
23-
#FFLAGS=-fast -O5
5+
FC = gfortran
6+
FFLAGS = -O2
247

25-
OBJ=\
26-
zfftb.o\
27-
cfftb1.o\
28-
zfftf.o\
29-
cfftf1.o\
30-
zffti.o\
31-
cffti1.o\
32-
dcosqb.o\
33-
cosqb1.o\
34-
dcosqf.o\
35-
cosqf1.o\
36-
dcosqi.o\
37-
dcost.o\
38-
dcosti.o\
39-
ezfft1.o\
40-
dzfftb.o\
41-
dzfftf.o\
42-
dzffti.o\
43-
passb.o\
44-
passb2.o\
45-
passb3.o\
46-
passb4.o\
47-
passb5.o\
48-
passf.o\
49-
passf2.o\
50-
passf3.o\
51-
passf4.o\
52-
passf5.o\
53-
radb2.o\
54-
radb3.o\
55-
radb4.o\
56-
radb5.o\
57-
radbg.o\
58-
radf2.o\
59-
radf3.o\
60-
radf4.o\
61-
radf5.o\
62-
radfg.o\
63-
dfftb.o\
64-
rfftb1.o\
65-
dfftf.o\
66-
rfftf1.o\
67-
dffti.o\
68-
rffti1.o\
69-
dsinqb.o\
70-
dsinqf.o\
71-
dsinqi.o\
72-
dsint.o\
73-
sint1.o\
74-
dsinti.o
8+
export LIB
9+
export FC
10+
export FFLAGS
7511

76-
lib$(LIB).a: $(OBJ)
77-
ar -rcs lib$(LIB).a $(OBJ)
12+
.PHONY: all clean test
7813

79-
shared:$(OBJ)
80-
$(FC) -shared -o lib$(LIB).so $(OBJ)
14+
all:
15+
$(MAKE) -f Makefile --directory=src
16+
$(MAKE) -f Makefile --directory=test
8117

82-
install: lib$(LIB).a
83-
mv lib$(LIB).a /usr/local/lib
84-
rm *.o
18+
test:
19+
$(MAKE) -f Makefile --directory=test
8520

86-
installshared:lib$(LIB).so
87-
mv lib$(LIB).so /usr/local/lib
88-
rm *.o
89-
ldconfig
90-
91-
test: test.o
92-
$(FC) test.o -L./ -l$(LIB)
93-
time ./a.out
94-
95-
clean:
96-
rm -f -r *.o *.a *.so
21+
clean:
22+
$(MAKE) -f Makefile clean --directory=src
23+
$(MAKE) -f Makefile clean --directory=test

README.md

+31

doc/Makefile

+96
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
# Several changes made by HCP so this would build without trouble
2+
# on a Linux/g77 system.
3+
# (1) changed step to build library to use ar instead of update
4+
# (update must mean something different on someone elses Unix.)
5+
# (2) Added make clean step
6+
# (3) In test step, changed a.out to ./a.out for cautious folk who don't
7+
# have "." in their PATH.
8+
# (4) Change FFLAGS from -O to -O2 -funroll-loops
9+
# (5) Specify FC=gcc in case /usr/bin/f77 is not a link to g77
10+
# (as it won't be if you have f77reorder installed)
11+
# (6) Added targets shared and installshared to make and install a shared
12+
# version of the library. You need /usr/local/lib in /etc/ld.so.conf
13+
# for this to work
14+
# (7) Modified names for dble prec version
15+
LIB=dfftpack
16+
17+
# Use these lines for Linux/g77
18+
FC=g77
19+
FFLAGS=-O2 -funroll-loops -fexpensive-optimizations
20+
21+
# Use these lines for Solaris
22+
#FC=f77
23+
#FFLAGS=-fast -O5
24+
25+
OBJ=\
26+
zfftb.o\
27+
cfftb1.o\
28+
zfftf.o\
29+
cfftf1.o\
30+
zffti.o\
31+
cffti1.o\
32+
dcosqb.o\
33+
cosqb1.o\
34+
dcosqf.o\
35+
cosqf1.o\
36+
dcosqi.o\
37+
dcost.o\
38+
dcosti.o\
39+
ezfft1.o\
40+
dzfftb.o\
41+
dzfftf.o\
42+
dzffti.o\
43+
passb.o\
44+
passb2.o\
45+
passb3.o\
46+
passb4.o\
47+
passb5.o\
48+
passf.o\
49+
passf2.o\
50+
passf3.o\
51+
passf4.o\
52+
passf5.o\
53+
radb2.o\
54+
radb3.o\
55+
radb4.o\
56+
radb5.o\
57+
radbg.o\
58+
radf2.o\
59+
radf3.o\
60+
radf4.o\
61+
radf5.o\
62+
radfg.o\
63+
dfftb.o\
64+
rfftb1.o\
65+
dfftf.o\
66+
rfftf1.o\
67+
dffti.o\
68+
rffti1.o\
69+
dsinqb.o\
70+
dsinqf.o\
71+
dsinqi.o\
72+
dsint.o\
73+
sint1.o\
74+
dsinti.o
75+
76+
lib$(LIB).a: $(OBJ)
77+
ar -rcs lib$(LIB).a $(OBJ)
78+
79+
shared:$(OBJ)
80+
$(FC) -shared -o lib$(LIB).so $(OBJ)
81+
82+
install: lib$(LIB).a
83+
mv lib$(LIB).a /usr/local/lib
84+
rm *.o
85+
86+
installshared:lib$(LIB).so
87+
mv lib$(LIB).so /usr/local/lib
88+
rm *.o
89+
ldconfig
90+
91+
test: test.o
92+
$(FC) test.o -L./ -l$(LIB)
93+
time ./a.out
94+
95+
clean:
96+
rm -f -r *.o *.a *.so

README doc/README

File renamed without changes.

doc doc/doc

File renamed without changes.

doc.double doc/doc.double

File renamed without changes.

origMakefile doc/origMakefile

File renamed without changes.

fpm.toml

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
2+
name = "fftpack"
3+
description = "A package of fortran subprograms for the fast fourier transform of periodic and other symmetric sequences"
4+
homepage = "http://www.netlib.org/fftpack/"
5+
version = "4.0.0"
6+
license = "Public Domain"
7+
author = "Paul N. Swarztrauber"
8+
maintainer = "@fortran-lang"
9+
copyright = "Copyright 1985 National Center for Atmospheric Research, Boulder, CO"
10+
categories = ["Fast Fourier Transform"]
11+
keywords = ["netlib", "fftpack", "fft"]
12+
13+
[build]
14+
auto-executables = false
15+
auto-tests = false
16+
auto-examples = false
17+
18+
[[test]]
19+
name = "tstfft"
20+
source-dir = "test"
21+
main = "tstfft.f"

src/Makefile

+59
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
OBJ = \
2+
zfftb.o\
3+
cfftb1.o\
4+
zfftf.o\
5+
cfftf1.o\
6+
zffti.o\
7+
cffti1.o\
8+
dcosqb.o\
9+
cosqb1.o\
10+
dcosqf.o\
11+
cosqf1.o\
12+
dcosqi.o\
13+
dcost.o\
14+
dcosti.o\
15+
ezfft1.o\
16+
dzfftb.o\
17+
dzfftf.o\
18+
dzffti.o\
19+
passb.o\
20+
passb2.o\
21+
passb3.o\
22+
passb4.o\
23+
passb5.o\
24+
passf.o\
25+
passf2.o\
26+
passf3.o\
27+
passf4.o\
28+
passf5.o\
29+
radb2.o\
30+
radb3.o\
31+
radb4.o\
32+
radb5.o\
33+
radbg.o\
34+
radf2.o\
35+
radf3.o\
36+
radf4.o\
37+
radf5.o\
38+
radfg.o\
39+
dfftb.o\
40+
rfftb1.o\
41+
dfftf.o\
42+
rfftf1.o\
43+
dffti.o\
44+
rffti1.o\
45+
dsinqb.o\
46+
dsinqf.o\
47+
dsinqi.o\
48+
dsint.o\
49+
sint1.o\
50+
dsinti.o
51+
52+
lib$(LIB).a: $(OBJ)
53+
ar -rcs lib$(LIB).a $(OBJ)
54+
55+
shared: $(OBJ)
56+
$(FC) -shared -o lib$(LIB).so $(OBJ)
57+
58+
clean:
59+
rm -f -r *.o *.a *.so

cfftb1.f src/cfftb1.f

File renamed without changes.

cfftf1.f src/cfftf1.f

File renamed without changes.

cffti1.f src/cffti1.f

File renamed without changes.

cosqb1.f src/cosqb1.f

File renamed without changes.

cosqf1.f src/cosqf1.f

File renamed without changes.

dcosqb.f src/dcosqb.f

File renamed without changes.

dcosqf.f src/dcosqf.f

File renamed without changes.

dcosqi.f src/dcosqi.f

File renamed without changes.

dcost.f src/dcost.f

File renamed without changes.

dcosti.f src/dcosti.f

File renamed without changes.

dfftb.f src/dfftb.f

File renamed without changes.

dfftf.f src/dfftf.f

File renamed without changes.

dffti.f src/dffti.f

File renamed without changes.

dsinqb.f src/dsinqb.f

File renamed without changes.

dsinqf.f src/dsinqf.f

File renamed without changes.

dsinqi.f src/dsinqi.f

File renamed without changes.

dsint.f src/dsint.f

File renamed without changes.

dsinti.f src/dsinti.f

File renamed without changes.

dzfftb.f src/dzfftb.f

File renamed without changes.

dzfftf.f src/dzfftf.f

File renamed without changes.

dzffti.f src/dzffti.f

File renamed without changes.

ezfft1.f src/ezfft1.f

File renamed without changes.

passb.f src/passb.f

File renamed without changes.

passb2.f src/passb2.f

File renamed without changes.

passb3.f src/passb3.f

File renamed without changes.

passb4.f src/passb4.f

File renamed without changes.

passb5.f src/passb5.f

File renamed without changes.

passf.f src/passf.f

File renamed without changes.

passf2.f src/passf2.f

File renamed without changes.

passf3.f src/passf3.f

File renamed without changes.

passf4.f src/passf4.f

File renamed without changes.

passf5.f src/passf5.f

File renamed without changes.

radb2.f src/radb2.f

File renamed without changes.

radb3.f src/radb3.f

File renamed without changes.

radb4.f src/radb4.f

File renamed without changes.

radb5.f src/radb5.f

File renamed without changes.

radbg.f src/radbg.f

File renamed without changes.

radf2.f src/radf2.f

File renamed without changes.

radf3.f src/radf3.f

File renamed without changes.

radf4.f src/radf4.f

File renamed without changes.

radf5.f src/radf5.f

File renamed without changes.

radfg.f src/radfg.f

File renamed without changes.

rfftb1.f src/rfftb1.f

File renamed without changes.

rfftf1.f src/rfftf1.f

File renamed without changes.

rffti1.f src/rffti1.f

File renamed without changes.

sint1.f src/sint1.f

File renamed without changes.

zfftb.f src/zfftb.f

File renamed without changes.

zfftf.f src/zfftf.f

File renamed without changes.

zffti.f src/zffti.f

File renamed without changes.

test/Makefile

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
tstfft: tstfft.o
2+
$(FC) tstfft.o -L../src -l$(LIB) -o a.x
3+
time ./a.x
4+
5+
clean:
6+
rm -f -r *.o *.x

test.f test/tstfft.f

File renamed without changes.

0 commit comments

Comments
 (0)