Greenhouse Gases (GHG) Forcing Specifications¶
The Greenhouse Gas (GHG) forcing pipeline ingests CMIP7 global-mean annual surface volume mixing ratios for 9 primary greenhouse gas species, converts them into mass mixing ratios (MMR), linearly interpolates values to January 1, and directly updates the model climate forcing namelist (&clmchfcg) in the downstream ACCESS-ESM1.6 configurations.
Physical Domain & Scientific Scope¶
- Species Modeled (9 gases): Carbon Dioxide (
co2), Methane (ch4), Nitrous Oxide (n2o), CFC-11 (cfc11), CFC-12 (cfc12), CFC-113 (cfc113), HCFC-22 (hcfc22), HFC-125 (hfc125), and HFC-134a (hfc134a). - Source Representation: Global-mean annual timeseries (
yr,gm) distributed in NetCDF format via input4MIPs. - Target Representation: In-memory array of mass mixing ratios written into the Unified Model
&clmchfcgnamelist group, dimensioned(nyears, 11)across the 11 UM radiatively active gases. - Temporal Interpolation Scheme: CMIP7 source concentrations represent annual means centered at mid-year. Because the UM radiation scheme linearly interpolates between specified annual control points, mid-year values are interpolated to January 1 (\(t_{Jan1} = 0.5 \times (t_{yr} + t_{yr+1})\)) so that UM monthly integration reproduces the annual means.
Provenance & Dataflow Architecture¶
The greenhouse gas pipeline follows the W3C PROV framework, ingesting global-mean volume mixing ratios, realigning temporal coordinates, and synchronizing configuration patches into the downstream model repository. The architecture separates by experiment requirements:
* Pre-Industrial Control (PI): Extracts 1850 single-year scalar concentrations, converts them to mass mixing ratios (MMR), and patches model coupling namelists. See Pre-Industrial Experiment Dataflow Architecture.
* Historical (HI): Ingests historical global-mean time series (1750–2022), realigns annual points to January 1, extrapolates backward to 1850, and injects 175-year MMR arrays into Rose app configurations. See Historical Experiment Dataflow Architecture.
* ScenarioMIP (SM): Ingests baseline projection time series (2022–2100) alongside 22nd-century extension chunks (CR-<scen>-ext-1-1-0, 2101–2200), concatenates time series to 2150, realigns to January 1, and patches scenario Rose configurations. See ScenarioMIP Experiment Dataflow Architecture.
Controlling Suite Switches¶
The execution, scenario extension, and downstream configuration synchronization for greenhouse gases are controlled by parameters in rose-suite.conf:
- Master Activation Switch:
ANCIL_CREATE_GHG = true
When set tofalse, greenhouse gas processing and associated namelist patching tasks are excluded from the execution graph. - Experiment Activation: Governed by
USE_EXP['PI'],USE_EXP['HI'], andUSE_EXP['SM']. - Scenario Extension Controls (
EXTEND_SM_GHG):
Controls whether future pathways concatenate extension files (2101–2200) to cover up to 2150 with--ext:'h': True(Extended to 2150 viaCR-h-ext-1-1-0)'hl': False(Bounded to 2100)'m': False(Bounded to 2100)'vl': True(Extended to 2150 viaCR-vl-ext-1-1-0)
- Downstream Configuration Branching:
Greenhouse gases directly patch the&clmchfcgnamelist in clones ofaccess-esm1.6-configs. The source branches are configured viaGIT_CONFIG_BRANCH_PRE(devfor PI/HI,plfor SM) and suffixesGIT_CONFIG_BRANCH_SUF(piControl,historical) /GIT_SM_CONFIG_BRANCH_SUF(scen7-<scen>). Remote push is gated byGIT_CONFIG_BRANCH_PUSH = false. - Reference: See Suite Configuration & Parameters Reference for full object definitions.
1. Pre-Industrial Experiment (PI)¶
Dataflow Architecture¶
The pre-industrial GHG pipeline extracts 1850 perpetual concentrations, converts volume mixing ratios to mass mixing ratios (MMR), and patches the model namelist:
flowchart TD
%% Custom Styles for W3C PROV Semantics
classDef inputStyle fill:#e1f5fe,stroke:#0288d1,stroke-width:1.5px,color:#01579b
classDef activityStyle fill:#e8f5e9,stroke:#2e7d32,stroke-width:1.5px,color:#1b5e20
classDef outputStyle fill:#fff3e0,stroke:#e65100,stroke-width:1.5px,color:#bf360c
classDef agentStyle fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1.5px,color:#4a148c
classDef targetStyle fill:#ede7f6,stroke:#4527a0,stroke-width:2px,color:#311b92
%% Top Level: Inputs and Agents
subgraph S_TOP["1. Source Inputs and Agents"]
direction LR
subgraph Inputs["Input Entities (prov:Entity)"]
direction TB
E_GHG[("input4MIPs GHG NetCDFs<br><code>CR-CMIP-1-0-0 (year 1850)</code>")]:::inputStyle
end
subgraph Agents["Agents (prov:Agent)"]
direction TB
AgCylc{{"Cylc 8 Suite Scheduler"}}:::agentStyle
AgPy{{"esm1p6_ancil.ghg (Iris and f90nml)"}}:::agentStyle
end
end
%% Middle Level: Transformation Pipeline
subgraph Activities["2. Transformation Pipeline (prov:Activity)"]
direction TB
A_Extract["1850 Mean Extraction<br><i>iris.analysis.MEAN on year 1850</i>"]:::activityStyle
A_MMR["MMR Conversion<br><i>mole fraction (mol/mol) -> Mass Mixing Ratio (kg/kg)</i>"]:::activityStyle
A_PI_Patch["Constant Namelist Patch<br><i>f90nml: &clmchfcg scalar concentrations</i>"]:::activityStyle
A_Extract --> A_MMR --> A_PI_Patch
end
%% Lower Level: Output Entities
subgraph Outputs["3. Output Entities (prov:Entity)"]
direction TB
E_PI_Nml[["Pre-Industrial Model Namelist<br><code>atmosphere/input_atm.nml</code>"]]:::outputStyle
end
%% Bottom Level: Model Target
subgraph S_DEPLOY["4. Downstream Deployment"]
E_Model[["ACCESS-ESM1.6 Configs<br><code>ACCESS-NRI/access-esm1.6-configs (piControl)</code>"]]:::targetStyle
end
%% Relationships
E_GHG -->|prov:used| A_Extract
A_PI_Patch -->|prov:wasGeneratedBy| E_PI_Nml
E_PI_Nml -->|Git commit and push| E_Model
%% Agent Associations
AgPy -.->|prov:wasAssociatedWith| A_Extract
AgPy -.->|prov:wasAssociatedWith| A_MMR
AgPy -.->|prov:wasAssociatedWith| A_PI_Patch
AgCylc -.->|orchestrates| Activities
PI_ancil_ghg¶
- 1. Description & Purpose:
Extracts perpetual pre-industrial (year 1850) global-mean greenhouse gas concentrations for the 9 species from the CMIP7 historical dataset, converts them to mass mixing ratios, and patches the&clmchfcgnamelist in thepre-industrialconfiguration branch. - 2. CLI Arguments Passed:
python -m esm1p6_ancil.ghg.cmip7_PI_ghg_generate \ --ancil-target-dirname "${VAR.ANCIL_TARGET_PATH}" \ # Current: "/g/data/${PROJECT}/${USER}/CMIP7/esm1p6_ancil/$(isodatetime -f CCYY.MM.DD)" --cmip7-source-data-dirname "${VAR.CMIP7_SOURCE_PATH}" \ # Current: "/g/data/qv56/replicas/input4MIPs/CMIP7" --esm15-inputs-dirname "${VAR.ESM15_INPUTS_PATH}" \ # Current: "/g/data/vk83/configurations/inputs/access-esm1p5" --dataset-version "${CMIP7_GHG_VERSION}" \ # Current: "CR-CMIP-1-0-0" --dataset-vdate "${CMIP7_GHG_VDATE}" \ # Current: "v20250228" --dataset-date-range "${CMIP7_GHG_DATE_RANGE}" # Current: "1750-2022" - 3. Input4MIPs Versions & Temporal Metadata:
- Dataset Version:
${CMIP7_GHG_VERSION}(CR-CMIP-1-0-0) - Version Date (
vdate):${CMIP7_GHG_VDATE}(v20250228) - Input Date Range:
${CMIP7_GHG_DATE_RANGE}(1750-2022) - Extracted Year:
1850
- Dataset Version:
- 4. Input4MIPs Directory Path & Filenames:
- Directory Path:
${VAR.CMIP7_SOURCE_PATH}/CMIP/CR/${CMIP7_GHG_VERSION}/atmos/yr/{ghg}/gm/${CMIP7_GHG_VDATE}/
(Evaluated:/g/data/qv56/replicas/input4MIPs/CMIP7/CMIP/CR/CR-CMIP-1-0-0/atmos/yr/{ghg}/gm/v20250228/) - Filenames (9 gases):
{ghg}_input4MIPs_GHGConcentrations_CMIP_${CMIP7_GHG_VERSION}_gm_${CMIP7_GHG_DATE_RANGE}.nc
- Directory Path:
- 5. Python Scripts & Functions:
- Main Script / Entrypoint:
esm1p6_ancil.ghg.cmip7_PI_ghg_generate - Key Functions Called:
load_cmip7_ghg_point_mmr,cmip7_ghg_mmr,cmip7_scale,cmip7_pro_greg_date_constraint_from_years,cmip7_ghg_update_namelists_file,format_namelist - Shared Libraries:
iris,cftime,numpy,f90nml
- Main Script / Entrypoint:
- 6. Function-Level Cube Transformations & Constraints:
- Input Cubes & Coordinates: 1D NetCDF cubes loaded via
iris.load_cubeper gas species with 1D Proleptic Gregoriantimecoordinate. Validates attributeassert ghg == cube.metadata.attributes["variable_id"]. - Constraints Applied: Date constraint
cmip7_pro_greg_date_constraint_from_years(1850, 1850)filtering pointcftime.DatetimeProlepticGregorian(1850, 1, 1) <= cell.point <= cftime.DatetimeProlepticGregorian(1850, 12, 31). - Coordinate Bounds & Manipulation: Single annual point extracted without bounds. Scaled from volume mixing ratio (parts per volume) to mass mixing ratio via molar mass ratios: $\(\text{MMR} = \text{VMR} \times \frac{M_{\text{gas}}}{M_{\text{air}}}\)$
- Created / Output Cubes: Scalar float values assembled into an 11-species row vector passed to
cmip7_ghg_update_namelists_file.
- Input Cubes & Coordinates: 1D NetCDF cubes loaded via
- 7. Produced File Versions & Date Ranges:
None (Direct namelist generation). Represents perpetual year 1850 conditions. - 8. Produced File Directory Paths & Filenames:
None. No.ancor binary data files created. - 9. Namelist File & Variable Updates:
- Target File:
${GIT_PI_CONFIG_DIR}/atmosphere/namelists - Namelist Group:
&clmchfcg - Variables Updated:
l_clmchfcg = .TRUE. clim_fcg_nyears = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 clim_fcg_years = 1850 clim_fcg_levls = <1850 MMR values for 11 species> clim_fcg_rates = -32768.0
- Target File:
2. Historical Experiment (HI)¶
Dataflow Architecture¶
The historical GHG pipeline ingests historical global-mean time series (1750–2022), realigns annual points to January 1, extrapolates backward to 1850, and serializes multi-year mass mixing ratio arrays into the Rose application configuration:
flowchart TD
%% Custom Styles for W3C PROV Semantics
classDef inputStyle fill:#e1f5fe,stroke:#0288d1,stroke-width:1.5px,color:#01579b
classDef activityStyle fill:#e8f5e9,stroke:#2e7d32,stroke-width:1.5px,color:#1b5e20
classDef outputStyle fill:#fff3e0,stroke:#e65100,stroke-width:1.5px,color:#bf360c
classDef agentStyle fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1.5px,color:#4a148c
classDef targetStyle fill:#ede7f6,stroke:#4527a0,stroke-width:2px,color:#311b92
%% Top Level: Inputs and Agents
subgraph S_TOP["1. Source Inputs and Agents"]
direction LR
subgraph Inputs["Input Entities (prov:Entity)"]
direction TB
E_HI_GHG[("Historical GHG NetCDFs<br><code>CR-CMIP-1-0-0 (1750-2022)</code>")]:::inputStyle
end
subgraph Agents["Agents (prov:Agent)"]
direction TB
AgCylc{{"Cylc 8 Suite Scheduler"}}:::agentStyle
AgPy{{"esm1p6_ancil.ghg (Iris and Git)"}}:::agentStyle
end
end
%% Middle Level: Transformation Pipeline
subgraph Activities["2. Transformation Pipeline (prov:Activity)"]
direction TB
A_MMR["MMR Conversion<br><i>dry air mass mixing ratio scaling (9 gases)</i>"]:::activityStyle
A_Align["Jan 1 Realignment and Extrapolation<br><i>shift mid-year points to Jan 1 | 1850-2024 span</i>"]:::activityStyle
A_Rose["Rose App Config Patching<br><i>serialize 175-year annual arrays into clmchfcg</i>"]:::activityStyle
A_MMR --> A_Align --> A_Rose
end
%% Lower Level: Output Entities
subgraph Outputs["3. Output Entities (prov:Entity)"]
direction TB
E_Rose[["Rose Application Configuration<br><code>app/um/opt/rose-app.conf (historical)</code>"]]:::outputStyle
end
%% Bottom Level: Model Target
subgraph S_DEPLOY["4. Downstream Deployment"]
E_Model[["ACCESS-ESM1.6 Configs<br><code>ACCESS-NRI/access-esm1.6-configs (historical)</code>"]]:::targetStyle
end
%% Relationships
E_HI_GHG -->|prov:used| A_MMR
A_Rose -->|prov:wasGeneratedBy| E_Rose
E_Rose -->|Git commit and push| E_Model
%% Agent Associations
AgPy -.->|prov:wasAssociatedWith| A_MMR
AgPy -.->|prov:wasAssociatedWith| A_Align
AgPy -.->|prov:wasAssociatedWith| A_Rose
AgCylc -.->|orchestrates| Activities
HI_ancil_ghg¶
- 1. Description & Purpose:
Reads CMIP7 historical annual global-mean surface concentrations for the 9 GHG species from 1750 to 2022, converts volume mixing ratios to mass mixing ratios, linearly interpolates values to January 1 across the model timeframe 1850–2024, and patches the&clmchfcgnamelist in thehistoricalconfiguration branch. - 2. CLI Arguments Passed:
python -m esm1p6_ancil.ghg.cmip7_HI_ghg_generate \ --ancil-target-dirname "${VAR.ANCIL_TARGET_PATH}" \ # Current: "/g/data/${PROJECT}/${USER}/CMIP7/esm1p6_ancil/$(isodatetime -f CCYY.MM.DD)" --cmip7-source-data-dirname "${VAR.CMIP7_SOURCE_PATH}" \ # Current: "/g/data/qv56/replicas/input4MIPs/CMIP7" --esm15-inputs-dirname "${VAR.ESM15_INPUTS_PATH}" \ # Current: "/g/data/vk83/configurations/inputs/access-esm1p5" --dataset-version "${CMIP7_GHG_VERSION}" \ # Current: "CR-CMIP-1-0-0" --dataset-vdate "${CMIP7_GHG_VDATE}" \ # Current: "v20250228" --dataset-date-range "${CMIP7_GHG_DATE_RANGE}" # Current: "1750-2022" - 3. Input4MIPs Versions & Temporal Metadata:
- Dataset Version:
${CMIP7_GHG_VERSION}(CR-CMIP-1-0-0) - Version Date (
vdate):${CMIP7_GHG_VDATE}(v20250228) - Input Date Range:
${CMIP7_GHG_DATE_RANGE}(1750-2022) - Processed Model Timeline:
1850-2024(175 annual points)
- Dataset Version:
- 4. Input4MIPs Directory Path & Filenames:
- Directory Path:
${VAR.CMIP7_SOURCE_PATH}/CMIP/CR/${CMIP7_GHG_VERSION}/atmos/yr/{ghg}/gm/${CMIP7_GHG_VDATE}/
(Evaluated:/g/data/qv56/replicas/input4MIPs/CMIP7/CMIP/CR/CR-CMIP-1-0-0/atmos/yr/{ghg}/gm/v20250228/) - Filenames (9 gases):
{ghg}_input4MIPs_GHGConcentrations_CMIP_${CMIP7_GHG_VERSION}_gm_${CMIP7_GHG_DATE_RANGE}.nc
- Directory Path:
- 5. Python Scripts & Functions:
- Main Script / Entrypoint:
esm1p6_ancil.ghg.cmip7_HI_ghg_generate - Key Functions Called:
load_cmip7_ghg_series_mmr,cmip7_ghg_update_namelists_file,cmip7_ghg_namelist_str,cmip7_ghg_mmr,cmip7_scale,cmip7_pro_greg_date_constraint_from_years,read_namelists_lines_up_to,format_namelist - Shared Libraries:
iris,cftime,numpy,f90nml
- Main Script / Entrypoint:
- 6. Function-Level Cube Transformations & Constraints:
- Input Cubes & Coordinates: 1D NetCDF cubes loaded via
iris.load_cubeper gas species, withtimecoordinate defined on the Proleptic Gregorian calendar. Validates attributeassert ghg == full_cube.metadata.attributes["variable_id"]. - Constraints Applied:
- Date range constraint:
cmip7_pro_greg_date_constraint_from_years(1850, 2024)filtering points within1850-01-01to2024-12-31. - Annual point constraint:
cmip7_pro_greg_date_constraint_from_years(year, year)in extraction loop.
- Date range constraint:
- Coordinate Bounds & Manipulation:
- Mid-year values interpolated to Jan 1 (
0.5 * (val[:-1] + val[1:])). - Backwards extrapolation for first year (
beg_year_cube.data[0] = val[0] + 0.5 * (val[0] - val[1])), setting time point to January 1, 00:00:00. - Time bounds dropped completely (
beg_year_cube_time.bounds = None,new_cube_time.bounds = None). - Concatenates backwards-extrapolated cube with main cube via
iris.cube.CubeList.concatenate_cube()afteriris.util.unify_time_unitsandiris.util.equalise_attributes.
- Mid-year values interpolated to Jan 1 (
- Created / Output Cubes: Produces sliced scalar
year_cubeinstances converted viacmip7_ghg_mmrinto mass mixing ratio floating point series passed directly to namelist construction.
- Input Cubes & Coordinates: 1D NetCDF cubes loaded via
- 7. Produced File Versions & Date Ranges:
None (Direct namelist generation). Temporal coverage encoded into namelist: 1850–2024 (175 annual points). - 8. Produced File Directory Paths & Filenames:
None. No.ancor binary data files created. - 9. Namelist File & Variable Updates:
- Target File:
${GIT_HI_CONFIG_DIR}/atmosphere/namelists - Namelist Group:
&clmchfcg - Variables Updated:
l_clmchfcg = .TRUE. clim_fcg_nyears = 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175 clim_fcg_years = 1850..2024 clim_fcg_levls = <175 rows of MMR values for 11 species> clim_fcg_rates = -32768.0
- Target File:
3. ScenarioMIP Experiment (SM)¶
Dataflow Architecture¶
The ScenarioMIP GHG pipeline ingests baseline projection time series (2022–2100) alongside 22nd-century extension datasets (*-ext-*, 2101–2200) when --ext is specified, concatenates time series to 2150, realigns values to January 1, and patches scenario-specific Rose application configurations:
flowchart TD
%% Custom Styles for W3C PROV Semantics
classDef inputStyle fill:#e1f5fe,stroke:#0288d1,stroke-width:1.5px,color:#01579b
classDef activityStyle fill:#e8f5e9,stroke:#2e7d32,stroke-width:1.5px,color:#1b5e20
classDef outputStyle fill:#fff3e0,stroke:#e65100,stroke-width:1.5px,color:#bf360c
classDef agentStyle fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1.5px,color:#4a148c
classDef targetStyle fill:#ede7f6,stroke:#4527a0,stroke-width:2px,color:#311b92
%% Top Level: Inputs and Agents
subgraph S_TOP["1. Source Inputs and Agents"]
direction LR
subgraph Inputs["Input Entities (prov:Entity)"]
direction TB
E_Base_GHG[("Base ScenarioMIP GHG NetCDFs<br><code>CR-SCEN-1-1-0 (2022-2100)</code>")]:::inputStyle
E_Ext_GHG[("Extension GHG NetCDFs<br><code>CR-SCEN-ext-1-1-0 (2101-2200)</code>")]:::inputStyle
end
subgraph Agents["Agents (prov:Agent)"]
direction TB
AgCylc{{"Cylc 8 Suite Scheduler"}}:::agentStyle
AgPy{{"esm1p6_ancil.ghg (Iris and Git)"}}:::agentStyle
end
end
%% Middle Level: Transformation Pipelines
subgraph S_ACT["2. Transformation Pipelines (prov:Activity)"]
direction TB
subgraph S_Ext["Extension Validation and Concatenation"]
direction TB
A_Concat["Concatenate Time Chunks<br><i>CubeList.concatenate_cube (2022-2200)</i>"]:::activityStyle
A_Sub["Constrain Simulation Window<br><i>cmip7_pro_greg_date_constraint_from_years(2022, 2150)</i>"]:::activityStyle
A_Concat --> A_Sub
end
subgraph S_Proc["Transformation and Namelist Generation"]
direction TB
A_MMR["MMR Conversion<br><i>dry air mass mixing ratio scaling (9 gases)</i>"]:::activityStyle
A_Align["Jan 1 Realignment and Extrapolation<br><i>shift mid-year points to Jan 1 | forward extrapolate 2150</i>"]:::activityStyle
A_Rose["Rose App Config Patching<br><i>serialize 129-year annual arrays into clmchfcg</i>"]:::activityStyle
A_MMR --> A_Align --> A_Rose
end
A_Sub --> A_MMR
end
%% Lower Level: Output Entities
subgraph Outputs["3. Output Entities (prov:Entity)"]
direction TB
E_Rose[["Rose Application Configuration<br><code>app/um/opt/rose-app.conf (scen7-SCEN)</code>"]]:::outputStyle
end
%% Bottom Level: Model Target
subgraph S_DEPLOY["4. Downstream Deployment"]
E_Model[["ACCESS-ESM1.6 Configs<br><code>ACCESS-NRI/access-esm1.6-configs (scen7-*)</code>"]]:::targetStyle
end
%% Relationships
E_Base_GHG & E_Ext_GHG -->|prov:used| A_Concat
A_Rose -->|prov:wasGeneratedBy| E_Rose
E_Rose -->|Git commit and push| E_Model
%% Agent Associations
AgPy -.->|prov:wasAssociatedWith| A_Concat
AgPy -.->|prov:wasAssociatedWith| A_Sub
AgPy -.->|prov:wasAssociatedWith| A_MMR
AgPy -.->|prov:wasAssociatedWith| A_Align
AgPy -.->|prov:wasAssociatedWith| A_Rose
AgCylc -.->|orchestrates| S_ACT
SM_{h,hl,m,vl}_ancil_ghg¶
Tasks generate future greenhouse gas concentration timeseries across the four ScenarioMIP pathways (h, hl, m, vl). Extension to 2150 is controlled per scenario via EXTEND_SM_GHG[SCEN].
- 1. Description & Purpose:
Reads ScenarioMIP high-emissions (h) greenhouse gas concentrations, concatenates extension dataset chunks (2101–2200) whenEXTEND_SM_GHG['h']is active (--ext) to cover the timeline to 2150, extrapolates annual values to January 1, and patches the&clmchfcgnamelist in thegen-scen7-h-<UUID>branch. - 2. CLI Arguments Passed:
python -m esm1p6_ancil.ghg.cmip7_SM_ghg_generate \ --ancil-target-dirname "${VAR.ANCIL_TARGET_PATH}" \ # Current: "/g/data/${PROJECT}/${USER}/CMIP7/esm1p6_ancil/$(isodatetime -f CCYY.MM.DD)" --cmip7-source-data-dirname "${VAR.CMIP7_SOURCE_PATH}" \ # Current: "/g/data/qv56/replicas/input4MIPs/CMIP7" --esm15-inputs-dirname "${VAR.ESM15_INPUTS_PATH}" \ # Current: "/g/data/vk83/configurations/inputs/access-esm1p5" --dataset-version "${CMIP7_SM_GHG_VERSION[SCEN]}" \ # Current: "CR-h-1-1-0" --dataset-vdate "${CMIP7_SM_GHG_VDATE[SCEN]}" \ # Current: "v20260327" --dataset-date-range "${CMIP7_SM_GHG_DATE_RANGE}" \ # Current: "2022-2100" --ext \ --dataset-ext-version "${CMIP7_SM_EXT_GHG_VERSION[SCEN]}" \ # Current: "CR-h-ext-1-1-0" --dataset-ext-vdate "${CMIP7_SM_EXT_GHG_VDATE[SCEN]}" \ # Current: "v20260327" --dataset-ext-date-range "${CMIP7_SM_EXT_GHG_DATE_RANGE}" # Current: "2101-2200" - 3. Input4MIPs Versions & Temporal Metadata:
- Base Dataset:
${CMIP7_SM_GHG_VERSION['h']}(CR-h-1-1-0),${CMIP7_SM_GHG_VDATE['h']}(v20260327), Date Range:${CMIP7_SM_GHG_DATE_RANGE}(2022-2100) - Extension Dataset:
${CMIP7_SM_EXT_GHG_VERSION['h']}(CR-h-ext-1-1-0),${CMIP7_SM_EXT_GHG_VDATE['h']}(v20260327), Date Range:${CMIP7_SM_EXT_GHG_DATE_RANGE}(2101-2200) - Model Target Range:
2022-2150(129 annual values)
- Base Dataset:
- 4. Input4MIPs Directory Path & Filenames:
- Base:
${VAR.CMIP7_SOURCE_PATH}/ScenarioMIP/CR/${CMIP7_SM_GHG_VERSION['h']}/atmos/yr/{ghg}/gm/${CMIP7_SM_GHG_VDATE['h']}/{ghg}_input4MIPs_GHGConcentrations_ScenarioMIP_${CMIP7_SM_GHG_VERSION['h']}_gm_${CMIP7_SM_GHG_DATE_RANGE}.nc - Extension:
${VAR.CMIP7_SOURCE_PATH}/ScenarioMIP/CR/${CMIP7_SM_EXT_GHG_VERSION['h']}/atmos/yr/{ghg}/gm/${CMIP7_SM_EXT_GHG_VDATE['h']}/{ghg}_input4MIPs_GHGConcentrations_ScenarioMIP_${CMIP7_SM_EXT_GHG_VERSION['h']}_gm_${CMIP7_SM_EXT_GHG_DATE_RANGE}.nc
- Base:
- 5. Python Scripts & Functions:
- Main Script / Entrypoint:
esm1p6_ancil.ghg.cmip7_SM_ghg_generate - Key Functions Called:
load_cmip7_ghg_series_mmr,cmip7_ghg_update_namelists_file,cmip7_ghg_namelist_str,cmip7_ghg_mmr,cmip7_pro_greg_date_constraint_from_years,iris.cube.CubeList.concatenate_cube,iris.util.equalise_attributes,iris.util.unify_time_units
- Main Script / Entrypoint:
- 6. Function-Level Cube Transformations & Constraints:
- Input Cubes: Base scenario cube
full_cube(2022–2100) and extension chunkext_cube(2101–2200) loaded viairis.load_cube. - Constraints Applied: Concatenation via
CubeList([full_cube, ext_cube]).concatenate_cube()after attribute equalization. Date range constraintcmip7_pro_greg_date_constraint_from_years(2022, 2150)extracts the 2022–2150 timeline. - Coordinate Bounds & Manipulation: Linear interpolation to Jan 1 (
0.5 * (full[:-1] + full[1:])), final year forward extrapolation (full[-1] + 0.5 * (full[-1] - full[-2])), time bounds cleared (bounds = None), time points assigned Jan 1 of each year. - Created / Output Cubes: Sliced annual
year_cubeinstances converted viacmip7_ghg_mmrto MMR series for namelist injection.
- Input Cubes: Base scenario cube
- 7. Produced File Versions & Date Ranges:
None (Direct namelist generation). Temporal coverage: 2022–2150 (129 annual values). - 8. Produced File Directory Paths & Filenames:
None. - 9. Namelist File & Variable Updates:
- Target File:
${GIT_SM_h_CONFIG_DIR}/atmosphere/namelists - Namelist Group:
&clmchfcg - Variables Updated:
l_clmchfcg = .TRUE.,clim_fcg_nyears = 129,clim_fcg_years = 2022..2150,clim_fcg_levls,clim_fcg_rates = -32768.0.
- Target File:
- Dataset Versions: Base
CR-hl-1-1-0(v20260327,2022-2100); ExtensionCR-hl-ext-1-1-0(v20260327,2101-2200). - Script & Invocation:
esm1p6_ancil.ghg.cmip7_SM_ghg_generatewith--dataset-version "CR-hl-1-1-0". - Target Branch & Namelist:
${GIT_SM_hl_CONFIG_DIR}/atmosphere/namelists(&clmchfcg).
- Dataset Versions: Base
CR-m-1-1-0(v20260327,2022-2100); ExtensionCR-m-ext-1-1-0(v20260327,2101-2200). - Script & Invocation:
esm1p6_ancil.ghg.cmip7_SM_ghg_generatewith--dataset-version "CR-m-1-1-0". - Target Branch & Namelist:
${GIT_SM_m_CONFIG_DIR}/atmosphere/namelists(&clmchfcg).
- Dataset Versions: Base
CR-vl-1-1-0(v20260327,2022-2100); ExtensionCR-vl-ext-1-1-0(v20260327,2101-2200). - Script & Invocation:
esm1p6_ancil.ghg.cmip7_SM_ghg_generatewith--dataset-version "CR-vl-1-1-0". - Target Branch & Namelist:
${GIT_SM_vl_CONFIG_DIR}/atmosphere/namelists(&clmchfcg).