[MITgcm-devel] more seaice

Martin Losch mlosch at awi-bremerhaven.de
Wed Mar 8 03:03:43 EST 2006


Hello Jinlun,

Thanks for your reply.
Stresses: I talked to Ralph Timmermann who is currently probably the  
one who knows most about "the" AWI ice model (there are by now many  
flavors around, one coupled to SPEM, one coupled to MOM2, and a stand  
alone version which is basically a handy-down over many generations  
of PhD students so that the current students do not really now too  
much about the details of it. The basis of all of this is a model by  
Harder and Lempke:
Harder, M.(1996). Roughness and drift trajectories of sea ice in  
large-scale simulations and their use in model verifications, Ann  
Glaciol,25.
Kreyscher, M., Harder, M., Lemke, P.(1997). First results of the Sea  
Ice Model Intercomparison Project (SIMIP), Annals of Glaciology , 25,  
8-11.
And as far as I can see it does not use the LSR solver but something  
different which has been changed by members of our computer  
department and other. Do you know the term "electronic archeology"?  
One would need to do a immense amount of that to figure this things  
out (o:.
And NO, it is not parallel, something that hampers the thrive for  
efficiency in the coupled ocean-ice models. Plus there is a hibler- 
type model on finite elements which will become the new "state of the  
art"!)

I don't know if you get the CVS-email notification (and if you do,  
pay any attention to it), but I have now written and checked in new  
versions of dynsolver, lrs and ostres. They are called  
seaice_dynsolver.F, seaice_lsr.F, and seaice_ocean_stress.F. They can  
be called as an alternative to the original code (which is not  
original anymore, since I did all these modifications to the grid  
information). The main feature of the new code is that it is on a C- 
grid for a cartesian and a spherical grid (still NOT fully  
curvilinear). I did that because I want to run the seaice model on a  
cubed sphere, where the ice is allowed to move across into other  
faces of the cube (which was not possible with the "old version").  
Along with this I made a few other changes:
1. formulated the ice stress in a way that I find consistent:
     tau_air-ice = cdair*sqrt([wind]^2)*wind (without averaging over  
the entire grid cell)
     tau_ice-ocean = cdiceocean*sqrt([rel vel]^2)*[rel vel]
     the ocean feels a weighted average (according to ice cover) of  
ice-ocean stress and air-ocean stress
Because uice and u (vice and v) are now on the same grid there is no  
averaging involved (between C and B-grid variables) except for the  
Coriols terms and terms involving this turning angle (which is zero  
by default); and of course, the wind field is on tracer points, so  
there some averaging there, but much less compared to before!
2. I have tried masking *NOT* the velocity field, but the rhs of the  
solver, that is, URT and VRT with AREA. That way the velocities are  
not discontinuous at all. This solution runs stably (at least for  
100yrs in a 2x2 degree run and the coarse cubed sphere with 200km  
resolution) and I can even get rid of the velocity clipping in  
seaice_dynsolver.F. What do you think of that? In fact the solutions  
are not that different, but it works
3. I have substituted the implementation of the tilt by the real tile  
(-gravity*gradient(ssh)).
4. I have moved parts of the repeated computations in seaice_dysolver  
of E11, etc, FORCEX/Y etc into seaice_lsr.F in order to save code  
lines and simplify potential future modifications. I realize that  
seaice_lsr is now much more than just the lsr solver, but it was more  
than that anyway.
5. small changes in handling the parameters (moved previously hard  
code values into name lists)

As for lsr.F, as long as the new seaice_lsr.F works so well for me, I  
am fine with the currently checked-in version of lsr.F.

Martin

On Mar 8, 2006, at 2:20 AM, Jinlun Zhang wrote:

> Hi Martin,
>
> Sorry for the delayed reply for your emails. Cool you have been  
> able to run the version with new indexing and other modifications.
>
> As for the calculation of surface stress, as Dimitris mentioned,  
> the one implemented right now is a temporary fix. As a temporary  
> fix, I prefer the existing treatment. I have been trying to find a  
> permanent solution that would get real stress at the ice-ocean  
> interface into the system, but it is tough to do.  I don't know how  
> AWI ice models calculate stress. I remember one AWI paper published  
> some years back says that some spatial average is needed in  
> calc'ing stress, otherwise, the code would blow up. If it is true,  
> then it is the same problem we have here, but I would not want to  
> use spatial average. By the way, would you mind checking AWI ice  
> models to see if they use the LSR solver or use the  Hibler (1979)  
> solver? I sent out LSR model (rectangular version) to some European  
> groups more than 10 years ago, I hope it did not lost in  
> translation (-:. And I hope they can use a parallel LSR, if not  
> already using some other parallel code.
>
> As for the mask in the LSR solver, better not use AREA=0 as mask.  
> This is because it would create velocity discontinuities between  
> areas with and without ice.
>
> I haven't got deep into the new LSR routine, since you have run the  
> code for many years, it is probably ok except that the metric terms  
> have not been included, as you mentioned.
>
> Cheers, Jinlun
>
>
>
> Martin Losch wrote:
>
>> Hello Dimitris,
>>
>> FORCEX/Y at that point are air-ice-stress interactions, the   
>> coefficient ist call DAIRN. The ice-ocean stresses are put in  
>> later  after the computation ETA,ZETA,Eij with the coefficent  
>> DWATN. So I  think that at this point averaging does not make much  
>> sense: It would  mean that the ice is driven both by wind over ice  
>> and wind over open  water.
>>
>> I think in the c-grid version I'll try to do it the way I find it   
>> intuitive: separate wind stress over ocean and ice and compute  
>> stress  on ocean as the average of ice-ocean stress and wind  
>> stress (on the  ocean). This is how it is done in the various  
>> coupled AWI ice models.
>>
>> Martin
>>
>> On Mar 6, 2006, at 7:54 PM, Dimitris Menemenlis wrote:
>>
>>>> The way I understand this is that the stress on the ice is an   
>>>> average over ocean stress and ice stress ( the statement before   
>>>> FORCEX(I,J,bi,bj) = ...), whereas the stress over the ocean is   
>>>> just the ocean stress not weighted at all. I find this a little   
>>>> inconsistent if not wrong. I would think that these
>>>>  terms should be treated separately, with only the ice stress   
>>>> driving the
>>>> ice, right?
>>>
>>>
>>> Martin, yes it is inconsistent.  As Jinlun mentioned in an  
>>> earlier  message, the
>>> original formulation for ocean stress, the one marked by CPP flag
>>> SEAICE_ORIGINAL_BAD_ICE_STRESS in ostres.F caused model   
>>> instabilities.  As a
>>> temporary fix, the presence of ice is ignored in the computation  
>>> of  ocean
>>> surface stress, variables WINDX and WINDY.
>>>
>>> Regarding ocean stress at bottom of ice, variables FORCEX and   
>>> FORCEY, my understanding is that dynsolver assumes that thin ice   
>>> covers the open ocean everywhere, hence the weighted sum of ice-  
>>> covered and ice-free components in the computation of FORCEX and   
>>> FORCEY.  But I do not know whether and why this thin-ice  
>>> assumption  is required nor what would be impact of setting the  
>>> URT/VRT mask to  zero where AREA=0.
>>>
>>> Dimitris
>>
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel




More information about the MITgcm-devel mailing list