Feature/sfc ocn component - #542
Merged
Merged
Conversation
… in ocean modules
There was a problem hiding this comment.
Pull request overview
This PR introduces an atmosphere–ocean coupling capability in atm_nonhydro3d by adding an ocean component (including a slab dynamics option), a coupler/buffer layer, and the necessary restart/history I/O enhancements to support multi-component output.
Changes:
- Add a new Ocean component (mesh/vars/dynamics) and integrate it into the driver time loop.
- Add a Coupler component and variable buffers to exchange surface/near-surface fields between ATM and OCN.
- Enhance restart/history I/O to support multiple components (dimension postfixing + multi-component restart registration) and add an
atm_ocncoupling test case.
Reviewed changes
Copilot reviewed 38 out of 38 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| model/global_shallow_water/src/mod_sw_vars.F90 | Pass dimension-name postfix into restart initialization. |
| model/atm_nonhydro3d/test/case/coupling/atm_ocn/visualize/visualize.sh | Add visualization helper script for the coupling case. |
| model/atm_nonhydro3d/test/case/coupling/atm_ocn/run.conf | Add runtime configuration for the coupling test case. |
| model/atm_nonhydro3d/test/case/coupling/atm_ocn/mod_user.F90 | Add coupling-specific user init for ATM/OCN fields. |
| model/atm_nonhydro3d/test/case/coupling/atm_ocn/Makefile | Add build/run harness for the coupling test case. |
| model/atm_nonhydro3d/test/case/coupling/atm_ocn/init.conf | Add initialization configuration for the coupling test case. |
| model/atm_nonhydro3d/src/user/mod_user.F90 | Extend user hooks to support ocean initialization. |
| model/atm_nonhydro3d/src/user/mod_user_base.F90 | Add ocean-side mkinit base routines for experiments. |
| model/atm_nonhydro3d/src/ocean/mod_ocean_vars.F90 | Introduce ocean variable managers, history, and restart I/O. |
| model/atm_nonhydro3d/src/ocean/mod_ocean_mesh.F90 | Add abstract ocean mesh base type + restart/topography hooks. |
| model/atm_nonhydro3d/src/ocean/mod_ocean_mesh_rm.F90 | Implement regional ocean mesh and communicator/restart setup. |
| model/atm_nonhydro3d/src/ocean/mod_ocean_mesh_gm.F90 | Implement global ocean mesh and communicator/restart setup. |
| model/atm_nonhydro3d/src/ocean/mod_ocean_dyn.F90 | Add ocean dynamics process (incl. slab option) and update step. |
| model/atm_nonhydro3d/src/ocean/mod_ocean_dyn_vars.F90 | Add ocean dynamics auxiliary variables (e.g., Coriolis). |
| model/atm_nonhydro3d/src/ocean/mod_ocean_component.F90 | Add full ocean component wiring, coupler exchange, and surface flux/tendency calculations. |
| model/atm_nonhydro3d/src/coupler/mod_cpl_component.F90 | Add Coupler component skeleton and setup-vars entry point. |
| model/atm_nonhydro3d/src/coupler/mod_cpl_vars.F90 | Add coupler buffer variables and ATM↔OCN put/get routines. |
| model/atm_nonhydro3d/src/Makefile | Include new ocean/coupler sources in the build. |
| model/atm_nonhydro3d/src/depend | Update build dependencies for new modules and revised interfaces. |
| model/atm_nonhydro3d/src/atmos/mod_atmos_vars.F90 | Split restart writing into prep/write/post phases; add dim postfix support. |
| model/atm_nonhydro3d/src/atmos/mod_atmos_vars_container.F90 | Initialize AUX 2D values to UNDEF instead of zero-fill. |
| model/atm_nonhydro3d/src/atmos/mod_atmos_phy_sfc.F90 | Add coupler switch to disable local flux updates when coupled. |
| model/atm_nonhydro3d/src/atmos/mod_atmos_phy_sfc_vars.F90 | Add surface albedo as a surface variable. |
| model/atm_nonhydro3d/src/atmos/mod_atmos_phy_rd.F90 | Output surface radiative flux fields from radiation core. |
| model/atm_nonhydro3d/src/atmos/mod_atmos_phy_rd_vars.F90 | Add radiation restart I/O for surface flux fields. |
| model/atm_nonhydro3d/src/atmos/mod_atmos_mesh.F90 | Extend restartfile setup interface to accept dim postfix. |
| model/atm_nonhydro3d/src/atmos/mod_atmos_mesh_rm.F90 | Thread dim postfix through regional mesh restart init. |
| model/atm_nonhydro3d/src/atmos/mod_atmos_mesh_gm.F90 | Thread dim postfix through global mesh restart init. |
| model/atm_nonhydro3d/src/atmos/mod_atmos_component.F90 | Wire coupler into ATM tendencies and add coupler-based surface-flux tendency path. |
| model/atm_nonhydro3d/src/admin/mod_experiment.F90 | Extend experiment init-cond registration to ocean fields. |
| model/atm_nonhydro3d/src/admin/mod_dg_prep.F90 | Add ocean/coupler setup, init, and restart write pipeline. |
| model/atm_nonhydro3d/src/admin/mod_dg_driver.F90 | Add coupled time stepping, restart read/write sequencing, and ocean history output. |
| FElib/src/radiation/scale_atm_phy_rd_dgm_gray.F90 | Extend gray radiation flux routine to return TOA/surface flux arrays. |
| FElib/src/file/scale_file_restart_meshfield.F90 | Rework restart file handling to support multi-component registration and shared main file. |
| FElib/src/file/scale_file_common_meshfield.F90 | Add dimension postfixing to file dimension naming for multi-component outputs. |
| doc/user-guide/00_version.tex | Bump documented version number. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
close #540
close #539
close #538
close #537