Releases: GEOS-ESM/ESMA_cmake
Add ability to turn off F2PY
This release adds an option USE_F2PY
which by default is ON
preserving current behavior. However, on some pioneer systems (aka non-NASA) and containers, it's been found that some times the current f2py Cmake system is not robust enough. On those systems, f2py is not as crucial as building the model so using -DUSE_F2PY=OFF
can provide a workaround until the systems can be examined.
Updates to testing and stub generator
In support of MAPL 2.2 reorganization:
- Fix up how testing is done
- Generalize the stub generator
Generalize paths to MAPL Utilities
- Use
find_file
to generalize path to MAPL utilities (acg)
Updates for JEDI Compatibility
Work by @tclune to support the use of GEOS in JEDI.
- Updates ecbuild to geos/v1.0.5
- Adds
NOINSTALL
argument toesma_add_library()
Add support for GCC 10
This release adds support for building with GCC 10. The changes are due to two changes in GCC 10 Fortran support:
-
Mismatches between actual and dummy argument lists in a single file are now rejected with an error. Use the new option
-fallow-argument-mismatch
to turn these errors into warnings; this option is implied with-std=legacy
.-Wargument-mismatch
has been removed. -
The handling of a BOZ literal constant has been reworked to provide better conformance to the Fortran 2008 and 2018 standards. In these Fortran standards, a BOZ literal constant is a typeless and kindless entity. As a part of the rework, documented and undocumented extensions to the Fortran standard now emit errors during compilation. Some of these extensions are permitted with the
-fallow-invalid-boz
, where the error is degraded to a warning and the code is compiled as with older gfortran.
By default, GEOS (and MAPL, etc.) with GCC 10 will not compile without the two -fallow
flags set. This is not a good thing, but changing GEOS to comply will be a long term effort. This PR introduces two new CMake options:
MISMATCH_IS_ERROR
INVALID_BOZ_IS_ERROR
By default, they are OFF
, which means we treat the errors as warnings and pass the flags. But by specifying -DMISMATCH_IS_ERROR=YES
(and similar for BOZ) we can make them errors again and find the culprits. But if not enabled, CMake will spit out big warnings through ecbuild_warn()
about the fact that we are making them warnings.
f2py test update
Fixed
- Typo in message in esma_add_library().
Added
- Added macro esma_add_f2py_module() which wraps existing add_f2py_module() and
a call to add_test().
Allow flexible ecbuild mounting
Changed
- Allow ecbuild to be mounted as
ecbuild@
,@ecbuild
, orecbuild
ESMA Cmake 3.0
NOTE: This version of ESMA_cmake requires at least Baselibs 6.0.10 due to the requirement of yaFyaml and pFlogger. As such, the major version is updated to reflect that.
Changed
- Made gFTL-shared, yaFyaml, and pFlogger REQUIRED
Added
- Added ability for OpenMP and Double Precision to be used with f2py
Used by the MAM Optics code - Add ability to allow @-symbol to be at beginning or end of sub-repo (still in progress)
- Emit BASEDIR location during CMake
Python and add_library updates
- Added macro to verify availability of Python modules
Use:esma_find_python_module(<module> [REQUIRED])
- Added macro to add a post-build check availability of Python modules
Use:esma_check_python_module(<module>)
- Added option is
esma_add_library()
to use SHARED
Fixes for macOS
Fix for macOS and Clang found by @tclune
Also uptick the ecbuild version in Externals.cfg
to prevent a CMake warning.