[MITgcm-devel] ridging of ice

Martin Losch Martin.Losch at awi.de
Tue Apr 8 08:31:38 EDT 2014


Hi there,

I have picked up Torge’s ITD code and am implementing a ridging scheme following Lipscomb et al (2007), Bitz et al. (2001). For that it would be nice, if we could cleanly separate the “ridging code” in seaice_growth from the rest, and put it at the end of or after s/r seaice_advdiff.

I see potential conflicts with these points (because they happen before the ridging code that currently starts a point 2.5 or line 664 in seaice_growth.F):
PART 1: treat pathological cases (post advdiff), especially 
- when EXF_SEAICE_FRACTION is defined, because AREA is then updated;
- AREA/HEFF/HSNOW below zero

But for some reason (luck?) moving the ridging code to the end of seaice_advdiff does not change the results of the forward verification experiments. 
If nobody objects, I will remove the ridging code from seaice_growth and move it to (along with the SItracer and DIAGNOSTICS code)
(i) the end of seaice_advdiff (where it already is, when usePW79thermodynamics=.False.) OR
(ii) into a separate routine that is called after seaice_advdiff
(iii) leave seaice_growth as it is and only change code related to SEAICE_ITD.

For the ITD ridging code there will be a new routine anyway that could include the non-ITD ridging code so option (ii) appeals little more to me. Option (iii) is also possible, but I think this will backfire in the future and make the code even more complicated and difficult to understand.

The thsice code includes its own ridging line (line 211 in thsice_extend.F: iceFrac = MIN(icFrac(i,j)+newIce/hNewIce,iceMaskMax)), so that this new routine would be called only if useThsice=.FALSE. 

What do you think?

Martin





More information about the MITgcm-devel mailing list