Add Tf to icepack interface calls and constant tfrz_option.#103
Conversation
eclare108213
left a comment
There was a problem hiding this comment.
I just have some picky comments. Otherwise this looks good.
| if (trim(tfrz_option) == 'minus1p8') then | ||
| tmpstr2 = ' : constant ocean freezing temperature (-1.8C)' | ||
| elseif (trim(tfrz_option) == 'constant') then | ||
| tmpstr2 = ' : constant ocean freezing temperature (Tocnfrz)' |
There was a problem hiding this comment.
Suggestions for the diagnostic output
- write out what the value of Tocnfrz is, here
- switch the order of the logic:
if ... 'constant'thenelseif ... 'minus1p8'and add a comment that this base is for backwards compatibility and will be deprecated
apcraig
left a comment
There was a problem hiding this comment.
I confirmed the Icepack hash independently and am running a small-ish test suite now, but this looks fine. Will merge once minor changes are made and @eclare108213 approves.
|
I ran Icepack before and after the Tf addition, that's entirely bit-for-bit for the full icepack test suites on cheyenne with 3 compilers. I ran the quick_suite and base_suite on cheyenne+gnu, and I do not get bit-for-bit for all cases. The following cases are NOT bit-for-bit, This has to do with the changes in E3SM-Project/Icepack#10 and not these mods. |
|
Ok. I fixed the indents and messages. Also, I added Tf to the icepack_aggregate calls in the drivers and unittests. |
|
I'm wondering if we should add the hin_min namelist and get things bit-for-bit for all cases now. This is unrelated to the Tf changes, but does need to be done as part of the update of Icepack. That could be part of this PR or a separate one. Maybe I'll add that change and push to this branch before we merge, is that OK @dabail10? |
|
That sounds fine. |
|
Checking the CICE results carefully. There are some cases that are not bit-for-bit due to changes in the Icepack Tf implementation. Have figured out why, need to run a few more tests. More soon. |
- Update tfrz_option, add _old options for backwards bit-for-bit - Fix unittests - Add hi_min to namelist and tests
|
Just FYI, I rebased this branch and force pushed, so history changed, but just on this branch. |
|
The last thing to do is add the updated Icepack, waiting on E3SM-Project/Icepack#14 to be merged. Then I'll update Icepack here and retest everything. |
eclare108213
left a comment
There was a problem hiding this comment.
There is a mix of values here for hi_min, sometimes 0.1, sometimes 0.01. Is that intentional?
Yes, that is consistent with the values that were hardcoded before for certain configurations. Now we have to set it in the namelist. It's possible those are not ideal or best values, but this is just testing. The default is basically 0.01 and a few cases use 0.1, as before. |
|
Okay, just checking! |
|
The latest implementation is bit-for-bit on cheyenne with 3 compilers, https://github.com/CICE-Consortium/Test-Results/wiki/cice_by_hash_forks#218c05125c9632886db26abeb0d4ec7ded72a6ef with the following caveats
This is still bit-for-bit with the Consortium main #422117f from Oct 6, see #102. It's rather curious that only some of the test cases require the _old tfrz_option setting while others do not. Also, the 10 year run does diverge after 3 years. So these changes and their fixes to recover bit-for-bit must not be perfect. There still is likely a change in the computation somewhere. The _old tfrz_options should be removed at the appropriate time. This is ready for review/merge. I'll wait until the end of the day to merge in case there are any additional comments/concerns. |
|
I'm not sure what to suggest. Perhaps an ice free cell is being set to the new freezing point and then it grows ice? I don't know why it would take three years though. Regardless, this is the right thing to do. |
For detailed information about submitting Pull Requests (PRs) to the CICE-Consortium,
please refer to: https://github.com/CICE-Consortium/About-Us/wiki/Resource-Index#information-for-developers
PR checklist
Add Tf to icepack interface calls and constant tfrz_option.
dabail10 (D. Bailey), apcraig
Latest implementation is bit-for-bit on cheyenne with 3 compilers, https://github.com/CICE-Consortium/Test-Results/wiki/cice_by_hash_forks#218c05125c9632886db26abeb0d4ec7ded72a6ef with the following caveats
This changes answers in that all of the temperatures at open ocean points change for tfrz_option not equal to 'minus1p8' in the history and restart files. The run log files are bfb.