Merge branch 'master' into devel
[wrffire.git] / wrfv2_fire / Makefile
blob6b170676c2e8621db54e94fc505aa68e942c232a
1 # Top level Makefile for wrf system
3 LN = ln -s
4 MAKE = make -i -r
5 MV = /bin/mv
6 RM = /bin/rm -f
7 CHEM_FILES = ../chem/module_aerosols_sorgam.o \
8 ../chem/module_gocart_aerosols.o \
9 ../chem/module_mosaic_driver.o \
10 ../chem/module_input_tracer.o
12 deflt :
13 @ echo Please compile the code using ./compile
15 include ./configure.wrf
17 EM_MODULE_DIR = -I../dyn_em
18 EM_MODULES = $(EM_MODULE_DIR)
20 DA_WRFVAR_MODULES = $(INCLUDE_MODULES)
21 DA_WRFVAR_MODULES_2 = $(INC_MOD_WRFVAR)
23 DA_CONVERTOR_MOD_DIR = -I../var/convertor -p../var/convertor
24 DA_CONVERTOR_MODULES = $(DA_CONVERTOR_MOD_DIR) $(INCLUDE_MODULES)
27 #### 3.d. add macros to specify the modules for this core
29 #EXP_MODULE_DIR = -I../dyn_exp
30 #EXP_MODULES = $(EXP_MODULE_DIR)
32 NMM_MODULE_DIR = -I../dyn_nmm
33 NMM_MODULES = $(NMM_MODULE_DIR)
35 ALL_MODULES = \
36 $(EM_MODULE_DIR) \
37 $(NMM_MODULES) \
38 $(EXP_MODULES) \
39 $(INCLUDE_MODULES)
41 configcheck:
42 @if [ "$(A2DCASE)" -a "$(DMPARALLEL)" ] ; then \
43 echo "------------------------------------------------------------------------------" ; \
44 echo "WRF CONFIGURATION ERROR " ; \
45 echo "The $(A2DCASE) case requires a build for only single domain. " ; \
46 echo "The $(A2DCASE) case cannot be used on distributed memory parallel systems. " ; \
47 echo "Only 3D WRF cases will run with the options that you selected. " ; \
48 echo "Please choose a different case, or rerun configure and choose a different set of options." ; \
49 echo "------------------------------------------------------------------------------" ; \
50 exit 2 ; \
53 framework_only : configcheck
54 $(MAKE) MODULE_DIRS="$(ALL_MODULES)" ext
55 $(MAKE) MODULE_DIRS="$(ALL_MODULES)" toolsdir
56 /bin/rm -f main/libwrflib.a main/libwrflib.lib
57 $(MAKE) MODULE_DIRS="$(ALL_MODULES)" framework
58 $(MAKE) MODULE_DIRS="$(ALL_MODULES)" shared
60 wrf : framework_only
61 $(MAKE) MODULE_DIRS="$(ALL_MODULES)" physics
62 if [ $(WRF_CHEM) -eq 1 ] ; then $(MAKE) MODULE_DIRS="$(ALL_MODULES)" chemics ; fi
63 if [ $(WRF_EM_CORE) -eq 1 ] ; then $(MAKE) MODULE_DIRS="$(ALL_MODULES)" em_core ; fi
64 if [ $(WRF_NMM_CORE) -eq 1 ] ; then $(MAKE) MODULE_DIRS="$(ALL_MODULES)" nmm_core ; fi
65 if [ $(WRF_EXP_CORE) -eq 1 ] ; then $(MAKE) MODULE_DIRS="$(ALL_MODULES)" exp_core ; fi
66 ( cd main ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" SOLVER=em em_wrf )
67 ( cd run ; /bin/rm -f wrf.exe ; ln -s ../main/wrf.exe . )
68 if [ $(ESMF_COUPLING) -eq 1 ] ; then \
69 ( cd main ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" SOLVER=em em_wrf_SST_ESMF ) ; \
71 @echo "build started: $(START_OF_COMPILE)"
72 @echo "build completed:" `date`
74 all_wrfvar :
75 $(MAKE) MODULE_DIRS="$(DA_WRFVAR_MODULES)" ext
76 $(MAKE) MODULE_DIRS="$(DA_WRFVAR_MODULES)" toolsdir
77 if [ $(CRTM) ] ; then \
78 (cd var/external/crtm; \
79 export ABI_CRTM="${ABI_CRTM}"; . configure/$(SFC_CRTM).setup; $(MAKE) $(J) ) ; \
81 if [ $(BUFR) ] ; then \
82 (cd var/external/bufr; \
83 $(MAKE) $(J) FC="$(SFC)" CC="$(SCC)" CPP="$(CPP)" CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" FFLAGS="$(FCDEBUG) $(FORMAT_FIXED)" RANLIB="$(RANLIB)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" ) ; \
85 ### Use 'make' to avoid '-i -r' above:
86 if [ $(WAVELET) ] ; then \
87 ( cd var/external/wavelet; \
88 make CC="$(SC99) -DNOUNDERSCORE" RM="$(RM)" libWavelet.a; \
89 make FC="$(FC)" RM="$(RM)" lib_wavelet.a ) ; \
91 # ( cd var/build; touch depend.txt; make links; make depend; $(MAKE) $(J) all_wrfvar )
92 ( cd var/build; make depend; $(MAKE) $(J) all_wrfvar )
93 ( cd var/obsproc; $(MAKE) $(J) BUFR_CPP="$(BUFR_CPP)" )
94 @echo "build started: $(START_OF_COMPILE)"
95 @echo "build completed:" `date`
97 ### 3.a. rules to build the framework and then the experimental core
99 exp_wrf : configcheck
100 $(MAKE) MODULE_DIRS="$(ALL_MODULES)" ext
101 $(MAKE) MODULE_DIRS="$(ALL_MODULES)" toolsdir
102 $(MAKE) MODULE_DIRS="$(ALL_MODULES)" framework
103 $(MAKE) MODULE_DIRS="$(ALL_MODULES)" shared
104 ( cd main ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" SOLVER=exp exp_wrf )
107 nmm_wrf : wrf
110 # Eulerian mass coordinate initializations
112 em_fire : wrf
113 @ echo '--------------------------------------'
114 ( cd main ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" SOLVER=em IDEAL_CASE=fire em_ideal )
115 ( cd test/em_fire ; /bin/rm -f wrf.exe ; ln -s ../../main/wrf.exe . )
116 ( cd test/em_fire ; /bin/rm -f ideal.exe ; ln -s ../../main/ideal.exe . )
117 ( cd test/em_fire ; /bin/rm -f README.namelist ; ln -s ../../run/README.namelist . )
118 ( cd test/em_fire ; /bin/rm -f gribmap.txt ; ln -s ../../run/gribmap.txt . )
119 ( cd test/em_fire ; /bin/rm -f grib2map.tbl ; ln -s ../../run/grib2map.tbl . )
120 ( cd test/em_fire ; /bin/sh create_links.sh )
121 ( cd run ; /bin/rm -f ideal.exe ; ln -s ../main/ideal.exe . )
122 ( cd run ; if test -f namelist.input ; then \
123 /bin/cp -f namelist.input namelist.input.backup ; fi ; \
124 /bin/rm -f namelist.input ; ln -s ../test/em_fire/namelist.input . )
125 ( cd run ; /bin/rm -f input_sounding ; ln -s ../test/em_fire/input_sounding . )
126 @echo "build started: $(START_OF_COMPILE)"
127 @echo "build completed:" `date`
129 em_quarter_ss : wrf
130 @ echo '--------------------------------------'
131 ( cd main ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" SOLVER=em IDEAL_CASE=quarter_ss em_ideal )
132 ( cd test/em_quarter_ss ; /bin/rm -f wrf.exe ; ln -s ../../main/wrf.exe . )
133 ( cd test/em_quarter_ss ; /bin/rm -f ideal.exe ; ln -s ../../main/ideal.exe . )
134 ( cd test/em_quarter_ss ; /bin/rm -f README.namelist ; ln -s ../../run/README.namelist . )
135 ( cd test/em_quarter_ss ; /bin/rm -f gribmap.txt ; ln -s ../../run/gribmap.txt . )
136 ( cd test/em_quarter_ss ; /bin/rm -f grib2map.tbl ; ln -s ../../run/grib2map.tbl . )
137 ( cd run ; /bin/rm -f ideal.exe ; ln -s ../main/ideal.exe . )
138 ( cd run ; if test -f namelist.input ; then \
139 /bin/cp -f namelist.input namelist.input.backup ; fi ; \
140 /bin/rm -f namelist.input ; ln -s ../test/em_quarter_ss/namelist.input . )
141 ( cd run ; /bin/rm -f input_sounding ; ln -s ../test/em_quarter_ss/input_sounding . )
142 @echo "build started: $(START_OF_COMPILE)"
143 @echo "build completed:" `date`
145 em_squall2d_x : wrf
146 @ echo '--------------------------------------'
147 ( cd main ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" SOLVER=em IDEAL_CASE=squall2d_x em_ideal )
148 ( cd test/em_squall2d_x ; /bin/rm -f wrf.exe ; ln -s ../../main/wrf.exe . )
149 ( cd test/em_squall2d_x ; /bin/rm -f ideal.exe ; ln -s ../../main/ideal.exe . )
150 ( cd test/em_squall2d_x ; /bin/rm -f README.namelist ; ln -s ../../run/README.namelist . )
151 ( cd test/em_squall2d_x ; /bin/rm -f gribmap.txt ; ln -s ../../run/gribmap.txt . )
152 ( cd test/em_squall2d_x ; /bin/rm -f grib2map.tbl ; ln -s ../../run/grib2map.tbl . )
153 ( cd run ; /bin/rm -f ideal.exe ; ln -s ../main/ideal.exe . )
154 ( cd run ; if test -f namelist.input ; then \
155 /bin/cp -f namelist.input namelist.input.backup ; fi ; \
156 /bin/rm -f namelist.input ; ln -s ../test/em_squall2d_x/namelist.input . )
157 ( cd run ; /bin/rm -f input_sounding ; ln -s ../test/em_squall2d_x/input_sounding . )
158 @echo "build started: $(START_OF_COMPILE)"
159 @echo "build completed:" `date`
161 em_squall2d_y : wrf
162 @ echo '--------------------------------------'
163 ( cd main ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" SOLVER=em IDEAL_CASE=squall2d_y em_ideal )
164 ( cd test/em_squall2d_y ; /bin/rm -f wrf.exe ; ln -s ../../main/wrf.exe . )
165 ( cd test/em_squall2d_y ; /bin/rm -f ideal.exe ; ln -s ../../main/ideal.exe . )
166 ( cd test/em_squall2d_y ; /bin/rm -f README.namelist ; ln -s ../../run/README.namelist . )
167 ( cd test/em_squall2d_y ; /bin/rm -f gribmap.txt ; ln -s ../../run/gribmap.txt . )
168 ( cd test/em_squall2d_y ; /bin/rm -f grib2map.tbl ; ln -s ../../run/grib2map.tbl . )
169 ( cd run ; /bin/rm -f ideal.exe ; ln -s ../main/ideal.exe . )
170 ( cd run ; if test -f namelist.input ; then \
171 /bin/cp -f namelist.input namelist.input.backup ; fi ; \
172 /bin/rm -f namelist.input ; ln -s ../test/em_squall2d_y/namelist.input . )
173 ( cd run ; /bin/rm -f input_sounding ; ln -s ../test/em_squall2d_y/input_sounding . )
174 @echo "build started: $(START_OF_COMPILE)"
175 @echo "build completed:" `date`
177 em_b_wave : wrf
178 @ echo '--------------------------------------'
179 ( cd main ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" SOLVER=em IDEAL_CASE=b_wave em_ideal )
180 ( cd test/em_b_wave ; /bin/rm -f wrf.exe ; ln -s ../../main/wrf.exe . )
181 ( cd test/em_b_wave ; /bin/rm -f ideal.exe ; ln -s ../../main/ideal.exe . )
182 ( cd test/em_b_wave ; /bin/rm -f README.namelist ; ln -s ../../run/README.namelist . )
183 ( cd test/em_b_wave ; /bin/rm -f gribmap.txt ; ln -s ../../run/gribmap.txt . )
184 ( cd test/em_b_wave ; /bin/rm -f grib2map.tbl ; ln -s ../../run/grib2map.tbl . )
185 ( cd run ; /bin/rm -f ideal.exe ; ln -s ../main/ideal.exe . )
186 ( cd run ; if test -f namelist.input ; then \
187 /bin/cp -f namelist.input namelist.input.backup ; fi ; \
188 /bin/rm -f namelist.input ; ln -s ../test/em_b_wave/namelist.input . )
189 ( cd run ; /bin/rm -f input_jet ; ln -s ../test/em_b_wave/input_jet . )
190 @echo "build started: $(START_OF_COMPILE)"
191 @echo "build completed:" `date`
193 em_les : wrf
194 @ echo '--------------------------------------'
195 ( cd main ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" SOLVER=em IDEAL_CASE=les em_ideal )
196 ( cd test/em_les ; /bin/rm -f wrf.exe ; ln -s ../../main/wrf.exe . )
197 ( cd test/em_les ; /bin/rm -f ideal.exe ; ln -s ../../main/ideal.exe . )
198 ( cd test/em_les ; /bin/rm -f README.namelist ; ln -s ../../run/README.namelist . )
199 ( cd test/em_les ; /bin/rm -f gribmap.txt ; ln -s ../../run/gribmap.txt . )
200 ( cd test/em_les ; /bin/rm -f grib2map.tbl ; ln -s ../../run/grib2map.tbl . )
201 ( cd run ; /bin/rm -f ideal.exe ; ln -s ../main/ideal.exe . )
202 ( cd run ; if test -f namelist.input ; then \
203 /bin/cp -f namelist.input namelist.input.backup ; fi ; \
204 /bin/rm -f namelist.input ; ln -s ../test/em_les/namelist.input . )
205 ( cd run ; /bin/rm -f input_sounding ; ln -s ../test/em_les/input_sounding . )
206 @echo "build started: $(START_OF_COMPILE)"
207 @echo "build completed:" `date`
209 em_seabreeze2d_x : wrf
210 @ echo '--------------------------------------'
211 ( cd main ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" SOLVER=em IDEAL_CASE=seabreeze2d_x em_ideal )
212 ( cd test/em_seabreeze2d_x ; /bin/rm -f wrf.exe ; ln -s ../../main/wrf.exe . )
213 ( cd test/em_seabreeze2d_x ; /bin/rm -f ideal.exe ; ln -s ../../main/ideal.exe . )
214 ( cd test/em_seabreeze2d_x ; /bin/rm -f README.namelist ; ln -s ../../run/README.namelist . )
215 ( cd test/em_seabreeze2d_x ; /bin/rm -f gribmap.txt ; ln -s ../../run/gribmap.txt . )
216 ( cd test/em_seabreeze2d_x ; /bin/rm -f grib2map.tbl ; ln -s ../../run/grib2map.tbl . )
217 ( cd run ; /bin/rm -f ideal.exe ; ln -s ../main/ideal.exe . )
218 ( cd run ; if test -f namelist.input ; then \
219 /bin/cp -f namelist.input namelist.input.backup ; fi ; \
220 /bin/rm -f namelist.input ; ln -s ../test/em_seabreeze2d_x/namelist.input . )
221 ( cd run ; /bin/rm -f input_sounding ; ln -s ../test/em_seabreeze2d_x/input_sounding . )
222 @echo "build started: $(START_OF_COMPILE)"
223 @echo "build completed:" `date`
225 em_tropical_cyclone : wrf
226 @ echo '--------------------------------------'
227 ( cd main ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" SOLVER=em IDEAL_CASE=tropical_cyclone em_ideal )
228 ( cd test/em_tropical_cyclone ; /bin/rm -f wrf.exe ; ln -s ../../main/wrf.exe . )
229 ( cd test/em_tropical_cyclone ; /bin/rm -f ideal.exe ; ln -s ../../main/ideal.exe . )
230 ( cd test/em_tropical_cyclone ; /bin/rm -f README.namelist ; ln -s ../../run/README.namelist . )
231 ( cd run ; /bin/rm -f ideal.exe ; ln -s ../main/ideal.exe . )
232 ( cd run ; if test -f namelist.input ; then \
233 /bin/cp -f namelist.input namelist.input.backup ; fi ; \
234 /bin/rm -f namelist.input ; ln -s ../test/em_tropical_cyclone/namelist.input . )
235 ( cd run ; /bin/rm -f input_sounding ; ln -s ../test/em_tropical_cyclone/input_sounding . )
236 @echo "build started: $(START_OF_COMPILE)"
237 @echo "build completed:" `date`
239 em_scm_xy : wrf
240 @ echo '--------------------------------------'
241 ( cd main ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" SOLVER=em IDEAL_CASE=scm_xy em_ideal )
242 ( cd test/em_scm_xy ; /bin/rm -f wrf.exe ; ln -s ../../main/wrf.exe . )
243 ( cd test/em_scm_xy ; /bin/rm -f ideal.exe ; ln -s ../../main/ideal.exe . )
244 ( cd test/em_scm_xy ; /bin/rm -f README.namelist ; ln -s ../../run/README.namelist . )
245 ( cd run ; /bin/rm -f ideal.exe ; ln -s ../main/ideal.exe . )
246 ( cd run ; if test -f namelist.input ; then \
247 /bin/cp -f namelist.input namelist.input.backup ; fi ; \
248 /bin/rm -f namelist.input ; ln -s ../test/em_scm_xy/namelist.input . )
249 ( cd run ; /bin/rm -f input_sounding ; ln -s ../test/em_scm_xy/input_sounding . )
250 @echo "build started: $(START_OF_COMPILE)"
251 @echo "build completed:" `date`
253 convert_em : framework_only
254 if [ $(WRF_CONVERT) -eq 1 ] ; then \
255 ( cd main ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" convert_em ) ; \
258 # Link wrf.exe and wrf_SST_ESMF.exe into
259 # test/em_esmf_exp when ESMF_COUPLING is set. wrf.exe
260 # can be used for stand-alone testing in this case.
261 # wrf_SST_ESMF.exe is a coupled application. Note that make
262 # target $(SOLVER)_wrf_SST_ESMF builds wrf_SST_ESMF.exe.
263 em_real : wrf
264 @ echo '--------------------------------------'
265 ( cd main ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" SOLVER=em IDEAL_CASE=real em_real )
266 ( cd test/em_real ; /bin/rm -f wrf.exe ; ln -s ../../main/wrf.exe . )
267 if [ $(ESMF_COUPLING) -eq 1 ] ; then \
268 ( cd main ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" SOLVER=em IDEAL_CASE=real em_wrf_SST_ESMF ) ; \
269 ( cd test/em_esmf_exp ; /bin/rm -f wrf.exe ; ln -s ../../main/wrf.exe . ) ; \
270 ( cd test/em_esmf_exp ; /bin/rm -f wrf_SST_ESMF.exe ; ln -s ../../main/wrf_SST_ESMF.exe . ) ; \
271 ( cd test/em_esmf_exp ; /bin/rm -f real.exe ; ln -s ../../main/real.exe . ) ; \
272 ( cd test/em_esmf_exp ; /bin/rm -f README.namelist ; ln -s ../../run/README.namelist . ) ; \
273 ( cd test/em_esmf_exp ; /bin/rm -f ETAMPNEW_DATA.expanded_rain ETAMPNEW_DATA RRTM_DATA RRTMG_LW_DATA RRTMG_SW_DATA ; \
274 ln -sf ../../run/ETAMPNEW_DATA . ; \
275 ln -sf ../../run/ETAMPNEW_DATA.expanded_rain . ; \
276 ln -sf ../../run/RRTM_DATA . ; \
277 ln -sf ../../run/RRTMG_LW_DATA . ; \
278 ln -sf ../../run/RRTMG_SW_DATA . ; \
279 ln -sf ../../run/CAM_ABS_DATA . ; \
280 ln -sf ../../run/CAM_AEROPT_DATA . ; \
281 ln -sf ../../run/ozone.formatted . ; \
282 ln -sf ../../run/ozone_lat.formatted . ; \
283 ln -sf ../../run/ozone_plev.formatted . ; \
284 if [ $(RWORDSIZE) -eq 8 ] ; then \
285 ln -sf ../../run/ETAMPNEW_DATA_DBL ETAMPNEW_DATA ; \
286 ln -sf ../../run/ETAMPNEW_DATA.expanded_rain_DBL ETAMPNEW_DATA.expanded_rain ; \
287 ln -sf ../../run/RRTM_DATA_DBL RRTM_DATA ; \
288 ln -sf ../../run/RRTMG_LW_DATA_DBL RRTMG_LW_DATA ; \
289 ln -sf ../../run/RRTMG_SW_DATA_DBL RRTMG_SW_DATA ; \
290 fi ) ; \
291 ( cd test/em_esmf_exp ; /bin/rm -f GENPARM.TBL ; ln -s ../../run/GENPARM.TBL . ) ; \
292 ( cd test/em_esmf_exp ; /bin/rm -f LANDUSE.TBL ; ln -s ../../run/LANDUSE.TBL . ) ; \
293 ( cd test/em_esmf_exp ; /bin/rm -f SOILPARM.TBL ; ln -s ../../run/SOILPARM.TBL . ) ; \
294 ( cd test/em_esmf_exp ; /bin/rm -f URBPARM.TBL ; ln -s ../../run/URBPARM.TBL . ) ; \
295 ( cd test/em_esmf_exp ; /bin/rm -f VEGPARM.TBL ; ln -s ../../run/VEGPARM.TBL . ) ; \
296 ( cd test/em_esmf_exp ; /bin/rm -f MPTABLE.TBL ; ln -s ../../run/MPTABLE.TBL . ) ; \
297 ( cd test/em_esmf_exp ; /bin/rm -f tr49t67 ; ln -s ../../run/tr49t67 . ) ; \
298 ( cd test/em_esmf_exp ; /bin/rm -f tr49t85 ; ln -s ../../run/tr49t85 . ) ; \
299 ( cd test/em_esmf_exp ; /bin/rm -f tr67t85 ; ln -s ../../run/tr67t85 . ) ; \
300 ( cd test/em_esmf_exp ; /bin/rm -f gribmap.txt ; ln -s ../../run/gribmap.txt . ) ; \
301 ( cd test/em_esmf_exp ; /bin/rm -f grib2map.tbl ; ln -s ../../run/grib2map.tbl . ) ; \
303 ( cd test/em_real ; /bin/rm -f real.exe ; ln -s ../../main/real.exe . )
304 ( cd test/em_real ; /bin/rm -f tc.exe ; ln -s ../../main/tc.exe . )
305 ( cd test/em_real ; /bin/rm -f ndown.exe ; ln -s ../../main/ndown.exe . )
306 ( cd test/em_real ; /bin/rm -f nup.exe ; ln -s ../../main/nup.exe . )
307 ( cd test/em_real ; /bin/rm -f README.namelist ; ln -s ../../run/README.namelist . )
308 ( cd test/em_real ; /bin/rm -f ETAMPNEW_DATA.expanded_rain ETAMPNEW_DATA RRTM_DATA RRTMG_LW_DATA RRTMG_SW_DATA ; \
309 ln -sf ../../run/ETAMPNEW_DATA . ; \
310 ln -sf ../../run/ETAMPNEW_DATA.expanded_rain . ; \
311 ln -sf ../../run/RRTM_DATA . ; \
312 ln -sf ../../run/RRTMG_LW_DATA . ; \
313 ln -sf ../../run/RRTMG_SW_DATA . ; \
314 ln -sf ../../run/CAM_ABS_DATA . ; \
315 ln -sf ../../run/CAM_AEROPT_DATA . ; \
316 ln -sf ../../run/ozone.formatted . ; \
317 ln -sf ../../run/ozone_lat.formatted . ; \
318 ln -sf ../../run/ozone_plev.formatted . ; \
319 if [ $(RWORDSIZE) -eq 8 ] ; then \
320 ln -sf ../../run/ETAMPNEW_DATA_DBL ETAMPNEW_DATA ; \
321 ln -sf ../../run/ETAMPNEW_DATA.expanded_rain_DBL ETAMPNEW_DATA.expanded_rain ; \
322 ln -sf ../../run/RRTM_DATA_DBL RRTM_DATA ; \
323 ln -sf ../../run/RRTMG_LW_DATA_DBL RRTMG_LW_DATA ; \
324 ln -sf ../../run/RRTMG_SW_DATA_DBL RRTMG_SW_DATA ; \
325 fi )
326 ( cd test/em_real ; /bin/rm -f GENPARM.TBL ; ln -s ../../run/GENPARM.TBL . )
327 ( cd test/em_real ; /bin/rm -f LANDUSE.TBL ; ln -s ../../run/LANDUSE.TBL . )
328 ( cd test/em_real ; /bin/rm -f SOILPARM.TBL ; ln -s ../../run/SOILPARM.TBL . )
329 ( cd test/em_real ; /bin/rm -f URBPARM.TBL ; ln -s ../../run/URBPARM.TBL . )
330 ( cd test/em_real ; /bin/rm -f VEGPARM.TBL ; ln -s ../../run/VEGPARM.TBL . )
331 ( cd test/em_real ; /bin/rm -f MPTABLE.TBL ; ln -s ../../run/MPTABLE.TBL . )
332 ( cd test/em_real ; /bin/rm -f tr49t67 ; ln -s ../../run/tr49t67 . )
333 ( cd test/em_real ; /bin/rm -f tr49t85 ; ln -s ../../run/tr49t85 . )
334 ( cd test/em_real ; /bin/rm -f tr67t85 ; ln -s ../../run/tr67t85 . )
335 ( cd test/em_real ; /bin/rm -f gribmap.txt ; ln -s ../../run/gribmap.txt . )
336 ( cd test/em_real ; /bin/rm -f grib2map.tbl ; ln -s ../../run/grib2map.tbl . )
337 ( cd run ; /bin/rm -f real.exe ; ln -s ../main/real.exe . )
338 ( cd run ; /bin/rm -f tc.exe ; ln -s ../main/tc.exe . )
339 ( cd run ; /bin/rm -f ndown.exe ; ln -s ../main/ndown.exe . )
340 ( cd run ; /bin/rm -f nup.exe ; ln -s ../main/nup.exe . )
341 ( cd run ; if test -f namelist.input ; then \
342 /bin/cp -f namelist.input namelist.input.backup ; fi ; \
343 /bin/rm -f namelist.input ; ln -s ../test/em_real/namelist.input . )
344 @echo "build started: $(START_OF_COMPILE)"
345 @echo "build completed:" `date`
348 em_hill2d_x : wrf
349 @ echo '--------------------------------------'
350 ( cd main ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" SOLVER=em IDEAL_CASE=hill2d_x em_ideal )
351 ( cd test/em_hill2d_x ; /bin/rm -f wrf.exe ; ln -s ../../main/wrf.exe . )
352 ( cd test/em_hill2d_x ; /bin/rm -f ideal.exe ; ln -s ../../main/ideal.exe . )
353 ( cd test/em_hill2d_x ; /bin/rm -f README.namelist ; ln -s ../../run/README.namelist . )
354 ( cd test/em_hill2d_x ; /bin/rm -f gribmap.txt ; ln -s ../../run/gribmap.txt . )
355 ( cd test/em_hill2d_x ; /bin/rm -f grib2map.tbl ; ln -s ../../run/grib2map.tbl . )
356 ( cd run ; /bin/rm -f ideal.exe ; ln -s ../main/ideal.exe . )
357 ( cd run ; if test -f namelist.input ; then \
358 /bin/cp -f namelist.input namelist.input.backup ; fi ; \
359 /bin/rm -f namelist.input ; ln -s ../test/em_hill2d_x/namelist.input . )
360 ( cd run ; /bin/rm -f input_sounding ; ln -s ../test/em_hill2d_x/input_sounding . )
361 @echo "build started: $(START_OF_COMPILE)"
362 @echo "build completed:" `date`
364 em_grav2d_x : wrf
365 @ echo '--------------------------------------'
366 ( cd main ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" SOLVER=em IDEAL_CASE=grav2d_x em_ideal )
367 ( cd test/em_grav2d_x ; /bin/rm -f wrf.exe ; ln -s ../../main/wrf.exe . )
368 ( cd test/em_grav2d_x ; /bin/rm -f ideal.exe ; ln -s ../../main/ideal.exe . )
369 ( cd test/em_grav2d_x ; /bin/rm -f README.namelist ; ln -s ../../run/README.namelist . )
370 ( cd test/em_grav2d_x ; /bin/rm -f gribmap.txt ; ln -s ../../run/gribmap.txt . )
371 ( cd test/em_grav2d_x ; /bin/rm -f grib2map.tbl ; ln -s ../../run/grib2map.tbl . )
372 ( cd run ; /bin/rm -f ideal.exe ; ln -s ../main/ideal.exe . )
373 ( cd run ; if test -f namelist.input ; then \
374 /bin/cp -f namelist.input namelist.input.backup ; fi ; \
375 /bin/rm -f namelist.input ; ln -s ../test/em_grav2d_x/namelist.input . )
376 ( cd run ; /bin/rm -f input_sounding ; ln -s ../test/em_grav2d_x/input_sounding . )
377 @echo "build started: $(START_OF_COMPILE)"
378 @echo "build completed:" `date`
380 em_heldsuarez : wrf
381 @ echo '--------------------------------------'
382 ( cd main ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" SOLVER=em IDEAL_CASE=heldsuarez em_ideal )
383 ( cd test/em_heldsuarez ; /bin/rm -f wrf.exe ; ln -s ../../main/wrf.exe . )
384 ( cd test/em_heldsuarez ; /bin/rm -f ideal.exe ; ln -s ../../main/ideal.exe . )
385 ( cd test/em_heldsuarez ; /bin/rm -f README.namelist ; ln -s ../../run/README.namelist . )
386 ( cd test/em_heldsuarez ; /bin/rm -f gribmap.txt ; ln -s ../../run/gribmap.txt . )
387 ( cd test/em_heldsuarez ; /bin/rm -f grib2map.tbl ; ln -s ../../run/grib2map.tbl . )
388 ( cd run ; /bin/rm -f ideal.exe ; ln -s ../main/ideal.exe . )
389 ( cd run ; if test -f namelist.input ; then \
390 /bin/cp -f namelist.input namelist.input.backup ; fi ; \
391 /bin/rm -f namelist.input ; ln -s ../test/em_heldsuarez/namelist.input . )
392 @echo "build started: $(START_OF_COMPILE)"
393 @echo "build completed:" `date`
395 #### anthropogenic emissions converter
397 emi_conv : wrf
398 @ echo '--------------------------------------'
399 ( cd chem ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" SOLVER=em IDEAL_CASE=real convert_emiss )
400 ( cd test/em_real ; /bin/rm -f convert_emiss.exe ; ln -s ../../chem/convert_emiss.exe . )
401 ( cd test/em_real ; /bin/rm -f README.namelist ; ln -s ../../run/README.namelist . )
402 ( cd run ; if test -f namelist.input ; then \
403 /bin/cp -f namelist.input namelist.input.backup ; fi ; \
404 /bin/rm -f namelist.input ; ln -s ../test/em_real/namelist.input . )
406 #### emissions opt 3 converter
408 opt3_conv : wrf
409 @ echo '--------------------------------------'
410 ( cd chem ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" SOLVER=em IDEAL_CASE=real convert_fireemiss )
411 ( cd test/em_real ; /bin/rm -f convert_fireemiss.exe ; ln -s ../../chem/convert_fireemiss.exe . )
412 ( cd test/em_real ; /bin/rm -f README.namelist ; ln -s ../../run/README.namelist . )
413 ( cd run ; if test -f namelist.input ; then \
414 /bin/cp -f namelist.input namelist.input.backup ; fi ; \
415 /bin/rm -f namelist.input ; ln -s ../test/em_real/namelist.input . )
417 #### biogenic emissions converter
419 bio_conv : wrf
420 @ echo '--------------------------------------'
421 ( cd chem ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" SOLVER=em IDEAL_CASE=real convert_bioemiss )
422 ( cd test/em_real ; /bin/rm -f convert_bioemiss.exe ; ln -s ../../chem/convert_bioemiss.exe . )
423 ( cd test/em_real ; /bin/rm -f README.namelist ; ln -s ../../run/README.namelist . )
424 ( cd run ; if test -f namelist.input ; then \
425 /bin/cp -f namelist.input namelist.input.backup ; fi ; \
426 /bin/rm -f namelist.input ; ln -s ../test/em_real/namelist.input . )
428 bioemiss_conv_megan2 : wrf
429 @ echo '--------------------------------------'
430 ( cd chem ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" SOLVER=em IDEAL_CASE=real convert_bioemiss_megan2 )
431 ( cd test/em_real ; /bin/rm -f convert_bioemiss_megan2.exe ; ln -s ../../chem/convert_bioemiss_megan2.exe . )
432 ( cd test/em_real ; /bin/rm -f README.namelist ; ln -s ../../run/README.namelist . )
433 ( cd run ; if test -f namelist.input ; then \
434 /bin/cp -f namelist.input namelist.input.backup ; fi ; \
435 /bin/rm -f namelist.input ; ln -s ../test/em_real/namelist.input . )
437 #### DMS emissions converter
439 dms_conv : wrf
440 @ echo '--------------------------------------'
441 ( cd chem ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" SOLVER=em IDEAL_CASE=real convert_dms )
442 ( cd test/em_real ; /bin/rm -f convert_dms.exe ; ln -s ../../chem/convert_dms.exe . )
443 ( cd test/em_real ; /bin/rm -f README.namelist ; ln -s ../../run/README.namelist . )
444 ( cd run ; if test -f namelist.input ; then \
445 /bin/cp -f namelist.input namelist.input.backup ; fi ; \
446 /bin/rm -f namelist.input ; ln -s ../test/em_real/namelist.input . )
449 #### Dust errosion factor emissions converter
451 dust_conv : wrf
452 @ echo '--------------------------------------'
453 ( cd chem ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" SOLVER=em IDEAL_CASE=real convert_dust )
454 ( cd test/em_real ; /bin/rm -f convert_dust.exe ; ln -s ../../chem/convert_dust.exe . )
455 ( cd test/em_real ; /bin/rm -f README.namelist ; ln -s ../../run/README.namelist . )
456 ( cd run ; if test -f namelist.input ; then \
457 /bin/cp -f namelist.input namelist.input.backup ; fi ; \
458 /bin/rm -f namelist.input ; ln -s ../test/em_real/namelist.input . )
460 #### GOCART background state for oh, no3 and h2o2 converter
462 gocart_conv : wrf
463 @ echo '--------------------------------------'
464 ( cd chem ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" SOLVER=em IDEAL_CASE=real convert_gocart )
465 ( cd test/em_real ; /bin/rm -f convert_gocart.exe ; ln -s ../../chem/convert_gocart.exe . )
466 ( cd test/em_real ; /bin/rm -f README.namelist ; ln -s ../../run/README.namelist . )
467 ( cd run ; if test -f namelist.input ; then \
468 /bin/cp -f namelist.input namelist.input.backup ; fi ; \
469 /bin/rm -f namelist.input ; ln -s ../test/em_real/namelist.input . )
472 #### nmm converter
474 ### Idealized NMM tropical cyclone case
475 nmm_tropical_cyclone : nmm_wrf
476 @ echo '--------------------------------------'
477 ( cd main ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" SOLVER=nmm IDEAL_CASE=tropical_cyclone nmm_ideal )
478 ( cd test/nmm_tropical_cyclone ; /bin/rm -f wrf.exe ; ln -s ../../main/wrf.exe . )
479 ( cd test/nmm_tropical_cyclone ; /bin/rm -f ideal.exe ; ln -s ../../main/ideal.exe . )
480 ( cd test/nmm_tropical_cyclone ; /bin/rm -f README.namelist ; ln -s ../../run/README.namelist . )
481 ( cd run ; /bin/rm -f ideal.exe ; ln -s ../main/ideal.exe . )
482 ( cd run ; if test -f namelist.input ; then \
483 /bin/cp -f namelist.input namelist.input.backup ; fi ; \
484 /bin/rm -f namelist.input ; ln -s ../test/nmm_tropical_cyclone/namelist.input . )
485 @echo "build started: $(START_OF_COMPILE)"
486 @echo "build completed:" `date`
488 nmm_real : nmm_wrf
489 @ echo '--------------------------------------'
490 ( cd main ; $(MAKE) MODULE_DIRS="$(ALL_MODULES)" SOLVER=nmm IDEAL_CASE=real real_nmm )
491 ( cd test/nmm_real ; /bin/rm -f wrf.exe ; ln -s ../../main/wrf.exe . )
492 ( cd test/nmm_real ; /bin/rm -f real_nmm.exe ; ln -s ../../main/real_nmm.exe . )
493 ( cd test/nmm_real ; /bin/rm -f README.namelist ; ln -s ../../run/README.namelist . )
494 ( cd test/nmm_real ; /bin/rm -f ETAMPNEW_DATA.expanded_rain ETAMPNEW_DATA RRTM_DATA ; \
495 ln -sf ../../run/ETAMPNEW_DATA . ; \
496 ln -sf ../../run/ETAMPNEW_DATA.expanded_rain . ; \
497 ln -sf ../../run/RRTM_DATA . ; \
498 if [ $(RWORDSIZE) -eq 8 ] ; then \
499 ln -sf ../../run/ETAMPNEW_DATA_DBL ETAMPNEW_DATA ; \
500 ln -sf ../../run/ETAMPNEW_DATA.expanded_rain_DBL ETAMPNEW_DATA.expanded_rain ; \
501 ln -sf ../../run/RRTM_DATA_DBL RRTM_DATA ; \
502 fi )
503 ( cd test/nmm_real ; /bin/rm -f GENPARM.TBL ; ln -s ../../run/GENPARM.TBL . )
504 ( cd test/nmm_real ; /bin/rm -f LANDUSE.TBL ; ln -s ../../run/LANDUSE.TBL . )
505 ( cd test/nmm_real ; /bin/rm -f SOILPARM.TBL ; ln -s ../../run/SOILPARM.TBL . )
506 ( cd test/nmm_real ; /bin/rm -f VEGPARM.TBL ; ln -s ../../run/VEGPARM.TBL . )
507 ( cd test/nmm_real ; /bin/rm -f MPTABLE.TBL ; ln -s ../../run/MPTABLE.TBL . )
508 ( cd test/nmm_real ; /bin/rm -f tr49t67 ; ln -s ../../run/tr49t67 . )
509 ( cd test/nmm_real ; /bin/rm -f tr49t85 ; ln -s ../../run/tr49t85 . )
510 ( cd test/nmm_real ; /bin/rm -f tr67t85 ; ln -s ../../run/tr67t85 . )
511 ( cd test/nmm_real ; /bin/rm -f gribmap.txt ; ln -s ../../run/gribmap.txt . )
512 ( cd test/nmm_real ; /bin/rm -f grib2map.tbl ; ln -s ../../run/grib2map.tbl . )
513 ( cd test/nmm_real ; /bin/rm -f co2_trans ; ln -s ../../run/co2_trans . )
514 ( cd run ; /bin/rm -f real_nmm.exe ; ln -s ../main/real_nmm.exe . )
515 ( cd run ; if test -f namelist.input ; then \
516 /bin/cp -f namelist.input namelist.input.backup ; fi ; \
517 /bin/rm -f namelist.input ; ln -s ../test/nmm_real/namelist.input . )
521 # semi-Lagrangian initializations
524 ext :
525 @ echo '--------------------------------------'
526 ( cd frame ; $(MAKE) externals )
528 framework :
529 @ echo '--------------------------------------'
530 ( cd frame ; $(MAKE) $(J) framework; \
531 cd ../external/io_netcdf ; \
532 $(MAKE) NETCDFPATH="$(NETCDFPATH)" FC="$(SFC) $(FCBASEOPTS)" RANLIB="$(RANLIB)" \
533 CPP="$(CPP)" LDFLAGS="$(LDFLAGS)" TRADFLAG="$(TRADFLAG)" ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
534 ESMF_MOD_DEPENDENCE="$(ESMF_MOD_DEPENDENCE)" AR="INTERNAL_BUILD_ERROR_SHOULD_NOT_NEED_AR" diffwrf; \
535 cd ../io_int ; \
536 $(MAKE) SFC="$(SFC) $(FCBASEOPTS)" FC="$(SFC) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
537 TRADFLAG="$(TRADFLAG)" ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
538 ESMF_MOD_DEPENDENCE="$(ESMF_MOD_DEPENDENCE)" AR="INTERNAL_BUILD_ERROR_SHOULD_NOT_NEED_AR" diffwrf ; \
539 cd ../../frame )
541 # cd ../external/io_netcdf ; \
542 # $(MAKE) NETCDFPATH="$(NETCDFPATH)" FC="$(SFC) $(FCBASEOPTS)" RANLIB="$(RANLIB)" \
543 # CPP="$(CPP)" LDFLAGS="$(LDFLAGS)" TRADFLAG="$(TRADFLAG)" ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
544 # ESMF_MOD_DEPENDENCE="$(ESMF_MOD_DEPENDENCE)" AR="$(AR)" ARFLAGS+"$(ARFLAGS)" diffwrf; \
545 # cd ../io_int ; \
546 # $(MAKE) SFC="$(SFC) $(FCBASEOPTS)" FC="$(SFC) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
547 # TRADFLAG="$(TRADFLAG)" ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
548 # ESMF_MOD_DEPENDENCE="$(ESMF_MOD_DEPENDENCE)" AR="$(AR)" "$(ARFLAGS)" diffwrf ; \
550 shared :
551 @ echo '--------------------------------------'
552 ( cd share ; $(MAKE) $(J) )
554 chemics :
555 @ echo '--------------------------------------'
556 if [ $(WRF_KPP) -eq 1 ] ; then ( cd chem ; $(MAKE) ) ; fi
557 if [ $(WRF_KPP) -eq 0 ] ; then ( cd chem ; $(MAKE) $(J) ) ; fi
558 # ( cd chem ; $(MAKE) )
559 # ( cd chem ; $(MAKE) $(J) )
561 physics :
562 @ echo '--------------------------------------'
563 ( cd phys ; $(MAKE) $(J) )
565 em_core :
566 @ echo '--------------------------------------'
567 if [ $(WRF_CHEM) -eq 0 ] ; then \
568 CF= ; \
569 else \
570 CF="$(CHEM_FILES)" ; \
572 ( cd dyn_em ; $(MAKE) $(J) CF="$(CF)" )
574 # rule used by configure to test if this will compile with MPI 2 calls MPI_Comm_f2c and _c2f
575 mpi2_test :
576 @ cd tools ; /bin/rm -f mpi2_test ; $(CC) -c mpi2_test.c ; cd ..
578 # rule used by configure to test if this will compile with MPI 2 calls MPI_Init_thread
579 mpi2_thread_test :
580 @ cd tools ; /bin/rm -f mpi2_thread_test ; $(CC) -c mpi2_thread_test.c ; cd ..
582 # rule used by configure to test if fseeko and fseeko64 are supported (for share/landread.c to work right)
583 fseek_test :
584 @ cd tools ; /bin/rm -f fseeko_test ; $(SCC) -DTEST_FSEEKO -o fseeko_test fseek_test.c ; cd ..
585 @ cd tools ; /bin/rm -f fseeko64_test ; $(SCC) -DTEST_FSEEKO64 -o fseeko64_test fseek_test.c ; cd ..
587 ### 3.b. sub-rule to build the expimental core
589 # uncomment the two lines after exp_core for EXP
590 exp_core :
591 @ echo '--------------------------------------'
592 ( cd dyn_exp ; $(MAKE) )
594 # uncomment the two lines after nmm_core for NMM
595 nmm_core :
596 @ echo '--------------------------------------'
597 ( cd dyn_nmm ; $(MAKE) )
599 toolsdir :
600 @ echo '--------------------------------------'
601 ( cd tools ; $(MAKE) CC_TOOLS="$(CC_TOOLS) -DIWORDSIZE=$(IWORDSIZE) -DMAX_HISTORY=$(MAX_HISTORY)" )
604 # ( cd tools ; $(MAKE) CC_TOOLS="$(CC_TOOLS) -DIO_MASK_SIZE=$(IO_MASK_SIZE)" )
606 # Use this target to build stand-alone tests of esmf_time_f90.
607 # Only touches external/esmf_time_f90/.
608 esmf_time_f90_only :
609 @ echo '--------------------------------------'
610 ( cd external/esmf_time_f90 ; $(MAKE) FC="$(FC) $(FCFLAGS)" CPP="$(CPP) -DTIME_F90_ONLY" tests )
612 clean :
613 @ echo 'Use the clean script'
615 # DO NOT DELETE