-
Notifications
You must be signed in to change notification settings - Fork 5
/
Makefile.noMPI
38 lines (33 loc) · 1.37 KB
/
Makefile.noMPI
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# Makefile for non-MPI compiler (ifort, gfortran, nvfortran (pgfortran))
F90 = ifort -DnoMPI
LIB = -mkl=parallel
OPT = -qopenmp -i8 -xHOST
#gfortran F90 = gfortran -DnoMPI
#gfortran LIB = -llapack -lblas # high performance libraries are recommended
#gfortran OPT = -fopenmp -fdefault-integer-8 -O3 # -fallow-argument-mismatch # for gfortran 10
#nvfortran F90 = nvfortran -DnoMPI
#nvfortran LIB = -llapack -lblas
#nvfortran OPT = -mp -i8 -O3
SRC = basis.F90 geom.F90 guess.F90 fileio.F90 int1.F90 machine.F90 main.F90 math.F90 \
memory.F90 scf.F90 scflib.F90 int2.F90 int2elec.F90 int2sp.F90 int2spd1.F90 \
int2spd2.F90 int2spd3.F90 int2spd4.F90 gradient.F90 rysquad.F90 \
dft.F90 dftfunc.F90 lebedev.F90 mp2.F90 mp2grad.F90 grad1.F90 grad2.F90 ecp.F90 \
ecpfunc.F90 ecpder.F90 parallel.F90 start.F90 prop.F90
MOD = module.F90 modulefmt.F90 modulerys.F90
OBJ = $(addprefix obj/,$(SRC:.F90=.o))
OBJM= $(addprefix obj/,$(MOD:.F90=.o))
OBJS= $(OBJM) $(OBJ)
OBJDIR= obj
.SUFFIXES:
.SUFFIXES: .F .F90 .o
smash : $(OBJS)
$(F90) -o bin/smash $(OPT) $(OBJS) $(LIB)
#gfortran $(F90) -o bin/smash -I $(OBJDIR) $(OPT) $(OBJS) $(LIB)
smash.a : $(OBJS)
ar rv obj/smash.a $(subst obj/start.o,,$(OBJS))
$(OBJDIR)/%.o : src/%.F90
$(F90) $(OPT) -module $(OBJDIR) -o $@ -c $<
#gfortran $(F90) $(OPT) -J$(OBJDIR) -o $@ -c $<
$(OBJ): $(addprefix src/,$(MOD))
clean :
rm -f $(OBJDIR)/* bin/smash