1 | # |
---|
2 | include header_Makefile |
---|
3 | # |
---|
4 | ##### User configurable options ##### |
---|
5 | # |
---|
6 | # CPP keys for model 1 (_M1) and for model 2 (_M2) |
---|
7 | # type of decomposition : |
---|
8 | # DECOMP_APPLE for 1D decomposition |
---|
9 | # DECOMP_BOX for 2D decomposition |
---|
10 | CPPKEYDECOMP_M1=DECOMP_APPLE |
---|
11 | CPPKEYDECOMP_M2=DECOMP_APPLE |
---|
12 | # |
---|
13 | ### End User configurable options ### |
---|
14 | # |
---|
15 | OBJ_M1 = routine_hdlerr.o read_all_data.o \ |
---|
16 | decomp_def.o gradient_bicubic.o \ |
---|
17 | function_ana.o distance_rad.o \ |
---|
18 | gradient_conserv.o |
---|
19 | OBJ_M2 = routine_hdlerr.o read_all_data.o \ |
---|
20 | decomp_def_m2.o function_ana.o \ |
---|
21 | write_all_fields.o |
---|
22 | #------------------------------------------------------------------------------- |
---|
23 | # General rules |
---|
24 | #------------------------------------------------------------------------------- |
---|
25 | # |
---|
26 | default: all |
---|
27 | # |
---|
28 | all: oasis3_psmile model1 model2 |
---|
29 | # |
---|
30 | # Compile and link libaries |
---|
31 | oasis3_psmile: |
---|
32 | (cd $(O3DIR)/util/make_dir ; $(MAKE) oasis3_psmile -f TopMakefileOasis3) |
---|
33 | # |
---|
34 | #------------------------------------------------------------------------------- |
---|
35 | # Rules for executables |
---|
36 | #------------------------------------------------------------------------------- |
---|
37 | # |
---|
38 | model1: $(OBJ_M1) model1.o $(LIBPSMILE) Makefile |
---|
39 | $(LD) $(LDFLAGS) -o $@ $(OBJ_M1) model1.o $(LIBPSMILE) $(FLIBS) $(NETCDF_LIBRARY) |
---|
40 | model2: $(OBJ_M2) model2.o $(LIBPSMILE) Makefile |
---|
41 | $(LD) $(LDFLAGS) -o $@ $(OBJ_M2) model2.o $(LIBPSMILE) $(FLIBS) $(NETCDF_LIBRARY) |
---|
42 | # |
---|
43 | #------------------------------------------------------------------------------- |
---|
44 | # Rules for compilation |
---|
45 | #------------------------------------------------------------------------------- |
---|
46 | # |
---|
47 | routine_hdlerr.o : routine_hdlerr.f90 |
---|
48 | $(F90) $(F90FLAGS) -c routine_hdlerr.f90 |
---|
49 | read_all_data.o : read_all_data.F90 |
---|
50 | $(F90) $(F90FLAGS) -c read_all_data.F90 |
---|
51 | write_all_fields.o : write_all_fields.F90 |
---|
52 | $(F90) $(F90FLAGS) -c write_all_fields.F90 |
---|
53 | function_ana.o : function_ana.f90 |
---|
54 | $(F90) $(F90FLAGS) -c function_ana.f90 |
---|
55 | decomp_def.o : decomp_def.F90 |
---|
56 | $(F90) $(F90FLAGS) -D${CPPKEYDECOMP_M1} -c decomp_def.F90 |
---|
57 | decomp_def_m2.o : decomp_def.F90 |
---|
58 | $(F90) $(F90FLAGS) -D${CPPKEYDECOMP_M2} -o decomp_def_m2.o -c decomp_def.F90 |
---|
59 | gradient_bicubic.o : gradient_bicubic.f90 |
---|
60 | $(F90) $(F90FLAGS) -c gradient_bicubic.f90 |
---|
61 | distance_rad.o : distance_rad.f90 |
---|
62 | $(F90) $(F90FLAGS) -c distance_rad.f90 |
---|
63 | gradient_conserv.o : gradient_conserv.f90 |
---|
64 | $(F90) $(F90FLAGS) -c gradient_conserv.f90 |
---|
65 | |
---|
66 | model1.o : model1.F90 Makefile |
---|
67 | $(F90) $(F90FLAGS) -D${CPPKEYDECOMP_M1} -c model1.F90 |
---|
68 | model2.o : model2.f90 Makefile |
---|
69 | $(F90) $(F90FLAGS) -D${CPPKEYDECOMP_M2} -c model2.f90 |
---|
70 | # |
---|
71 | #------------------------------------------------------------------------------- |
---|
72 | # Utilities |
---|
73 | #------------------------------------------------------------------------------- |
---|
74 | # |
---|
75 | help: |
---|
76 | more Make.help |
---|
77 | # |
---|
78 | # Clean directory |
---|
79 | # |
---|
80 | clean: |
---|
81 | -rm -f *.o *.mod *.MOD model1 model2 |
---|
82 | -rm -f i.*.F90 *.L |
---|
83 | -rm -f core core.* |
---|
84 | # |
---|
85 | # Make sure to recompile everything |
---|
86 | # |
---|
87 | realclean: clean remove |
---|
88 | remove: |
---|
89 | (cd $(O3DIR)/util/make_dir ; $(MAKE) realclean -f TopMakefileOasis3) |
---|