Back to home page

MITgcm

 
 

    


File indexing completed on 2023-10-13 05:11:16 UTC

view on githubraw file Latest commit edcd27be on 2023-10-12 20:00:12 UTC
5a54dbbd56 Jean*0001 #ifndef CTRL_OPTIONS_H
                0002 #define CTRL_OPTIONS_H
                0003 #include "PACKAGES_CONFIG.h"
                0004 #include "CPP_OPTIONS.h"
                0005 
adac922254 dngo*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:
adac922254 dngo*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
                0039 #undef ALLOW_CTRL_WETV
adac922254 dngo*0040 
                0041 C       >>> Other Control.
5a54dbbd56 Jean*0042 C   Allows for GMREDI controls
adac922254 dngo*0043 #undef ALLOW_KAPGM_CONTROL
                0044 #undef ALLOW_KAPREDI_CONTROL
5a54dbbd56 Jean*0045 C   Allows for Vertical Diffusivity controls
                0046 #undef ALLOW_DIFFKR_CONTROL
adac922254 dngo*0047 #undef ALLOW_BOTTOMDRAG_CONTROL
5a54dbbd56 Jean*0048 #undef ALLOW_DIC_CONTROL
                0049 
                0050 C   Allows bathymetry as a control vector
                0051 C   Note: keep this Option separated from generic control since this control
                0052 C     involves many new dependencies that we would like to avoid in general.
                0053 #undef ALLOW_DEPTH_CONTROL
                0054 #ifdef ALLOW_DEPTH_CONTROL
                0055 C   Only relevant within DEPTH_CONTROL code:
                0056 # define USE_SMOOTH_MIN
                0057 #endif /* ALLOW_DEPTH_CONTROL */
adac922254 dngo*0058 
                0059 C       >>> Generic Control.
                0060 #define ALLOW_GENARR2D_CONTROL
                0061 #undef ALLOW_GENARR3D_CONTROL
                0062 #define ALLOW_GENTIM2D_CONTROL
5a54dbbd56 Jean*0063 # undef ALLOW_UVEL0_CONTROL
                0064 # undef ALLOW_VVEL0_CONTROL
                0065 # undef CTRL_SET_OLD_MAXCVARS_30
                0066 # undef CTRL_SET_OLD_MAXCVARS_40
                0067 
                0068 C       >>> Open boundaries
                0069 #ifdef ALLOW_OBCS
                0070 C    Control of Open-Boundaries is meaningless without compiling pkg/obcs
                0071 C    Note: Make sure that corresponding OBCS N/S/W/E Option is defined
                0072 # define ALLOW_OBCSN_CONTROL
                0073 # define ALLOW_OBCSS_CONTROL
                0074 # define ALLOW_OBCSW_CONTROL
                0075 # define ALLOW_OBCSE_CONTROL
                0076 # undef ALLOW_OBCS_CONTROL_MODES
                0077 #endif /* ALLOW_OBCS */
                0078 
                0079 C  o Set ALLOW_OBCS_CONTROL (Do not edit/modify):
                0080 #if (defined (ALLOW_OBCSN_CONTROL) || \
                0081      defined (ALLOW_OBCSS_CONTROL) || \
                0082      defined (ALLOW_OBCSW_CONTROL) || \
                0083      defined (ALLOW_OBCSE_CONTROL))
                0084 # define ALLOW_OBCS_CONTROL
                0085 #endif
                0086 
                0087 C  o Impose bounds on controls
                0088 #undef ALLOW_ADCTRLBOUND
adac922254 dngo*0089 
                0090 C  o Rotation of wind/stress controls adjustments
                0091 C    from Eastward/Northward to model grid directions
                0092 #undef ALLOW_ROTATE_UV_CONTROLS
                0093 
                0094 C  o Originally the first two time-reccords of control
                0095 C    variable tau u and tau v were skipped.
                0096 C    The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this
                0097 C    to the other the time variable atmospheric controls.
                0098 #undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL
                0099 
5a54dbbd56 Jean*0100 C  Note: this flag turns on extra smoothing code in ctrl_get_gen.F which
                0101 C  is inconsistent with the Weaver and Courtier, 2001 algorithm, and
                0102 C  should probably not be used. The corresponding 3D flag applied only
                0103 C  to deprecated code that is now removed. At some point we will remove
                0104 C  this flag and associated code as well.
                0105 C  o apply pkg/smooth/smooth_diff2d.F to 2D controls (outside of Smooth_Correl2D)
adac922254 dngo*0106 #undef ALLOW_SMOOTH_CTRL2D
5a54dbbd56 Jean*0107 
                0108 C  o Print more debug info to STDOUT
                0109 #undef ALLOW_CTRL_DEBUG
adac922254 dngo*0110 
                0111 C   ==================================================================
                0112 #endif /* ndef ECCO_CPPOPTIONS_H */
                0113 #endif /* ALLOW_CTRL */
                0114 #endif /* CTRL_OPTIONS_H */