forked from AshrayMohit/Chaostreams_NERS570F23
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
85 lines (58 loc) · 2.5 KB
/
Copy pathMakefile
File metadata and controls
85 lines (58 loc) · 2.5 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
FC = mpif90
FLAGS = -fallow-argument-mismatch -O3 -ffast-math -march=native -fopenmp
SRC_DIR = ./src
OBJ_DIR = ./obj
BIN_DIR = ./bin
OUT_DIR = ./outs
EXAMPLES_DIR = ./examples/
MODULE_SOURCES = $(SRC_DIR)/particle_class.f90
MODULE_OBJECTS = $(MODULE_SOURCES:$(SRC_DIR)/%.f90=$(OBJ_DIR)/%.o)
SOURCES = $(filter-out $(MODULE_SOURCES), $(wildcard $(SRC_DIR)/*.f90))
OBJECTS = $(SOURCES:$(SRC_DIR)/%.f90=$(OBJ_DIR)/%.o)
directories:
@mkdir -p $(BIN_DIR)
@mkdir -p $(OBJ_DIR)
@mkdir -p $(OUT_DIR)
mpi: directories $(BIN_DIR)/program_mpi
$(BIN_DIR)/program_mpi: $(EXAMPLES_DIR)/example_mpi.f90 $(MODULE_OBJECTS) $(OBJECTS)
$(FC) $(FLAGS) -I$(OBJ_DIR) -o $@ $^
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.f90
$(FC) $(FLAGS) -J$(OBJ_DIR) -c $< -o $@
mpigrid: directories $(BIN_DIR)/program_mpigrid
$(BIN_DIR)/program_mpigrid: $(EXAMPLES_DIR)/example_mpigrid.f90 $(MODULE_OBJECTS) $(OBJECTS)
$(FC) $(FLAGS) -I$(OBJ_DIR) -o $@ $^
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.f90
$(FC) $(FLAGS) -J$(OBJ_DIR) -c $< -o $@
grid: directories $(BIN_DIR)/program_grid
$(BIN_DIR)/program_grid: $(EXAMPLES_DIR)/example_grid.f90 $(MODULE_OBJECTS) $(OBJECTS)
$(FC) $(FLAGS) -I$(OBJ_DIR) -o $@ $^
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.f90
$(FC) $(FLAGS) -J$(OBJ_DIR) -c $< -o $@
omp: directories $(BIN_DIR)/program_omp
$(BIN_DIR)/program_omp: $(EXAMPLES_DIR)/example_omp.f90 $(MODULE_OBJECTS) $(OBJECTS)
$(FC) $(FLAGS) -I$(OBJ_DIR) -o $@ $^
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.f90
$(FC) $(FLAGS) -J$(OBJ_DIR) -c $< -o $@
tt: directories $(BIN_DIR)/program_twotime
$(BIN_DIR)/program_twotime: $(EXAMPLES_DIR)/twotime_mpi.f90 $(MODULE_OBJECTS) $(OBJECTS)
$(FC) $(FLAGS) -I$(OBJ_DIR) -o $@ $^
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.f90
$(FC) $(FLAGS) -J$(OBJ_DIR) -c $< -o $@
dtime: directories $(BIN_DIR)/program_dtime
$(BIN_DIR)/program_dtime: $(EXAMPLES_DIR)/D_time.f90 $(MODULE_OBJECTS) $(OBJECTS)
$(FC) $(FLAGS) -I$(OBJ_DIR) -o $@ $^
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.f90
$(FC) $(FLAGS) -J$(OBJ_DIR) -c $< -o $@
mtime: directories $(BIN_DIR)/program_mtime
$(BIN_DIR)/program_mtime: $(EXAMPLES_DIR)/multitime.f90 $(MODULE_OBJECTS) $(OBJECTS)
$(FC) $(FLAGS) -I$(OBJ_DIR) -o $@ $^
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.f90
$(FC) $(FLAGS) -J$(OBJ_DIR) -c $< -o $@
infer: directories $(BIN_DIR)/program_infer
$(BIN_DIR)/program_infer: $(EXAMPLES_DIR)/inference.f90 $(MODULE_OBJECTS) $(OBJECTS)
$(FC) $(FLAGS) -I$(OBJ_DIR) -o $@ $^
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.f90
$(FC) $(FLAGS) -J$(OBJ_DIR) -c $< -o $@
.SILENT: clean
clean:
$(RM) $(OBJ_DIR)/*.o $(OBJ_DIR)/*.mod $(BIN_DIR)/program*