Skip to content

Code structure

FSoilTH/
├── app/FSoilTH.F90              standalone driver
├── src/core/                    parameters, constants, grid and state
├── src/physics/                 hydrology and heat processes
├── src/numerics/                reusable solvers
├── src/io/                      NetCDF utilities
├── cases/maqu_2022-06/          first development case
├── config/machines/             build profiles
├── docs/                        model documentation
├── Makefile
└── mkdocs.yml

Current modules

Layer Modules Current responsibility
Core ModelParameterMod, SoilParameterMod, SoilConstantMod Run parameters, soil parameters and constants
State SoilTypeMod Grid/state types and prototype initialization
Physics SoilHydrologyMod, SoilTemperatureMod Hydraulic/thermal properties and solvers
Numerics TridiagonalMod Tridiagonal linear-system solver
I/O EmptyNetcdfMod, NetcdfReadMod, NetcdfWriteMod NetCDF utility routines
Application FSoilTH.F90 Current prototype call chain

Intended evolution

The next architecture stage will separate grid, state and initialization; split physical properties from equation solvers; unify NetCDF error handling; and expose a driver-independent model lifecycle. Module splitting will occur only after regression tests protect the existing behavior.