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) |