CICE-Consortium / Icepack

Development repository for sea-ice column physics
Other
25 stars 131 forks source link

BGC update #497

Closed apcraig closed 2 days ago

apcraig commented 1 month ago

PR checklist

This is a significant update in the BGC including refactoring Icepack interfaces.

We still need to

Closes #180

apcraig commented 1 month ago

I ran a full test suite on Derecho with intel, gnu, cray, nvhpc, intelclassic, and inteloneapi compilers. All tests pass and are bit-for-bit except bgc tests. All bgc tests change answers (as expected) and 8 of the 36 bgc tests do not run (see below). The bgcsklnice test fails on 4/6 compilers. The cray compiler runs the bgcsklnice cases but fails on the bgcispol and bgcnice cases. See https://github.com/CICE-Consortium/Test-Results/wiki/icepack_by_hash_forks#3a8b2f99c8f6d30837ca9645ce0a31bb912eb0f3.

PASS derecho_intel_smoke_col_1x1_bgcispol_debug test
PASS derecho_intel_smoke_col_1x1_bgcnice_debug test
FAIL derecho_intel_smoke_col_1x1_bgcsklnice_debug test
PASS derecho_intel_restart_col_1x1_bgcispol test 
PASS derecho_intel_restart_col_1x1_bgcnice test 
PASS derecho_intel_restart_col_1x1_bgcsklnice test 
FAIL derecho_cray_smoke_col_1x1_bgcispol_debug test
FAIL derecho_cray_smoke_col_1x1_bgcnice_debug test
PASS derecho_cray_smoke_col_1x1_bgcsklnice_debug test
FAIL derecho_cray_restart_col_1x1_bgcispol test 
FAIL derecho_cray_restart_col_1x1_bgcnice test 
PASS derecho_cray_restart_col_1x1_bgcsklnice test 
PASS derecho_gnu_smoke_col_1x1_bgcispol_debug test
PASS derecho_gnu_smoke_col_1x1_bgcnice_debug test
FAIL derecho_gnu_smoke_col_1x1_bgcsklnice_debug test
PASS derecho_gnu_restart_col_1x1_bgcispol test 
PASS derecho_gnu_restart_col_1x1_bgcnice test 
PASS derecho_gnu_restart_col_1x1_bgcsklnice test 
PASS derecho_nvhpc_smoke_col_1x1_bgcispol_debug test
PASS derecho_nvhpc_smoke_col_1x1_bgcnice_debug test
PASS derecho_nvhpc_smoke_col_1x1_bgcsklnice_debug test
PASS derecho_nvhpc_restart_col_1x1_bgcispol test 
PASS derecho_nvhpc_restart_col_1x1_bgcnice test 
PASS derecho_nvhpc_restart_col_1x1_bgcsklnice test 
PASS derecho_intelclassic_smoke_col_1x1_bgcispol_debug test
PASS derecho_intelclassic_smoke_col_1x1_bgcnice_debug test
FAIL derecho_intelclassic_smoke_col_1x1_bgcsklnice_debug test
PASS derecho_intelclassic_restart_col_1x1_bgcispol test 
PASS derecho_intelclassic_restart_col_1x1_bgcnice test 
PASS derecho_intelclassic_restart_col_1x1_bgcsklnice test 
PASS derecho_inteloneapi_smoke_col_1x1_bgcispol_debug test
PASS derecho_inteloneapi_smoke_col_1x1_bgcnice_debug test
FAIL derecho_inteloneapi_smoke_col_1x1_bgcsklnice_debug test
PASS derecho_inteloneapi_restart_col_1x1_bgcispol test 
PASS derecho_inteloneapi_restart_col_1x1_bgcnice test 
PASS derecho_inteloneapi_restart_col_1x1_bgcsklnice test 
apcraig commented 6 days ago

I have updated the three bgc parameters and fixed some of the documentation problems. With regard to the boxes on the PR page, I think most are done. I will do some final testing as we approach the merge, but testing is now working well. Will we want a new validation run, three bgc parameters have changed values? Finally, while skl is currently deprecated on the branch, do we want to continue to work on that?

apcraig commented 6 days ago

I ran a full test suite last night on Derecho with 5 or 6 compilers for Icepack and CICE. The test results look good. So, I think we're close and this is where we are

njeffery commented 6 days ago

@apcraig & @eclare108213 : I'll do some testing of the zaerosol only case from the E3SM side and see if I can reproduce the conservation errors. chrysalis is slow, though. I don't know that this PR should wait.

apcraig commented 6 days ago

Thanks @njeffery. With the zaerosol test, does the snow need to be on or off or maybe either?

njeffery commented 6 days ago

Both should work. I'm testing with the snow on.

apcraig commented 5 days ago

I have added zaero configuration and tests. I ran with both snow on and off, both run to completion in Icepack and CICE but all zaero tests generate conservation errors. But the new tests are running and have been added which I think is good.

njeffery commented 5 days ago

@apcraig : Great! thanks for adding those tests.

My E3SM ocean-ice test case with zaeros active but no sea ice bgc has gone 4 years without any error messages. When do the error messages first appear in Icepack? I'm wondering if there is an initial condition problem for the Icepack test cases.

apcraig commented 5 days ago

OK, I think this could be ready to merge.

@njeffery, @eclare108213, please approve this and the CICE PR if you think they are ready to merge.

apcraig commented 5 days ago

@njeffery. The conservation errors appear at every timestep in Icepack and CICE with the zaero configuration. I did a test last week where I set the zaero forcing to 0 by changing

    faero_atm(:,:,1,:) = 1.e-12_dbl_kind ! kg/m^2 s                                                                             
    faero_atm(:,:,2,:) = 1.e-13_dbl_kind
faero_atm(:,:,3,:) = 1.e-14_dbl_kind
    faero_atm(:,:,4,:) = 1.e-14_dbl_kind
    faero_atm(:,:,5,:) = 1.e-14_dbl_kind
    faero_atm(:,:,6,:) = 1.e-14_dbl_kind

to

    faero_atm = 0.0_dbl_kind

The conservation errors went away. Of coarse, the aerosol tracer remained identically zero throughout as well, so maybe not very useful.

Could it be that something about HOW I'm running the cases is incorrect. I will send output from those cases via email separately.

apcraig commented 5 days ago

The conservation errors have been fixed. I needed to run nblyr=7 instead of 1. That has been checked in and the zaero cases are now running with NO conservation errors.

njeffery commented 5 days ago

Awesome!