forked from sunnivin/dotcime
-
Notifications
You must be signed in to change notification settings - Fork 3
/
config_compilers.xml
104 lines (102 loc) · 4.1 KB
/
config_compilers.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?xml version="1.0" encoding="UTF-8"?>
<config_compilers version="2.0">
<!--
========================================================================
This file defines compiler flags for building CESM. General flags are listed first
followed by flags specific to particular operating systems, followed by particular machines.
More general flags are replaced by more specific flags.
Attributes indicate that an if clause should be added to the Macros so that these flags are added
only under the conditions described by the attribute(s).
The env_mach_specific file may set environment variables or load modules which set environment variables
which are then used in the Makefile. For example the NETCDF_PATH on many machines is set by a module.
========================================================================
Serial/MPI compiler specification
========================================================================
SCC and SFC specifies the serial compiler
MPICC and MPICC specifies the mpi compiler
if $MPILIB is set to mpi-serial then
CC = $SCC
FC = $SFC
MPICC = $SCC
MPIFC = $SFC
INC_MPI = $(CIMEROOT)/src/externals/mct/mpi-serial
========================================================================
Options for including C++ code in the build
========================================================================
SUPPORTS_CXX (TRUE/FALSE): Whether we have defined all the necessary
settings for including C++ code in the build for this compiler (or
this compiler/machine combination). See below for a description of the
necessary settings.
The following are required for a compiler to support the inclusion of
C++ code:
SCXX: serial C++ compiler
MPICXX: mpi C++ compiler
CXX_LINKER (CXX/FORTRAN): When C++ code is included in the build, do
we use a C++ or Fortran linker?
In addition, some compilers require additional libraries or link-time
flags, specified via CXX_LIBS or CXX_LDFLAGS, as in the following
examples:
<CXX_LIBS> -L/path/to/directory -lfoo </CXX_LIBS>
or
<CXX_LDFLAGS> -cxxlib </CXX_LDFLAGS>
Note that these libraries or LDFLAGS will be added on the link line,
regardless of whether we are using a C++ or Fortran linker. For
example, if CXX_LINKER=CXX, then the above CXX_LIBS line should
specify extra libraries needed when linking C++ and fortran code using
a C++ linker. If CXX_LINKER=FORTRAN, then the above CXX_LDFLAGS line
should specify extra LDFLAGS needed when linking C++ and fortran code
using a fortran linker.
-->
<!-- Define default values that can be overridden by specific
compilers -->
<compiler MACH="fram">
<CPPDEFS>
<append> -D$(OS) </append>
</CPPDEFS>
<FFLAGS>
<append> -xCORE-AVX2 </append>
</FFLAGS>
<NETCDF_C_PATH>$(EBROOTNETCDF)</NETCDF_C_PATH>
<NETCDF_FORTRAN_PATH>$(EBROOTNETCDFMINFORTRAN)</NETCDF_FORTRAN_PATH>
<PNETCDF_PATH>$(EBROOTPNETCDF)</PNETCDF_PATH>
<MPI_PATH>$(MPI_ROOT)</MPI_PATH>
<MPI_LIB_NAME>mpi</MPI_LIB_NAME>
<FFLAGS>
<append DEBUG="FALSE"> -O2 </append>
<append MODEL="micom"> -r8 </append>
<append MODEL="cam"> -init=zero,arrays </append>
</FFLAGS>
<MPICC> mpiicc </MPICC>
<MPICXX> mpiicpc </MPICXX>
<MPIFC> mpiifort </MPIFC>
<PIO_FILESYSTEM_HINTS>lustre</PIO_FILESYSTEM_HINTS>
<SLIBS>
<append>-mkl=sequential -lnetcdff -lnetcdf</append>
</SLIBS>
</compiler>
<compiler MACH="saga">
<CPPDEFS>
<append> -D$(OS) </append>
</CPPDEFS>
<FFLAGS>
<append> -xCORE-AVX2 -no-fma </append>
</FFLAGS>
<NETCDF_C_PATH>$(EBROOTNETCDF)</NETCDF_C_PATH>
<NETCDF_FORTRAN_PATH>$(EBROOTNETCDFMINFORTRAN)</NETCDF_FORTRAN_PATH>
<PNETCDF_PATH>$(EBROOTPNETCDF)</PNETCDF_PATH>
<MPI_PATH>$(MPI_ROOT)</MPI_PATH>
<MPI_LIB_NAME>mpi</MPI_LIB_NAME>
<FFLAGS>
<append DEBUG="FALSE"> -O2 </append>
<append MODEL="micom"> -r8 </append>
<append MODEL="cam"> -init=zero,arrays </append>
</FFLAGS>
<MPICC> mpiicc </MPICC>
<MPICXX> mpiicpc </MPICXX>
<MPIFC> mpiifort </MPIFC>
<PIO_FILESYSTEM_HINTS>lustre</PIO_FILESYSTEM_HINTS>
<SLIBS>
<append>-mkl=sequential -lnetcdff -lnetcdf</append>
</SLIBS>
</compiler>
</config_compilers>