You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+8-2Lines changed: 8 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -36,12 +36,14 @@ This easy-to-use, thin object-oriented modern Fortran library abstracts away the
36
36
In distinction from other high-level HDF5 interfaces, h5fortran works to deduplicate code, using polymorphism wherever feasible and extensive test suite.
37
37
38
38
Polymorphic [API](./API.md) with read / write **dataset** types int32, int64, real32, real64, character (string) with rank scalar (0-D) through 7-D.
39
+
Variable-length datasets "H5S_UNLIMITED" can also be read.
39
40
40
41
HDF5 **attributes** are also supported for read/write types int32, int64, real32, real64, character (string) with rank scalar (0-D) through 7-D.
41
42
42
43
For **character**, datasets and attributes are supported for fixed length and variable length strings.
43
44
Character padding uses spaces as this is the default for Fortran.
44
45
Space-padded, null-terminated and null-padded strings are also supported on read.
46
+
UTF8 characters are passed through on read and write using the Fortran default character kind.
45
47
46
48
***Array slicing on read and write** is supported, that is, reading or writing part of a disk HDF5 array into a variable matching the slice shape.
47
49
* Mismatched datatypes are coerced as per standard Fortran rules. For example, reading a float HDF5 variable into an integer Fortran variable: 42.3 => 42
@@ -161,11 +163,15 @@ For detailed [examples](./example/) see [Examples.md](./Examples.md).
161
163
* The first character of the filename should be a character, NOT whitespace to avoid file open/creation errors.
162
164
* Polymorphic array rank is implemented.
163
165
164
-
### h5fortran: missing Fortran datatypes
166
+
### h5fortran: missing HDF5 features
165
167
166
168
* arrays of rank > 7: prototyped in reader_nd.f90, writer_nd.f90. Fortran 2008 arrays are up to rank 15, but only recent compilers support.
167
169
* complex64 / complex128: not natively handled in HDF5. There are performance impacts for compound datatypes. Many choose to write two datasets, one each for real and imaginary like `A_real` and `A_imag`
168
-
* non-default character kind
170
+
* non-default character kind -- we do pass-through UTF8
169
171
* logical / boolean: not supported natively by HDF5. h5py implements as [enum](https://docs.h5py.org/en/stable/faq.html#what-datatypes-are-supported).
172
+
* variable length dataset writing
173
+
174
+
We didn't use `type(c_ptr)` and `c_loc()` internally for datasets as we observed problems when the actual argument is sliced on read/write.
175
+
The current h5fortran impementation (Fortran `select type` for H5Dwrite/H5Dread) does work with sliced actual arguments.
0 commit comments