ImperialCollegeLondon / ImperialCollegeLondon/virtual_ecosystem

M 1.1.3 Add feature flags and backward compatibility hooks (`enable_snow` TRUE/FALSE)

Open
#1,702 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
20
Forks
5
Avg merge
2d 1h
Merged PRs (30d)
34

Description

**Summary**
Add configuration flags and defaults so snow processes can be enabled without changing existing warm-climate behavior.

**Purpose**
Preserve current tropical model behavior while enabling incremental development and testing of snow-related processes.

**Tasks**
- [ ] Add configuration flags such as `enable_snow`, `enable_snow_albedo`
- [ ] Define default no-snow behavior when flags are off.
- [ ] Ensure that precipitation remains all rain when snow processes are disabled.
- [ ] Ensure that existing warm-climate energy-balance and hydrology workflows are unchanged when snow is disabled.
- [ ] Add any required interface hooks so snow logic can be inserted cleanly into the daily loop.

**Acceptance criteria**

- [ ] Existing tropical benchmark simulations reproduce baseline behavior when snow flags are off.
- [ ] Snow-related branches can be enabled without breaking warm-climate runs.
- [ ] Default settings are documented.

**Suggested tests**

- [ ] Regression test against an existing tropical benchmark with flags off.
- [ ] Warm-climate test with flags on but no subfreezing days, confirming identical or negligibly different behavior.

Contributor guide

Open the contributing guide

Research direction

Start by locating the configuration defaults and the daily loop that controls precipitation, energy balance, and hydrology. Run the existing tropical benchmark, then add regression coverage for flags off and for flags on without subfreezing days. Done means defaults are documented, disabled snow preserves baseline results, and enabled hooks do not change warm-climate behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.