[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