The Starting the build process section on the OpenIFS 48r1 Getting Started page introduces the basic build and test command
$OIFS_TEST/openifs-test.sh -cbt
In addition to the command line options defined above (-cbt
) , openifs-test.sh invokes some default ecbuild options and allows a user to add ecbuild options from command line using the --
notation, e.g., $OIFS_TEST/openifs-test.sh -cbt --without-single-precision.
Default build options
There are 5 default build options that are defined directly in openifs-test.sh
. Of the 5, 3 options cannot be negated by command line options, while 2 can be negated by selecting the opposite option from the command line.
The following build options cannot be negated
--openifs-only
- ensures code for OpenIFS is included in the build
--with-scmec
-
builds the SCM executable alongside the OpenIFS 3D executable
--arch=$OIFS_ARCH
- defines the path to the arch directory defined in $OIFS_HOME/oifs-config.edit_me.sh
The following default build options, can be negated from the command line by selecting the opposite option
--with-single-precision
- Ensures OpenIFS is built in single precision, as well as the default double precision
--init-snan
- initialises uninitialised variables to nan
Command line build options
In addition to the default options, there is a range of command-line options defined in $OIFS_HOME/bundle.yml
, which can be invoked when openifs-test.sh -b
is executed.
The main available options that most users may want to use are
--clean
- force a clean build by removing the $OIFS_HOME/build
directory. This is particularly useful when changing cmake files or adding new functionality, but it does mean the build takes longer. If there is no --clean
and there is a build
, then the build will be incremental (and quicker).
--arch=<add path of arch file> -
Allows a user to over-ride $OIFS_ARCH loaded while sourcing oifs-config.edit_me.sh. The expected path structure for <add path of arch file>
is ./arch/<site>/<platform>/<compiler>/<compiler_version>
. For example --arch=./arch/ecmwf/hpc2020/gnu
, where the site is ecmwf, the platform is hpc2020 and the compiler is gnu. The compiler version is not stated because the path contains a default link.
--without-single-precision
or --without-double-precision -
By default both single and double precision executables are built. These options negate the default option by excluding double or single precision build, which speeds up the build
--build-type=DEBUG
-
Builds the executable in debug mode with bounds checking, some trapping and no compiler optimisation
--no-init-snan
- negates the default init-snan
option. It is recommended that this should only be used for debugging issues and not for research simulations
The rest of the availalbe options can be found in the