-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
"bad departure points" error in CICE #78
Comments
@aekiss when you get time could you take a look at the section "Choosing an appropriate time step" in the CICE manual, http://oceans11.lanl.gov/trac/CICE/attachment/wiki/WikiStart/cicedoc.pdf?format=raw ? Our current configuration looks OK to me however it does indicate that we could try modifying ndtd and/or ndte in the namelist. This is something that I did with the 0.25 ACCESS-CM, it can slow things down. |
Siobhan said: "Hi Andrew we had this on different grid (1degree ) it may be the channel issue as you say, it may be the ocean velocities have gone unstable as well, it was often near the start of the run when the concentrations were very low so they were accelerating very fast we did have upper limits set I though would work for all points but obviously not these. " |
Thanks @nicjhan I've tested ndtd = 2 (instead of 1). It runs ~1.7x slower so I've had to kill that test run and split it into individual months. These are queued, so I haven't yet confirmed that this fixes the crash (though I'm hopeful it will). This seems to indicate that CICE runtime is roughly proportional to ndtd, so we'd need to double its ncpus to 2400 to balance the load with MOM (optimistically assuming it scales linearly with ncpus), ie a 22% increase in total cpus. However if this also allows a longer dt (say 450s instead of the current 300s) it would make it cheaper to run overall (but harder to get through queue). |
Good news - running with ndtd = 2 (instead of 1) ran through Aug of year 5 with dt=300s, which wasn't possible with dt=240s in year 3 or 4. It is slower though: |
In this documentation: https://ncar.github.io/CICE/doc/build/html/users_guide/ice_nml_var.html#model-physics The calculation of the ice velocities is subcycled ndte times per timestep so that the elastic waves are damped before the next timestep. The subcycling timestep is calculated as
and must be sufficiently smaller than the damping timescale
This relationship is discussed in [6]. The best ratio for The pdf doc quoted above says:
Now according to @aekiss namelist comparison tool, the values in the models are:
There is also this:
I wonder if |
I think it would be just swings and roundabouts altering ndtd is the obvious change here, 120 iterations is the normal amount the real issue is that by having the tripole so close to this point you have very small grid resolution O (1km) so it wants to move more one grid box when there is a strong low pressure system there, you could limit the max velocity that it can calculate, we had already done that for the 1 degree and I think Nic put it in the 0.25 system 3m/s is too fast. I will look up the code. its probably in already if you based it on the 0.25 version, you may want to set different limits to get round this point. I don't think we want to shift the tripole a bit further into the land |
Was there anything in ice_dyn_shared in subroutine stepu to limit the ice velocity #ifdef AusCOM vel_max was set to 5.0m/s but it could be set lower in your case as it looks like that was still to high in the Canadian Archipelago with such small grid boxes. Our case was the open ocean at the start of spin up. |
My point, though badly made, was the documentation says "In practice, the ratio ∆te : T : ∆t = 1 : 40 : 120 provides both stability and acceptable efficiency for time steps (∆t) on the order of 1 hour." We are not in a regime with time steps on the order of 1 hour. So I wondered if there had been recommendations for other regimes. What is the damping timescale for this regime? If we don't need to iterate for as long to damp, then we can boost |
I think from my reading and looking at all the other places in the code when they are used they are interchangeable, Aidan, Its just been traditional to have 120 iterations on the evp loop in most circumstance I have seen. You could give it a try don't think it will alter things and it might be a while before you spot instabilities showing up. Not as obvious as this. Limiting the velocities for this small grid spacing makes more sense we did it in the coupled model at the initialisation when the atmosphere and ocean where slightly mismatched and strong winds were over newly freezing ice with very low concentration so the ice shot off at speed. The point about shifting the tripole, when we put it in the Canadian Archipelago we were at 1 degree other groups have it slightly shifted more into Canada. So would have been less islands to worry about and less passages, but we were always worried about the effect of those smallest grid boxes. |
Thanks for the feedback Siobhan. Reducing the max ice velocity as you suggest sounds like the best way forward. |
Thanks Siobhan. I was thinking of using Rayleigh damping in this region. Would that be preferable to a velocity cap? |
EDIT: ======================== Thanks Aidan, good question, I've had a close look at this now. Short answer - no, we shouldn't decrease ndte when we decrease dt (but we may need to increase ndte in proportion to ndtd). The details: Firstly, there are mistakes in sec 4 of the CICE manual, which uses dt_dyn in several places where it should be dt for consistency with the code (and sec 3.5 in the manual). We are using "classic EVP" (kdyn = 1, revised_evp = .false.). Not sure if that's an optimal choice, but that's a separate question. so We don't explicitly set eyc, but the default is 0.36. Note that dte : T : dt = 1 : eyc.ndte : ndte is independent of the thermo timestep dt so we shouldn't reduce ndte for the high-resolution runs which have smaller dt. I think the same argument should also apply to the dynamics timestep, ie we should have T : dt_dyn much less than 1 (say, 1:3 to match T : dt) so that the dynamics also doesn't see the elastic waves. If this is the case we should increase ndte in proportion to ndtd - which would be unfortunate, as it would slow things down even more. |
In Answer to aekiss Raleigh friction will slow down the ocean velocity under the ice but is sounded like this problem was set off by an atmospheric low pressure system so you may still need a velocity cap in the ice as the ocean velocity may be acting to slow the ice down not speeding it up, depending on the balance of terms, locally. |
Hi @ofa001 our present code does not include a vel_max velocity limiter in subroutine stepu but I could add one and a namelist variable |
Closing this old issue. We have found |
ACCESS-OM2-01 crashed on 12 Aug in both year 3 and 4 when running with dt=300s.
The error reported in
access-om2.err
in year 3 is:bad departure points
error is triggered in ice_transport_remap.F90.Seems to occur when advective velocity is excessive, carrying ice more than one grid cell (line 1563, subroutine departure_points: https://github.com/OceansAus/cice5/blob/49b36d4bfb97328e818d428d0b8438144dbd69a1/source/ice_transport_remap.F90#L1563).
vvel = 3.71828483289453 (m/s presumably) - seems pretty fast
yields dpy(i,j) = -dt*vvel(i,j) = -1115.48544986836 < -HTE = -1030.
Location (i,j)=(1726,2671) is in the Canadian Archipelago, apparently southeast of Victoria Island.
HTE = 1030m is a very small grid spacing for the ocean - I guess the grid is extra fine there near the tripole.
Year 4 crashed on the same day (12 Aug) at nearly the same point, (i,j)=(1720, 2676).
/g/data1/ua8/JRA55-do/RYF/v1-3/*.1984_1985.nc
seems to show the passage of a low pressure system (~990hPa) on 11-12 Aug in that location, with strongish (~10m/s) winds swinging from southeasterly to southwesterly.Crashed runs are stored in
/short/v45/aek156/access-om2/control/01deg_jra55_ryf/work-3208848
and/short/v45/aek156/access-om2/control/01deg_jra55_ryf/work-3322545
Reducing timestep to dt=240s allowed the simulation to progress through Aug in both year 3 and 4. It is happy with dt=300s in every other month and did not crash in Aug of year 1 or 2.
It would be good to have dt=300s (or more!) for all months.
Should we consider Rayleigh drag in this region, or changing the topography?
This same error seems to have also occurred in May-June of year 5 with dt=450s, although at a different location (i,j)=(3515, 2297), at the head of the Gulf of Ob - see https://github.com/marshallward/payu/issues/96
The text was updated successfully, but these errors were encountered: