CICE-Consortium/CICE

dynamics U points are active when T points are not

TillRasmussen opened this issue · 6 comments

According to the formulation of the U points should not be the active when T mask is not. This is the case and the reason is that aice_init is used to find the ice concentration at U points and aice is used to find the ice concentration at T points. This is inconsistent and I think that is a bug. The fix is easy ensure that the same ice concentrations are used in the evp, eap and the vp subroutines.
My guess is that it is aice that should be used but I would like an opinion from others before I change it.

An example where this issue occur is the test.
freya_gnu_smoke_gx3_8x2_diag24_medium_run1year_debug.baseline_dump_debug
It happens in many other test as well.
Som output
aiX(i,j) , Xmass(i,j) ! average of mass and ice concentration in U point
0.10282E-02 0.62235E-01
The following values are the following points
(i-1, j+1), (i, j+1), (i+1, j+1)
(i-1, j ), (i, j ), (i+1, j )
(i-1, j+1), (i, j+1), (i+1, j+1)
aice
0.42316E-04 0.42015E-03 0.41475E-04
0.95482E-04 0.18367E-03 0.24394E-03
0.13911E-05 0.61725E-05 0.13087E-04
aice_init
0.44378E-04 0.44704E-03 0.35680E-02
0.96238E-04 0.18468E-03 0.24933E-03
0.14013E-05 0.62042E-05 0.13143E-04

aiX is the average of the 4 upper right points ((i, j+1), (i+1, j+1) (i, j ), (i+1, j )) and T uses

I'm not sure this is a bug. The point is you may have a change in ice concentration in a cell, and we have a region around the edge of the ice pack where we still compute the velocities so we have something to advect the ice in our out. @eclare108213 can expand on this.

That's true, we do have a row of cells around the edge of the pack to allow advection there. So I guess the possibility is that there's a cell in that row, which is empty of ice, but it's neighboring cells receives ice by advection and therefore the U point between them becomes active. That would make sense. But when the ice T- and U-masks are defined, I don't think this should be true. @TillRasmussen is this coming up immediately after new ice masks are defined, or later?

I added a check just after the umask/iceXmask was calculated.

See branch
https://github.com/TillRasmussen/CICE/tree/TU_MASK
file ice_dyn_shared.F90
subroutine dyn_prep2 line 687

@eclare108213, @dabail10 I have looked a bit more at this and It extends a bit more than just the t and u mask. It also means that stresses (indirectly from calculations of seabed_stress and strength) and velocities (step_u) are based on different ice concentrations.

Just getting back to this one. Do we have a fix?