[MITgcm-devel] seaice dynamics in ocean 2-D

Martin Losch martin.losch at awi.de
Wed Jun 29 03:54:50 EDT 2016


Hi Jean-Michel,

that’s annoying. I have changed the dynamics solver(s) of pkg/seaice a lot since then, see attached file changes_to_seaice.txt, where I compiled all (documented) changes to pkg/seaice since ckpt65j. Below are the ones that I think may have affected your experiement, with comments; the most likely candidate is this: checkpoint65r (2015/12/21), seaice_lsr.F r1.119. I hope this helps. 

Martin

*** this will definitely change your results at the truncation level ***
checkpoint65m (2015/06/15)
o pkg/seaice:
  - seaice_calc_viscosity.F (r1.30): change computation of deltaC**2 to ensure
    positiveness, modify a few comments and improve variable names,
  - the changed computation of deltaC affects most seaice-related
    experiments at the truncation level.
    seaice_itd.thermo is affected by far the most, with
    only 7 digits of agreement remaining; update experiments.

*** this is unlikely a problem, but you never know, especially with the new parameter that may lead to a different default ***
checkpoint65n (2015/07/29)
o pkg/seaice:
  - Rename SEAICE_VECTORIZE_LSR_ZEBRA to SEAICE_LSR_ZEBRA and define it
    in lab_sea forward experiment (changes results -> updated)
o pkg/seaice:
    add new parameter SEAICE_deltaMin that is used ***only***
    for regularizing Delta (and nothing else, like the parameter
    which is also used for all sorts of things SEAICE_EPS).
    Defaults to SEAICE_EPS for backward compatibility only.

*** this should not affect your results, but it’s quite a big change to many subroutines (seaice_calc_lhs.F, seaice_dynsolver.F, seaice_evp.F, seaice_lsr.F, seaice_preconditioner.F) ****
checkpoint65o (2015/09/14)
o pkg/seaice: introduce new parameter SEAICEscaleSurfStress (default = .FALSE.)
  - if TRUE scale ice-ocean and ice-atmosphere stress acting on sea ice
    by AREA according to Connelly et al. (2004), JPO.
  - For EVP and the LSR solver, the implicit part of the drag term is
    the only non-zero term in the denominator when there is no ice (which
    prevented running the model with zero ice-ocean drag). If
    SEAICEscaleSurfStress = .TRUE., this results in a division by zero
    (or zero main diagonals BU/BV) which need to be caught. A practical
    consequence is that for open water, the momentum equation reduce
    to trivially 0 = 0 + 0 (for EVP). For LSR, BU/BV are reset to 1, if
    they happen to be zero, often leading to a non-zero solution over
    open water.

*** since you are using SEAICE_OLx/y=1, this is actually a very likely candidate, before that all LSR solutions with SEAICE_OLx/y>0 where clearly wrong (stripes in solutions along tile edges), JFNK solutions also improved, but not significantly, because LSR is only used as a preconditioner and the Newton step fixes this “automatically"***
checkpoint65r (2015/12/21)
o pkg/seaice: (seaice_lsr.F r1.119)
    fix bug in tridiagonal solvers for SEAICE_OLx/y>0, this affects the JFNK
    solver (offline.dyn_jfnk) and global_ocean.cs32x15.seaice -> updated

*** another candidate, but unlikely to have caused the large differences ***
checkpoint65t (2016/02/10)
o pkg/seaice/seaice_lsr.F: replace 1./SEAICE_deltaTdyn with recip_deltaT,
  affects some experiments at truncation level:
  - global_ocean.cs32x15.icedyn (11 digits),
  - global_ocean.cs32x15.seaice (11 digits),
  - seaice_itd (12 digits), seaice_itd.lipscomb07 (12 digits) -> update
  - also update global_ocean.cs32x15 adjoint and tangent-linear results


-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: changes_to_seaice.txt
URL: <http://mitgcm.org/pipermail/mitgcm-devel/attachments/20160629/59801116/attachment.txt>
-------------- next part --------------

> On 29 Jun 2016, at 01:34, Jean-Michel Campin <jmc at mit.edu> wrote:
> 
> Hi Martin,
> 
> I am trying to reproduce results from ~1.5 year ago (close to checkpoint65j), 
> with a 2-D (y-z) southern ocean channel, and am am getting very different seaice 
> velocity.
> I am using pkg/thsice thermodyn with pkg/seaice dynamics, deltaT=1.h
> and my data.seaice is attached.
> 
> I can reproduce the old results when I use:
> - full code from checkpoint65j (Feb 25, 2015) 
> - or just pkg/seaice from checkpoint65j into latest code
> 
> I made a short (10.iter) comparison between c65j (d12a) and latest code (d12c),
> starting from a pickup of the old run. The largest difference are on vIce as 
> seem on this plot (x-axis = latitude, magenta and red are d12a results
> at iter 1 and 9 respectively; green, yellow, ceilan and blue are d12c results
> at iter 1 3 5 and 9).
> 
> Do you have any suggestion of what could cause these large difference ?
> 
> Cheers,
> Jean-Michel
> <data.seaice><fig_uIce_d12.jpg>_______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel



More information about the MITgcm-devel mailing list