Back to home page

MITgcm

 
 

    


File indexing completed on 2024-05-16 05:11:13 UTC

view on githubraw file Latest commit 0c90ef58 on 2024-05-15 16:50:06 UTC
5a54dbbd56 Jean*0001 #ifndef CTRL_OPTIONS_H
                0002 #define CTRL_OPTIONS_H
                0003 #include "PACKAGES_CONFIG.h"
                0004 #include "CPP_OPTIONS.h"
                0005 
83210123b2 Jean*0006 CBOP
                0007 C !ROUTINE: CTRL_OPTIONS.h
                0008 C !INTERFACE:
                0009 C #include "CTRL_OPTIONS.h"
                0010 
                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
                0017 
                0018 #ifdef ALLOW_CTRL
                0019 #ifdef ECCO_CPPOPTIONS_H
                0020 
                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
                0024 
                0025 #else /* ndef ECCO_CPPOPTIONS_H */
                0026 C   ==================================================================
                0027 C-- Package-specific Options & Macros go here
                0028 
5a54dbbd56 Jean*0029 C o I/O and pack settings
                0030 #undef CTRL_SET_PREC_32
                0031 C   This option is only relevant (for pack/unpack) with OBCS_CONTROL:
83210123b2 Jean*0032 #undef ALLOW_NONDIMENSIONAL_CONTROL_IO
5a54dbbd56 Jean*0033 #undef EXCLUDE_CTRL_PACK
                0034 #undef ALLOW_PACKUNPACK_METHOD2
                0035 #undef CTRL_DO_PACK_UNPACK_ONLY
                0036 #undef CTRL_PACK_PRECISE
                0037 #undef CTRL_UNPACK_PRECISE
                0038 #undef CTRL_DELZNORM
0c90ef582a Jean*0039 C   To read-in old (prior to PR #796) packed-ctrl file (specially the header)
                0040 #undef READ_OLD_CTRL_PACK_FILE
83210123b2 Jean*0041 
                0042 C       >>> Other Control.
5a54dbbd56 Jean*0043 C   Allows for GMREDI controls
83210123b2 Jean*0044 #define ALLOW_KAPGM_CONTROL
                0045 #define ALLOW_KAPREDI_CONTROL
5a54dbbd56 Jean*0046 C   Allows for Vertical Diffusivity controls
0c90ef582a Jean*0047 #undef ALLOW_DIFFKR_CONTROL
83210123b2 Jean*0048 #define ALLOW_BOTTOMDRAG_CONTROL
5a54dbbd56 Jean*0049 #undef ALLOW_DIC_CONTROL
                0050 
                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.
                0054 #undef ALLOW_DEPTH_CONTROL
                0055 #ifdef ALLOW_DEPTH_CONTROL
                0056 C   Only relevant within DEPTH_CONTROL code:
                0057 # define USE_SMOOTH_MIN
                0058 #endif /* ALLOW_DEPTH_CONTROL */
83210123b2 Jean*0059 
                0060 C       >>> Generic Control.
                0061 #define ALLOW_GENARR2D_CONTROL
156e9f6a19 Gael*0062 #define ALLOW_GENARR3D_CONTROL
0c90ef582a Jean*0063 #undef ALLOW_GENTIM2D_CONTROL
5a54dbbd56 Jean*0064 # undef ALLOW_UVEL0_CONTROL
                0065 # undef ALLOW_VVEL0_CONTROL
                0066 
                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 */
                0077 
                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
                0085 
                0086 C  o Impose bounds on controls
                0087 #undef ALLOW_ADCTRLBOUND
83210123b2 Jean*0088 
                0089 C  o Rotation of wind/stress controls adjustments
                0090 C    from Eastward/Northward to model grid directions
                0091 #undef ALLOW_ROTATE_UV_CONTROLS
                0092 
5a54dbbd56 Jean*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
83210123b2 Jean*0098 
5a54dbbd56 Jean*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.
                0104 C  o apply pkg/smooth/smooth_diff2d.F to 2D controls (outside of Smooth_Correl2D)
83210123b2 Jean*0105 #undef ALLOW_SMOOTH_CTRL2D
5a54dbbd56 Jean*0106 
                0107 C  o Print more debug info to STDOUT
                0108 #undef ALLOW_CTRL_DEBUG
83210123b2 Jean*0109 
                0110 C   ==================================================================
                0111 #endif /* ndef ECCO_CPPOPTIONS_H */
                0112 #endif /* ALLOW_CTRL */
                0113 #endif /* CTRL_OPTIONS_H */