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)
  • No labels