ESMG / SIS2

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

Icepack #1

Closed MJHarrison-GFDL closed 3 years ago

MJHarrison-GFDL commented 3 years ago
Modifications to enable Icepack APIs for ridging.

  - These modifications enable ridging code for SIS2 C-grid
    configurations (not yet implemented for B-grid) using APIs
    provided by the Icepack module from the CICE consortium
    (https://github.com/CICE-Consortium/Icepack)
  - These APIs are reproduced in the config_src/external/Icepack
    directory in order to remove SIS2 dependency on Icepack by default.
    In order to activate Icepack, remove the config_src/external/Icepack
    diretory from your compile list, compile a shared Icepack library
    and link to SIS2.
  - Sea-ice ridging rate diagnostics (rdg_rate) report the fractional
    rate of sea-ice coverage decrease (s-1) due to the ridging scheme.
  - WARNING:Sea-ice enthalpy diagnostics indicate a decrease in numerical closure
    from roundoff (10-17) without ridging enabled to values greater
    than roundoff (10-7) in initial testing. Mass and salinity,
    however, are consistent to roundoff. The issue should be addressed
    before using this option to generate scientific results.
  - The default Icepack ridging options are enabled.  Additional options
    can be enabled easily using the SIS_parameter file and calls to
    icepack_init_parameters
kshedstrom commented 3 years ago

Matt, are you getting ice concentrations above 1.0? I am. It's going above 2.5 for me in the Bering domain.

kshedstrom commented 3 years ago
Screen Shot 2021-03-13 at 7 53 38 PM

Here's the value of part_size for some point that both SIS2 and Icepack are complaining about. Negative ocean fraction!

MJHarrison-GFDL commented 3 years ago

Matt, are you getting ice concentrations above 1.0? I am. It's going above 2.5 for me in the Bering domain.

Kate, I only have enough OBC/river data to do a single day test. No errors reported within day 1. At what point in the run does this appear for you?

seaice.stats (LEMIEUX_LANDFAST = True)

 0,  734501.000,      0, Area 1.1214373381347363E+12 0.0000000000000000E+00, Ext 1.2228E+12 0.0000E+00, CFL 0.240, M 7.01969E+14 0.00000E+00, Enth -2.52040E+20  0.00000E+00, S   2.9410  0.0000, Me  0.00E+00, Te  0.00E+00, Se  0.00E+00
 6,  734501.250,      0, Area 1.1132647984668135E+12 0.0000000000000000E+00, Ext 1.2280E+12 0.0000E+00, CFL 0.197, M 7.06922E+14 0.00000E+00, Enth -2.53833E+20  0.00000E+00, S   2.9416  0.0000, Me -7.75E-18, Te -1.98E-07, Se -9.55E-18
12,  734501.500,      0, Area 1.1114046213255344E+12 0.0000000000000000E+00, Ext 1.2264E+12 0.0000E+00, CFL 0.124, M 7.12079E+14 0.00000E+00, Enth -2.55647E+20  0.00000E+00, S   2.9423  0.0000, Me  3.48E-18, Te -1.86E-07, Se -5.56E-18
18,  734501.750,      0, Area 1.1143215648800378E+12 0.0000000000000000E+00, Ext 1.2254E+12 0.0000E+00, CFL 0.178, M 7.17263E+14 0.00000E+00, Enth -2.57444E+20  0.00000E+00, S   2.9430  0.0000, Me  4.12E-18, Te -1.64E-07, Se  4.96E-18
24,  734502.000,      0, Area 1.1112426645431003E+12 0.0000000000000000E+00, Ext 1.2233E+12 0.0000E+00, CFL 0.210, M 7.22373E+14 0.00000E+00, Enth -2.59196E+20  0.00000E+00, S   2.9436  0.0000, Me  1.87E-18, Te -1.91E-07, Se  4.76E-18
kshedstrom commented 3 years ago

I am starting from a restart in late December, once some ice has formed. I'm getting the errors pretty much right away. Raf and Bob have an OBC file that goes through all of January. Can you ask them for it?

MJHarrison-GFDL commented 3 years ago

I am also starting with initial conditions from 12/31/2011. Adjusted the date to 1/1/2012 and now able to run a 10 day test.

I get 3 warnings from icepack starting around day 7

(ridge_shift) Ridging error: aice0 < 0 (ridge_shift)aice0: -2.7386816669912480E-005 (icepack_warnings_aborted) ... (ridge_ice) (ridge_shift) Ridging error: aice0 < 0 (ridge_shift)aice0: -2.2426003967072654E-005 (icepack_warnings_aborted) ... (ridge_ice) (ridge_shift) Ridging error: aice0 < 0 (ridge_shift)aice0: -2.0057528930384004E-005 (icepack_warnings_aborted) ... (ridge_ice)

kshedstrom commented 3 years ago

This is the state of that same point before the first call to ice_ridging:

Screen Shot 2021-03-15 at 9 39 31 AM

chinook03.rcs.alaska.edu 202% git branch

MJHarrison-GFDL commented 3 years ago

Applied a re-normalization of part sizes after call to ridge_ice necessitated by small residual excess cover.

P.S. - Have you tried switching to higher order thickness advection and continuity in SIS2? Doing so gave much thicker ice in my tests (5x max).

kshedstrom commented 3 years ago

I have not tried other advection schemes - good idea.

The ice fraction larger than one is not in the restart file. It is happening in ice_cat_transport, where m_ice started as 72.3 and goes to 73.6 while mh_ice started at 73.44 and goes to 72.94. The part_size array then gets filled in in the call to cell_ave_state_to_ice_state. In single-category ice models, you advect everything, then bring ice concentration back to 1.0 or less by brute force. @Hallberg-NOAA would know how SIS2 does it.

kshedstrom commented 3 years ago

OK, so the ice concentration greater than one is a cue to the ridging scheme to ridge. I'm still getting some small amount of ice concentrations over 1.0, but just barely so.

MJHarrison-GFDL commented 3 years ago

Yes. I was seeing values O(10^-5) after calling ridging. I re-normalized before applying back to the ice state and that fixes the issue in my tests with no loss in precision.

https://github.com/MJHarrison-GFDL/SIS2/blob/Icepack/src/ice_ridge.F90#L447

Hallberg-NOAA commented 3 years ago

Hi,

The "old Russian scheme" that SIS2 was using for ridging just compresses (and thickens) the ice starting with the thinnest categories as a crude form of ridging, but it is very effective at resetting the concentrations back to 1. If the IcePack ridging scheme is close to doing the job but does not always give values less than 1, maybe we could consider applying the "old Russian scheme" after the physically based IcePack ridging to clean up these small overshoots.

NOAA GFDL || Phone: (609) 452-6508 Princeton University Forrestal Campus || Cell: (732) 599-0459 201 Forrestal Road || Fax: (609) 987-5063 Princeton, New Jersey 08540-6649 || Email: @.***

On Wed, Mar 17, 2021 at 4:48 PM Matthew Harrison @.***> wrote:

Yes. I was seeing values O(10^-5) after calling ridging. I re-normalized before applying back to the ice state and that fixes the issue in my tests with no loss in precision.

https://github.com/MJHarrison-GFDL/SIS2/blob/Icepack/src/ice_ridge.F90#L447

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ESMG/SIS2/pull/1#issuecomment-801433006, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABR2BFP2U32RHI3QH4KGUMTTEEITFANCNFSM4ZD4GWQQ .