Releases: Chrismarsh/CHM
Releases · Chrismarsh/CHM
1.5.4.1
1.5.4
- Update compatibility with Intel 2025.x
- Update docs for checkpointing and fsm
- Code clean up
- Try to fix a possible case that open ugrid files at the end of a run could stop CHM from cleanly terminating
- Remove google test submodule
- Disable vtp output of forcing points -- only geojson are written
Full Changelog: 1.5.3...1.5.4
1.5.3
- This release improves the handling of stations with multiple expansions
- Some confusing warning messages are cleaned up
- Fix the path in the PVD file creation to the vtus
- new version of bbhash
Full Changelog: 1.5.2...1.5.3
1.5.2
- Enforce that multiple netcdf input variables do not have duplicate
standard_nameattributes - Ensure that
stringtypelong_namesdo not cause a premature exit to looking for astandard_name - Fix a nc collective
- Chunk ugrid output per rank for performance increase
- add
start_indexattr
Full Changelog: 1.5.1...1.5.2
1.5.1
Try to ensure that no openmp usage is enabled if one of our dependents has openmp enabled
1.5.0
I think all the outstanding bugs from the major internal additions are resolved. Any further issues will be dealt with in point releases.
What's Changed
Docs
- Docs - Build instructions - fix typos by @jomey in #149
- update help documentation and runtime errors to further clarify the updated config changes
Output
- Write to ugrid netcdf files directly
- Ugrid output now defaults to shuffle+deflate level5 + lossy bitgroom (4 Sig figs precision). This results in a massive 5x-7x reduction in file size.
- std::format has been replaced with fmt::format to better support gcc@9+ as std::format was only added in gcc@13
- Fix compatibility with newer spdlog/fmt combos
- Removes output.mesh in favour of output.vtu and output.ugrid
- Defaults to the vtu/pvd and ugrid files being named the same as the output folder. This should make dealing with the outputs of multiple experiments more easily done
- Allow for checkpointing at arbitrary timesteps
Processes
- More robustly bound the Ti root in harder_precip_phase and PBSM to ensure convergence at more negative air temperatures
- Allow expansion of search for forcing input to be up to 250%
- Add
scale_factorto Windninja to provide a knob to turn for highly biased input windspeeds
Misc
- enforce cmake 3.30
Met
- requires CF-compliant standard_name attributes to dynamically determine variables
- support multipart netcdf files (e.g., one nc file per day)
- the grid of each multipart does not need to remain constant, allowing for trivially changing the resolution or product used at different timesteps, for example to switch from a short term 2.5km forcing to a coarser long-term 10km forcing
- Basic unit conversion for netcdf files (needs further work and more robust error handling)
- output geojson of mesh bounding box and stations to debug any issues when using coarse met forcing

- Rename
station_N_nearesttonum_stations_to_use - Move
num_stations_to_useand interpolation to forcing section
New Contributors
Full Changelog: 1.4.5...1.5.0
1.5.0b20
- Fix incorrect removal of ugrid x,y in lat lon
Full Changelog: 1.5.0b19...1.5.0b20
1.5.0 beta 19
- The initial ugrid code did not scale well. This release fixes that performance.
- Ugrid output now defaults to shuffle+deflate level5 + lossy bitgroom (4 Sig figs precision). This results in a massive 5x reduction in file size.
- Ugrid now only contains the timestamps written
- Ugrid output works with checkpointed and rotating files
std::formathas been replaced withfmt::formatto better support gcc@9+ asstd::formatwas only added in gcc@13
Barring any further bugs, this should hopefully be the last beta for the 1.5.0 release
Full Changelog: 1.5.0b18...1.5.0b19
1.5.0 beta 18
- Adds direct ugrid output, dramatically cutting down on memory consumption
- Removes
output.meshin favour ofoutput.vtuandoutput.ugrid - Defaults to the vtu/pvd and ugrid files being named the same as the output folder. This should make dealing with the outputs of multiple experiments more easily done

1.5.0b17
This reverts the ordinal mesh size changes due to some serious bugs and incompatibility with old meshes