[MITgcm-support] seaice model
Martin Losch
mlosch at awi-bremerhaven.de
Mon Apr 26 04:25:45 EDT 2004
Hi there,
I have tried to modify the global_ocean.90x40x15 verification
experiment so that it uses the seaice package. I realize that this may
not be a perfect domain, because it ends at 80degree N and S, and it is
very coarse (4degx4deg, 15 layers 50 to 690m) but just to try it out. I
have turned on exf and cal and kpp. but use default CPP-flags in KPP. I
use ncep reanalysis fluxes to force the model (wind, humidity, air
temp, downward shortwave and longwave heat, precipitation and
evaporation diagnosed from heat fluxes, so that I can balance the
global freshwater flux over a year. Without the seaice model I get a
relative stable run (1000 yrs.), although the surface gets far too warm
but a few degrees. I decided to look at heat fluxes later.
Now a list of my problems/observation. Maybe someone with more
experience about seaice can comment on this:
- I have to reduce the time step from 2 days (without seaice) to 12h to
make the model run more than a few time steps (why is that?).
- the model blows up after 6-12 months because of a sudden violation of
the vertical CFL-criterium, depending on the convection scheme I use.
- with KPP the model blows up fastest, convective adjustment of
implicit diffusion make it last longer
- ice builds up and melts properly according to seasons, but ice
thickness are huge (?): HEFF goes up to 20m at isolated places.
- this is my preliminary analysis of what's going on:
in winter sea ice builds up, there is a net fresh water flux out of the
ocean which is huge (up to 8m/day in monthly averages!), as a
consequence surface salinities go up to 500 PSU, which leads to strong
horizontal pressure gradients, strong horizontal velocity divergences
and therefore to strong vertical velocities, so that eventually the
vertical cfl-criterium is violated and ... booooom. The preferred areas
for this process are the eastern Wedell Sea (what ever is resolved),
the Norwegian Sea, if you can call it that and Hudson Bay (yes, it's in
there). I guess the problem is that these areas are quite shallow in
the model (only a few grid cells) so the that the high salinities
cannot be convected or advected away. But the main problem is probably
related to the strong freezing rates of a few meters a day.
If anyone would like to try it out, I have put my configuration on
http://mitgcm.org/~mlosch/global_with_seaice.tgz (~4MB)
which contains all forcing fields and data files in ./input and all
code modifications in ./code (except for the ones described in the post
scriptum) and I use a fresh copy of the code (as of Friday, Apr 23)
Any comments?
Martin
PS. I also tried the identical configuration on my mac with g77, and
got a segmentation fault in the seaice model, in one of the loops of
the LSR solve. Clearly a compiler optimization problem because reducing
the optimization from -O3 to -O1 (no optimization, documentation on g77
is sparse) made the problem go away. I had a look at the code and saw a
lot of divisions. I replace all occurrences of /CSUICE(i,j,bi,bj) in
the code by *RECIP_CSUICE(i,j,bi,bj) (a new field initialized to
1/CSUICE in seaice_init) and the segmentation fault went away. It may
be worth thinking about changing this throughout the code (CSTICE is
another candidate). What do you think about this. I can volunteer to do
this but I am afraid that it might break results in the verification
experiments, because optimization is affected?
More information about the MITgcm-support
mailing list