[MITgcm-devel] upcoming changes in seaice_growth.F

Martin Losch Martin.Losch at awi.de
Fri Jun 17 18:56:38 EDT 2011


Gael, Ian,

I think that Gael has introduce a good way of dealing with negative ice thickness (d_HEFFbyNEG). When used as I suggested it makes the "area_floor" parameter unnecessary. Maybe Gael can comment on this solution. I am happy to implement it.

area_reg=1.e-5 makes little sense to me. It's predecessors A22/areaMin defaulted to 0.15. The purpose of this parameter is to "physically" regularize HEFF/AREA, not numerically. If you use a small number for this, you'll have HICE = HEFF*0(1e5) in the worst case and you will have very little heat flux through ice like that.

So I prefer this (in this order):
1. area_reg=0.15 and make area_floor unnecessary (and the CPP flag surrounding it)
2. area_reg=0.15 and area_floor a small number (like 1e-5), and still get rid of the CPP flag, area_floor=0. will do it.

BTW and not really related "SIeps" is also a "nice" new parameter (o: We already have SEAICE_EPS (used mostly in the dynamics part, but not exclusively). Let's try to keep the number of generic parameters (ie. without a specific name that implies it's use) low, otherwise things become more and more fusion.

Martin

On Jun 17, 2011, at 11:48 AM, Ian Fenty wrote:

> Gael,
> 
> 
> On Jun 15, 2011, at 4:06 PM, Gael Forget wrote:
> 
>> Ian,
>> 
>> since you really want to have two different run time parameters, 
>> let's go for it. Also the sqrt formula makes sense for the adjoint.
>> 
>> Before you check the code in cvs, accomodate me, and change two things though:
>> (1) make the default for area_floor and area_reg be the same and equal to SIeps (10^-5).
>> (2) make the 'FLOOR bloc' active by default. More explicitely, bracket it with 
>> #ifndef DISABLE_AREA_FLOOR instead of #ifdef SEAICE_ENFORCE_FLOOR_ON_AREA
> 
> NP.
> 
>> 
>> Your concern originally was to reduce the threshold to a small number. You convinced me from 
>> the start that 0.15 was a priori way too large, which was likely affecting the solutions beyond 
>> pathological cases. You then told me that you have tested 10^-5 and it turned out fine for 
>> the adjoint, so I assume you will use 10^-5. No need to hard-code it again btw (SIeps=10^-5).
> 
> I found your new variable SIeps, and 10^-5 does work fine so we'll use it.
> 
>> 
>> I want to have the 'FLOOR bloc' active by default (defined and with a 10^-5 threshold)
>> because I think it makes no physical sense to allow HEFF>0 and AREA=0
>> which is bound to happen occasionally with certain advection schemes. I think
>> that the model should take care of such pathological cases by default. The average 
>> user should not have to edit both SEAICE_OPTIONS.h and data.seaice to do this.
>> You are a very advanced user obviously; you know those epsilons exist for a start.
>> You will have to tell me one day why you really want area_floor=0 in your runs, but 
>> I hope you will at least agree that area_floor=10^-5 is basically harmless.
> 
> One day over beer I'll tell you why I really want area_floor = 0.  Although see Martin's email in which he suggests that we should simply kill HEFF in pathological cases where AREA comes back <= 0 from dynamics (like we do to AREA when HEFF comes back <= 0).  If we did that then there is no need to include the "FLOOR bloc" for sanity checking.
> 
> Until then, 10^-5 it is!
> 
> -Ian
> 
> 
>> 
>> Thanks in advance for checking this in cvs.
>> 
>> Cheers,
>> Gael
> 




More information about the MITgcm-devel mailing list