/[lmdze]/trunk/GNUmakefile
ViewVC logotype

Annotation of /trunk/GNUmakefile

Parent Directory Parent Directory | Revision Log Revision Log


Revision 266 - (hide annotations)
Thu Apr 19 17:54:55 2018 UTC (6 years, 1 month ago) by guez
File size: 2545 byte(s)
Define macros of the preprocessor CPP_IIM, CPP_JJM, CPP_LLM so we can
control the resolution from the compilation command, and automate
compilation for several resolutions.

In module yoethf_m, transform variables into named constants. So we do
not need procedure yoethf any longer.

Bug fix in program test_inter_barxy, missing calls to fyhyp and fxhyp,
and definition of rlatu.

Remove variable iecri of module conf_gcm_m. The files dyn_hist*.nc are
written every time step. We are simplifying the output system, pending
replacement by a whole new system.

Modify possible value of vert_sampling from "param" to
"strato_custom", following LMDZ. Default values of corresponding
namelist variables are now the values used for LMDZ CMIP6.

1 guez 69 # This is a makefile for GNU make.
2 guez 3
3 guez 61 # This makefile builds LMDZE.
4    
5 guez 62 # 1. Source files
6    
7 guez 97 makefile_dir = .
8 guez 3
9 guez 255 VPATH := ${makefile_dir} $(addprefix ${makefile_dir}/, $(shell cat ${makefile_dir}/directories))
10 guez 3
11 guez 123 src_ce0l := $(shell cat ${makefile_dir}/src_ce0l)
12     src_gcm := $(shell cat ${makefile_dir}/src_gcm)
13 guez 131 src_test_ozonecm := $(shell cat ${makefile_dir}/src_test_ozonecm)
14     src_test_inter_barxy := $(shell cat ${makefile_dir}/src_test_inter_barxy)
15     src_test_fxhyp := $(shell cat ${makefile_dir}/src_test_fxhyp)
16 guez 167 src_test_inifilr := $(shell cat ${makefile_dir}/src_test_inifilr)
17 guez 3
18 guez 167 sources := $(sort ${src_ce0l} ${src_gcm} ${src_test_ozonecm} ${src_test_inter_barxy} ${src_test_fxhyp} ${src_test_inifilr})
19 guez 123
20 guez 266 cpp_macros = CPP_IIM=16,CPP_JJM=12,CPP_LLM=79
21 guez 207 lib_list = numer_rec_95 jumble nr_util netcdf95 netcdff
22    
23 guez 79 # 2. Objects and executable files
24 guez 71
25 guez 266 obj_ce0l := $(addsuffix .o, $(basename ${src_ce0l}))
26     obj_gcm := $(addsuffix .o, $(basename ${src_gcm}))
27     obj_test_ozonecm := $(addsuffix .o, $(basename ${src_test_ozonecm}))
28     obj_test_inter_barxy := $(addsuffix .o, $(basename ${src_test_inter_barxy}))
29     obj_test_fxhyp := $(addsuffix .o, $(basename ${src_test_fxhyp}))
30     obj_test_inifilr := $(addsuffix .o, $(basename ${src_test_inifilr}))
31     objects := $(addsuffix .o, $(basename ${sources}))
32 guez 167 execut = ce0l gcm test_ozonecm test_inter_barxy test_fxhyp test_inifilr
33 guez 62
34 guez 69 # 3. Compiler-dependent part
35 guez 70
36 guez 69 mode = debug
37 guez 208 include ${general_compiler_options_dir}/${FC}_${mode}.mk
38 guez 3
39 guez 62 # 4. Rules
40    
41 guez 69 SHELL = bash
42 guez 138 LINK.o = $(FC) $(LDFLAGS) $(TARGET_ARCH)
43 guez 266
44     %.o: %.f
45     @echo "Building $@..."
46     @$(COMPILE.f) $(OUTPUT_OPTION) $<
47    
48     %: %.o
49     @echo "Linking $@..."
50     @$(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -o $@
51    
52 guez 78 .DELETE_ON_ERROR:
53 guez 69 .PHONY: all clean clobber depend
54 guez 79 all: ${execut} log
55 guez 70 ce0l: ${obj_ce0l}
56 guez 3 gcm: ${obj_gcm}
57 guez 123 test_ozonecm: ${obj_test_ozonecm}
58     test_inter_barxy: ${obj_test_inter_barxy}
59     test_fxhyp: ${obj_test_fxhyp}
60 guez 167 test_inifilr: ${obj_test_inifilr}
61 guez 3
62 guez 97 depend ${makefile_dir}/depend.mk:
63     makedepf90 -free -Wmissing -Wconfused $(addprefix -I, ${VPATH}) -nosrc $(addprefix -u , netcdf numer_rec_95 netcdf95 nr_util jumble) ${sources} >${makefile_dir}/depend.mk
64 guez 61
65 guez 94 TAGS: ${sources}
66     ctags -e --language-force=fortran $^
67 guez 3
68     clean:
69 guez 79 rm -f ${execut} ${objects} log
70 guez 3
71     clobber: clean
72 guez 97 rm -f *.mod ${makefile_dir}/depend.mk TAGS
73 guez 3
74 guez 79 log:
75     hostname >$@
76     ${FC} ${version_flag} >>$@ 2>&1
77 guez 266 @echo -e "\nFC = ${FC}\n\nFFLAGS = ${FFLAGS}\n\nLDLIBS = ${LDLIBS}\n\nLDFLAGS = ${LDFLAGS}" >>$@
78 guez 62
79 guez 90 ifeq ($(findstring $(MAKECMDGOALS), clobber depend),)
80 guez 97 include ${makefile_dir}/depend.mk
81 guez 78 endif
82 guez 3
83     -include grep.mk
84 guez 7 -include nag_rules.mk

  ViewVC Help
Powered by ViewVC 1.1.21