1 # Top level Makefile for wrf system
9 @ echo Please compile the code using .
/compile
11 include .
/configure.wrf
13 EM_MODULE_DIR
= -I..
/dyn_em
14 EM_MODULES
= $(EM_MODULE_DIR
)
17 #### 3.d. add macros to specify the modules for this core
19 #EXP_MODULE_DIR = -I../dyn_exp
20 #EXP_MODULES = $(EXP_MODULE_DIR)
23 NMM_MODULE_DIR
= -I..
/dyn_nmm
24 NMM_MODULES
= $(NMM_MODULE_DIR
)
33 @if
[ "$(A2DCASE)" -a
"$(DMPARALLEL)" ] ; then \
34 echo
"------------------------------------------------------------------------------" ; \
35 echo
"WRF CONFIGURATION ERROR " ; \
36 echo
"The $(A2DCASE) case cannot be used on distributed memory parallel systems." ; \
37 echo
"Only 3D WRF cases will run on these systems." ; \
38 echo
"Please chose a different case or rerun configure and chose a different option." ; \
39 echo
"------------------------------------------------------------------------------" ; \
43 framework_only
: configcheck
44 $(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" ext
45 $(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" toolsdir
46 /bin
/rm -f main
/libwrflib.a
47 $(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" framework
48 $(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" shared
51 $(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" physics
52 if
[ $(WRF_CHEM
) -eq
1 ] ; then
$(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" chemics
; fi
53 if
[ $(WRF_EM_CORE
) -eq
1 ] ; then
$(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" em_core
; fi
54 if
[ $(WRF_NMM_CORE
) -eq
1 ] ; then
$(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" nmm_core
; fi
55 if
[ $(WRF_EXP_CORE
) -eq
1 ] ; then
$(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" exp_core
; fi
56 ( cd main
; $(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" SOLVER
=em em_wrf
)
57 ( cd run
; /bin
/rm -f wrf.exe
; ln
-s ..
/main
/wrf.exe .
)
58 if
[ $(ESMF_COUPLING
) -eq
1 ] ; then \
59 ( cd main
; $(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" SOLVER
=em em_wrf_ESMFApp
) ; \
62 ### 3.a. rules to build the framework and then the experimental core
65 $(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" ext
66 $(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" toolsdir
67 $(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" framework
68 $(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" shared
69 ( cd main
; $(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" SOLVER
=exp exp_wrf
)
75 # Eulerian mass coordinate initializations
78 @ echo
'--------------------------------------'
79 ( cd main
; $(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" SOLVER
=em IDEAL_CASE
=quarter_ss em_ideal
)
80 ( cd
test/em_quarter_ss
; /bin
/rm -f wrf.exe
; ln
-s ..
/..
/main
/wrf.exe .
)
81 ( cd
test/em_quarter_ss
; /bin
/rm -f ideal.exe
; ln
-s ..
/..
/main
/ideal.exe .
)
82 ( cd
test/em_quarter_ss
; /bin
/rm -f README.namelist
; ln
-s ..
/..
/run
/README.namelist .
)
83 ( cd
test/em_quarter_ss
; /bin
/rm -f gribmap.txt
; ln
-s ..
/..
/run
/gribmap.txt .
)
84 ( cd
test/em_quarter_ss
; /bin
/rm -f grib2map.tbl
; ln
-s ..
/..
/run
/grib2map.tbl .
)
85 ( cd run
; /bin
/rm -f ideal.exe
; ln
-s ..
/main
/ideal.exe .
)
86 ( cd run
; if
test -f namelist.input
; then \
87 /bin
/cp
-f namelist.input namelist.input.backup
; fi
; \
88 /bin
/rm -f namelist.input
; ln
-s ..
/test/em_quarter_ss
/namelist.input .
)
89 ( cd run
; /bin
/rm -f input_sounding
; ln
-s ..
/test/em_quarter_ss
/input_sounding .
)
92 @ echo
'--------------------------------------'
93 ( cd main
; $(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" SOLVER
=em IDEAL_CASE
=squall2d_x em_ideal
)
94 ( cd
test/em_squall2d_x
; /bin
/rm -f wrf.exe
; ln
-s ..
/..
/main
/wrf.exe .
)
95 ( cd
test/em_squall2d_x
; /bin
/rm -f ideal.exe
; ln
-s ..
/..
/main
/ideal.exe .
)
96 ( cd
test/em_squall2d_x
; /bin
/rm -f README.namelist
; ln
-s ..
/..
/run
/README.namelist .
)
97 ( cd
test/em_squall2d_x
; /bin
/rm -f gribmap.txt
; ln
-s ..
/..
/run
/gribmap.txt .
)
98 ( cd
test/em_squall2d_x
; /bin
/rm -f grib2map.tbl
; ln
-s ..
/..
/run
/grib2map.tbl .
)
99 ( cd run
; /bin
/rm -f ideal.exe
; ln
-s ..
/main
/ideal.exe .
)
100 ( cd run
; if
test -f namelist.input
; then \
101 /bin
/cp
-f namelist.input namelist.input.backup
; fi
; \
102 /bin
/rm -f namelist.input
; ln
-s ..
/test/em_squall2d_x
/namelist.input .
)
103 ( cd run
; /bin
/rm -f input_sounding
; ln
-s ..
/test/em_squall2d_x
/input_sounding .
)
106 @ echo
'--------------------------------------'
107 ( cd main
; $(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" SOLVER
=em IDEAL_CASE
=squall2d_y em_ideal
)
108 ( cd
test/em_squall2d_y
; /bin
/rm -f wrf.exe
; ln
-s ..
/..
/main
/wrf.exe .
)
109 ( cd
test/em_squall2d_y
; /bin
/rm -f ideal.exe
; ln
-s ..
/..
/main
/ideal.exe .
)
110 ( cd
test/em_squall2d_y
; /bin
/rm -f README.namelist
; ln
-s ..
/..
/run
/README.namelist .
)
111 ( cd
test/em_squall2d_y
; /bin
/rm -f gribmap.txt
; ln
-s ..
/..
/run
/gribmap.txt .
)
112 ( cd
test/em_squall2d_y
; /bin
/rm -f grib2map.tbl
; ln
-s ..
/..
/run
/grib2map.tbl .
)
113 ( cd run
; /bin
/rm -f ideal.exe
; ln
-s ..
/main
/ideal.exe .
)
114 ( cd run
; if
test -f namelist.input
; then \
115 /bin
/cp
-f namelist.input namelist.input.backup
; fi
; \
116 /bin
/rm -f namelist.input
; ln
-s ..
/test/em_squall2d_y
/namelist.input .
)
117 ( cd run
; /bin
/rm -f input_sounding
; ln
-s ..
/test/em_squall2d_y
/input_sounding .
)
120 @ echo
'--------------------------------------'
121 ( cd main
; $(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" SOLVER
=em IDEAL_CASE
=b_wave em_ideal
)
122 ( cd
test/em_b_wave
; /bin
/rm -f wrf.exe
; ln
-s ..
/..
/main
/wrf.exe .
)
123 ( cd
test/em_b_wave
; /bin
/rm -f ideal.exe
; ln
-s ..
/..
/main
/ideal.exe .
)
124 ( cd
test/em_b_wave
; /bin
/rm -f README.namelist
; ln
-s ..
/..
/run
/README.namelist .
)
125 ( cd
test/em_b_wave
; /bin
/rm -f gribmap.txt
; ln
-s ..
/..
/run
/gribmap.txt .
)
126 ( cd
test/em_b_wave
; /bin
/rm -f grib2map.tbl
; ln
-s ..
/..
/run
/grib2map.tbl .
)
127 ( cd run
; /bin
/rm -f ideal.exe
; ln
-s ..
/main
/ideal.exe .
)
128 ( cd run
; if
test -f namelist.input
; then \
129 /bin
/cp
-f namelist.input namelist.input.backup
; fi
; \
130 /bin
/rm -f namelist.input
; ln
-s ..
/test/em_b_wave
/namelist.input .
)
131 ( cd run
; /bin
/rm -f input_jet
; ln
-s ..
/test/em_b_wave
/input_jet .
)
133 convert_em
: framework_only
134 if
[ $(WRF_CONVERT
) -eq
1 ] ; then \
135 ( cd main
; $(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" convert_em
) ; \
138 #TBH: For now, link wrf.exe, wrf_ESMFApp.exe, and wrf_SST_ESMF.exe into
139 #TBH: test/em_esmf_exp when ESMF_COUPLING is set. Either wrf.exe or
140 #TBH: wrf_ESMFApp.exe can be used for stand-alone testing in this case.
141 #TBH: wrf_SST_ESMF.exe is a coupled application. Note that single make
142 #TBH: target $(SOLVER)_wrf_ESMFApp builds both wrf_ESMFApp.exe and
143 #TBH: wrf_SST_ESMF.exe.
144 #TBH: Is this a clear violation of the DRY principle? Oh yeah, you bet.
146 @ echo
'--------------------------------------'
147 ( cd main
; $(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" SOLVER
=em IDEAL_CASE
=real em_real
)
148 ( cd
test/em_real
; /bin
/rm -f wrf.exe
; ln
-s ..
/..
/main
/wrf.exe .
)
149 if
[ $(ESMF_COUPLING
) -eq
1 ] ; then \
150 ( cd main
; $(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" SOLVER
=em IDEAL_CASE
=real em_wrf_ESMFApp
) ; \
151 ( cd
test/em_esmf_exp
; /bin
/rm -f wrf.exe
; ln
-s ..
/..
/main
/wrf.exe .
) ; \
152 ( cd
test/em_esmf_exp
; /bin
/rm -f wrf_ESMFApp.exe
; ln
-s ..
/..
/main
/wrf_ESMFApp.exe .
) ; \
153 ( cd
test/em_esmf_exp
; /bin
/rm -f wrf_SST_ESMF.exe
; ln
-s ..
/..
/main
/wrf_SST_ESMF.exe .
) ; \
154 ( cd
test/em_esmf_exp
; /bin
/rm -f real.exe
; ln
-s ..
/..
/main
/real.exe .
) ; \
155 ( cd
test/em_esmf_exp
; /bin
/rm -f README.namelist
; ln
-s ..
/..
/run
/README.namelist .
) ; \
156 ( cd
test/em_esmf_exp
; /bin
/rm -f ETAMPNEW_DATA RRTM_DATA
; \
157 ln
-sf ..
/..
/run
/ETAMPNEW_DATA .
; \
158 ln
-sf ..
/..
/run
/RRTM_DATA .
; \
159 ln
-sf ..
/..
/run
/CAM_ABS_DATA .
; \
160 ln
-sf ..
/..
/run
/CAM_AEROPT_DATA .
; \
161 ln
-sf ..
/..
/run
/ozone.formatted .
; \
162 ln
-sf ..
/..
/run
/ozone_lat.formatted .
; \
163 ln
-sf ..
/..
/run
/ozone_plev.formatted .
; \
164 if
[ $(RWORDSIZE
) -eq
8 ] ; then \
165 ln
-sf ..
/..
/run
/ETAMPNEW_DATA_DBL ETAMPNEW_DATA
; \
166 ln
-sf ..
/..
/run
/RRTM_DATA_DBL RRTM_DATA
; \
168 ( cd
test/em_esmf_exp
; /bin
/rm -f GENPARM.TBL
; ln
-s ..
/..
/run
/GENPARM.TBL .
) ; \
169 ( cd
test/em_esmf_exp
; /bin
/rm -f LANDUSE.TBL
; ln
-s ..
/..
/run
/LANDUSE.TBL .
) ; \
170 ( cd
test/em_esmf_exp
; /bin
/rm -f SOILPARM.TBL
; ln
-s ..
/..
/run
/SOILPARM.TBL .
) ; \
171 ( cd
test/em_esmf_exp
; /bin
/rm -f urban_param.tbl
; ln
-s ..
/..
/run
/urban_param.tbl .
) ; \
172 ( cd
test/em_esmf_exp
; /bin
/rm -f VEGPARM.TBL
; ln
-s ..
/..
/run
/VEGPARM.TBL .
) ; \
173 ( cd
test/em_esmf_exp
; /bin
/rm -f tr49t67
; ln
-s ..
/..
/run
/tr49t67 .
) ; \
174 ( cd
test/em_esmf_exp
; /bin
/rm -f tr49t85
; ln
-s ..
/..
/run
/tr49t85 .
) ; \
175 ( cd
test/em_esmf_exp
; /bin
/rm -f tr67t85
; ln
-s ..
/..
/run
/tr67t85 .
) ; \
176 ( cd
test/em_esmf_exp
; /bin
/rm -f gribmap.txt
; ln
-s ..
/..
/run
/gribmap.txt .
) ; \
177 ( cd
test/em_esmf_exp
; /bin
/rm -f grib2map.tbl
; ln
-s ..
/..
/run
/grib2map.tbl .
) ; \
179 ( cd
test/em_real
; /bin
/rm -f real.exe
; ln
-s ..
/..
/main
/real.exe .
)
180 ( cd
test/em_real
; /bin
/rm -f ndown.exe
; ln
-s ..
/..
/main
/ndown.exe .
)
181 ( cd
test/em_real
; /bin
/rm -f nup.exe
; ln
-s ..
/..
/main
/nup.exe .
)
182 ( cd
test/em_real
; /bin
/rm -f README.namelist
; ln
-s ..
/..
/run
/README.namelist .
)
183 ( cd
test/em_real
; /bin
/rm -f ETAMPNEW_DATA RRTM_DATA
; \
184 ln
-sf ..
/..
/run
/ETAMPNEW_DATA .
; \
185 ln
-sf ..
/..
/run
/RRTM_DATA .
; \
186 ln
-sf ..
/..
/run
/CAM_ABS_DATA .
; \
187 ln
-sf ..
/..
/run
/CAM_AEROPT_DATA .
; \
188 ln
-sf ..
/..
/run
/ozone.formatted .
; \
189 ln
-sf ..
/..
/run
/ozone_lat.formatted .
; \
190 ln
-sf ..
/..
/run
/ozone_plev.formatted .
; \
191 if
[ $(RWORDSIZE
) -eq
8 ] ; then \
192 ln
-sf ..
/..
/run
/ETAMPNEW_DATA_DBL ETAMPNEW_DATA
; \
193 ln
-sf ..
/..
/run
/RRTM_DATA_DBL RRTM_DATA
; \
195 ( cd
test/em_real
; /bin
/rm -f GENPARM.TBL
; ln
-s ..
/..
/run
/GENPARM.TBL .
)
196 ( cd
test/em_real
; /bin
/rm -f LANDUSE.TBL
; ln
-s ..
/..
/run
/LANDUSE.TBL .
)
197 ( cd
test/em_real
; /bin
/rm -f SOILPARM.TBL
; ln
-s ..
/..
/run
/SOILPARM.TBL .
)
198 ( cd
test/em_real
; /bin
/rm -f urban_param.tbl
; ln
-s ..
/..
/run
/urban_param.tbl .
)
199 ( cd
test/em_real
; /bin
/rm -f VEGPARM.TBL
; ln
-s ..
/..
/run
/VEGPARM.TBL .
)
200 ( cd
test/em_real
; /bin
/rm -f tr49t67
; ln
-s ..
/..
/run
/tr49t67 .
)
201 ( cd
test/em_real
; /bin
/rm -f tr49t85
; ln
-s ..
/..
/run
/tr49t85 .
)
202 ( cd
test/em_real
; /bin
/rm -f tr67t85
; ln
-s ..
/..
/run
/tr67t85 .
)
203 ( cd
test/em_real
; /bin
/rm -f gribmap.txt
; ln
-s ..
/..
/run
/gribmap.txt .
)
204 ( cd
test/em_real
; /bin
/rm -f grib2map.tbl
; ln
-s ..
/..
/run
/grib2map.tbl .
)
205 ( cd run
; /bin
/rm -f real.exe
; ln
-s ..
/main
/real.exe .
)
206 ( cd run
; /bin
/rm -f ndown.exe
; ln
-s ..
/main
/ndown.exe .
)
207 ( cd run
; /bin
/rm -f nup.exe
; ln
-s ..
/main
/nup.exe .
)
208 ( cd run
; if
test -f namelist.input
; then \
209 /bin
/cp
-f namelist.input namelist.input.backup
; fi
; \
210 /bin
/rm -f namelist.input
; ln
-s ..
/test/em_real
/namelist.input .
)
214 @ echo
'--------------------------------------'
215 ( cd main
; $(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" SOLVER
=em IDEAL_CASE
=hill2d_x em_ideal
)
216 ( cd
test/em_hill2d_x
; /bin
/rm -f wrf.exe
; ln
-s ..
/..
/main
/wrf.exe .
)
217 ( cd
test/em_hill2d_x
; /bin
/rm -f ideal.exe
; ln
-s ..
/..
/main
/ideal.exe .
)
218 ( cd
test/em_hill2d_x
; /bin
/rm -f README.namelist
; ln
-s ..
/..
/run
/README.namelist .
)
219 ( cd
test/em_hill2d_x
; /bin
/rm -f gribmap.txt
; ln
-s ..
/..
/run
/gribmap.txt .
)
220 ( cd
test/em_hill2d_x
; /bin
/rm -f grib2map.tbl
; ln
-s ..
/..
/run
/grib2map.tbl .
)
221 ( cd run
; /bin
/rm -f ideal.exe
; ln
-s ..
/main
/ideal.exe .
)
222 ( cd run
; if
test -f namelist.input
; then \
223 /bin
/cp
-f namelist.input namelist.input.backup
; fi
; \
224 /bin
/rm -f namelist.input
; ln
-s ..
/test/em_hill2d_x
/namelist.input .
)
225 ( cd run
; /bin
/rm -f input_sounding
; ln
-s ..
/test/em_hill2d_x
/input_sounding .
)
228 @ echo
'--------------------------------------'
229 ( cd main
; $(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" SOLVER
=em IDEAL_CASE
=grav2d_x em_ideal
)
230 ( cd
test/em_grav2d_x
; /bin
/rm -f wrf.exe
; ln
-s ..
/..
/main
/wrf.exe .
)
231 ( cd
test/em_grav2d_x
; /bin
/rm -f ideal.exe
; ln
-s ..
/..
/main
/ideal.exe .
)
232 ( cd
test/em_grav2d_x
; /bin
/rm -f README.namelist
; ln
-s ..
/..
/run
/README.namelist .
)
233 ( cd
test/em_grav2d_x
; /bin
/rm -f gribmap.txt
; ln
-s ..
/..
/run
/gribmap.txt .
)
234 ( cd
test/em_grav2d_x
; /bin
/rm -f grib2map.tbl
; ln
-s ..
/..
/run
/grib2map.tbl .
)
235 ( cd run
; /bin
/rm -f ideal.exe
; ln
-s ..
/main
/ideal.exe .
)
236 ( cd run
; if
test -f namelist.input
; then \
237 /bin
/cp
-f namelist.input namelist.input.backup
; fi
; \
238 /bin
/rm -f namelist.input
; ln
-s ..
/test/em_grav2d_x
/namelist.input .
)
239 ( cd run
; /bin
/rm -f input_sounding
; ln
-s ..
/test/em_grav2d_x
/input_sounding .
)
241 #### anthropogenic emissions converter
244 @ echo
'--------------------------------------'
245 ( cd chem
; $(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" SOLVER
=em IDEAL_CASE
=real convert_emiss
)
246 ( cd
test/em_real
; /bin
/rm -f convert_emiss.exe
; ln
-s ..
/..
/chem
/convert_emiss.exe .
)
247 ( cd
test/em_real
; /bin
/rm -f README.namelist
; ln
-s ..
/..
/run
/README.namelist .
)
248 ( cd run
; if
test -f namelist.input
; then \
249 /bin
/cp
-f namelist.input namelist.input.backup
; fi
; \
250 /bin
/rm -f namelist.input
; ln
-s ..
/test/em_real
/namelist.input .
)
252 #### biogenic emissions converter
255 @ echo
'--------------------------------------'
256 ( cd chem
; $(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" SOLVER
=em IDEAL_CASE
=real convert_bioemiss
)
257 ( cd
test/em_real
; /bin
/rm -f convert_bioemiss.exe
; ln
-s ..
/..
/chem
/convert_bioemiss.exe .
)
258 ( cd
test/em_real
; /bin
/rm -f README.namelist
; ln
-s ..
/..
/run
/README.namelist .
)
259 ( cd run
; if
test -f namelist.input
; then \
260 /bin
/cp
-f namelist.input namelist.input.backup
; fi
; \
261 /bin
/rm -f namelist.input
; ln
-s ..
/test/em_real
/namelist.input .
)
266 @ echo
'--------------------------------------'
267 ( cd main
; $(MAKE
) MODULE_DIRS
="$(ALL_MODULES)" SOLVER
=nmm IDEAL_CASE
=real real_nmm
)
268 ( cd
test/nmm_real
; /bin
/rm -f wrf.exe
; ln
-s ..
/..
/main
/wrf.exe .
)
269 ( cd
test/nmm_real
; /bin
/rm -f real_nmm.exe
; ln
-s ..
/..
/main
/real_nmm.exe .
)
270 ( cd
test/nmm_real
; /bin
/rm -f README.namelist
; ln
-s ..
/..
/run
/README.namelist .
)
271 ( cd
test/nmm_real
; /bin
/rm -f ETAMPNEW_DATA RRTM_DATA
; \
272 ln
-sf ..
/..
/run
/ETAMPNEW_DATA .
; \
273 ln
-sf ..
/..
/run
/RRTM_DATA .
; \
274 if
[ $(RWORDSIZE
) -eq
8 ] ; then \
275 ln
-sf ..
/..
/run
/ETAMPNEW_DATA_DBL ETAMPNEW_DATA
; \
276 ln
-sf ..
/..
/run
/RRTM_DATA_DBL RRTM_DATA
; \
278 ( cd
test/nmm_real
; /bin
/rm -f GENPARM.TBL
; ln
-s ..
/..
/run
/GENPARM.TBL .
)
279 ( cd
test/nmm_real
; /bin
/rm -f LANDUSE.TBL
; ln
-s ..
/..
/run
/LANDUSE.TBL .
)
280 ( cd
test/nmm_real
; /bin
/rm -f SOILPARM.TBL
; ln
-s ..
/..
/run
/SOILPARM.TBL .
)
281 ( cd
test/nmm_real
; /bin
/rm -f VEGPARM.TBL
; ln
-s ..
/..
/run
/VEGPARM.TBL .
)
282 ( cd
test/nmm_real
; /bin
/rm -f tr49t67
; ln
-s ..
/..
/run
/tr49t67 .
)
283 ( cd
test/nmm_real
; /bin
/rm -f tr49t85
; ln
-s ..
/..
/run
/tr49t85 .
)
284 ( cd
test/nmm_real
; /bin
/rm -f tr67t85
; ln
-s ..
/..
/run
/tr67t85 .
)
285 ( cd
test/nmm_real
; /bin
/rm -f gribmap.txt
; ln
-s ..
/..
/run
/gribmap.txt .
)
286 ( cd
test/nmm_real
; /bin
/rm -f grib2map.txt
; ln
-s ..
/..
/run
/grib2map.txt .
)
287 ( cd run
; /bin
/rm -f real_nmm.exe
; ln
-s ..
/main
/real_nmm.exe .
)
288 ( cd run
; if
test -f namelist.input
; then \
289 /bin
/cp
-f namelist.input namelist.input.backup
; fi
; \
290 /bin
/rm -f namelist.input
; ln
-s ..
/test/nmm_real
/namelist.input .
)
294 # semi-Lagrangian initializations
298 @ echo
'--------------------------------------'
299 ( cd frame
; $(MAKE
) externals
)
302 @ echo
'--------------------------------------'
303 ( cd frame
; $(MAKE
) framework
; \
304 cd ..
/external
/io_netcdf
; make NETCDFPATH
="$(NETCDFPATH)" FC
="$(SFC) $(FCBASEOPTS)" RANLIB
="$(RANLIB)" CPP
="$(CPP)" LDFLAGS
="$(LDFLAGS)" ESMF_IO_LIB_EXT
="$(ESMF_IO_LIB_EXT)" ESMF_MOD_DEPENDENCE
="../$(ESMF_MOD_DEPENDENCE)" diffwrf
; \
305 cd ..
/io_int
; $(MAKE
) SFC
="$(SFC) $(FCBASEOPTS)" FC
="$(SFC) $(FCBASEOPTS)" RANLIB
="$(RANLIB)" CPP
="$(CPP)" ESMF_IO_LIB_EXT
="$(ESMF_IO_LIB_EXT)" ESMF_MOD_DEPENDENCE
="../$(ESMF_MOD_DEPENDENCE)" diffwrf
; cd ..
/..
/frame
)
308 @ echo
'--------------------------------------'
309 ( cd share
; $(MAKE
) )
312 @ echo
'--------------------------------------'
313 ( cd chem
; $(MAKE
) )
316 @ echo
'--------------------------------------'
317 ( cd phys
; $(MAKE
) )
320 @ echo
'--------------------------------------'
321 ( cd dyn_em
; $(MAKE
) )
323 # rule used by configure to test if this will compile with MPI 2 calls MPI_Comm_f2c and _c2f
325 @ cd tools
; /bin
/rm -f mpi2_test
; $(CC
) -c mpi2_test.c
; cd ..
327 # rule used by configure to test if fseeko and fseeko64 are supported (for share/landread.c to work right)
329 @ cd tools
; /bin
/rm -f fseeko_test
; $(SCC
) -DTEST_FSEEKO
-o fseeko_test fseek_test.c
; cd ..
330 @ cd tools
; /bin
/rm -f fseeko64_test
; $(SCC
) -DTEST_FSEEKO64
-o fseeko64_test fseek_test.c
; cd ..
332 ### 3.b. sub-rule to build the expimental core
334 # uncomment the two lines after exp_core for EXP
336 @ echo
'--------------------------------------'
337 ( cd dyn_exp
; $(MAKE
) )
339 # uncomment the two lines after nmm_core for NMM
341 @ echo
'--------------------------------------'
342 ( cd dyn_nmm
; $(MAKE
) )
345 @ echo
'--------------------------------------'
346 ( cd tools
; $(MAKE
) CC
="$(CC_TOOLS)" )
348 # Use this target to build stand-alone tests of esmf_time_f90.
349 # Only touches external/esmf_time_f90/.
351 @ echo
'--------------------------------------'
352 ( cd external
/esmf_time_f90
; $(MAKE
) FC
="$(FC) $(FCFLAGS)" CPP
="$(CPP) -DTIME_F90_ONLY" tests
)
355 @ echo
'Use the clean script'