Recent Releases of nc4fortran

nc4fortran - Improve use as child project, HDF5 build, and CI

  • correct bugs in HDF5 build
  • improved use as child project
  • modernized CI for latest runners

- CMake
Published by scivision almost 2 years ago

nc4fortran - autobuild HDF5, netcdf if needed. CMake >= 3.19

CMake >= 3.19 required to facilitate HDF5,ZLIB, Netcdf auto-build if needed

numerous lessons-learned packaging improvements.

- CMake
Published by scivision over 2 years ago

nc4fortran - add read/write slice option, add %create(..., fill_value=) method

add %create(..., fillvalue=) method with optional fillvalue

add %deflate() method to check deflate_level of dataset

add option to slice (istart, iend, stride) on dataset read/write

- CMake
Published by scivision about 4 years ago

nc4fortran - correct read char segfault, add fpm, enhance find

  • correct read character segfault discovered with GCC 12 on Linux and Windows.
  • add fpm (Fortran Package Manager)
  • enhance FindHDF5 and FindNetCDF

- CMake
Published by scivision about 4 years ago

nc4fortran - remove autobuild

- CMake
Published by scivision over 4 years ago

nc4fortran - CI shared builds, improve HDF5 and netcdf find, cleanup

- CMake
Published by scivision over 4 years ago

nc4fortran - improve polymorphic

improve internal implementation of polymorphic variables, improving build time and reliability

- CMake
Published by scivision over 4 years ago

nc4fortran - add code coverage test, remove unused pathlib module

- CMake
Published by scivision over 4 years ago

nc4fortran - flatten install dirs, don't override cache var netcdf_external

- CMake
Published by scivision over 4 years ago

nc4fortran - use JSON urls, ci build, shared libs

  • use JSON for URLs as best practice
  • CI tests NetCDF build
  • put Rpath in exe for shared builds

- CMake
Published by scivision over 4 years ago

nc4fortran - Read character improvement, install and build type defaults

  • Read character automatically trims to cnullchar if present, making it cleaner / easier to read character values
    • better default install directory when using FetchContent
    • build type default release

- CMake
Published by scivision over 4 years ago

nc4fortran - Better FindHDF5 and compiler options

- CMake
Published by scivision over 4 years ago

nc4fortran - more robust across platforms

  • action= rw, w, r, r+, a for clarity

FindHDF5 more robust

- CMake
Published by scivision almost 5 years ago

nc4fortran - BUGFIX: default dim names start with variable name

this avoids stomping of dims by dissimilar shaped variables when dim names are not specified.

- CMake
Published by scivision almost 5 years ago

nc4fortran - remove open(status=) parameter, use action instead

The h%open(..., status=) parameter is DEPRECATED and is ignored. Its functionality was duplicated by the h%open(..., action=) parameter.

As before:

  • h%open(...) defaults to action='rw', which opens or creates a file.
  • action='w' erases an existing file if present.
  • action='r+' or action='r' errors if file doesn't exist

- CMake
Published by scivision almost 5 years ago

nc4fortran - FindHDF5 optim, note cmake >= 3.20 needed for autobuild

  • Note with error message that CMake >= 3.20 needed for autobuild of NetCDF (let us know if this is an issue, we could go back to CMake 3.15, with less reliability)
  • add intel compiler optimization flags
  • don't override CMAKEINSTALLPREFIX for nc4fortran used via CMake FetchContent

- CMake
Published by scivision almost 5 years ago

nc4fortran - add auto-close destructor

using best principles of object-oriented programming, add a auto-closing file destructor, such that when netcdf_file leaves procedure scope, the file data is flushed and the file is closed.

- CMake
Published by scivision about 5 years ago

nc4fortran - correct error message when compilers ABI-compatible

- CMake
Published by scivision about 5 years ago

nc4fortran - install robustness

CMake >= 3.14 required for general robustness

- CMake
Published by scivision about 5 years ago

nc4fortran - install, preset improvments

also avoid externalproject constant rebuilds

- CMake
Published by scivision about 5 years ago

nc4fortran - install improvement

user packages don't have to find netcdf as the installed script will do that. add CDash to CI

- CMake
Published by scivision over 5 years ago

nc4fortran - packaging improvements

- CMake
Published by scivision over 5 years ago

nc4fortran - add CMake 3.13 CI job

- CMake
Published by scivision over 5 years ago

nc4fortran - autobuild NetCDF, use presets

  • use CMake presets and built-in policy for robustnes
  • add ability to auto-build NetCDF if missing/broken (HDF5 library required)

- CMake
Published by scivision over 5 years ago

nc4fortran - enhance install and CI package

- CMake
Published by scivision over 5 years ago

nc4fortran - CMake >= 3.13 compatible

- CMake
Published by scivision over 5 years ago

nc4fortran - Cmake / CI template

- CMake
Published by scivision over 5 years ago

nc4fortran - bugfix: install

remove reference to obsolete file

- CMake
Published by scivision over 5 years ago

nc4fortran - Cmake robustness

  • as with h5fortran, check that linking NetCDF4 works before declaring NetCDF_FOUND *

- CMake
Published by scivision over 5 years ago

nc4fortran - fix install, add examples, remove unused module

  • remove unused module
  • make pathlib submodule to avoid name clash
  • improve install
  • add examples

- CMake
Published by scivision almost 6 years ago

nc4fortran - expand testing, enable compression, add methods

  • add methods: ischunked, iscontig, chunks
  • enable compression with auto-chunking
  • expand testing like h5fortran

- CMake
Published by scivision almost 6 years ago

nc4fortran - better feature parity and testing like h5fortran

add netcdf_file methods:

  • read_attribute
  • write_attribute
  • ndims
  • flush

add functions * ncexist * isnetcdf

allow variable rewrite. Numerous bugfixes

- CMake
Published by scivision almost 6 years ago

nc4fortran - use reader, writer templates

due to the high level of code duplication across array rank (dimension), we use CMake or Meson configure_file() to simply inject this code for each dimension. This makes the program more robust. If we instead used Fortran select rank we would still need a template, and it wasn't immediately clear there would be a benefit from this vs. the current approach.

- CMake
Published by scivision almost 6 years ago

nc4fortran - make more robust, add properties

add properties:

  • status='scratch' a file that will be deleted on close, for file-based API
  • h%is_open is the file opened, this is used internally to give errors if user tries to access file before initializing or after finalizing

Make CMake build and run tests in parallel.

- CMake
Published by scivision almost 6 years ago

nc4fortran - quality, robustness

  • implicit none (type, external)
  • use native CMake functionality instead of custom

- CMake
Published by scivision about 6 years ago

nc4fortran - add CDash, increase build robustness

- CMake
Published by scivision about 6 years ago

nc4fortran - quiet pkg-config, correct error message text, gcc 9.3.0 dedupe

- CMake
Published by scivision over 6 years ago

nc4fortran - name write(..., dims=['x','y']) parameter

- CMake
Published by scivision over 6 years ago

nc4fortran - add %exist('/foo') method, bugfix

- CMake
Published by scivision over 6 years ago

nc4fortran - ierr optional, add tests

Like h5fortran, nc4fortran ierr parameter is now optional. If an error occurs and ierr is not present, nc4fortran will raise error stop.

increased test coverage and modularized test coverage

reduced redundant code

- CMake
Published by scivision over 6 years ago

nc4fortran - harmonize with h5fortran

use naming scheme and cmake / meson layout similar to h5fortran

- CMake
Published by scivision over 6 years ago

nc4fortran - prototype

prepared for use in other projects via FetchContent

deduped error print code

put Fortran standard unlink() for robustness--netcdf open options didn't seem clear as to how to overwrite file while staying in modern mode. otherwise would have to bitwise AND?

- CMake
Published by scivision over 6 years ago

nc4fortran - initial release

initial prerelease alpha

- CMake
Published by scivision over 6 years ago