ImperialCollegeLondon / ImperialCollegeLondon/virtual_ecosystem
M 1.1.3 Add feature flags and backward compatibility hooks (`enable_snow` TRUE/FALSE)
- 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
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