ESCOMP / ESCOMP/CTSM

Update streams handling to the OO streams redesign

Open
#3,605 0 comments 0 reactions 0 assignees View on GitHub
b4b code health enhancement modernization priority: low
Dominant language
Fortran
Stars
352
Forks
361
Avg merge
2d 21h
Merged PRs (30d)
7

Description

The files for stream handling in cpl/share_esmf should be updated to the new OO design in #3604. This will remove code duplication, and improves modularity and code design.

The files to do this for now are:

- ch4FInundatedStreamType.F90
- cropcalStreamMod.F90
- ExcessIceStreamType.F90
- FireDataBaseType.F90
- laiStreamMod.F90
- ndepStreamMod.F90
- PrigentRoughnessStreamType.F90
- SoilMoistureStreamMod.F90
- UrbanTimeVarType.F90
- ZenderSoilErodStreamType.F90

Note that SoilMoistureStreamMod.F90 has a 3D stream handling of streams so is a little different than the others, so will need some work in CTSMForce2DStreamBaseType in order to work. Probably the base type could be extended into a 3D version. Or this file could be left alone since it's different from the others.

This should reduce about 4000 lines of code for the streams implementations into 1500, and remove the 500 lines of code in unit_test_stubs for streams implementations. So it's a code maintenance win as well as a win for code readability.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.