--- MITgcm/verification/1D_ocean_ice_column/code/SEAICE_OPTIONS.h 2012/02/06 23:01:23 1.7 +++ MITgcm/verification/1D_ocean_ice_column/code/SEAICE_OPTIONS.h 2012/11/15 20:12:02 1.16 @@ -1,4 +1,4 @@ -C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/verification/1D_ocean_ice_column/code/SEAICE_OPTIONS.h,v 1.7 2012/02/06 23:01:23 ifenty Exp $ +C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/verification/1D_ocean_ice_column/code/SEAICE_OPTIONS.h,v 1.16 2012/11/15 20:12:02 jmc Exp $ C $Name: $ C *==========================================================* @@ -25,7 +25,7 @@ C on the thermodynamics component of the code only. C Sea-ice dynamics can also be turned off at runtime C using variable SEAICEuseDYNAMICS. -#undef SEAICE_ALLOW_DYNAMICS +#define SEAICE_ALLOW_DYNAMICS C-- By default, the sea-ice package uses its own integrated bulk C formulae to compute fluxes (fu, fv, EmPmR, Qnet, and Qsw) over @@ -34,65 +34,104 @@ C modified for sea-ice effects by pkg/seaice. #define SEAICE_EXTERNAL_FLUXES -C-- By default, the sea-ice package uses 2-category thermodynamics. -C When this flag is set, an 8-category calculation of ice -C thermodynamics is carried out in groatb.F -C Note the pickup_seaice.* generated by this option differ -C from those generated with the default 2-category model. -C Therefore it is not possible to switch between the two -C in the middle of an integration. +C-- The actual number of ice categories used to solve for seaice flux is +C now a run-time parameter (SEAICE_multDim). +C This CPP-flag will be completely removed soon (no longer in main code); +C it is just used to set default number of categories, i.e., =1 if undef, +C or =MULTDIM if defined (MULTDIM=7 in default SEAICE_SIZE.h). +C Note: be aware of pickup_seaice.* compatibility issues when restarting +C a simulation with a different number of categories. #undef SEAICE_MULTICATEGORY + +C-- run with sea Ice Thickness Distribution (ITD); +C set number of categories (nITD) in SEAICE_SIZE.h +#undef SEAICE_ITD + +C-- SEAICE_ITD replaces SEAICE_MULTICATEGORY +#ifdef SEAICE_ITD +#undef SEAICE_MULTICATEGORY +#endif + +C-- Use the Old version of seaice_growth (close to cvs version 1.70) +C otherwise, use the merged version (with some of Ian Fenty s code) +#undef SEAICE_GROWTH_LEGACY #undef SEAICE_MODIFY_GROWTH_ADJ -#undef SEAICE_SIMPLIFY_GROWTH_ADJ -c Use the McPhee Ocean-Ice heat flux -#define MCPHEE_OCEAN_ICE_HEAT_FLUX -#define GRADIENT_MIXED_LAYER_TURBULENCE_FACTOR - -#define SEAICE_DO_OPEN_WATER_GROWTH -#define SEAICE_DO_OPEN_WATER_MELT - -#define FENTY_AREA_EXPANSION_CONTRACTION - -#undef SEAICE_ADD_SUBLIMATION_TO_FWBUDGET - -C-- By default cdm wind stress under sea-ice is set to the -C same value as it would be if there was no sea-ice. -C This is a placeholder until a more physically-sensible -C stable solution is developed. Apparently ocean stress -C that is based on sea-ice velocity can cause trouble in -C Arctic Ocean configurations. This temporary solution -C also corresponds to that adopted by CCSM-2. For the -C adventurous user who requires ice-modified stress, -C following options are available. -#undef SEAICE_ORIGINAL_BAD_ICE_STRESS -#undef SEAICE_TEST_ICE_STRESS_1 - -C-- By default the freezing point of water is set to the value of -C the parameter SEAICE_freeze (=-1.96 by default). To use a -C simple linear dependence of the freezing point on salinity, -C set the following flag (pressure is assumed to have no effect, -C which is a good assumption for the top 20 meters). With this -C option defined the parameter SEAICE_freeze has no effect. -#undef SEAICE_VARIABLE_FREEZING_POINT +C-- Since the missing sublimation term is now included +C this flag is needed for backward compatibility +#define SEAICE_DISABLE_SUBLIM + +C-- Suspected missing term in coupled ocn-ice heat budget (to be confirmed) +#define SEAICE_DISABLE_HEATCONSFIX + +C-- Default is constant seaice salinity (SEAICE_salt0); Define the following +C flag to consider (space & time) variable salinity: advected and forming +C seaice with a fraction (=SEAICE_saltFrac) of freezing seawater salinity. +C- Note: SItracer also offers an alternative way to handle variable salinity. +#define SEAICE_VARIABLE_SALINITY + +C-- Tracers of ice and/or ice cover. +#undef ALLOW_SITRACER +#ifdef ALLOW_SITRACER +C-- To try avoid 'spontaneous generation' of tracer maxima by advdiff. +# define ALLOW_SITRACER_ADVCAP +#endif C-- By default the seaice model is discretized on a B-Grid (for C historical reasons). Define the following flag to use a new C (not thoroughly) test version on a C-grid -#define SEAICE_CGRID +#undef SEAICE_CGRID -C-- Only for the C-grid version it is possible to enable EVP code by -C defining the following flag +C-- Only for the C-grid version it is possible to #ifdef SEAICE_CGRID -#define SEAICE_ALLOW_EVP +C enable JFNK code by defining the following flag +# define SEAICE_ALLOW_JFNK +C enable EVP code by defining the following flag +# define SEAICE_ALLOW_EVP +# ifdef SEAICE_ALLOW_EVP +C-- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities +C from below and above in seaice_evp: not necessary, and not recommended +# undef SEAICE_ALLOW_CLIPZETA +# endif /* SEAICE_ALLOW_EVP */ +C regularize zeta to zmax with a smooth tanh-function instead +C of a min(zeta,zmax). This improves convergence of iterative +C solvers (Lemieux and Tremblay 2009, JGR). No effect on EVP +# undef SEAICE_ZETA_SMOOTHREG +C allow the truncated ellipse rheology (runtime flag SEAICEuseTEM) +# undef SEAICE_ALLOW_TEM +#else /* not SEAICE_CGRID, but old B-grid */ +C-- By default for B-grid dynamics solver wind stress under sea-ice is +C set to the same value as it would be if there was no sea-ice. +C Define following CPP flag for B-grid ice-ocean stress coupling. +# define SEAICE_BICE_STRESS + +C-- By default for B-grid dynamics solver surface tilt is obtained +C indirectly via geostrophic velocities. Define following CPP +C in order to use ETAN instead. +# define EXPLICIT_SSH_SLOPE +C-- Defining this flag turns on FV-discretization of the B-grid LSOR solver. +C It is smoother and includes all metric terms, similar to C-grid solvers. +C It is here for completeness, but its usefulness is unclear. +# undef SEAICE_LSRBNEW #endif /* SEAICE_CGRID */ -C-- Seaice flooding -#define ALLOW_SEAICE_FLOODING - -C-- By default sea ice is fresh. Set following flag for salty ice. -#undef SEAICE_VARIABLE_SALINITY +C-- When set use MAX_HEFF to cap seaice thickness in seaice_growth; +C currently only relevant for SEAICE_GROWTH_LEGACY +#undef SEAICE_CAP_HEFF +C-- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box +#undef SEAICE_CAP_ICELOAD +C-- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s, +C not recommended +#undef SEAICE_ALLOW_CLIPVELS +C-- When set cap the sublimation latent heat flux in solve4temp according +C to the available amount of ice+snow. Otherwise this term is treated +C like all of the others -- residuals heat and fw stocks are passed to +C the ocean at the end of seaice_growth in a conservative manner. +C SEAICE_CAP_SUBLIM is not needed as of now, but kept just in case. +#undef SEAICE_CAP_SUBLIM +C-- Enable free drift code +#undef SEAICE_ALLOW_FREEDRIFT #endif /* ALLOW_SEAICE */ #endif /* SEAICE_OPTIONS_H */