These are flags that appear in the benchmark sources, categorized as to whether they are portability candidates, mandatory, or forbidden.
Selecting one of the following will take you directly to that section:
This macro defines the type of argument that the alloca() function takes. It defaults to 'int'.
Platform settings for AIX.
Platform settings for older AIX version.
Fortran to C symbol naming. C symbol names are lower case with one underscore. _symbol
Platform settings for Catamount.
Platform settings for Cray.
Fortran to C symbol naming. C symbol names are lower case with two appended underscores. symbol##__
Platform settings for HPUX.
Platform settings for HPUX on Itanium.
Platform settings for the IBM XL compiler.
Platform settings for IRIX.
Platform settings for IRIX64.
Platform settings for Linux.
Platform settings for Linux IPF.
Platform settings for Linux PPC.
Platform settings for Linux on SPARC.
LOGICAL_STRICT is a NetCDF macro that should be defined for Fortran compilers that treat .eqv./.neqv. as .eq./.ne..
Platform settings for Mac OSX
Platform settings for Mac OSX on a big-endian architecture.
Use NAG's F90_UNIX_IO module for the flush routine.
System settings from NEC_SX.
Define if "io.h" needs to be included.
Define when shr_kind_i8 is not supported.
Don't impliclty define "_FILE_OFFSET_BITS=64".
Don't use alloca.
Don't include "alloca.h".
Don't use ftruncate.
Define if your compilation system doesn't provide malloc.h, or if the system version doesn't work with your compiler.
If SPEC_AIX is set, but the ncconfig_aix header file should not be used.
Do not use the generic ncconfig header file.
If SPEC_AIX is set, but the ncconfig_aix header file should not be used.
If SPEC_LINUX is set, but the ncconfig_linux header file should not be used.
If SPEC_MACOSX is set, but the ncconfig_macosx header file should not be used.
If SPEC_SOLARIS is set, but the ncconfig_solaris header file should not be used.
If SPEC_WINDOWS is set, but the ncconfig_windows header file should not be used.
Define if Fortran compiler does not have a sizeof routine available.
Set if the Fortran compiler does not support the Cray pointer's extension.
Defined if the standard C headers are not available.
Set if ST_BLKSIZE is not available.
Fortran to C symbol naming. C symbol names are lower case without underscores. symbol
Define if the vprintf routine is not available in C.
Platform settings from OSF1.
Add the Fortran sequence attribute to user defined data types.
Platfrom settings for Solaris.
Platform setting flag for Solaris on an x86 architecture.
Define "uchar" as "unsigned char".
Platform settings for UNICOS.
Fortran to C symbol naming. C symbol names are upper case without underscores. SYMBOL
Platform settings for Windows ICL.
Define if NetCDF should store words in little endian format instead of the default big endian.
On x86, the floating point rounding mode is not inherited by OpenMP threads and could cause differences in results. The flag enables a save and restore the floating point rounding mode when using OpenMP.
This flag is included automatically by Spec/object.pm.
Number of latitudes.
Number of longitudes.
Number of vertical levels.
Number of advected constituents (including water vapor).
Number of columns.
M truncation parameter.
N truncation parameter
K truncation parameter
This flag indicates that NetCDF is being used for I/O.
This flag indicates that the benchmark is built without support for MPI.
Use the C02A model.
Use a faster code version when calculating pwaut.
Disable MPI from the ESMF routines.
Enable OpenMP routines in cd_core.F90 and sw_core.F90. ??? May need this one on in ocam4 ???
Disables the use of the gettimeofday system routine.
This flag indicates that the benchmark is built without support for MPI.
Use if not using quad precision floating point data types.
Disable the use of platform specific vector math routines.
Use pergro model.
Required for compiling CAM4.
Create stub versions of MPI routines.
Define get_num_threads in gptl.c when using the pthreads.
Use the CFMIP Observational Simulator Package.
AIX platform flag. Use SPEC_AIX.
This flag causes NetCDF to attempt to set NC_SHARE on files it opens. It is used for debugging, and changing its value from the default is forbidden.
This flag is used by cfortran.h to determine whether it can use preprocessor features defined by the ANSI C standard. Changing its default value is forbidden.
In theory, this flag supplies information to NetCDF's cfortran.h about use of the Absoft Pro Fortran compiler. In practice, it shouldn't be necessary, and setting it explicitly is not allowed.
In theory, this flag supplies information to NetCDF's cfortran.h about use of the Absoft UNIX F77 compiler. In practice, it shouldn't be necessary, and setting it explicitly is not allowed.
Enable SCAM I/O timing.
Add Blue Gene L data structures for MPI.
Add Blue Gene P data structures for MPI.
Use Blue Gene MPI data structures.
Add debugging infor for Blue Gene MPI.
Used in gptl.c in nanosecond routine which is disabled for SPEC.
Enable Co-Array Fortran.
If CAM_MODE is defined, the user may use FVstartclock/FVstopclock exactly like the CAM utilities t_startf and t_stopf.
This flag causes the variable cdf_routine_name to be set to the current function name in the NetCDF-2 bindings. This flag may not be used for CPU2017.
This flag causes cfortran.h to replace subroutines with function calls. It may not be used for 521.wrf_r.
Add interal debugging checks.
Use the C02B model.
Use the C02C model.
Use the C02_DMSA model.
Add C-style comments in the shr_isnan.h header file.
This macro defines a method to refer to Fortran common blocks from C functions. Its default value may not be changed.
Add CAM DOM History fields.
Add COM Component. Can't be used with aquaplanet.
Enable the use of a Vector directive.
Defines the Xlf compiler. Use SPEC_AIX.
This macro indicates that CRAY floating point (real*16) should be used. This may not be set for CPU2017.
Enable intermediate output in the ctemp.F90 file.
Enable debugging information
Enable diagnostics.
These macros are used when building parts of the WRF library as a DLL. They are not used for CPU2017 and may not be set.
Use write to unit 0 instead of print in a MPI context when using wrf_messages.
This macro contains the name of the C type which can hold a double precision Fortran number. Its default value may not be changed.
Call abort directly instead of MP_abort.
Guard against double defines for ESMF. Defined in the program.
Add ESMF routine interfaces.
This macro holds the qualifier (if any) needed for C functions called from Fortran. The default value may not be changed.
Add mass flux filtering.
This flag (if necessary) is defined by the compilation system. Changing its default value is forbidden.
This macro contains the name of the C type which can hold a Fortran REAL number. Its default value may not be changed.
Internal macro used to determine the GNU version being used and if it supports the 'isnan' intrinsic.
Use GEOS Mode.
Add additional g2x sequence states.
Add additional g2x sequence states.
Add additional g2x sequence states.
Add additional g2x sequence states.
Guard against double defines for GPTL header file. Defined in the program.
Print handle information.
This macro indicates that alloca is available as a macro or function. It is set by default; if you need for it to be un-set, use -DSPEC_NO_HAVE_ALLOCA.
This macro indicates that the alloca.h header file is available. It is set by default; if you need for it to be un-set, use -DSPEC_NO_HAVE_ALLOCA_H.
Define if C99 inline support is available. The inline keyword is only used with timing routines disabled in the SPEC version of CAM4.
Enable the use of MPI_comm_f2c.
If defined, use the getpagesize system routine.
Define that the gettimeofday system routine is available.
Define if the RT library is available.
Define if building CAM with MPI support.
Define if the nanotime system routine is available.
Define if the system has PAPI support.
Determine size in bytes of memory usage info presented by the OS. Method: allocate a known amount of memory and see how much bigger the process becomes.
This macro indicates that "struct stat" has a member named "st_blksize". It is set by default; if you need for it to be un-set, use -DSPEC_NO_HAVE_ST_BLKSIZE.
Define to enable CPU statistic information.
Print intermediary information.
These flags enable some NetCDF debugging output. They may not be used for CPU2017.
System specific information for IRIX64. Use SPEC_IRIX64.
Use FFT routines from the SCI library.
System portability flag. Use SPEC_LINUX.
Add a main routine to list.c for debugging purposes.
This flag enables locking for NC.numrecs. It may not be used for CPU2017.
Creates a test program for testing function nc_inq_libvers(). This may not be used for CPU2017.
Enable the mall routines.
Use the MCT Interface.
Add memory debugging information.
Use the Aero Model.
Use the Aero Model with mode 3.
Use the Aero Model with mode 7.
Use the CM for dynamics/physics transpose method for nonlocal load-balance.
Enable CAM timing routines.
Communicate a number of contiguous parcels to/from arbitrary set of PEs.
Define if MPI2 support is available.
Define is MPICH is being used.
Display diagnositic messages.
Use a local version for all-to-all MPI communication if MPI_ALLTOALL is not available.
Sets the Fortran to C symbol nameing. Use SPEC_UPPER_CASE, SPEC_NO_UNDERSCORE, SPEC_DOUBLE_UNDERSCORE instead.
Define if using US NAVY 10-min terrain data.
This macro holds the size (in elements) that arrays in NetCDF should be grown at one time. Its default value may not be changed.
These macros contain the values of return codes used internally by NetCDF. Their default values may not be changed.
These macros are used by NetCDF to determine which native C types fit which native Fortran types. Their default values may not be changed directly.
This macro should be set if the system does not use IEEE floating point representation. It may not be set for CPU2017.
When defined, Feburary is set to 28 days, and not adjusted for leap years.
This flag turns off backward compatibility definitions in NetCDF. Its default value may not be changed.
This macro indicates that the strerror function is not available. Its default value may not be changed.
Enable offline diagnostic field information.
Activate Pilgrim calls. Used for debugging geopk.F90.
Set PIO hints.
Set PIO hints for lustre.
Use output from RTTOV. Not use in SPEC workload.
?? Need to get a description
Use FFT routines from the SGI system libraries.
Enable distributed memory version of the code.
Display distributed memory statistics.
Use portions of the code as stand alone libraries and not as part of CAM4.
Platform settings for Darwin. Use SPEC_MACOSX.
Use sys_sx method when changing the COSP vertical grid.
Sun OS platform setting.
Compile calcdecomp.F90 as a stand-alone test.
Define when use gptl.c with pthreads.
Enable timing information.
Enable timing barriers.
Enable development code.
Enable tracer checking.
Enable the tropchem model.
Enable UNICOS specific system information routines.
Not used.
Enable MPI I/O
Enable the sharing of performance timer information.
Use the ESMF Library.
When using MPI, this flag forces only the master process to read in data.
Implicitly set when using C++ compiler.
Enable the use of Cray CSD OpenMP-like directives.
Enable platform specific vector routines.
Enable platform specific vector math routines.
Add VOC Flux data.
WACCM-derived relation between mass concentration and wet aerosol radius in meters.
WACCM-derived relation between mass concentration and wet aerosol radius in meters.
By default, NetCDF is using big endian data format. To use Little Endian, define SPEC_WORDS_LITTLEENDIAN.
Put wrappers around MPI timing routines.
This allows Pvariables for ARGS.
These macros should all be defined by the compilation system. Setting them explicitly is forbidden.
These macros are used internally by cfortran.h and may not be set explicitly.
These macros are used to prevent multiple header inclusion; setting them explicitly is forbidden.
These flags are set implicitly by the compilation system and may not be set explicitly.