NOAA-GFDL / SIS2

NOAA-GFDL's Sea Ice Simulator version 2
Other
16 stars 43 forks source link

New ridging options not all that stable in SIS2 #178

Open kshedstrom opened 2 years ago

kshedstrom commented 2 years ago

I bring this up because the old ridging options are being obsoleted in Icepack. In my experience, both NEW_RIDGE_REDISTRIBUTION and NEW_RIDGE_PARTICIPATION can lead to random blow-ups. For example:

WARNING from PE     4: Negative ice volume after ridging:    181    13    9.2766E-57 -7.3863E-67
FATAL from PE     4: Input to adjust_ice_categories, non-zero snow mass rests atop no ice.
kshedstrom commented 2 years ago

I talked them out of obsoleting it for now.

MitchBushuk commented 2 years ago

Thank you Kate, much appreciated. I have also been running into the same issue in SIS2/MOM6 experiments, generally with the following error: WARNING from PE 513: Negative ice thickness at: 92 237 4 -1.0998E-65 FATAL from PE 513: Negative thickness input to ice_continuity().

I have found that the model runs successfully with NEW_RIDGE_PARTICIPATION=true and NEW_RIDGE_REDISTRIBUTION=false. But any configuration with NEW_RIDGE_REDISTRIBUTION=true has been crashing due to tiny negative thickness values. I tried setting the CONTINUITY_H_NEGLECT parameter to a small positive value (1e-20), but this did not prevent the error. I also tried some different options for SIS_THICKNESS_ADVECTION_SCHEME and SIS_CONTINUITY_SCHEME but those also didn't seem to help.

kshedstrom commented 2 years ago

In my code, there's a max function so that vicen coming out of the ridging can't be negative. Then I've got an ice category with no ice, but some remnant snow. That should be fixable.

Yes, one of those options is more troublesome than the other, but I did have them both independently go bad on me at least once.

kshedstrom commented 2 years ago

I added this to the if block on negative ice:

            vicen(k) = 0.0 
            vsnon(k) = 0.0

With both:

#override NEW_RIDGE_REDISTRIBUTION = True
#override NEW_RIDGE_PARTICIPATION = True

My Bering domain runs through the winter (with plenty of warnings), then dies in June with:

FATAL from PE    22: Negative thickness input to ice_continuity().
MJHarrison-GFDL commented 2 years ago

May be worth merging the latest SIS2 code on the dev/gfdl branch where I corrected an error in the "trcrn" stack for SST which isn't used in the ridging scheme, but can cause a problem due to unitialized array access. @kshedstrom - what about aicen ?

kshedstrom commented 2 years ago

Good idea, @MJHarrison-GFDL, but it didn't change what happened.

MJHarrison-GFDL commented 2 years ago

I updated Mitch's case, which failed previously, with the latest MOM6/SIS2 code. containing #179 . The error remains, so that is not the problem. DDT next ...

MJHarrison-GFDL commented 2 years ago

@kshedstrom @MitchBushuk #184 addresses this issue and appears to work based on my tests with Mitch's SPEAR configuration.

Hallberg-NOAA commented 2 years ago

@kshedstrom, can you confirm that this issue was addressed by https://github.com/NOAA-GFDL/SIS2/pull/184, and hence can be closed?