ESMCI / cime

Common Infrastructure for Modeling the Earth
http://esmci.github.io/cime
Other
161 stars 206 forks source link

Add back changes from PR4497 #4540

Closed fischer-ncar closed 8 months ago

fischer-ncar commented 9 months ago

Put back in changes for PR #4497.

From PR #4497. The update is needed for use with GEOS-Chem chemistry so that run-time configuration files can be copied to the case directory upon case setup. This PR should be merged along with CAM PR https://github.com/ESCOMP/CAM/pull/484 at the same time.

Test suite: Test baseline: Test namelist changes: Test status: [bit for bit, roundoff, climate changing]

Fixes [CIME Github issue #]

User interface changes?:

Update gh-pages html (Y/N)?:

lizziel commented 8 months ago

This update will be needed soon as the GEOS-Chem PR is in the final test phase. See https://github.com/ESCOMP/CAM/pull/484. @fischer-ncar, @fvitt, @jedwards4b

fvitt commented 8 months ago

Will the copy happen only for GEOS-Chem compsets or all compsets? Why can't cam copy files over? Why do we need cime to do this?

jedwards4b commented 8 months ago

@fvitt cime is invoking a new script in the cam tree called cam_case_setup.py - if you can do this without a change in cime I think that would be preferable.

gold2718 commented 8 months ago

Why can't cam copy files over? Why do we need cime to do this?

I think the issue is when will CAM have a chance to copy these files and is it soon enough? These files are similar in purpose and timing to the user_nl_xxx files such as user_nl_cam. In the CIME world, users are supposed to be able to edit these files before any CAM script (buildlib or buildnml) has been run which is why CIME is installing the user_nl_xxx files and not each individual component. This is the same reason that the same script installs the cism_template file.

gold2718 commented 8 months ago

Will the copy happen only for GEOS-Chem compsets or all compsets?

If you look at cam.case_setup.py in the CAM PR, you can see that it only copies files if -chem geoschem is specified.

lizziel commented 8 months ago

The original implementation had the copy done by CAM within buildnml. See https://github.com/CESM-GC/CAM/blob/e2f974419dcb08ef7cbb49b2d4ebb757f3128dc9/cime_config/buildnml#L179-L199. The CIME update seems more elegant because it allows invoking component-specific instructions for case setup. Perhaps it could be updated to not require a case setup script in CAM.

fvitt commented 8 months ago

OK. Thanks for the explanations.

jedwards4b commented 8 months ago

@fischer-ncar I think that if you merge cime master into this branch and push a new commit the unit-testing will pass, e3sm is currently a known failure.