1 ###########################################################
2 #ARCH Linux i486 i586 i686, NEC SX sxf90 sxcc #serial smpar dmpar dm+sm
4 DESCRIPTION = NEC SX ($SFC/$SCC)
17 RWORDSIZE = CONFIGURE_RWORDSIZE
18 PROMOTION = #-fdefault-real-8
19 ARCH_LOCAL = -DNEC -DNONSTANDARD_SYSTEM_SUBR CONFIGURE_D_CTSM
20 CFLAGS_LOCAL = -c # -DRSL0_ONLY
21 #-DNCARIBM_NOC99 -Xa -Kc99
22 LDFLAGS_LOCAL = -Wl,-h nodefs
24 ESMF_LDFLAG = $(CPLUSPLUSLIB)
25 FCOPTIM = -w -Chopt -Wf'-M noflunf -M nozdiv' -Wf,-L fmtlist transform,-pvctl fullmsg loopcnt=1000000 -f4 -Wf,-P i
26 FCREDUCEDOPT = $(FCOPTIM)
28 FCDEBUG = # -g $(FCNOOPT)
32 BYTESWAPIO = #-FIX_BYTE_SWAP_IF_NECESSARY_FOR_BIG_ENDIAN
33 FCBASEOPTS_NO_G = -w -Wf'-M noflunf -M nozdiv' $(FORMAT_FREE) $(BYTESWAPIO)
34 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
35 MODULE_SRCH_FLAG = -I/SX/usr/include/module/dwdadW64/
36 TRADFLAG = CONFIGURE_TRADFLAG
37 CPP = /lib/cpp CONFIGURE_CPPFLAGS
45 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
47 ###########################################################
48 #ARCH Linux i486 i586 i686 armv7l aarch64, gfortran compiler with gcc #serial smpar dmpar dm+sm
50 DESCRIPTION = GNU ($SFC/$SCC)
58 DM_FC = mpif90 -f90=$(SFC)
59 DM_CC = mpicc -cc=$(SCC)
63 RWORDSIZE = CONFIGURE_RWORDSIZE
64 PROMOTION = #-fdefault-real-8
65 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR CONFIGURE_D_CTSM
66 CFLAGS_LOCAL = -w -O3 -c # -DRSL0_ONLY
69 ESMF_LDFLAG = $(CPLUSPLUSLIB)
70 FCOPTIM = -O2 -ftree-vectorize -funroll-loops
71 FCREDUCEDOPT = $(FCOPTIM)
73 FCDEBUG = # -g $(FCNOOPT) # -fbacktrace -ggdb -fcheck=bounds,do,mem,pointer -ffpe-trap=invalid,zero,overflow
74 FORMAT_FIXED = -ffixed-form
75 FORMAT_FREE = -ffree-form -ffree-line-length-none
78 BYTESWAPIO = -fconvert=big-endian -frecord-marker=4
79 FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) $(FCCOMPAT)
80 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
82 TRADFLAG = CONFIGURE_TRADFLAG
83 CPP = /lib/cpp CONFIGURE_CPPFLAGS
90 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
92 ###########################################################
93 #ARCH Linux i486 i586 i686, g95 compiler with gcc #serial dmpar
95 DESCRIPTION = GNU ($SFC/$SCC)
97 OMPCPP = # not supported
99 OMPCC = # not supported
103 DM_FC = mpif90 -f90=$(SFC)
104 DM_CC = mpicc -cc=$(SCC)
108 RWORDSIZE = CONFIGURE_RWORDSIZE
109 PROMOTION = -r$(RWORDSIZE) -i4
110 ARCH_LOCAL = -DF2CSTYLE -DNONSTANDARD_SYSTEM_SUBR CONFIGURE_D_CTSM
111 CFLAGS_LOCAL = -DF2CSTYLE # -DRSL0_ONLY
114 ESMF_LDFLAG = $(CPLUSPLUSLIB)
116 FCREDUCEDOPT = $(FCOPTIM)
118 FCDEBUG = # -g $(FCNOOPT)
119 FORMAT_FIXED = -ffixed-form
120 FORMAT_FREE = -ffree-form -ffree-line-length-huge
122 BYTESWAPIO = -fendian=big
123 FCBASEOPTS_NO_G = -Wno=101,139,155,158 $(FORMAT_FREE) $(BYTESWAPIO)
124 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
125 MODULE_SRCH_FLAG = -fmod=$(WRF_SRC_ROOT_DIR)/main
126 TRADFLAG = CONFIGURE_TRADFLAG
127 CPP = /lib/cpp CONFIGURE_CPPFLAGS
134 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
136 ###########################################################
137 #ARCH Linux x86_64 ppc64le i486 i586 i686, PGI compiler with gcc # serial smpar dmpar dm+sm
139 DESCRIPTION = PGI ($SFC/$SCC)
142 OMP = # -mp -Minfo=mp -Mrecursive
152 RWORDSIZE = CONFIGURE_RWORDSIZE
153 PROMOTION = -r$(RWORDSIZE) -i4
154 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR CONFIGURE_D_CTSM
155 CFLAGS_LOCAL = -w -O3 # -DRSL0_ONLY
158 ESMF_LDFLAG = $(CPLUSPLUSLIB)
159 FCOPTIM = -O3 #-fastsse -Mvect=noaltcode -Msmartalloc -Mprefetch=distance:8 -Mfprelaxed # -Minfo=all =Mneginfo=all
160 FCREDUCEDOPT = $(FCOPTIM)
162 FCDEBUG = # -g $(FCNOOPT) # -C -Ktrap=fp -traceback
163 FORMAT_FIXED = -Mfixed
166 BYTESWAPIO = -byteswapio
167 FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) $(OMP) # -Kieee -pc 64 -Ktrap=fp
168 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
169 MODULE_SRCH_FLAG = -module $(WRF_SRC_ROOT_DIR)/main
170 TRADFLAG = CONFIGURE_TRADFLAG
171 CPP = /lib/cpp CONFIGURE_CPPFLAGS
178 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
180 ###########################################################
181 #ARCH Linux x86_64 ppc64le, PGI compiler with pgcc, SGI MPT # serial smpar dmpar dm+sm
183 DESCRIPTION = PGI ($SFC/$SCC): SGI MPT
186 OMP = # -mp -Minfo=mp -Mrecursive
191 DM_FC = $(SFC) -I$(MPI_ROOT)/include
192 DM_CC = $(SCC) -I$(MPI_ROOT)/include
196 RWORDSIZE = CONFIGURE_RWORDSIZE
197 PROMOTION = -r$(RWORDSIZE) -i4
198 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR CONFIGURE_D_CTSM
199 CFLAGS_LOCAL = -w -O3 # -DRSL0_ONLY
200 LDFLAGS_LOCAL = -L$(MPI_ROOT)/lib -lmpi
202 ESMF_LDFLAG = $(CPLUSPLUSLIB)
203 FCOPTIM = -O3 #-fastsse -Mvect=noaltcode -Msmartalloc -Mprefetch=distance:8 -Mfprelaxed # -Minfo=all =Mneginfo=all
204 FCREDUCEDOPT = $(FCOPTIM)
206 FCDEBUG = # -g $(FCNOOPT) # -C -Ktrap=fp -traceback
207 FORMAT_FIXED = -Mfixed
210 BYTESWAPIO = -byteswapio
211 FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) $(OMP) # -Kieee -pc 64 -Ktrap=fp
212 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
213 MODULE_SRCH_FLAG = -module $(WRF_SRC_ROOT_DIR)/main
214 TRADFLAG = CONFIGURE_TRADFLAG
215 CPP = /lib/cpp CONFIGURE_CPPFLAGS
222 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
224 ###########################################################
225 #ARCH Linux x86_64 ppc64le, PGI accelerator compiler with gcc # serial smpar dmpar dm+sm
227 DESCRIPTION = PGI ($SFC/$SCC): PGI accelerator
230 OMP = # -mp -Minfo=mp -Mrecursive
240 RWORDSIZE = CONFIGURE_RWORDSIZE
241 PROMOTION = -r$(RWORDSIZE) -i4
242 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -D_ACCEL CONFIGURE_D_CTSM
243 CFLAGS_LOCAL = -w -O3 # -DRSL0_ONLY
246 ESMF_LDFLAG = $(CPLUSPLUSLIB)
247 FCOPTIM = -Kieee -acc -ta=nvidia,fastmath,cuda5.0,cc35 -Mcuda -fastsse -Mvect=noaltcode -Msmartalloc -Mprefetch=distance:8 # -Minfo=all =Mneginfo=all
248 FCREDUCEDOPT = $(FCOPTIM)
250 FCDEBUG = # -g $(FCNOOPT) -Kieee -acc -ta=nvidia,cuda5.0,cc35 -Mcuda # -C -Ktrap=fp -traceback
251 FORMAT_FIXED = -Mfixed
254 BYTESWAPIO = -byteswapio
255 FCBASEOPTS = -w $(FCDEBUG) $(FORMAT_FREE) $(BYTESWAPIO) $(OMP) # -Kieee
256 MODULE_SRCH_FLAG = -module $(WRF_SRC_ROOT_DIR)/main
257 TRADFLAG = CONFIGURE_TRADFLAG
258 CPP = /lib/cpp CONFIGURE_CPPFLAGS
265 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
267 ###########################################################
268 #ARCH Linux x86_64 ppc64le i486 i586 i686, ifort compiler with icc #serial smpar dmpar dm+sm
270 # By default, some files are compiled without optimizations to speed up compilation. Removing
271 # respective makefile rules in the end of this file will result in longer compilation time, and, possibly
272 # Out Of Memory messages, but might produce binaries which are substantially faster.
274 # Please visit http://www.intel.com/support/performancetools/sb/cs-028607.htm
275 # for latest info on how to build WRF with Intel compilers.
277 # If you got Out Of Memory message, there are several options:
278 # 1. Check your memory limits (ulimit -a), possibly increasing swap partitions size.
279 # 2. Remove any debugging flags (-g, -check, -traceback).
280 # 3. Force the problematic file to be compiled with less optimizations (see examples at the
281 # end of this file), try -no-ip compiler flag.
283 # This configuration is aimed at accuracy. To improve performance (at the expence of accuracy) you might
284 # consider removing '-fp-model precise' flag from FCBASEOPTS. This enables non value-safe optimizations.
285 # Another option is to add '-ftz' flag, which flushes denormal results to zero when the application is in
286 # the gradual underflow mode. It may improve performance if the denormal values are not critical to the
287 # behavior of your workload. To further improve performance, add suitable vectorization options for your
288 # processor to FCOPTIM (see ifort manpage).
290 # If you have Intel MPI installed and wish to use instead, make the
291 # following changes to settings below:
294 # and source bin64/mpivars.sh file from your Intel MPI installation
297 # Suggestions for timing improvements from Craig Mattocks
299 #CFLAGS_LOCAL = -w -O3 -ip -fp-model precise -w -ftz -align all -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -no-multibyte-chars
300 #LDFLAGS_LOCAL = -ip -fp-model precise -w -ftz -align all -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -align all -fno-alias -fno-common
301 #FCBASEOPTS_NO_G = -w -ip -fp-model precise -w -ftz -align all -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) #-xHost -fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -ftz -align all -fno-alias -fno-common $(FORMAT_FREE) $(BYTESWAPIO)
303 DESCRIPTION = INTEL ($SFC/$SCC)
306 OMP = # -qopenmp -fpp -auto
311 DM_FC = mpif90 -f90=$(SFC)
312 DM_CC = mpicc -cc=$(SCC)
316 RWORDSIZE = CONFIGURE_RWORDSIZE
317 PROMOTION = -real-size `expr 8 \* $(RWORDSIZE)` -i4
318 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_FUNC CONFIGURE_D_CTSM
319 CFLAGS_LOCAL = -w -O3 -ip #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -no-multibyte-chars # -DRSL0_ONLY
320 LDFLAGS_LOCAL = -ip #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -align all -fno-alias -fno-common
322 ESMF_LDFLAG = $(CPLUSPLUSLIB)
324 FCREDUCEDOPT = $(FCOPTIM)
325 FCNOOPT = -O0 -fno-inline -no-ip
326 FCDEBUG = # -g $(FCNOOPT) -traceback # -fpe0 -check noarg_temp_created,bounds,format,output_conversion,pointers,uninit -ftrapuv -unroll0 -u
330 BYTESWAPIO = -convert big_endian
331 RECORDLENGTH = -assume byterecl
332 FCBASEOPTS_NO_G = -ip -fp-model precise -w -ftz -align all -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) #-xHost -fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -fno-common
333 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
335 TRADFLAG = CONFIGURE_TRADFLAG
336 CPP = /lib/cpp CONFIGURE_CPPFLAGS
343 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
345 ###########################################################
346 #ARCH Linux x86_64 ppc64le i486 i586 i686, Xeon Phi (MIC architecture) ifort compiler with icc # dm+sm
349 DESCRIPTION = INTEL ($SFC/$SCC): Xeon Phi (MIC architecture)
352 OMP = -qopenmp -fpp -auto
357 DM_FC = mpiifort -mmic
362 RWORDSIZE = CONFIGURE_RWORDSIZE
363 PROMOTION = -real-size `expr 8 \* $(RWORDSIZE)` -i4
364 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_FUNC -DCHUNK=16 -DXEON_OPTIMIZED_WSM5 -DXEON_SIMD -DOPTIMIZE_CFL_TEST -DFSEEKO64_OK -DINTEL_YSU_KLUDGE CONFIGURE_D_CTSM
366 OPTKNC = -fimf-precision=low -fimf-domain-exclusion=15 -opt-assume-safe-padding -opt-streaming-stores always -opt-streaming-cache-evict=0 -mP2OPT_hlo_pref_use_outer_strategy=F
367 CFLAGS_LOCAL = -w -O3 $(OPTKNC) # -DRSL0_ONLY
368 LDFLAGS_LOCAL = $(OPTKNC)
370 ESMF_LDFLAG = $(CPLUSPLUSLIB)
371 FCOPTIM = -O3 $(OPTKNC)
372 FCREDUCEDOPT = $(FCOPTIM)
373 FCNOOPT = -O0 -fno-inline -no-ip
374 FCDEBUG = # -g $(FCNOOPT) -traceback # -fpe0 -check noarg_temp_created,bounds,format,output_conversion,pointers,uninit -ftrapuv -unroll0 -u
378 BYTESWAPIO = -convert big_endian
379 RECORDLENGTH = -assume byterecl
380 FCBASEOPTS_NO_G = -w -qopenmp -auto -ftz -fno-alias -fp-model fast=1 -no-prec-div -no-prec-sqrt $(FORMAT_FREE) $(BYTESWAPIO) -auto -align array64byte #-vec-report6
381 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
383 TRADFLAG = CONFIGURE_TRADFLAG
384 CPP = /lib/cpp CONFIGURE_CPPFLAGS
391 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
393 ###########################################################
394 #ARCH Linux x86_64 ppc64le i486 i586 i686, Xeon (SNB with AVX mods) ifort compiler with icc # serial smpar dmpar dm+sm
397 DESCRIPTION = INTEL ($SFC/$SCC): Xeon (SNB with AVX mods)
400 OMP = # -qopenmp -fpp -auto
405 DM_FC = mpif90 -f90=$(SFC)
406 DM_CC = mpicc -cc=$(SCC)
410 RWORDSIZE = CONFIGURE_RWORDSIZE
411 PROMOTION = -real-size `expr 8 \* $(RWORDSIZE)` -i4
412 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_FUNC -DCHUNK=64 -DXEON_OPTIMIZED_WSM5 -DOPTIMIZE_CFL_TEST CONFIGURE_D_CTSM
415 CFLAGS_LOCAL = -w -O3 $(OPTAVX) # -DRSL0_ONLY
416 LDFLAGS_LOCAL = $(OPTAVX)
418 ESMF_LDFLAG = $(CPLUSPLUSLIB)
419 FCOPTIM = -O3 $(OPTAVX)
420 FCREDUCEDOPT = $(FCOPTIM)
421 FCNOOPT = -O0 -fno-inline -no-ip
422 FCDEBUG = # -g $(FCNOOPT) -traceback # -fpe0 -check noarg_temp_created,bounds,format,output_conversion,pointers,uninit -ftrapuv -unroll0 -u
426 BYTESWAPIO = -convert big_endian
427 RECORDLENGTH = -assume byterecl
428 FCBASEOPTS_NO_G = -w $(OMP) -auto -ftz -fno-alias -fp-model fast=1 -no-prec-div -no-prec-sqrt $(FORMAT_FREE) $(BYTESWAPIO) -auto -align array64byte #-vec-report6
429 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
431 TRADFLAG = CONFIGURE_TRADFLAG
432 CPP = /lib/cpp CONFIGURE_CPPFLAGS
439 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
441 ###########################################################
442 #ARCH Linux x86_64 ppc64le i486 i586 i686, ifort compiler with icc, SGI MPT #serial smpar dmpar dm+sm
444 # By default, some files are compiled without optimizations to speed up compilation. Removing
445 # respective makefile rules in the end of this file will result in longer compilation time, and, possibly
446 # Out Of Memory messages, but might produce binaries which are substantially faster.
448 # Please visit http://www.intel.com/support/performancetools/sb/cs-028607.htm
449 # for latest info on how to build WRF with Intel compilers.
451 # If you got Out Of Memory message, there are several options:
452 # 1. Check your memory limits (ulimit -a), possibly increasing swap partitions size.
453 # 2. Remove any debugging flags (-g, -check, -traceback).
454 # 3. Force the problematic file to be compiled with less optimizations (see examples at the
455 # end of this file), try -no-ip compiler flag.
457 # This configuration is aimed at accuracy. To improve performance (at the expence of accuracy) you might
458 # consider removing '-fp-model precise' flag from FCBASEOPTS. This enables non value-safe optimizations.
459 # Another option is to add '-ftz' flag, which flushes denormal results to zero when the application is in
460 # the gradual underflow mode. It may improve performance if the denormal values are not critical to the
461 # behavior of your workload. To further improve performance, add suitable vectorization options for your
462 # processor to FCOPTIM (see ifort manpage).
464 # If you have Intel MPI installed and wish to use instead, make the
465 # following changes to settings below:
468 # and source bin64/mpivars.sh file from your Intel MPI installation
471 DESCRIPTION = INTEL ($SFC/$SCC): SGI MPT
474 OMP = # -qopenmp -fpp -auto
484 RWORDSIZE = CONFIGURE_RWORDSIZE
485 PROMOTION = -real-size `expr 8 \* $(RWORDSIZE)` -i4
486 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_FUNC CONFIGURE_D_CTSM
487 CFLAGS_LOCAL = -w -O3 -ip #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -no-multibyte-chars # -DRSL0_ONLY
488 LDFLAGS_LOCAL = -ip -lmpi #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -align all -fno-alias -fno-common
490 ESMF_LDFLAG = $(CPLUSPLUSLIB)
492 FCREDUCEDOPT = $(FCOPTIM)
493 FCNOOPT = -O0 -fno-inline -no-ip
494 FCDEBUG = # -g $(FCNOOPT) -traceback # -fpe0 -check noarg_temp_created,bounds,format,output_conversion,pointers,uninit -ftrapuv -unroll0 -u
498 BYTESWAPIO = -convert big_endian
499 RECORDLENGTH = -assume byterecl
500 FCBASEOPTS_NO_G = -ip -fp-model precise -w -ftz -align all -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) #-xHost -fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -fno-common
501 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
503 TRADFLAG = CONFIGURE_TRADFLAG
504 CPP = /lib/cpp CONFIGURE_CPPFLAGS
511 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
513 ###########################################################
514 #ARCH Linux x86_64 ppc64le i486 i586 i686, ifort compiler with icc, IBM POE #serial smpar dmpar dm+sm
516 # This is identical to the Intel Fortran with Intel MPI but configured
517 # to use IBM POE as the MPI implementation. NCEP needs this
518 # configuration to run on the new WCOSS Tide and Gyre operational
519 # forecasting machines.
521 DESCRIPTION = INTEL ($SFC/$SCC): IBM POE
524 OMP = # -qopenmp -fpp -auto
534 RWORDSIZE = CONFIGURE_RWORDSIZE
535 PROMOTION = -real-size `expr 8 \* $(RWORDSIZE)` -i4
536 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_FUNC CONFIGURE_D_CTSM
537 CFLAGS_LOCAL = -w -O3 -ip #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -no-multibyte-chars # -DRSL0_ONLY
538 LDFLAGS_LOCAL = -ip #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -align all -fno-alias -fno-common
540 ESMF_LDFLAG = $(CPLUSPLUSLIB)
542 FCREDUCEDOPT = $(FCOPTIM)
543 FCNOOPT = -O0 -fno-inline -no-ip
544 FCDEBUG = # -g $(FCNOOPT) -traceback # -fpe0 -check noarg_temp_created,bounds,format,output_conversion,pointers,uninit -ftrapuv -unroll0 -u
548 BYTESWAPIO = -convert big_endian
549 RECORDLENGTH = -assume byterecl
550 FCBASEOPTS_NO_G = -ip -fp-model precise -w -ftz -align all -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) #-xHost -fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -fno-common
551 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
553 TRADFLAG = CONFIGURE_TRADFLAG
554 CPP = /lib/cpp CONFIGURE_CPPFLAGS
561 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
563 ###########################################################
564 #ARCH ia64 Linux ifort compiler with icc 9.x,10.x #serial smpar dmpar dm+sm
566 # By default, some files are compiled without optimizations to
567 # speed up compilation. Removing respective makefile rules in the
568 # end of this file will result in longer compilation time, and,
569 # possibly Out Of Memory messages, but might produce binaries
570 # which are substantially faster.
572 # Please visit http://www.intel.com/support/performancetools/sb/cs-028607.htm
573 # for latest info on how to build WRF with Intel compilers.
575 # If you get Out Of Memory messages, there are several options:
576 # 1. Check your memory limits (ulimit -a), possibly increasing
577 # swap partitions size.
578 # 2. Remove any debugging flags (-g, -check, -traceback).
579 # 3. Force the problematic file to be compiled with lower
580 # optimization (see examples at the end of this file),
581 # try the -no-ip compiler flag.
583 # The default configuration is aimed at accuracy. To improve speed
584 # with only negligible effect on floating point accuracy,
585 # consider removing "-fp-model precise" from FCBASEOPTS. If
586 # you are using ifort 9.1.x compiler or earlier, consider
587 # uncommenting the version of the FCBASEOPTS settings that uses
588 # the -IPF-fp-relaxed option.
590 # If you can tolerate a longer build, change the setting of
591 # FCNOOPT to -O1, for slightly faster performance.
593 # If you have Intel MPI installed and wish to use instead, make the
594 # following changes to settings below:
597 # and source bin/mpivars.sh file from your Intel MPI installation
601 DESCRIPTION = INTEL ($SFC/$SCC): ia64
604 OMP = # -qopenmp -fpp -auto
609 DM_FC = mpif90 -f90=$(SFC)
610 DM_CC = mpicc -cc=$(SCC)
614 RWORDSIZE = CONFIGURE_RWORDSIZE
615 PROMOTION = -real-size `expr 8 \* $(RWORDSIZE)` -i4
616 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_FUNC CONFIGURE_D_CTSM
617 CFLAGS_LOCAL = -w -O3 -ip #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -no-multibyte-chars # -DRSL0_ONLY
618 LDFLAGS_LOCAL = -ip #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -align all -fno-alias -fno-common
620 ESMF_LDFLAG = $(CPLUSPLUSLIB)
622 FCREDUCEDOPT = $(FCOPTIM)
623 FCNOOPT = -O0 -fno-inline -no-ip
624 FCDEBUG = # -g $(FCNOOPT) -traceback # -fpe0 -check noarg_temp_created,bounds,format,output_conversion,pointers,uninit -ftrapuv -unroll0 -u
628 BYTESWAPIO = -convert big_endian
629 RECORDLENGTH = -assume byterecl
630 FCBASEOPTS_NO_G = -ip -fp-model precise -w -ftz -align all -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) #-xHost -fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -fno-common
631 #FCBASEOPTS_NO_G = -w -ftz -align all -fno-alias -IPF-fp-relaxed $(FORMAT_FREE) $(BYTESWAPIO)
632 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
633 LIB_LOCAL = -L/usr/lib -lmpi
635 TRADFLAG = CONFIGURE_TRADFLAG
636 CPP = /lib/cpp CONFIGURE_CPPFLAGS
643 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
645 ###########################################################
646 #ARCH Linux SGI Altix, ifort compiler with icc 9.x,10.x #serial smpar dmpar dm+sm
648 # By default, some files are compiled without optimizations to
649 # speed up compilation. Removing respective makefile rules in the
650 # end of this file will result in longer compilation time, and,
651 # possibly Out Of Memory messages, but might produce binaries
652 # which are substantially faster.
654 # If you get Out Of Memory messages, there are several options:
655 # 1. Check your memory limits (ulimit -a), possibly increasing
656 # swap partitions size.
657 # 2. Remove any debugging flags (-g, -check, -traceback).
658 # 3. Force the problematic file to be compiled with lower
659 # optimization (see examples at the end of this file),
660 # try the -no-ip compiler flag.
662 # Please visit http://www.intel.com/support/performancetools/sb/cs-028607.htm
663 # for latest info on how to build WRF with Intel compilers.
665 # The default configuration is aimed at accuracy. To improve speed
666 # with only negligible effect on floating point accuracy,
667 # consider removing "-fp-model precise" from FCBASEOPTS. If
668 # you are using an ifort 9.1.x compiler or earlier, consider
669 # uncommenting the version of the FCBASEOPTS settings that uses
670 # the -IPF-fp-relaxed option. To further improve performance,
671 # add processor-specific options to FCOPTIM (see ifort manpage).
673 # If you can tolerate a longer build, change the setting of
674 # FCNOOPT to -O1, for slightly faster performance.
676 # If your SGI MPI library is not installed in the default
677 # locations (/usr/bin, /usr/include, /usr/lib), set MPI_HOME
678 # to be the path to the directory where the SGI MPI bin,
679 # include and lib directories are, and change the DM_FC,
680 # DM_CC and LIB_LOCAL settings as follows:
681 # DM_FC = $(SFC) -I$(MPI_HOME)/include
682 # DM_CC = $(SFC) -I$(MPI_HOME)/include
683 # LIB_LOCAL = -L$(MPI_HOME)/lib -lmpi
685 DESCRIPTION = INTEL ($SFC/$SCC): SGI Altix
688 OMP = # -qopenmp -fpp -auto
698 RWORDSIZE = CONFIGURE_RWORDSIZE
699 PROMOTION = -real-size `expr 8 \* $(RWORDSIZE)` -i4
700 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_FUNC CONFIGURE_D_CTSM
701 CFLAGS_LOCAL = -w -O3 -ip #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -no-multibyte-chars # -DRSL0_ONLY
702 LDFLAGS_LOCAL = -ip #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -align all -fno-alias -fno-common
704 ESMF_LDFLAG = $(CPLUSPLUSLIB)
706 FCREDUCEDOPT = $(FCOPTIM)
707 FCNOOPT = -O0 -fno-inline -no-ip
708 FCDEBUG = # -g $(FCNOOPT) -traceback # -fpe0 -check noarg_temp_created,bounds,format,output_conversion,pointers,uninit -ftrapuv -unroll0 -u
712 BYTESWAPIO = -convert big_endian
713 RECORDLENGTH = -assume byterecl
714 FCBASEOPTS_NO_G = -ip -fp-model precise -w -ftz -align all -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) #-xHost -fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -fno-common
715 #FCBASEOPTS_NO_G = -w -ftz -align all -fno-alias -IPF-fp-relaxed $(FORMAT_FREE) $(BYTESWAPIO)
716 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
717 LIB_LOCAL = -L/usr/lib -lmpi
719 TRADFLAG = CONFIGURE_TRADFLAG
720 CPP = /lib/cpp CONFIGURE_CPPFLAGS
727 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
729 ###########################################################
730 #ARCH Linux i486 i586 i686 x86_64 ppc64le, PathScale compiler with pathcc #serial dmpar
732 DESCRIPTION = PATHSCALE ($SFC/$SCC)
734 OMPCPP = # not supported
735 OMP = # not supported
736 OMPCC = # not supported
740 DM_FC = mpif90 -f90=$(SFC)
741 DM_CC = mpicc -cc=$(SCC)
745 RWORDSIZE = CONFIGURE_RWORDSIZE
746 PROMOTION = -r$(RWORDSIZE) -i4
747 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR CONFIGURE_D_CTSM -D__PATHSCALE__
748 CFLAGS_LOCAL = # -DRSL0_ONLY
751 ESMF_LDFLAG = $(CPLUSPLUSLIB)
752 FCOPTIM = -O -OPT:Ofast:Olimit=5000
753 FCREDUCEDOPT = $(FCOPTIM)
755 FCDEBUG = # -g $(FCNOOPT) # -C -trapuv
756 FORMAT_FIXED = -fixedform
757 FORMAT_FREE = -freeform
759 BYTESWAPIO = -byteswapio
760 FCBASEOPTS_NO_G = -w -fno-second-underscore $(FORMAT_FREE) $(BYTESWAPIO)
761 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
762 MODULE_SRCH_FLAG = -module $(WRF_SRC_ROOT_DIR)/main
763 TRADFLAG = CONFIGURE_TRADFLAG
764 CPP = /lib/cpp CONFIGURE_CPPFLAGS
771 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
773 ###########################################################
774 #ARCH Linux x86_64 ppc64le, gfortran compiler with gcc #serial smpar dmpar dm+sm
776 DESCRIPTION = GNU ($SFC/$SCC)
784 DM_FC = mpif90 -f90=$(SFC)
785 DM_CC = mpicc -cc=$(SCC)
789 RWORDSIZE = CONFIGURE_RWORDSIZE
790 PROMOTION = #-fdefault-real-8
791 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR CONFIGURE_D_CTSM
792 # to validate WRF correctness on aarch64 against x86_64; compile with x86 this alternate ARCH_LOCAL option; able to achieve identical output model on ubuntu 18.04 with gcc 10.2 (on graviton and intel processors)
793 # ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR CONFIGURE_D_CTSM -DAARCH64_X86_CORRECTNESS_FIX
794 CFLAGS_LOCAL = -w -O3 -c # -DRSL0_ONLY
797 ESMF_LDFLAG = $(CPLUSPLUSLIB)
798 FCOPTIM = -O2 -ftree-vectorize -funroll-loops
799 FCREDUCEDOPT = $(FCOPTIM)
801 FCDEBUG = # -g $(FCNOOPT) # -ggdb -fbacktrace -fcheck=bounds,do,mem,pointer -ffpe-trap=invalid,zero,overflow
802 FORMAT_FIXED = -ffixed-form
803 FORMAT_FREE = -ffree-form -ffree-line-length-none
806 BYTESWAPIO = -fconvert=big-endian -frecord-marker=4
807 FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) $(FCCOMPAT)
808 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
810 TRADFLAG = CONFIGURE_TRADFLAG
811 CPP = /lib/cpp CONFIGURE_CPPFLAGS
818 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
820 ###########################################################
821 #ARCH Darwin x86_64 arm64, (MACOS) PGI compiler with pgcc #serial smpar dmpar dm+sm
823 DESCRIPTION = PGI ($SFC/$SCC)
826 OMP = # -mp -Minfo=mp -Mrecursive
836 RWORDSIZE = CONFIGURE_RWORDSIZE
837 PROMOTION = -r$(RWORDSIZE) -i4
838 ARCH_LOCAL = -DMACOS -DNONSTANDARD_SYSTEM_SUBR CONFIGURE_D_CTSM
839 CFLAGS_LOCAL = -DMACOS # -DRSL0_ONLY
842 ESMF_LDFLAG = $(CPLUSPLUSLIB)
844 FCREDUCEDOPT = $(FCOPTIM)
846 FCDEBUG = # -g $(FCNOOPT) # -C -Ktrap=fp -traceback
847 FORMAT_FIXED = -Mfixed
850 BYTESWAPIO = -byteswapio
851 FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) $(OMP) # -Kieee -pc 64 -Ktrap=fp
852 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG) -Mnomod
853 MODULE_SRCH_FLAG = -module $(WRF_SRC_ROOT_DIR)/main
854 TRADFLAG = CONFIGURE_TRADFLAG
855 CPP = cpp CONFIGURE_CPPFLAGS -xassembler-with-cpp
862 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
864 ###########################################################
865 #ARCH Darwin x86_64 arm64, (MACOS) intel compiler with icc #serial smpar dmpar dm+sm
867 DESCRIPTION = INTEL ($SFC/$SCC)
870 OMP = # -qopenmp -fpp -auto
875 DM_FC = mpif90 -f90=$(SFC)
876 DM_CC = mpicc -cc=$(SCC)
880 RWORDSIZE = CONFIGURE_RWORDSIZE
881 PROMOTION = -real-size `expr 8 \* $(RWORDSIZE)` -i4
882 ARCH_LOCAL = -DMACOS -DNONSTANDARD_SYSTEM_FUNC CONFIGURE_D_CTSM
883 CFLAGS_LOCAL = -w -O3 -ip -DMACOS #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -no-multibyte-chars -DMACOS # -DRSL0_ONLY
884 # increase stack size; also note that for OpenMP, set environment OMP_STACKSIZE 4G or greater
885 LDFLAGS_LOCAL = -ip -Wl,-stack_addr,0xF10000000 -Wl,-stack_size,0x64000000 #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -align all -fno-alias -fno-common
887 ESMF_LDFLAG = $(CPLUSPLUSLIB)
889 FCREDUCEDOPT = $(FCOPTIM)
890 FCNOOPT = -O0 -fno-inline -no-ip
891 FCDEBUG = # -g $(FCNOOPT) -traceback # -fpe0 -check noarg_temp_created,bounds,format,output_conversion,pointers,uninit -ftrapuv -unroll0 -u
895 BYTESWAPIO = -convert big_endian
896 RECORDLENGTH = -assume byterecl
897 # added -fno-common at suggestion of R. Dubtsov as workaround for failing to link program_name
898 FCBASEOPTS_NO_G = -ip -fp-model precise -w -ftz -align all -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) #-xHost -fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -fno-common
899 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
901 TRADFLAG = CONFIGURE_TRADFLAG
902 CPP = cpp CONFIGURE_CPPFLAGS -xassembler-with-cpp
909 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
911 ###########################################################
912 #ARCH Darwin x86_64 arm64, (MACOS) intel compiler with clang EDIT FOR OPENMPI #serial smpar dmpar dm+sm
914 DESCRIPTION = INTEL ($SFC/$SCC)
917 OMP = # -qopenmp -fpp -auto
922 DM_FC = mpif90 -f90=$(SFC)
923 DM_CC = mpicc -cc=$(SCC) # the -cc=cc option causes openmpi mpicc to fail (unrecognized option)
927 RWORDSIZE = CONFIGURE_RWORDSIZE
928 PROMOTION = -real-size `expr 8 \* $(RWORDSIZE)` -i4
929 ARCH_LOCAL = -DMACOS -DNONSTANDARD_SYSTEM_FUNC CONFIGURE_D_CTSM
930 CFLAGS_LOCAL = -w -O3 -DMACOS #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -no-multibyte-chars -DMACOS # -DRSL0_ONLY
931 # increase stack size; also note that for OpenMP, set environment OMP_STACKSIZE 4G or greater
932 LDFLAGS_LOCAL = -Wl,-stack_addr,0xF10000000 -Wl,-stack_size,0x64000000 #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -align all -fno-alias -fno-common
934 ESMF_LDFLAG = $(CPLUSPLUSLIB)
936 FCREDUCEDOPT = $(FCOPTIM)
937 FCNOOPT = -O0 -fno-inline -no-ip
938 FCDEBUG = # -g $(FCNOOPT) -traceback # -fpe0 -check noarg_temp_created,bounds,format,output_conversion,pointers,uninit -ftrapuv -unroll0 -u
942 BYTESWAPIO = -convert big_endian
943 RECORDLENGTH = -assume byterecl
944 FCBASEOPTS_NO_G = -fp-model precise -w -ftz -align all -fno-alias -fno-common $(FORMAT_FREE) $(BYTESWAPIO) #-xHost -fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt
945 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
947 TRADFLAG = CONFIGURE_TRADFLAG
948 CPP = cpp CONFIGURE_CPPFLAGS -xassembler-with-cpp
955 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
957 ###########################################################
958 #ARCH Darwin x86_64 arm64, (MACOS) g95 with gcc #serial dmpar
960 DESCRIPTION = GNU ($SFC/$SCC)
962 OMPCPP = # not supported
963 OMP = # not supported
964 OMPCC = # not supported
968 DM_FC = mpif90 -f90=$(SFC)
969 DM_CC = mpicc -cc=$(SCC)
973 RWORDSIZE = CONFIGURE_RWORDSIZE
974 PROMOTION = -r$(RWORDSIZE) -i4
975 ARCH_LOCAL = -DG95 -DMACOS -DF2CSTYLE -DNONSTANDARD_SYSTEM_SUBR -DRCONFIG_CHARLEN=64 CONFIGURE_D_CTSM
976 CFLAGS_LOCAL = -DMACOS -DF2CSTYLE # -DRSL0_ONLY
979 ESMF_LDFLAG = $(CPLUSPLUSLIB)
980 FCOPTIM = -O2 # -fast
981 FCREDUCEDOPT = $(FCOPTIM)
983 FCDEBUG = # -g $(FCNOOPT)
984 FORMAT_FIXED = -ffixed-form
985 FORMAT_FREE = -ffree-form -ffree-line-length-huge
987 BYTESWAPIO = -fendian=big
988 FCBASEOPTS_NO_G = -Wno=101,139,155,158 $(FORMAT_FREE) $(BYTESWAPIO)
989 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
990 LIB_LOCAL = -L/usr/lib -lSystemStubs
991 MODULE_SRCH_FLAG = -fmod=$(WRF_SRC_ROOT_DIR)/main
992 TRADFLAG = CONFIGURE_TRADFLAG
993 CPP = cpp CONFIGURE_CPPFLAGS -xassembler-with-cpp
1000 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
1002 ###########################################################
1003 #ARCH Darwin x86_64 arm64, (MACOS) gfortran with gcc #serial smpar dmpar dm+sm
1005 DESCRIPTION = GNU ($SFC/$SCC)
1007 OMPCPP = # -D_OPENMP
1013 DM_FC = mpif90 -f90=$(SFC)
1014 DM_CC = mpicc -cc=$(SCC)
1018 RWORDSIZE = CONFIGURE_RWORDSIZE
1019 PROMOTION = #-fdefault-real-8
1020 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -DMACOS CONFIGURE_D_CTSM
1021 CFLAGS_LOCAL = -w -O3 -c -DMACOS # -DRSL0_ONLY
1024 ESMF_LDFLAG = $(CPLUSPLUSLIB)
1025 FCOPTIM = -O2 -ftree-vectorize -funroll-loops
1026 FCREDUCEDOPT = $(FCOPTIM)
1028 FCDEBUG = # -g $(FCNOOPT) # -fbacktrace -ggdb -fcheck=bounds,do,mem,pointer -ffpe-trap=invalid,zero,overflow
1029 FORMAT_FIXED = -ffixed-form
1030 FORMAT_FREE = -ffree-form -ffree-line-length-none
1033 BYTESWAPIO = -fconvert=big-endian -frecord-marker=4
1034 FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) $(FCCOMPAT)
1035 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
1037 TRADFLAG = CONFIGURE_TRADFLAG
1038 CPP = cpp CONFIGURE_CPPFLAGS -xassembler-with-cpp
1045 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
1047 ###########################################################
1048 #ARCH Darwin x86_64 arm64, (MACOS) gfortran with clang #serial smpar dmpar dm+sm
1050 DESCRIPTION = GNU ($SFC/clang)
1052 OMPCPP = # -D_OPENMP
1058 DM_FC = mpif90 -f90=$(SFC)
1059 DM_CC = mpicc -cc=clang
1063 RWORDSIZE = CONFIGURE_RWORDSIZE
1064 PROMOTION = #-fdefault-real-8
1065 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -DMACOS CONFIGURE_D_CTSM
1066 CFLAGS_LOCAL = -w -O3 -c -DMACOS # -DRSL0_ONLY
1069 ESMF_LDFLAG = $(CPLUSPLUSLIB)
1070 FCOPTIM = -O2 -ftree-vectorize -funroll-loops
1071 FCREDUCEDOPT = $(FCOPTIM)
1073 FCDEBUG = # -g $(FCNOOPT) # -fbacktrace -ggdb -fcheck=bounds,do,mem,pointer -ffpe-trap=invalid,zero,overflow
1074 FORMAT_FIXED = -ffixed-form
1075 FORMAT_FREE = -ffree-form -ffree-line-length-none
1078 BYTESWAPIO = -fconvert=big-endian -frecord-marker=4
1079 FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) $(FCCOMPAT)
1080 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
1082 TRADFLAG = CONFIGURE_TRADFLAG
1083 CPP = cpp CONFIGURE_CPPFLAGS -xassembler-with-cpp
1090 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
1092 ###########################################################
1093 #ARCH Darwin x86_64 arm64, (MACOS) xlf #serial dmpar
1095 DESCRIPTION = IBM ($SFC/$SCC)
1097 OMPCPP = # not supported
1098 OMP = # not supported
1099 OMPCC = # not supported
1103 DM_FC = mpif90 -f90=$(SFC)
1104 DM_CC = mpicc -cc=$(SCC)
1108 RWORDSIZE = CONFIGURE_RWORDSIZE
1109 PROMOTION = -qrealsize=$(RWORDSIZE) -qintsize=4
1110 ARCH_LOCAL = -DMAC_KLUDGE -DF2CSTYLE -DNONSTANDARD_SYSTEM_SUBR CONFIGURE_D_CTSM
1111 CFLAGS_LOCAL = -DMACOS -DF2CSTYLE # -DRSL0_ONLY
1114 ESMF_LDFLAG = $(CPLUSPLUSLIB)
1116 ESMF_LDFLAG = $(CPLUSPLUSLIB)
1117 FCOPTIM = -O3 -qarch=auto
1118 FCREDUCEDOPT = $(FCOPTIM)
1120 FCDEBUG = # -g $(FCNOOPT) -qfullpath
1121 FORMAT_FIXED = -qfixed
1122 FORMAT_FREE = -qfree=f90
1123 FCSUFFIX = -qsuffix=f=f90
1125 FCBASEOPTS_NO_G = -qsave -qmaxmem=32767 -qspillsize=32767 -w
1126 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
1127 MODULE_SRCH_FLAG = -fmod=$(WRF_SRC_ROOT_DIR)/main
1128 TRADFLAG = CONFIGURE_TRADFLAG
1129 CPP = cpp CONFIGURE_CPPFLAGS
1136 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
1138 ###########################################################
1139 #ARCH AIX xlf compiler with xlc #serial smpar dmpar dm+sm
1141 DESCRIPTION = IBM ($SFC/$SCC)
1143 OMPCPP = # -D_OPENMP
1144 OMP = # -qsmp=noauto
1145 OMPCC = # -qsmp=noauto
1151 DM_CC = mpcc_r # -DMPI2_SUPPORT
1155 RWORDSIZE = CONFIGURE_RWORDSIZE
1156 PROMOTION = -qrealsize=$(RWORDSIZE) -qintsize=4
1157 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -DNATIVE_MASSV CONFIGURE_D_CTSM
1158 CFLAGS_LOCAL = -DNOUNDERSCORE # -DRSL0_ONLY
1159 LDFLAGS_LOCAL = -lmass -lmassv -bnoquiet # print diagnostic messages
1161 ESMF_LDFLAG = $(CPLUSPLUSLIB)
1162 # -qhot commented out in 3.0.1.1 release because of reported problems with
1163 # model results under certain configurations. Use at your own risk.
1164 # -qstrict added in 3.6.1 release because of reported problems with
1165 # model stability under certain configurations. Use at your own risk.
1166 FCOPTIM = -O3 -qalias_size=209715200 -qstrict # -qhot
1167 FCREDUCEDOPT = -O2 # implies -qstrict
1169 FCDEBUG = # -g $(FCNOOPT) -qfullpath
1170 FORMAT_FIXED = -qfixed
1171 FORMAT_FREE = -qfree=f90
1172 FCSUFFIX = -qsuffix=f=f90
1174 FCBASEOPTS_NO_G = -w -qspill=81920 -qmaxmem=-1 $(FORMAT_FREE) -qufmt=be $(BYTESWAPIO) #-qflttrap=zerodivide:invalid:enable -qsigtrap -C # -qinitauto=7FF7FFFF
1175 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
1177 TRADFLAG = #CONFIGURE_TRADFLAG # causing troubles with xl cpp on AIX, -traditional removed fom default settings
1178 CPP = /lib/cpp CONFIGURE_CPPFLAGS
1185 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
1187 ###########################################################
1188 #ARCH Linux x86_64 ppc64le i486 i586 i686, xlf compiler with xlc # serial smpar dmpar dm+sm
1190 DESCRIPTION = IBM ($SFC/$SCC)
1192 OMPCPP = # -D_OPENMP
1193 OMP = # -qsmp=noauto
1194 OMPCC = # -qsmp=noauto
1199 DM_FC = mpfort -compiler xlf90_r
1200 DM_CC = mpcc # -DMPI2_SUPPORT
1204 RWORDSIZE = CONFIGURE_RWORDSIZE
1205 PROMOTION = -qrealsize=$(RWORDSIZE) -qintsize=4
1206 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -DNATIVE_MASSV CONFIGURE_D_CTSM
1207 CFLAGS_LOCAL = -DNOUNDERSCORE # -DRSL0_ONLY
1208 LDFLAGS_LOCAL = -lmass_64 -lmassvp7_64 -q64 -bnoquiet # linking diagnostics
1210 ESMF_LDFLAG = $(CPLUSPLUSLIB)
1211 # -qhot commented out in 3.0.1.1 release because of reported problems with
1212 # model results under certain configurations. Use at your own risk.
1213 # -qstrict added in 3.6.1 release because of reported problems with
1214 # model stability under certain configurations. Use at your own risk.
1215 FCOPTIM = -q64 -O3 -qstrict # -qhot
1216 # if linking problems with libxlsmp occur, try -qsmp=noauto
1217 FCREDUCEDOPT = -q64 -O2
1218 FCNOOPT = -q64 -qnoopt -qstrict # -qsmp=noauto
1219 FCDEBUG = # -g $(FCNOOPT) -qfullpath
1220 FORMAT_FIXED = -qfixed
1221 FORMAT_FREE = -qfree=f90
1222 FCSUFFIX = -qsuffix=f=f90
1224 FCBASEOPTS_NO_G = -w -qspill=81920 -qmaxmem=-1 $(FORMAT_FREE) -qufmt=be $(BYTESWAPIO) #-qflttrap=zerodivide:invalid:enable -qsigtrap -C # -qinitauto=7FF7FFFF
1225 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
1228 # instead of the GNU CPP, the CPP shipped with XLF should be used,
1229 # which does not work with the -traditional flag
1230 CPP = $(XLF_BASE)/exe/cpp CONFIGURE_CPPFLAGS
1237 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
1239 ###########################################################
1240 #ARCH Cray XC CLE/Linux x86_64, PGI compiler with gcc # serial dmpar smpar dm+sm
1242 # Recommended CLE/Linux memory allocation settings at run time:
1243 # export MALLOC_MMAP_MAX_=0
1244 # export MALLOC_TRIM_THRESHOLD_=536870912
1246 DESCRIPTION = PGI ($SFC/$SCC): Cray XC CLE
1248 OMPCPP = # -D_OPENMP
1249 OMP = # -mp -Mrecursive
1255 DM_CC = gcc -I$(MPICH_DIR)/include
1259 RWORDSIZE = CONFIGURE_RWORDSIZE
1260 PROMOTION = -r$(RWORDSIZE) -i4
1261 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR
1262 CFLAGS_LOCAL = -w -O3 # -DRSL0_ONLY
1264 # module load libfast to use Cray XT fast math library
1265 #LIB_LOCAL = -lfast_mv
1267 ESMF_LDFLAG = $(CPLUSPLUSLIB)
1269 FCOPTIM = -O3 #-fastsse -Mvect=noaltcode -Msmartalloc -Mprefetch=distance:8 -Mfprelaxed # -Minfo=all =Mneginfo=all
1270 # For Pathscale compiler
1271 #FCOPTIM = -O3 -OPT:Ofast
1272 FCREDUCEDOPT = $(FCOPTIM)
1275 # Use this for AMD Opteron quad-core
1276 #OPTERON_TYPE = -tp barcelona-64
1277 #OPTERON_TYPE = -tp shanghai-64
1278 # Use this for AMD Opteron six-way Istanbul
1279 #OPTERON_TYPE = -tp istanbul
1280 FCDEBUG = # -g $(FCNOOPT) # -C -Ktrap=fp -traceback
1281 FORMAT_FIXED = -Mfixed
1282 FORMAT_FREE = -Mfree
1283 # For Pathscale compiler
1284 #OPTERON_TYPE = -march=barcelona -msse4a
1285 #FORMAT_FIXED = -fixedform
1286 #FORMAT_FREE = -freeform
1288 BYTESWAPIO = -byteswapio
1289 FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) $(OPTERON_TYPE) $(OMP)
1290 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
1292 TRADFLAG = CONFIGURE_TRADFLAG
1293 CPP = /lib/cpp CONFIGURE_CPPFLAGS $(TRADFLAG)
1300 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
1302 ###########################################################
1303 #ARCH Cray XE and XC CLE/Linux x86_64, Cray CCE compiler # serial dmpar smpar dm+sm
1304 # Use this for both XE6 systems with AMD Opteron and XC with Intel x86_64
1306 DESCRIPTION = CRAY CCE ($SFC/$SCC): Cray XE and XC
1307 # OpenMP is enabled by default for Cray CCE compiler
1311 OMPCPP = # -D_OPENMP
1317 DM_FC = ftn $(NOOMP)
1322 RWORDSIZE = CONFIGURE_RWORDSIZE
1323 PROMOTION = -s integer32 -s real`expr 8 \* $(RWORDSIZE)`
1324 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR CONFIGURE_D_CTSM
1325 CFLAGS_LOCAL = -O3 # -DRSL0_ONLY
1327 # uncomment this for wrfda build
1328 #LIB_LOCAL = -L$(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 -lfftpack \
1329 # -L$(WRF_SRC_ROOT_DIR)/external/RSL_LITE -lrsl_lite
1331 ESMF_LDFLAG = $(CPLUSPLUSLIB)
1333 FCREDUCEDOPT = $(FCOPTIM)
1334 FCNOOPT = -O1 -Ofp1 -Oipa0 -Onomodinline
1335 FCDEBUG = # -g -O0 # -K trap=fp -R bc
1336 FORMAT_FIXED = -f fixed
1337 FORMAT_FREE = -f free
1339 BYTESWAPIO = -h byteswapio
1340 FCBASEOPTS_NO_G = -N1023 $(FORMAT_FREE) $(BYTESWAPIO) #-ra
1341 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
1343 TRADFLAG = CONFIGURE_TRADFLAG
1344 CPP = /lib/cpp CONFIGURE_CPPFLAGS
1351 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
1353 ###########################################################
1354 #ARCH Cray XC CLE/Linux x86_64, Xeon ifort compiler # serial dmpar smpar dm+sm
1357 DESCRIPTION = INTEL ($SFC/$SCC): Cray XC
1359 OMPCPP = # -D_OPENMP
1360 OMP = # -qopenmp -fpp -auto
1370 RWORDSIZE = CONFIGURE_RWORDSIZE
1371 PROMOTION = -real-size `expr 8 \* $(RWORDSIZE)` -i4
1372 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_FUNC CONFIGURE_D_CTSM
1374 # set this to override Cray 'craype' module setting
1376 CFLAGS_LOCAL = -w -O3 -ip $(OPTAVX) # -DRSL0_ONLY
1377 LDFLAGS_LOCAL = $(OPTAVX)
1379 ESMF_LDFLAG = $(CPLUSPLUSLIB)
1380 FCOPTIM = -ip -O3 $(OPTAVX)
1381 FCREDUCEDOPT = $(FCOPTIM)
1382 FCNOOPT = -O0 -fno-inline -fno-ip
1383 FCDEBUG = # -g $(FCNOOPT) -traceback # -fpe0 -check noarg_temp_created,bounds,format,output_conversion,pointers,uninit -ftrapuv -unroll0 -u
1387 BYTESWAPIO = -convert big_endian
1388 RECORDLENGTH = -assume byterecl
1389 #add -fp-model precise in FCBASEOPTS_NO_G to improve the accuracy of WRFPLUS check_AD test, suggested by Thomas Schwitalla.
1390 FCBASEOPTS_NO_G = -w -ftz -fno-alias -align all $(FORMAT_FREE) $(BYTESWAPIO) #-fp-model precise #-vec-report6
1391 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
1393 TRADFLAG = CONFIGURE_TRADFLAG
1394 CPP = /lib/cpp CONFIGURE_CPPFLAGS
1401 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
1404 ###########################################################
1405 #ARCH Linux ppc64 BG /L blxlf compiler with blxlc # dmpar
1407 DESCRIPTION = IBM ($SFC/$SCC): ppc64 Blue Gene\L
1409 OMPCPP = # not supported
1410 OMP = # not supported
1411 OMPCC = # not supported
1412 BGL_SYS = /bgl/BlueLight/ppcfloor/bglsys
1413 MPI_INC = -I$(BGL_SYS)/include
1414 MPI_LIB = -L$(BGL_SYS)/lib -lmpich.rts -lmsglayer.rts -lrts.rts -ldevices.rts
1423 RWORDSIZE = CONFIGURE_RWORDSIZE
1424 PROMOTION = -qrealsize=$(RWORDSIZE) -qintsize=4
1425 # If system has even more processors, set VERY_LARGE_MAXPROC to that number
1426 ARCH_LOCAL = -DMOVE_NL_OUTSIDE_MODULE_CONFIGURE -DNONSTANDARD_SYSTEM_SUBR -DVERY_LARGE_MAXPROC=36768 -DBLUEGENE CONFIGURE_D_CTSM
1427 CFLAGS_LOCAL = -DNOUNDERSCORE -DNCARIBM_NOC99 $(MPI_INC) # -DRSL0_ONLY
1428 LIB_LOCAL = $(MPI_LIB)
1429 LDFLAGS_LOCAL = -Wl,--allow-multiple-definition -qstatic
1431 ESMF_LDFLAG = $(CPLUSPLUSLIB)
1432 FCOPTIM = -O2 -qarch=440
1434 FCDEBUG = # $(FCNOOPT) -qfullpath
1435 FORMAT_FIXED = -qfixed
1436 FORMAT_FREE = -qfree=f90
1437 FCSUFFIX = -qsuffix=f=f90
1439 FCBASEOPTS_NO_G = -w -qspill=20000 -qmaxmem=64000 $(FORMAT_FREE) -qufmt=be $(BYTESWAPIO) $(MPI_INC) #-qflttrap=zerodivide:invalid:enable -qsigtrap
1440 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
1442 TRADFLAG = CONFIGURE_TRADFLAG
1443 # this might be different on different systems but we want the xlf version of cpp, not Linux's
1445 CPP = /opt/ibmcmp/xlf/bg/10.1/exe/cpp CONFIGURE_CPPFLAGS
1447 CPP = /opt/ibmcmp/xlf/9.1/exe/cpp CONFIGURE_CPPFLAGS
1454 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
1456 ###########################################################
1457 #ARCH Linux ppc64 BG /P xlf compiler with xlc # smpar dmpar dm+sm
1458 # developed on surveyor.alcf.anl.gov (thanks to ANL/ALCF)
1460 DESCRIPTION = IBM ($SFC/$SCC): ppc64 Blue Gene\P
1462 OMPCPP = # -D_OPENMP
1463 OMP = # -qsmp=noauto
1464 OMPCC = # -qsmp=noauto
1465 # these have to be the same as DM_FC on surveyor or it fails with weird errors in time manager
1470 DM_CC = mpixlc_r # -DMPI2_SUPPORT
1472 CC = $(DM_CC) -DFSEEKO64_OK
1474 RWORDSIZE = CONFIGURE_RWORDSIZE
1475 PROMOTION = -qrealsize=$(RWORDSIZE) -qintsize=4
1476 # If system has even more processors, set VERY_LARGE_MAXPROC to that number
1477 ARCH_LOCAL = -DMOVE_NL_OUTSIDE_MODULE_CONFIGURE -DNONSTANDARD_SYSTEM_SUBR -DVERY_LARGE_MAXPROC=36768 -DBLUEGENE CONFIGURE_D_CTSM
1478 CFLAGS_LOCAL = -DNOUNDERSCORE # -DRSL0_ONLY
1480 LDFLAGS_LOCAL = -Wl,--allow-multiple-definition,--relax -qstatic
1482 ESMF_LDFLAG = $(CPLUSPLUSLIB)
1483 FCOPTIM = -O3 -qnoipa -qarch=auto -qcache=auto -qtune=auto
1485 FCDEBUG = # $(FCNOOPT) -g -qfullpath
1486 FORMAT_FIXED = -qfixed
1487 FORMAT_FREE = -qfree=f90
1488 FCSUFFIX = -qsuffix=f=f90
1490 FCBASEOPTS_NO_G = -w -qspill=20000 -qmaxmem=64000 $(FORMAT_FREE) -qufmt=be $(BYTESWAPIO) #-qflttrap=zerodivide:invalid:enable -qsigtrap
1491 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
1493 TRADFLAG = CONFIGURE_TRADFLAG
1494 # this might be different on different systems but we want the xlf version of cpp, not Linux's
1495 # surveyor.alcf.anl.gov
1496 CPP = /opt/ibmcmp/xlf/bg/11.1/exe/cpp CONFIGURE_CPPFLAGS
1503 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
1505 ###########################################################
1506 #ARCH Linux ppc64 IBM Blade Server xlf compiler with xlc # dmpar
1507 # provided by Luis C. Cana Cascallar for IBM JS21 blade server, May 2009
1509 DESCRIPTION = IBM ($SFC/$SCC): ppc64 IBM Blade
1511 OMPCPP = # not supported
1512 OMP = # not supported
1513 OMPCC = # not supported
1518 DM_CC = mpicc -q64 -DFSEEKO64_OK # -DMPI2_SUPPORT
1522 RWORDSIZE = CONFIGURE_RWORDSIZE
1523 PROMOTION = -qrealsize=$(RWORDSIZE) -qintsize=4
1524 # If system has even more processors, set VERY_LARGE_MAXPROC to that number
1525 ARCH_LOCAL = -DMOVE_NL_OUTSIDE_MODULE_CONFIGURE -DNONSTANDARD_SYSTEM_SUBR -DVERY_LARGE_MAXPROC=36768 CONFIGURE_D_CTSM
1526 CFLAGS_LOCAL = -DNOUNDERSCORE # -DRSL0_ONLY
1529 ESMF_LDFLAG = $(CPLUSPLUSLIB)
1530 FCOPTIM = -O3 -qtune=ppc970 -qarch=ppc970
1532 FCDEBUG = # -g $(FCNOOPT) -qfullpath
1533 FORMAT_FIXED = -qfixed
1534 FORMAT_FREE = -qfree=f90
1535 FCSUFFIX = -qsuffix=f=f90
1537 FCBASEOPTS_NO_G = -w -qspill=20000 -qmaxmem=32767 $(FORMAT_FREE) -qufmt=be $(BYTESWAPIO) #-qflttrap=zerodivide:invalid:enable -qsigtrap
1538 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
1540 TRADFLAG = CONFIGURE_TRADFLAG
1541 # this might be different on different systems but we want the xlf version of cpp, not Linux
1542 CPP = /opt/ibmcmp/xlf/11.1/exe/cpp CONFIGURE_CPPFLAGS
1549 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
1551 ###########################################################
1552 #ARCH Linux x86_64 ppc64le i486 i586 i686, PGI compiler with pgcc # serial smpar dmpar dm+sm
1554 DESCRIPTION = PGI ($SFC/$SCC)
1556 OMPCPP = # -D_OPENMP
1557 OMP = # -mp -Minfo=mp -Mrecursive
1567 RWORDSIZE = CONFIGURE_RWORDSIZE
1568 PROMOTION = -r$(RWORDSIZE) -i4
1569 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR CONFIGURE_D_CTSM
1570 CFLAGS_LOCAL = -w -O3 # -DRSL0_ONLY
1573 ESMF_LDFLAG = $(CPLUSPLUSLIB)
1574 FCOPTIM = -O3 #-fastsse -Mvect=noaltcode -Msmartalloc -Mprefetch=distance:8 -Mfprelaxed # -Minfo=all =Mneginfo=all
1575 FCREDUCEDOPT = $(FCOPTIM)
1577 FCDEBUG = # -g $(FCNOOPT) # -C -Ktrap=fp -traceback
1578 FORMAT_FIXED = -Mfixed
1579 FORMAT_FREE = -Mfree
1581 BYTESWAPIO = -byteswapio
1582 FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) $(OMP)
1583 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
1584 MODULE_SRCH_FLAG = -module $(WRF_SRC_ROOT_DIR)/main
1585 TRADFLAG = CONFIGURE_TRADFLAG
1586 CPP = /lib/cpp CONFIGURE_CPPFLAGS
1593 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
1595 ###########################################################
1596 #ARCH CYGWIN_NT i686, PGI compiler on Windows # serial smpar dmpar dm+sm
1598 DESCRIPTION = PGI ($SFC/$SCC): Windows POSIX native
1600 OMPCPP = # -D_OPENMP
1601 OMP = # -mp -Minfo=mp
1611 RWORDSIZE = CONFIGURE_RWORDSIZE
1612 PROMOTION = -r$(RWORDSIZE) -i4
1613 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -D_WIN32 CONFIGURE_D_CTSM
1614 CFLAGS_LOCAL = -w -O3 -DMEMCPY_FOR_BCOPY # -DRSL0_ONLY
1615 LDFLAGS_LOCAL = Ws2_32.lib # -lnetcdff
1617 ESMF_LDFLAG = $(CPLUSPLUSLIB)
1618 FCOPTIM = -fastsse -Mvect=noaltcode -Mprefetch=distance:8 -Mfprelaxed -tp core2-64 # -Minfo=all
1619 FCREDUCEDOPT = $(FCOPTIM)
1621 FCDEBUG = # -g $(FCNOOPT) # -C -Ktrap=fp
1622 FORMAT_FIXED = -Mfixed
1623 FORMAT_FREE = -Mfree
1625 BYTESWAPIO = -byteswapio
1626 FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO)
1627 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
1628 MODULE_SRCH_FLAG= -module $(WRF_SRC_ROOT_DIR)/main
1637 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
1640 ../external/io_netcdf/libwrfio_nf.a CONFIGURE_NETCDF_PATH/lib/libnetcdf.lib \
1641 ../external/wavelet/libWavelet.a ../external/wavelet/lib_wavelet.a
1642 ESMF_IO_LIB = ../external/esmf_time_f90/libesmf_time.a
1644 ../external/fftpack/fftpack5/libfftpack.a \
1645 ../external/io_grib1/libio_grib1.a \
1646 ../external/io_grib_share/libio_grib_share.a \
1647 ../external/io_int/libwrfio_int.a \
1649 CONFIGURE_COMMS_LIB \
1650 ../frame/module_internal_header_util.o \
1651 ../frame/pack_utils.o
1653 ###########################################################
1654 #ARCH Linux x86_64 ppc64le i486 i586 i686, PGI compiler with gcc -f90= # serial smpar dmpar dm+sm
1656 DESCRIPTION = PGI ($SFC/$SCC): -f90=pgf90
1658 OMPCPP = # -D_OPENMP
1659 OMP = # -mp -Minfo=mp -Mrecursive
1664 DM_FC = mpif90 -f90=pgf90
1665 DM_CC = mpicc -cc=gcc
1669 RWORDSIZE = CONFIGURE_RWORDSIZE
1670 PROMOTION = -r$(RWORDSIZE) -i4
1671 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR CONFIGURE_D_CTSM
1672 CFLAGS_LOCAL = -w -O3 # -DRSL0_ONLY
1675 ESMF_LDFLAG = $(CPLUSPLUSLIB)
1676 FCOPTIM = -O3 #-fastsse -Mvect=noaltcode -Msmartalloc -Mprefetch=distance:8 -Mfprelaxed # -Minfo=all =Mneginfo=all
1677 FCREDUCEDOPT = $(FCOPTIM)
1679 FCDEBUG = # -g $(FCNOOPT) # -C -Ktrap=fp -traceback
1680 FORMAT_FIXED = -Mfixed
1681 FORMAT_FREE = -Mfree
1683 BYTESWAPIO = -byteswapio
1684 FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) $(OMP)
1685 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
1686 MODULE_SRCH_FLAG = -module $(WRF_SRC_ROOT_DIR)/main
1687 TRADFLAG = CONFIGURE_TRADFLAG
1688 CPP = /lib/cpp CONFIGURE_CPPFLAGS
1695 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
1697 ###########################################################
1698 #ARCH Darwin x86_64 arm64, (MACOS) PGI compiler with pgcc -f90= #serial smpar dmpar dm+sm
1700 DESCRIPTION = PGI ($SFC/$SCC): -f90=pgf90
1702 OMPCPP = # -D_OPENMP
1703 OMP = # -mp -Minfo=mp -Mrecursive
1708 DM_FC = mpif90 -f90=pgf90
1709 DM_CC = mpicc -cc=pgcc
1713 RWORDSIZE = CONFIGURE_RWORDSIZE
1714 PROMOTION = -r$(RWORDSIZE) -i4
1715 ARCH_LOCAL = -DMACOS -DNONSTANDARD_SYSTEM_SUBR CONFIGURE_D_CTSM
1716 CFLAGS_LOCAL = -DMACOS # -DRSL0_ONLY
1719 ESMF_LDFLAG = $(CPLUSPLUSLIB)
1721 FCREDUCEDOPT = $(FCOPTIM)
1723 FCDEBUG = # -g $(FCNOOPT) # -C -Ktrap=fp -traceback
1724 FORMAT_FIXED = -Mfixed
1725 FORMAT_FREE = -Mfree
1727 BYTESWAPIO = -byteswapio
1728 FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) $(OMP)
1729 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG) -Mnomod
1730 MODULE_SRCH_FLAG = -module $(WRF_SRC_ROOT_DIR)/main
1731 TRADFLAG = CONFIGURE_TRADFLAG
1732 CPP = cpp CONFIGURE_CPPFLAGS -xassembler-with-cpp
1739 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
1741 ###########################################################
1742 #ARCH Darwin x86_64 arm64, (MACOS) intel compiler with icc #serial smpar dmpar dm+sm
1744 DESCRIPTION = INTEL ($SFC/$SCC): Open MPI
1746 OMPCPP = # -D_OPENMP
1747 OMP = # -qopenmp -fpp -auto
1757 RWORDSIZE = CONFIGURE_RWORDSIZE
1758 PROMOTION = -real-size `expr 8 \* $(RWORDSIZE)` -i4
1759 ARCH_LOCAL = -DMACOS -DNONSTANDARD_SYSTEM_FUNC CONFIGURE_D_CTSM
1760 CFLAGS_LOCAL = -w -O3 -ip -DMACOS #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -no-multibyte-chars -DMACOS # -DRSL0_ONLY
1761 # increase stack size; also note that for OpenMP, set environment OMP_STACKSIZE 4G or greater
1762 LDFLAGS_LOCAL = -ip -Wl,-stack_addr,0xF10000000 -Wl,-stack_size,0x64000000 #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -align all -fno-alias -fno-common
1764 ESMF_LDFLAG = $(CPLUSPLUSLIB)
1766 FCREDUCEDOPT = $(FCOPTIM)
1767 FCNOOPT = -O0 -fno-inline -no-ip
1768 FCDEBUG = # -g $(FCNOOPT) -traceback # -fpe0 -check noarg_temp_created,bounds,format,output_conversion,pointers,uninit -ftrapuv -unroll0 -u
1772 BYTESWAPIO = -convert big_endian
1773 RECORDLENGTH = -assume byterecl
1774 # added -fno-common at suggestion of R. Dubtsov as workaround for failing to link program_name
1775 FCBASEOPTS_NO_G = -ip -fp-model precise -w -ftz -align all -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) #-xHost -fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -fno-common
1776 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
1778 TRADFLAG = CONFIGURE_TRADFLAG
1779 CPP = cpp CONFIGURE_CPPFLAGS -xassembler-with-cpp
1786 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
1788 ###########################################################
1789 #ARCH Darwin x86_64 arm64, (MACOS) gfortran with gcc openmpi #serial smpar dmpar dm+sm
1791 DESCRIPTION = GNU ($SFC/$SCC): Open MPI
1793 OMPCPP = # -D_OPENMP
1804 RWORDSIZE = CONFIGURE_RWORDSIZE
1805 PROMOTION = #-fdefault-real-8
1806 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -DMACOS CONFIGURE_D_CTSM
1807 CFLAGS_LOCAL = -w -O3 -c -DMACOS # -DRSL0_ONLY
1810 ESMF_LDFLAG = $(CPLUSPLUSLIB)
1811 FCOPTIM = -O2 -ftree-vectorize -funroll-loops
1812 FCREDUCEDOPT = $(FCOPTIM)
1814 FCDEBUG = # -g $(FCNOOPT) # -fbacktrace -ggdb -fcheck=bounds,do,mem,pointer -ffpe-trap=invalid,zero,overflow
1815 FORMAT_FIXED = -ffixed-form
1816 FORMAT_FREE = -ffree-form -ffree-line-length-none
1819 BYTESWAPIO = -fconvert=big-endian -frecord-marker=4
1820 FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) $(FCCOMPAT)
1821 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
1823 TRADFLAG = CONFIGURE_TRADFLAG
1824 CPP = cpp CONFIGURE_CPPFLAGS -xassembler-with-cpp
1831 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
1833 ###########################################################
1834 #ARCH Linux x86_64 ppc64le i486 i586 i686, PGI compiler with pgcc -f90= # serial smpar dmpar dm+sm
1836 DESCRIPTION = PGI ($SFC/$SCC): -f90=pgf90
1838 OMPCPP = # -D_OPENMP
1839 OMP = # -mp -Minfo=mp -Mrecursive
1844 DM_FC = mpif90 -f90=pgf90
1845 DM_CC = mpicc -cc=pgcc
1849 RWORDSIZE = CONFIGURE_RWORDSIZE
1850 PROMOTION = -r$(RWORDSIZE) -i4
1851 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR CONFIGURE_D_CTSM
1852 CFLAGS_LOCAL = -w -O3 # -DRSL0_ONLY
1855 ESMF_LDFLAG = $(CPLUSPLUSLIB)
1856 FCOPTIM = -O3 #-fastsse -Mvect=noaltcode -Msmartalloc -Mprefetch=distance:8 -Mfprelaxed # -Minfo=all =Mneginfo=all
1857 FCREDUCEDOPT = $(FCOPTIM)
1859 FCDEBUG = # -g $(FCNOOPT) # -C -Ktrap=fp -traceback
1860 FORMAT_FIXED = -Mfixed
1861 FORMAT_FREE = -Mfree
1863 BYTESWAPIO = -byteswapio
1864 FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) $(OMP)
1865 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
1866 MODULE_SRCH_FLAG = -module $(WRF_SRC_ROOT_DIR)/main
1867 TRADFLAG = CONFIGURE_TRADFLAG
1868 CPP = /lib/cpp CONFIGURE_CPPFLAGS
1875 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
1877 ###########################################################
1878 #ARCH Linux HSW/BDW x86_64 ppc64le i486 i586 i686, ifort compiler with icc #serial smpar dmpar dm+sm
1880 DESCRIPTION = INTEL ($SFC/$SCC): HSW/BDW
1882 OMPCPP = # -D_OPENMP
1883 OMP = # -qopenmp -fpp -auto
1888 DM_FC = mpif90 -f90=$(SFC)
1889 DM_CC = mpicc -cc=$(SCC)
1893 RWORDSIZE = CONFIGURE_RWORDSIZE
1894 PROMOTION = -real-size `expr 8 \* $(RWORDSIZE)` -i4
1895 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_FUNC CONFIGURE_D_CTSM
1896 CFLAGS_LOCAL = -w -O3 -ip -xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -no-multibyte-chars -xCORE-AVX2 # -DRSL0_ONLY
1897 LDFLAGS_LOCAL = -ip -xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -align all -fno-alias -fno-common -xCORE-AVX2
1899 ESMF_LDFLAG = $(CPLUSPLUSLIB)
1901 FCREDUCEDOPT = $(FCOPTIM)
1902 FCNOOPT = -O0 -fno-inline -no-ip
1903 FCDEBUG = # -g $(FCNOOPT) -traceback # -fpe0 -check noarg_temp_created,bounds,format,output_conversion,pointers,uninit -ftrapuv -unroll0 -u
1907 BYTESWAPIO = -convert big_endian
1908 RECORDLENGTH = -assume byterecl
1909 FCBASEOPTS_NO_G = -ip -fp-model precise -w -ftz -align all -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) -xHost -fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -fno-common -xCORE-AVX2
1910 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
1912 TRADFLAG = CONFIGURE_TRADFLAG
1913 CPP = /lib/cpp CONFIGURE_CPPFLAGS
1920 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
1922 ###########################################################
1923 #ARCH Linux KNL x86_64 ppc64le i486 i586 i686, ifort compiler with icc #serial smpar dmpar dm+sm
1925 DESCRIPTION = INTEL ($SFC/$SCC): KNL MIC
1927 OMPCPP = # -D_OPENMP
1928 OMP = # -qopenmp -fpp -auto
1933 DM_FC = mpif90 -f90=$(SFC)
1934 DM_CC = mpicc -cc=$(SCC)
1938 RWORDSIZE = CONFIGURE_RWORDSIZE
1939 PROMOTION = -real-size `expr 8 \* $(RWORDSIZE)` -i4
1940 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_FUNC CONFIGURE_D_CTSM
1941 CFLAGS_LOCAL = -w -O3 -ip -xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -no-multibyte-chars -xMIC-AVX512 # -DRSL0_ONLY
1942 LDFLAGS_LOCAL = -ip -xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -align all -fno-alias -fno-common -xMIC-AVX512
1944 ESMF_LDFLAG = $(CPLUSPLUSLIB)
1946 FCREDUCEDOPT = $(FCOPTIM)
1947 FCNOOPT = -O0 -fno-inline -no-ip
1948 FCDEBUG = # -g $(FCNOOPT) -traceback # -fpe0 -check noarg_temp_created,bounds,format,output_conversion,pointers,uninit -ftrapuv -unroll0 -u
1952 BYTESWAPIO = -convert big_endian
1953 RECORDLENGTH = -assume byterecl
1954 FCBASEOPTS_NO_G = -ip -fp-model precise -w -ftz -align all -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) -xHost -fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -fno-common -xMIC-AVX512
1955 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
1957 TRADFLAG = CONFIGURE_TRADFLAG
1958 CPP = /lib/cpp CONFIGURE_CPPFLAGS
1965 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
1967 ###########################################################
1968 #ARCH CYGWIN_NT i686 x86_64 Cygwin, gfortran compiler with gcc #serial smpar dmpar dm+sm
1970 DESCRIPTION = GNU ($SFC/$SCC)
1972 OMPCPP = # -D_OPENMP
1983 RWORDSIZE = CONFIGURE_RWORDSIZE
1984 PROMOTION = #-fdefault-real-8
1985 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR CONFIGURE_D_CTSM
1986 CFLAGS_LOCAL = -w -O3 -c #
1989 ESMF_LDFLAG = $(CPLUSPLUSLIB)
1990 FCOPTIM = -O2 -ftree-vectorize -funroll-loops
1991 FCREDUCEDOPT = $(FCOPTIM)
1993 FCDEBUG = # -g $(FCNOOPT) # -ggdb -fbacktrace
1994 FORMAT_FIXED = -ffixed-form
1995 FORMAT_FREE = -ffree-form -ffree-line-length-none
1998 BYTESWAPIO = -fconvert=big-endian -frecord-marker=4
1999 FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) $(FCCOMPAT)
2000 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
2002 TRADFLAG = -traditional
2010 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
2013 $(WRF_SRC_ROOT_DIR)/external/io_netcdf/libwrfio_nf.a CONFIGURE_NETCDF_PATH/lib/libnetcdf.dll.a \
2014 -L CONFIGURE_NETCDF_PATH -lnetcdff -lnetcdf -lnetcdf -ltirpc -lhdf5_hl -lhdf5 -lm -lz \
2016 ESMF_IO_LIB = $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90/libesmf_time.a
2018 $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5/libfftpack.a \
2019 $(WRF_SRC_ROOT_DIR)/external/io_grib1/libio_grib1.a \
2020 $(WRF_SRC_ROOT_DIR)/external/io_grib_share/libio_grib_share.a \
2021 $(WRF_SRC_ROOT_DIR)/external/io_int/libwrfio_int.a \
2023 CONFIGURE_COMMS_LIB \
2024 $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o \
2025 $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o
2027 ###########################################################
2028 #ARCH Linux armv7l aarch64, gnu OpenMPI #serial smpar dmpar dm+sm
2030 DESCRIPTION = GNU ($SFC/$SCC)
2032 OMPCPP = # -D_OPENMP
2038 DM_FC = mpif90 -f90=$(SFC)
2039 DM_CC = mpicc -cc=$(SCC)
2043 RWORDSIZE = CONFIGURE_RWORDSIZE
2044 PROMOTION = #-fdefault-real-8
2045 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR CONFIGURE_D_CTSM
2046 CFLAGS_LOCAL = -w -O3 -c -march=native # -DRSL0_ONLY
2049 ESMF_LDFLAG = $(CPLUSPLUSLIB)
2050 FCOPTIM = -O3 -ftree-vectorize -funroll-loops -march=native
2051 FCREDUCEDOPT = $(FCOPTIM)
2053 FCDEBUG = # -g $(FCNOOPT) # -fbacktrace -ggdb -fcheck=bounds,do,mem,pointer -ffpe-trap=invalid,zero,overflow
2054 FORMAT_FIXED = -ffixed-form
2055 FORMAT_FREE = -ffree-form -ffree-line-length-none
2058 BYTESWAPIO = -fconvert=big-endian -frecord-marker=4
2059 FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) $(FCCOMPAT)
2060 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
2062 TRADFLAG = CONFIGURE_TRADFLAG
2063 CPP = /lib/cpp CONFIGURE_CPPFLAGS
2070 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
2072 ###########################################################
2073 #ARCH AMD Linux x86_64, AOCC flang compiler with AOCC clang #serial smpar dmpar dm+sm
2074 # Supported AMDARCH are znver1, znver2 and znver3 for ZEN1, ZEN2 and ZEN3 respectively
2075 # For optimized AMDFCFLAGS and AMDLDFLAGS, please reach out to toolchainsupport@amd.com
2078 DESCRIPTION = AMD ($SFC/$SCC) : AMD ZEN1/ ZEN2/ ZEN3 Architectures
2091 RWORDSIZE = CONFIGURE_RWORDSIZE
2093 AMDARCH = -march=znver3
2094 AMDMATHLIB = -fveclib=AMDLIBM
2095 AMDLDFLAGS = -Wl,-mllvm -Wl,-enable-loop-reversal -Wl,-mllvm -Wl,-enable-gather -Wl,-mllvm -Wl,-vectorize-noncontigous-memory-aggressively
2098 PROMOTION = #-fdefault-real-8
2099 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -DWRF_USE_CLM -DRPC_TYPES=2
2100 CFLAGS_LOCAL = -w -c -m64 -Ofast -ffast-math $(AMDARCH)
2101 LDFLAGS_LOCAL = -m64 -Ofast -Mstack_arrays $(AMDARCH) $(AMDLDFLAGS) $(AMDMATHLIB) -lamdlibm -lomp
2103 ESMF_LDFLAG = $(CPLUSPLUSLIB)
2104 FCOPTIM = -Ofast -ffast-math $(AMDARCH) -Mbyteswapio -Mstack_arrays -ftree-vectorize -Mbyteswapio -funroll-loops -finline-aggressive -finline-hint-functions $(AMDMATHLIB) $(AMDFCFLAGS)
2105 FCREDUCEDOPT = -O3 $(AMDARCH) -ffast-math -Mstack_arrays -DFCREDUCEDOPT
2107 FCDEBUG = # -g $(FCNOOPT)
2108 FORMAT_FIXED = -Mfixed
2109 FORMAT_FREE = -Mfreeform
2111 BYTESWAPIO = -Mbyteswapio
2112 FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO)
2113 FCBASEOPTS = -Ofast -ffast-math $(FCBASEOPTS_NO_G) $(FCDEBUG)
2115 TRADFLAG = -traditional
2120 RANLIB = llvm-ranlib
2123 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
2125 #insert new stanza here
2127 ###########################################################
2128 #ARCH Linux x86_64 ppc64le i486 i586 i686, Intel oneAPI compiler with icx #serial smpar dmpar dm+sm
2129 # This mirrors the above Intel build but changes ifort=>ifx icc=>icx
2131 DESCRIPTION = INTEL ($SFC/$SCC) : oneAPI LLVM
2133 OMPCPP = # -D_OPENMP
2134 OMP = # -qopenmp -fpp -auto
2139 DM_FC = mpif90 -f90=$(SFC)
2140 DM_CC = mpicc -cc=$(SCC)
2144 RWORDSIZE = CONFIGURE_RWORDSIZE
2145 PROMOTION = -real-size `expr 8 \* $(RWORDSIZE)` -i4
2146 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_FUNC CONFIGURE_D_CTSM
2147 CFLAGS_LOCAL = -w -O3 -ip #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -no-multibyte-chars # -DRSL0_ONLY
2148 LDFLAGS_LOCAL = -ip #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -align all -fno-alias -fno-common
2150 ESMF_LDFLAG = $(CPLUSPLUSLIB)
2152 FCREDUCEDOPT = $(FCOPTIM)
2153 FCNOOPT = -O0 -fno-inline -no-ip
2154 FCDEBUG = # -g $(FCNOOPT) -traceback # -fpe0 -check noarg_temp_created,bounds,format,output_conversion,pointers,uninit -ftrapuv -unroll0 -u
2158 BYTESWAPIO = -convert big_endian
2159 RECORDLENGTH = -assume byterecl
2160 FCBASEOPTS_NO_G = -ip -fp-model precise -w -ftz -align all -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) #-xHost -fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -fno-common
2161 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
2163 TRADFLAG = CONFIGURE_TRADFLAG
2164 CPP = /lib/cpp CONFIGURE_CPPFLAGS
2171 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
2173 ###########################################################
2174 #ARCH Linux aarch64, armclang compiler OpenMPI # serial smpar dmpar dm+sm
2176 DESCRIPTION = armclang ($SFC/$SCC): Aarch64
2185 DM_CC = mpicc -DMPI2_SUPPORT
2189 RWORDSIZE = CONFIGURE_RWORDSIZE
2192 CFLAGS_LOCAL = -w -O3 -c -Wno-implicit-function-declaration -Wno-int-conversion -Wno-implicit-int
2193 LDFLAGS_LOCAL = -fopenmp
2194 FCOPTIM = -Ofast -mcpu=native -funroll-loops
2195 FCREDUCEDOPT = $(FCOPTIM)
2196 FCNOOPT = -O0 -fopenmp -frecursive
2197 FCDEBUG = -g $(FCNOOPT)
2198 FORMAT_FIXED = -ffixed-form -ffixed-line-length-0
2199 FORMAT_FREE = -ffree-form -ffree-line-length-0
2201 BYTESWAPIO = -fconvert=big-endian -frecord-marker=4
2202 FCBASEOPTS = -w $(FORMAT_FREE) $(BYTESWAPIO)
2203 MODULE_SRCH_FLAG= -I$(WRF_SRC_ROOT_DIR)/main
2204 TRADFLAG = -traditional-cpp
2205 CPP = /lib/cpp CONFIGURE_CPPFLAGS
2211 CC_TOOLS = $(SCC) -Wno-implicit-function-declaration -Wno-int-conversion -Wno-implicit-int
2213 ###########################################################
2214 #ARCH Linux aarch64, GCC compiler OpenMPI # serial smpar dmpar dm+sm
2216 DESCRIPTION = GCC ($SFC/$SCC): Aarch64
2225 DM_CC = mpicc -DMPI2_SUPPORT
2229 RWORDSIZE = CONFIGURE_RWORDSIZE
2231 ARCH_LOCAL = -DAARCH64_X86_CORRECTNESS_FIX
2232 CFLAGS_LOCAL = -w -O3 -c
2233 LDFLAGS_LOCAL = -fopenmp
2234 FCOPTIM = -Ofast -mcpu=native -funroll-loops -fno-expensive-optimizations -fno-reciprocal-math -fsigned-zeros -fno-unsafe-math-optimizations
2235 # for graviton 2 use the folowing flag
2236 #FCOPTIM = -Ofast -march=armv8.2-a+fp16+rcpc+dotprod -funroll-loops -fno-expensive-optimizations -fno-reciprocal-math -fsigned-zeros -fno-unsafe-math-optimizations
2237 FCREDUCEDOPT = $(FCOPTIM)
2238 FCNOOPT = -O0 -fopenmp -frecursive
2239 FCDEBUG = -g $(FCNOOPT)
2240 FORMAT_FIXED = -ffixed-form -ffixed-line-length-0 -fallow-argument-mismatch -fallow-invalid-boz
2241 FORMAT_FREE = -ffree-form -ffree-line-length-0 -fallow-argument-mismatch -fallow-invalid-boz
2243 BYTESWAPIO = -fconvert=big-endian -frecord-marker=4
2244 FCBASEOPTS = -w $(FORMAT_FREE) $(BYTESWAPIO)
2245 MODULE_SRCH_FLAG= -I$(WRF_SRC_ROOT_DIR)/main
2246 TRADFLAG = -traditional-cpp
2247 CPP = /lib/cpp CONFIGURE_CPPFLAGS
2255 ###########################################################
2256 #ARCH Linux aarch64, NVHPC compiler with nvc # serial smpar dmpar dm+sm
2258 DESCRIPTION = NVHPC ($SFC/$SCC)
2260 OMPCPP = # -D_OPENMP
2261 OMP = # -mp -Minfo=mp -Mrecursive
2271 RWORDSIZE = CONFIGURE_RWORDSIZE
2272 PROMOTION = -r$(RWORDSIZE) -i4
2273 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -DWRF_USE_CLM
2274 CFLAGS_LOCAL = -w -O3
2277 ESMF_LDFLAG = $(CPLUSPLUSLIB)
2278 FCOPTIM = -O3 -fast -Mvect=noaltcode -Mprefetch=distance:8 # -Mfprelaxed # -Minfo=all =Mneginfo=all
2279 FCREDUCEDOPT = $(FCOPTIM)
2281 FCDEBUG = # -g $(FCNOOPT) # -C -Ktrap=fp -traceback
2282 FORMAT_FIXED = -Mfixed
2283 FORMAT_FREE = -Mfree
2285 BYTESWAPIO = -byteswapio
2286 FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) $(OMP)
2287 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
2288 MODULE_SRCH_FLAG = -module $(WRF_SRC_ROOT_DIR)/main
2289 TRADFLAG = CONFIGURE_TRADFLAG
2290 CPP = /lib/cpp CONFIGURE_CPPFLAGS
2298 ###########################################################
2299 #ARCH Fujitsu FX10/FX100 Linux x86_64 SPARC64IXfx/SPARC64Xlfx, mpifrtpx and mpifccpx compilers #serial smpar dmpar dm+sm
2301 DESCRIPTION = FUJITSU ($SFC/$SCC): FX10/FX100 SPARC64 IXfx/Xlfx
2303 OMPCPP = # -D_OPENMP
2310 DM_CC = mpifccpx -DMPI2_THREAD_SUPPORT # -DMPI2_SUPPORT
2314 RWORDSIZE = CONFIGURE_RWORDSIZE
2315 PROMOTION = -CcdRR$(RWORDSIZE)
2316 ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR CONFIGURE_D_CTSM
2317 CFLAGS_LOCAL = -Kfast -Xg -DSUN # -DRSL0_ONLY
2320 ESMF_LDFLAG = $(CPLUSPLUSLIB)
2322 FCREDUCEDOPT = $(FCOPTIM)
2324 FCDEBUG = # -g $(FCNOOPT)
2325 FORMAT_FIXED = -Fixed
2329 FCBASEOPTS_NO_G = -Kautoobjstack,ocl -fw $(FORMAT_FREE) $(BYTESWAPIO) $(OMP)
2330 FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
2332 TRADFLAG = -traditional
2339 CC_TOOLS = /usr/bin/gcc -Wall
2340 NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
2342 #insert new stanza before the Fujitsu block, keep Fujitsu at the end of the list
2343 ###########################################################