Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
ff54665
Added optimisations to debug build
wilfchun Nov 14, 2025
f070468
Added reading of cme.yaml as default (falls back to .ini)
wilfchun Nov 14, 2025
58ffb49
Fix passing string instead of refs to string, part 1
davefavismortlock Nov 14, 2025
b046ac9
Fix passing string instead of refs to string, part 2
davefavismortlock Nov 14, 2025
079ba19
Fix passing string instead of refs to string, part 3
davefavismortlock Nov 14, 2025
10d7a01
Fix passing string instead of refs to string, part 4
davefavismortlock Nov 15, 2025
da22d57
Fix passing string instead of refs to string, part 5
davefavismortlock Nov 16, 2025
df9d866
Fix passing string instead of refs to string, part 6
davefavismortlock Nov 16, 2025
5b39699
Fix passing string instead of refs to string, part 7
davefavismortlock Nov 16, 2025
a1e7053
Fix passing string instead of refs to string, part 8
davefavismortlock Nov 16, 2025
e20a6ae
Fix passing string instead of refs to string, part 9
davefavismortlock Nov 16, 2025
0cc979e
Fix passing string instead of refs to string, part 10
davefavismortlock Nov 16, 2025
51da682
Fix passing string instead of refs to string, part 11
davefavismortlock Nov 17, 2025
d3cbb6b
Fix passing string instead of refs to string, part 12
davefavismortlock Nov 17, 2025
318e914
Fix passing string instead of refs to string, part 13
davefavismortlock Nov 17, 2025
eb72686
Bug fix re. talus
davefavismortlock Nov 21, 2025
5c08407
Removed CSE files
davefavismortlock Nov 21, 2025
b461e86
Removed CSE files
davefavismortlock Nov 21, 2025
8a93f13
CSE typology datafiles
davefavismortlock Nov 21, 2025
3d5e841
CSE typology datafiles
davefavismortlock Nov 21, 2025
c266f3c
Bug fix in CShore
davefavismortlock Nov 22, 2025
63b3a3b
Extra debug output
davefavismortlock Nov 22, 2025
93262eb
Remove CSE files again
davefavismortlock Nov 22, 2025
8172f58
More debug output
davefavismortlock Nov 22, 2025
994324a
CShore bug fix
davefavismortlock Nov 22, 2025
3999b9b
Depth of closure changes
davefavismortlock Nov 24, 2025
735f911
Bug fix
davefavismortlock Nov 24, 2025
e6daee6
Release v1.4.0: Add YAML configuration support
Nov 26, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion CHANGES
Original file line number Diff line number Diff line change
Expand Up @@ -244,8 +244,20 @@ CoastalME CHANGELOG
Enable Linux clang builds
Code tidying

1.4.0 YAML configuration file support added
CoastalME now accepts cme.yaml as default input (falls back to cme.ini)
Full migration of input features to YAML parsing workflow
Fixed YAML cliff collapse flag reading
Time-varying wave data support in YAML format
Fixed reading of time-variable wave data in YAML input
Depth of closure improvements
CShore bug fixes
Bug fixes related to talus
Performance optimizations: fixed passing string by value instead of by reference
Extra debug output capabilities
Code tidying

1.4.0_cliff_collapse
1.4.0_cliff_collapse (experimental branch)
Calculates mean high water (MHW) level
Now outputs MHW time series
Cliff notch apex now at or above MHW
Expand Down
6 changes: 1 addition & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,10 @@
</p>

# CoastalME
The [latest release](https://github.com/coastalme/coastalme/releases) is version 1.2.0 (18 Nov 2024).
The [latest release](https://github.com/coastalme/coastalme/releases) is version 1.4.0 (26 Nov 2025).

The testing version (it should work well, but use at your own risk) is 1.3.28 (28 Aug 2025)

Experimental versions (which may not even compile) are 1.4.0 (28 Aug 2025) and 1.4.0_cliff_collapse (11 Sep 2025)
=======
The experimental version (it may not even compile) is 1.4.0 (10 Nov 2025)

By <a href="https://www.bgs.ac.uk/people/payo-garcia-andres/">Andres Payo</a> and <a href="https://en.wikipedia.org/wiki/David_Favis-Mortlock">David Favis-Mortlock</a> and [others](COMMITERS.md).

## Table of contents
Expand Down
127 changes: 127 additions & 0 deletions RELEASE_NOTES_v1.4.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
# CoastalME v1.4.0 Release Notes

**Release Date:** November 26, 2025

## Overview

CoastalME v1.4.0 is a significant release that introduces YAML configuration file support, providing a modern alternative to the traditional INI format. This release maintains backward compatibility with existing INI files while offering enhanced configuration capabilities through YAML.

## Major Features

### YAML Configuration Support
- **New Default Format**: CoastalME now accepts `cme.yaml` as the default input configuration file
- **Backward Compatible**: Falls back to `cme.ini` if YAML file is not found
- **Full Feature Migration**: All input features have been migrated to the YAML parsing workflow
- **Time-Varying Wave Data**: Complete support for time-varying wave data in YAML format

### Key Benefits of YAML Format
- More human-readable configuration files
- Better structure for complex configurations
- Easier to maintain and version control
- Support for comments and documentation within config files

## Improvements and Bug Fixes

### Configuration Parsing
- Fixed YAML cliff collapse flag reading
- Fixed reading of time-variable wave data in YAML input
- Full migration of input features to YAML parsing workflow

### Model Improvements
- Depth of closure improvements
- CShore bug fixes
- Bug fixes related to talus handling

### Performance Optimizations
- Fixed multiple instances of passing strings by value instead of by reference
- Enhanced debug output capabilities

### Code Quality
- Extensive code tidying and refactoring
- Improved code maintainability

## Installation and Usage

### Building from Source
CoastalME builds easily using Linux. For Windows users, we recommend using Windows Subsystem for Linux (WSL).

1. Clone the repository:
```bash
git clone -b feature/ini-to-yaml https://github.com/CoastalModellingEnvironment/coastalme.git
```

2. Navigate to the src folder:
```bash
cd coastalme/src
```

3. Run the build script:
```bash
chmod a+x run_cmake.sh
./run_cmake.sh
```

4. Install:
```bash
make install
```

### Using YAML Configuration
Create a `cme.yaml` file in the CoastalME root directory. The software will automatically use YAML format if available, or fall back to `cme.ini` if not found.

Example YAML configuration files are provided in the repository:
- `cme.yaml` - Standard configuration
- `cme.yaml.CLIFF` - Cliff-specific configuration
- `cme.yaml.DUNE` - Dune-specific configuration
- `cme.yaml.THORPNESS` - Thorpness case study configuration

## Migration Guide

### From INI to YAML
If you have existing `cme.ini` files, you can continue using them without modification. However, we encourage migrating to YAML for the benefits mentioned above.

To migrate:
1. Use the provided `cme.yaml` examples as templates
2. Transfer your existing configuration parameters to the YAML structure
3. Take advantage of YAML's improved readability and commenting features

## Compatibility

- **Backward Compatible**: Existing INI files continue to work
- **Recommended**: GDAL >= 2.1
- **Required**: CMake >= 3.16
- **Required**: C++11 or later
- **Required**: Fortran 2008 compiler

## Known Issues

- This is a development/testing release from the `feature/ini-to-yaml` branch
- Some experimental features may require additional testing
- Please report any issues via the [GitHub issue tracker](https://github.com/coastalme/coastalme/issues)

## Future Development

Version 1.4.0 establishes the foundation for YAML-based configuration. Future releases will:
- Expand YAML configuration options
- Add more comprehensive validation
- Provide migration tools for complex configurations

## Credits

- **Lead Developers**: Andres Payo (British Geological Survey), David Favis-Mortlock (British Geological Survey)
- **Contributors**: See [COMMITERS.md](COMMITERS.md) for full list

## References

- Main site: https://www.osgeo.org/projects/coastalme/
- Wiki: https://earthwise.bgs.ac.uk/index.php/Category:Coastal_Modeling_Environment
- Repository: https://github.com/coastalme/coastalme
- Documentation: https://coastalme.github.io/coastalme/

## Citation

Payo, A., Favis-Mortlock, D., Dickson, M., Hall, J. W., Hurst, M. D., Walkden, M. J. A., Townend, I., Ives, M. C., Nicholls, R. J., and Ellis, M. A.: Coastal Modelling Environment version 1.0: a framework for integrating landform-specific component models in order to simulate decadal to centennial morphological changes on complex coasts, Geosci. Model Dev., 10, 2715–2740, https://doi.org/10.5194/gmd-10-2715-2017, 2017.

## License

CoastalME is free software distributed under the GNU General Public License v3.0. See [LICENSE.md](LICENSE.md) for details.
5 changes: 2 additions & 3 deletions cme.ini
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,10 @@
; Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
;
;======================================================================================================================
Input data file (path and name) : in/test_suite/minimal_cons_wave_angle_230/minimal.dat
Input data file (path and name) : in/test_suite/GMD2017/UndefendedCoastline/UndefendedCoastline.dat

;======================================================================================================================

Path for output : out/test_suite/minimal_cons_wave_angle_230/
Path for output : out/test_suite/GMD2017/UndefendedCoastline/

;======================================================================================================================

Expand Down
30 changes: 30 additions & 0 deletions cme.ini.OLD
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
;======================================================================================================================
;
; Initialization file for CoastalME
;
; Copyright (C) 2025 David Favis-Mortlock and Andres Payo
;
;=====================================================================================================================
;
; This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public
; License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later
; version.
;
; This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
; warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
;
; You should have received a copy of the GNU General Public License along with this program; if not, write to the Free
; Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
;
;======================================================================================================================
Input data file (path and name) : in/test_suite/minimal_cons_wave_angle_270/minimal.dat

;======================================================================================================================

Path for output : out/test_suite/minimal_cons_wave_angle_270/

;======================================================================================================================

; Uncomment if email notification required. This only works on Linux, and if configured for mail sending
#Email address for messages (Linux only) :

32 changes: 32 additions & 0 deletions cme.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#======================================================================================================================
#
# CoastalME initialization file (YAML format)
#
# Copyright (C) 2024 David Favis-Mortlock and Andres Payo
#
#=====================================================================================================================
#
# This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later
# version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with this program; if not, write to the Free
# Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
#======================================================================================================================

# Path to the main input configuration file (.dat or .yaml)
# Can be absolute or relative to the directory containing this file
input_data_file: in/CSE/Thorpness/in/thorpness.yaml

# Path for output files
# Can be absolute or relative to the directory containing this file
# IMPORTANT: A trailing slash is required
output_path: out/CSE/Thorpness/

# Email address for notification messages (optional, Linux only)
# Uncomment to enable email notifications
# email_address: user@example.com
32 changes: 32 additions & 0 deletions cme.yaml.CLIFF
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#======================================================================================================================
#
# CoastalME initialization file (YAML format)
#
# Copyright (C) 2024 David Favis-Mortlock and Andres Payo
#
#=====================================================================================================================
#
# This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later
# version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with this program; if not, write to the Free
# Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
#======================================================================================================================

# Path to the main input configuration file (.dat or .yaml)
# Can be absolute or relative to the directory containing this file
input_data_file: in/CSE/0_Typology/Cliff/in/cliff.yaml

# Path for output files
# Can be absolute or relative to the directory containing this file
# IMPORTANT: A trailing slash is required
output_path: out/CSE/Typology/Cliff/

# Email address for notification messages (optional, Linux only)
# Uncomment to enable email notifications
# email_address: user@example.com
32 changes: 32 additions & 0 deletions cme.yaml.DUNE
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#======================================================================================================================
#
# CoastalME initialization file (YAML format)
#
# Copyright (C) 2024 David Favis-Mortlock and Andres Payo
#
#=====================================================================================================================
#
# This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later
# version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with this program; if not, write to the Free
# Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
#======================================================================================================================

# Path to the main input configuration file (.dat or .yaml)
# Can be absolute or relative to the directory containing this file
input_data_file: in/CSE/0_Typology/Dune/in/dune.yaml

# Path for output files
# Can be absolute or relative to the directory containing this file
# IMPORTANT: A trailing slash is required
output_path: out/CSE/Typology/Dune/

# Email address for notification messages (optional, Linux only)
# Uncomment to enable email notifications
# email_address: user@example.com
32 changes: 32 additions & 0 deletions cme.yaml.THORPNESS
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#======================================================================================================================
#
# CoastalME initialization file (YAML format)
#
# Copyright (C) 2024 David Favis-Mortlock and Andres Payo
#
#=====================================================================================================================
#
# This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later
# version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with this program; if not, write to the Free
# Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
#======================================================================================================================

# Path to the main input configuration file (.dat or .yaml)
# Can be absolute or relative to the directory containing this file
input_data_file: in/CSE/Thorpness/in/thorpness.yaml

# Path for output files
# Can be absolute or relative to the directory containing this file
# IMPORTANT: A trailing slash is required
output_path: out/CSE/Thorpness/

# Email address for notification messages (optional, Linux only)
# Uncomment to enable email notifications
# email_address: user@example.com
Loading