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

O2.5.4: Run coupled ClimaAtmos + ClimaLand soil/canopy/snow model and ensure stability comparable to bucket model #1186

Open
3 of 9 tasks
juliasloan25 opened this issue Feb 7, 2025 · 1 comment
Assignees
Labels
🏅 SDI Software Design Issue

Comments

@juliasloan25
Copy link
Member

juliasloan25 commented Feb 7, 2025

The Climate Modeling Alliance

Software Design Issue 📜

Purpose

We want to couple with a more complex land model than the bucket, with the goal of providing more realistic boundary conditions to the atmosphere. The full land model contains 3 main subcomponents: soil, canopy, and snow. It also contains a Soil CO2 model, but this will be largely uninvolved in the flux exchanges when coupling with the atmosphere.

Cost/Benefits/Risks

costs: developer time, potentially unseen changes to ClimaCoupler
benefits: more accurate model, will test ClimaCoupler capabilities in new setup
risks: model may be less stable and need to be debugged in Atmos, Land, and Coupler

People and Personnel

Components

  • Add a new option to select between the complex land model or the bucket for the land component
  • Extend Coupler-required adapter functions for the new complex land model type
  • Update partitioned fluxes to handle the new land model type (including each of the sub-components of the land model)

Inputs

Results and Deliverables

  • Global runs of coupled atmos + full land, with stability similar to bucket runs

Scope of Work

Changes needed in ClimaCoupler.jl

turbulent fluxes

  • extend partitioned fluxes calculation to compute for each land component
    • for now, call functions defined in ClimaLand, which are already specified for each component
  • land update_field! for turbulent_energy_flux, turbulent_moisture_flux: provide tuple of fields for each land component rather than one field
  • atmos update_field! for turbulent_energy_flux, turbulent_moisture_flux: provide one area-weighted field
    • Q: do we want to store all 4 TF fields in the coupler, or store 3 and compute the area-weighted field on the fly
  • land get_field for roughness_buoyancy, roughness_momentum, surface_temperature, displacement_height: return tuple of fields for each land component rather than one field
  • after computing turbulent fluxes in coupler, need update_field!s to provide turbulent_energy_flux, turbulent_moisture_flux to both atmos and surface models

radiative fluxes

  • land get_field functions for emissivity, albedo: 1 field each for entire land model, not one per component
    • also return T_eff from land surface_temperature get_field so we can use this for radiative fluxes in atmosphere
  • add atmos get_field functions for SW_d, LW_d, cos(zenith_angle), diffuse_fraction
  • add land update_field! functions for SW_d, LW_d, cos(zenith_angle), diffuse_fraction

Changes needed in ClimaLand.jl

turbulent fluxes

  • functions to compute q, \rho from land, atmos inputs, return land thermo state
    • this will be called by coupler during flux calculation
    • move inside land turbulent flux calculation function? already has access to atmos thermo state

radiative fluxes

  • move diffuse_fraction update out of update_aux!, into function that dispatches on radiation driver type
  • use cos(zenith angle) instead of zenith angle to avoid converting back and forth

conservations

  • functions to compute total water, total energy
    • integrate soil variables over column

Changes needed in ClimaAtmos.jl

  • provide diffuse light fraction, SW_d, LW_d, cos(zenith_angle), LHF, SHF to coupler via get_field functions

Accommodate full land model and fields required for flux calculations

Preview Give feedback
  1. 🍃 leaf
    juliasloan25
  2. juliasloan25
  3. 🍃 leaf
    imreddyTeja szy21
  4. enhancement
    kmdeck
  5. imreddyTeja juliasloan25
  6. 🍃 leaf
    imreddyTeja juliasloan25

Compute fluxes in ClimaCoupler for each component of land model

Preview Give feedback
  1. 🍃 leaf
    juliasloan25

Run simulation with full land model

Preview Give feedback

SDI Revision Log

CC

@tapios @sriharshakandala @charleskawczynski @cmbengue

@juliasloan25 juliasloan25 changed the title [WIP] O2.5.4: Run coupled ClimaAtmos + ClimaLand soil/canopy/snow model and ensure stability comparable to bucket model O2.5.4: Run coupled ClimaAtmos + ClimaLand soil/canopy/snow model and ensure stability comparable to bucket model Feb 7, 2025
@juliasloan25 juliasloan25 added the 🏅 SDI Software Design Issue label Feb 7, 2025
@tapios
Copy link

tapios commented Feb 8, 2025

Looks good. It'll be exciting to see the full land model coupled to the atmosphere.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🏅 SDI Software Design Issue
Projects
None yet
Development

No branches or pull requests

6 participants