[MITgcm-devel] sea ice clean up this week

Gael Forget gforget at MIT.EDU
Mon Feb 13 11:43:13 EST 2012


Hi Jean-Michel,

> I would like to see (ASAP):
> - update of doc/tag-index (Friday modif, ce n'est que le 2nd email que j'envoi)
No Problem (les emails du dimanche je reagis rarement avant le lundi sauf urgence).
> - fixing this bug first (and not buried into an other set of changes)
> And after, if you want, you can continue with other changes.
No problem.

> If you keep mixing bug-fixing and other unrelated things (cleaning, 
> re-aranging etc ...) it's very hard for users to check why results are 
> changing.
I guess I must have done that a number of times in the past the way you phrase it.
As far as Friday's commit, the cs32x15 result (only) did change for three reasons.
I came to ask you about that, and I understood (only partially I guess) that the three 
results change should be documented, so I commited the consecutive output.txt.
It seems I misundertstood, and you wanted me to proceed as check-in code, 
check-in result, let one night go, check-in code, check-in result, 
let one night go, check-in code, check-in result. I will come by later...

Gael

> On Mon, Feb 13, 2012 at 07:50:15AM -0500, Gael Forget wrote:
>> Martin,
>> 
>> you are right I messed up the untested case. Thanks for catching it early.
>> 
>> The correct code (in the current state of affairs) would be
>>           elseif ( (SEAICEturbFluxFormula.EQ.4).AND.
>>     &        (AREApreTH(I,J) .GT. 0. _d 0) ) then
>>              MixedLayerTurbulenceFactor = ONE/MCPHEE_TAPER_FAC
>> Correct. May be now that we can switch on this case through a run time parameter
>> we should have the second mcphee case tested in a sub-exp of Ian's 1D exp.
>> 
>> Also I went half way there. My intention was to ultimately have the MCPHEE_TAPER_FAC param
>> become 11.5/12.5 (in readparms or initfixed normally) and not be 12.5. In growth this would give
>>           if ( (SEAICEturbFluxFormula.EQ.3).AND.
>>     &        (AREApreTH(I,J) .GT. 0. _d 0) ) then
>>              MixedLayerTurbulenceFactor = ONE - MCPHEE_TAPER_FAC*AREApreTH(I,J)
>>           elseif ( (SEAICEturbFluxFormula.EQ.4).AND.
>>     &        (AREApreTH(I,J) .GT. 0. _d 0) ) then
>>              MixedLayerTurbulenceFactor = ONE - MCPHEE_TAPER_FAC
>> Correct? This makes the tapering strategy clearer and has no division in it.
>> 
>> I have a check-in planned today mostly for diags, checks and summary.
>> I can do the above at the same time if this works for you. Does it?
>> 
>> Cheers,
>> Gael
>> 
>> ps : I still need to send you guys a summary+guidelines regarding fridays' changes...
>> 
>> 
>> On Feb 13, 2012, at 6:03 AM, Martin Losch wrote:
>> 
>>> Gael,
>>> 
>>> I have not been able to understand the new MCPHEE+GRADIENT_MIXED_LAYER_* logic.
>>> 
>>> - MCPHEE_TAPER_FAC = 12.5
>>> - seaice_init_fixed for SEAICEturbFluxFormula.EQ.3 or 4
>>>       SEAICE_availHeatFrac= MCPHEE_TAPER_FAC * more constants
>>>       SEAICE_availHeatFracFrz=ZERO
>>> - seaice_growth: 
>>>         elseif ( (SEAICEturbFluxFormula.EQ.4).AND.(AREApreTH(I,J) .LE. 0. _d 0) ) then
>>>             MixedLayerTurbulenceFactor = MCPHEE_TAPER_FAC
>>>          else
>>>             [ ... ]
>>> 
>>> This looks to me as if you have MCPHEE_TAPER_FAC^2. It should be MixedLayerTurbulenceFactor=1 in the above case as the default (the final else) 1/MCPHEE_TAPER_FAC. So I suggest that we remove MCPHEE_TAPER_FAC in seaice_init_fixed:
>>>       SEAICE_availHeatFrac= STANTON_NUMBER * 
>>>    &    USTAR_BASE / dRf(kSurface) * SEAICE_deltaTtherm
>>> and adjust seaice_growth accordingly. This also avoids a division in a loop. If you don't object. I'll do it. (This options is not tested, because these changes do not change any results).
>>> 
>>> M.
>>> 
>>> 
>>> On Feb 9, 2012, at 8:16 PM, Gael Forget wrote:
>>> 
>>>> Dear all,
>>>> 
>>>> below is (A) a summary of the last two day clean-up steps (cosmetic changes) 
>>>> and (B) what it means for known users (based on Patrick's table; attached).
>>>> In case you follow testreport, you already know that the modifs have not 
>>>> changed anything to results. Notice : there is more clean-up coming in the 
>>>> next couple days, so you may want to wait until doing an update, up to you.
>>>> 
>>>> Cheers,
>>>> Gael
>>>> 
>>>> (A) 
>>>> 
>>>> retired CPPs : 
>>>> 	MCPHEE_OCEAN_ICE_HEAT_FLUX
>>>> 	GRADIENT_MIXED_LAYER_TURBULENCE_FACTOR
>>>> 	SEAICE_OCN_MELT_ACT_ON_AREA, SEAICE_DO_OPEN_WATER_GROWTH
>>>> 	SEAICE_DO_OPEN_WATER_MELT, FENTY_AREA_EXPANSION_CONTRACTION
>>>> 
>>>> added run time params. I include a copy of the doc in SEAICE_PARAMS.h and 
>>>> tried to trace back where the various options came from (text in parentheses).
>>>> 	SEAICE_doOpenWaterGrowth, SEAICE_doOpenWaterMelt
>>>> 		T/F 	just like the old CPP versions
>>>> 		T	use open water heat flux directly to grow ice	(Ian way)
>>>> 		F 	cool ocean, and grow later if needed		(Zhang way)
>>>> 	SEAICEturbFluxFormula :: selects formula for ocean-ice turbulent flux
>>>> 		1=direct spec. of SEAICE_availHeatFrac/Frz		(Dimitri/Ian way)
>>>> 		2=spec. via SEAICE_gamma_t/_frz				(Martin/Ian way)
>>>> 		3=McPhee with linear tapering					(Ian latest way)
>>>> 		4=McPhee with step function					(Ian other latest way)
>>>> 	SEAICE_areaLossFormula :: selects formula for ice cover loss from melt
>>>> 		1=from all but only melt conributions by ATM and OCN	(Ian way)
>>>> 		2=from net melt-growth>0 by ATM and OCN		(Gael/Ian way)
>>>> 		3=from predicted melt by ATM					(Zhang way)
>>>> 	SEAICE_areaGainFormula :: selects formula for ice cover gain from open water growth
>>>> 		1=from growth by ATM						(Ian way)
>>>> 		2=from predicted growth by ATM				(Zhang way)
>>>> 
>>>> as a side note, I put stops in seaice_check.F	 for combinaisons
>>>> that are obviously problematic. Tyipically, if you do NOT use  
>>>> SEAICE_doOpenWaterGrowth you need to use the Zhang way
>>>> for SEAICE_areaLossFormula (3) and SEAICE_areaGainFormula (2),
>>>> and this is the only case allowed with SEAICE_GROWTH_LEGACY.
>>>> 
>>>> (B) 
>>>> 
>>>> You should double check, but based on Patrick's table, 
>>>> here is what you will need to add to your namelists : 
>>>> 
>>>> Martin : 	in SEAICE_GROWTH_LEGACY case you should be all set. Otherwise
>>>> 		if TRUE SEAICE_doOpenWaterGrowth then SEAICE_areaLossFormula = 2
>>>> 		if FALSE SEAICE_doOpenWaterGrowth then SEAICE_areaLossFormula = 3, SEAICE_areaGainFormula=2
>>>> 
>>>> Ian et al:	SEAICE_doOpenWaterMelt=.TRUE.
>>>> 		SEAICEturbFluxFormula=3
>>>> 		ps: def/undef SEAICE_OCN_MELT_ACT_ON_AREA was doing nothing 
>>>> 		      since FENTY_AREA_EXPANSION_CONTRACTION was def.
>>>> 
>>>> Me : TBD.
>>>> 
>>>> 
>>>> <seaice_whodoeswhat_3.pptx>
>>>> 
>>>> _______________________________________________
>>>> MITgcm-devel mailing list
>>>> MITgcm-devel at mitgcm.org
>>>> http://mitgcm.org/mailman/listinfo/mitgcm-devel
>>> 
>>> 
>>> _______________________________________________
>>> MITgcm-devel mailing list
>>> MITgcm-devel at mitgcm.org
>>> http://mitgcm.org/mailman/listinfo/mitgcm-devel
>> 
>> 
>> _______________________________________________
>> MITgcm-devel mailing list
>> MITgcm-devel at mitgcm.org
>> http://mitgcm.org/mailman/listinfo/mitgcm-devel




More information about the MITgcm-devel mailing list