had to reduce optimizations even further to fix segfault
[wrffire.git] / wrfv2_fire / arch / configure.defaults
blobae36f40b9781c45245232a8740e120850dc243f4
2 ###########################################################
3 #ARCH    (WALNUT) PC Linux x86_64 (IA64 and Opteron), PGI compiler 5.2 or higher  (Single-threaded, no nesting) (optimized)
4 #        Note that for 5.1.x comment out -Mpia=fast
6 FC              =       pgf90
7 LD              =       pgf90
8 CC              =       gcc
9 SCC             =       $(CC)
10 SFC             =       $(FC)
11 RWORDSIZE       =       $(NATIVE_RWORDSIZE)
12 PROMOTION       =       -r$(RWORDSIZE) -i4
13 CFLAGS          =       -DLANDREAD_STUB
14 FCOPTIM         =       -O2 -fastsse #-Mipa=fast
15 FCDEBUG         =       #-g -C 
16 #FCBASEOPTS      =       -w -byteswapio -Ktrap=fp -Mfree $(FCDEBUG)
17 FCBASEOPTS      =       -w -byteswapio -Mfree $(FCDEBUG)
18 FCFLAGS         =       $(FCOPTIM) $(FCBASEOPTS)
19 ARCHFLAGS       =       $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
20                          CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG \
21                         -DLIMIT_ARGS -DLANDREAD_STUB
22 # machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
23 ESMF_LIB_FLAGS  =       
24 ESMF_IO_LIB     =       ESMFIOLIB
25 ESMF_IO_LIB_EXT =       ESMFIOEXTLIB
26 INCLUDE_MODULES =       -module ../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
27                         -I../frame -I../share -I../phys -I../inc -I../chem
28 PERL            =       perl
29 REGISTRY        =       Registry
30 LIB             =       CONFIGURE_NETCDF_LIB_PATH \
31                         -L../external/io_grib1 -lio_grib1 \
32                         CONFIGURE_GRIB2_LIB \
33                         -L../external/io_grib_share -lio_grib_share \
34                         ../frame/module_internal_header_util.o ../frame/pack_utils.o -L../external/esmf_time_f90 -lesmf_time 
35 LDFLAGS         =       CONFIGURE_LDFLAGS
36 ENVCOMPDEFS     =       CONFIGURE_COMPILEFLAGS
37 CPP             =       /lib/cpp -C -P -traditional
38 POUND_DEF       =       -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
39 CPPFLAGS        =       -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
40 AR              =       ar ru
41 M4              =       m4 -B 14000
42 RANLIB          =       ranlib
43 NETCDFPATH      =       CONFIGURE_NETCDF_PATH
44 CC_TOOLS        =       $(CC)
46 externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time
48 module_dm.F :
49         ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
51 wrfio_nf :
52         ( cd ../external/io_netcdf ; \
53           make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
55 wrfio_grib_share :
56         ( cd ../external/io_grib_share ; \
57           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
59 wrfio_grib1 :
60         ( cd ../external/io_grib1 ; \
61           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
63 wrfio_grib2 :
64         ( cd ../external/io_grib2 ; \
65           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)
67 wrfio_int :
68         ( cd ../external/io_int ; \
69           make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" \
70           TRADFLAG="-traditional" all )
72 esmf_time : 
73         ( cd ../external/esmf_time_f90 ; \
74           make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
76 # compile these without high optimization to speed compile
77 solve_interface.o : solve_interface.F
78 shift_domain_em.o : shift_domain_em.F
79 module_io_mm5.o : module_io_mm5.F
80 module_si_io.o : module_si_io.F
81 module_io_wrf.o : module_io_wrf.F
82 module_domain.o : module_domain.F
83 module_start.o : module_start.F
84 module_initialize.o : module_initialize.F
85 module_initialize_b_wave.o : module_initialize_b_wave.F
86 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
87 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
88 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
89 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
90 module_initialize_real.o : module_initialize_real.F
91 module_dm.o : module_dm.F
92 start_domain.o : start_domain.F
93 mediation_integrate.o : mediation_integrate.F
94 module_configure.o : module_configure.F
96 solve_interface.o                                              \
97 shift_domain_em.o                                              \
98 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
99 module_start.o module_initialize.o module_initialize_b_wave.o  \
100 module_initialize_hill2d_x.o module_initialize_quarter_ss.o    \
101 module_initialize_squall2d_x.o module_initialize_squall2d_y.o  \
102 mediation_integrate.o \
103 module_configure.o                                             \
104 module_initialize_real.o module_dm.o start_domain.o :
105         $(RM) $@
106         $(SED_FTN) $*.F > $*.b 
107         $(CPP) -I../inc $(CPPFLAGS) $*.b  > $*.f90
108         $(RM) $*.b
109         $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
111 ###########################################################
112 #ARCH    (WALNUT) PC Linux x86_64 (IA64 and Opteron), PGI compiler 5.2 or higher  (Single-threaded, no nesting) (debug)
113 #        Note that for 5.1.x comment out -Mpia=fast
115 FC              =       pgf90
116 LD              =       pgf90
117 CC              =       gcc
118 SCC             =       $(CC)
119 SFC             =       $(FC)
120 RWORDSIZE       =       $(NATIVE_RWORDSIZE)
121 PROMOTION       =       -r$(RWORDSIZE) -i4
122 CFLAGS          =       -DLANDREAD_STUB
123 FCOPTIM         =       #-fastsse #-Mipa=fast
124 FCDEBUG         =       -g -C 
125 #FCBASEOPTS      =       -w -byteswapio -Ktrap=fp -Mfree $(FCDEBUG)
126 FCBASEOPTS      =       -w -byteswapio -Mfree $(FCDEBUG)
127 FCFLAGS         =       $(FCOPTIM) $(FCBASEOPTS)
128 ARCHFLAGS       =       $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
129                          CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG \
130                         -DLIMIT_ARGS -DLANDREAD_STUB
131 # machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
132 ESMF_LIB_FLAGS  =       
133 ESMF_IO_LIB     =       ESMFIOLIB
134 ESMF_IO_LIB_EXT =       ESMFIOEXTLIB
135 INCLUDE_MODULES =       -module ../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
136                         -I../frame -I../share -I../phys -I../inc -I../chem
137 PERL            =       perl
138 REGISTRY        =       Registry
139 LIB             =       CONFIGURE_NETCDF_LIB_PATH \
140                         -L../external/io_grib1 -lio_grib1 \
141                         CONFIGURE_GRIB2_LIB \
142                         -L../external/io_grib_share -lio_grib_share \
143                         ../frame/module_internal_header_util.o ../frame/pack_utils.o -L../external/esmf_time_f90 -lesmf_time 
144 LDFLAGS         =       CONFIGURE_LDFLAGS
145 ENVCOMPDEFS     =       CONFIGURE_COMPILEFLAGS
146 CPP             =       /lib/cpp -C -P -traditional
147 POUND_DEF       =       -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
148 CPPFLAGS        =       -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
149 AR              =       ar ru
150 M4              =       m4 -B 14000
151 RANLIB          =       ranlib
152 NETCDFPATH      =       CONFIGURE_NETCDF_PATH
153 CC_TOOLS        =       $(CC)
155 externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time
157 module_dm.F :
158         ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
160 wrfio_nf :
161         ( cd ../external/io_netcdf ; \
162           make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
164 wrfio_grib_share :
165         ( cd ../external/io_grib_share ; \
166           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
168 wrfio_grib1 :
169         ( cd ../external/io_grib1 ; \
170           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
172 wrfio_grib2 :
173         ( cd ../external/io_grib2 ; \
174           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)
176 wrfio_int :
177         ( cd ../external/io_int ; \
178           make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" \
179           TRADFLAG="-traditional" all )
181 esmf_time : 
182         ( cd ../external/esmf_time_f90 ; \
183           make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
185 # compile these without high optimization to speed compile
186 solve_interface.o : solve_interface.F
187 shift_domain_em.o : shift_domain_em.F
188 module_io_mm5.o : module_io_mm5.F
189 module_si_io.o : module_si_io.F
190 module_io_wrf.o : module_io_wrf.F
191 module_domain.o : module_domain.F
192 module_start.o : module_start.F
193 module_initialize.o : module_initialize.F
194 module_initialize_b_wave.o : module_initialize_b_wave.F
195 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
196 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
197 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
198 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
199 module_initialize_real.o : module_initialize_real.F
200 module_dm.o : module_dm.F
201 start_domain.o : start_domain.F
202 mediation_integrate.o : mediation_integrate.F
203 module_configure.o : module_configure.F
205 solve_interface.o                                              \
206 shift_domain_em.o                                              \
207 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
208 module_start.o module_initialize.o module_initialize_b_wave.o  \
209 module_initialize_hill2d_x.o module_initialize_quarter_ss.o    \
210 module_initialize_squall2d_x.o module_initialize_squall2d_y.o  \
211 mediation_integrate.o \
212 module_configure.o                                             \
213 module_initialize_real.o module_dm.o start_domain.o :
214         $(RM) $@
215         $(SED_FTN) $*.F > $*.b 
216         $(CPP) -I../inc $(CPPFLAGS) $*.b  > $*.f90
217         $(RM) $*.b
218         $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
220 ###########################################################
221 #ARCH (WF) AMD x86_64 Intel xeon i686 ia32 Xeon Linux, ifort compiler (single-threaded, no nesting) debug
223 OMP             =
224 OMPCPP          =
225 FC              =       ifort -g  -debug extended -debug-parameters all -traceback -fpe0
226 CC              =       gcc
227 SCC             =       $(CC)
228 SFC             =       $(FC)
229 RWORDSIZE       =       $(NATIVE_RWORDSIZE)
230 RSIZEBITS       =       `expr $(RWORDSIZE) \* 8`
231 PROMOTION       =       -real_size $(RSIZEBITS)
232 FCDEBUG         =       
233 FCBASEOPTS      =       -w -FR -cm -I. -Vaxlib -convert big_endian -mp
234 FCOPTIM         =       -O0
235 FCFLAGS         =       $(FCOPTIM) $(FCBASEOPTS) $(OMP)
236 CFLAGS          =       -w
237 # machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
238 ESMF_LIB_FLAGS  =       
239 ESMF_IO_LIB     =       ESMFIOLIB
240 ESMF_IO_LIB_EXT =       ESMFIOEXTLIB
241 INCLUDE_MODULES =       -module ../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
242                         -I../external -I../frame -I../share -I../phys -I../inc -I../chem
243 ARCHFLAGS       =       $(COREDEFS)  -DLIMIT_ARGS -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) \
244                         -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG
245 LD              =       $(FC)
246 LDFLAGS         =       $(FCFLAGS) $(OMP) CONFIGURE_LDFLAGS
247 ENVCOMPDEFS     =       CONFIGURE_COMPILEFLAGS
248 CPP             =       /lib/cpp -traditional
249 POUND_DEF       =       $(OMPCPP) $(COREDEFS) -DNONSTANDARD_SYSTEM \
250                         -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
251 CPPFLAGS        =       -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
252 PERL            =       CONFIGURE_PERL_PATH
253 REGISTRY        =       Registry
254 LIB             =       CONFIGURE_NETCDF_LIB_PATH ../frame/module_internal_header_util.o ../frame/pack_utils.o \
255                         -L../external/esmf_time_f90 -lesmf_time \
256                         -L../external/io_grib1 -lio_grib1 \
257                         CONFIGURE_GRIB2_LIB \
258                         -L../external/io_grib_share -lio_grib_share
259 AR              =       ar ru
260 M4              =       m4 -B14000
261 RANLIB          =       ranlib
262 NETCDFPATH      =       CONFIGURE_NETCDF_PATH
263 CC_TOOLS        =       $(CC)
265 externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time
267 module_dm.F :
268         ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
270 wrfio_nf : 
271         ( cd ../external/io_netcdf ; \
272           make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -FR -I. -w" )
274 wrfio_grib_share : 
275         ( cd ../external/io_grib_share ; \
276           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
277           FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
279 wrfio_grib1 : 
280         ( cd ../external/io_grib1 ; \
281           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
283 wrfio_grib2 : 
284         ( cd ../external/io_grib2 ; \
285           make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" FIXED="-fixed" archive)
287 wrfio_int : 
288         ( cd ../external/io_int ; \
289           make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -w" all )
291 esmf_time : 
292         ( cd ../external/esmf_time_f90 ; \
293           make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
295 # compile these without high optimization to speed compile
296 solve_interface.o : solve_interface.F
297 shift_domain_em.o : shift_domain_em.F
298 module_io_mm5.o : module_io_mm5.F
299 module_si_io.o : module_si_io.F
300 module_io_wrf.o : module_io_wrf.F
301 module_domain.o : module_domain.F
302 module_start.o : module_start.F
303 module_initialize.o : module_initialize.F
304 module_initialize_b_wave.o : module_initialize_b_wave.F
305 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
306 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
307 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
308 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
309 module_initialize_real.o : module_initialize_real.F
310 start_domain.o : start_domain.F
311 wrf_bdyin.o : wrf_bdyin.F
312 wrf_bdyout.o : wrf_bdyout.F
313 wrf_histin.o : wrf_histin.F
314 wrf_histout.o : wrf_histout.F
315 wrf_inputin.o : wrf_inputin.F
316 wrf_inputout.o : wrf_inputout.F
317 wrf_restartin.o : wrf_restartin.F
318 wrf_restartout.o : wrf_restartout.F
320 wrf_bdyin.o wrf_bdyout.o  \
321 wrf_histin.o wrf_histout.o  \
322 wrf_inputin.o wrf_inputout.o  \
323 wrf_restartin.o wrf_restartout.o  \
324 solve_interface.o                                              \
325 shift_domain_em.o                                              \
326 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
327 module_start.o module_initialize.o module_initialize_b_wave.o  \
328 module_initialize_hill2d_x.o module_initialize_quarter_ss.o    \
329 module_initialize_squall2d_x.o module_initialize_squall2d_y.o  \
330 module_initialize_real.o module_dm.o  start_domain.o :
331         $(RM) $@
332         $(SED_FTN) $*.F > $*.b 
333         $(CPP) -I../inc $(CPPFLAGS) $*.b  > $*.f90
334         $(RM) $*.b
335         $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) -O0 $*.f90
337 module_dm.o : module_dm.F
338 module_configure.o : module_configure.F
340 module_configure.o \
341 module_dm.o :
342         $(RM) $@
343         $(SED_FTN) $*.F > $*.b 
344         $(CPP) -I../inc $(CPPFLAGS) $*.b  > $*.f90
345         $(RM) $*.b
346         $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) -g -O0 $*.f90
350 ###########################################################
351 #ARCH (WF) AMD x86_64 Intel xeon i686 ia32 Xeon Linux, ifort compiler (single-threaded, no nesting) -O2
353 OMP             =
354 OMPCPP          =
355 FC              =       ifort
356 CC              =       gcc
357 SCC             =       $(CC)
358 SFC             =       $(FC)
359 RWORDSIZE       =       $(NATIVE_RWORDSIZE)
360 RSIZEBITS       =       `expr $(RWORDSIZE) \* 8`
361 PROMOTION       =       -real_size $(RSIZEBITS)
362 FCDEBUG         =       # -g
363 FCBASEOPTS      =       -w -FR -cm -I. -Vaxlib -convert big_endian -fp-model precise -switch fe_use_rtl_copy_arg_inout -mP2OPT_vec_xform_level=103
364 FCOPTIM         =       -O3 -unroll0 -xP -fno-alias -ip
365 FCFLAGS         =       $(FCOPTIM) $(FCBASEOPTS) $(OMP)
366 CFLAGS          =       -w
367 # machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
368 ESMF_LIB_FLAGS  =       
369 ESMF_IO_LIB     =       ESMFIOLIB
370 ESMF_IO_LIB_EXT =       ESMFIOEXTLIB
371 INCLUDE_MODULES =       -module ../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
372                         -I../external -I../frame -I../share -I../phys -I../inc -I../chem
373 ARCHFLAGS       =       $(COREDEFS)  -DLIMIT_ARGS -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) \
374                         -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG
375 LD              =       $(FC)
376 LDFLAGS         =       $(FCFLAGS) $(OMP) CONFIGURE_LDFLAGS
377 ENVCOMPDEFS     =       CONFIGURE_COMPILEFLAGS
378 CPP             =       /lib/cpp -traditional
379 POUND_DEF       =       $(OMPCPP) $(COREDEFS) -DNONSTANDARD_SYSTEM \
380                         -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
381 CPPFLAGS        =       -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
382 PERL            =       CONFIGURE_PERL_PATH
383 REGISTRY        =       Registry
384 LIB             =       CONFIGURE_NETCDF_LIB_PATH ../frame/module_internal_header_util.o ../frame/pack_utils.o \
385                         -L../external/esmf_time_f90 -lesmf_time \
386                         -L../external/io_grib1 -lio_grib1 \
387                         CONFIGURE_GRIB2_LIB \
388                         -L../external/io_grib_share -lio_grib_share
389 AR              =       ar ru
390 M4              =       m4 -B14000
391 RANLIB          =       ranlib
392 NETCDFPATH      =       CONFIGURE_NETCDF_PATH
393 CC_TOOLS        =       $(CC)
395 externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time
397 module_dm.F :
398         ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
400 wrfio_nf : 
401         ( cd ../external/io_netcdf ; \
402           make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -FR -I. -w" )
404 wrfio_grib_share : 
405         ( cd ../external/io_grib_share ; \
406           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
407           FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
409 wrfio_grib1 : 
410         ( cd ../external/io_grib1 ; \
411           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
413 wrfio_grib2 : 
414         ( cd ../external/io_grib2 ; \
415           make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" FIXED="-fixed" archive)
417 wrfio_int : 
418         ( cd ../external/io_int ; \
419           make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS) -w" all )
421 esmf_time : 
422         ( cd ../external/esmf_time_f90 ; \
423           make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
425 # compile these without high optimization to speed compile
426 solve_interface.o : solve_interface.F
427 shift_domain_em.o : shift_domain_em.F
428 module_io_mm5.o : module_io_mm5.F
429 module_si_io.o : module_si_io.F
430 module_io_wrf.o : module_io_wrf.F
431 module_domain.o : module_domain.F
432 module_start.o : module_start.F
433 module_initialize.o : module_initialize.F
434 module_initialize_b_wave.o : module_initialize_b_wave.F
435 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
436 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
437 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
438 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
439 module_initialize_real.o : module_initialize_real.F
440 start_domain.o : start_domain.F
441 wrf_bdyin.o : wrf_bdyin.F
442 wrf_bdyout.o : wrf_bdyout.F
443 wrf_histin.o : wrf_histin.F
444 wrf_histout.o : wrf_histout.F
445 wrf_inputin.o : wrf_inputin.F
446 wrf_inputout.o : wrf_inputout.F
447 wrf_restartin.o : wrf_restartin.F
448 wrf_restartout.o : wrf_restartout.F
450 wrf_bdyin.o wrf_bdyout.o  \
451 wrf_histin.o wrf_histout.o  \
452 wrf_inputin.o wrf_inputout.o  \
453 wrf_restartin.o wrf_restartout.o  \
454 solve_interface.o                                              \
455 shift_domain_em.o                                              \
456 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
457 module_start.o module_initialize.o module_initialize_b_wave.o  \
458 module_initialize_hill2d_x.o module_initialize_quarter_ss.o    \
459 module_initialize_squall2d_x.o module_initialize_squall2d_y.o  \
460 module_initialize_real.o module_dm.o  start_domain.o :
461         $(RM) $@
462         $(SED_FTN) $*.F > $*.b 
463         $(CPP) -I../inc $(CPPFLAGS) $*.b  > $*.f90
464         $(RM) $*.b
465         $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) -O0 $*.f90
469 module_dm.o : module_dm.F
470 module_configure.o : module_configure.F
472 module_configure.o \
473 module_dm.o :
474         $(RM) $@
475         $(SED_FTN) $*.F > $*.b 
476         $(CPP) -I../inc $(CPPFLAGS) $*.b  > $*.f90
477         $(RM) $*.b
478         $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) -g -O0 $*.f90
480 ###########################################################
481 #ARCH (WF) AMD x86_64 Intel xeon i686 ia32 Xeon Linux, ifort compiler  (single threaded, allows nesting using RSL without MPI) -O2
483 # Note: if you use ifort 8.0, please remove option -xW (for vectorization). This option 
484 #       has been identified to produce wrong results occationally.
485 # Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
486 #        for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
488 OMP             =
489 OMPCPP          =
490 DMPARALLEL      =       1
491 MAX_PROC        =       1024
492 FC              =       ifort
493 LD              =       ifort
494 CC              =       gcc
495 SCC             =       $(CC)
496 SFC             =       ifort
497 RWORDSIZE       =       $(NATIVE_RWORDSIZE)
498 RSIZEBITS       =       `expr $(RWORDSIZE) \* 8`
499 PROMOTION       =       -real_size $(RSIZEBITS)
500 FCOPTIM         =       -O3 -unroll0 -xW -fno-alias -ip
501 FCDEBUG         =       #-g
502 FCBASEOPTS      =       -FR -cm -w -I. $(FCDEBUG) -convert big_endian -fp-model precise -switch fe_use_rtl_copy_arg_inout -mP2OPT_vec_xform_level=103
503 FCFLAGS         =       $(FCOPTIM) $(FCBASEOPTS) $(OMP)
504 ARCHFLAGS       =       $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DWRF_RSL_IO -DRSL -DDM_PARALLEL \
505                         -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG \
506                         -DLIMIT_ARGS -DSTUBMPI -DLIMIT_ARGS
507 CFLAGS          =       -w -DDM_PARALLEL -DWRF_RSL_IO \
508                         -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) -I../external/RSL/RSL $(ARCHFLAGS)
509 # machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
510 ESMF_LIB_FLAGS  =       
511 ESMF_IO_LIB     =       ESMFIOLIB
512 ESMF_IO_LIB_EXT =       ESMFIOEXTLIB
513 INCLUDE_MODULES =       -module ../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
514                         -I../external -I../frame -I../share -I../phys -I../inc -I../chem
515 PERL            =       perl
516 REGISTRY        =       Registry
517 LIB             =       CONFIGURE_NETCDF_LIB_PATH -L../external/RSL/RSL -lrsl \
518                         -L../external/io_int -lwrfio_int \
519                         -L../external/io_grib1 -lio_grib1 \
520                         CONFIGURE_GRIB2_LIB \
521                         -L../external/io_grib_share -lio_grib_share \
522                         ../frame/module_internal_header_util.o ../frame/pack_utils.o -L../external/esmf_time_f90 -lesmf_time 
523 LDFLAGS         =       $(FCOPTIM) $(OMP) -convert big_endian CONFIGURE_LDFLAGS
524 ENVCOMPDEFS     =       CONFIGURE_COMPILEFLAGS
525 CPP             =       /lib/cpp -traditional
526 POUND_DEF       =       -DNO_RRTM_PHYSICS $(OMPCPP) $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS) -DGRIB1 CONFIGURE_GRIB2_FLAG
527 CPPFLAGS        =       -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I../external/RSL/RSL -C -P `cat ../inc/dm_comm_cpp_flags` $(ENVCOMPDEFS) $(POUND_DEF)
528 AR              =       ar ru
529 M4              =       m4 -B 14000
530 RANLIB          =       ranlib
531 NETCDFPATH      =       CONFIGURE_NETCDF_PATH
532 CC_TOOLS        =       gcc
534 externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 ../external/RSL/RSL/librsl.a wrfio_int gen_comms.c module_dm.F esmf_time
536 gen_comms.c : ../external/RSL/gen_comms.c
537         ( /bin/cp ../tools/gen_comms_warning ../tools/gen_comms.c ; \
538           cat ../external/RSL/gen_comms.c >> ../tools/gen_comms.c )
540 module_dm.F : ../external/RSL/module_dm.F
541         ( /bin/cp module_dm_warning module_dm.F ; cat ../external/RSL/module_dm.F >> module_dm.F )
543 wrfio_nf : 
544         ( cd ../external/io_netcdf ; \
545           make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
547 wrfio_grib_share : 
548         ( cd ../external/io_grib_share ; \
549           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
550           FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
552 wrfio_grib1 : 
553         ( cd ../external/io_grib1 ; \
554           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" \
555           CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
556 wrfio_grib2 : 
557         ( cd ../external/io_grib2 ; \
558           make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" \
559           CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" FIXED="-fixed" archive)
561 wrfio_int : 
562         ( cd ../external/io_int ; \
563           make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" all )
565 esmf_time : 
566         ( cd ../external/esmf_time_f90 ; \
567           make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
569 ../external/RSL/RSL/librsl.a :
570         ( cd ../external/RSL/RSL ; \
571           make CC="$(CC)" FC="$(FC) $(PROMOTION)" CFLAGS="-DSTUBS $(CFLAGS)" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST stub )
573 # compile these without high optimization to speed compile
574 #solve_em.o : solve_em.F
575 solve_interface.o : solve_interface.F
576 shift_domain_em.o : shift_domain_em.F
577 module_io_mm5.o : module_io_mm5.F
578 module_si_io.o : module_si_io.F
579 module_io_wrf.o : module_io_wrf.F
580 module_domain.o : module_domain.F
581 module_start.o : module_start.F
582 module_initialize.o : module_initialize.F
583 module_initialize_b_wave.o : module_initialize_b_wave.F
584 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
585 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
586 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
587 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
588 module_initialize_real.o : module_initialize_real.F
589 start_domain.o : start_domain.F
590 mediation_integrate.o : mediation_integrate.F
592 solve_interface.o                                    \
593 shift_domain_em.o                                              \
594 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
595 module_start.o module_initialize.o module_initialize_b_wave.o  \
596 module_initialize_hill2d_x.o module_initialize_quarter_ss.o    \
597 module_initialize_squall2d_x.o module_initialize_squall2d_y.o  \
598 mediation_integrate.o \
599 module_initialize_real.o start_domain.o :
600         $(RM) $@
601         $(SED_FTN) $*.F > $*.b 
602         $(CPP) -I../inc $(CPPFLAGS) $*.b  > $*.f90
603         $(RM) $*.b
604         $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
606 solve_em.o: solve_em.F
607 solve_em.o: 
608         $(RM) $@
609         $(SED_FTN) $*.F > $*.b 
610         $(CPP) -I../inc $(CPPFLAGS) $*.b  > $*.f90
611         $(RM) $*.b
612         $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) -O $*.f90
614 module_dm.o : module_dm.F
615 module_configure.o : module_configure.F
617 module_configure.o \
618 module_dm.o :
619         $(RM) $@
620         $(SED_FTN) $*.F > $*.b 
621         $(CPP) -I../inc $(CPPFLAGS) $*.b  > $*.f90
622         $(RM) $*.b
623         $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) -g -O0 $*.f90
625 ###########################################################
626 #ARCH (WF) AMD x86_64 Intel xeon i686 ia32 Xeon Linux, ifort compiler (OpenMP)
628 # Note: if you use ifort 8.0, please remove option -xW (for vectorization). This option 
629 #       has been identified to produce wrong results occationally.
631 OMP             =       -openmp -fpp -auto
632 OMPCPP          =       -D_OPENMP
633 FC              =       ifort
634 LD              =       ifort
635 CC              =       gcc
636 SCC             =       $(CC)
637 SFC             =       $(FC)
638 RWORDSIZE       =       $(NATIVE_RWORDSIZE)
639 RSIZEBITS       =       `expr $(RWORDSIZE) \* 8`
640 PROMOTION       =       -real_size $(RSIZEBITS)
641 CFLAGS          =
642 FCOPTIM         =       -O2 #-fno-alias -ip  #-O2 -no-ipo # -xW
643 FCDEBUG         =       #-g
644 FCBASEOPTS      =       -FR -cm -w -I. $(FCDEBUG) -convert big_endian -fp-model precise #-switch fe_use_rtl_copy_arg_inout -mP2OPT_vec_xform_level=103
645 FCFLAGS         =       $(FCOPTIM) $(FCBASEOPTS) $(OMP)
646 ARCHFLAGS       =       $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
647                          CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG \
648                         -DLIMIT_ARGS 
649 # machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
650 ESMF_LIB_FLAGS  =       
651 ESMF_IO_LIB     =       ESMFIOLIB
652 ESMF_IO_LIB_EXT =       ESMFIOEXTLIB
653 INCLUDE_MODULES =       -I ../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
654                         -I../frame -I../share -I../phys -I../inc -I../chem
655 PERL            =       perl
656 REGISTRY        =       Registry
657 LIB             =       CONFIGURE_NETCDF_LIB_PATH \
658                         -L../external/io_grib1 -lio_grib1 \
659                         CONFIGURE_GRIB2_LIB \
660                         -L../external/io_grib_share -lio_grib_share \
661                         ../frame/module_internal_header_util.o ../frame/pack_utils.o -L../external/esmf_time_f90 -lesmf_time 
662 LDFLAGS         =       $(FCFLAGS) $(FCFLAGS) $(OMP) CONFIGURE_LDFLAGS
663 ENVCOMPDEFS     =       CONFIGURE_COMPILEFLAGS
664 CPP             =       /lib/cpp -traditional
665 POUND_DEF       =       $(OMPCPP) $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS) -DGRIB1 CONFIGURE_GRIB2_FLAG
666 CPPFLAGS        =       -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
667 AR              =       ar ru
668 M4              =       m4 -B 14000
669 RANLIB          =       ranlib
670 NETCDFPATH      =       CONFIGURE_NETCDF_PATH
671 CC_TOOLS        =       $(CC)
673 externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time
675 module_dm.F :
676         ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
678 wrfio_nf : 
679         ( cd ../external/io_netcdf ; \
680           make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
682 wrfio_grib_share : 
683         ( cd ../external/io_grib_share ; \
684           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
685           FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
687 wrfio_grib1 : 
688         ( cd ../external/io_grib1 ; \
689           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
691 wrfio_grib2 : 
692         ( cd ../external/io_grib2 ; \
693           make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" FIXED="-fixed" archive)
695 wrfio_int : 
696         ( cd ../external/io_int ; \
697           make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" \
698           TRADFLAG="-traditional" all )
700 esmf_time : 
701         ( cd ../external/esmf_time_f90 ; \
702           make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
704 # compile these without high optimization to speed compile
705 #solve_em.o : solve_em.F
706 solve_interface.o : solve_interface.F
707 shift_domain_em.o : shift_domain_em.F
708 module_io_mm5.o : module_io_mm5.F
709 module_si_io.o : module_si_io.F
710 module_io_wrf.o : module_io_wrf.F
711 module_domain.o : module_domain.F
712 module_start.o : module_start.F
713 module_initialize.o : module_initialize.F
714 module_initialize_b_wave.o : module_initialize_b_wave.F
715 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
716 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
717 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
718 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
719 module_initialize_real.o : module_initialize_real.F
720 start_domain.o : start_domain.F
721 mediation_integrate.o : mediation_integrate.F
723 solve_interface.o                                              \
724 shift_domain_em.o                                              \
725 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
726 module_start.o module_initialize.o module_initialize_b_wave.o  \
727 module_initialize_hill2d_x.o module_initialize_quarter_ss.o    \
728 module_initialize_squall2d_x.o module_initialize_squall2d_y.o  \
729 mediation_integrate.o \
730 module_initialize_real.o start_domain.o :
731         $(RM) $@
732         $(SED_FTN) $*.F > $*.b 
733         $(CPP) -I../inc $(CPPFLAGS) $*.b  > $*.f90
734         $(RM) $*.b
735         $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
737 module_dm.o : module_dm.F
738 module_configure.o : module_configure.F
740 module_configure.o \
741 module_dm.o :
742         $(RM) $@
743         $(SED_FTN) $*.F > $*.b 
744         $(CPP) -I../inc $(CPPFLAGS) $*.b  > $*.f90
745         $(RM) $*.b
746         $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) -g -O0 $*.f90
748 ###########################################################
749 #ARCH (WF) AMD x86_64 Intel xeon i686 ia32 Xeon Linux, ifort compiler SM-Parallel (OpenMP, allows nesting using RSL without MPI)
751 # Note: if you use ifort 8.0, please remove option -xW (for vectorization). This option 
752 #       has been identified to produce wrong results occationally.
753 # Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
754 #        for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
757 OMP             =       -openmp -fpp -auto
758 OMPCPP          =       -D_OPENMP
759 DMPARALLEL      =       1
760 MAX_PROC        =       1024
761 FC              =       ifort
762 LD              =       ifort
763 CC              =       gcc
764 SCC             =       $(CC)
765 SFC             =       ifort
766 RWORDSIZE       =       $(NATIVE_RWORDSIZE)
767 RSIZEBITS       =       `expr $(RWORDSIZE) \* 8`
768 PROMOTION       =       -real_size $(RSIZEBITS)
769 FCOPTIM         =       -O3 -unroll0 -xP -fno-alias -ip
770 FCDEBUG         =       #-g
771 FCBASEOPTS      =       -FR -cm -w -I. $(FCDEBUG) -convert big_endian -fp-model precise -switch fe_use_rtl_copy_arg_inout -mP2OPT_vec_xform_level=103
772 FCFLAGS         =       $(FCOPTIM) $(FCBASEOPTS) $(OMP)
773 ARCHFLAGS       =       $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DWRF_RSL_IO -DRSL -DDM_PARALLEL \
774                         -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG \
775                         -DLIMIT_ARGS -DSTUBMPI 
776 CFLAGS          =       -w -DDM_PARALLEL -DWRF_RSL_IO \
777                         -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) -I../external/RSL/RSL $(ARCHFLAGS)
778 # machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
779 ESMF_LIB_FLAGS  =       
780 ESMF_IO_LIB     =       ESMFIOLIB
781 ESMF_IO_LIB_EXT =       ESMFIOEXTLIB
782 INCLUDE_MODULES =       -module ../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
783                         -I../external -I../frame -I../share -I../phys -I../inc -I../chem
784 PERL            =       perl
785 REGISTRY        =       Registry
786 LIB             =       CONFIGURE_NETCDF_LIB_PATH -L../external/RSL/RSL -lrsl \
787                         -L../external/io_int -lwrfio_int -L../external/io_grib1 -lio_grib1 \
788                         CONFIGURE_GRIB2_LIB \
789                         -L../external/io_grib_share -lio_grib_share \
790                         ../frame/module_internal_header_util.o ../frame/pack_utils.o -L../external/esmf_time_f90 -lesmf_time $(OMP)
791 LDFLAGS         =       $(FCOPTIM) -convert big_endian CONFIGURE_LDFLAGS
792 ENVCOMPDEFS     =       CONFIGURE_COMPILEFLAGS
793 CPP             =       /lib/cpp -traditional
794 POUND_DEF       =       -DNO_RRTM_PHYSICS $(OMPCPP) $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS) -DGRIB1 CONFIGURE_GRIB2_FLAG
795 CPPFLAGS        =       -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I../external/RSL/RSL -C -P `cat ../inc/dm_comm_cpp_flags` $(ENVCOMPDEFS) $(POUND_DEF)
796 AR              =       ar ru
797 M4              =       m4 -B 14000
798 RANLIB          =       ranlib
799 NETCDFPATH      =       CONFIGURE_NETCDF_PATH
800 CC_TOOLS        =       gcc
802 externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 ../external/RSL/RSL/librsl.a wrfio_int gen_comms.c module_dm.F esmf_time
804 gen_comms.c : ../external/RSL/gen_comms.c
805         ( /bin/cp ../tools/gen_comms_warning ../tools/gen_comms.c ; \
806           cat ../external/RSL/gen_comms.c >> ../tools/gen_comms.c )
808 module_dm.F : ../external/RSL/module_dm.F
809         ( /bin/cp module_dm_warning module_dm.F ; cat ../external/RSL/module_dm.F >> module_dm.F )
811 wrfio_nf : 
812         ( cd ../external/io_netcdf ; \
813           make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
815 wrfio_grib_share : 
816         ( cd ../external/io_grib_share ; \
817           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
818           FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
820 wrfio_grib1 : 
821         ( cd ../external/io_grib1 ; \
822           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
824 wrfio_grib2 : 
825         ( cd ../external/io_grib2 ; \
826           make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" FIXED="-fixed" archive)
828 wrfio_int : 
829         ( cd ../external/io_int ; \
830           make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" all )
832 esmf_time : 
833         ( cd ../external/esmf_time_f90 ; \
834           make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
836 ../external/RSL/RSL/librsl.a :
837         ( cd ../external/RSL/RSL ; \
838           make CC="$(CC)" FC="$(FC) $(PROMOTION)" CFLAGS="-DSTUBS $(CFLAGS)" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST stub )
840 # compile these without high optimization to speed compile
841 #solve_em.o : solve_em.F
842 solve_interface.o : solve_interface.F
843 shift_domain_em.o : shift_domain_em.F
844 module_io_mm5.o : module_io_mm5.F
845 module_si_io.o : module_si_io.F
846 module_io_wrf.o : module_io_wrf.F
847 module_domain.o : module_domain.F
848 module_start.o : module_start.F
849 module_initialize.o : module_initialize.F
850 module_initialize_b_wave.o : module_initialize_b_wave.F
851 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
852 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
853 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
854 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
855 module_initialize_real.o : module_initialize_real.F
856 start_domain.o : start_domain.F
857 mediation_integrate.o : mediation_integrate.F
859 solve_interface.o                                   \
860 shift_domain_em.o                                              \
861 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
862 module_start.o module_initialize.o module_initialize_b_wave.o  \
863 module_initialize_hill2d_x.o module_initialize_quarter_ss.o    \
864 module_initialize_squall2d_x.o module_initialize_squall2d_y.o  \
865 mediation_integrate.o \
866 module_initialize_real.o start_domain.o :
867         $(RM) $@
868         $(SED_FTN) $*.F > $*.b 
869         $(CPP) -I../inc $(CPPFLAGS) $*.b  > $*.f90
870         $(RM) $*.b
871         $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
873 module_dm.o : module_dm.F
874 module_configure.o : module_configure.F
876 module_configure.o \
877 module_dm.o :
878         $(RM) $@
879         $(SED_FTN) $*.F > $*.b 
880         $(CPP) -I../inc $(CPPFLAGS) $*.b  > $*.f90
881         $(RM) $*.b
882         $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) -g -O0 $*.f90
884 ###########################################################
885 #ARCH (WF) AMD x86_64 Intel xeon i686 ia32 Xeon Linux, ifort+gcc compiler  DM-Parallel (RSL, MPICH, allows nesting) -O2
887 # Note: if you use ifort 8.0, please remove option -xW (for vectorization). This option 
888 #       has been identified to produce wrong results occationally.
889 # Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
890 #        for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
893 DMPARALLEL      =       1
894 MAX_PROC        =       1024
895 FC              =       mpif90 -f90=ifort
896 LD              =       mpif90 -f90=ifort
897 CC              =       mpicc -cc=gcc
898 SCC             =       gcc
899 SFC             =       ifort
900 RWORDSIZE       =       $(NATIVE_RWORDSIZE)
901 RSIZEBITS       =       `expr $(RWORDSIZE) \* 8`
902 PROMOTION       =       -real_size $(RSIZEBITS)
903 FCOPTIM         =       -O3 -unroll0 -xP -fno-alias -ip
904 FCDEBUG         =       #-g
905 FCBASEOPTS      =       -FR -cm -w -I. $(FCDEBUG) -convert big_endian -fp-model precise -switch fe_use_rtl_copy_arg_inout -mP2OPT_vec_xform_level=103
906 FCFLAGS         =       $(FCOPTIM) $(FCBASEOPTS)
907 ARCHFLAGS       =       $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DWRF_RSL_IO -DRSL -DDM_PARALLEL \
908                         -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG \
909                         -DMPI  \
910                         -DLIMIT_ARGS 
911 CFLAGS          =       -w -DDM_PARALLEL -DWRF_RSL_IO $(ARCHFLAGS) \
912                         -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) -I../external/RSL/RSL
913 # machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
914 ESMF_LIB_FLAGS  =       
915 ESMF_IO_LIB     =       ESMFIOLIB
916 ESMF_IO_LIB_EXT =       ESMFIOEXTLIB
917 INCLUDE_MODULES =       -module ../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
918                         -I../external -I../frame -I../share -I../phys -I../inc -I../chem
919 PERL            =       perl
920 REGISTRY        =       Registry
921 LIB             =       CONFIGURE_NETCDF_LIB_PATH -L../external/RSL/RSL -lrsl \
922                         -L../external/io_int -lwrfio_int \
923                         -L../external/io_grib1 -lio_grib1 \
924                         CONFIGURE_GRIB2_LIB \
925                         -L../external/io_grib_share -lio_grib_share \
926                         ../frame/module_internal_header_util.o ../frame/pack_utils.o -L../external/esmf_time_f90 -lesmf_time
927 LDFLAGS         =       $(FCOPTIM) -convert big_endian CONFIGURE_LDFLAGS
928 ENVCOMPDEFS     =       CONFIGURE_COMPILEFLAGS
929 CPP             =       /lib/cpp -traditional
930 POUND_DEF       =       -DNO_RRTM_PHYSICS  $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS) -DGRIB1 CONFIGURE_GRIB2_FLAG
931 CPPFLAGS        =       -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I../external/RSL/RSL -C -P `cat ../inc/dm_comm_cpp_flags` $(ENVCOMPDEFS) $(POUND_DEF)
932 AR              =       ar ru
933 M4              =       m4 -B 14000
934 RANLIB          =       ranlib
935 NETCDFPATH      =       CONFIGURE_NETCDF_PATH
936 CC_TOOLS        =       gcc
938 externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 ../external/RSL/RSL/librsl.a wrfio_int gen_comms.c module_dm.F esmf_time
940 gen_comms.c : ../external/RSL/gen_comms.c
941         ( /bin/cp ../tools/gen_comms_warning ../tools/gen_comms.c ; \
942           cat ../external/RSL/gen_comms.c >> ../tools/gen_comms.c )
944 module_dm.F : ../external/RSL/module_dm.F
945         ( /bin/cp module_dm_warning module_dm.F ; cat ../external/RSL/module_dm.F >> module_dm.F )
947 wrfio_nf : 
948         ( cd ../external/io_netcdf ; \
949           make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
951 wrfio_grib_share : 
952         ( cd ../external/io_grib_share ; \
953           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
954           FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
956 wrfio_grib1 : 
957         ( cd ../external/io_grib1 ; \
958           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" archive)
960 wrfio_grib2 : 
961         ( cd ../external/io_grib2 ; \
962           make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCFLAGS) -w" FIXED="-fixed" archive)
964 wrfio_int : 
965         ( cd ../external/io_int ; \
966           make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" all )
968 esmf_time : 
969         ( cd ../external/esmf_time_f90 ; \
970           make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
972 ../external/RSL/RSL/librsl.a :
973         ( cd ../external/RSL/RSL ; make CC="$(CC)" CFLAGS="$(CFLAGS)" FC="$(FC) $(PROMOTION)" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST linux )
975 # compile these without high optimization to speed compile
976 solve_interface.o : solve_interface.F
977 shift_domain_em.o : shift_domain_em.F
978 module_io_mm5.o : module_io_mm5.F
979 module_si_io.o : module_si_io.F
980 module_io_wrf.o : module_io_wrf.F
981 module_domain.o : module_domain.F
982 module_start.o : module_start.F
983 module_initialize.o : module_initialize.F
984 module_initialize_b_wave.o : module_initialize_b_wave.F
985 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
986 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
987 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
988 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
989 module_initialize_real.o : module_initialize_real.F
990 start_domain.o : start_domain.F
991 mediation_integrate.o : mediation_integrate.F
993 solve_interface.o                                              \
994 shift_domain_em.o                                              \
995 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
996 module_start.o module_initialize.o module_initialize_b_wave.o  \
997 module_initialize_hill2d_x.o module_initialize_quarter_ss.o    \
998 module_initialize_squall2d_x.o module_initialize_squall2d_y.o  \
999 mediation_integrate.o \
1000 module_initialize_real.o start_domain.o :
1001         $(RM) $@
1002         $(SED_FTN) $*.F > $*.b 
1003         $(CPP) -I../inc $(CPPFLAGS) $*.b  > $*.f90
1004         $(RM) $*.b
1005         $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
1007 solve_em.o: solve_em.F
1008 solve_em.o:
1009         $(RM) $@
1010         $(SED_FTN) $*.F > $*.b 
1011         $(CPP) -I../inc $(CPPFLAGS) $*.b  > $*.f90
1012         $(RM) $*.b
1013         $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) -O $*.f90
1015 module_dm.o : module_dm.F
1016 module_configure.o : module_configure.F
1018 module_configure.o \
1019 module_dm.o :
1020         $(RM) $@
1021         $(SED_FTN) $*.F > $*.b 
1022         $(CPP) -I../inc $(CPPFLAGS) $*.b  > $*.f90
1023         $(RM) $*.b
1024         $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) -g -O0 $*.f90
1026 ###########################################################
1027 #ARCH    Darwin Intel, g95 compiler  (Single-threaded, no nesting, debug)
1029 FC              =       g95 -g
1030 LD              =       g95 -g
1031 CC              =       gcc -g
1032 SCC             =       $(CC)
1033 RWORDSIZE       =       $(NATIVE_RWORDSIZE)
1034 SFC             =       $(FC)
1035 # g95 does not like -r4. if you want promotion to -r8 add it to PROMOTION below
1036 #PROMOTION      =       -r$(RWORDSIZE) -i4
1037 PROMOTION       =       -i4
1038 CFLAGS          =       -w -DF2CSTYLE -DMACOS
1039 FCOPTIM         =       -O0 # -fast
1040 FCDEBUG         =       -g -O0
1041 FCBASEOPTS      =       -Wno=101,139,155,158 -fendian=big -ffree-form -ffree-line-length-huge $(FCDEBUG) # -Mlfs
1042 FCFLAGS         =       $(FCOPTIM) $(FCBASEOPTS)
1043 ARCHFLAGS       =       $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
1044                          CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG \
1045                         -DLIMIT_ARGS -DG95 -DMACOS
1046 # machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
1047 ESMF_LIB_FLAGS  =
1048 ESMF_IO_LIB     =       ESMFIOLIB
1049 ESMF_IO_LIB_EXT =       ESMFIOEXTLIB
1050 INCLUDE_MODULES =       -fmod=../main -I../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
1051                         -I../frame -I../share -I../phys -I../chem -I../inc
1052 PERL            =       perl
1053 REGISTRY        =       Registry
1054 LIB             =       CONFIGURE_NETCDF_LIB_PATH \
1055                         -L../external/io_grib1 -lio_grib1 \
1056                         CONFIGURE_GRIB2_LIB \
1057                         -L../external/io_grib_share -lio_grib_share \
1058                         ../frame/module_internal_header_util.o ../frame/pack_utils.o -L../external/esmf_time_f90 -lesmf_time
1059 LDFLAGS         =       $(FCFLAGS) CONFIGURE_LDFLAGS
1060 ENVCOMPDEFS     =       CONFIGURE_COMPILEFLAGS
1061 CPP             =       cpp -C -P -traditional
1062 POUND_DEF       =       $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
1063 CPPFLAGS        =       -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
1064 AR              =       ar ru
1065 M4              =       m4 -B 14000
1066 RANLIB          =       ranlib
1067 NETCDFPATH      =       CONFIGURE_NETCDF_PATH
1068 CC_TOOLS        =       $(CC)
1070 #### Override default sed command and script for Fortran source files         ####
1071 #### This sed script does not pass __FILE__ and __LINE__ to wrf_error_fatal() ####
1072 #### because the Fortran compiler complains about long source lines.          ####
1073 SED_FTN = sed -f ../arch/no_file_line.sed
1075 externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time
1077 module_dm.F :
1078         ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
1080 wrfio_nf :
1081         ( cd ../external/io_netcdf ; \
1082           make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
1084 wrfio_grib_share :
1085         ( cd ../external/io_grib_share ; \
1086           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
1088 wrfio_grib1 :
1089         ( cd ../external/io_grib1 ; \
1090           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive )
1092 wrfio_grib2 :
1093         ( cd ../external/io_grib2 ; \
1094           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)
1096 wrfio_int :
1097         ( cd ../external/io_int ; \
1098           make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" \
1099           TRADFLAG="-traditional" all )
1101 esmf_time :
1102         ( cd ../external/esmf_time_f90 ; \
1103           make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
1105 # compile these without high optimization to speed compile
1106 solve_interface.o : solve_interface.F
1107 shift_domain_em.o : shift_domain_em.F
1108 module_io_mm5.o : module_io_mm5.F
1109 module_si_io.o : module_si_io.F
1110 module_io_wrf.o : module_io_wrf.F
1111 module_domain.o : module_domain.F
1112 module_start.o : module_start.F
1113 module_initialize.o : module_initialize.F
1114 module_initialize_b_wave.o : module_initialize_b_wave.F
1115 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
1116 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
1117 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
1118 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
1119 module_initialize_real.o : module_initialize_real.F
1120 module_dm.o : module_dm.F
1121 start_domain.o : start_domain.F
1122 mediation_integrate.o : mediation_integrate.F
1123 module_configure.o : module_configure.F
1125 solve_interface.o                                              \
1126 shift_domain_em.o                                              \
1127 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
1128 module_start.o module_initialize.o module_initialize_b_wave.o  \
1129 module_initialize_hill2d_x.o module_initialize_quarter_ss.o    \
1130 module_initialize_squall2d_x.o module_initialize_squall2d_y.o  \
1131 mediation_integrate.o \
1132 module_configure.o                                             \
1133 module_initialize_real.o module_dm.o start_domain.o :
1134         $(RM) $@
1135         $(SED_FTN) $*.F > $*.b
1136         $(CPP) -I../inc $(CPPFLAGS) $*.b  > $*.f90
1137         $(RM) $*.b
1138         $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
1140 ###########################################################
1141 #ARCH   (WALNUT) PC Linux x86_64, PGI compiler  SM-Parallel (OpenMP, no nesting)
1143 OMP             =       -mp=nonuma
1144 OMPCPP          =       -D_OPENMP
1145 FC              =       pgf90
1146 LD              =       pgf90
1147 CC              =       gcc
1148 SCC             =       $(CC)
1149 RWORDSIZE       =       $(NATIVE_RWORDSIZE)
1150 SFC             =       $(FC)
1151 PROMOTION       =       -r$(RWORDSIZE) -i4
1152 CFLAGS          =
1153 FCOPTIM         =       -O2 # -fast
1154 FCDEBUG         =       #-g
1155 #FCBASEOPTS      =       -w -byteswapio -Ktrap=fp -Mfree $(FCDEBUG)
1156 FCBASEOPTS      =       -w -byteswapio -Mfree $(FCDEBUG) # -Mlfs
1157 FCFLAGS         =       $(FCOPTIM) $(FCBASEOPTS) $(OMP)
1158 ARCHFLAGS       =       $(COREDEFS) -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 \
1159                          CONFIGURE_NETCDF_FLAG -DGRIB1 CONFIGURE_GRIB2_FLAG \
1160                         -DLIMIT_ARGS
1161 # machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
1162 ESMF_LIB_FLAGS  =       
1163 ESMF_IO_LIB     =       ESMFIOLIB
1164 ESMF_IO_LIB_EXT =       ESMFIOEXTLIB
1165 INCLUDE_MODULES =       -module ../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
1166                         -I../frame -I../share -I../phys -I../chem -I../inc
1167 PERL            =       perl
1168 REGISTRY        =       Registry
1169 LIB             =       CONFIGURE_NETCDF_LIB_PATH \
1170                         -L../external/io_grib1 -lio_grib1 \
1171                         CONFIGURE_GRIB2_LIB \
1172                         -L../external/io_grib_share -lio_grib_share \
1173                         ../frame/module_internal_header_util.o ../frame/pack_utils.o -L../external/esmf_time_f90 -lesmf_time 
1174 LDFLAGS         =       $(FCFLAGS) $(OMP) CONFIGURE_LDFLAGS
1175 ENVCOMPDEFS     =       CONFIGURE_COMPILEFLAGS
1176 CPP             =       /lib/cpp -C -P -traditional
1177 POUND_DEF       =       $(OMPCPP) -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
1178 CPPFLAGS        =       -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) $(ENVCOMPDEFS) $(POUND_DEF)
1179 AR              =       ar ru
1180 M4              =       m4 -B 14000
1181 RANLIB          =       ranlib
1182 NETCDFPATH      =       CONFIGURE_NETCDF_PATH
1183 CC_TOOLS        =       $(CC)
1185 externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 wrfio_int module_dm.F esmf_time
1187 module_dm.F :
1188         ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )
1190 wrfio_nf : 
1191         ( cd ../external/io_netcdf ; \
1192           make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
1194 wrfio_grib_share :
1195         ( cd ../external/io_grib_share ; \
1196           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
1198 wrfio_grib1 :
1199         ( cd ../external/io_grib1 ; \
1200           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive )
1202 wrfio_grib2 :
1203         ( cd ../external/io_grib2 ; \
1204           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 )
1206 wrfio_int : 
1207         ( cd ../external/io_int ; \
1208           make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" \
1209           TRADFLAG="-traditional" all )
1211 esmf_time : 
1212         ( cd ../external/esmf_time_f90 ; \
1213           make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
1215 # compile these without high optimization to speed compile
1216 solve_interface.o : solve_interface.F
1217 shift_domain_em.o : shift_domain_em.F
1218 module_io_mm5.o : module_io_mm5.F
1219 module_si_io.o : module_si_io.F
1220 module_io_wrf.o : module_io_wrf.F
1221 module_domain.o : module_domain.F
1222 module_start.o : module_start.F
1223 module_initialize.o : module_initialize.F
1224 module_initialize_b_wave.o : module_initialize_b_wave.F
1225 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
1226 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
1227 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
1228 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
1229 module_initialize_real.o : module_initialize_real.F
1230 module_dm.o : module_dm.F
1231 start_domain.o : start_domain.F
1232 mediation_integrate.o : mediation_integrate.F
1233 module_configure.o : module_configure.F
1235 solve_interface.o                                              \
1236 shift_domain_em.o                                              \
1237 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
1238 module_start.o module_initialize.o module_initialize_b_wave.o  \
1239 module_initialize_hill2d_x.o module_initialize_quarter_ss.o    \
1240 module_initialize_squall2d_x.o module_initialize_squall2d_y.o  \
1241 module_configure.o                                             \
1242 mediation_integrate.o \
1243 module_initialize_real.o module_dm.o start_domain.o :
1244         $(RM) $@
1245         $(SED_FTN) $*.F > $*.b 
1246         $(CPP) -I../inc $(CPPFLAGS) $*.b  > $*.f90
1247         $(RM) $*.b
1248         $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
1249 #PGI    if [ ! -e $@ ] ; then \
1250 #PGI    sleep 10 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
1251 #PGI    fi
1252 #PGI    if [ ! -e $@ ] ; then \
1253 #PGI    sleep 30 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
1254 #PGI    fi
1255 #PGI    if [ ! -e $@ ] ; then \
1256 #PGI    sleep 300 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
1257 #PGI    fi
1259 ###########################################################
1260 #ARCH    (WALNUT) PC Linux x86_64, PGI compiler  SM-Parallel (OpenMP, allows nesting using RSL without MPI)
1262 # Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
1263 #        for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
1265 OMP             =       -mp=nonuma
1266 OMPCPP          =       -D_OPENMP
1267 DMPARALLEL      =       1
1268 MAX_PROC        =       1024
1269 FC              =       pgf90
1270 LD              =       pgf90
1271 CC              =       gcc
1272 SCC             =       $(CC)
1273 SFC             =       pgf90
1274 RWORDSIZE       =       $(NATIVE_RWORDSIZE)
1275 FCOPTIM         =       -O2 # -fast
1276 FCDEBUG         =       #-g
1277 #FCBASEOPTS      =       -w -byteswapio -Ktrap=fp -Mfree $(FCDEBUG)
1278 FCBASEOPTS      =       -w -byteswapio -Mfree $(FCDEBUG) # -Mlfs
1279 FCFLAGS         =       $(FCOPTIM) $(FCBASEOPTS) $(OMP)
1280 ARCHFLAGS       =       $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DWRF_RSL_IO -DRSL -DDM_PARALLEL \
1281                         -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG \
1282                         -DLIMIT_ARGS -DSTUBMPI
1283 PROMOTION       =       -r$(RWORDSIZE) -i4
1284 CFLAGS          =       -DDM_PARALLEL -DWRF_RSL_IO \
1285                         -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) -I../external/RSL/RSL $(ARCHFLAGS)
1286 # machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
1287 ESMF_LIB_FLAGS  =       
1288 ESMF_IO_LIB     =       ESMFIOLIB
1289 ESMF_IO_LIB_EXT =       ESMFIOEXTLIB
1290 INCLUDE_MODULES =       -module ../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
1291                         -I../external -I../frame -I../share -I../phys -I../inc -I../chem
1292 PERL            =       perl
1293 REGISTRY        =       Registry
1294 LIB             =       CONFIGURE_NETCDF_LIB_PATH -L../external/RSL/RSL -lrsl \
1295                         -L../external/io_grib1 -lio_grib1 \
1296                         CONFIGURE_GRIB2_LIB \
1297                         -L../external/io_grib_share -lio_grib_share \
1298                         -L../external/io_int -lwrfio_int \
1299                         ../frame/module_internal_header_util.o ../frame/pack_utils.o -L../external/esmf_time_f90 -lesmf_time 
1300 LDFLAGS         =       $(FCFLAGS) $(OMP) CONFIGURE_LDFLAGS
1301 ENVCOMPDEFS     =       CONFIGURE_COMPILEFLAGS
1302 CPP             =       /lib/cpp -C -P -traditional
1303 POUND_DEF       =       -DNO_RRTM_PHYSICS  $(OMPCPP) -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
1304 CPPFLAGS        =       -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I../external/RSL/RSL -C -P `cat ../inc/dm_comm_cpp_flags` $(ENVCOMPDEFS) $(POUND_DEF)
1305 AR              =       ar ru
1306 M4              =       m4 -B 14000
1307 RANLIB          =       ranlib
1308 NETCDFPATH      =       CONFIGURE_NETCDF_PATH
1309 CC_TOOLS        =       cc
1311 externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 ../external/RSL/RSL/librsl.a wrfio_int gen_comms.c module_dm.F esmf_time
1313 gen_comms.c : ../external/RSL/gen_comms.c
1314         ( /bin/cp ../tools/gen_comms_warning ../tools/gen_comms.c ; \
1315           cat ../external/RSL/gen_comms.c >> ../tools/gen_comms.c )
1317 module_dm.F : ../external/RSL/module_dm.F
1318         ( /bin/cp module_dm_warning module_dm.F ; cat ../external/RSL/module_dm.F >> module_dm.F )
1320 wrfio_nf : 
1321         ( cd ../external/io_netcdf ; \
1322           make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
1324 wrfio_int : 
1325         ( cd ../external/io_int ; \
1326           make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" all )
1328 wrfio_grib_share :
1329         ( cd ../external/io_grib_share ; \
1330           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
1332 wrfio_grib1 :
1333         ( cd ../external/io_grib1 ; \
1334           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive )
1336 wrfio_grib2 :
1337         ( cd ../external/io_grib2 ; \
1338           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 )
1340 esmf_time : 
1341         ( cd ../external/esmf_time_f90 ; \
1342           make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
1344 ../external/RSL/RSL/librsl.a :
1345         ( cd ../external/RSL/RSL ; make CC="$(CC)" CFLAGS='-DSTUBS' FC="$(FC) $(PROMOTION)" FFLAGS='-byteswapio' MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST stub )
1347 # compile these without high optimization to speed compile
1348 solve_interface.o : solve_interface.F
1349 shift_domain_em.o : shift_domain_em.F
1350 module_io_mm5.o : module_io_mm5.F
1351 module_si_io.o : module_si_io.F
1352 module_io_wrf.o : module_io_wrf.F
1353 module_domain.o : module_domain.F
1354 module_start.o : module_start.F
1355 module_initialize.o : module_initialize.F
1356 module_initialize_b_wave.o : module_initialize_b_wave.F
1357 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
1358 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
1359 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
1360 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
1361 module_initialize_real.o : module_initialize_real.F
1362 module_dm.o : module_dm.F
1363 start_domain.o : start_domain.F
1364 mediation_integrate.o : mediation_integrate.F
1365 module_configure.o : module_configure.F
1367 solve_interface.o                                              \
1368 shift_domain_em.o                                              \
1369 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
1370 module_start.o module_initialize.o module_initialize_b_wave.o  \
1371 module_initialize_hill2d_x.o module_initialize_quarter_ss.o    \
1372 module_initialize_squall2d_x.o module_initialize_squall2d_y.o  \
1373 module_configure.o                                             \
1374 mediation_integrate.o \
1375 module_initialize_real.o module_dm.o start_domain.o :
1376         $(RM) $@
1377         $(SED_FTN) $*.F > $*.b 
1378         $(CPP) -I../inc $(CPPFLAGS) $*.b  > $*.f90
1379         $(RM) $*.b
1380         $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
1381 #PGI    if [ ! -e $@ ] ; then \
1382 #PGI    sleep 10 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
1383 #PGI    fi
1384 #PGI    if [ ! -e $@ ] ; then \
1385 #PGI    sleep 30 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
1386 #PGI    fi
1387 #PGI    if [ ! -e $@ ] ; then \
1388 #PGI    sleep 300 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
1389 #PGI    fi
1391 ###########################################################
1392 #ARCH    (WALNUT) PC Linux x86_64, PGI compiler  DM-Parallel (RSL, MPICH, Allows nesting)
1394 # Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
1395 #        for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
1397 DMPARALLEL      =       1
1398 MAX_PROC        =       1024
1399 FC              =       mpif90 -f90=pgf90
1400 LD              =       mpif90 -f90=pgf90
1401 CC              =       mpicc -cc=gcc
1402 SCC             =       gcc
1403 SFC             =       pgf90
1404 RWORDSIZE       =       $(NATIVE_RWORDSIZE)
1405 PROMOTION       =       -r$(RWORDSIZE) -i4
1406 CFLAGS          =       -DDM_PARALLEL -DWRF_RSL_IO \
1407                         -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) -I../external/RSL/RSL
1408 FCOPTIM         =       -O2 # -fast
1409 FCDEBUG         =       #-g
1410 #FCBASEOPTS      =       -w -byteswapio -Ktrap=fp -Mfree $(FCDEBUG)
1411 FCBASEOPTS      =       -w -byteswapio -Mfree $(FCDEBUG) # -Mlfs
1412 FCFLAGS         =       $(FCOPTIM) $(FCBASEOPTS)
1413 ARCHFLAGS       =       $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DWRF_RSL_IO -DRSL -DDM_PARALLEL \
1414                         -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG \
1415                         -DLIMIT_ARGS
1416 # machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
1417 ESMF_LIB_FLAGS  =       
1418 ESMF_IO_LIB     =       ESMFIOLIB
1419 ESMF_IO_LIB_EXT =       ESMFIOEXTLIB
1420 INCLUDE_MODULES =       -module ../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
1421                         -I../external -I../frame -I../share -I../phys -I../chem -I../inc
1422 PERL            =       perl
1423 REGISTRY        =       Registry
1424 LIB             =       CONFIGURE_NETCDF_LIB_PATH -L../external/RSL/RSL -lrsl \
1425                         -L../external/io_grib1 -lio_grib1 \
1426                         CONFIGURE_GRIB2_LIB \
1427                         -L../external/io_grib_share -lio_grib_share \
1428                         -L../external/io_int -lwrfio_int \
1429                         ../frame/module_internal_header_util.o ../frame/pack_utils.o -L../external/esmf_time_f90 -lesmf_time 
1430 LDFLAGS         =       -byteswapio $(FCFLAGS) CONFIGURE_LDFLAGS
1431 ENVCOMPDEFS     =       CONFIGURE_COMPILEFLAGS
1432 CPP             =       /lib/cpp -C -P -traditional
1433 POUND_DEF       =       -DNO_RRTM_PHYSICS  -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
1434 CPPFLAGS        =       -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I../external/RSL/RSL -C -P `cat ../inc/dm_comm_cpp_flags` $(ENVCOMPDEFS) $(POUND_DEF)
1435 AR              =       ar ru
1436 M4              =       m4 -B 14000
1437 RANLIB          =       ranlib
1438 NETCDFPATH      =       CONFIGURE_NETCDF_PATH
1439 CC_TOOLS        =       cc
1441 externals : wrf_ioapi_includes CONFIGURE_WRFIO_NF wrfio_grib_share wrfio_grib1 CONFIGURE_WRFIO_GRIB2 ../external/RSL/RSL/librsl.a wrfio_int gen_comms.c module_dm.F esmf_time
1443 gen_comms.c : ../external/RSL/gen_comms.c
1444         ( /bin/cp ../tools/gen_comms_warning ../tools/gen_comms.c ; \
1445           cat ../external/RSL/gen_comms.c >> ../tools/gen_comms.c )
1447 module_dm.F : ../external/RSL/module_dm.F
1448         ( /bin/cp module_dm_warning module_dm.F ; cat ../external/RSL/module_dm.F >> module_dm.F )
1450 wrfio_nf : 
1451         ( cd ../external/io_netcdf ; \
1452           make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
1454 wrfio_grib_share :
1455         ( cd ../external/io_grib_share ; \
1456           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
1458 wrfio_grib1 :
1459         ( cd ../external/io_grib1 ; \
1460           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
1462 wrfio_grib2 :
1463         ( cd ../external/io_grib2 ; \
1464           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)
1466 wrfio_int : 
1467         ( cd ../external/io_int ; \
1468           make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" all )
1470 esmf_time : 
1471         ( cd ../external/esmf_time_f90 ; \
1472           make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
1474 ../external/RSL/RSL/librsl.a :
1475         ( cd ../external/RSL/RSL ; make CC="$(CC)" FC="$(FC) $(PROMOTION) -byteswapio" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST linux )
1477 # compile these without high optimization to speed compile
1478 solve_interface.o : solve_interface.F
1479 shift_domain_em.o : shift_domain_em.F
1480 module_io_mm5.o : module_io_mm5.F
1481 module_si_io.o : module_si_io.F
1482 module_io_wrf.o : module_io_wrf.F
1483 module_domain.o : module_domain.F
1484 module_start.o : module_start.F
1485 module_initialize.o : module_initialize.F
1486 module_initialize_b_wave.o : module_initialize_b_wave.F
1487 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
1488 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
1489 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
1490 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
1491 module_initialize_real.o : module_initialize_real.F
1492 module_dm.o : module_dm.F
1493 start_domain.o : start_domain.F
1494 mediation_integrate.o : mediation_integrate.F
1495 module_configure.o : module_configure.F
1497 solve_interface.o                                              \
1498 shift_domain_em.o                                              \
1499 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
1500 module_start.o module_initialize.o module_initialize_b_wave.o  \
1501 module_initialize_hill2d_x.o module_initialize_quarter_ss.o    \
1502 module_initialize_squall2d_x.o module_initialize_squall2d_y.o  \
1503 module_configure.o                                             \
1504 mediation_integrate.o \
1505 module_initialize_real.o module_dm.o start_domain.o :
1506         $(RM) $@
1507         $(SED_FTN) $*.F > $*.b 
1508         $(CPP) -I../inc $(CPPFLAGS) $*.b  > $*.f90
1509         $(RM) $*.b
1510         $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
1511 #PGI    if [ ! -e $@ ] ; then \
1512 #PGI    sleep 10 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
1513 #PGI    fi
1514 #PGI    if [ ! -e $@ ] ; then \
1515 #PGI    sleep 30 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
1516 #PGI    fi
1517 #PGI    if [ ! -e $@ ] ; then \
1518 #PGI    sleep 300 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
1519 #PGI    fi
1521 ###########################################################
1522 #ARCH     (WALNUT) PC Linux x86_64, PGI compiler  DM-Parallel (RSL_LITE, MPICH, Allows nesting)
1524 # Notes: for experimental implementation of moving nests, add -DMOVE_NESTS to ARCHFLAGS
1525 #        for experimental implementation of vortex tracking nests, add -DMOVE_NESTS -DVORTEX_CENTER to ARCHFLAGS
1527 DMPARALLEL      =       1
1528 MAX_PROC        =       1024
1529 FC              =       mpif90 -f90=pgf90
1530 LD              =       mpif90 -f90=pgf90
1531 CC              =       mpicc -cc=gcc
1532 SCC             =       gcc
1533 SFC             =       pgf90
1534 RWORDSIZE       =       $(NATIVE_RWORDSIZE)
1535 PROMOTION       =       -r$(RWORDSIZE) -i4
1536 CFLAGS          =       -DDM_PARALLEL \
1537                         -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC) -I../external/RSL_LITE
1538 #FCOPTIM                =       -fastsse 
1539 FCOPTIM         =       -O2 # -fast
1540 FCDEBUG         =       #-g
1541 #FCBASEOPTS      =       -w -byteswapio -Ktrap=fp -Mfree $(FCDEBUG)
1542 FCBASEOPTS      =       -w -byteswapio -Mfree $(FCDEBUG) # -Mlfs
1543 #Options for Debian Sarge systems
1544 #FCBASEOPTS      =       -w -byteswapio -Mfree -Mipa=fast,inline,safe  $(FCDEBUG) # -Mlfs
1545 FCFLAGS         =       $(FCOPTIM) $(FCBASEOPTS)
1546 ARCHFLAGS       =       $(COREDEFS) -DGRIB1 CONFIGURE_GRIB2_FLAG -DINTIO -DDM_PARALLEL \
1547                         -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG \
1548                         -DLIMIT_ARGS -DNMM_NEST=$(WRF_NMM_NEST)
1549 # machine-specific flags needed to link in ESMF library (C++ run-time-library, etc.)
1550 ESMF_LIB_FLAGS  =       
1551 ESMF_IO_LIB     =       ESMFIOLIB
1552 ESMF_IO_LIB_EXT =       ESMFIOEXTLIB
1553 INCLUDE_MODULES =       -module ../main -I../external/io_netcdf -I../external/io_int -I../external/esmf_time_f90 \
1554                         -I../external -I../frame -I../share -I../phys -I../chem -I../inc
1555 PERL            =       perl
1556 REGISTRY        =       Registry
1557 LIB             =       CONFIGURE_NETCDF_LIB_PATH -L../external/RSL_LITE -lrsl_lite \
1558                         -L../external/io_grib1 -lio_grib1 \
1559                         CONFIGURE_GRIB2_LIB \
1560                         -L../external/io_grib_share -lio_grib_share \
1561                         -L../external/io_int -lwrfio_int \
1562                         ../frame/module_internal_header_util.o ../frame/pack_utils.o -L../external/esmf_time_f90 -lesmf_time 
1563 LDFLAGS         =       -byteswapio $(FCFLAGS) CONFIGURE_LDFLAGS
1564 ENVCOMPDEFS     =       CONFIGURE_COMPILEFLAGS
1565 CPP             =       /lib/cpp -C -P -traditional
1566 POUND_DEF       =       -DNO_RRTM_PHYSICS  -traditional $(COREDEFS) -DNONSTANDARD_SYSTEM -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) -DMAX_DOMAINS_F=$(MAX_DOMAINS)
1567 CPPFLAGS        =       -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I../external/RSL_LITE -C -P `cat ../inc/dm_comm_cpp_flags` $(ENVCOMPDEFS) $(POUND_DEF)
1568 AR              =       ar ru
1569 M4              =       m4 -B 14000
1570 RANLIB          =       ranlib
1571 NETCDFPATH      =       CONFIGURE_NETCDF_PATH
1572 CC_TOOLS        =       cc
1574 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
1576 gen_comms.c : ../external/RSL_LITE/gen_comms.c
1577         ( /bin/cp ../tools/gen_comms_warning ../tools/gen_comms.c ; \
1578           cat ../external/RSL_LITE/gen_comms.c >> ../tools/gen_comms.c )
1580 module_dm.F : ../external/RSL_LITE/module_dm.F
1581         ( /bin/cp module_dm_warning module_dm.F ; cat ../external/RSL_LITE/module_dm.F >> module_dm.F )
1583 wrfio_nf : 
1584         ( cd ../external/io_netcdf ; \
1585           make NETCDFPATH=CONFIGURE_NETCDF_PATH RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(FC) $(PROMOTION) $(FCFLAGS) -w" TRADFLAG="-traditional" )
1587 wrfio_grib_share :
1588         ( cd ../external/io_grib_share ; \
1589           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
1591 wrfio_grib1 :
1592         ( cd ../external/io_grib1 ; \
1593           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" CPP="$(CPP)" FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" archive)
1595 wrfio_grib2 :
1596         ( cd ../external/io_grib2 ; \
1597           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)
1599 wrfio_int : 
1600         ( cd ../external/io_int ; \
1601           make CC="$(CC)" RANLIB="$(RANLIB)" CPP="$(CPP)" SFC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) -w" TRADFLAG="-traditional" all )
1603 esmf_time : 
1604         ( cd ../external/esmf_time_f90 ; \
1605           make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" CPP="$(CPP) -I../../inc -I. $(POUND_DEF)" )
1607 ../external/RSL_LITE/librsl_lite.a :
1608         ( cd ../external/RSL_LITE ; make CC="$(CC)" FC="$(FC) $(FCFLAGS) $(PROMOTION) -byteswapio" MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST )
1610 # compile these without high optimization to speed compile
1611 solve_interface.o : solve_interface.F
1612 shift_domain_em.o : shift_domain_em.F
1613 module_io_mm5.o : module_io_mm5.F
1614 module_si_io.o : module_si_io.F
1615 module_io_wrf.o : module_io_wrf.F
1616 module_domain.o : module_domain.F
1617 module_start.o : module_start.F
1618 module_initialize.o : module_initialize.F
1619 module_initialize_b_wave.o : module_initialize_b_wave.F
1620 module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
1621 module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
1622 module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
1623 module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
1624 module_initialize_real.o : module_initialize_real.F
1625 module_dm.o : module_dm.F
1626 start_domain.o : start_domain.F
1627 mediation_integrate.o : mediation_integrate.F
1628 module_configure.o : module_configure.F
1630 solve_interface.o                                              \
1631 shift_domain_em.o                                              \
1632 module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o \
1633 module_start.o module_initialize.o module_initialize_b_wave.o  \
1634 module_initialize_hill2d_x.o module_initialize_quarter_ss.o    \
1635 module_initialize_squall2d_x.o module_initialize_squall2d_y.o  \
1636 module_configure.o                                             \
1637 mediation_integrate.o \
1638 module_initialize_real.o module_dm.o start_domain.o :
1639         $(RM) $@
1640         $(SED_FTN) $*.F > $*.b 
1641         $(CPP) -I../inc $(CPPFLAGS) $*.b  > $*.f90
1642         $(RM) $*.b
1643         $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
1644 #PGI    if [ ! -e $@ ] ; then \
1645 #PGI    sleep 10 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
1646 #PGI    fi
1647 #PGI    if [ ! -e $@ ] ; then \
1648 #PGI    sleep 30 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
1649 #PGI    fi
1650 #PGI    if [ ! -e $@ ] ; then \
1651 #PGI    sleep 300 ; $(FC) -c $(PROMOTION) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90 ; \
1652 #PGI    fi
1655 ##################################################################
1656 #ARCH  NULL