-
Notifications
You must be signed in to change notification settings - Fork 131
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
Instability at the coast in idealized C-grid eastblock simulation. #976
Comments
atm_data_type = 'uniform_NWW'. |
Ok I can really simplify the problem. Even with Pstar=0 it still crashes. |
Keeping Pstar=0, I also set Here is vvelN after 3 days Notice the diff range of values. I just want to show that vvelN is different at the ice edge. It should not. It should be equal to the freedrift velocity. This is certainly related to our treatment of uvelE,vvelN at the ice edge. |
Ok the problem is clearly not related to the remapping. It also crashed with upwind. |
Ok I am able to correct the problem with ktransport=kridge=-1 for the diff velocities at the edge. At a point i,j (N) on the north edde, uN is (uEij+uEi-1j+0+0)/4. If I just use the ice points to calc uN, i.e. uN=(uEij+uEi-1j)/2 and I do the same thing for vE I get the following: It is the freedrift velocity everywhere. |
Using this new code, it still crashes with ktransport=kridge=1. Looks like there is another problem...My bet is that it is related to the concentration used to calculate the wind stress and the water stress. With all the simplifications done, at steady state the balance is only between these two terms. |
At steady-state aicetauair = aicetauw. My guess is that aice on the LHS .ne. aice on RHS. In stepu_C and stepv_C I forced aice on both sides to be equal to 1. The problem disappears... |
Ok I think that aicetauair is only calculated at the beginning...i.e. aice = aice_init (constant in time). When solving for uvelE,vvelN at steady-state we would have: tauw = aice_init x tauair / aice When aice is small this can lead to large unrealistic velocities. |
@apcraig am I right that in idealized experiments such as the one described above aicetauair is only calculated once in uniform_data_atm and held fixed for the rest of the simulations? |
I just checked and the problem also affects the B-grid. The model also crashes. |
I don't know the answer for sure. But it looks like uniform_data_atm is called as part of the initialization (init_forcing_atmo) and during the run (get_forcing_atmo). When you added the "uniform_NWW" option, did you add it to both of those subroutines? |
I guess I created the bug with my new wind stress! Sorry about that. Good to see that the idealized test cases are ok. I will also modify it in get_forcing_atmo. Thanks! |
I am closing this issue as it was not a real instability. The only thing interesting here is the alternative calculation of uN and vE as explained above. This could be useful for issue #713. |
While investigating issue #970 there was a crash after a few days with a negative area. I think this is different then all the cases we have seen before with the EFA method as these were related to the non-uniform grid and involved realistic velocities.
In this case the grid is uniform with dx=dy=16 km. The velocities are however unrealistic with some values 10 times larger than freedrift. This could be related to the problem seen by @daveh150 (issue #941).
The exp is:
./cice.setup --case INSTAB -g gbox80 -m ppp6 -e intel -p 1x1 -s boxforcee,boxclosed,buildincremental
I setup in ice_in the following:
ice_data_type = 'eastblock'
ice_data_conc = 'c1'
ice_data_dist = 'uniform'
Note that seabed_stress = .false.
With uniform_west (block drift away from the coast) there is no crash. I found the problem because I created a new idealized wind: NWW: uatm = -atm_val, vatm = -atm_val
The text was updated successfully, but these errors were encountered: