ESCOMP / CAM-SIMA

Community Atmosphere Model - System for Integrated Modeling of the Atmosphere
3 stars 11 forks source link

Update CAM-SIMA to run Kessler and Held-Suarez bit-for-bit with CAM #232

Closed nusbaume closed 9 months ago

nusbaume commented 9 months ago

This PR introduces a large number of standard name and other changes to allow one to run the new Kessler and Held-Suarez physics suites with CAM snapshots, and to ensure that they are bit-for-bit with CAM's results.

This PR also ensures that the SE dycore still runs with both Held-Suarez and Kessler physics suites (but it's values can't be formally checked yet due to the dycore being out-of-sync with CAM).

This PR also performs some code clean-up, and adds the ability for check_field to print the location (as an MPI rank, array column, and vertical level) of the maximum difference for each variable, which should help with debugging.

closes #210

Tests run

Ran single timestep FPHYStest runs with CAM snapshots for Held-Suarez and Kessler with GNU on Derecho with the ne3pg3 grid, and got bit-for-bit results. Also ran FHS94 and FKESSLER compsets with the ne5pg2 grid and the GNU compiler for five timesteps each, and both ran successfully.

nusbaume commented 9 months ago

The test failures in python 3.12 are due to issues with ParamGen in CIME using a deprecated package. I'll try to get that fixed and the CIME external updated, but if I don't get there in time I'll just remove python 3.12 from the testing options, at least for now.

So feel free to ignore those failures when reviewing. Thanks!

nusbaume commented 9 months ago

All test failures have been fixed now, so this PR should be ready for review. Thanks!

nusbaume commented 9 months ago

@mwaxmonsky if you get the chance can you approve or re-review this PR? I am trying to avoid breaking too many of my own rules.

nusbaume commented 9 months ago

@mwaxmonsky it looks like you resolved your concerns earlier, and since I am hoping to have this repo ready for the presentation in the next 40 minutes I am going to go ahead and break my own rules and get this merged in. Of course feel free to still review the code if you want and let me know if there is anything problematic (as we can always open another PR). Thanks!