[MITgcm-devel] more seaice
Martin Losch
mlosch at awi-bremerhaven.de
Fri Mar 10 03:52:32 EST 2006
Forgot to say what I mean by "clipping":
at the end of dynsolver (and seaice_dynsolver) you have:
uIce = min(0.40,uIce)
uIce = max(-0.40,uIce)
That's what I call clipping.
The next plan is to look into the stress coupling of Hibler and Bryan
(1987, JPO): Instead of applying ice-ocean to the ocean model, use
the internal stress of the ice (div sigma). It sounds plausible. Do
have any experience with that?
Martin
On Mar 10, 2006, at 9:14 AM, Martin Losch wrote:
> Hi Jinlun,
>
> first, a quick update on the AWI sea-ice model: the solver is
> basically the original Hibler(1979) solver, with some small
> modifications (I checked again with Ralph Timmermann, he said that
> the Belgian group that he worked in for some time uses or used to
> use your code, but they had problems porting it to the ORCA grid of
> OPA).
>
> Clippling vs. Masking:
> I understand LSR as follows: it sets up and solvers a linear system
> of equations equation:
> CoefficientMatrix*UICE(k+1) = URT(UICE(k)) and the same for VICE.
> So if I mask the URT with the "area mask" (seaiceMaskU(I,J) = 1, if
> AREA(I,J)+AREA(I-1,J) > 0 otherwise = 0), there is no forcing
> outside the ice-area and thus the ice velocities go to zero (in
> fact, since it is a global solver to very small numbers) in regions
> where there is no ice. The ice regions are probably affected by
> this near the ice boundaries, but according to my quick tests not
> very much, but I need to check that more thoroughly. This way you
> will not advect zero ice thickness around with large velocities and
> thus avoid numerical problems. I can get away without clipping (in
> terms of numerical stability, I still don't like the solution, not
> enough ice )o: )
>
> Martin
>
> On Mar 10, 2006, at 1:25 AM, Jinlun Zhang wrote:
>
>> Hi Martin,
>>
>> Thanks for the info about AWI ice modeling.
>> I haven't looked at mitgcm ice part for a while, but wow, you
>> have done lots of work. And good you can run it on a cubed sphere
>> with C grid. But I am not sure why you have to mark out URT and
>> VRT with AREA. You said it is because velocity clipping. What is it?
>>
>> Cheers, Jinlun
>>
>> Martin Losch wrote:
>>
>>> 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
>
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel
More information about the MITgcm-devel
mailing list