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

0.25deg MOM6 parameters - THERMO_SPANS_COUPLING = True #173

Closed
minghangli-uni opened this issue Jun 19, 2024 · 2 comments
Closed

0.25deg MOM6 parameters - THERMO_SPANS_COUPLING = True #173

minghangli-uni opened this issue Jun 19, 2024 · 2 comments

Comments

@minghangli-uni
Copy link
Contributor

This issue covers parameters related to THERMO_SPANS_COUPLING within the module MOM of the MOM input parameters.

In MOM6, tracer advection is stepped with the thermodynamic timestep, which can be much longer than the coupling timestep. This can be achieved by enabling THERMO_SPANS_COUPLING. In the following setup, it is set to 8100s, which is 6 times longer than the coupling timestep of 1350s. Similar tracer timesteps can be found in GFDL OM4 0.25deg, and GFDL OM5 0.25deg.

THERMO_SPANS_COUPLING = True     !   [Boolean] default = False
                                 ! If true, the MOM will take thermodynamic and tracer timesteps that can be
                                 ! longer than the coupling timestep. The actual thermodynamic timestep that is
                                 ! used in this case is the largest integer multiple of the coupling timestep
DT_THERM = 8100.0                !   [s] default = 1350.0
                                 ! The thermodynamic and tracer advection time step. Ideally DT_THERM should be
                                 ! an integer multiple of DT and less than the forcing or coupling time-step,
                                 ! unless THERMO_SPANS_COUPLING is true, in which case DT_THERM can be an integer
                                 ! multiple of the coupling timestep.  By default DT_THERM is set to DT.
DTBT_RESET_PERIOD = 8100.0       !   [s] default = 1350.0 - (DT_THERM)
                                 ! The period between recalculations of DTBT (if DTBT <= 0). If DTBT_RESET_PERIOD
                                 ! is negative, DTBT is set based only on information available at
                                 ! initialization.  If 0, DTBT will be set every dynamics time step. The default
                                 ! is set by DT_THERM.  This is only used if SPLIT is true.

A preliminary test compared two cases for a 10-day run using 1440 cpu cores with a PE layout of #ocn: 1344, #ice: 96, #cpl: 96, #atm: 48 and #rof: 48.

Case dt_dyn dt_therm_ice dt_cpl dt_therm Run duration (ocn)
THERMO_SPANS_COUPLING = False 1350s 1350s 1350s 1350s 465.23s
THERMO_SPANS_COUPLING = True 1350s 1350s 1350s 8100s 221.97s

The results show a reduction in run duration from 465.23s to 221.97s, significantly improving performance.

However, further scientific testing for longer runs is necessary to confirm that the differences are negligible.

@dougiesquire
Copy link
Collaborator

Thanks @minghangli-uni. This looks like a duplicate of #138. Could you maybe move this to a comment there so we can close this issue and just have one?

@minghangli-uni
Copy link
Contributor Author

Thank you @dougiesquire. I was thinking that submitting a PR linked to a comment within an issue rather than to the beginning of the issue, might cause some kind of confusion. But this definitely requires further evaluation and testing, such as altering dt_therm.

Yeah, I agree to move it to a comment on #138.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants