Downstream Configuration Git Synchronization Specifications
The configuration synchronization pipeline automates the checkout, branching, patching, committing, and pushing of downstream model configuration files in ACCESS-NRI/access-esm1.6-configs.
Architectural Role in the Workflow
Several CMIP7 forcings—specifically Greenhouse Gas concentrations (&clmchfcg), the Pre-Industrial Solar Constant (SC in &coupling), and Pre-Industrial Volcanic Optical Depth (VOLCTS_val in &coupling)—are ingested by the model directly through Fortran namelists rather than binary .anc files.
To maintain strict version control and reproducibility, the Cylc workflow manages these mutations through automated Git lifecycle tasks:
Controlling Suite Switches
The automated configuration branch lifecycle is governed by parameters in rose-suite.conf:
- Activation Condition (
UPDATE_CONFIG):
Evaluated inflow.cylcas:If no namelist-producing forcing tasks are active, all Git tasks are eliminated from the workflow DAG.{% set UPDATE_CONFIG = ANCIL_CREATE_GHG or ((ANCIL_CREATE_SOLAR or ANCIL_CREATE_VOLCANIC) and USE_EXP["PI"]) %} - Remote Push Authorization Switch:
GIT_CONFIG_BRANCH_PUSH = false
Whenfalse, branches are created and committed in the local suite work directory but are never pushed to the remote GitHub repository. - Repository Coordinates:
- Organization URL:
${GIT_ORG_URL}(git@github.com:ACCESS-NRI) - Configuration Repository:
${GIT_CONFIG_REPO}(access-esm1.6-configs)
- Organization URL:
- Branch Suffix & Prefix Mappings:
GIT_CONFIG_BRANCH_PRE = {'HI': 'dev', 'PI': 'dev', 'SM': 'pl'}GIT_CONFIG_BRANCH_SUF = {'HI': 'historical', 'PI': 'piControl'}GIT_SM_CONFIG_BRANCH_SUF = {'h': 'scen7-h', 'hl': 'scen7-hl', 'm': 'scen7-m', 'vl': 'scen7-vl'}
- Reference: See Suite Configuration & Parameters Reference for full object declarations and Naming & Configuration Alignment for a complete bidirectional mapping between
CMIP7-Inputacronyms andaccess-esm1.6-configsbranch names.
1. Pre-Industrial Experiment (PI)
PI_git_clone_checkout
- 1. Description & Purpose: Clones the downstream configuration repository (
access-esm1.6-configs) on the pre-industrial base branch (dev-piControl), checks out a new run-specific branchgen-piControl-<UUID>, and establishes the workspace directory. - 2. Execution Command:
git clone --depth 1 -b ${GIT_CONFIG_BRANCH_PRE["PI"]}-${GIT_CONFIG_BRANCH_SUF["PI"]} \ ${GIT_ORG_URL}/${GIT_CONFIG_REPO}.git ${CYLC_WORKFLOW_SHARE_DIR}/PI_${GIT_CONFIG_REPO} cd ${CYLC_WORKFLOW_SHARE_DIR}/PI_${GIT_CONFIG_REPO} git checkout -b gen-${GIT_CONFIG_BRANCH_SUF["PI"]}-${UNIQUE_NAME} - 8. Workspace Path:
${CYLC_WORKFLOW_SHARE_DIR}/PI_${GIT_CONFIG_REPO}/.
PI_git_commit_push
- 1. Description & Purpose: Commits the patched
atmosphere/namelists(fromPI_ancil_ghg) andatmosphere/input_atm.nml(fromPI_ancil_solarandPI_ancil_volcanic). IfGIT_CONFIG_BRANCH_PUSH = true, pushes the branch upstream to GitHub. - 2. Execution Command:
cd ${CYLC_WORKFLOW_SHARE_DIR}/config/PI git add atmosphere/namelists atmosphere/input_atm.nml git commit -m "Update CMIP7 pre-industrial forcings: GHG, Solar, and Volcanic" if [ "${GIT_CONFIG_BRANCH_PUSH}" = "true" ]; then git push origin gen-piControl-${UNIQUE_NAME} fi
2. Historical Experiment (HI)
HI_git_clone_checkout
- 1. Description & Purpose: Clones
access-esm1.6-configson branch${GIT_CONFIG_BRANCH_PRE["HI"]}-${GIT_CONFIG_BRANCH_SUF["HI"]}(dev-historical), createsgen-${GIT_CONFIG_BRANCH_SUF["HI"]}-${UNIQUE_NAME}(gen-historical-<UUID>), and prepares directory for namelist modification. - 2. Execution Command:
git clone --depth 1 -b ${GIT_CONFIG_BRANCH_PRE["HI"]}-${GIT_CONFIG_BRANCH_SUF["HI"]} \ ${GIT_ORG_URL}/${GIT_CONFIG_REPO}.git ${CYLC_WORKFLOW_SHARE_DIR}/HI_${GIT_CONFIG_REPO} cd ${CYLC_WORKFLOW_SHARE_DIR}/HI_${GIT_CONFIG_REPO} git checkout -b gen-${GIT_CONFIG_BRANCH_SUF["HI"]}-${UNIQUE_NAME} - 8. Workspace Path:
${CYLC_WORKFLOW_SHARE_DIR}/HI_${GIT_CONFIG_REPO}/.
HI_git_commit_push
- 1. Description & Purpose: Stages and commits the patched
atmosphere/namelistscontaining the 175-year annual greenhouse gas mass mixing ratio table generated byHI_ancil_ghg. If${GIT_CONFIG_BRANCH_PUSH}istrue, pushes to GitHub. - 2. Execution Command:
cd ${CYLC_WORKFLOW_SHARE_DIR}/HI_${GIT_CONFIG_REPO} git add atmosphere/namelists git commit -m "Update CMIP7 historical greenhouse gas forcing namelists (1850-2024)" if [ "${GIT_CONFIG_BRANCH_PUSH}" = "true" ]; then git push origin gen-${GIT_CONFIG_BRANCH_SUF["HI"]}-${UNIQUE_NAME} fi
3. ScenarioMIP Experiment (SM)
The workflow manages independent Git branches for each future projection scenario (h, hl, m, vl):
SM_{h,hl,m,vl}_git_clone_checkout
- 1. Description & Purpose: Clones base branch
${GIT_CONFIG_BRANCH_PRE["SM"]}-${GIT_SM_CONFIG_BRANCH_SUF[SCEN]}(e.g.pl-scen7-h), checking outgen-${GIT_SM_CONFIG_BRANCH_SUF[SCEN]}-${UNIQUE_NAME}. - 2. Execution Command:
git clone --depth 1 -b ${GIT_CONFIG_BRANCH_PRE["SM"]}-${GIT_SM_CONFIG_BRANCH_SUF[SCEN]} \ ${GIT_ORG_URL}/${GIT_CONFIG_REPO}.git ${CYLC_WORKFLOW_SHARE_DIR}/SM_${SCEN}_${GIT_CONFIG_REPO} cd ${CYLC_WORKFLOW_SHARE_DIR}/SM_${SCEN}_${GIT_CONFIG_REPO} git checkout -b gen-${GIT_SM_CONFIG_BRANCH_SUF[SCEN]}-${UNIQUE_NAME} - 8. Workspace Path:
${CYLC_WORKFLOW_SHARE_DIR}/SM_${SCEN}_${GIT_CONFIG_REPO}/.
SM_{h,hl,m,vl}_git_commit_push
- 1. Description & Purpose: Commits the future projection greenhouse gas table (
clim_fcg_years = 2022..2150under--ext) intoatmosphere/namelists. - 2. Execution Command:
cd ${CYLC_WORKFLOW_SHARE_DIR}/SM_${SCEN}_${GIT_CONFIG_REPO} git add atmosphere/namelists git commit -m "Update CMIP7 ScenarioMIP ${SCEN} greenhouse gas forcings" if [ "${GIT_CONFIG_BRANCH_PUSH}" = "true" ]; then git push origin gen-${GIT_SM_CONFIG_BRANCH_SUF[SCEN]}-${UNIQUE_NAME} fi
Suite Concurrency & Dependency Graph
To prevent simultaneous file writes and Git index collisions, flow.cylc enforces explicit sequential barriers:
- Race Condition Prevention:
PI_ancil_solar => PI_ancil_volcanicensures both tasks cleanly patchatmosphere/input_atm.nmlwithout clobbering. - Git Commit Sequencing:
*_git_clone_checkout => *_ancil_ghg => *_git_commit_pushensures all namelist patching finishes before committing.