Skip to content

Commit

Permalink
Update changelog, version numbers and build info (#873)
Browse files Browse the repository at this point in the history
Co-authored-by: rem1776 <Ryan.Mulhall@lscamd50-d.gfdl.noaa.gov>
  • Loading branch information
rem1776 and rem1776 authored Dec 23, 2021
1 parent 6d179fc commit d6081f5
Show file tree
Hide file tree
Showing 8 changed files with 64 additions and 7 deletions.
33 changes: 32 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,34 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0),
and this project uses `yyyy.rr[.pp]`, where `yyyy` is the year a patch is released,
`rr` is a sequential release number (starting from `01`), and an optional two-digit
sequential patch number (starting from `01`).
## [2021.04] - 2021-12-23
### Known Issues
- GCC 11.1.0 is unsupported due to compilation issues with `select type`. The issue appears to be resolved in later GCC releases
### Added
- PARSER: Adds a parser using the libyaml C library to support yaml format input files.
Currently implemented in data override and can be enabled with the configure option `--with-yaml` or with CMake option `-DWITH_YAML`
- FMS: Adds an interface, `fms_c2f_string`, to convert C strings and C pointers to Fortran strings
- MPP: Adds a routine `mpp_shift_nest_domains` and a field to `nest_domain_type` to allow for modifying the position of a given nest domain
- FMS2_IO: Reintroduces the option to flush_nc_files with fms2_io
### Changed
- DIAG_MANAGER: Cleans up IO code and replaces any remaining dependencies to mpp_io with fms2_io
- FMS_IO: Changes to allow for custom paths for namelists, field_table, and the INPUT directory
- EXCHANGE: Changes real sizes in xgrid and gradient modules to be explicitly r8_kind to prevent runtime issues with mixed precision
### Deprecated
- MPP: `get_unit` has been deperecated in favor of the Fortran intrinsic `newunit` and will now generate a warning if used
### Removed
- TIME_MANAGER: Removes deprecated array-based gregorian calender calculations that were replaced in 2021.02
### Fixed
- DIAG_MANAGER: Fixes issues with 3D diurnal diagnostic output and removes a redundant write_data call
- TIME_INTERP: Fixes load_record read_data call for 3d variables with fms2_io and eliminates redundant data loading and validity checking for on-grid interpolations.
- MPP: Fixed a bug with non-blocking domain updates failing on GNU compilers from uninitialized values
- MPP: Fixed issues with the `mpp_type_free` function causing errors and memory leaks when freeing the `mpp_byte` type

### Tag Commit Hashes
- 2021.04-alpha1 (e0b998321611f80f2d0c587a13b8c03c173d5520)
- 2021.04-alpha2 (ab1b0a4cb2beac72d889d94a628e0d02092723b2)
- 2021.04-alpha3 (90583aeb369831b01296ab4b0e7e6a1b69ed91b1)
- 2021.04-beta1 (6d179fcdc189070f74d49e0025d072fa304e96d6)

## [2021.03] - 2021-08-16
### Known Issues
Expand All @@ -27,6 +55,9 @@ sequential patch number (starting from `01`).
- MPP: Fixed uninitialized variables for data domains in mpp domains broadcast routines
- MPP: Minor memory leaks from deallocating domains
- AXIS_UTILS: Fix PGI related error with string length sizes
### Tag Commit Hashes
- 2021.03-alpha1 (87d945d8dba6341f1f56631047ae5d3e5b4ab828)
- 2021.03-beta1 (6d6ff9595ede12ea0a342ae014442708a27041d2)

## [2021.02] - 2021-05-20
### Added
Expand Down Expand Up @@ -74,7 +105,7 @@ sequential patch number (starting from `01`).
### Removed
### Fixed
- MPP: Fixed a bug causing mpp_get_UG_domain_tile_pe_inf to seg fault from the incorrect assignment of an optional argument
- FMS: Fixes issues with FMS unit tests failing from pointer allocations by reworking deallocate_unstruct_pass_type
- FMS: Fixes issues with FMS unit tests failing from pointer allocations by reworking deallocate_unstruct_pass_type
- MPP_IO: Fixes unintentional printing of file attributes
- An issue with the automake build system causing unnecessary rebuilds of source files
- Fixes CMake build of the FMS library to install configuration files in the appropriate directories; and for OpenMP dependencies to the private
Expand Down
5 changes: 5 additions & 0 deletions CMAKE_INSTRUCTIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ export CC=mpiicc
export NetCDF_ROOT=`nc-config --prefix`
```

### If building with yaml parser (-DWITH_YAML)
```
export LIBYAML_ROOT=<your libyaml install directory>
```

## 2. Build and install FMS with CMake
`<prefix>` is the full install directory for FMS provided by user
Expand All @@ -47,6 +51,7 @@ The following build options are available:
-DENABLE_QUAD_PRECISION "Enable compiler definition -DENABLE_QUAD_PRECISION" DEFAULT: ON
-DGFS_PHYS "Enable compiler definition -DGFS_PHYS" DEFAULT:OFF
-DLARGEFILE "Enable compiler definition -Duse_LARGEFILE" DEFAULT:OFF
-DWITH_YAML "Enable compiler definition -Duse_yaml" DEFAULT:OFF
```

## 3. Installation structure
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ cmake_minimum_required(VERSION 3.12 FATAL_ERROR)

# Define the CMake project
project(FMS
VERSION 2021.03.0
VERSION 2021.04.0
DESCRIPTION "GFDL FMS Library"
HOMEPAGE_URL "https://www.gfdl.noaa.gov/fms"
LANGUAGES C Fortran)
Expand Down
6 changes: 5 additions & 1 deletion INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ The following external libraries are required when building libFMS
* Fortran 2003 standard compiler
* Fortran compiler that supports Cray Pointer
* MPI C and Fortran headers and libraries (optional)
* Libyaml header and libraries (optional)
* Linux or Unix style system

## Supported Compilers
Expand Down Expand Up @@ -56,10 +57,13 @@ configure option will require the user to give all required flags.

Run `./configure --help` to see other available configure options.

For more information on building with autotools and build options please see
[BUILD_SYSTEM.md](https://github.com/NOAA-GFDL/FMS/blob/main/libFMS/BUILD_SYSTEM.md)

### CMake

To build using CMake, follow the instructions in
[CMAKE_INSTRUCTIONS.mk](https://github.com/NOAA-GFDL/FMS/blob/master/CMAKE_INSTRUCTIONS.md).
[CMAKE_INSTRUCTIONS.mk](https://github.com/NOAA-GFDL/FMS/blob/main/CMAKE_INSTRUCTIONS.md).
Currently the CMake configuration is the most restrictive build option as the
compiler flags are immutable.

Expand Down
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,20 @@ infrastructural changes to enable such developments are within the scope of FMS.
The collaborative software review process of contributed models is therefore an
essential facet of FMS.

## Dependencies and installation

The following external libraries are required when building libFMS

* NetCDF C and Fortran (77/90) headers and libraries
* Fortran 2003 standard compiler
* Fortran compiler that supports Cray Pointer
* MPI C and Fortran headers and libraries (optional)
* Libyaml header and libraries (optional)
* Linux or Unix style system

Please see the [Build and Installation page](http://noaa-gfdl.github.io/FMS/build.html)
for more information on building with each build system.

## Documentation

Source code documentation for the FMS code base is available at http://noaa-gfdl.github.io/FMS.
Expand Down
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ AC_PREREQ([2.69])

# Initialize with name, version, and support email address.
AC_INIT([GFDL FMS Library],
[2021.04.0-dev],
[2021.04.0],
[gfdl.climate.model.info@noaa.gov],
[FMS],
[https://www.gfdl.noaa.gov/fms])
Expand Down
7 changes: 5 additions & 2 deletions libFMS/BUILD_SYSTEM.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,11 @@ The configure script has some standard options, including:

## FMS Configure Options

Currently there are not FMS specific configure options, but probably
we will add some.
Configure build options for FMS:
* `--with-yaml` : Build with support for yaml input files(requires the libyaml library and headers)
* `--enable-mixed-mode` : Build in mixed precision mode, with default 4 byte reals and 8 byte real overloads
* `--disable-setting-flags` : Build without automatically setting flags during configuration
* `--with-mpi` : Build with MPI support, enabled by default

## Standard Make Targets

Expand Down
2 changes: 1 addition & 1 deletion libFMS/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ lib_LTLIBRARIES = libFMS.la
# These linker flags specify libtool version info.
# See http://www.gnu.org/software/libtool/manual/libtool.html#Libtool-versioning
# for information regarding incrementing `-version-info`.
libFMS_la_LDFLAGS = -version-info 9:0:0
libFMS_la_LDFLAGS = -version-info 10:0:0

# Add the convenience libraries to the FMS library.
libFMS_la_LIBADD = $(top_builddir)/platform/libplatform.la
Expand Down

0 comments on commit d6081f5

Please sign in to comment.