[ < ][]   [Contents][Index]

3.1 Overview of additional features setting

It is possible to enable some features by selecting which code should be part of the principal program. Each of these optionnal features are associated with a select flag. For example double precision is used instead of simple precision with the ‘double’ select flag, the model is a subroutine with the select flag ‘monitor’, the Kalman filter code is set with ‘kalman’ and the 1D gridded model capabilities are associated with ‘grid1d’. To select a given feature the cmz statement sel select_flag should be written down in the ‘selseq.kumac’ found in the model directory. With make either the corresponding variable should be set to 1 or it should be added to the SEL make variable, depending on the feature.

Other features don’t need different or additional code to be used. Most of the features are enabled by setting specific logical variables to ‘.true.’. This is the case for zback for the adjoint model, zcommand if the command is in a file and zlaw if it is a function and zkalman for the Kalman filter. These select and logical flags are described in the corresponding sections.

In cmz an alternative of writing select flags to ‘selseq.kumac’ is to drive the compilation with smod sel_flag. In that case the sel_flag is selected and the files and executable goes to a directory named ‘sel_flag’.

The select flags are taken into account during cmz directives preprocessing. Therefore you have the possibility to use these flags to conditionnaly include pieces of code. In most cases you don’t need to include code conditionally yourself though, but if you want to, this is covered in Programming with cmz directives.


[Contents][Index]