-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmakefile
More file actions
145 lines (110 loc) · 5.09 KB
/
makefile
File metadata and controls
145 lines (110 loc) · 5.09 KB
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# Start of the makefile
# Defining variables
FC = gfortran
# FC = ifort
CPFLAGS =
CPFLAGS += -Dno_intr_findloc # need to use in cluster
# CPFLAGS += -Dshow_PSDiter # showing iteration process during PSD calculation
# CPFLAGS += -Dparallel_ON # testing parallelization
# CPFLAGS += -Dnpar_in=8 # number of threads for parallelization
# CPFLAGS += -Dnpar_in=1 # number of threads for parallelization
CPFLAGS += -Dparpsd_chk # checking parallelization results
# CPFLAGS += -Dksld_chk # checking rate consts for sld species
# CPFLAGS += -Dredox_eq # assume equilibrium for redox reactions
CPFLAGS += -DolddustPSD # using old PSD for dust (not user input but prescribed one)
# CPFLAGS += -Derrmtx_printout #
CPFLAGS += -Dmod_basalt_cmp # using basalt composition defined in <basalt_define.h>
# CPFLAGS += -Ddef_flx_save_alltime # flux reported each integration (costs lots of bites)
# CPFLAGS += -Dfull_flux_report # output all cumulative flux
# CPFLAGS += -Ddisp_lim # limiting the display of results
# CPFLAGS += -Ddiss_only # not allowing precipitation of minerals
# CPFLAGS += -Dlim_minsld # limiting mineral lowest conc.
# CPFLAGS += -Dporoiter # do iteration for porosity
# CPFLAGS += -Dcalcw_full # fully coupled w calcuation
# CPFLAGS += -Ddispiter # showing PSD flux in each iteration
# CPFLAGS += -DdispPSDiter # showing PSD flux in each iteration
# CPFLAGS += -Dcalcporo_full # fully coupled poro calcuation
# CPFLAGS += -Diwtypein=0 # uplift type 0--cnst w, 1-- cnst poro*w, 2-- cnst (1-poro)*w, 3--- w-flexible, if not defined 0 is taken
ifeq ($(FC),gfortran)
# CFLAGS = -fcheck=all -g -O3
# CFLAGS = -Wall -O3 -g -fcheck=all -ffpe-trap=invalid,zero,overflow -fbacktrace
# CFLAGS = -Wall -O3 -g -fcheck=all -fbacktrace
CFLAGS = -fimplicit-none -Wall -Wline-truncation -Wcharacter-truncation -Wsurprising \
-Waliasing -Wimplicit-interface -Wunused-parameter -fwhole-file -fcheck=all -std=gnu -pedantic -fbacktrace -O3
endif
ifeq ($(FC),ifort)
CFLAGS = -O3 -heap-arrays -g -traceback -check bounds -fp-stack-check -gen-interfaces -warn interfaces -check arg_temp_created
endif
# LDFLAGS = -L/usr/local/lib
LDFLAGS =
LIBS = -lopenblas
ifneq (,$(findstring -Dmod_basalt_cmp,$(CPFLAGS)))
# Found -Dmod_basalt_cmp
INC = -I/home/jovyan/SCEPTER/data
else
# Not found
INC =
endif
ifneq (,$(findstring -Dparallel_ON,$(CPFLAGS)))
# Found -Dparallel_ON
CFLAGS += -fopenmp
else
# Not found
endif
OBJS = scepter.o
SRC = scepter.f90
PROGRAM = scepter
# - TK added to handle alternative scepter.f90 files -----------------------
OBJS_A = scepter_rateA.o
SRC_A = scepter_rateA.f90
PROGRAM_A = scepter_rateA
rateA: $(PROGRAM_A)
$(PROGRAM_A): $(OBJS_A)
$(FC) $(OBJS_A) -o $(PROGRAM_A) -cpp $(CPFLAGS) $(CFLAGS) $(LIBS) $(LDFLAGS) $(INC)
$(OBJS_A): $(SRC_A)
$(FC) $(SRC_A) -c -cpp $(CPFLAGS) $(CFLAGS) $(LIBS) $(LDFLAGS) $(INC)
# ---
OBJS_B = scepter_rateB.o
SRC_B = scepter_rateB.f90
PROGRAM_B = scepter_rateB
rateB: $(PROGRAM_B)
$(PROGRAM_B): $(OBJS_B)
$(FC) $(OBJS_B) -o $(PROGRAM_B) -cpp $(CPFLAGS) $(CFLAGS) $(LIBS) $(LDFLAGS) $(INC)
$(OBJS_B): $(SRC_B)
$(FC) $(SRC_B) -c -cpp $(CPFLAGS) $(CFLAGS) $(LIBS) $(LDFLAGS) $(INC)
# ---
OBJS_C = scepter_rateC.o
SRC_C = scepter_rateC.f90
PROGRAM_C = scepter_rateC
rateC: $(PROGRAM_C)
$(PROGRAM_C): $(OBJS_C)
$(FC) $(OBJS_C) -o $(PROGRAM_C) -cpp $(CPFLAGS) $(CFLAGS) $(LIBS) $(LDFLAGS) $(INC)
$(OBJS_C): $(SRC_C)
$(FC) $(SRC_C) -c -cpp $(CPFLAGS) $(CFLAGS) $(LIBS) $(LDFLAGS) $(INC)
# ---
OBJS_D = scepter_rateD.o
SRC_D = scepter_rateD.f90
PROGRAM_D = scepter_rateD
rateD: $(PROGRAM_D)
$(PROGRAM_D): $(OBJS_D)
$(FC) $(OBJS_D) -o $(PROGRAM_D) -cpp $(CPFLAGS) $(CFLAGS) $(LIBS) $(LDFLAGS) $(INC)
$(OBJS_D): $(SRC_D)
$(FC) $(SRC_D) -c -cpp $(CPFLAGS) $(CFLAGS) $(LIBS) $(LDFLAGS) $(INC)
# ---
OBJS_RICHARDS = scepter_richards.o
SRC_RICHARDS = scepter_richards.f90
PROGRAM_RICHARDS = scepter_richards
richards: $(PROGRAM_RICHARDS)
$(PROGRAM_RICHARDS): $(OBJS_RICHARDS)
$(FC) $(OBJS_RICHARDS) -o $(PROGRAM_RICHARDS) -cpp $(CPFLAGS) $(CFLAGS) $(LIBS) $(LDFLAGS) $(INC)
$(OBJS_RICHARDS): $(SRC_RICHARDS)
$(FC) $(SRC_RICHARDS) -c -cpp $(CPFLAGS) $(CFLAGS) $(LIBS) $(LDFLAGS) $(INC)
# --------------------------------------------------------------------------
all: $(PROGRAM)
$(PROGRAM): $(OBJS)
$(FC) $(OBJS) -o $(PROGRAM) -cpp $(CPFLAGS) $(CFLAGS) $(LIBS) $(LDFLAGS) $(INC)
$(OBJS): $(SRC)
$(FC) $(SRC) -c -cpp $(CPFLAGS) $(CFLAGS) $(LIBS) $(LDFLAGS) $(INC)
clean:; rm -f *.o *~ $(PROGRAM) $(PROGRAM_A) $(PROGRAM_B) $(PROGRAM_C) $(PROGRAM_D) $(PROGRAM_RICHARDS)
blank:; truncate -s 0 *.out
cleanall:; rm -f *.o *.out *~ $(PROGRAM) $(PROGRAM_A) $(PROGRAM_B) $(PROGRAM_C) $(PROGRAM_D) $(PROGRAM_RICHARDS)