/[MITgcm]/MITgcm/verification/lab_sea/code_ad/SEAICE_OPTIONS.h
ViewVC logotype

Annotation of /MITgcm/verification/lab_sea/code_ad/SEAICE_OPTIONS.h

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.26 - (hide annotations) (download)
Mon Jun 30 08:09:21 2014 UTC (9 years, 11 months ago) by mlosch
Branch: MAIN
CVS Tags: checkpoint64z, checkpoint65, checkpoint65b, checkpoint65c, checkpoint65a, checkpoint65d, checkpoint65e
Changes since 1.25: +5 -1 lines
File MIME type: text/plain
since lab_sea is failing anyway, I add two CPP flag
SEAICE_VECTORIZE_LSR and SEAICE_LSR_ADJOINT_ITER that avoid many
recomputations and change the results also for the forward part. The
agreement between adjoint and FD gradient consistenty increases with
this change and the grdchk  summary reduces from 8.3683902422395E-04
to 8.1651767977887E-04 (big deal (o:)

1 mlosch 1.26 C $Header: /u/gcmpack/MITgcm/verification/lab_sea/code_ad/SEAICE_OPTIONS.h,v 1.25 2012/12/27 23:00:55 gforget Exp $
2 jmc 1.4 C $Name: $
3 heimbach 1.1
4 jmc 1.9 C *==========================================================*
5 jmc 1.14 C | SEAICE_OPTIONS.h
6     C | o CPP options file for sea ice package.
7 jmc 1.9 C *==========================================================*
8 jmc 1.14 C | Use this file for selecting options within the sea ice
9     C | package.
10 jmc 1.9 C *==========================================================*
11 heimbach 1.1
12     #ifndef SEAICE_OPTIONS_H
13     #define SEAICE_OPTIONS_H
14     #include "PACKAGES_CONFIG.h"
15     #include "CPP_OPTIONS.h"
16    
17 jmc 1.14 #ifdef ALLOW_SEAICE
18     C Package-specific Options & Macros go here
19    
20 heimbach 1.1 C-- Write "text-plots" of certain fields in STDOUT for debugging.
21     #undef SEAICE_DEBUG
22    
23     C-- Allow sea-ice dynamic code.
24     C This option is provided to allow use of TAMC
25     C on the thermodynamics component of the code only.
26     C Sea-ice dynamics can also be turned off at runtime
27     C using variable SEAICEuseDYNAMICS.
28     #define SEAICE_ALLOW_DYNAMICS
29    
30     C-- By default, the sea-ice package uses its own integrated bulk
31     C formulae to compute fluxes (fu, fv, EmPmR, Qnet, and Qsw) over
32     C open-ocean. When this flag is set, these variables are computed
33     C in a separate external package, for example, pkg/exf, and then
34     C modified for sea-ice effects by pkg/seaice.
35     #define SEAICE_EXTERNAL_FLUXES
36    
37 dimitri 1.23 C-- This CPP flag has been retired. The number of ice categories
38     C used to solve for seaice flux is now specified by run-time
39     C parameter SEAICE_multDim.
40     C Note: be aware of pickup_seaice.* compatibility issues when
41     C restarting a simulation with a different number of categories.
42 mlosch 1.22 c#define SEAICE_MULTICATEGORY
43 heimbach 1.1
44 dimitri 1.23 C-- run with sea Ice Thickness Distribution (ITD);
45     C set number of categories (nITD) in SEAICE_SIZE.h
46     #undef SEAICE_ITD
47    
48 gforget 1.18 C-- Since the missing sublimation term is now included
49     C this flag is needed for backward compatibility
50     #define SEAICE_DISABLE_SUBLIM
51    
52 dimitri 1.23 C-- Suspected missing term in coupled ocn-ice heat budget (to be confirmed)
53 gforget 1.19 #define SEAICE_DISABLE_HEATCONSFIX
54    
55 dimitri 1.23 C-- Default is constant seaice salinity (SEAICE_salt0); Define the following
56     C flag to consider (space & time) variable salinity: advected and forming
57     C seaice with a fraction (=SEAICE_saltFrac) of freezing seawater salinity.
58     C- Note: SItracer also offers an alternative way to handle variable salinity.
59 ifenty 1.11 #define SEAICE_VARIABLE_SALINITY
60 jmc 1.9
61 jmc 1.14 C-- Tracers of ice and/or ice cover.
62     #undef ALLOW_SITRACER
63     #ifdef ALLOW_SITRACER
64     C-- To try avoid 'spontaneous generation' of tracer maxima by advdiff.
65     # define ALLOW_SITRACER_ADVCAP
66     #endif
67    
68 jmc 1.4 C-- By default the seaice model is discretized on a B-Grid (for
69 heimbach 1.1 C historical reasons). Define the following flag to use a new
70     C (not thoroughly) test version on a C-grid
71     #define SEAICE_CGRID
72    
73 jmc 1.9 C-- Only for the C-grid version it is possible to
74 heimbach 1.1 #ifdef SEAICE_CGRID
75 dimitri 1.23 C enable JFNK code by defining the following flag
76     # undef SEAICE_ALLOW_JFNK
77     C enable LSR to use global (multi-tile) tri-diagonal solver
78     # undef SEAICE_GLOBAL_3DIAG_SOLVER
79 jmc 1.9 C enable EVP code by defining the following flag
80     # define SEAICE_ALLOW_EVP
81     # ifdef SEAICE_ALLOW_EVP
82 dimitri 1.23 C-- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities
83     C from below and above in seaice_evp: not necessary, and not recommended
84 jmc 1.9 # undef SEAICE_ALLOW_CLIPZETA
85     # endif /* SEAICE_ALLOW_EVP */
86 dimitri 1.23 C regularize zeta to zmax with a smooth tanh-function instead
87     C of a min(zeta,zmax). This improves convergence of iterative
88     C solvers (Lemieux and Tremblay 2009, JGR). No effect on EVP
89     # undef SEAICE_ZETA_SMOOTHREG
90 jmc 1.9 C allow the truncated ellipse rheology (runtime flag SEAICEuseTEM)
91     # undef SEAICE_ALLOW_TEM
92 mlosch 1.26 C The adjoint compiler TAF complains the least (and gives the best code)
93     C when SEAICE_VECTORIZE_LSR is defined, but this is a bit of a hack
94     # define SEAICE_VECTORIZE_LSR
95     # define SEAICE_LSR_ADJOINT_ITER
96 jmc 1.9 #else /* not SEAICE_CGRID, but old B-grid */
97     C-- By default for B-grid dynamics solver wind stress under sea-ice is
98     C set to the same value as it would be if there was no sea-ice.
99     C Define following CPP flag for B-grid ice-ocean stress coupling.
100     # define SEAICE_BICE_STRESS
101    
102     C-- By default for B-grid dynamics solver surface tilt is obtained
103     C indirectly via geostrophic velocities. Define following CPP
104     C in order to use ETAN instead.
105     # define EXPLICIT_SSH_SLOPE
106 dimitri 1.23 C-- Defining this flag turns on FV-discretization of the B-grid LSOR solver.
107     C It is smoother and includes all metric terms, similar to C-grid solvers.
108     C It is here for completeness, but its usefulness is unclear.
109 jmc 1.14 # undef SEAICE_LSRBNEW
110 heimbach 1.1 #endif /* SEAICE_CGRID */
111    
112 jmc 1.9 C-- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box
113     #undef SEAICE_CAP_ICELOAD
114     C-- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s,
115 dimitri 1.23 C not recommended
116 jmc 1.9 #undef SEAICE_ALLOW_CLIPVELS
117 dimitri 1.23 C-- When set cap the sublimation latent heat flux in solve4temp according
118     C to the available amount of ice+snow. Otherwise this term is treated
119     C like all of the others -- residuals heat and fw stocks are passed to
120     C the ocean at the end of seaice_growth in a conservative manner.
121     C SEAICE_CAP_SUBLIM is not needed as of now, but kept just in case.
122     #undef SEAICE_CAP_SUBLIM
123 heimbach 1.3
124 dimitri 1.23 C-- Enable free drift code
125 heimbach 1.13 #define SEAICE_ALLOW_FREEDRIFT
126 gforget 1.8
127 jmc 1.14 #endif /* ALLOW_SEAICE */
128 heimbach 1.1 #endif /* SEAICE_OPTIONS_H */
129    
130     CEH3 ;;; Local Variables: ***
131     CEH3 ;;; mode:fortran ***
132     CEH3 ;;; End: ***

  ViewVC Help
Powered by ViewVC 1.1.22