Skip to content

Commit

Permalink
replace flag SEAICE_ALLOW_DYNAMICS by more consistent SEAICE_CGRID an…
Browse files Browse the repository at this point in the history
…d SEAICE_BGRID_DYNAMICS (MITgcm#734)

* compile code only if SEAICE_ALLOW_DYNAMCS is defined

- also refine usage of cpp flags

* avoid unused variable warning

* define and initialise variables only with SEAICE_ALLOW_DYNAMICS def.

- avoid unnecessary memory overhead
- re-organise common blocks and initialisation to reduce number cpp flags

* add new flag SEAICE_BGRID_DYNAMICS, remove SEAICE_ALLOW_DYNAMICS

- replace ifdef SEAICE_ALLOW_DYNAMICS with
  if ( define SEAICE_CGRID || defined SEAICE_BGRID_DYNAMICS )
- problem: cannot add check if SEAICE_CGRID and SEAICE_BGRID_DYNAMICS
  are both defined, because in this case, the code does not (yet)
  compile

* amending previous incomplete commit

* replace U/VICEC by u/vIceB for B-grid code

avoid conflicts with C-grid code

* more adjustments to make it work with neither B or C-grid defined

and AD-ocde

* fix a comment

* update SEAICE_OPTIONS.h files in verification experiments

to be as similar as possible to currrent pkg/seaice/SEAICE_OPTIONS.h

* minor: some spacing to help read the code

* avoid un-used variables

* fix previous commit

* minor cleaning

* add comments and exclude more diagnostics code ifnde SEAICE_CGRID

- explain potentially unclear CPP-flag logic
- add B-grid/C-grid version comment and clean up header

* fix a typo in comments

* Document adding SEAICE_BGRID_DYNAMICS option

---------

Co-authored-by: Jean-Michel Campin <[email protected]>
  • Loading branch information
mjlosch and jm-c authored Aug 3, 2023
1 parent 5762277 commit 4531540
Show file tree
Hide file tree
Showing 50 changed files with 2,367 additions and 1,145 deletions.
6 changes: 6 additions & 0 deletions doc/tag-index
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
Notes on tags used in MITgcmUV
==============================

o pkg/seaice:
- new option SEAICE_BGRID_DYNAMICS allows to remove/replace
SEAICE_ALLOW_DYNAMICS by ( SEAICE_CGRID or SEAICE_BGRID_DYNAMICS ) ;
- exclude more code if SEAICE_CGRID is undefined and clean up/rearrange
SEAICE.h to form more consistent groups and common-blocks ;
- update SEAICE_OPTIONS.h in verification experiments.
o pkg/mdsio:
- Add 2 new arguments (kLo & kHi) to pkg/mdsio Slice I/O routines that allow
to select which levels in Slice-array to read-in or to write-out to file.
Expand Down
2 changes: 1 addition & 1 deletion model/src/the_main_loop.F
Original file line number Diff line number Diff line change
Expand Up @@ -512,7 +512,7 @@ SUBROUTINE THE_MAIN_LOOP( myTime, myIter, myThid )
# endif /* ALLOW_BULKFORMULAE */
c--
# ifdef ALLOW_SEAICE
# ifdef SEAICE_ALLOW_DYNAMICS
# ifdef SEAICE_CGRID
CADJ INIT comlev1_dynsol = COMMON,nchklev_1*MPSEUDOTIMESTEPS
# ifdef SEAICE_LSR_ADJOINT_ITER
CADJ INIT comlev1_lsr = COMMON,nchklev_1*MPSEUDOTIMESTEPS*SOLV_MAX_FIXED
Expand Down
2 changes: 1 addition & 1 deletion pkg/autodiff/autodiff_ini_model_io.F
Original file line number Diff line number Diff line change
Expand Up @@ -385,7 +385,7 @@ SUBROUTINE AUTODIFF_INI_MODEL_IO( myThid )
CALL MNC_CW_ADD_VATTR_TEXT('adhsnow',
& 'coordinates','XC YC RC iter', myThid)
c
# ifdef SEAICE_ALLOW_DYNAMICS
# ifdef SEAICE_CGRID
CALL MNC_CW_ADD_VNAME('aduice', 'U_xy_Hn__-__t', 3,4, myThid)
CALL MNC_CW_ADD_VATTR_TEXT('aduice',
& 'units','[cost]/[m/s]', myThid)
Expand Down
142 changes: 79 additions & 63 deletions pkg/seaice/SEAICE.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,39 +36,60 @@ C SIMaskU/V :: land-sea mask at U/V-points (copies of maskW/S(k=kSrf))
_RL HEFFM (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL SIMaskU (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL SIMaskV (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)

#if ( defined SEAICE_CGRID || defined SEAICE_BGRID_DYNAMICS )
COMMON/ARRAYMETRIC/ k1AtC, k2AtC
_RS k1AtC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RS k2AtC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
#endif

#ifdef SEAICE_CGRID
COMMON/ARRAYC/ seaiceMaskU, seaiceMaskV
C dynamic masks (depend on area)
_RL seaiceMaskU(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL seaiceMaskV(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
C k1/2AtZ :: coefficients at C and Z points
C k1/2AtC for metric terms in U/V ice equations.
COMMON/ARRAYCMETRIC/ k1AtC, k1AtZ, k2AtC, k2AtZ
_RS k1AtC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
COMMON/ARRAYCMETRIC/ k1AtZ, k2AtZ
_RS k1AtZ (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RS k2AtC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RS k2AtZ (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
#else
#endif /* SEAICE_CGRID */

#ifdef SEAICE_BGRID_DYNAMICS
C UVM :: B-grid velocity-point mask
COMMON/ARRAYB/ UVM
_RS UVM (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
C k1/2AtC/U/V :: coefficients at C, U, and V points
C for metric terms in U/V ice equations.
COMMON/ARRAYBMETRIC/
& k1AtC, k1AtU, k1AtV, k2AtC, k2AtU, k2AtV
_RS k1AtC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
COMMON/ARRAYBMETRIC/ k1AtU, k1AtV, k2AtU, k2AtV
_RS k1AtU (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RS k1AtV (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RS k2AtC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RS k2AtU (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RS k2AtV (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
#endif /* SEAICE_CGRID */
#endif /* SEAICE_BGRID_DYNAMICS */

C-- Dynamical variables
COMMON/SEAICE_DYNVARS_1/AREA,HEFF,HSNOW,UICE,VICE
COMMON/SEAICE_DYNVARS_1/
& AREA, HEFF, HSNOW, UICE, VICE
_RL AREA (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL HEFF (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL HSNOW (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL UICE (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL VICE (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
C DWATN :: (linear) ice-ocean drag coefficient
C ( units of [rho|u|] = kg/m^2/s )
C u/vIceNm1 :: sea ice drift velocities of previous timestep (m/s)
COMMON/SEAICE_DYNVARS_2/
& DWATN,
& uIceNm1, vIceNm1
_RL DWATN (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL uIceNm1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL vIceNm1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)

#ifdef SEAICE_ITD
& ,AREAITD,HEFFITD,HSNOWITD,
& opnWtrFrac, fw2ObyRidge
COMMON/SEAICE_DYNVARS_ITD/
& AREAITD, HEFFITD, HSNOWITD,
& opnWtrFrac, fw2ObyRidge
C Fields for dynamic ice thickness distribution (ITD)
C AREAITD :: area classes
C HEFFITD :: ice thickenss classes (in meters)
Expand All @@ -82,12 +103,28 @@ C ocean during ridging
_RL opnWtrFrac (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL fw2ObyRidge(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
#endif /* SEAICE_ITD */
_RL AREA (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL HEFF (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL HSNOW (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL UICE (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL VICE (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)

#ifdef SEAICE_CGRID
C stressDivergenceX/Y :: div of (vert. integr.) stress tensor (N/m^2)
COMMON /SEAICE_STRESSDIV/
& stressDivergenceX, stressDivergenceY
_RL stressDivergenceX(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL stressDivergenceY(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
# ifdef SEAICE_ALLOW_EVP
C-- Additional fields needed by the EVP solver:
C (vertically integrated) stress tensor, with diagonal terms sigma11/22
C seaice_sigma1 :: sigma11+sigma22, defined at C-points (N/m)
C seaice_sigma2 :: sigma11-sigma22, defined at C-points (N/m)
C seaice_sigma12 :: off-diagonal term, defined at Z-points (N/m)
COMMON /SEAICE_EVP_FIELDS/
& seaice_sigma1, seaice_sigma2, seaice_sigma12
_RL seaice_sigma1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL seaice_sigma2 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL seaice_sigma12 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
# endif /* SEAICE_ALLOW_EVP */
#endif

#if ( defined SEAICE_CGRID || defined SEAICE_BGRID_DYNAMICS )
C ETA, etaZ :: shear viscosity as C-points, at Z-points (N s/m = kg/s)
C ZETA, zetaA :: bulk viscosity at C-points, at Z-points
C PRESS :: maximum vertically integrated ice strength/pressure (N/m)
Expand All @@ -96,46 +133,39 @@ C deltaC :: deformation rate tensor invariant, for VP sea ice
C = sqrt( (e11+e22)**2 + (1/e)*(e11-e22)**2 + 4*e12**2) )
C FORCEX/Y :: momentum forcing
C ( units of [rho * h * u / deltaT] = kg/m/s^2 )
C u/vIceNm1 :: sea ice drift velocities of previous timestep (m/s)
C tensileStrFac :: factor k to compute the maximal tensile stress k*PRESS0
COMMON/SEAICE_DYNVARS_3/
& ETA,etaZ,ZETA,zetaZ,PRESS, e11, e22, e12, deltaC,
& FORCEX,FORCEY,
& uIceNm1, vIceNm1
& ETA, etaZ, ZETA, zetaZ, PRESS, tensileStrFac,
& e11, e22, e12, deltaC,
& FORCEX,FORCEY

_RL ETA (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL etaZ (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL ZETA (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL zetaZ (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
C ice strength/pressure term
_RL PRESS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL tensileStrFac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
C strain rate tensor
_RL e11 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL e22 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL e12 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
C deformation rate tensor invariant, for viscous plastic sea ice =
C sqrt[(e11**2+e22**2)*(1+1/e**2)+ 4./e**2*e12C**2 + 2*e11*e22*(1-1/e**2))
_RL deltaC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
C
_RL FORCEX (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL FORCEY (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL uIceNm1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL vIceNm1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)

C DWATN :: (linear) ice-ocean drag coefficient
C ( units of [rho|u|] = kg/m^2/s )
C PRESS0 :: maximal compressive stress/strength (N/m)
C FORCEX/Y0 :: external momentum forcing fields (part of FORCEX/Y)
C SEAICE_zMax/zMin :: maximum/minimum bulk viscosities
C tensileStrFac :: factor k to compute the maximal tensile stress k*PRESS0
COMMON/SEAICE_DYNVARS_4/
& DWATN, PRESS0, FORCEX0, FORCEY0,
& SEAICE_zMax, SEAICE_zMin, tensileStrFac
_RL DWATN (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL PRESS0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL FORCEX0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL FORCEY0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL SEAICE_zMax (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL SEAICE_zMin (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL tensileStrFac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
& PRESS0, FORCEX0, FORCEY0, SEAICE_zMax, SEAICE_zMin
_RL PRESS0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL FORCEX0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL FORCEY0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL SEAICE_zMax(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL SEAICE_zMin(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
#endif

#ifdef SEAICE_CGRID
C seaiceMassC/U/V :: mass (ice+snow) at C/U/V-points ( kg/m^2 )
Expand All @@ -144,11 +174,6 @@ C seaiceMassC/U/V :: mass (ice+snow) at C/U/V-points ( kg/m^2 )
_RL seaiceMassC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL seaiceMassU(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL seaiceMassV(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
C stressDivergenceX/Y :: div of (vert. integr.) stress tensor (N/m^2)
COMMON /SEAICE_STRESSDIV/
& stressDivergenceX, stressDivergenceY
_RL stressDivergenceX(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL stressDivergenceY(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
# ifdef SEAICE_ALLOW_FREEDRIFT
C u/vice_fd :: free drift velocities (m/s)
COMMON /SEAICE_FD_FIELDS/
Expand All @@ -157,26 +182,13 @@ C u/vice_fd :: free drift velocities (m/s)
_RL vice_fd (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
# endif

# ifdef SEAICE_ALLOW_EVP
C-- Additional fields needed by the EVP solver:
C (vertically integrated) stress tensor, with diagonal terms sigma11/22
C seaice_sigma1 :: sigma11+sigma22, defined at C-points (N/m)
C seaice_sigma2 :: sigma11-sigma22, defined at C-points (N/m)
C seaice_sigma12 :: off-diagonal term, defined at Z-points (N/m)
COMMON /SEAICE_EVP_FIELDS/
& seaice_sigma1, seaice_sigma2, seaice_sigma12
_RL seaice_sigma1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL seaice_sigma2 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL seaice_sigma12 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
# endif /* SEAICE_ALLOW_EVP */

# ifdef SEAICE_ALLOW_BOTTOMDRAG
C CbobC :: (linear) bottom drag coefficient for basals stress param.
COMMON/SEAICE_BOTTOMDRAG/ CbotC
_RL CbotC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
# endif /* SEAICE_ALLOW_BOTTOMDRAG */

# if (defined SEAICE_ALLOW_JFNK) || (defined SEAICE_ALLOW_KRYLOV)
# if ( defined SEAICE_ALLOW_JFNK || defined SEAICE_ALLOW_KRYLOV )
C diagnostics for the JFNK and Krylov solver
INTEGER totalNewtonIters
INTEGER totalNewtonFails
Expand All @@ -187,22 +199,26 @@ C diagnostics for the JFNK and Krylov solver
& totalNewtonIters, totalNewtonFails,
& totalKrylovIters, totalKrylovFails,
& totalJFNKtimeSteps
C Scalar product used in FGMRES needs a metric
INTEGER nVec
PARAMETER ( nVec=2*sNx*sNy )
_RL scalarProductMetric( nVec, 1, nSx, nSy )
COMMON /SEAICE_KRYLOV_RL/ scalarProductMetric
# endif /* SEAICE_ALLOW_JFNK or SEAICE_ALLOW_KRYLOV */

#else /* ndef SEAICE_CGRID */
#endif /* SEAICE_CGRID */

#ifdef SEAICE_BGRID_DYNAMICS
C AMASS :: sea ice mass
C DAIRN :: (linear) atmosphere-ice drag coefficient
C uIceC :: average of UICE between last two time steps
C vIceC :: average of VICE between last two time steps
COMMON/SEAICE_DYNVARS_BGRID/ AMASS, DAIRN, uIceC, vIceC
C u/vIceC has been renamed to u/vIceC to avoid conficts with C-grid code
C uIceB :: average of UICE between last two time steps
C vIceB :: average of VICE between last two time steps
COMMON/SEAICE_DYNVARS_BGRID/ AMASS, DAIRN, uIceB, vIceB
_RL AMASS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL DAIRN (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL uIceC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL vIceC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL uIceB (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL vIceB (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)

COMMON/WIND_STRESS_OCE/WINDX,WINDY
C WINDX - zonal wind stress over water at C points
Expand All @@ -218,7 +234,7 @@ C GWATX/Y :: geostrophic ocean velocities
C-- KGEO Level used as a proxy for geostrophic velocity.
COMMON/SEAICE_KGEO/KGEO
INTEGER KGEO (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
#endif /* SEAICE_CGRID */
#endif /* SEAICE_BGRID_DYNAMICS */

COMMON/SEAICE_REG_NEG/d_HEFFbyNEG,d_HSNWbyNEG
C The change of mean ice thickness due to out-of-bounds values following
Expand Down
27 changes: 16 additions & 11 deletions pkg/seaice/SEAICE_OPTIONS.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,10 +79,19 @@ C computed the "call diagnostics_fill" statement is commented out.
# undef ALLOW_SITRACER_DEBUG_DIAG
#endif /* ALLOW_SITRACER */

C-- Allow sea-ice dynamic code. These options are provided so that,
C if turned off (#undef), to compile (and process with TAF) only the
C the thermodynamics component of the code. Note that, if needed,
C sea-ice dynamics can be turned off at runtime (SEAICEuseDYNAMICS=F).

C-- Historically, the seaice model was discretized on a B-Grid. This
C discretization should still work but it is not longer actively tested
C and supported. The following flag should always be set in order to use
C the operational C-grid discretization.
C discretization should still work but it is not longer actively
C tested and supported. Define this flag to compile it. It cannot be
C defined together with SEAICE_CGRID
#undef SEAICE_BGRID_DYNAMICS

C-- The following flag should always be set in order to use C the
C-- operational C-grid discretization.
#define SEAICE_CGRID

#ifdef SEAICE_CGRID
Expand Down Expand Up @@ -174,7 +183,9 @@ C Use parameterisation of grounding ice for a better representation
C of fastice in shallow seas
# undef SEAICE_ALLOW_BOTTOMDRAG

#else /* not SEAICE_CGRID, but old B-grid */
#endif /* SEAICE_CGRID */

#ifdef SEAICE_BGRID_DYNAMICS
C-- Options for the B-grid version only:

C- By default for B-grid dynamics solver wind stress under sea-ice is
Expand All @@ -192,7 +203,7 @@ 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 */
#endif /* SEAICE_BGRID_DYNAMICS */

C-- Some regularisations
C- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box
Expand Down Expand Up @@ -242,12 +253,6 @@ C- Do not compile growth/thermodynamics code (avoiding this code can
C also be done by setting runtime parameter usePWthermodynamics=F)
#undef DISABLE_SEAICE_GROWTH

C- Allow sea-ice dynamic code. This option is provided so that,
C if turned off (#undef), to compile (and process with TAF) only the
C the thermodynamics component of the code. Note that, if needed,
C sea-ice dynamics can be turned off at runtime (SEAICEuseDYNAMICS=F).
#define SEAICE_ALLOW_DYNAMICS

C- Do not compile/use seaice-related obcs code when using obcs.
#undef DISABLE_SEAICE_OBCS

Expand Down
Loading

0 comments on commit 4531540

Please sign in to comment.