GEOS-ESM / GEOSgcm_GridComp

Repository containing the physics and IAU code for the GEOS Earth System Model
Apache License 2.0
9 stars 7 forks source link

DT Flexibility #526

Open atrayano opened 2 years ago

atrayano commented 2 years ago

There is a need to make the clock heartbeat smaller to match the remapping sub-step in FV. Since we cannot afford to run every single gridded component at such smaller time step, we need to design a scheme to run at least some gridded components less frequently. As @wmputman suggested, we will start with Moist.

As @tclune suggested yesterday, here is a list tasks to accomplish this: 1) Check that Moist never gets its DT from the CLOCK. I am nearly 100% sure that the current code is Ok, and Moist gets its DT from the resource RUN_DT. Still this should be double-checked 2) Make sure we export tendencies and not increments (again, I am almost sure this is the case) 3) Create a new alarm in Moist during Initialize. MAPL already creates its own RUN_DT alarm. but that alarm rings at the last step of the RUN_DT interval. The new alarm should ring at the first step of the interval, so that Moist could populate its exports properly. 4) Add logic in the run method to skip the calculations if the alarm is not ringing. All the exports and internal state variables will automatically persist when the component skips the run step. Execute the actual Run method only when the alarm is ringing 5) Double-check the logic that updates in-place some variable (sync T and Q logic)

tclune commented 2 years ago

@atrayano Thanks. Are there things to be done inside MAPL as well? Or do you think the existing alarm situation suffices?

tclune commented 2 years ago

Mentioning @wmputman in case he wants to follow/comment.

atrayano commented 2 years ago

I do not think we need to make MAPL changes at this time...

weiyuan-jiang commented 2 years ago

Should we add a new MOIST_DT ? make its default as RUN_DT.

atrayano commented 2 years ago

@weiyuan-jiang Yes, I totally forgot about this. Good catch

atrayano commented 2 years ago

We should add MOIST_DT entry in AGCM.rc