diff options
author | jhendersonHDF <jhenderson@hdfgroup.org> | 2023-12-07 18:13:21 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-07 18:13:21 (GMT) |
commit | fb84c696a476c39db2c35e7d86b818138e089358 (patch) | |
tree | 56c0fec578e2e0d2eaee455cf3ae133dca541989 /fortran/src/README | |
parent | dc8b455ac00e899b53127de0d270230f4d4e40a1 (diff) | |
download | hdf5-fb84c696a476c39db2c35e7d86b818138e089358.zip hdf5-fb84c696a476c39db2c35e7d86b818138e089358.tar.gz hdf5-fb84c696a476c39db2c35e7d86b818138e089358.tar.bz2 |
Sync 1.14 branch with develop (#3887)
* Preserve MPI-I/O file hints when fapl is closed (#3755)
* Fix for issue #3025: Save the MPI info in the file struct so H5Fget_access_plist() can retrieve it from there.
* Add compression tests for subfiling (#3769)
* Fix typo in comment (#3775)
* Fixed a file handle leak in the core VFD (#3779)
When opening a file with the core VFD and a file image, if the file
already exists, the file check would leak the POSIX file handle.
Fixes GitHub issue #635
* Fix a format string warning in the C++ examples (#3776)
* Cancel running GitHub workflows on push to same PR (#3772)
* Cancel running GitHub workflows on push to same PR
* Remove github.sha from workflow concurrency groups
* Print some messages in parallel tests on MPI rank 0 only (#3785)
Avoids overly verbose output from all processes emitting progress, etc. info.
* Avoid attempted use of NULL pointer in parallel compression code (#3786)
The parallel compression test code tests for the case where all MPI ranks have no selection in a dataset when writing to it. Add an early exit to the code to avoid attempting to use a NULL pointer due to there being no work to do.
* Don't install h5tools_test_utils test program on system (#3793)
* Add Doxygen to H5FDsplitter.h (#3794)
* H5FD_CURR_SPLITTER_VFD_CONFIG_VERSION
* H5FD_SPLITTER_PATH_MAX
* H5FD_SPLITTER_MAGIC
* H5FD_splitter_vfd_config_t
* H5Pset_fapl_splitter()
* H5Pget_fapl_splitter()
* Update Doxygen initializers & identifiers in VFDs (#3795)
* Add Doxygen for all H5FD_<VFD> initializers
* Add Doxygen for all H5FD_<VFD>_VALUE values
* Mark H5FD_<vfd>_init() calls private in Doxygen
* Fix memory corruption in 'MPI I/O FAPL preserve' test (#3806)
* Fix usage of h5_clean_files in t_pflush2.c (#3807)
* Fix parallel driver check in h5_fixname_real (#3808)
* Fix a couple usages of MPI_Info_get (#3809)
* Remove H5system.c warning on Windows oneAPI. (#3812)
* Add processing of NVHPC flags in linux-gnulibc1 file (#3804)
* Disable testing as tests are failing the same as in CMake
* Use the current toolchain for examples as default (#3810)
* Fix misc. warnings from GCC when compiling with -fsanitize=undefined (#3787)
* Set NVHPC maximum optimization level to -O1 for now (#3800)
* Set NVHPC maximum optimization level to -O1 for now
Compiling HDF5 with NVHPC 23.5 - 23.9 results in test failures in
4 different test files that need to be resolved. Since those tests
pass with an optimization level of -O1 (and -O0) and it is currently
unclear whether the test failures are due to issues in HDF5 or issues
in the 'nvc' compiler, set the maximum optimization level for NVHPC
to -O1 until the test failures are resolved.
* Disable nvhpc Java testing in CMake and amend known issues
* Re-enable testing of Autotools nvhpc
* Update some doxygen links to local refs (#3814)
* Rework MPI Info FAPL preserve PR to use VFD 'ctl' operations (#3782)
* Removed the use of C wrappers from H5P APIs. (#3824)
* fix seg fault on frontier/cray
* fix seg fault on frontier/cray
* fix seg fault on frontier/cray
* removed the use of h5pclose_c
* removed the use of h5pclose_c
* Fortran Wrappers H5VLnative_addr_to_token_f and H5VLnative_token_to_address_f (#3801)
* Added H5VLnative_addr_to_token_f and H5VLnative_token_to_address_f
* Added H5VLnative_addr_to_token_f and H5VLnative_token_to_address_f tests
* Create test for H5Pget_dxpl_mpio (#3825)
* Create test and add to testphdf5
* Renamed h5fuse.sh to h5fuse (#3834)
* provide an alternative to mapfile for older bash
* Disable FP exceptions in H5T init code (#3837)
The H5T floating-point datatype initialization code can raise exceptions when handling signaling NaNs. This change disables FE_INVALID exceptions during initialization.
Also removes the -ieee=full change for NAG Fortran as that shouldn't be necessary anymore.
Fixes #3831
* Add intel oneapi windows build to CI CMake (#3836)
* Remove printf format warning on Windows oneAPI. (#3838)
* Correct ENV variables (#3841)
* Remove Autotools sed hack (#3848)
configure.ac contains a sed line that cleans up incorrect library
flags which was added to paper over some bugs in earlier versions
of the Autotools. These issues are not a problem with the current
versions of the Autootols.
The sed line causes problems on MacOS, so it has been removed.
Fixes #3843
* Make filter unregister callbacks safe for VOL connectors (#3629)
* Make filter callbacks use top-level API functions
When using VOL connectors, H5I_iterate may not provide
valid object pointers to its callback. This change keeps
existing functionality in H5Zunregister() without using
potentially unsafe pointers.
* Filter callbacks use internal API
* Skip MPI work on non-native VOL
* Add extra space in comments for consistency (#3852)
* Add extra space in comments for consistency
* uncomment tfloatsattrs test
* Update Actions badges to link to relevant workflow (#3850)
* Add CMake long double cross-compile defaults (#3683)
HDF5 performs a couple of checks at build time to see if long double
values can be converted correctly (IBM's Power architecture uses a
special format for long doubles). These checks were performed using
TRY_RUN, which is a problem when cross-compiling.
These checks now use default values appropriate for most non-Power
systems when cross-compiling. The cache values can be pre-set if
necessary, which will preempt both the TRY_RUN and the default.
Affected values:
H5_LDOUBLE_TO_LONG_SPECIAL (default no)
H5_LONG_TO_LDOUBLE_SPECIAL (default no)
H5_LDOUBLE_TO_LLONG_ACCURATE (default yes)
H5_LLONG_TO_LDOUBLE_CORRECT (default yes)
H5_DISABLE_SOME_LDOUBLE_CONV (default no)
Fixes GitHub #3585
* Updates for building and testing VOL connectors
* Fix issue with HDF5_VOL_ALLOW_EXTERNAL CMake variable
* Initialize parallel testing with MPI_THREAD_MULTIPLE when testing API
* Add CMake variable to allow specifying a VOL connector's package name
* Remove call to MPI_Init in serial API tests
While previously necessary, it now interferes with VOL connectors that
may need to be initialized with MPI_THREAD_MULTIPLE
* Fixes for CI and presets (#3853)
* Change dest for doxygen (#3856)
* Implement selection vector I/O with collective chunk filling (#3826)
* Changes for ECP-344: Implement selection vector I/O with collective chunk filling.
Also fix a bug in H5FD__mpio_write_vector() to account for fixed size optimization
when computing max address.
* Fixes based on PR review comments:
For H5Dchunk.c: fix H5MM_xfree()
For H5FDmpio.c:
1) Revert the fix to H5FD__mpio_write_vector()
2) Apply the patch from Neil on the proper length of s_sizes reported by H5FD__mpio_vector_build_types()
* Put back the logic of dividing up the work among all the mpi ranks similar to the
original H5D__chunk_collective_fill() routine.
* Add a test to verify the fix for the illegal reference problem in H5FD__mpio_write_vector().
* Do not publish compression headers or docs (#3865)
* Fix typo: look -> loop (#3866)
* Moved the README to markdown and expanded its overview of the files, file generation, and other Fortran wrapper development practices as mentioned in the HDF5 architectural document. I added a new figure and included the SVG file and the original xfig file it was generated from. (#3862)
* Add HDF5_DISABLE_TESTS_REGEX option to skip tests (#3859)
* Fix typo in error message for `MPI_Type_dup`. (#3867)
* Complete the `if command line option` sentence. (#3868)
* Fix h5dump segmentation fault when --vfd-value option is used (#3873)
* Updated URL in funding.yml (#3882)
Using new shortened URL, might look better.
* Remove unused variable from unmerged changes
* Update src/H5Tinit_float.c
Diffstat (limited to 'fortran/src/README')
-rw-r--r-- | fortran/src/README | 133 |
1 files changed, 0 insertions, 133 deletions
diff --git a/fortran/src/README b/fortran/src/README deleted file mode 100644 index f73a59a..0000000 --- a/fortran/src/README +++ /dev/null @@ -1,133 +0,0 @@ -=================================== -README for the Fortran APIs to HDF5 -=================================== - -This directory contains Fortran APIs for HDF5 Library functionality. -A complete list of implemented Fortran subroutines can be found in the HDF5 -Reference Manual. - -About the source code organization -================================== - -The Fortran APIs are organized in modules parallel to the HDF5 Interfaces. -Each module is in a separate file with the name H5*ff.F90. Corresponding C -stubs are in the H5*f.c files. For example, the Fortran File APIs are in -the file H5Fff.F90 and the corresponding C stubs are in the file H5Ff.c. - -Each module contains Fortran definitions of the constants, interfaces to -the subroutines if needed, and the subroutines themselves. - -Users must use constant names in their programs instead of the numerical -values, as the numerical values are subject to change without notice. - -Quick overview of the Fortran APIs -============================================== - -* An in-depth description of each Fortran API and its parameters can - be found in the HDF5 Reference Manual. - -* The Fortran APIs come in the form of Fortran subroutines. - -* Each Fortran subroutine name is derived from the corresponding C function - name by adding "_f" to the name. For example, the name of the C function - to create an HDF5 file is H5Fcreate; the corresponding Fortran subroutine - is h5fcreate_f. - -* The parameter list for each Fortran subroutine usually has two more parameters - than the corresponding C function. These additional parameters typically hold - the return value and an error code. The order of the Fortran subroutine - parameters may differ from the order of the C function parameters. - - The Fortran subroutine parameters are usually listed in the following order: - -- required input parameters, - -- output parameters, including return value and error code, and - optional input parameters. - - For example, the C function to create a dataset has the following - prototype: - - hid_t H5Dcreate2(hid_it loc_id, char *name, hid_t type_id, - hid_t space_id, hid_t link_creation_prp, hid_t dset_creation_prp, - hid_t dset_access_prop); - - The corresponding Fortran subroutine has the following form: - - SUBROUTINE h5dcreate_f(loc_id, name, type_id, space_id, dset_id, & - hdferr, dset_creation_prp, link_creation_prp, dset_access_prop) - - The first four parameters of the Fortran subroutine correspond to the - C function parameters. The fifth parameter dset_id is an output - parameter and contains a valid dataset identifier if the value of the - sixth output parameter, hdferr, indicates successful completion. - (Error code descriptions are provided with the subroutine descriptions - in the Reference Manual.) The last three input parameters are optional - and may be omitted, resulting in default values being used. - -* Parameters to the Fortran subroutines typically include - predefined datatypes (see the build-time generated file - H5fortran_types.F90 for a complete listing): - - INTEGER(HID_T) compares with hid_t type in HDF5 C APIs - INTEGER(HSIZE_T) compares with hsize_t in HDF5 C APIs - INTEGER(HSSIZE_T) compares with hssize_t in HDF5 C APIs - INTEGER(SIZE_T) compares with the C size_t type - - These integer types usually correspond to 4 or 8 byte integers, - depending on the Fortran compiler and corresponding HDF5 - C library definitions. - -* Each Fortran application must call the h5open_f subroutine to - initialize the Fortran predefined datatypes before calling the HDF5 Fortran - subroutines. The application should call the h5close_f subroutine - after all calls to the HDF5 Fortran Library. - -* When a C application reads data stored from a Fortran program, the data - will appear to be transposed due to the difference in the C - Fortran - storage order. For example, if Fortran writes a 4x6 two-dimensional dataset - to the file, a C program will read it as a 6x4 two-dimensional dataset into - memory. The HDF5 C utilities h5dump and h5ls display transposed data, if - data is written from a Fortran program. - -* Fortran indices are 1 based. - -============================ -FOR DEVELOPERS -============================ - -Procedure to add a new function ----------------------------------- - -(1) Edit the fortran/src/H5*ff.F90 file -(2) Edit the fortran/src/H5*f.c file -(3) Edit the fortran/src/H5f90proto.h file -(4) Add the new function to fortran/src/hdf5_fortrandll.def.in - -Procedure for passing C variables to Fortran ---------------------------------------------- - -(1) Find the C struct name you are interested in: - (a) src/H5public.h if it is a generic type, i.e. H5_* - or - (b) src/H5*public.h if is a specific type, i.e. H5*_ - -(2) Put that structure into an array that will be passed to fortran in: - (a) fortran/src/H5_f.c (add to nh5init_flags_c subroutine) - (b) edit fortran/src/H5f90proto.h and edit nh5init_flags_c interface call - -(3) Edit the function call in fortran/src/H5_ff.F90 - (a) edit the call: FUNCTION h5init_flags_c - (b) edit h5init_flags_c call in h5open_f to match the number of arguments passing - -(4) add the size of the array and array to fortran/src/H5f90global.F90 - - must match the size found it H5_f.c - -NOTE: To just add a default C value argument, do steps (2a) and (4) - - -Procedure for adding a new file to the repository --------------------------------------------------- - -Add the name of the file to the: - (1) Makefile.am located in the same directory as the newfile - (2) CMakeLists.txt located in the same directory as the newfile - |