Skip to content

feat(MEGAN): Adding MEGAN and BDSNP biogenics and soilnox #7

Open
bbakernoaa wants to merge 19 commits into
mainfrom
feature/megan3
Open

feat(MEGAN): Adding MEGAN and BDSNP biogenics and soilnox #7
bbakernoaa wants to merge 19 commits into
mainfrom
feature/megan3

Conversation

@bbakernoaa
Copy link
Copy Markdown
Collaborator

This pull request introduces major enhancements to the CECE model's physics and chemistry capabilities, focusing on expanding and biogenic VOC speciation support. Key updates include the addition of biogenic emission modules, comprehensive speciation mapping files for several chemical mechanisms, and new unit/property tests for these features. There are also minor configuration and formatting improvements.

Major new features and modules:

  • Introduced new biogenic emission and speciation modules: cece_megan3, cece_speciation_config, cece_speciation_engine, cece_canopy_model, cece_emission_activity, and cece_bdsnp, enhancing support for advanced biogenic VOC and soil NOx emissions. [1] [2]

Speciation mapping and mechanism support:

  • Added comprehensive speciation mapping YAML files for MEGAN3-to-mechanism mappings: map_cb6.yaml, map_cracmm.yaml, map_racm2.yaml, and map_saprc07.yaml, supporting CB6_AE7, CRACMM2, RACM2, and SAPRC07 mechanisms, respectively. These files enable detailed and flexible mapping of emission classes to chemical mechanism species. [1] [2] [3] [4]
  • Added a species definition file for the CB6_AE7 mechanism (spc_cb6.yaml), listing all mechanism species and their molecular weights for use in speciation calculations.

Testing and quality assurance:

  • Introduced new unit/property tests for the added speciation configuration (test_speciation), MEGAN3 (test_megan3), and BDSNP soil NOx (test_bdsnp), ensuring correctness and robustness of the new modules. These tests are now included in the test discovery and build process. [1] [2]

- Add native C++ implementations of FENGSHA, Ginoux (GOCART2G), and K14 dust emission schemes with Kokkos GPU-portable parallelization
- Add Fortran bridge implementations for FENGSHA, Ginoux, and K14 schemes to call existing Fortran kernels
- Add header files defining FengshaScheme, FengshaFortranScheme, GinouxScheme, GinouxFortranScheme, and K14Scheme classes
- Add Fortran kernel modules (fengsha_kernel.F90, ginoux_kernel.F90, k14_kernel.F90) implementing core dust emission algorithms
- Add C++ wrapper implementations (cece_fengsha.cpp, cece_ginoux.cpp, cece_k14.cpp) and Fortran bridge implementations
- Add property-based unit tests for FENGSHA, Ginoux, and K14 schemes (test_fengsha_properties.cpp, test_ginoux_properties.cpp, test_k14_properties.cpp)
- Update CMakeLists.txt to include new source files, Fortran kernels, and test executables with proper linking and test discovery
- Enables multi-scheme dust emission modeling with both native C++ and Fortran-based implementations
- Add DMS sea-air exchange flux documentation with Schmidt number parameterization
- Add Ginoux legacy dust emission scheme documentation with threshold velocity algorithm
- Add FENGSHA dust scheme documentation with saltation model and size-resolved bins
- Add Ginoux multi-bin dust scheme documentation with vertical flux distribution
- Add K14 dust scheme documentation with brittle fragmentation model
- Add lightning NOx production documentation with flash rate parameterization
- Add MEGAN biogenic VOC emission documentation with activity factor approach
- Add sea salt emission documentation with size-resolved bin distribution
- Add soil NOx emission documentation with temperature and moisture dependencies
- Add volcanic SO2 emission documentation with injection height specifications
- Update FENGSHA C++ headers and implementation with refined algorithm details
- Update K14 C++ headers and implementation with improved fragmentation calculations
- Update Fortran bridge implementations for FENGSHA and K14 with enhanced parameter handling
- Update Fortran kernel modules with optimized computational kernels
- Increase clang-format ColumnLimit from 100 to 150 characters for improved code readability
- Add comprehensive Physics Schemes section to users guide with table of all available schemes
- Add Python Interface section with example usage and build instructions
- Reformat header files to comply with new column limit across compute, config, data ingestor, diagnostics, and physics modules
- Update all source files in core, I/O, and physics implementations to match new formatting standards
- Reformat test files to align with updated clang-format configuration
- Improve code consistency and maintainability across the entire codebase
…cy files

- Upgrade pip and add numpy to CI dependencies for improved package management
- Fix whitespace formatting in GitHub Actions workflows for consistency
- Refactor MEGAN scheme parameters to support configurable species and emission factors
- Add new gamma_age and gamma_sm parameters to MeganScheme class for enhanced flexibility
- Rename aef_isop_ to aef_ and introduce species_name_ and export_field_name_ fields
- Add clang-format directives to logger for precise formatting control
- Fix struct initialization syntax in CeceLogger for C++ standards compliance
- Remove legacy MACCity_4x5.nc data file from scripts directory
- Remove deprecated cece_core_initialize_p2_wrapper.cpp implementation file
- Expand Python bindings to support updated MEGAN scheme configuration
- Consolidate multi-line string concatenations in tide_yaml_c.cpp error messages
- Reformat function signatures in cece_megan.cpp to fit within column limit
- Adjust line breaks in conditional expressions and assignments across modified files
- Align with increased clang-format column limit configuration from recent style updates
- Change struct stat initialization from `st{}` to `st {}` for consistency
- Consolidate ISO8601 test date vector onto single line to improve readability
- Maintain compliance with established code formatting standards
- Add clang-format off/on directives around multi-line error message
- Preserve error message formatting across line breaks
- Maintain consistency with code style guidelines
…ists

- Remove src/cece_core_initialize_p2_wrapper.cpp from CECE_SRCS
- Eliminate redundant wrapper file that duplicates initialization logic
- Streamline build configuration by removing unused source file reference
…ffix

- Rename cece_core_initialize_p2_impl to cece_core_initialize_p2
- Simplify public API by removing internal implementation naming convention
- Maintains all existing functionality and parameters
- Add MEGAN3 canopy model with emission activity calculations
- Add BDSNP soil NOx emission module with Fortran kernel
- Implement speciation engine supporting CB6, CRACMM2, RACM2, and SAPRC07 mechanisms
- Add speciation mapping configuration files for all supported mechanisms
- Add Fortran bridge implementations for MEGAN3 and BDSNP kernels
- Update CMakeLists.txt with new source files and test targets
- Add comprehensive test suites for speciation, MEGAN3, and BDSNP modules
- Update soil NOx module with improved Fortran bridge integration
- Add example configuration file for MEGAN3 setup
- Remove obsolete test checkpoint script
@bbakernoaa bbakernoaa added the enhancement New feature or request label Apr 16, 2026
@bbakernoaa bbakernoaa changed the title Feature/megan3 feat(MEGAN): Adding MEGAN and BDSNP biogenics and soilnox Apr 16, 2026
- Reorganize include statements to follow standard ordering (system headers first, then project headers)
- Reformat function signatures to comply with column limit constraints
- Break long parameter lists across multiple lines with proper indentation
- Adjust spacing and line breaks in function bodies for consistency
- Update inline function formatting in header files
- Ensure consistent formatting across BDSNP, MEGAN3, canopy model, and speciation modules
- Update corresponding test files to match reformatted implementations
- Move gamma helper functions (get_gamma_lai, get_gamma_age, get_gamma_sm, get_gamma_t_li, get_gamma_t_ld, get_gamma_par_pceea, get_gamma_co2) from cece_megan.cpp to cece_megan.hpp as KOKKOS_INLINE_FUNCTION
- Add necessary includes (Kokkos_Core.hpp, algorithm, cmath, numbers) to header
- Update cece_emission_activity.cpp to include cece_megan.hpp instead of forward declaring get_gamma_co2
- Enable gamma functions to be inlined across multiple translation units (cece_megan.cpp, cece_megan3.cpp, cece_emission_activity.cpp)
- Consolidate function documentation in header for better maintainability
- Move cece_megan.hpp include before namespace declaration in cece_emission_activity.cpp to ensure proper header availability
- Remove redundant include comment block from cece_megan3.cpp and relocate cece_megan.hpp include to top of includes section
- Consolidate include organization for consistency across emission-related modules
- Improves header dependency clarity and follows include ordering conventions
…ding

- Add CECE_SOURCE_DIR compile definition to test_speciation target in CMakeLists.txt
- Update LoadCB6SpeciationConfig test to resolve speciation config file paths relative to source directory
- Use CECE_SOURCE_DIR macro to construct absolute paths for spc_cb6.yaml and map_cb6.yaml
- Ensures test can locate configuration files regardless of working directory when executed
@quaz115
Copy link
Copy Markdown
Collaborator

quaz115 commented Apr 17, 2026

Thanks for putting this together. I can see the MEGAN3 canopy model with the gamma activity factors (LAI, age, soil moisture, temperature, PAR, CO₂), the BDSNP Fortran kernel with a C++ bridge, and the speciation engine framework intended to support CB6/CRACMM2/RACM2/SAPRC07 via the YAML mapping configs. Good call separating the speciation into configurable YAML files rather than hardcoding, that'll make adding new mechanisms straightforward. These are all great foundations. I also see the dust schemes (FENGSHA, Ginoux, K14) in the earlier commits.

I plan to start pushing code updates based on my recent BDISNP work. These should layer cleanly on top of your BDSNP MEGAN3 baseline (will think of a YAML toggle to switch between base and update if it makes computational sense).

Will start with detailed itemized review comments (and BDISNP code update) next week.

@bbakernoaa
Copy link
Copy Markdown
Collaborator Author

Thanks @quaz115. With this there is actually 2 yaml files 1) the MICM species yaml that includes the molecular weights and 2) the emission mapping per dataset/scheme. I’m still working out exactly how this would work on the anthropogenic side but the bones are there.

At the end of the call it will create output species like “MEGAN_ISOP” or “MEGAN_TERP” etc speciated from the 19 base megan species.

For the physics processes this is fairly clear cut in my opinion. But for anthro I’m still figuring it out

@bbakernoaa
Copy link
Copy Markdown
Collaborator Author

Note that this builds on #5 an #6 so it shows a ton of files changed but it's really only like 20 including the yamls and docs.

@bbakernoaa
Copy link
Copy Markdown
Collaborator Author

And the clang-format and clang-tidy calls modified a bunch too because I increased the line length to 150.

…lines

- Remove blank line after Kokkos_Core.hpp include
- Reformat get_gamma_t_ld function signature to single line
- Reformat get_gamma_par_pceea function signature across multiple lines
- Break long get_gamma_par_pceea call in MeganScheme::Run to improve readability
- Ensure consistent code formatting across physics module
…n files

- Update physics schemes table to distinguish between single-species `megan` and multi-species `megan3`
- Add `megan3` scheme with mechanism and speciation file parameters
- Rename `soil_nox` to `bdsnp` with updated parameter names
- Add comprehensive SPC/MAP speciation file documentation with format specifications and examples
- Document shipped mechanism files (CB6, RACM2, SAPRC07, CRACMM2)
- Provide guidance for adding custom chemical mechanisms
- Expand MEGAN documentation to cover both single-species and MEGAN3 schemes
- Update code examples and parameter descriptions across physics, MEGAN, and soil NOx modules
…ith clang-format

- Consolidate split string literals in EmissionActivityCalculator warning message
- Consolidate split string literals in Megan3Scheme warning message
- Consolidate split string literals in Megan3FortranScheme warning message
- Improves code consistency with clang-format guidelines across emission modules
@bbakernoaa bbakernoaa added the Physics When adding or modifying a physics parameterization please use this. label Apr 21, 2026
@bbakernoaa bbakernoaa added the Core When adding new capabilities or modifying the core. label Apr 21, 2026
@bbakernoaa bbakernoaa self-assigned this Apr 21, 2026
bbakernoaa added a commit that referenced this pull request Apr 27, 2026
* Add CI workflow for CCPP interface using CCPP SCM

Introduces a new CI workflow that integrates CECE physics schemes into
the CCPP SCM host model.

Key changes:
- Added `.github/workflows/ccpp_scm_integration.yml` to automate testing
  of the CCPP interface.
- Created `scripts/integrate_cece_scm.py` to programmatically patch
  the SCM with CECE metadata, schemes, and build configuration.
- Added `src/ccpp/suites/suite_SCM_GFS_v16_CECE.xml` which integrates
  CECE emissions into a standard SCM suite.
- The CI verifies metadata consistency, cap generation, and infrastructure
  readiness by running the CCPP prebuild and attempting a build/run
  cycle within the SCM ecosystem.

* Add CI workflow for CCPP interface using CCPP SCM

Introduces a new CI workflow that integrates CECE physics schemes into
the CCPP SCM host model.

Key changes:
- Added `.github/workflows/ccpp_scm_integration.yml` to automate testing
  of the CCPP interface.
- Created `scripts/integrate_cece_scm.py` to programmatically patch
  the SCM with CECE metadata, schemes, and build configuration.
- Added `src/ccpp/suites/suite_SCM_GFS_v16_CECE.xml` which integrates
  CECE emissions into a standard SCM suite.
- Fixed formatting in `scripts/integrate_cece_scm.py` to satisfy pre-commit
  hooks.

The CI verifies metadata consistency, cap generation, and infrastructure
readiness by running the CCPP prebuild and attempting a build/run
cycle within the SCM ecosystem.

* Enable CCPP SCM integration CI on all branches

Updates the CI workflow trigger to run on all pushes and pull requests
to facilitate development and verification of the CCPP interface.

* Add CI workflow for CCPP interface using CCPP SCM

- Introduces a new CI workflow that integrates CECE physics schemes into
  the CCPP SCM host model.
- Created `scripts/integrate_cece_scm.py` to programmatically patch
  the SCM with CECE metadata, schemes, and build configuration.
- Added `src/ccpp/suites/suite_SCM_GFS_v16_CECE.xml` which integrates
  CECE emissions into a standard SCM suite.
- Renamed `cece_ccpp_sync_import_to_device` to `cece_ccpp_sync_import_to_dev`
  across the codebase to avoid Fortran line truncation issues when
  integrated into the SCM.

The CI verifies metadata consistency, cap generation, and infrastructure
readiness by running the CCPP prebuild and attempting a build/run
cycle within the SCM ecosystem.

* Add CI workflow for CCPP interface using CCPP SCM

- Introduces a new CI workflow that integrates CECE physics schemes into
  the CCPP SCM host model.
- Created `scripts/integrate_cece_scm.py` to programmatically patch
  the SCM with CECE metadata, schemes, and build configuration.
- Added `src/ccpp/suites/suite_SCM_GFS_v16_CECE.xml` which integrates
  CECE emissions into a standard SCM suite.
- Renamed `cece_ccpp_sync_import_to_device` to `cece_ccpp_sync_import_to_dev`
  across the codebase to avoid Fortran line truncation issues when
  integrated into the SCM.
- Ensured CI runs on all branches.

The CI verifies metadata consistency, cap generation, and infrastructure
readiness by running the CCPP prebuild and attempting a build/run
cycle within the SCM ecosystem.

* Add CI workflow for CCPP interface using CCPP SCM

- Introduces a new CI workflow that integrates CECE physics schemes into
  the CCPP SCM host model.
- Created `scripts/integrate_cece_scm.py` to programmatically patch
  the SCM with CECE metadata, schemes, and build configuration.
- Added `src/ccpp/suites/suite_SCM_GFS_v16_CECE.xml` which integrates
  CECE emissions into a standard SCM suite.
- Renamed `cece_ccpp_sync_import_to_device` to `cece_ccpp_sync_import`
  across the codebase to avoid Fortran line truncation issues when
  integrated into the SCM, and ensured correct line wrapping in
  USE statements.
- Ensured CI runs on all branches.

The CI verifies metadata consistency, cap generation, and infrastructure
readiness by running the CCPP prebuild and attempting a build/run
cycle within the SCM ecosystem.

* Add CI workflow for CCPP interface using CCPP SCM

- Introduces a new CI workflow that integrates CECE physics schemes into
  the CCPP SCM host model.
- Created `scripts/integrate_cece_scm.py` to programmatically patch
  the SCM with CECE metadata, schemes, and build configuration.
- Added `src/ccpp/suites/suite_SCM_GFS_v16_CECE.xml` which integrates
  CECE emissions into a standard SCM suite.
- Renamed `cece_ccpp_sync_import_to_device` to `cece_ccpp_sync_import`
  across the codebase to avoid Fortran line truncation issues when
  integrated into the SCM.
- Updated `CMakeLists.txt` to conditionally disable ESMF-dependent tests
  and ensure NetCDF is found for standalone builds.

The CI verifies metadata consistency, cap generation, and infrastructure
readiness by running the CCPP prebuild and attempting a build/run
cycle within the SCM ecosystem.

* Add CCPP SCM integration and CI workflow

- Implement .github/workflows/ccpp_scm_integration.yml for automated testing with CCPP SCM.
- Add scripts/integrate_cece_scm.py to programmatically integrate CECE into the SCM build system.
- Create src/ccpp/suites/suite_SCM_GFS_v16_CECE.xml for SCM execution.
- Refactor CCPP API sync function name to 'cece_ccpp_sync_import' to comply with 132-char Fortran line limits.
- Fix CMakeLists.txt flow control nesting errors and remove redundant NetCDF discovery blocks.
- Improve CMake robustness with standalone NetCDF discovery and guarded ESMF dependencies.

* Add CI for CCPP interface with SCM integration and build fixes

- Implement .github/workflows/ccpp_scm_integration.yml for CI.
- Add scripts/integrate_cece_scm.py for programmatic SCM patching.
- Fix CMakeLists.txt nesting and redundant discovery.
- Make NetCDF optional in cece_standalone_writer.cpp to resolve linker errors.
- Refactor CCPP sync API to comply with Fortran line length limits.
- Update property-based tests for API consistency.

* Implement CI for CCPP interface utilizing CCPP SCM

- Add .github/workflows/ccpp_scm_integration.yml for automated SCM integration tests.
- Add scripts/integrate_cece_scm.py to programmatically patch CCPP SCM for CECE integration.
- Create src/ccpp/suites/suite_SCM_GFS_v16_CECE.xml for SCM execution.
- Make NetCDF an optional dependency to resolve build errors in non-NetCDF environments.
- Gate ESMF-dependent tests behind CECE_ENABLE_NUOPC for build portability.
- Refactor CCPP sync API and split long Fortran 'use' statements to satisfy 132-char line limits.
- Fix CMake flow control and formatting issues.

* Add CI for CCPP interface with SCM integration and build fixes

- Implement .github/workflows/ccpp_scm_integration.yml for CI.
- Add scripts/integrate_cece_scm.py for programmatic SCM patching, including suite metadata and dependency discovery.
- Create src/ccpp/suites/suite_SCM_GFS_v16_CECE.xml for SCM execution.
- Fix CMakeLists.txt nesting and redundant discovery; make NetCDF optional to resolve linker errors.
- Refactor CCPP sync API to 'cece_ccpp_sync_import' to comply with Fortran line length limits.
- Update property-based tests for API consistency and fix test linking.

* Add CI for CCPP interface with SCM integration and runtime fixes

- Implement .github/workflows/ccpp_scm_integration.yml for automated CI.
- Add scripts/integrate_cece_scm.py to programmatically patch CCPP SCM.
- NEW: Update integration script to register 'SCM_GFS_v16_CECE' defaults in SCM's 'suite_info.py' to allow successful execution.
- Fix CMakeLists.txt nesting and redundant discovery; make NetCDF optional.
- Refactor CCPP sync API to comply with Fortran line length limits.
- Ensure all tests link correctly with the 'cece' library.

* Add CI for CCPP interface with SCM integration and execution fixes

- Implement .github/workflows/ccpp_scm_integration.yml for automated CI.
- Add scripts/integrate_cece_scm.py for programmatic SCM patching.
- Fix suite_info.py patching in integration script to handle nested dictionaries and ensure correct defaults.
- Use full library paths in SCM's CMake for robust linking of Kokkos and yaml-cpp.
- Fix CMakeLists.txt nesting and make NetCDF optional.
- Refactor CCPP sync API to comply with Fortran line length limits.

* Add CI for CCPP interface with SCM integration and execution fixes

- Implement .github/workflows/ccpp_scm_integration.yml for automated CI.
- Add scripts/integrate_cece_scm.py for programmatic SCM patching.
- Fix suite_info.py patching in integration script to correctly register the 'SCM_GFS_v16_CECE' suite with default namelists and tracers.
- Use full library paths in SCM's CMake for robust linking of Kokkos and yaml-cpp.
- Fix CMakeLists.txt nesting and make NetCDF optional.
- Refactor CCPP sync API to comply with Fortran line length limits.

* Add CI for CCPP interface with SCM integration and execution fixes

- Implement .github/workflows/ccpp_scm_integration.yml for automated CI.
- Add scripts/integrate_cece_scm.py for programmatic SCM patching.
- Fix suite_info.py patching in integration script using dynamic Python registration to ensure correct defaults for the 'SCM_GFS_v16_CECE' suite.
- Use full absolute paths (mapped to CMAKE_SOURCE_DIR) in SCM's CMake for robust linking of libcece, Kokkos, and yaml-cpp.
- Fix CMakeLists.txt nesting and make NetCDF optional.
- Refactor CCPP sync API to comply with Fortran line length limits.

* Add CI for CCPP interface with robust SCM integration

- Implement .github/workflows/ccpp_scm_integration.yml for automated CI.
- Add scripts/integrate_cece_scm.py for programmatic SCM patching.
- Fix suite_info.py patching to correctly register 'SCM_GFS_v16_CECE' in the suite_list format used by SCM.
- Use full paths for linking libcece, Kokkos, and yaml-cpp in SCM's CMake system.
- Fix CMakeLists.txt nesting and redundant discovery; make NetCDF optional.
- Refactor CCPP sync API to comply with Fortran line length limits.

* Add CI for CCPP interface with robust SCM integration and runtime fixes

- Implement .github/workflows/ccpp_scm_integration.yml for automated CI.
- Add scripts/integrate_cece_scm.py for programmatic SCM patching.
- Fix suite_info.py patching in integration script to correctly register 'SCM_GFS_v16_CECE' defaults in both dict and list formats used by SCM.
- Use full paths for linking libcece, Kokkos, and yaml-cpp in SCM's CMake for maximum robustness.
- Fix CMakeLists.txt nesting and redundant discovery; make NetCDF optional.
- Refactor CCPP sync API to comply with Fortran line length limits.

* Add CI for CCPP interface with robust SCM integration

- Implement .github/workflows/ccpp_scm_integration.yml for automated CI.
- Add scripts/integrate_cece_scm.py for programmatic SCM patching.
- Fix suite_info.py patching to correctly register 'SCM_GFS_v16_CECE' defaults.
- Use full paths for linking libcece, Kokkos, and yaml-cpp in SCM's CMake system.
- Fix CMakeLists.txt nesting and redundant discovery; make NetCDF optional.
- Refactor CCPP sync API to comply with Fortran line length limits.

* Add CI for CCPP interface with robust SCM integration

- Implement .github/workflows/ccpp_scm_integration.yml for automated CI.
- Add scripts/integrate_cece_scm.py for programmatic SCM patching.
- Fix suite_info.py patching to correctly register both 'SCM_GFS_v16_CECE' and 'SCM_GFS_v16_CECE_ps' defaults.
- Provide suite XML files for both full and prescribed surface physics.
- Use full paths for linking libcece, Kokkos, and yaml-cpp in SCM's CMake system.
- Fix CMakeLists.txt nesting and make NetCDF optional.
- Refactor CCPP sync API to comply with Fortran line length limits.

---------

Co-authored-by: bbakernoaa <22104759+bbakernoaa@users.noreply.github.com>
Resolved conflicts:
- CMakeLists.txt: Adopt main's gersemi formatting and venv test infrastructure;
  add feature branch's new sources (speciation, megan3, bdsnp) and test targets
- docs/ginoux.md, docs/k14.md: Use main's cleaner descriptions with cross-links
- docs/megan.md, docs/soil_nox.md: Keep feature branch's comprehensive MEGAN3/BDSNP docs
- src/io/cece_standalone_writer.cpp: Use main's overflow-safe size_t casts
- src/physics/cece_fengsha.cpp, cece_fengsha_fortran_bridge.cpp: Use main's
  logger improvements (CECE_LOG_WARNING)
- src/physics/cece_megan.cpp: Keep feature branch's refactored version
  (gamma functions extracted to shared header for MEGAN3 reuse)
- Removed test_checkpoint.py (deleted in feature branch)
…onfig parser

Main's config parser references refresh_interval_seconds on
CeceDataStreamConfig, PhysicsSchemeConfig, and
stacking_refresh_interval_seconds on DriverConfig. These fields were
introduced by the advanced_clock feature (PR #8) and merged to main.

Add all three fields with default value 0 (no-op, backward compatible)
so the config parser compiles correctly on this branch.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Core When adding new capabilities or modifying the core. enhancement New feature or request Physics When adding or modifying a physics parameterization please use this.

Projects

Development

Successfully merging this pull request may close these issues.

2 participants