Back to home page




File indexing completed on 2024-03-02 06:10:19 UTC

view on githubraw file Latest commit 5cf43646 on 2024-03-01 18:50:49 UTC
bd47229330 Jean*0001 #ifndef CTRL_OPTIONS_H
                0002 #define CTRL_OPTIONS_H
                0003 #include "PACKAGES_CONFIG.h"
                0004 #include "CPP_OPTIONS.h"
75ec70d09f Jean*0006 CBOP
                0007 C !ROUTINE: CTRL_OPTIONS.h
                0008 C !INTERFACE:
                0009 C #include "CTRL_OPTIONS.h"
                0011 C !DESCRIPTION:
                0012 C *==================================================================*
                0013 C | CPP options file for Control (ctrl) package:
                0014 C | Control which optional features to compile in this package code.
                0015 C *==================================================================*
                0016 CEOP
                0018 #ifdef ALLOW_CTRL
                0019 #ifdef ECCO_CPPOPTIONS_H
                0021 C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included
                0022 C    in CPP_OPTIONS.h), this option file is left empty since all options that
                0023 C   are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h
                0025 #else /* ndef ECCO_CPPOPTIONS_H */
                0026 C   ==================================================================
                0027 C-- Package-specific Options & Macros go here
bd47229330 Jean*0029 C o I/O and pack settings
                0030 #undef CTRL_SET_PREC_32
c61a47f63f Mart*0031 C   This option is only relevant (for pack/unpack) with OBCS_CONTROL:
e2127e80c9 Jean*0032 #undef ALLOW_NONDIMENSIONAL_CONTROL_IO
bd47229330 Jean*0033 #undef EXCLUDE_CTRL_PACK
                0034 #undef ALLOW_PACKUNPACK_METHOD2
f40bb882f5 Jean*0035 #undef CTRL_DO_PACK_UNPACK_ONLY
                0036 #undef CTRL_PACK_PRECISE
                0037 #undef CTRL_UNPACK_PRECISE
                0038 #undef CTRL_DELZNORM
5cf4364659 Mart*0039 C   To read-in old (prior to PR #796) packed-ctrl file (specially the header)
                0040 #undef READ_OLD_CTRL_PACK_FILE
75ec70d09f Jean*0041 
e2127e80c9 Jean*0042 C       >>> Other Control.
bd47229330 Jean*0043 C   Allows for GMREDI controls
e2127e80c9 Jean*0044 #undef ALLOW_KAPGM_CONTROL
268c54d321 Jean*0045 #undef ALLOW_KAPREDI_CONTROL
bd47229330 Jean*0046 C   Allows for Vertical Diffusivity controls
                0047 #undef ALLOW_DIFFKR_CONTROL
e2127e80c9 Jean*0048 #undef ALLOW_BOTTOMDRAG_CONTROL
f40bb882f5 Jean*0049 #undef ALLOW_DIC_CONTROL
e2127e80c9 Jean*0050 
bd47229330 Jean*0051 C   Allows bathymetry as a control vector
                0052 C   Note: keep this Option separated from generic control since this control
                0053 C     involves many new dependencies that we would like to avoid in general.
cda1c18f72 Jean*0054 #undef ALLOW_DEPTH_CONTROL
bd47229330 Jean*0055 #ifdef ALLOW_DEPTH_CONTROL
                0056 C   Only relevant within DEPTH_CONTROL code:
                0057 # define USE_SMOOTH_MIN
                0058 #endif /* ALLOW_DEPTH_CONTROL */
e2127e80c9 Jean*0060 C       >>> Generic Control.
cda1c18f72 Jean*0061 #define ALLOW_GENARR2D_CONTROL
                0062 #define ALLOW_GENARR3D_CONTROL
                0063 #define ALLOW_GENTIM2D_CONTROL
f40bb882f5 Jean*0064 # undef ALLOW_UVEL0_CONTROL
                0065 # undef ALLOW_VVEL0_CONTROL
e2127e80c9 Jean*0066 
bd47229330 Jean*0067 C       >>> Open boundaries
                0068 #ifdef ALLOW_OBCS
                0069 C    Control of Open-Boundaries is meaningless without compiling pkg/obcs
                0070 C    Note: Make sure that corresponding OBCS N/S/W/E Option is defined
                0071 # define ALLOW_OBCSN_CONTROL
                0072 # define ALLOW_OBCSS_CONTROL
                0073 # define ALLOW_OBCSW_CONTROL
                0074 # define ALLOW_OBCSE_CONTROL
                0075 # undef ALLOW_OBCS_CONTROL_MODES
                0076 #endif /* ALLOW_OBCS */
                0078 C  o Set ALLOW_OBCS_CONTROL (Do not edit/modify):
                0079 #if (defined (ALLOW_OBCSN_CONTROL) || \
                0080      defined (ALLOW_OBCSS_CONTROL) || \
                0081      defined (ALLOW_OBCSW_CONTROL) || \
                0082      defined (ALLOW_OBCSE_CONTROL))
                0083 # define ALLOW_OBCS_CONTROL
                0084 #endif
                0086 C  o Impose bounds on controls
                0087 #undef ALLOW_ADCTRLBOUND
75ec70d09f Jean*0089 C  o Rotation of wind/stress controls adjustments
                0090 C    from Eastward/Northward to model grid directions
                0091 #undef ALLOW_ROTATE_UV_CONTROLS
1df1712bf3 Ian *0093 C  o Originally the first two time-reccords of control
                0094 C    variable tau u and tau v were skipped.
                0095 C    The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this
                0096 C    to the other the time variable atmospheric controls.
                0097 #undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL
cf705a6c8e Mart*0099 C  Note: this flag turns on extra smoothing code in ctrl_get_gen.F which
                0100 C  is inconsistent with the Weaver and Courtier, 2001 algorithm, and
                0101 C  should probably not be used. The corresponding 3D flag applied only
                0102 C  to deprecated code that is now removed. At some point we will remove
                0103 C  this flag and associated code as well.
cda1c18f72 Jean*0104 C  o apply pkg/smooth/smooth_diff2d.F to 2D controls (outside of Smooth_Correl2D)
5e2be8d4c2 Gael*0105 #undef ALLOW_SMOOTH_CTRL2D
b938a3c63b antn*0107 C  o Print more debug info to STDOUT
                0108 #undef ALLOW_CTRL_DEBUG
75ec70d09f Jean*0110 C   ==================================================================
                0111 #endif /* ndef ECCO_CPPOPTIONS_H */
                0112 #endif /* ALLOW_CTRL */
                0113 #endif /* CTRL_OPTIONS_H */