Well, I have been reviewing all this logic lately. I need to remove all the CPP options for climatology and substituting them with logical switches because of nesting. We need to control if a nested grid needs climatology or not.
The code is correct as it is.
This is done intentionally. The switches
TCLIMATOLOGY,
M2CLIMATOLOGY,
M3CLIMATOLOGY, and
ZCLIMATOLOGY are used for various capabilities. For example,
TCLIMATOLOGY is used for boundary conditions, isopycnal mixing corrections, nudging, and adjoint sensitivity. If we need nudging in sponge areas or as a full Newtonian relaxation, we need to activate both
TCLIMATOLOGY and
TCLM_NUDGING. When the nudging term is added to the governing equations the users need to think about both CPP options. Therefore, it is more robust to only use
TCLIMATOLOGY in the data processing routines. Otherwise, we will need a messy combination of CPP options when a climatology field is needed for various purposes. And like Kate said, we will find more uses for climatology that just nudging
Notice that we can have analytical climatology, which also add a new layer of complexity.