[MITgcm-devel] ICE workshop - recap and homework!
Jean-Michel Campin
jmc at ocean.mit.edu
Wed Mar 7 09:28:06 EST 2012
Hi Gael,
I am a little bit confused: If the goal is to retire those CPP options
(and I agree with Martin), e.g., MCPHEE_OCEAN_ICE_HEAT_FLUX,
it seems strange that we are forcing user to put these options
in their SEAICE_OPTIONS.h file,
even more strange if they were not using it before, because in this
case, if they want to keep the same results, not only they will have
to cook some parameters in data.seaice but they also will have
to add these CPP options in SEAICE_OPTIONS.h.
And as expected, hopefully not too far in the future, when these
CPP options will be retired, we will add a stop if they are defined,
and the users will have to change again their SEAICE_OPTIONS.h.
Cheers,
Jean-Michel
On Wed, Mar 07, 2012 at 10:06:22AM +0100, Martin Losch wrote:
> Hi Gael,
>
> thanks for the explanations. I have questions/comments below:
> On Mar 7, 2012, at 8:26 AM, Gael Forget wrote:
>
> > Hi Martin et al,
> >
> > I am moving some of the "ICE workshop - recap and homework!" thread that followed from the MIT ice workshop to devel list.
> >
> >> Further, for checking the conservation properties in my configuration it would be helpful if Gael could provide a data.diagnostics.
> > Will follow.
> >
> >> About the seaice defaults: I am not clear about the turbulent flux formulae. The implementation that I updated to today requires that I set
> >> #define MCPHEE_OCEAN_ICE_HEAT_FLUX
> >> #define GRADIENT_MIXED_LAYER_TURBULENCE_FACTOR
> >> Do we need to set anything else in data.seaice in order to get the agreed parameter set?
> > I know it's confusing even for me at this point. It took me a while to figure out a more of less adequate way (see below)
> > of unifying the various flavours of this term's specification that had been added over the years. I mostly hope that this
> > merge keeps non-specialists of pkg/seaice from overlooking default changes when they update their copy of MITgcm.
> >
> > Below I give explanations and guidelines (correct ones I hope) for using the new run time parameters.
> > I do the same for SEAICE_MULTICATEGORY and SEAICE_VARIABLE_FREEZING_POINT.
> > That information is also in SEAICE_PARAMS.h and/or seaice_check.F and/or in the standard output.
> >
> > Cheers,
> > Gael
> >
> > old def/undef SEAICE_VARIABLE_FREEZING_POINT : now unified way of specifying sea water freezing point. So it should always be defined and the rest is done with run time params. Changed default.
> This CPP-flag should be retired and removed in the near future
> > -----------------------------------------------------------------------------------------
> > old default : SEAICE_tempFrz0 = -1.96, SEAICE_dTempFrz_dS = 0.
> > new default : SEAICE_tempFrz0 = 0.0901, SEAICE_dTempFrz_dS = -0.0575
> > ?? do we have a precise reference for 0.0901 + S * SEAICE_dTempFrz_dS ??
> Good question. The unesco eos (Fofonoff and Millard 1983) says this:
> a0 = -0.0575;
> a1 = 1.710523e-3;
> a2 = -2.154996e-4;
> b = -7.53e-4;
> fp = (a0.*S + a1.*S.*sqrt(S) + a2.*S.^2 + b.*P) / 1.00024;
>
> Holland and Jenkins (1999) cite
> Millero, F. J. (1978): Annex 6: Freezing point of seawater. Eighth Report of the Joints Panel of Oceanographic Tables and Standards, UNESCO Technical Papers in Marie Science, 31 pp.
> for a linear formula (their eq (1)): Tf=a*S+b+c*p, with a=-5.73e-2degC/psu, b=9.39e-2degC, c=7.53e-8 degC/Pa.
>
> So that's slightly different (and I actually use a=-5.75e2, b=9.01e-2, c=7.61e-8 in shelfice_thermodynamics.F), what does that tell us?
>
> >
> >
> > def/undef SEAICE_MULTICATEGORY : no change to default. So use CPP as before.
> > But added run time switch : set SEAICE_multDim to 1 or 7, regardless of CPP. It is assumed
> > that user provide pickup accordingly, as before. Pickup code will likely need consolidation.
> After the pickup code is sorted out this CPP-flag should also be retired, right?
> > ---------------------------------------------------------------------------------------------------------
> >
> >
> > old def/undef MCPHEE_OCEAN_ICE_HEAT_FLUX & GRADIENT_MIXED_LAYER_TURBULENCE_FACTOR :
> > now unified way of specifying the turb. ocean-ice flux. So the CPPs should always be defined and the rest is
> > done with run time params. Old run time params can still be used. Changed default.
> > ----------------------------------------------------------------------------------------------------------------------------
> > defaults etc :
> > -- old default : SEAICE_mcPheePiston = drf(1)/SEAICE_deltaTtherm, SEAICE_frazilFrac=1., SEAICE_mcPheeTaper=0.,
> > -- new default : SEAICE_mcPheePiston = 0.000875, SEAICE_frazilFrac=1., SEAICE_mcPheeTaper=0.,
> > -- baseline params : SEAICE_mcPheePiston = 0.000875, SEAICE_frazilFrac=1., SEAICE_mcPheeTaper=0.92,
> > -- old mcphee cpp : SEAICE_mcPheePiston = 0.000875, SEAICE_frazilFrac=0., SEAICE_mcPheeTaper=0.92,
> > -- SEAICE_mcPheeStepFunc always false (old GRADIENT_MIXED_LAYER_TURBULENCE_FACTOR).
> > conversions of old to new params :
> > -- SEAICE_mcPheePiston = dRf(kSurface)/SEAICE_gamma_t
> > -- SEAICE_frazilFrac = SEAICE_deltaTtherm/SEAICE_gamma_t_frz
> > -- SEAICE_mcPheePiston = SEAICE_availHeatFrac * dRf(kSurface)/SEAICE_deltaTtherm
> > -- SEAICE_frazilFrac = SEAICE_availHeatFracFrz
> > ?? do we have a precise reference for 0.000875 and 0.92 ??
> Just to make sure: If I want to reproduce the old configuration of
> #define MCPHEE_OCEAN_ICE_HEAT_FLUX
> #define GRADIENT_MIXED_LAYER_TURBULENCE_FACTOR
> I have to set
> SEAICE_mcPheePiston = 0.000875, (this is default and need not be set)
> SEAICE_frazilFrac=0., (this is not default)
> SEAICE_mcPheeTaper=0.92, (this is not default)
> SEAICE_mcPheeStepFunc=.false., (this is default and implies the linear function only if mcPheeTaper .ne. 0)
> For the baseline experiments we agreed on frazilFrac = 1., so that means for the baseline data.seaice we now have:
> >> cat data.seaice
> &SEAICE_PARM01
> # SEAICEheatConsFix = .TRUE.,
> SEAICE_no_slip = .TRUE.,
> SEAICEadvScheme = 7,
> # for adjoint simulations you will need
> # SEAICEadvScheme = 30,
> SEAICE_drag = 0.001,
> SEAICE_wetAlbTemp = 0.0,
> SIsal0 = 4.0,
> # this is a temporary set of parameters to allow super-cooled water
> # to turn into sea-ice until the interior freezing/frazil capabilities have
> # matured
> SEAICE_mcPheeTaper=0.92,
> # Depending on vertical resolution this angle should have a value
> # > 0 (e.g., 25deg for drF(1)=10m,)
> # SEAICE_waterTurnAngle = 0.0,
> &
>
>
> Please confirm, and once confirmed, we can make another packaged set of SEAICE_OPTIONS.h, data.seaice, and data.diagnostics
>
> Martin
>
>
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel
More information about the MITgcm-devel
mailing list