2 ###########################################################
3 #ARCH (WF) x86_64 Linux, ifort+gcc compiler (single-threaded, no nesting) debug
7 LAPACK = -L/opt/intel9.1-64-ser/lib -llapack -lblas
8 FC = ifort -g -debug extended -debug-parameters all -traceback -fpe0
12 RWORDSIZE = $(NATIVE_RWORDSIZE)
13 RSIZEBITS = `expr $(RWORDSIZE) \* 8`
14 PROMOTION = -real_size $(RSIZEBITS)
16 FCBASEOPTS = -w -FR -cm -I. -Vaxlib -convert big_endian -mp
18 FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
20 # machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
22 ESMF_IO_LIB = ESMFIOLIB
23 ESMF_IO_LIB_EXT = ESMFIOEXTLIB
24 INCLUDE_MODULES = -module ../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
25 -I../external -I../frame -I../share -I../phys -I../inc -I../chem
26 ARCHFLAGS = $(COREDEFS) -DLIMIT_ARGS -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) \
27 -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG
29 LDFLAGS = $(FCFLAGS) $(OMP) CONFIGURE_LDFLAGS
30 ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
31 CPP = /lib/cpp -traditional
32 POUND_DEF = $(OMPCPP) $(COREDEFS) -DNONSTANDARD_SYSTEM \
33 -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
34 CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
35 PERL = CONFIGURE_PERL_PATH
37 LIB = CONFIGURE_NETCDF_LIB_PATH ../frame/module_internal_header_util.o ../frame/pack_utils.o \
38 -L../external/esmf_time_f90 -lesmf_time \
39 -L../external/io_grib1 -lio_grib1 \
41 -L../external/io_grib_share -lio_grib_share
45 NETCDFPATH = CONFIGURE_NETCDF_PATH
48 externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time
51 ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
54 ( cd ../external/io_netcdf ; \
55 make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -FR -I. -w" )
58 ( cd ../external/io_grib_share ; \
59 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
60 FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
63 ( cd ../external/io_grib1 ; \
64 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
67 ( cd ../external/io_grib2 ; \
68 make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" FIXED="-fixed" archive)
71 ( cd ../external/io_int ; \
72 make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -w" all )
75 ( cd ../external/esmf_time_f90 ; \
76 make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
78 # compile these without high optimization to speed compile
79 solve_interface.o : solve_interface.F
80 shift_domain_em.o : shift_domain_em.F
81 module_io_mm5.o : module_io_mm5.F
82 module_si_io.o : module_si_io.F
83 module_io_wrf.o : module_io_wrf.F
84 module_domain.o : module_domain.F
85 module_start.o : module_start.F
86 module_initialize.o : module_initialize.F
87 module_initialize_b_wave.o : module_initialize_b_wave.F
88 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
89 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
90 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
91 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
92 module_initialize_real.o : module_initialize_real.F
93 start_domain.o : start_domain.F
94 wrf_bdyin.o : wrf_bdyin.F
95 wrf_bdyout.o : wrf_bdyout.F
96 wrf_histin.o : wrf_histin.F
97 wrf_histout.o : wrf_histout.F
98 wrf_inputin.o : wrf_inputin.F
99 wrf_inputout.o : wrf_inputout.F
100 wrf_restartin.o : wrf_restartin.F
101 wrf_restartout.o : wrf_restartout.F
103 wrf_bdyin.o wrf_bdyout.o \
104 wrf_histin.o wrf_histout.o \
105 wrf_inputin.o wrf_inputout.o \
106 wrf_restartin.o wrf_restartout.o \
109 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
110 module_start.o module_initialize.o module_initialize_b_wave.o \
111 module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
112 module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
113 module_initialize_real.o module_dm.o start_domain.o :
115 $(SED_FTN) $*.F > $*.b
116 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
118 $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) -O0 $*.f90
120 module_dm.o : module_dm.F
121 module_configure.o : module_configure.F
126 $(SED_FTN) $*.F > $*.b
127 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
129 $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
133 ###########################################################
134 #ARCH (WF) x86_64 Linux, ifort+gcc compiler (single-threaded, no nesting) -O2
138 LAPACK = -L/opt/intel9.1-64-ser/lib -llapack -lblas
143 RWORDSIZE = $(NATIVE_RWORDSIZE)
144 RSIZEBITS = `expr $(RWORDSIZE) \* 8`
145 PROMOTION = -real_size $(RSIZEBITS)
147 FCBASEOPTS = -w -FR -cm -I. -Vaxlib -convert big_endian -fp-model precise
148 FCOPTIM = -O3 -unroll0 -xP -fno-alias -ip
149 FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
151 SOLVE_EM_FLAGS = $(FCBASEOPTS) $(OMP) -O0
152 # machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
154 ESMF_IO_LIB = ESMFIOLIB
155 ESMF_IO_LIB_EXT = ESMFIOEXTLIB
156 INCLUDE_MODULES = -module ../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
157 -I../external -I../frame -I../share -I../phys -I../inc -I../chem
158 ARCHFLAGS = $(COREDEFS) -DLIMIT_ARGS -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) \
159 -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG
161 LDFLAGS = $(FCFLAGS) $(OMP) CONFIGURE_LDFLAGS
162 ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
163 CPP = /lib/cpp -traditional
164 POUND_DEF = $(OMPCPP) $(COREDEFS) -DNONSTANDARD_SYSTEM \
165 -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
166 CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
167 PERL = CONFIGURE_PERL_PATH
169 LIB = CONFIGURE_NETCDF_LIB_PATH ../frame/module_internal_header_util.o ../frame/pack_utils.o \
170 -L../external/esmf_time_f90 -lesmf_time \
171 -L../external/io_grib1 -lio_grib1 \
172 CONFIGURE_GRIB2_LIB \
173 -L../external/io_grib_share -lio_grib_share
177 NETCDFPATH = CONFIGURE_NETCDF_PATH
180 externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time
183 ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
186 ( cd ../external/io_netcdf ; \
187 make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -FR -I. -w" )
190 ( cd ../external/io_grib_share ; \
191 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
192 FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
195 ( cd ../external/io_grib1 ; \
196 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
199 ( cd ../external/io_grib2 ; \
200 make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" FIXED="-fixed" archive)
203 ( cd ../external/io_int ; \
204 make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -w" all )
207 ( cd ../external/esmf_time_f90 ; \
208 make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
210 # compile these without high optimization to speed compile
211 solve_interface.o : solve_interface.F
212 shift_domain_em.o : shift_domain_em.F
213 module_io_mm5.o : module_io_mm5.F
214 module_si_io.o : module_si_io.F
215 module_io_wrf.o : module_io_wrf.F
216 module_domain.o : module_domain.F
217 module_start.o : module_start.F
218 module_initialize.o : module_initialize.F
219 module_initialize_b_wave.o : module_initialize_b_wave.F
220 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
221 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
222 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
223 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
224 module_initialize_real.o : module_initialize_real.F
225 start_domain.o : start_domain.F
226 wrf_bdyin.o : wrf_bdyin.F
227 wrf_bdyout.o : wrf_bdyout.F
228 wrf_histin.o : wrf_histin.F
229 wrf_histout.o : wrf_histout.F
230 wrf_inputin.o : wrf_inputin.F
231 wrf_inputout.o : wrf_inputout.F
232 wrf_restartin.o : wrf_restartin.F
233 wrf_restartout.o : wrf_restartout.F
235 wrf_bdyin.o wrf_bdyout.o \
236 wrf_histin.o wrf_histout.o \
237 wrf_inputin.o wrf_inputout.o \
238 wrf_restartin.o wrf_restartout.o \
241 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
242 module_start.o module_initialize.o module_initialize_b_wave.o \
243 module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
244 module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
245 module_initialize_real.o module_dm.o start_domain.o :
247 $(SED_FTN) $*.F > $*.b
248 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
250 $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) -O0 $*.f90
252 solve_em.o: solve_em.F
254 $(SED_FTN) $*.F > $*.b
255 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
257 $(FC) -c $(PROMOTION) $(SOLVE_EM_FLAGS) $(MODULE_DIRS) $*.f90
259 module_dm.o : module_dm.F
260 module_configure.o : module_configure.F
265 $(SED_FTN) $*.F > $*.b
266 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
268 $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
270 ###########################################################
271 #ARCH (WF) x86_64 Linux, ifort+gcc compiler (OpenMP) debug
273 # Note: if you use ifort 8.0, please remove option -xW (for vectorization). This option
274 # has been identified to produce wrong results occationally.
276 OMP = -openmp -fpp -auto
280 LAPACK = -L/opt/intel9.1-64-ser/lib -llapack -lblas
284 RWORDSIZE = $(NATIVE_RWORDSIZE)
285 RSIZEBITS = `expr $(RWORDSIZE) \* 8`
286 PROMOTION = -real_size $(RSIZEBITS)
288 FCOPTIM = -O0 #-fno-alias -ip #-O2 -no-ipo # -xW
290 FCBASEOPTS = -FR -cm -w -I. $(FCDEBUG) -convert big_endian -fp-model precise -switch fe_use_rtl_copy_arg_inout -mP2OPT_vec_xform_level=103
291 FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
292 SOLVE_EM_FLAGS = $(FCBASEOPTS) $(OMP) -O0
293 ARCHFLAGS = $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
294 CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG \
296 # machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
298 ESMF_IO_LIB = ESMFIOLIB
299 ESMF_IO_LIB_EXT = ESMFIOEXTLIB
300 INCLUDE_MODULES = -I ../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
301 -I../frame -I../share -I../phys -I../inc -I../chem
304 LIB = CONFIGURE_NETCDF_LIB_PATH \
305 -L../external/io_grib1 -lio_grib1 \
306 CONFIGURE_GRIB2_LIB \
307 -L../external/io_grib_share -lio_grib_share \
308 ../frame/module_internal_header_util.o ../frame/pack_utils.o -L../external/esmf_time_f90 -lesmf_time
309 LDFLAGS = $(FCFLAGS) $(FCFLAGS) $(OMP) CONFIGURE_LDFLAGS
310 ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
311 CPP = /lib/cpp -traditional
312 POUND_DEF = $(OMPCPP) $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS) -DGRIB1 CONFIGURE_GRIB2_FLAG
313 CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
317 NETCDFPATH = CONFIGURE_NETCDF_PATH
320 externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time
323 ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
326 ( cd ../external/io_netcdf ; \
327 make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
330 ( cd ../external/io_grib_share ; \
331 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
332 FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
335 ( cd ../external/io_grib1 ; \
336 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
339 ( cd ../external/io_grib2 ; \
340 make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" FIXED="-fixed" archive)
343 ( cd ../external/io_int ; \
344 make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" \
345 TRADFLAG="-traditional" all )
348 ( cd ../external/esmf_time_f90 ; \
349 make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
351 # compile these without high optimization to speed compile
352 #solve_em.o : solve_em.F
353 solve_interface.o : solve_interface.F
354 shift_domain_em.o : shift_domain_em.F
355 module_io_mm5.o : module_io_mm5.F
356 module_si_io.o : module_si_io.F
357 module_io_wrf.o : module_io_wrf.F
358 module_domain.o : module_domain.F
359 module_start.o : module_start.F
360 module_initialize.o : module_initialize.F
361 module_initialize_b_wave.o : module_initialize_b_wave.F
362 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
363 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
364 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
365 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
366 module_initialize_real.o : module_initialize_real.F
367 start_domain.o : start_domain.F
368 mediation_integrate.o : mediation_integrate.F
372 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
373 module_start.o module_initialize.o module_initialize_b_wave.o \
374 module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
375 module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
376 mediation_integrate.o \
377 module_initialize_real.o start_domain.o :
379 $(SED_FTN) $*.F > $*.b
380 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
382 $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
384 module_dm.o : module_dm.F
385 module_configure.o : module_configure.F
387 solve_em.o: solve_em.F
389 $(SED_FTN) $*.F > $*.b
390 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
392 $(FC) -c $(PROMOTION) $(SOLVE_EM_FLAGS) $(MODULE_DIRS) $*.f90
397 $(SED_FTN) $*.F > $*.b
398 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
400 $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
402 ###########################################################
403 #ARCH (WF) x86_64 Linux, ifort+gcc compiler (OpenMP) -O2
405 # Note: if you use ifort 8.0, please remove option -xW (for vectorization). This option
406 # has been identified to produce wrong results occationally.
408 OMP = -openmp -fpp -auto
412 LAPACK = -L/opt/intel9.1-64-ser/lib -llapack -lblas
416 RWORDSIZE = $(NATIVE_RWORDSIZE)
417 RSIZEBITS = `expr $(RWORDSIZE) \* 8`
418 PROMOTION = -real_size $(RSIZEBITS)
420 FCOPTIM = -O2 #-fno-alias -ip #-O2 -no-ipo # -xW
422 FCBASEOPTS = -FR -cm -w -I. $(FCDEBUG) -convert big_endian -fp-model precise -switch fe_use_rtl_copy_arg_inout -mP2OPT_vec_xform_level=103
423 FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
424 SOLVE_EM_FLAGS = $(FCBASEOPTS) $(OMP) -O0
425 ARCHFLAGS = $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
426 CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG \
428 # machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
430 ESMF_IO_LIB = ESMFIOLIB
431 ESMF_IO_LIB_EXT = ESMFIOEXTLIB
432 INCLUDE_MODULES = -I ../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
433 -I../frame -I../share -I../phys -I../inc -I../chem
436 LIB = CONFIGURE_NETCDF_LIB_PATH \
437 -L../external/io_grib1 -lio_grib1 \
438 CONFIGURE_GRIB2_LIB \
439 -L../external/io_grib_share -lio_grib_share \
440 ../frame/module_internal_header_util.o ../frame/pack_utils.o -L../external/esmf_time_f90 -lesmf_time
441 LDFLAGS = $(FCFLAGS) $(FCFLAGS) $(OMP) CONFIGURE_LDFLAGS
442 ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
443 CPP = /lib/cpp -traditional
444 POUND_DEF = $(OMPCPP) $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS) -DGRIB1 CONFIGURE_GRIB2_FLAG
445 CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
449 NETCDFPATH = CONFIGURE_NETCDF_PATH
452 externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time
455 ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
458 ( cd ../external/io_netcdf ; \
459 make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
462 ( cd ../external/io_grib_share ; \
463 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
464 FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
467 ( cd ../external/io_grib1 ; \
468 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
471 ( cd ../external/io_grib2 ; \
472 make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" FIXED="-fixed" archive)
475 ( cd ../external/io_int ; \
476 make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" \
477 TRADFLAG="-traditional" all )
480 ( cd ../external/esmf_time_f90 ; \
481 make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
483 # compile these without high optimization to speed compile
484 #solve_em.o : solve_em.F
485 solve_interface.o : solve_interface.F
486 shift_domain_em.o : shift_domain_em.F
487 module_io_mm5.o : module_io_mm5.F
488 module_si_io.o : module_si_io.F
489 module_io_wrf.o : module_io_wrf.F
490 module_domain.o : module_domain.F
491 module_start.o : module_start.F
492 module_initialize.o : module_initialize.F
493 module_initialize_b_wave.o : module_initialize_b_wave.F
494 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
495 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
496 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
497 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
498 module_initialize_real.o : module_initialize_real.F
499 start_domain.o : start_domain.F
500 mediation_integrate.o : mediation_integrate.F
504 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
505 module_start.o module_initialize.o module_initialize_b_wave.o \
506 module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
507 module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
508 mediation_integrate.o \
509 module_initialize_real.o start_domain.o :
511 $(SED_FTN) $*.F > $*.b
512 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
514 $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
516 module_dm.o : module_dm.F
517 module_configure.o : module_configure.F
519 solve_em.o: solve_em.F
521 $(SED_FTN) $*.F > $*.b
522 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
524 $(FC) -c $(PROMOTION) $(SOLVE_EM_FLAGS) $(MODULE_DIRS) $*.f90
529 $(SED_FTN) $*.F > $*.b
530 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
532 $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
534 ###########################################################
535 #ARCH (WF) x86_64 Linux, ifort+gcc compiler DM-Parallel (RSL-LITE, MPICH, allows nesting) debug
537 # Note: if you use ifort 8.0, please remove option -xW (for vectorization). This option
538 # has been identified to produce wrong results occationally.
539 # Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
540 # for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
545 LAPACK = -L/opt/intel9.1-64-ser/lib -llapack -lblas
546 FC = mpif90 -f90=ifort -g -traceback -O0
547 LD = mpif90 -f90=ifort -g -traceback -O0
548 CC = mpicc -cc=gcc -g -O0
550 SFC = ifort -g -O0 -traceback
551 RWORDSIZE = $(NATIVE_RWORDSIZE)
552 RSIZEBITS = `expr $(RWORDSIZE) \* 8`
553 PROMOTION = -real_size $(RSIZEBITS)
556 FCBASEOPTS = -FR -cm -w -I. $(FCDEBUG) -convert big_endian -fp-model precise -switch fe_use_rtl_copy_arg_inout -mP2OPT_vec_xform_level=103
557 FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
558 SOLVE_EM_FLAGS = $(FCBASEOPTS) $(OMP) -O0
559 ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DDM_PARALLEL \
560 -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG \
562 CFLAGS = -w -DDM_PARALLEL $(ARCHFLAGS) \
563 -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) -I../external/RSL_LITE
564 # machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
566 ESMF_IO_LIB = ESMFIOLIB
567 ESMF_IO_LIB_EXT = ESMFIOEXTLIB
568 INCLUDE_MODULES = -module ../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
569 -I../external -I../frame -I../share -I../phys -I../inc -I../chem
572 LIB = CONFIGURE_NETCDF_LIB_PATH -L../external/RSL_LITE -lrsl_lite \
573 -L../external/io_int -lwrfio_int \
574 -L../external/io_grib1 -lio_grib1 \
575 CONFIGURE_GRIB2_LIB \
576 -L../external/io_grib_share -lio_grib_share \
577 ../frame/module_internal_header_util.o ../frame/pack_utils.o -L../external/esmf_time_f90 -lesmf_time
578 LDFLAGS = $(FCOPTIM) -convert big_endian CONFIGURE_LDFLAGS
579 ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
580 CPP = /lib/cpp -traditional
581 POUND_DEF = -DNO_RRTM_PHYSICS $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS) -DGRIB1 CONFIGURE_GRIB2_FLAG
582 CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I../external/RSL_LITE -C -P `cat ../inc/dm_comm_cpp_flags` $(ENVCOMPDEFS) $(POUND_DEF)
586 NETCDFPATH = CONFIGURE_NETCDF_PATH
589 externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 ../external/RSL_LITE/librsl_lite.a wrfio_int gen_comms.c module_dm.F esmf_time
591 gen_comms.c : ../external/RSL_LITE/gen_comms.c
592 ( /bin/cp ../tools/gen_comms_warning ../tools/gen_comms.c ; \
593 cat ../external/RSL_LITE/gen_comms.c >> ../tools/gen_comms.c )
595 module_dm.F : ../external/RSL_LITE/module_dm.F
596 ( /bin/cp module_dm_warning module_dm.F ; cat ../external/RSL_LITE/module_dm.F >> module_dm.F )
599 ( cd ../external/io_netcdf ; \
600 make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
603 ( cd ../external/io_grib_share ; \
604 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
605 FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
608 ( cd ../external/io_grib1 ; \
609 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
612 ( cd ../external/io_grib2 ; \
613 make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" FIXED="-fixed" archive)
616 ( cd ../external/io_int ; \
617 make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" all )
620 ( cd ../external/esmf_time_f90 ; \
621 make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
623 ../external/RSL_LITE/librsl_lite.a :
624 ( cd ../external/RSL_LITE ; make CC="$(CC)" CFLAGS="$(CFLAGS)" FC="$(FC) $(FCFLAGS) $(PROMOTION)" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST )
626 # compile these without high optimization to speed
627 solve_interface.o : solve_interface.F
628 shift_domain_em.o : shift_domain_em.F
629 module_io_mm5.o : module_io_mm5.F
630 module_si_io.o : module_si_io.F
631 module_io_wrf.o : module_io_wrf.F
632 module_domain.o : module_domain.F
633 module_start.o : module_start.F
634 module_initialize.o : module_initialize.F
635 module_initialize_b_wave.o : module_initialize_b_wave.F
636 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
637 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
638 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
639 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
640 module_initialize_real.o : module_initialize_real.F
641 start_domain.o : start_domain.F
642 mediation_integrate.o : mediation_integrate.F
643 start_em.o: start_em.F
647 $(SED_FTN) $*.F > $*.b
648 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
650 $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) -O0 $*.f90
654 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
655 module_start.o module_initialize.o module_initialize_b_wave.o \
656 module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
657 module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
658 mediation_integrate.o \
659 module_initialize_real.o start_domain.o :
661 $(SED_FTN) $*.F > $*.b
662 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
664 $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
666 solve_em.o: solve_em.F
669 $(SED_FTN) $*.F > $*.b
670 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
672 $(FC) -c $(PROMOTION) $(SOLVE_EM_FLAGS) $(MODULE_DIRS) $*.f90
674 module_dm.o : module_dm.F
675 module_configure.o : module_configure.F
680 $(SED_FTN) $*.F > $*.b
681 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
683 $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
685 ###########################################################
686 #ARCH (WF) x86_64 Linux, ifort+gcc compiler DM-Parallel (RSL-LITE, MPICH, allows nesting) -O2
688 # Note: if you use ifort 8.0, please remove option -xW (for vectorization). This option
689 # has been identified to produce wrong results occationally.
690 # Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
691 # for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
696 LAPACK = -L/opt/intel9.1-64-ser/lib -llapack -lblas
697 FC = mpif90 -f90=ifort
698 LD = mpif90 -f90=ifort
702 RWORDSIZE = $(NATIVE_RWORDSIZE)
703 RSIZEBITS = `expr $(RWORDSIZE) \* 8`
704 PROMOTION = -real_size $(RSIZEBITS)
705 FCOPTIM = -O2 #-O3 -unroll0 -xP -fno-alias -ip
707 FCBASEOPTS = -FR -cm -w -I. $(FCDEBUG) -convert big_endian -fp-model precise -switch fe_use_rtl_copy_arg_inout -mP2OPT_vec_xform_level=103
708 FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
709 SOLVE_EM_FLAGS = $(FCBASEOPTS) $(OMP) -O0
710 ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DDM_PARALLEL \
711 -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG \
713 CFLAGS = -w -DDM_PARALLEL $(ARCHFLAGS) \
714 -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) -I../external/RSL_LITE
715 # machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
717 ESMF_IO_LIB = ESMFIOLIB
718 ESMF_IO_LIB_EXT = ESMFIOEXTLIB
719 INCLUDE_MODULES = -module ../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
720 -I../external -I../frame -I../share -I../phys -I../inc -I../chem
723 LIB = CONFIGURE_NETCDF_LIB_PATH -L../external/RSL_LITE -lrsl_lite \
724 -L../external/io_int -lwrfio_int \
725 -L../external/io_grib1 -lio_grib1 \
726 CONFIGURE_GRIB2_LIB \
727 -L../external/io_grib_share -lio_grib_share \
728 ../frame/module_internal_header_util.o ../frame/pack_utils.o -L../external/esmf_time_f90 -lesmf_time
729 LDFLAGS = $(FCOPTIM) -convert big_endian CONFIGURE_LDFLAGS
730 ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
731 CPP = /lib/cpp -traditional
732 POUND_DEF = -DNO_RRTM_PHYSICS $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS) -DGRIB1 CONFIGURE_GRIB2_FLAG
733 CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I../external/RSL_LITE -C -P `cat ../inc/dm_comm_cpp_flags` $(ENVCOMPDEFS) $(POUND_DEF)
737 NETCDFPATH = CONFIGURE_NETCDF_PATH
740 externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 ../external/RSL_LITE/librsl_lite.a wrfio_int gen_comms.c module_dm.F esmf_time
742 gen_comms.c : ../external/RSL_LITE/gen_comms.c
743 ( /bin/cp ../tools/gen_comms_warning ../tools/gen_comms.c ; \
744 cat ../external/RSL_LITE/gen_comms.c >> ../tools/gen_comms.c )
746 module_dm.F : ../external/RSL_LITE/module_dm.F
747 ( /bin/cp module_dm_warning module_dm.F ; cat ../external/RSL_LITE/module_dm.F >> module_dm.F )
750 ( cd ../external/io_netcdf ; \
751 make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
754 ( cd ../external/io_grib_share ; \
755 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
756 FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
759 ( cd ../external/io_grib1 ; \
760 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
763 ( cd ../external/io_grib2 ; \
764 make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" FIXED="-fixed" archive)
767 ( cd ../external/io_int ; \
768 make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" all )
771 ( cd ../external/esmf_time_f90 ; \
772 make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
774 ../external/RSL_LITE/librsl_lite.a :
775 ( cd ../external/RSL_LITE ; make CC="$(CC)" CFLAGS="$(CFLAGS)" FC="$(FC) $(FCFLAGS) $(PROMOTION)" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST )
777 # compile these without high optimization to speed
778 solve_interface.o : solve_interface.F
779 shift_domain_em.o : shift_domain_em.F
780 module_io_mm5.o : module_io_mm5.F
781 module_si_io.o : module_si_io.F
782 module_io_wrf.o : module_io_wrf.F
783 module_domain.o : module_domain.F
784 module_start.o : module_start.F
785 module_initialize.o : module_initialize.F
786 module_initialize_b_wave.o : module_initialize_b_wave.F
787 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
788 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
789 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
790 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
791 module_initialize_real.o : module_initialize_real.F
792 start_domain.o : start_domain.F
793 mediation_integrate.o : mediation_integrate.F
794 start_em.o: start_em.F
798 $(SED_FTN) $*.F > $*.b
799 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
801 $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) -O0 $*.f90
805 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
806 module_start.o module_initialize.o module_initialize_b_wave.o \
807 module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
808 module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
809 mediation_integrate.o \
810 module_initialize_real.o start_domain.o :
812 $(SED_FTN) $*.F > $*.b
813 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
815 $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
817 solve_em.o: solve_em.F
820 $(SED_FTN) $*.F > $*.b
821 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
823 $(FC) -c $(PROMOTION) $(SOLVE_EM_FLAGS) $(MODULE_DIRS) $*.f90
825 module_dm.o : module_dm.F
826 module_configure.o : module_configure.F
831 $(SED_FTN) $*.F > $*.b
832 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
834 $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
837 ###########################################################
838 #ARCH (WF) x86_64 Linux, ifort+gcc compiler DM-Parallel+OMP (RSL-LITE, MPICH, allows nesting) debug
840 # Note: if you use ifort 8.0, please remove option -xW (for vectorization). This option
841 # has been identified to produce wrong results occationally.
842 # Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
843 # for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
846 OMP = -openmp -fpp -auto
850 LAPACK = -L/opt/intel9.1-64-ser/lib -llapack -lblas
851 FC = mpif90 -f90=ifort -g -traceback
852 LD = mpif90 -f90=ifort -g -traceback
853 CC = mpicc -cc=gcc -g
855 SFC = ifort -g -traceback
856 RWORDSIZE = $(NATIVE_RWORDSIZE)
857 RSIZEBITS = `expr $(RWORDSIZE) \* 8`
858 PROMOTION = -real_size $(RSIZEBITS)
859 FCOPTIM = -O0 #-O3 -unroll0 -xP -fno-alias -ip
861 FCBASEOPTS = -FR -cm -w -I. $(FCDEBUG) -convert big_endian -fp-model precise -switch fe_use_rtl_copy_arg_inout -mP2OPT_vec_xform_level=103
862 FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
863 SOLVE_EM_FLAGS = $(FCBASEOPTS) $(OMP) -O0
864 ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DDM_PARALLEL \
865 -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG \
867 CFLAGS = -w -DDM_PARALLEL $(ARCHFLAGS) \
868 -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) -I../external/RSL_LITE
869 # machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
871 ESMF_IO_LIB = ESMFIOLIB
872 ESMF_IO_LIB_EXT = ESMFIOEXTLIB
873 INCLUDE_MODULES = -module ../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
874 -I../external -I../frame -I../share -I../phys -I../inc -I../chem
877 LIB = CONFIGURE_NETCDF_LIB_PATH -L../external/RSL_LITE -lrsl_lite \
878 -L../external/io_int -lwrfio_int \
879 -L../external/io_grib1 -lio_grib1 \
880 CONFIGURE_GRIB2_LIB \
881 -L../external/io_grib_share -lio_grib_share \
882 ../frame/module_internal_header_util.o ../frame/pack_utils.o -L../external/esmf_time_f90 -lesmf_time
883 LDFLAGS = $(FCOPTIM) -convert big_endian $(OMP) CONFIGURE_LDFLAGS
884 ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
885 CPP = /lib/cpp -traditional
886 POUND_DEF = -DNO_RRTM_PHYSICS $(OMPCPP) $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS) -DGRIB1 CONFIGURE_GRIB2_FLAG
887 CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I../external/RSL_LITE -C -P `cat ../inc/dm_comm_cpp_flags` $(ENVCOMPDEFS) $(POUND_DEF)
891 NETCDFPATH = CONFIGURE_NETCDF_PATH
894 externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 ../external/RSL_LITE/librsl_lite.a wrfio_int gen_comms.c module_dm.F esmf_time
896 gen_comms.c : ../external/RSL_LITE/gen_comms.c
897 ( /bin/cp ../tools/gen_comms_warning ../tools/gen_comms.c ; \
898 cat ../external/RSL_LITE/gen_comms.c >> ../tools/gen_comms.c )
900 module_dm.F : ../external/RSL_LITE/module_dm.F
901 ( /bin/cp module_dm_warning module_dm.F ; cat ../external/RSL_LITE/module_dm.F >> module_dm.F )
904 ( cd ../external/io_netcdf ; \
905 make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
908 ( cd ../external/io_grib_share ; \
909 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
910 FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
913 ( cd ../external/io_grib1 ; \
914 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
917 ( cd ../external/io_grib2 ; \
918 make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" FIXED="-fixed" archive)
921 ( cd ../external/io_int ; \
922 make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" all )
925 ( cd ../external/esmf_time_f90 ; \
926 make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
928 ../external/RSL_LITE/librsl_lite.a :
929 ( cd ../external/RSL_LITE ; make CC="$(CC)" CFLAGS="$(CFLAGS)" FC="$(FC) $(FCFLAGS) $(PROMOTION)" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST )
931 # compile these without high optimization to speed
932 solve_interface.o : solve_interface.F
933 shift_domain_em.o : shift_domain_em.F
934 module_io_mm5.o : module_io_mm5.F
935 module_si_io.o : module_si_io.F
936 module_io_wrf.o : module_io_wrf.F
937 module_domain.o : module_domain.F
938 module_start.o : module_start.F
939 module_initialize.o : module_initialize.F
940 module_initialize_b_wave.o : module_initialize_b_wave.F
941 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
942 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
943 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
944 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
945 module_initialize_real.o : module_initialize_real.F
946 start_domain.o : start_domain.F
947 mediation_integrate.o : mediation_integrate.F
948 start_em.o: start_em.F
952 $(SED_FTN) $*.F > $*.b
953 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
955 $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) -O0 $*.f90
959 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
960 module_start.o module_initialize.o module_initialize_b_wave.o \
961 module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
962 module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
963 mediation_integrate.o \
964 module_initialize_real.o start_domain.o :
966 $(SED_FTN) $*.F > $*.b
967 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
969 $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
971 module_dm.o : module_dm.F
972 module_configure.o : module_configure.F
974 solve_em.o: solve_em.F
976 $(SED_FTN) $*.F > $*.b
977 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
979 $(FC) -c $(PROMOTION) $(SOLVE_EM_FLAGS) $(MODULE_DIRS) $*.f90
984 $(SED_FTN) $*.F > $*.b
985 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
987 $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
989 ###########################################################
990 #ARCH (WF) x86_64 Linux, ifort+gcc compiler DM-Parallel+OMP (RSL-LITE, MPICH, allows nesting) -O2
992 # Note: if you use ifort 8.0, please remove option -xW (for vectorization). This option
993 # has been identified to produce wrong results occationally.
994 # Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
995 # for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
998 OMP = -openmp -fpp -auto
1002 LAPACK = -L/opt/intel9.1-64-ser/lib -llapack -lblas
1003 FC = mpif90 -f90=ifort
1004 LD = mpif90 -f90=ifort
1008 RWORDSIZE = $(NATIVE_RWORDSIZE)
1009 RSIZEBITS = `expr $(RWORDSIZE) \* 8`
1010 PROMOTION = -real_size $(RSIZEBITS)
1011 FCOPTIM = -O2 #-O3 -unroll0 -xP -fno-alias -ip
1013 FCBASEOPTS = -FR -cm -w -I. $(FCDEBUG) -convert big_endian -fp-model precise -switch fe_use_rtl_copy_arg_inout -mP2OPT_vec_xform_level=103
1014 FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
1015 SOLVE_EM_FLAGS = $(FCBASEOPTS) $(OMP) -O0
1016 ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DDM_PARALLEL \
1017 -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG \
1019 CFLAGS = -w -DDM_PARALLEL $(ARCHFLAGS) \
1020 -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) -I../external/RSL_LITE
1021 # machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
1023 ESMF_IO_LIB = ESMFIOLIB
1024 ESMF_IO_LIB_EXT = ESMFIOEXTLIB
1025 INCLUDE_MODULES = -module ../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
1026 -I../external -I../frame -I../share -I../phys -I../inc -I../chem
1029 LIB = CONFIGURE_NETCDF_LIB_PATH -L../external/RSL_LITE -lrsl_lite \
1030 -L../external/io_int -lwrfio_int \
1031 -L../external/io_grib1 -lio_grib1 \
1032 CONFIGURE_GRIB2_LIB \
1033 -L../external/io_grib_share -lio_grib_share \
1034 ../frame/module_internal_header_util.o ../frame/pack_utils.o -L../external/esmf_time_f90 -lesmf_time
1035 LDFLAGS = $(FCOPTIM) -convert big_endian $(OMP) CONFIGURE_LDFLAGS
1036 ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
1037 CPP = /lib/cpp -traditional
1038 POUND_DEF = -DNO_RRTM_PHYSICS $(OMPCPP) $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS) -DGRIB1 CONFIGURE_GRIB2_FLAG
1039 CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I../external/RSL_LITE -C -P `cat ../inc/dm_comm_cpp_flags` $(ENVCOMPDEFS) $(POUND_DEF)
1043 NETCDFPATH = CONFIGURE_NETCDF_PATH
1046 externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 ../external/RSL_LITE/librsl_lite.a wrfio_int gen_comms.c module_dm.F esmf_time
1048 gen_comms.c : ../external/RSL_LITE/gen_comms.c
1049 ( /bin/cp ../tools/gen_comms_warning ../tools/gen_comms.c ; \
1050 cat ../external/RSL_LITE/gen_comms.c >> ../tools/gen_comms.c )
1052 module_dm.F : ../external/RSL_LITE/module_dm.F
1053 ( /bin/cp module_dm_warning module_dm.F ; cat ../external/RSL_LITE/module_dm.F >> module_dm.F )
1056 ( cd ../external/io_netcdf ; \
1057 make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
1060 ( cd ../external/io_grib_share ; \
1061 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
1062 FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
1065 ( cd ../external/io_grib1 ; \
1066 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
1069 ( cd ../external/io_grib2 ; \
1070 make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" FIXED="-fixed" archive)
1073 ( cd ../external/io_int ; \
1074 make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" all )
1077 ( cd ../external/esmf_time_f90 ; \
1078 make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
1080 ../external/RSL_LITE/librsl_lite.a :
1081 ( cd ../external/RSL_LITE ; make CC="$(CC)" CFLAGS="$(CFLAGS)" FC="$(FC) $(FCFLAGS) $(PROMOTION)" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST )
1083 # compile these without high optimization to speed
1084 solve_interface.o : solve_interface.F
1085 shift_domain_em.o : shift_domain_em.F
1086 module_io_mm5.o : module_io_mm5.F
1087 module_si_io.o : module_si_io.F
1088 module_io_wrf.o : module_io_wrf.F
1089 module_domain.o : module_domain.F
1090 module_start.o : module_start.F
1091 module_initialize.o : module_initialize.F
1092 module_initialize_b_wave.o : module_initialize_b_wave.F
1093 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
1094 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
1095 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
1096 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
1097 module_initialize_real.o : module_initialize_real.F
1098 start_domain.o : start_domain.F
1099 mediation_integrate.o : mediation_integrate.F
1100 start_em.o: start_em.F
1104 $(SED_FTN) $*.F > $*.b
1105 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
1107 $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) -O0 $*.f90
1111 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
1112 module_start.o module_initialize.o module_initialize_b_wave.o \
1113 module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
1114 module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
1115 mediation_integrate.o \
1116 module_initialize_real.o start_domain.o :
1118 $(SED_FTN) $*.F > $*.b
1119 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
1121 $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
1123 module_dm.o : module_dm.F
1124 module_configure.o : module_configure.F
1126 solve_em.o: solve_em.F
1128 $(SED_FTN) $*.F > $*.b
1129 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
1131 $(FC) -c $(PROMOTION) $(SOLVE_EM_FLAGS) $(MODULE_DIRS) $*.f90
1133 module_configure.o \
1136 $(SED_FTN) $*.F > $*.b
1137 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
1139 $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
1142 ###########################################################
1143 #ARCH (WALNUT) x86_64 Linux, PGI compiler (Single-threaded, no nesting) debug
1144 # Note that for 5.1.x comment out -Mpia=fast
1151 RWORDSIZE = $(NATIVE_RWORDSIZE)
1152 PROMOTION = -r$(RWORDSIZE) -i4
1153 CFLAGS = -DLANDREAD_STUB
1154 FCOPTIM = #-fastsse #-Mipa=fast
1156 #FCBASEOPTS = -w -byteswapio -Ktrap=fp -Mfree $(FCDEBUG)
1157 FCBASEOPTS = -w -byteswapio -Mfree $(FCDEBUG)
1158 FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
1159 ARCHFLAGS = $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
1160 CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG \
1161 -DLIMIT_ARGS -DLANDREAD_STUB
1162 # machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
1164 ESMF_IO_LIB = ESMFIOLIB
1165 ESMF_IO_LIB_EXT = ESMFIOEXTLIB
1166 INCLUDE_MODULES = -module ../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
1167 -I../frame -I../share -I../phys -I../inc -I../chem
1170 LIB = CONFIGURE_NETCDF_LIB_PATH \
1171 -L../external/io_grib1 -lio_grib1 \
1172 CONFIGURE_GRIB2_LIB \
1173 -L../external/io_grib_share -lio_grib_share \
1174 ../frame/module_internal_header_util.o ../frame/pack_utils.o -L../external/esmf_time_f90 -lesmf_time
1175 LDFLAGS = CONFIGURE_LDFLAGS
1176 ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
1177 CPP = /lib/cpp -C -P -traditional
1178 POUND_DEF = -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
1179 CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
1183 NETCDFPATH = CONFIGURE_NETCDF_PATH
1186 externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time
1189 ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
1192 ( cd ../external/io_netcdf ; \
1193 make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
1196 ( cd ../external/io_grib_share ; \
1197 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
1200 ( cd ../external/io_grib1 ; \
1201 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
1204 ( cd ../external/io_grib2 ; \
1205 make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" FIXED="-Mfixed" archive)
1208 ( cd ../external/io_int ; \
1209 make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" \
1210 TRADFLAG="-traditional" all )
1213 ( cd ../external/esmf_time_f90 ; \
1214 make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
1216 # compile these without high optimization to speed compile
1217 solve_interface.o : solve_interface.F
1218 shift_domain_em.o : shift_domain_em.F
1219 module_io_mm5.o : module_io_mm5.F
1220 module_si_io.o : module_si_io.F
1221 module_io_wrf.o : module_io_wrf.F
1222 module_domain.o : module_domain.F
1223 module_start.o : module_start.F
1224 module_initialize.o : module_initialize.F
1225 module_initialize_b_wave.o : module_initialize_b_wave.F
1226 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
1227 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
1228 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
1229 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
1230 module_initialize_real.o : module_initialize_real.F
1231 module_dm.o : module_dm.F
1232 start_domain.o : start_domain.F
1233 mediation_integrate.o : mediation_integrate.F
1234 module_configure.o : module_configure.F
1238 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
1239 module_start.o module_initialize.o module_initialize_b_wave.o \
1240 module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
1241 module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
1242 mediation_integrate.o \
1243 module_configure.o \
1244 module_initialize_real.o module_dm.o start_domain.o :
1246 $(SED_FTN) $*.F > $*.b
1247 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
1249 $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
1251 ###########################################################
1252 #ARCH (WALNUT) x86_64 Linux, PGI compiler (Single-threaded, no nesting) -O2
1253 # Note that for 5.1.x comment out -Mpia=fast
1260 RWORDSIZE = $(NATIVE_RWORDSIZE)
1261 PROMOTION = -r$(RWORDSIZE) -i4
1262 CFLAGS = -DLANDREAD_STUB
1263 FCOPTIM = -O2 -fastsse #-Mipa=fast
1265 #FCBASEOPTS = -w -byteswapio -Ktrap=fp -Mfree $(FCDEBUG)
1266 FCBASEOPTS = -w -byteswapio -Mfree $(FCDEBUG)
1267 FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
1268 ARCHFLAGS = $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
1269 CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG \
1270 -DLIMIT_ARGS -DLANDREAD_STUB
1271 # machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
1273 ESMF_IO_LIB = ESMFIOLIB
1274 ESMF_IO_LIB_EXT = ESMFIOEXTLIB
1275 INCLUDE_MODULES = -module ../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
1276 -I../frame -I../share -I../phys -I../inc -I../chem
1279 LIB = CONFIGURE_NETCDF_LIB_PATH \
1280 -L../external/io_grib1 -lio_grib1 \
1281 CONFIGURE_GRIB2_LIB \
1282 -L../external/io_grib_share -lio_grib_share \
1283 ../frame/module_internal_header_util.o ../frame/pack_utils.o -L../external/esmf_time_f90 -lesmf_time
1284 LDFLAGS = CONFIGURE_LDFLAGS
1285 ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
1286 CPP = /lib/cpp -C -P -traditional
1287 POUND_DEF = -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
1288 CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
1292 NETCDFPATH = CONFIGURE_NETCDF_PATH
1295 externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time
1298 ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
1301 ( cd ../external/io_netcdf ; \
1302 make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
1305 ( cd ../external/io_grib_share ; \
1306 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
1309 ( cd ../external/io_grib1 ; \
1310 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
1313 ( cd ../external/io_grib2 ; \
1314 make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" FIXED="-Mfixed" archive)
1317 ( cd ../external/io_int ; \
1318 make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" \
1319 TRADFLAG="-traditional" all )
1322 ( cd ../external/esmf_time_f90 ; \
1323 make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
1325 # compile these without high optimization to speed compile
1326 solve_interface.o : solve_interface.F
1327 shift_domain_em.o : shift_domain_em.F
1328 module_io_mm5.o : module_io_mm5.F
1329 module_si_io.o : module_si_io.F
1330 module_io_wrf.o : module_io_wrf.F
1331 module_domain.o : module_domain.F
1332 module_start.o : module_start.F
1333 module_initialize.o : module_initialize.F
1334 module_initialize_b_wave.o : module_initialize_b_wave.F
1335 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
1336 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
1337 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
1338 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
1339 module_initialize_real.o : module_initialize_real.F
1340 module_dm.o : module_dm.F
1341 start_domain.o : start_domain.F
1342 mediation_integrate.o : mediation_integrate.F
1343 module_configure.o : module_configure.F
1347 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
1348 module_start.o module_initialize.o module_initialize_b_wave.o \
1349 module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
1350 module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
1351 mediation_integrate.o \
1352 module_configure.o \
1353 module_initialize_real.o module_dm.o start_domain.o :
1355 $(SED_FTN) $*.F > $*.b
1356 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
1358 $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
1361 ###########################################################
1362 #ARCH (WALNUT) x86_64 Linux, PGI compiler SM-Parallel (OpenMP, no nesting) -O2
1370 RWORDSIZE = $(NATIVE_RWORDSIZE)
1372 PROMOTION = -r$(RWORDSIZE) -i4
1374 FCOPTIM = -O2 # -fast
1376 #FCBASEOPTS = -w -byteswapio -Ktrap=fp -Mfree $(FCDEBUG)
1377 FCBASEOPTS = -w -byteswapio -Mfree $(FCDEBUG) # -Mlfs
1378 FCFLAGS = $(FCOPTIM) $(FCBASEOPTS) $(OMP)
1379 ARCHFLAGS = $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
1380 CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG \
1382 # machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
1384 ESMF_IO_LIB = ESMFIOLIB
1385 ESMF_IO_LIB_EXT = ESMFIOEXTLIB
1386 INCLUDE_MODULES = -module ../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
1387 -I../frame -I../share -I../phys -I../chem -I../inc
1390 LIB = CONFIGURE_NETCDF_LIB_PATH \
1391 -L../external/io_grib1 -lio_grib1 \
1392 CONFIGURE_GRIB2_LIB \
1393 -L../external/io_grib_share -lio_grib_share \
1394 ../frame/module_internal_header_util.o ../frame/pack_utils.o -L../external/esmf_time_f90 -lesmf_time
1395 LDFLAGS = $(FCFLAGS) $(OMP) CONFIGURE_LDFLAGS
1396 ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
1397 CPP = /lib/cpp -C -P -traditional
1398 POUND_DEF = $(OMPCPP) -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
1399 CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
1403 NETCDFPATH = CONFIGURE_NETCDF_PATH
1406 externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time
1409 ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
1412 ( cd ../external/io_netcdf ; \
1413 make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
1416 ( cd ../external/io_grib_share ; \
1417 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
1420 ( cd ../external/io_grib1 ; \
1421 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive )
1424 ( cd ../external/io_grib2 ; \
1425 make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" FIXED="-Mfixed" archive )
1428 ( cd ../external/io_int ; \
1429 make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" \
1430 TRADFLAG="-traditional" all )
1433 ( cd ../external/esmf_time_f90 ; \
1434 make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
1436 # compile these without high optimization to speed compile
1437 solve_interface.o : solve_interface.F
1438 shift_domain_em.o : shift_domain_em.F
1439 module_io_mm5.o : module_io_mm5.F
1440 module_si_io.o : module_si_io.F
1441 module_io_wrf.o : module_io_wrf.F
1442 module_domain.o : module_domain.F
1443 module_start.o : module_start.F
1444 module_initialize.o : module_initialize.F
1445 module_initialize_b_wave.o : module_initialize_b_wave.F
1446 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
1447 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
1448 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
1449 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
1450 module_initialize_real.o : module_initialize_real.F
1451 module_dm.o : module_dm.F
1452 start_domain.o : start_domain.F
1453 mediation_integrate.o : mediation_integrate.F
1454 module_configure.o : module_configure.F
1458 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
1459 module_start.o module_initialize.o module_initialize_b_wave.o \
1460 module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
1461 module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
1462 module_configure.o \
1463 mediation_integrate.o \
1464 module_initialize_real.o module_dm.o start_domain.o :
1466 $(SED_FTN) $*.F > $*.b
1467 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
1469 $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
1470 #PGI if [ ! -e $@ ] ; then \
1471 #PGI sleep 10 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
1473 #PGI if [ ! -e $@ ] ; then \
1474 #PGI sleep 30 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
1476 #PGI if [ ! -e $@ ] ; then \
1477 #PGI sleep 300 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
1480 ###########################################################
1481 #ARCH (WALNUT) x86_64 Linux, PGI compiler DM-Parallel (RSL_LITE, MPICH, Allows nesting) -O2
1483 # Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
1484 # for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
1488 FC = mpif90 -f90=pgf90
1489 LD = mpif90 -f90=pgf90
1493 RWORDSIZE = $(NATIVE_RWORDSIZE)
1494 PROMOTION = -r$(RWORDSIZE) -i4
1495 CFLAGS = -DDM_PARALLEL \
1496 -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) -I../external/RSL_LITE
1498 FCOPTIM = -O2 # -fast
1500 #FCBASEOPTS = -w -byteswapio -Ktrap=fp -Mfree $(FCDEBUG)
1501 FCBASEOPTS = -w -byteswapio -Mfree $(FCDEBUG) # -Mlfs
1502 #Options for Debian Sarge systems
1503 #FCBASEOPTS = -w -byteswapio -Mfree -Mipa=fast,inline,safe $(FCDEBUG) # -Mlfs
1504 FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
1505 ARCHFLAGS = $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DDM_PARALLEL \
1506 -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG \
1507 -DLIMIT_ARGS -DNMM_NEST=$(WRF_NMM_NEST)
1508 # machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
1510 ESMF_IO_LIB = ESMFIOLIB
1511 ESMF_IO_LIB_EXT = ESMFIOEXTLIB
1512 INCLUDE_MODULES = -module ../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
1513 -I../external -I../frame -I../share -I../phys -I../chem -I../inc
1516 LIB = CONFIGURE_NETCDF_LIB_PATH -L../external/RSL_LITE -lrsl_lite \
1517 -L../external/io_grib1 -lio_grib1 \
1518 CONFIGURE_GRIB2_LIB \
1519 -L../external/io_grib_share -lio_grib_share \
1520 -L../external/io_int -lwrfio_int \
1521 ../frame/module_internal_header_util.o ../frame/pack_utils.o -L../external/esmf_time_f90 -lesmf_time
1522 LDFLAGS = -byteswapio $(FCFLAGS) CONFIGURE_LDFLAGS
1523 ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
1524 CPP = /lib/cpp -C -P -traditional
1525 POUND_DEF = -DNO_RRTM_PHYSICS -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
1526 CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I../external/RSL_LITE -C -P `cat ../inc/dm_comm_cpp_flags` $(ENVCOMPDEFS) $(POUND_DEF)
1530 NETCDFPATH = CONFIGURE_NETCDF_PATH
1533 externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 ../external/RSL_LITE/librsl_lite.a wrfio_int gen_comms.c module_dm.F esmf_time
1535 gen_comms.c : ../external/RSL_LITE/gen_comms.c
1536 ( /bin/cp ../tools/gen_comms_warning ../tools/gen_comms.c ; \
1537 cat ../external/RSL_LITE/gen_comms.c >> ../tools/gen_comms.c )
1539 module_dm.F : ../external/RSL_LITE/module_dm.F
1540 ( /bin/cp module_dm_warning module_dm.F ; cat ../external/RSL_LITE/module_dm.F >> module_dm.F )
1543 ( cd ../external/io_netcdf ; \
1544 make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
1547 ( cd ../external/io_grib_share ; \
1548 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
1551 ( cd ../external/io_grib1 ; \
1552 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
1555 ( cd ../external/io_grib2 ; \
1556 make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" FIXED="-Mfixed" archive)
1559 ( cd ../external/io_int ; \
1560 make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" all )
1563 ( cd ../external/esmf_time_f90 ; \
1564 make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
1566 ../external/RSL_LITE/librsl_lite.a :
1567 ( cd ../external/RSL_LITE ; make CC="$(CC)" FC="$(FC) $(FCFLAGS) $(PROMOTION) -byteswapio" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST )
1569 # compile these without high optimization to speed compile
1570 solve_interface.o : solve_interface.F
1571 shift_domain_em.o : shift_domain_em.F
1572 module_io_mm5.o : module_io_mm5.F
1573 module_si_io.o : module_si_io.F
1574 module_io_wrf.o : module_io_wrf.F
1575 module_domain.o : module_domain.F
1576 module_start.o : module_start.F
1577 module_initialize.o : module_initialize.F
1578 module_initialize_b_wave.o : module_initialize_b_wave.F
1579 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
1580 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
1581 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
1582 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
1583 module_initialize_real.o : module_initialize_real.F
1584 module_dm.o : module_dm.F
1585 start_domain.o : start_domain.F
1586 mediation_integrate.o : mediation_integrate.F
1587 module_configure.o : module_configure.F
1591 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
1592 module_start.o module_initialize.o module_initialize_b_wave.o \
1593 module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
1594 module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
1595 module_configure.o \
1596 mediation_integrate.o \
1597 module_initialize_real.o module_dm.o start_domain.o :
1599 $(SED_FTN) $*.F > $*.b
1600 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
1602 $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
1603 #PGI if [ ! -e $@ ] ; then \
1604 #PGI sleep 10 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
1606 #PGI if [ ! -e $@ ] ; then \
1607 #PGI sleep 30 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
1609 #PGI if [ ! -e $@ ] ; then \
1610 #PGI sleep 300 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
1613 ###########################################################
1614 #ARCH Darwin Intel, g95 compiler (Single-threaded, no nesting, debug)
1620 RWORDSIZE = $(NATIVE_RWORDSIZE)
1622 # g95 does not like -r4. if you want promotion to -r8 add it to PROMOTION below
1623 #PROMOTION = -r$(RWORDSIZE) -i4
1625 CFLAGS = -w -DF2CSTYLE -DMACOS
1626 FCOPTIM = -O0 # -fast
1628 FCBASEOPTS = -Wno=101,139,155,158 -fendian=big -ffree-form -ffree-line-length-huge $(FCDEBUG) # -Mlfs
1629 FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
1630 ARCHFLAGS = $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
1631 CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG \
1632 -DLIMIT_ARGS -DG95 -DMACOS
1633 # machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
1635 ESMF_IO_LIB = ESMFIOLIB
1636 ESMF_IO_LIB_EXT = ESMFIOEXTLIB
1637 INCLUDE_MODULES = -fmod=../main -I../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
1638 -I../frame -I../share -I../phys -I../chem -I../inc
1641 LIB = CONFIGURE_NETCDF_LIB_PATH \
1642 -L../external/io_grib1 -lio_grib1 \
1643 CONFIGURE_GRIB2_LIB \
1644 -L../external/io_grib_share -lio_grib_share \
1645 ../frame/module_internal_header_util.o ../frame/pack_utils.o -L../external/esmf_time_f90 -lesmf_time
1646 LDFLAGS = $(FCFLAGS) CONFIGURE_LDFLAGS
1647 ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
1648 CPP = cpp -C -P -traditional
1649 POUND_DEF = $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
1650 CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
1654 NETCDFPATH = CONFIGURE_NETCDF_PATH
1657 #### Override default sed command and script for Fortran source files ####
1658 #### This sed script does not pass __FILE__ and __LINE__ to wrf_error_fatal() ####
1659 #### because the Fortran compiler complains about long source lines. ####
1660 SED_FTN = sed -f ../arch/no_file_line.sed
1662 externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time
1665 ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
1668 ( cd ../external/io_netcdf ; \
1669 make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
1672 ( cd ../external/io_grib_share ; \
1673 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
1676 ( cd ../external/io_grib1 ; \
1677 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive )
1680 ( cd ../external/io_grib2 ; \
1681 make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" FIXED="-ffixed-form" archive)
1684 ( cd ../external/io_int ; \
1685 make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" \
1686 TRADFLAG="-traditional" all )
1689 ( cd ../external/esmf_time_f90 ; \
1690 make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
1692 # compile these without high optimization to speed compile
1693 solve_interface.o : solve_interface.F
1694 shift_domain_em.o : shift_domain_em.F
1695 module_io_mm5.o : module_io_mm5.F
1696 module_si_io.o : module_si_io.F
1697 module_io_wrf.o : module_io_wrf.F
1698 module_domain.o : module_domain.F
1699 module_start.o : module_start.F
1700 module_initialize.o : module_initialize.F
1701 module_initialize_b_wave.o : module_initialize_b_wave.F
1702 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
1703 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
1704 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
1705 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
1706 module_initialize_real.o : module_initialize_real.F
1707 module_dm.o : module_dm.F
1708 start_domain.o : start_domain.F
1709 mediation_integrate.o : mediation_integrate.F
1710 module_configure.o : module_configure.F
1714 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
1715 module_start.o module_initialize.o module_initialize_b_wave.o \
1716 module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
1717 module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
1718 mediation_integrate.o \
1719 module_configure.o \
1720 module_initialize_real.o module_dm.o start_domain.o :
1722 $(SED_FTN) $*.F > $*.b
1723 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
1725 $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
1727 ###########################################################
1728 #ARCH (FROST) Linux ppc64 BG (Blue Gene, RSL_LITE, IBM-MPI)
1731 BGL_SYS = /bgl/BlueLight/ppcfloor/bglsys
1732 MPI_INC = -I$(BGL_SYS)/include
1733 MPI_LIB = -L$(BGL_SYS)/lib -lmpich.rts -lmsglayer.rts -lrts.rts -ldevices.rts
1734 TRACE_LIB = -L/contrib/bgl/mpi_trace -lmpitrace_c
1743 RWORDSIZE = $(NATIVE_RWORDSIZE)
1744 PROMOTION = -qrealsize=$(RWORDSIZE) -qintsize=4
1745 CFLAGS = -DNOUNDERSCORE -DNCARIBM_NOC99 $(MPI_INC) -I../external/RSL_LITE -DLANDREAD_STUB -DDM_PARALLEL
1746 FCOPTIM = -O2 -qarch=440
1747 FCDEBUG = # -qnoopt -qfullpath -qarch=440
1749 FCBASEOPTS = -qspill=20000 $(FCDEBUG) -qmaxmem=64000 $(MPI_INC) -w #-qflttrap=zerodivide:invalid:enable -qsigtrap
1750 FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)
1752 INCLUDE_MODULES = -I../external/io_netcdf -I../external/io_pnetcdf -I../external/io_int -I../external/esmf_time_f90 \
1753 -I../frame -I../share -I../phys -I../chem -I../inc
1755 ARCHFLAGS = $(COREDEFS) -DDM_PARALLEL -DRSL_LITE -DINTIO -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
1756 CONFIGURE_NETCDF_FLAG CONFIGURE_PNETCDF_FLAG \
1757 -DLIMIT_ARGS -DNATIVE_MASSV -DLANDREAD_STUB
1761 LIB = CONFIGURE_NETCDF_LIB_PATH CONFIGURE_PNETCDF_LIB_PATH \
1762 -L../external/RSL_LITE -lrsl_lite -L/bgl/local/lib -lmass -lmassv \
1763 -L../external/io_int -lwrfio_int \
1764 ../frame/module_internal_header_util.o ../frame/pack_utils.o -L../external/esmf_time_f90 -lesmf_time \
1765 $(TRACE_LIB) $(MPI_LIB)
1767 LDFLAGS = -Wl,--allow-multiple-definition -qstatic
1770 CPP = /opt/ibmcmp/xlf/9.1/exe/cpp
1771 POUND_DEF = -DNONSTANDARD_SYSTEM -DF90_STANDALONE -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
1772 CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I../external/RSL_LITE `cat ../inc/dm_comm_cpp_flags` $(COREDEFS) $(ENVCOMPDEFS) $(POUND_DEF)
1774 #### this is a hand installed version of m4 on frost.ucar.edu
1775 #### a copy is available at http://www.mmm.ucar.edu/wrf/WG2/BG/m4
1776 M4 = /home/janicec/m4 -B 12000
1778 NETCDFPATH = CONFIGURE_NETCDF_PATH
1779 PNETCDFPATH = CONFIGURE_PNETCDF_PATH
1783 externals : wrf_ioapi_includes ../external/RSL_LITE/librsl_lite.a CONFIGURE_WRFIO_NF CONFIGURE_WRFIO_PNF wrfio_int module_dm.F esmf_time gen_comms.c
1785 gen_comms.c : ../external/RSL_LITE/gen_comms.c
1786 ( /bin/cp ../tools/gen_comms_warning ../tools/gen_comms.c ; cat ../external/RSL_LITE/gen_comms.c >> ../tools/gen_comms.c )
1788 module_dm.F : ../external/RSL_LITE/module_dm.F
1789 ( /bin/cp module_dm_warning module_dm.F ; cat ../external/RSL_LITE/module_dm.F >> module_dm.F )
1792 ( cd ../external/io_netcdf ; make NETCDFPATH="$(NETCDFPATH)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" )
1795 ( cd ../external/io_pnetcdf ; make NETCDFPATH=CONFIGURE_PNETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(MPI_INC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" )
1798 ( cd ../external/io_int ; \
1799 make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" all )
1802 ( cd ../external/io_grib1 ; \
1803 make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCDEBUG) -qarch=auto -qzerosize" )
1806 ( cd ../external/esmf_time_f90 ; \
1807 make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
1809 ../external/RSL_LITE/librsl_lite.a :
1810 ( cd ../external/RSL_LITE ; make CFLAGS="$(CFLAGS)" CC="$(CC)" FC="$(FC) $(PROMOTION) $(FCFLAGS)" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST )
1812 solve_interface.o : solve_interface.F
1814 $(CPP) -I../inc $(CPPFLAGS) $*.F > $*.f90
1815 $(FC) -c -qfree=f90 -qspillsize=32767 -I. $(PROMOTION) $(MODULE_DIRS) $*.f90
1817 # compile these without high optimization to speed compile
1818 wrf_bdyout.o : wrf_bdyout.F
1819 wrf_bdyin.o : wrf_bdyin.F
1820 wrf_restartout.o : wrf_restartout.F
1821 wrf_restartin.o : wrf_restartin.F
1822 wrf_inputin.o : wrf_inputin.F
1823 wrf_inputout.o : wrf_inputout.F
1824 wrf_histin.o : wrf_histin.F
1825 wrf_histout.o : wrf_histout.F
1826 shift_domain_em.o : shift_domain_em.F
1827 module_io_mm5.o : module_io_mm5.F
1828 module_si_io.o : module_si_io.F
1829 module_io_wrf.o : module_io_wrf.F
1830 module_domain.o : module_domain.F
1831 module_start.o : module_start.F
1832 module_initialize.o : module_initialize.F
1833 module_initialize_b_wave.o : module_initialize_b_wave.F
1834 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
1835 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
1836 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
1837 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
1838 module_initialize_real.o : module_initialize_real.F
1839 module_dm.o : module_dm.F
1840 module_comm_dm.o : module_comm_dm.F
1841 start_domain.o : start_domain.F
1842 mediation_integrate.o : mediation_integrate.F
1843 mediation_interp_domain.o : mediation_interp_domain.F
1844 mediation_force_domain.o : mediation_force_domain.F
1845 mediation_feedback_domain.o : mediation_feedback_domain.F
1846 convert_nmm.o : convert_nmm.F
1847 module_configure.o : module_configure.F
1848 solve_em.o : solve_em.F
1849 start_em.o : start_em.F
1851 wrf_bdyout.o wrf_bdyin.o \
1852 wrf_restartout.o wrf_restartin.o wrf_inputin.o wrf_inputout.o wrf_histin.o wrf_histout.o \
1853 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
1854 module_start.o module_initialize.o module_initialize_b_wave.o \
1855 module_initialize_hill2d_x.o module_initialize_quarter_ss.o \
1856 module_initialize_squall2d_x.o module_initialize_squall2d_y.o \
1857 module_initialize_real.o module_dm.o module_comm_dm.o \
1858 mediation_integrate.o \
1859 mediation_interp_domain.o \
1860 module_configure.o \
1866 $(SED_FTN) $*.F > $*.b
1867 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
1869 $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
1871 # to prevent having to call our service representative
1872 mediation_feedback_domain.o \
1873 mediation_force_domain.o start_domain.o :
1875 $(SED_FTN) $*.F > $*.b
1876 $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f90
1878 $(FC) -c -g $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) -qnoopt $*.f90
1882 ##################################################################