The build system for HOMME is very flexible and therefore has a lot of configure options which are listed below. In the following, "XXX" should be replaced with the development executable name for which you want to set the option (eg. PREQX).

Configure Option, Type, Default, Effect
-DCMAKE_Fortran_COMPILER, File Path, NONE, The Fortran compiler
-DCMAKE_C_COMPILER, File Path, NONE, The C compiler
-DCMAKE_CXX_COMPILER, File Path, NONE, The C++ compiler
-DOPT_FLAGS, String, Compiler dependent, Optimization flags all compilers
-DOPT_FFLAGS, String, Compiler dependent, Optimization flags for the Fortran compiler
-DOPT_CFLAGS, String, Compiler dependent, Optimization flags for the C compiler
-DOPT_CXXFLAGS, String, Compiler dependent, Optimization flags for the C++ compiler
-DDEBUG_FLAGS, String, Compiler dependent, Debug flags for all compilers
-DDEBUG_FFLAGS, String, Compiler dependent, Debug flags for the Fortran compiler
-DDEBUG_CFLAGS, String, Compiler dependent, Debug flags for the C compiler
-DDEBUG_CXXFLAGS, String, Compiler dependent, Debug flags for the C++ compiler
-DADD_Fortran_FLAGS, String, NONE, Additional Fortran compiler flags
-DADD_C_FLAGS, String, NONE, Additional C compiler flags
-DADD_CXX_FLAGS, String, NONE, Additional C++ compiler flags
-DFORCE_Fortran_FLAGS, String, NONE, Overwrite Fortran compiler flags
-DFORCE_C_FLAGS, String, NONE, Overwrite C compiler flags
-DFORCE_CXX_FLAGS, String, NONE, Overwrite C++ compiler flags
-DHOMME_BASELINE_DIR, File Path, Current build directory, Location of build containing baseline results for testing
-DUSE_MPIEXEC, String, mpiexec, The name of the MPI executable
-DUSE_MPI_OPTIONS, String, NONE, Additional options to send to mpiexec
-DUSE_QUEUING, Bool, System Dependent, If lsf or pbs queuing is available run the tests through the queue
-DHOMME_PROJID, String, None, Allocation charge account ID for queue submissions
-DUSE_NUM_PROCS, Integer, NONE, Set the number of MPI processes to use in the tests
-DENABLE_OPENMP, Bool, TRUE, Compile the code and configure the tests to use OpenMP
-DENABLE_HORIZ_OPENMP, Bool, TRUE, Whether to enable OpenMP threading over elements
-DENABLE_VERT_OPENMP, Bool, FALSE, Whether to enable OpenMP threading within an element (warning: experimental)
-DUSE_OPENACC, Bool, FALSE, Whether to compile the code with OpenACC directives (only supported through PGI)
-DUSE_CUDA_FORTRAN, Bool, FALSE, Whether to compile the code with CUDA Fortran (only supported through PGI)
-DCUDA_VERSION, String, 4.1, Which version of CUDA to compile with
-DCUDA_DEVICE_CAPABILITY, String, cc2x, The compute capability of the GPU
-DNETCDF_DIR, File Path, NONE, Path to the Netcdf install
-DWITH_PNETCDF, Bool, TRUE, Whether to build HOMME with PNetcdf
-DPNETCDF_DIR, File Path, NONE, Path to the PNetcdf install
-DHDF5_DIR, File Path, NONE, Path to the HDF5 install
-DZLIB_DIR, File Path, NONE, Path to the ZLIB install
-DSZIP_DIR, File Path, NONE, Path to the SZIP install
-DHOMME_FIND_BLAS_LAPACK, Bool, FALSE, Whether to use system blas/lapack (FALSE builds HOMME version of blas/lapack)
-DXXX_USE_PIO, Bool, False, Whether to output data to native cubed-sphere grid
-DXXX_USE_ENERGY, Bool, False, Whether to calculate and output energy diagnostics
-DXXX_NP, Integer, Differs, Value of NP to use
-DXXX_NC, Integer, Differs, Value of NC to use
-DXXX_PLEV, Integer, Differs, Value of PLEV to use
-DENABLE_INTEL_PHI, Bool, False, Whether to enable compilation on Intel Xeon Phi targets (adds -mmic to compiler flags)
-DPREFER_SHARED, Bool, False, Whether to prioritize linking with shared libraries (netcdf etc.)
-DENABLE_PERSISTENT_MPI, Bool, False, Whether to enable persistent message passing (potentially lower comm. overhead)