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:
Set this if your Fortran compiler does not provide the iso_fortran_env standard intrinsic module
Platfrom settings for Windows using Intel C++ compiler.
For netcdf, if defined uses Fortran symbol names ABC as abc_
If defined uses Fortran symbol names ABC as abc__
If defined uses Fortran symbol names ABC as abc
If defined uses Fortran symbol names ABC as ABC
LOGICAL_STRICT is a NetCDF macro that should be defined for Fortran compilers that treat .eqv./.neqv. as .eq./.ne..
If need io.h in stead of unistd.h for posix io (Microsoft compilers).
Usually, ncconfig sets _FILE_OFFSET_BITS to 64. Defining SPEC_NO_FILE_OFFSET_BITS leaves _FILE_OFFSET_BITS unset.
Define if you do not have alloca as a function or macro.
This macro indicates that the alloca.h header file is not present and should not be included.
When set, this macro indicates that the ftruncate function is not available.
Don't include the "ncconfig_generic.h" header file which is used when no target architecture flag is set.
Don't include the "ncconfig_windows.h" header file when "SPEC_WINDOWS" is defined.
This flag may be used to keep the macro STDC_HEADERS from being defined by default.
This macro indicates that "struct stat" does not contain a member called st_blksize.
In generic ncconfig, Define to unsigned char if system doesn't define.
This macro defines the type of argument that the alloca() function takes. It defaults to 'int'.
If needed, you can define alloca directly. Usually, it gets defined automatically, by including the header file, unless you set see SPEC_NO_HAVE_ALLOCA_H.
This flag indicates that the benchmark will be run on a big endian system. Normally this is automatically set by the tools.
These flags instruct the compiler to search for header files in the specified subdirectories.
Indicates that POP is being run within the Community Climate System Model, CCSM.
Use the Fortran-standard generic intrinsic procedures, rather than private vendor-specific vector math routines. This flag is included automatically by 628.pop2_s/Spec/object.pm.
This version of POP does not use MPI. A set of 'mpi_serial' of routines were used to avoid removing the MPI calls all over the place. This flag is included automatically by 628.pop2_s/Spec/object.pm.
This flag is included automatically by 628.pop2_s/Spec/object.pm in order to use netcdf.
This flag is included automatically by 628.pop2_s/Spec/object.pm in order to use the box rearrange module.
The decomposition flags are set automatically by 628.pop2_s/Spec/object.pm to control the global model domain size decomposition block size. They are used by the domain and block modules for decomposing the model domain, for example in the domain_size.F90 excerpts below.
block_size_x = BLCKX ! size of block in 1st horizontal dimension block_size_y = BLCKY ! size of block in 2nd horizontal dimension max_blocks_clinic = MXBLCKS ! max number of blocks per processor max_blocks_tropic = MXBLCKS ! in each distribution
This flag is included automatically by Spec/object.pm. Not using this flag would activate use of timers.
This flag defines usevector=true in calls for copying data-structures. In the copy routines, this flag may swap the double loops to copy multidimensioned arrays, these loops are parallel with OpenMP.
If defined uses selected_real_kind 6 and 12 for 32bit and 64bit real. Otherwise they are set as kind(1.) and kind(1.D0). This may well be promoted into a portability flag if needed.
If defined adds sequence keyword to a Fortran 90 Type definition This may well be promoted into a portability flag if needed.
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.
This flag (if necessary) is defined by the compilation system. 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.
This flag enables coordinate check debug output in NetCDF. It may not be used for a CPU2017 run.
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 CPU2017.
This macro defines a method to refer to Fortran common blocks from C functions. Its default value may not be changed.
This macro indicates that CRAY floating point (real*16) should be used. This may not be set for CPU2017.
These macros are used when building parts of the netcdf library as a DLL. They are not used for CPU2017 and may not be set.
These macros are used when building parts of the netcdf library as a DLL. They are not used for CPU2017 and may not be set.
This macro contains the name of the C type which can hold a double precision Fortran number. Its default value may not be changed.
These macros should all be defined by the compilation system. Setting them explicitly is forbidden.
This macro holds the qualifier (if any) needed for C functions called from Fortran. The default value may not be changed.
This flag (if necessary) is defined by the compilation system. Changing its default value is forbidden.
These macros should all be defined by the compilation system. Setting them explicitly is forbidden.
These macros should all be defined by the compilation system. Setting them explicitly 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.
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 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_H.
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_ST_BLKSIZE.
These flags enable some NetCDF debugging output. They may not be used for CPU2017.
These macros set the sizes, ranges, or other attributes of various data types used in NetCDF's XDR implementation. They are not relevant to CPU2017 and may not be changed from their default values.
These flags enable some NetCDF debugging output. They may not be used for CPU2017.
This flag enables locking for NC.numrecs. It may not be used for CPU2017.
These macros should all be defined by the compilation system. Setting them explicitly is forbidden.
Creates a test program for testing function nc_inq_libvers(). This may not be used for CPU2017.
This macro defines the maximum number of files a process can have open. Its default value may not be changed.
This macro defines the maximum number of arguments that the C preprocessor can accept for macro definitions. Its default value may not be changed.
In theory, this flag supplies information to NetCDF's cfortran.h about use of the NAG Fortran-90 compiler. In practice, it shouldn't be necessary, and setting it explicitly is not allowed.
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 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.
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.
These flags enable some NetCDF debugging output. They may not be used for CPU2017.
These macros should all be defined by the compilation system. Setting them explicitly is forbidden.
In theory, this flag supplies information to NetCDF's cfortran.h about use of the Pathscale Fortran compiler. In practice, it shouldn't be necessary, and setting it explicitly is not allowed.
This macro holds the default page size that pagesize() will return when neither sysconf() nor POSIX getpagesize() is not available. Its default value may not be changed for CPU2017.
This flag (if necessary) is defined by the compilation system. Changing its default value is forbidden.
These macros should all be defined by the compilation system. Setting them explicitly is forbidden.
These macros should all be defined by the compilation system. Setting them explicitly is forbidden.
These macros are used internally by cfortran.h to determine what native C types to use to hold various types and sizes of data. Their default values may not be changed.
These macros define the size (in bytes) of various native data types. Their default values may not be changed.
These macros define sizes and ranges of the variable types used to hold XDR data. They are not used for CPU2017 and may not be changed.
These macros set the sizes, ranges, or other attributes of various data types used in NetCDF's XDR implementation. They are not relevant to CPU2017 and may not be changed from their default values.
This flag enables a touch of the last page allocated when growing a file with NetCDF. Its default value may not be changed.
These macros are used to prevent multiple header inclusion; setting them explicitly is forbidden.
This macro indicates that new and delete should be used instead of malloc() and free() in C++ codes that use cfortran.h. It is not used and may not be set for CPU2017.
These flags are set implicitly by the compilation system and may not be set explicitly.
These flags are set implicitly by the compilation system and may not be set explicitly.
These flags are set implicitly by the compilation system and may not be set explicitly.
These flags are set implicitly by the compilation system and may not be set explicitly.
This macro is used to indicate to cfortran.h that ARGS can hold Pvariables. It may not be set for CPU2017.
This macro defines a method of rounding up to the nearest whole number. Changing its default value is forbidden.
These macros are used internally by cfortran.h and may not be set explicitly.
This macro is used to tell NetCDF that the compilation system's "char" type is unsigned by default.
In theory, this flag supplies information to NetCDF's cfortran.h about use of the f2c. In practice, 127.wrf2 can't be built with f2c, so setting it explicitly is not allowed.
This defines a compatibilty name for the ncvarcopy() function. Its default value may not be changed.
In theory, this flag supplies information to NetCDF's cfortran.h about use of the Portland Group Fortran compiler. In practice, it shouldn't be necessary, and setting it explicitly is not allowed.
These flags are used in the original CCSM coupled system, the code is either guarded by SPEC or just left as is. If they are needed for correct compilation they must be changed to SPEC_keyword, they should not be necessary and their use for CPU2017 is forbidden. Required instances are converted to SPEC_keyword so use SPEC_keyword instead.
These flags are used in the original CCSM coupled system, the code is either guarded by SPEC or just left as is. If they are needed for correct compilation they must be changed to SPEC_keyword, they should not be necessary and their use for CPU2017 is forbidden. Required instances are converted to SPEC_keyword so use SPEC_keyword instead.
Add Blue Gene L data structures for MPI.
Add Blue Gene P data structures for MPI.
Use Blue Gene MPI data structures for MPI.
Add interal debugging checks.
These are internal CCSM variables specific for certain datasets or macros for activating certain code segments.
These are internal CCSM variables specific for certain datasets or macros for activating certain code segments.
These are internal CCSM variables specific for certain datasets or macros for activating certain code segments.
These are internal CCSM variables specific for certain datasets or macros for activating certain code segments.
Enable debug information.
Enable debug information.
Enable debug information.
Enable debug information.
Use distributed parallel (MPI) for WRF modules.
Call abort directly instead of MP_abort.
Add ESMF routine interfaces.
Used to define PNETCDF version check routine name. Not used
Add additional g2x sequence states.
Print handle information.
Enable the use of MPI_comm_f2c. Not used.
If defined, use the getpagesize system routine.
Define if building with MPI support.
Define if the system has PAPI support.
Disable MPI from the ESMF routines.
Enable debug info from MPI routines and other intermediary information.
Add a main routine to list.c for debugging purposes.
Enable the mall routines.
Defined as normal max of 2 values, not used.
Defined as a normal min of 2 values
Use the MCT Interface. SPEC CPU forces this interface explicitly.
Add memory debugging information.
Define is MPICH is being used.
Add if MPI2 support is not avialable.
Define if sizeof is not available in pio. Should not be used.
Define if vprintf is not available in GPTL. Should not be used.
Set PIO hints for GPFS or Lustre
If defined uses higher precision for POP2 reduction operations.
Enable distributed memory version of the code.
Create stub versions of MPI routines.
Use nonstandard r8 for debugging purposes only for TAVG files.
Define maxthreads=omp_get_max_threads in threadutil.c
If pthreads to be used in threadutil.c
Enable timing information.
Enable development code.
Internal defines used in pio.
Enable MPI I/O
Enable PIO I/O
Enable PIO READ.
Enable the sharing of performance timer information.
Use the ESMF Library (for handling Gregorian calendars)
Enable memory monitor in PIO
Enable memory tracing
Use mpi_abort to abort from PIO
Enable memory monitoring in PIO
Use stack memory monitor in PIO
Use NetCDF version 4
Disable the PIO tag offest.
Use Parallel NetCDF library.
Use older Parallel NetCDF Libray.