Skip to content
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

Check runoff mapping for multi-ice sheet cases #64

Open
2 tasks
billsacks opened this issue Sep 21, 2021 · 7 comments
Open
2 tasks

Check runoff mapping for multi-ice sheet cases #64

billsacks opened this issue Sep 21, 2021 · 7 comments

Comments

@billsacks
Copy link
Member

billsacks commented Sep 21, 2021

We're doing our initial development of Antarctica and multiple ice sheets with T and I compsets. A next step will be to check the glc -> ocn mapping in a B compset.

After generating runoff mapping files for Antarctica (https://github.com/ESMCI/cime/issues/4097), we should check:

  • Run a short B compset with Antarctica with test_coupling: Make sure the glc to ocn mapping looks reasonable. (This is to confirm that Antarctica and its related mapping files are set up properly to send runoff to the ocean. We may want to zero out other runoff or set glc's runoff to huge in order to be able to see this more clearly – i.e., so other land runoff doesn't contaminate the signal that we're looking for.)
  • Run a short B compset with both Greenland and Antarctica. The glc to ocean runoff over Greenland should pretty closely match that from a Greenland-only B case; and the glc to ocean runoff over Antarctica should pretty closely match that from an Antarctica-only B case. To check this, we should check the runoff that has been remapped to the ocean grid. As above, it may help to zero out other runoff sources for this test. The main point of this is to make sure that CMEPS is handling the multiple glc -> ocn runoff mapping files correctly.

Update 2024-06-05: see new plan in #64 (comment)

@billsacks billsacks changed the title Check runoff mapping for Antarctica and multi-ice sheet cases Check runoff mapping for multi-ice sheet cases Jun 5, 2024
@billsacks
Copy link
Member Author

@mvertens is reworking the GLC runoff generation to go to ROF rather than going directly to OCN. So that changes what's needed. I think the main need now is to confirm that the multi-ice-sheet handling of runoff fluxes is being done right. I think @mvertens has already tested this to some extent.

@mvertens - do you feel confident that the GLC -> ROF routing is working right now for multiple ice sheets? If not, a test I could see doing is:

  • Generate artificial, very large liquid and ice runoff fluxes from CISM. The values should differ (significantly) for ice and liquid, and also differ significantly for Greenland and Antarctica.
  • Do two B compset runs with a single ice sheet: one with Greenland, one with Antarctica
  • Do a B compset run with both Greenland and Antarctica
  • Compare the runoff that has been mapped to the ROF grid in the multiple ice sheet case: the Greenland runoff should (nearly) match that from the Greenland-only run, and the Antarctica runoff should (nearly) match that from the Antarctica-only run

@mvertens can you please comment on whether you feel you have done or plan to do sufficient testing of this, or if you'd like someone else to take on this testing?

@mvertens
Copy link
Contributor

mvertens commented Jun 5, 2024

@billsacks - I did the following test

  • Generate artificial, very large liquid and ice runoff fluxes from CISM. The values should differ (significantly) for ice and liquid, and also differ significantly for Greenland and Antarctica.
  • compset: 1850_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_CISM2%AIS-EVOLVE%GRIS-EVOLVE_SWAV
  • resolution: a%0.9x1.25_l%0.9x1.25_oi%null_r%r05_w%null_z%null_g%ais8:gris4_m%gx1v7
  • I modified the cism code to generate constant large ice and liquid runoff as follows in glc_import_export.F90
          where (icemask_coupled_fluxes > 0)
             rofl_to_cpl = 4.e-4
             rofi_to_ocn = 8.e-4
          endwhere

The input liquid and ice into mosart look as follows:
Screenshot 2024-06-05 at 10 10 48 PM

All liquid and ice runoff from glc are routed directly to the outlet points without entering the river network. All points that the river model things are 'ocean' are routed to themselves. Looking at the river routing file - all points in Antarctica are considered ocean my MOSART. However, rivers with associated outlet points are present in Greenland.

The routed values of liquid and ice look as follows:
Screenshot 2024-06-05 at 10 14 18 PM

So this validates that direct routing is working as expected.

@mvertens
Copy link
Contributor

mvertens commented Jun 5, 2024

@billsacks - in terms of the following tests

  • Do two B compset runs with a single ice sheet: one with Greenland, one with Antarctica
  • Do a B compset run with both Greenland and Antarctica
  • Compare the runoff that has been mapped to the ROF grid in the multiple ice sheet case: the Greenland runoff should (nearly) match that from the Greenland-only run, and the Antarctica runoff should (nearly) match that from the Antarctica-only run
    I was not planning to carry out further testing at this point and would like someone else to do these validations once I finish incorporating the new features that were requested by the OMWG.

@mvertens
Copy link
Contributor

mvertens commented Jun 6, 2024

@billsacks - thinking about this some more - I think that carrying out a B compset with both Greenland and Antarctica and comparing with single ice sheet runs should not give the same answers since the glc->ocn rof will be different in the two cases and the ocean will respond differently. I think we want cases where the ocean does not respond to the runoff that is being received from mosart from glc.

@billsacks
Copy link
Member Author

Thanks a lot for providing that information, @mvertens ! For the comparison of single ice sheet with multiple ice sheet runs, I was mainly thinking about this as a rough cut eyeball check to make sure, for example, that we aren't mixing up the two ice sheets somewhere in the code. So small differences due to feedbacks wouldn't be important, but it would help this test if there is significantly different runoff from Greenland and Antarctica.... Actually, one way to do this would be to do two multi-ice-sheet runs, one with big fluxes from Greenland and 0 from Antarctica, and one with the reverse.

Totally understood that you'd like someone else to do this test. And, honestly, I'm not sure if this test is worth doing: it's a little hard for me to imagine a scenario where there would be a mix-up in this respect (e.g., everything comes from the first glc instance in one part of the code, rather than being indexed properly by the glc number) without it causing a model crash or other obvious problem. So, based on your knowledge of the code, if you feel that a test like this is unnecessary, I'd go with your intuition. If you do feel like it's worthwhile, we can do that test on our end.

@mvertens
Copy link
Contributor

mvertens commented Jun 7, 2024

@ghoelzer @billsacks @mpetrini-norce @whlipscomb @gunterl @billsacks @Katetc

I did another test after our call that had the following compset and resolution and ran for 5 days:
--compset 1850_CAM60_CLM50%SP_CICE_BLOM_MOSART_CISM2%AIS-EVOLVE%GRIS-EVOLVE_SWAV
--res a%1.9x2.5_l%1.9x2.5_oi%tnx1v4_r%r05_w%null_z%null_g%ais8:gris4_m%tnx1v4

And changed CISM to send the same large forcings

where (icemask_coupled_fluxes > 0)
        rofl_to_cpl = 4.e-4
        rofi_to_ocn = 8.e-4
endwhere

The following shows the export to BLOM of the liquid rofl after 6 days from the mediator history file:
The mapping from rof->ocn is nearest neighbor plus smoothing.

Screenshot 2024-06-07 at 3 17 02 PM

I think this confirms that we are routing the data to the ocean correctly. Please let me know what others are thinking.

@billsacks
Copy link
Member Author

Awesome - thank you @mvertens !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: To do
Development

No branches or pull requests

2 participants