summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScot Breitenfeld <brtnfld@hdfgroup.org>2011-08-18 14:32:47 (GMT)
committerScot Breitenfeld <brtnfld@hdfgroup.org>2011-08-18 14:32:47 (GMT)
commita9c065c5ce65bb7dca560d53642574dba608dc78 (patch)
tree2d36b7afd3f3a83314db25aba081e95254d28841
parenta968e2d409d975ac5b584680620d2589b0409f88 (diff)
downloadhdf5-a9c065c5ce65bb7dca560d53642574dba608dc78.zip
hdf5-a9c065c5ce65bb7dca560d53642574dba608dc78.tar.gz
hdf5-a9c065c5ce65bb7dca560d53642574dba608dc78.tar.bz2
[svn-r21248] Mereged the F2003 branch into the trunk.
Items merged: fortran directory, src/libhdf5.settings.in configure.in configure MANIFEST Tested: (all platforms used by daily tests, both with --enable-fortran and --enable-fortran2003)
-rw-r--r--MANIFEST112
-rwxr-xr-xconfigure142
-rw-r--r--configure.in130
-rw-r--r--fortran/Makefile.in3
-rw-r--r--fortran/doc/DevelGuide/masterindex.html589
-rw-r--r--fortran/doc/DevelGuide/robo_functions.html39
-rw-r--r--fortran/doc/DevelGuide/robo_modules.html117
-rw-r--r--fortran/doc/DevelGuide/robo_programs.html39
-rw-r--r--fortran/doc/DevelGuide/robo_sourcefiles.html309
-rw-r--r--fortran/doc/DevelGuide/robo_subroutines.html421
-rw-r--r--fortran/doc/DevelGuide/robodoc.css302
-rw-r--r--fortran/doc/DevelGuide/src/H5Af_c.html41
-rw-r--r--fortran/doc/DevelGuide/src/H5Aff_F03_f90.html130
-rw-r--r--fortran/doc/DevelGuide/src/H5Aff_F90_f90.html56
-rw-r--r--fortran/doc/DevelGuide/src/H5Aff_f90.html1102
-rw-r--r--fortran/doc/DevelGuide/src/H5Df_c.html41
-rw-r--r--fortran/doc/DevelGuide/src/H5Dff_F03_f90.html138
-rw-r--r--fortran/doc/DevelGuide/src/H5Dff_F90_f90.html116
-rw-r--r--fortran/doc/DevelGuide/src/H5Dff_f90.html506
-rw-r--r--fortran/doc/DevelGuide/src/H5Ef_c.html41
-rw-r--r--fortran/doc/DevelGuide/src/H5Eff_f90.html197
-rw-r--r--fortran/doc/DevelGuide/src/H5FDmpiof_c.html41
-rw-r--r--fortran/doc/DevelGuide/src/H5FDmpioff_f90.html253
-rw-r--r--fortran/doc/DevelGuide/src/H5Ff_c.html41
-rw-r--r--fortran/doc/DevelGuide/src/H5Fff_f90.html653
-rw-r--r--fortran/doc/DevelGuide/src/H5Gf_c.html41
-rw-r--r--fortran/doc/DevelGuide/src/H5Gff_f90.html840
-rw-r--r--fortran/doc/DevelGuide/src/H5If_c.html41
-rw-r--r--fortran/doc/DevelGuide/src/H5Iff_f90.html304
-rw-r--r--fortran/doc/DevelGuide/src/H5Lf_c.html41
-rw-r--r--fortran/doc/DevelGuide/src/H5Lff_F03_f90.html181
-rw-r--r--fortran/doc/DevelGuide/src/H5Lff_F90_f90.html50
-rw-r--r--fortran/doc/DevelGuide/src/H5Lff_f90.html637
-rw-r--r--fortran/doc/DevelGuide/src/H5Of_c.html41
-rw-r--r--fortran/doc/DevelGuide/src/H5Off_f90.html198
-rw-r--r--fortran/doc/DevelGuide/src/H5Pf_c.html41
-rw-r--r--fortran/doc/DevelGuide/src/H5Pff_F03_f90.html832
-rw-r--r--fortran/doc/DevelGuide/src/H5Pff_F90_f90.html715
-rw-r--r--fortran/doc/DevelGuide/src/H5Pff_f90.html4752
-rw-r--r--fortran/doc/DevelGuide/src/H5Rf_c.html41
-rw-r--r--fortran/doc/DevelGuide/src/H5Rff_F03_f90.html492
-rw-r--r--fortran/doc/DevelGuide/src/H5Rff_F90_f90.html305
-rw-r--r--fortran/doc/DevelGuide/src/H5Rff_f90.html148
-rw-r--r--fortran/doc/DevelGuide/src/H5Sf_c.html41
-rw-r--r--fortran/doc/DevelGuide/src/H5Sff_f90.html1165
-rw-r--r--fortran/doc/DevelGuide/src/H5Tf_c.html41
-rw-r--r--fortran/doc/DevelGuide/src/H5Tff_f90.html2378
-rw-r--r--fortran/doc/DevelGuide/src/H5Zf_c.html41
-rw-r--r--fortran/doc/DevelGuide/src/H5Zff_f90.html173
-rw-r--r--fortran/doc/DevelGuide/src/H5_DBLE_InterfaceExclude_f90.html53
-rw-r--r--fortran/doc/DevelGuide/src/H5_DBLE_InterfaceInclude_f90.html54
-rw-r--r--fortran/doc/DevelGuide/src/H5_f_c.html41
-rw-r--r--fortran/doc/DevelGuide/src/H5_ff_F03_f90.html83
-rw-r--r--fortran/doc/DevelGuide/src/H5_ff_F90_f90.html48
-rw-r--r--fortran/doc/DevelGuide/src/H5_ff_f90.html269
-rw-r--r--fortran/doc/DevelGuide/src/H5f90global_f90.html61
-rw-r--r--fortran/doc/DevelGuide/src/H5f90kit_c.html44
-rw-r--r--fortran/doc/DevelGuide/src/H5match_types_c.html49
-rw-r--r--fortran/doc/DevelGuide/src/H5test_kind_SIZEOF_f90.html61
-rw-r--r--fortran/doc/DevelGuide/src/H5test_kind_f90.html62
-rw-r--r--fortran/doc/DevelGuide/src/HDF5_f90.html47
-rw-r--r--fortran/doc/DevelGuide/src/HDF5mpio_f90.html45
-rw-r--r--fortran/doc/DevelGuide/test/fflush1_f90.html47
-rw-r--r--fortran/doc/DevelGuide/test/fflush2_f90.html47
-rw-r--r--fortran/doc/DevelGuide/test/fortranlib_test_1_8_f90.html44
-rw-r--r--fortran/doc/DevelGuide/test/fortranlib_test_F03_f90.html45
-rw-r--r--fortran/doc/DevelGuide/test/fortranlib_test_f90.html44
-rw-r--r--fortran/doc/DevelGuide/test/tF2003_f90.html53
-rw-r--r--fortran/doc/DevelGuide/test/tH5A_1_8_f90.html51
-rw-r--r--fortran/doc/DevelGuide/test/tH5A_f90.html47
-rw-r--r--fortran/doc/DevelGuide/test/tH5D_f90.html52
-rw-r--r--fortran/doc/DevelGuide/test/tH5E_f90.html51
-rw-r--r--fortran/doc/DevelGuide/test/tH5F_f90.html47
-rw-r--r--fortran/doc/DevelGuide/test/tH5G_1_8_f90.html49
-rw-r--r--fortran/doc/DevelGuide/test/tH5G_f90.html47
-rw-r--r--fortran/doc/DevelGuide/test/tH5I_f90.html47
-rw-r--r--fortran/doc/DevelGuide/test/tH5O_f90.html47
-rw-r--r--fortran/doc/DevelGuide/test/tH5P_f90.html47
-rw-r--r--fortran/doc/DevelGuide/test/tH5R_f90.html51
-rw-r--r--fortran/doc/DevelGuide/test/tH5S_f90.html54
-rw-r--r--fortran/doc/DevelGuide/test/tH5Sselect_f90.html56
-rw-r--r--fortran/doc/DevelGuide/test/tH5T_f90.html47
-rw-r--r--fortran/doc/DevelGuide/test/tH5VL_f90.html47
-rw-r--r--fortran/doc/DevelGuide/test/tH5Z_f90.html47
-rw-r--r--fortran/doc/DevelGuide/test/t_c.html44
-rw-r--r--fortran/doc/DevelGuide/test/tf_f90.html48
-rw-r--r--fortran/doc/DevelGuide/toc_index.html552
-rw-r--r--fortran/examples/Makefile.am33
-rw-r--r--fortran/examples/Makefile.in35
-rw-r--r--fortran/examples/compound_complex_fortran2003.f90117
-rw-r--r--fortran/examples/compound_fortran2003.f90208
-rw-r--r--fortran/examples/nested_derived_type.f90212
-rw-r--r--fortran/examples/rwdset_fortran2003.f90181
-rw-r--r--fortran/robodoc.rc73
-rw-r--r--fortran/src/H5Af.c913
-rw-r--r--fortran/src/H5Aff.f902961
-rw-r--r--fortran/src/H5Aff_F03.f901418
-rw-r--r--fortran/src/H5Aff_F90.f901618
-rw-r--r--fortran/src/H5Df.c978
-rw-r--r--fortran/src/H5Dff.f904905
-rw-r--r--fortran/src/H5Dff_F03.f902912
-rw-r--r--fortran/src/H5Dff_F90.f903002
-rw-r--r--fortran/src/H5Ef.c410
-rw-r--r--fortran/src/H5Eff.f90284
-rw-r--r--fortran/src/H5Eff_F03.f90248
-rw-r--r--fortran/src/H5Eff_F90.f9089
-rw-r--r--fortran/src/H5FDmpiof.c163
-rw-r--r--fortran/src/H5FDmpioff.f90457
-rw-r--r--fortran/src/H5Ff.c392
-rw-r--r--fortran/src/H5Fff.f901675
-rw-r--r--fortran/src/H5Gf.c479
-rw-r--r--fortran/src/H5Gff.f901673
-rw-r--r--fortran/src/H5If.c181
-rw-r--r--fortran/src/H5Iff.f90684
-rw-r--r--fortran/src/H5Lf.c617
-rw-r--r--fortran/src/H5Lff.f90814
-rw-r--r--fortran/src/H5Lff_F03.f90225
-rw-r--r--fortran/src/H5Lff_F90.f9039
-rw-r--r--fortran/src/H5Of.c241
-rw-r--r--fortran/src/H5Off.f90195
-rw-r--r--fortran/src/H5Off_F03.f90264
-rw-r--r--fortran/src/H5Off_F90.f9039
-rw-r--r--fortran/src/H5Pf.c3325
-rw-r--r--fortran/src/H5Pff.f9011211
-rw-r--r--fortran/src/H5Pff_F03.f901353
-rw-r--r--fortran/src/H5Pff_F90.f901203
-rw-r--r--fortran/src/H5Rf.c430
-rw-r--r--fortran/src/H5Rff.f90662
-rw-r--r--fortran/src/H5Rff_F03.f90655
-rw-r--r--fortran/src/H5Rff_F90.f90449
-rw-r--r--fortran/src/H5Sf.c824
-rw-r--r--fortran/src/H5Sff.f901880
-rw-r--r--fortran/src/H5Tf.c1615
-rw-r--r--fortran/src/H5Tff.f903379
-rw-r--r--fortran/src/H5Tff_F03.f90114
-rw-r--r--fortran/src/H5Tff_F90.f9039
-rw-r--r--fortran/src/H5Zf.c92
-rw-r--r--fortran/src/H5Zff.f90369
-rw-r--r--fortran/src/H5_DBLE_InterfaceExclude.f902
-rw-r--r--fortran/src/H5_DBLE_InterfaceInclude.f902
-rw-r--r--fortran/src/H5_f.c430
-rw-r--r--fortran/src/H5_ff.f90332
-rw-r--r--fortran/src/H5_ff_F03.f9072
-rw-r--r--fortran/src/H5_ff_F90.f9034
-rw-r--r--fortran/src/H5f90global.f90236
-rw-r--r--fortran/src/H5f90kit.c96
-rw-r--r--fortran/src/H5f90proto.h1113
-rw-r--r--fortran/src/H5match_types.c256
-rw-r--r--fortran/src/H5test_kind.f90119
-rw-r--r--fortran/src/H5test_kind_SIZEOF.f9094
-rw-r--r--fortran/src/HDF5.f9023
-rw-r--r--fortran/src/HDF5mpio.f9086
-rw-r--r--fortran/src/Makefile.am61
-rw-r--r--fortran/src/Makefile.in86
-rw-r--r--fortran/test/Makefile.am23
-rw-r--r--fortran/test/Makefile.in45
-rw-r--r--fortran/test/fflush1.f9019
-rw-r--r--fortran/test/fflush2.f9021
-rw-r--r--fortran/test/fortranlib_test.f9017
-rw-r--r--fortran/test/fortranlib_test_1_8.f90353
-rw-r--r--fortran/test/fortranlib_test_F03.f90168
-rw-r--r--fortran/test/t.c16
-rw-r--r--fortran/test/tH5A.f9015
-rw-r--r--fortran/test/tH5A_1_8.f90588
-rw-r--r--fortran/test/tH5D.f9022
-rw-r--r--fortran/test/tH5E.f9018
-rw-r--r--fortran/test/tH5E_F03.f90210
-rw-r--r--fortran/test/tH5F.f9023
-rw-r--r--fortran/test/tH5G.f9015
-rw-r--r--fortran/test/tH5G_1_8.f90150
-rw-r--r--fortran/test/tH5I.f9030
-rw-r--r--fortran/test/tH5L_F03.f90334
-rw-r--r--fortran/test/tH5O.f9014
-rw-r--r--fortran/test/tH5P.f9055
-rw-r--r--fortran/test/tH5P_F03.f90364
-rw-r--r--fortran/test/tH5R.f9063
-rw-r--r--fortran/test/tH5S.f9024
-rw-r--r--fortran/test/tH5Sselect.f90143
-rw-r--r--fortran/test/tH5T.f9018
-rw-r--r--fortran/test/tH5T_F03.f902549
-rw-r--r--fortran/test/tH5VL.f9022
-rw-r--r--fortran/test/tH5Z.f9014
-rw-r--r--fortran/test/tf.f9063
-rw-r--r--fortran/testpar/Makefile.in3
-rw-r--r--src/libhdf5.settings.in1
185 files changed, 62383 insertions, 24120 deletions
diff --git a/MANIFEST b/MANIFEST
index f2ee89e..50a40a4 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -151,10 +151,97 @@
./fortran/Makefile.am
./fortran/Makefile.in
+./fortran/robodoc.rc
+./fortran/doc/DevelGuide/toc_index.html
+./fortran/doc/DevelGuide/masterindex.html
+./fortran/doc/DevelGuide/robo_subroutines.html
+./fortran/doc/DevelGuide/robo_sourcefiles.html
+./fortran/doc/DevelGuide/robo_functions.html
+./fortran/doc/DevelGuide/robo_modules.html
+./fortran/doc/DevelGuide/robo_programs.html
+./fortran/doc/DevelGuide/robodoc.css
+./fortran/doc/DevelGuide/test/fortranlib_test_f90.html
+./fortran/doc/DevelGuide/test/tH5A_f90.html
+./fortran/doc/DevelGuide/test/tH5VL_f90.html
+./fortran/doc/DevelGuide/test/tH5D_f90.html
+./fortran/doc/DevelGuide/test/tH5E_f90.html
+./fortran/doc/DevelGuide/test/tH5F_f90.html
+./fortran/doc/DevelGuide/test/tH5G_f90.html
+./fortran/doc/DevelGuide/test/fflush1_f90.html
+./fortran/doc/DevelGuide/test/fortranlib_test_1_8_f90.html
+./fortran/doc/DevelGuide/test/tH5A_1_8_f90.html
+./fortran/doc/DevelGuide/test/tf_f90.html
+./fortran/doc/DevelGuide/test/fflush2_f90.html
+./fortran/doc/DevelGuide/test/fortranlib_test_F03_f90.html
+./fortran/doc/DevelGuide/test/tH5I_f90.html
+./fortran/doc/DevelGuide/test/tH5G_1_8_f90.html
+./fortran/doc/DevelGuide/test/tF2003_f90.html
+./fortran/doc/DevelGuide/test/tH5O_f90.html
+./fortran/doc/DevelGuide/test/tH5P_f90.html
+./fortran/doc/DevelGuide/test/tH5R_f90.html
+./fortran/doc/DevelGuide/test/tH5S_f90.html
+./fortran/doc/DevelGuide/test/tH5Sselect_f90.html
+./fortran/doc/DevelGuide/test/tH5T_f90.html
+./fortran/doc/DevelGuide/test/t_c.html
+./fortran/doc/DevelGuide/test/tH5Z_f90.html
+./fortran/doc/DevelGuide/src/H5Fff_f90.html
+./fortran/doc/DevelGuide/src/H5Zf_c.html
+./fortran/doc/DevelGuide/src/H5Pff_F90_f90.html
+./fortran/doc/DevelGuide/src/H5Aff_F03_f90.html
+./fortran/doc/DevelGuide/src/H5match_types_c.html
+./fortran/doc/DevelGuide/src/H5Rff_F90_f90.html
+./fortran/doc/DevelGuide/src/H5Lff_f90.html
+./fortran/doc/DevelGuide/src/H5FDmpiof_c.html
+./fortran/doc/DevelGuide/src/H5_f_c.html
+./fortran/doc/DevelGuide/src/H5Pff_f90.html
+./fortran/doc/DevelGuide/src/H5Rff_f90.html
+./fortran/doc/DevelGuide/src/H5Tff_f90.html
+./fortran/doc/DevelGuide/src/H5test_kind_f90.html
+./fortran/doc/DevelGuide/src/H5Aff_F90_f90.html
+./fortran/doc/DevelGuide/src/H5Zff_f90.html
+./fortran/doc/DevelGuide/src/HDF5_f90.html
+./fortran/doc/DevelGuide/src/H5_DBLE_InterfaceInclude_f90.html
+./fortran/doc/DevelGuide/src/H5f90kit_c.html
+./fortran/doc/DevelGuide/src/H5Aff_f90.html
+./fortran/doc/DevelGuide/src/H5_DBLE_InterfaceExclude_f90.html
+./fortran/doc/DevelGuide/src/H5Eff_f90.html
+./fortran/doc/DevelGuide/src/H5_ff_F03_f90.html
+./fortran/doc/DevelGuide/src/H5Gff_f90.html
+./fortran/doc/DevelGuide/src/H5test_kind_SIZEOF_f90.html
+./fortran/doc/DevelGuide/src/H5Iff_f90.html
+./fortran/doc/DevelGuide/src/H5Dff_F03_f90.html
+./fortran/doc/DevelGuide/src/H5Af_c.html
+./fortran/doc/DevelGuide/src/H5Off_f90.html
+./fortran/doc/DevelGuide/src/H5Df_c.html
+./fortran/doc/DevelGuide/src/H5Sff_f90.html
+./fortran/doc/DevelGuide/src/H5Ef_c.html
+./fortran/doc/DevelGuide/src/HDF5mpio_f90.html
+./fortran/doc/DevelGuide/src/H5Lff_F03_f90.html
+./fortran/doc/DevelGuide/src/H5Ff_c.html
+./fortran/doc/DevelGuide/src/H5f90global_f90.html
+./fortran/doc/DevelGuide/src/H5Gf_c.html
+./fortran/doc/DevelGuide/src/H5If_c.html
+./fortran/doc/DevelGuide/src/H5Pff_F03_f90.html
+./fortran/doc/DevelGuide/src/H5_ff_F90_f90.html
+./fortran/doc/DevelGuide/src/H5Rff_F03_f90.html
+./fortran/doc/DevelGuide/src/H5Lf_c.html
+./fortran/doc/DevelGuide/src/H5Of_c.html
+./fortran/doc/DevelGuide/src/H5Dff_F90_f90.html
+./fortran/doc/DevelGuide/src/H5Pf_c.html
+./fortran/doc/DevelGuide/src/H5FDmpioff_f90.html
+./fortran/doc/DevelGuide/src/H5_ff_f90.html
+./fortran/doc/DevelGuide/src/H5Rf_c.html
+./fortran/doc/DevelGuide/src/H5Sf_c.html
+./fortran/doc/DevelGuide/src/H5Tf_c.html
+./fortran/doc/DevelGuide/src/H5Dff_f90.html
+./fortran/doc/DevelGuide/src/H5Lff_F90_f90.html
+
./fortran/examples/Makefile.am
./fortran/examples/Makefile.in
./fortran/examples/attrexample.f90
./fortran/examples/compound.f90
+./fortran/examples/compound_fortran2003.f90
+./fortran/examples/compound_complex_fortran2003.f90
./fortran/examples/dsetexample.f90
./fortran/examples/fileexample.f90
./fortran/examples/groupexample.f90
@@ -170,17 +257,27 @@
./fortran/examples/rwdsetexample.f90
./fortran/examples/selectele.f90
./fortran/examples/testh5fc.sh.in
+./fortran/examples/nested_derived_type.f90
+./fortran/examples/rwdset_fortran2003.f90
./fortran/src/H5_f.c
./fortran/src/H5_ff.f90
+./fortran/src/H5_ff_F90.f90
+./fortran/src/H5_ff_F03.f90
./fortran/src/H5_DBLE_InterfaceInclude.f90
./fortran/src/H5_DBLE_InterfaceExclude.f90
./fortran/src/H5Af.c
./fortran/src/H5Aff.f90
+./fortran/src/H5Aff_F90.f90
+./fortran/src/H5Aff_F03.f90
./fortran/src/H5Df.c
./fortran/src/H5Dff.f90
+./fortran/src/H5Dff_F90.f90
+./fortran/src/H5Dff_F03.f90
./fortran/src/H5Ef.c
./fortran/src/H5Eff.f90
+./fortran/src/H5Eff_F90.f90
+./fortran/src/H5Eff_F03.f90
./fortran/src/H5FDmpiof.c
./fortran/src/H5FDmpioff.f90
./fortran/src/H5Ff.c
@@ -191,16 +288,26 @@
./fortran/src/H5Iff.f90
./fortran/src/H5Lf.c
./fortran/src/H5Lff.f90
+./fortran/src/H5Lff_F90.f90
+./fortran/src/H5Lff_F03.f90
./fortran/src/H5Of.c
./fortran/src/H5Off.f90
+./fortran/src/H5Off_F90.f90
+./fortran/src/H5Off_F03.f90
./fortran/src/H5Pf.c
./fortran/src/H5Pff.f90
+./fortran/src/H5Pff_F90.f90
+./fortran/src/H5Pff_F03.f90
./fortran/src/H5Rf.c
./fortran/src/H5Rff.f90
+./fortran/src/H5Rff_F90.f90
+./fortran/src/H5Rff_F03.f90
./fortran/src/H5Sf.c
./fortran/src/H5Sff.f90
./fortran/src/H5Tf.c
./fortran/src/H5Tff.f90
+./fortran/src/H5Tff_F90.f90
+./fortran/src/H5Tff_F03.f90
./fortran/src/H5Zf.c
./fortran/src/H5Zff.f90
./fortran/src/H5f90.h
@@ -227,22 +334,27 @@
./fortran/test/fflush2.f90
./fortran/test/fortranlib_test.f90
./fortran/test/fortranlib_test_1_8.f90
+./fortran/test/fortranlib_test_F03.f90
./fortran/test/t.c
./fortran/test/t.h
./fortran/test/tf.f90
./fortran/test/tH5A.f90
./fortran/test/tH5A_1_8.f90
./fortran/test/tH5D.f90
+./fortran/test/tH5E_F03.f90
./fortran/test/tH5E.f90
./fortran/test/tH5F.f90
./fortran/test/tH5G.f90
./fortran/test/tH5G_1_8.f90
./fortran/test/tH5I.f90
+./fortran/test/tH5L_F03.f90
./fortran/test/tH5O.f90
+./fortran/test/tH5P_F03.f90
./fortran/test/tH5P.f90
./fortran/test/tH5R.f90
./fortran/test/tH5S.f90
./fortran/test/tH5Sselect.f90
+./fortran/test/tH5T_F03.f90
./fortran/test/tH5T.f90
./fortran/test/tH5VL.f90
./fortran/test/tH5Z.f90
diff --git a/configure b/configure
index 5d8c30a..b967830 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
#! /bin/sh
-# From configure.in Id: configure.in 21185 2011-08-07 14:17:33Z hdftest .
+# From configure.in Id: configure.in 21225 2011-08-14 16:50:04Z hdftest .
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.68 for HDF5 1.9.89.
#
@@ -713,6 +713,8 @@ ac_ct_CXX
CXXFLAGS
FORTRAN_DEFAULT_REALisDBLE_F_FALSE
FORTRAN_DEFAULT_REALisDBLE_F_TRUE
+FORTRAN_2003_CONDITIONAL_F_FALSE
+FORTRAN_2003_CONDITIONAL_F_TRUE
FORTRAN_HAVE_SIZEOF_FALSE
FORTRAN_HAVE_SIZEOF_TRUE
FCLIBS
@@ -731,6 +733,7 @@ HSIZE_T
HADDR_T
R_INTEGER
R_LARGE
+HAVE_FORTRAN_2003
HDF5_INTERFACES
am__fastdepCC_FALSE
am__fastdepCC_TRUE
@@ -761,7 +764,9 @@ GPFS
HDF5_HL
CXX
HDF_CXX
+FC2003
FC
+HDF_FORTRAN2003
HDF_FORTRAN
STATIC_EXEC
MPE
@@ -859,6 +864,7 @@ enable_maintainer_mode
enable_dependency_tracking
enable_unsupported
enable_fortran
+enable_fortran2003
enable_cxx
enable_shared
enable_static
@@ -1542,7 +1548,8 @@ Optional Features:
--disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors
--enable-unsupported Allow unsupported combinations of configure options
- --enable-fortran Compile the Fortran interface [default=no]
+ --enable-fortran Compile the Fortran 77/90/95 interface [default=no]
+ --enable-fortran2003 Compile the Fortran 2003 interface [default=no]
--enable-cxx Compile the C++ interface [default=no]
--enable-shared[=PKGS] build shared libraries [default=yes]
--enable-static[=PKGS] build static libraries [default=yes]
@@ -3835,7 +3842,9 @@ $as_echo "done" >&6; }
MPE=no
STATIC_EXEC=no
HDF_FORTRAN=no
+ HDF_FORTRAN2003=no
HDF_FORTRAN=no
+ HDF_FORTRAN2003=no
HDF_CXX=no
HDF_CXX=no
HDF5_HL=yes
@@ -4984,15 +4993,30 @@ if test "${enable_fortran+set}" = set; then :
fi
+# Check whether --enable-fortran2003 was given.
+if test "${enable_fortran2003+set}" = set; then :
+ enableval=$enable_fortran2003; HDF_FORTRAN2003=$enableval
+fi
+
HAVE_SIZEOF="no"
FORTRAN_DEFAULT_REALisDBLE="no"
+
+if test "X$HDF_FORTRAN2003" = "Xyes"; then
+ HDF_FORTRAN=yes
+fi
+
+
+
if test "X$HDF_FORTRAN" = "Xyes"; then
echo "yes"
HDF5_INTERFACES="$HDF5_INTERFACES fortran"
+ HAVE_FORTRAN_2003="no"
+ HAVE_ISO_C_BINDING="no"
+
@@ -6248,8 +6272,6 @@ fi
-
-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran default REAL is DOUBLE PRECISION" >&5
$as_echo_n "checking if Fortran default REAL is DOUBLE PRECISION... " >&6; }
@@ -6295,6 +6317,104 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+
+ if test "X$HDF_FORTRAN2003" = "Xyes"; then
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran compiler supports ISO_C_BINDING module" >&5
+$as_echo_n "checking if Fortran compiler supports ISO_C_BINDING module... " >&6; }
+
+ cat > conftest.$ac_ext <<_ACEOF
+ program main
+
+ USE iso_c_binding
+
+ end
+_ACEOF
+if ac_fn_fc_try_compile "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ HAVE_ISO_C_BINDING="yes"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+ if test "X$HAVE_ISO_C_BINDING" = "Xyes"; then
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran compiler version compatible with Fortran 2003 HDF" >&5
+$as_echo_n "checking if Fortran compiler version compatible with Fortran 2003 HDF... " >&6; }
+ HAVE_FORTRAN_2003="no"
+
+ if (${FC} -V 2>&1 | grep 'Sun Fortran') > /dev/null; then
+ vers=`${FC} -V 2>&1 | sed -rn '\|Fortran 95 | s|.* ([0-9.]+) .*|\1|p' | sed -e 's/[^0-9]//g'`
+ if test -n "$vers" && test "$vers" -ge 86; then
+ HAVE_FORTRAN_2003="yes"
+ echo $HAVE_FORTRAN_2003
+ else
+ echo $HAVE_FORTRAN_2003
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Only Sun Fortran Compiler, Version >= 8.6 supported; disabling Fortran 2003 features" >&5
+$as_echo "$as_me: WARNING: Only Sun Fortran Compiler, Version >= 8.6 supported; disabling Fortran 2003 features" >&2;}
+ fi
+ fi
+
+ if (${FC} -V 2>&1 | grep '^Intel(R) Fortran') > /dev/null; then
+ vers=`${FC} -v 2>&1 | sed -e 's/[^0-9]//g'`
+ if test -n "$vers" && test "$vers" -ge 101; then
+ HAVE_FORTRAN_2003="yes"
+ echo $HAVE_FORTRAN_2003
+ else
+ echo $HAVE_FORTRAN_2003
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Only Intel Fortran Compiler, Version > 10.1 supported; disabling Fortran 2003 features" >&5
+$as_echo "$as_me: WARNING: Only Intel Fortran Compiler, Version > 10.1 supported; disabling Fortran 2003 features" >&2;}
+ fi
+ fi
+
+ if (${FC} -dumpversion 2>&1 | grep 'G95') > /dev/null; then
+ vers=`${FC} -dumpversion 2>&1 | grep -o '[^ ]*!' | sed -e 's/[^0-9]//g'`
+ if test -n "$vers" && test "$vers" -ge 90; then
+ HAVE_FORTRAN_2003="yes"
+ echo $HAVE_FORTRAN_2003
+ else
+ echo $HAVE_FORTRAN_2003
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Only G95 Fortran Compiler, Version > .9 supported; disabling Fortran 2003 features" >&5
+$as_echo "$as_me: WARNING: Only G95 Fortran Compiler, Version > .9 supported; disabling Fortran 2003 features" >&2;}
+ fi
+ fi
+
+ if (${FC} --version 2>&1 | grep 'GNU Fortran') > /dev/null; then
+ vers_major=`${FC} --version 2>&1 | grep 'GNU Fortran (' | grep -o ' [0-9]*\.' | sed -e 's/[^0-9]//g'`
+ vers_minor=`${FC} --version 2>&1 | grep 'GNU Fortran (' | grep -o '\.[0-9]*\.' | sed -e 's/[^0-9]//g'`
+
+ if test -n "$vers_major" && test -n "$vers_minor" && test "$vers_major" -ge 4 && test "$vers_minor" -ge 1; then
+ HAVE_FORTRAN_2003="yes"
+ echo $HAVE_FORTRAN_2003
+ else
+ echo $HAVE_FORTRAN_2003
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Only GNU Fortran Compiler, Version > 4.1.0 supported; disabling Fortran 2003 features" >&5
+$as_echo "$as_me: WARNING: Only GNU Fortran Compiler, Version > 4.1.0 supported; disabling Fortran 2003 features" >&2;}
+ fi
+ fi
+
+ if (${FC} -V 2>&1 | grep 'Portland Group') > /dev/null; then
+ vers=`${FC} -V 2>&1 | grep 'pgf' | grep -o '[^ ]*[^ ]\.[^ ]' | sed -e 's/[^0-9]//g'`
+ if test -n "$vers" && test "$vers" -ge 104; then
+ HAVE_FORTRAN_2003="yes"
+ echo $HAVE_FORTRAN_2003
+ else
+ echo $HAVE_FORTRAN_2003
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Only The Portland Group Compiler, Version > 10.4-0 supported; disabling Fortran 2003 features" >&5
+$as_echo "$as_me: WARNING: Only The Portland Group Compiler, Version > 10.4-0 supported; disabling Fortran 2003 features" >&2;}
+ fi
+
+ fi
+
+
+ fi
+
+ fi
+
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -6314,6 +6434,14 @@ else
FORTRAN_HAVE_SIZEOF_FALSE=
fi
+ if test "X$HAVE_FORTRAN_2003" = "Xyes"; then
+ FORTRAN_2003_CONDITIONAL_F_TRUE=
+ FORTRAN_2003_CONDITIONAL_F_FALSE='#'
+else
+ FORTRAN_2003_CONDITIONAL_F_TRUE='#'
+ FORTRAN_2003_CONDITIONAL_F_FALSE=
+fi
+
if test "X$FORTRAN_DEFAULT_REALisDBLE" = "Xyes"; then
FORTRAN_DEFAULT_REALisDBLE_F_TRUE=
FORTRAN_DEFAULT_REALisDBLE_F_FALSE='#'
@@ -7366,7 +7494,7 @@ $as_echo "none" >&6; }
;;
esac
-if test "X$HDF_FORTRAN" = "Xyes"; then
+if test "X$HDF_FORTRAN" = "Xyes" ; then
ac_ext=${ac_fc_srcext-f}
ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
@@ -29985,6 +30113,10 @@ if test -z "${FORTRAN_HAVE_SIZEOF_TRUE}" && test -z "${FORTRAN_HAVE_SIZEOF_FALSE
as_fn_error $? "conditional \"FORTRAN_HAVE_SIZEOF\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${FORTRAN_2003_CONDITIONAL_F_TRUE}" && test -z "${FORTRAN_2003_CONDITIONAL_F_FALSE}"; then
+ as_fn_error $? "conditional \"FORTRAN_2003_CONDITIONAL_F\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${FORTRAN_DEFAULT_REALisDBLE_F_TRUE}" && test -z "${FORTRAN_DEFAULT_REALisDBLE_F_FALSE}"; then
as_fn_error $? "conditional \"FORTRAN_DEFAULT_REALisDBLE_F\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
diff --git a/configure.in b/configure.in
index abec1a5..4c36451 100644
--- a/configure.in
+++ b/configure.in
@@ -155,6 +155,7 @@ dnl EXTERNAL_FILTERS equals all external filters. Default none.
dnl MPE: whether MPE option is enabled. Default no.
dnl STATIC_EXEC: whether static-exec is enabled. Default no.
dnl HDF_FORTRAN: whether Fortran is enabled. Default no.
+dnl HDF_FORTRAN2003: whether Fortran 2003 is enabled. Default no.
dnl FC: Fortran compiler.
dnl HDF_CXX: whether C++ is enabled. Default no.
dnl CXX: C++ compiler.
@@ -175,7 +176,9 @@ AC_SUBST(EXTERNAL_FILTERS)
AC_SUBST(MPE) MPE=no
AC_SUBST(STATIC_EXEC) STATIC_EXEC=no
AC_SUBST(HDF_FORTRAN) HDF_FORTRAN=no
+AC_SUBST(HDF_FORTRAN2003) HDF_FORTRAN2003=no
AC_SUBST(FC) HDF_FORTRAN=no
+AC_SUBST(FC2003) HDF_FORTRAN2003=no
AC_SUBST(HDF_CXX) HDF_CXX=no
AC_SUBST(CXX) HDF_CXX=no
AC_SUBST(HDF5_HL) HDF5_HL=yes
@@ -370,12 +373,28 @@ AC_SUBST([HDF5_INTERFACES]) HDF5_INTERFACES=""
AC_MSG_CHECKING([if Fortran interface enabled])
AC_ARG_ENABLE([fortran],
[AC_HELP_STRING([--enable-fortran],
- [Compile the Fortran interface [default=no]])],
+ [Compile the Fortran 77/90/95 interface [default=no]])],
[HDF_FORTRAN=$enableval])
+dnl ----------------------------------------------------------------------
+dnl Check if they would like the Fortran 2003 interface compiled
+dnl
+AC_ARG_ENABLE([fortran2003],
+ [AC_HELP_STRING([--enable-fortran2003],
+ [Compile the Fortran 2003 interface [default=no]])],
+ [HDF_FORTRAN2003=$enableval])
HAVE_SIZEOF="no"
-FORTRAN_DEFAULT_REALisDBLE="no"
+FORTRAN_DEFAULT_REALisDBLE="no"
+
+dnl If FORTRAN 2003 interface enabled then mark that the general
+dnl Fortran interface is also enabled
+
+if test "X$HDF_FORTRAN2003" = "Xyes"; then
+ AC_SUBST(FC) HDF_FORTRAN=yes
+fi
+
+AC_SUBST([HAVE_FORTRAN_2003])
if test "X$HDF_FORTRAN" = "Xyes"; then
echo "yes"
@@ -383,6 +402,12 @@ if test "X$HDF_FORTRAN" = "Xyes"; then
HDF5_INTERFACES="$HDF5_INTERFACES fortran"
dnl --------------------------------------------------------------------
+ dnl Default for FORTRAN 2003 compliant compilers
+ dnl
+ HAVE_FORTRAN_2003="no"
+ HAVE_ISO_C_BINDING="no"
+
+ dnl --------------------------------------------------------------------
dnl HDF5 integer variables for the H5fortran_types.f90 file.
dnl
AC_SUBST([R_LARGE])
@@ -441,8 +466,8 @@ dnl ], AC_MSG_RESULT(yes),
dnl AC_MSG_RESULT(no)
dnl AM_FCFLAGS="$AM_FCFLAGS_saved")
-dnl --------------------------------------------------------------------
-dnl See if the fortran compiler supports the intrinsic function "SIZEOF"
+ dnl --------------------------------------------------------------------
+ dnl See if the fortran compiler supports the intrinsic function "SIZEOF"
AC_MSG_CHECKING([if Fortran compiler supports intrinsic SIZEOF])
AC_TRY_RUN([
@@ -453,10 +478,8 @@ dnl See if the fortran compiler supports the intrinsic function "SIZEOF"
HAVE_SIZEOF="yes"],
AC_MSG_RESULT(no))
-
-dnl Check to see if -r8 was specified to determine if we need to
-dnl compile the DOUBLE PRECISION interfaces.
-
+ dnl Check to see if -r8 was specified to determine if we need to
+ dnl compile the DOUBLE PRECISION interfaces.
AC_MSG_CHECKING([if Fortran default REAL is DOUBLE PRECISION])
@@ -485,6 +508,94 @@ dnl compile the DOUBLE PRECISION interfaces.
AC_MSG_RESULT(no),
[AC_MSG_RESULT(yes)
FORTRAN_DEFAULT_REALisDBLE="yes"])
+
+ if test "X$HDF_FORTRAN2003" = "Xyes"; then
+
+ dnl Checking if the compiler supports the ISO_C_BINDING module, if it does
+ dnl not then don't bother checking any other fortran 2003 features and
+ dnl disable fortran 2003.
+
+ AC_MSG_CHECKING([if Fortran compiler supports ISO_C_BINDING module])
+
+ AC_TRY_COMPILE(,[
+ USE iso_c_binding
+ ], [AC_MSG_RESULT(yes)
+ HAVE_ISO_C_BINDING="yes"] ,
+ AC_MSG_RESULT(no))
+
+ if test "X$HAVE_ISO_C_BINDING" = "Xyes"; then
+
+ AC_MSG_CHECKING([if Fortran compiler version compatible with Fortran 2003 HDF])
+ HAVE_FORTRAN_2003="no"
+
+ dnl Sun compiler
+ if (${FC} -V 2>&1 | grep 'Sun Fortran') > /dev/null; then
+ vers=[`${FC} -V 2>&1 | sed -rn '\|Fortran 95 | s|.* ([0-9.]+) .*|\1|p' | sed -e 's/[^0-9]//g'`]
+ if test -n "$vers" && test "$vers" -ge 86; then
+ HAVE_FORTRAN_2003="yes"
+ echo $HAVE_FORTRAN_2003
+ else
+ echo $HAVE_FORTRAN_2003
+ AC_MSG_WARN([Only Sun Fortran Compiler, Version >= 8.6 supported; disabling Fortran 2003 features])
+ fi
+ fi
+
+ dnl Intel compiler
+ if (${FC} -V 2>&1 | grep '^Intel(R) Fortran') > /dev/null; then
+ vers=[`${FC} -v 2>&1 | sed -e 's/[^0-9]//g'`]
+ if test -n "$vers" && test "$vers" -ge 101; then
+ HAVE_FORTRAN_2003="yes"
+ echo $HAVE_FORTRAN_2003
+ else
+ echo $HAVE_FORTRAN_2003
+ AC_MSG_WARN([Only Intel Fortran Compiler, Version > 10.1 supported; disabling Fortran 2003 features])
+ fi
+ fi
+
+ dnl g95 compiler
+ if (${FC} -dumpversion 2>&1 | grep 'G95') > /dev/null; then
+ vers=[`${FC} -dumpversion 2>&1 | grep -o '[^ ]*!' | sed -e 's/[^0-9]//g'`]
+ if test -n "$vers" && test "$vers" -ge 90; then
+ HAVE_FORTRAN_2003="yes"
+ echo $HAVE_FORTRAN_2003
+ else
+ echo $HAVE_FORTRAN_2003
+ AC_MSG_WARN([Only G95 Fortran Compiler, Version > .9 supported; disabling Fortran 2003 features])
+ fi
+ fi
+
+ dnl gfortran
+ if (${FC} --version 2>&1 | grep 'GNU Fortran') > /dev/null; then
+ vers_major=[`${FC} --version 2>&1 | grep 'GNU Fortran (' | grep -o ' [0-9]*\.' | sed -e 's/[^0-9]//g'`]
+ vers_minor=[`${FC} --version 2>&1 | grep 'GNU Fortran (' | grep -o '\.[0-9]*\.' | sed -e 's/[^0-9]//g'`]
+
+ if test -n "$vers_major" && test -n "$vers_minor" && test "$vers_major" -ge 4 && test "$vers_minor" -ge 1; then
+ HAVE_FORTRAN_2003="yes"
+ echo $HAVE_FORTRAN_2003
+ else
+ echo $HAVE_FORTRAN_2003
+ AC_MSG_WARN([Only GNU Fortran Compiler, Version > 4.1.0 supported; disabling Fortran 2003 features])
+ fi
+ fi
+
+ dnl The Portland Group
+ if (${FC} -V 2>&1 | grep 'Portland Group') > /dev/null; then
+ vers=[`${FC} -V 2>&1 | grep 'pgf' | grep -o '[^ ]*[^ ]\.[^ ]' | sed -e 's/[^0-9]//g'`]
+ if test -n "$vers" && test "$vers" -ge 104; then
+ HAVE_FORTRAN_2003="yes"
+ echo $HAVE_FORTRAN_2003
+ else
+ echo $HAVE_FORTRAN_2003
+ AC_MSG_WARN([Only The Portland Group Compiler, Version > 10.4-0 supported; disabling Fortran 2003 features])
+ fi
+
+ fi
+
+
+ fi
+
+ fi
+
dnl Change back to the C language
AC_LANG_POP(Fortran)
else
@@ -493,6 +604,7 @@ else
fi
AM_CONDITIONAL([FORTRAN_HAVE_SIZEOF], [test "X$HAVE_SIZEOF" = "Xyes"])
+AM_CONDITIONAL([FORTRAN_2003_CONDITIONAL_F], [test "X$HAVE_FORTRAN_2003" = "Xyes"])
AM_CONDITIONAL([FORTRAN_DEFAULT_REALisDBLE_F], [test "X$FORTRAN_DEFAULT_REALisDBLE" = "Xyes"])
dnl ----------------------------------------------------------------------
@@ -781,7 +893,7 @@ dnl Furthermore, the name of the compiler might tell us how to run the
dnl resulting executable. For `mpif90' the executable should be run with
dnl `mpiexec' from the same directory as mpif90 if it exists.
dnl
-if test "X$HDF_FORTRAN" = "Xyes"; then
+if test "X$HDF_FORTRAN" = "Xyes" ; then
dnl Change to the Fortran 90 language
AC_LANG_PUSH(Fortran)
diff --git a/fortran/Makefile.in b/fortran/Makefile.in
index 1bb45c9..9f006f0 100644
--- a/fortran/Makefile.in
+++ b/fortran/Makefile.in
@@ -182,6 +182,7 @@ F9XMODEXT = @F9XMODEXT@
F9XMODFLAG = @F9XMODFLAG@
F9XSUFFIXFLAG = @F9XSUFFIXFLAG@
FC = @FC@
+FC2003 = @FC2003@
FCFLAGS = @FCFLAGS@
FCFLAGS_f90 = @FCFLAGS_f90@
FCLIBS = @FCLIBS@
@@ -202,10 +203,12 @@ H5_LONE_COLON = @H5_LONE_COLON@
H5_VERSION = @H5_VERSION@
HADDR_T = @HADDR_T@
HAVE_DMALLOC = @HAVE_DMALLOC@
+HAVE_FORTRAN_2003 = @HAVE_FORTRAN_2003@
HDF5_HL = @HDF5_HL@
HDF5_INTERFACES = @HDF5_INTERFACES@
HDF_CXX = @HDF_CXX@
HDF_FORTRAN = @HDF_FORTRAN@
+HDF_FORTRAN2003 = @HDF_FORTRAN2003@
HID_T = @HID_T@
HL = @HL@
HL_FOR = @HL_FOR@
diff --git a/fortran/doc/DevelGuide/masterindex.html b/fortran/doc/DevelGuide/masterindex.html
new file mode 100644
index 0000000..9765ea0
--- /dev/null
+++ b/fortran/doc/DevelGuide/masterindex.html
@@ -0,0 +1,589 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="./robodoc.css" type="text/css" />
+<title>Index</title>
+<!-- Source: ./ -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="extra">
+</div> <!-- extra -->
+<div id="navigation">
+<a class="menuitem" href="./toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="./robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="#top">Index</a>
+<a class="menuitem" href="./robo_functions.html#top">Functions</a>
+<a class="menuitem" href="./robo_modules.html#top">Modules</a>
+<a class="menuitem" href="./robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="./robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<h1>Index</h1>
+<h2><a href="#A">A</a> - <a href="#B">B</a> - <a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#H">H</a> - <a href="#I">I</a> - <a href="#J">J</a> - <a href="#K">K</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#O">O</a> - <a href="#P">P</a> - <a href="#Q">Q</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#X">X</a> - <a href="#Y">Y</a> - <a href="#Z">Z</a> - <a href="#0">0</a> - <a href="#1">1</a> - <a href="#2">2</a> - <a href="#3">3</a> - <a href="#4">4</a> - <a href="#5">5</a> - <a href="#6">6</a> - <a href="#7">7</a> - <a href="#8">8</a> - <a href="#9">9</a></h2>
+<a href="./src/H5Pff_F03_f90.html#robo80" class="indexitem" > h5pget_double</a>
+<a href="./src/H5Pff_f90.html#robo81" class="indexitem" > h5pget_hyper_vector_size_f</a>
+<a href="./src/H5Pff_f90.html#robo82" class="indexitem" > h5pset_family_offset_f</a>
+<a href="./src/H5Pff_f90.html#robo83" class="indexitem" > h5pset_fapl_family_f</a>
+<a href="./src/H5Pff_f90.html#robo84" class="indexitem" > h5pset_meta_block_size_f</a>
+<h2><a name="F"></a>F</h2><a href="./test/fflush1_f90.html#robo_top_of_doc" class="indexitem" >fflush1.f90</a>
+<a href="./test/fflush2_f90.html#robo_top_of_doc" class="indexitem" >fflush2.f90</a>
+<a href="./test/fflush1_f90.html#robo0" class="indexitem" >fortran/test/fflush1.f90</a>
+<a href="./test/fflush2_f90.html#robo1" class="indexitem" >fortran/test/fflush2.f90</a>
+<a href="./test/fortranlib_test_f90.html#robo2" class="indexitem" >fortran/test/fortranlib_test.f90</a>
+<a href="./test/fortranlib_test_1_8_f90.html#robo3" class="indexitem" >fortran/test/fortranlib_test_1_8.f90</a>
+<a href="./test/fortranlib_test_F03_f90.html#robo4" class="indexitem" >fortran/test/fortranlib_test_F03.f90</a>
+<a href="./test/t_c.html#robo5" class="indexitem" >fortran/test/tc.c</a>
+<a href="./test/tf_f90.html#robo6" class="indexitem" >fortran/test/tf.f90</a>
+<a href="./test/tH5A_f90.html#robo7" class="indexitem" >fortran/test/tH5A.f90</a>
+<a href="./test/tH5A_1_8_f90.html#robo8" class="indexitem" >fortran/test/tH5A_1_8.f90</a>
+<a href="./test/tH5D_f90.html#robo9" class="indexitem" >fortran/test/tH5D.f90</a>
+<a href="./test/tH5E_f90.html#robo10" class="indexitem" >fortran/test/tH5E.f90</a>
+<a href="./test/tH5E_F03_f90.html#robo11" class="indexitem" >fortran/test/tH5E_F03.f90</a>
+<a href="./test/tH5F_f90.html#robo12" class="indexitem" >fortran/test/tH5F.f90</a>
+<a href="./test/tH5G_f90.html#robo13" class="indexitem" >fortran/test/tH5G.f90</a>
+<a href="./test/tH5G_1_8_f90.html#robo14" class="indexitem" >fortran/test/tH5G_1_8.f90</a>
+<a href="./test/tH5I_f90.html#robo15" class="indexitem" >fortran/test/tH5I.f90</a>
+<a href="./test/tH5L_F03_f90.html#robo16" class="indexitem" >fortran/test/tH5L_F03.f90</a>
+<a href="./test/tH5O_f90.html#robo17" class="indexitem" >fortran/test/tH5O.f90</a>
+<a href="./test/tH5P_f90.html#robo18" class="indexitem" >fortran/test/tH5P.f90</a>
+<a href="./test/tH5P_F03_f90.html#robo19" class="indexitem" >fortran/test/tH5P_F03.f90</a>
+<a href="./test/tH5R_f90.html#robo20" class="indexitem" >fortran/test/tH5R.f90</a>
+<a href="./test/tH5S_f90.html#robo21" class="indexitem" >fortran/test/tH5S.f90</a>
+<a href="./test/tH5Sselect_f90.html#robo22" class="indexitem" >fortran/test/tH5Sselect.f90</a>
+<a href="./test/tH5T_f90.html#robo23" class="indexitem" >fortran/test/tH5T.f90</a>
+<a href="./test/tH5T_F03_f90.html#robo24" class="indexitem" >fortran/test/tH5T_F03.f90</a>
+<a href="./test/tH5VL_f90.html#robo25" class="indexitem" >fortran/test/tH5VL.f90</a>
+<a href="./test/tH5Z_f90.html#robo26" class="indexitem" >fortran/test/tH5Z.f90</a>
+<a href="./test/fortranlib_test_f90.html#robo_top_of_doc" class="indexitem" >fortranlib_test.f90</a>
+<a href="./test/fortranlib_test_1_8_f90.html#robo_top_of_doc" class="indexitem" >fortranlib_test_1_8.f90</a>
+<a href="./test/fortranlib_test_F03_f90.html#robo_top_of_doc" class="indexitem" >fortranlib_test_F03.f90</a>
+<h2><a name="H"></a>H</h2><a href="./src/H5_DBLE_InterfaceExclude_f90.html#robo_top_of_doc" class="indexitem" >H5_DBLE_InterfaceExclude.f90</a>
+<a href="./src/H5_DBLE_InterfaceInclude_f90.html#robo_top_of_doc" class="indexitem" >H5_DBLE_InterfaceInclude.f90</a>
+<a href="./src/H5_ff_f90.html#robo_top_of_doc" class="indexitem" >H5_ff.f90</a>
+<a href="./src/H5_ff_F03_f90.html#robo_top_of_doc" class="indexitem" >H5_ff_F03.f90</a>
+<a href="./src/H5_ff_F90_f90.html#robo_top_of_doc" class="indexitem" >H5_ff_F90.f90</a>
+<a href="./src/H5Aff_f90.html#robo27" class="indexitem" >H5A</a>
+<a href="./src/H5Aff_F03_f90.html#robo28" class="indexitem" >H5A (F03)</a>
+<a href="./src/H5Aff_F90_f90.html#robo29" class="indexitem" >H5A (F90)</a>
+<a href="./src/H5Aff_f90.html#robo85" class="indexitem" >h5aclose_f</a>
+<a href="./src/H5Aff_f90.html#robo86" class="indexitem" >h5acreate_by_name_f</a>
+<a href="./src/H5Aff_f90.html#robo87" class="indexitem" >h5acreate_f</a>
+<a href="./src/H5Aff_f90.html#robo88" class="indexitem" >h5adelete_by_idx_f</a>
+<a href="./src/H5Aff_f90.html#robo89" class="indexitem" >h5adelete_by_name_f</a>
+<a href="./src/H5Aff_f90.html#robo90" class="indexitem" >h5adelete_f</a>
+<a href="./src/H5Aff_f90.html#robo91" class="indexitem" >H5Aexists_by_name_f</a>
+<a href="./src/H5Aff_f90.html#robo92" class="indexitem" >H5Aexists_f</a>
+<a href="./src/H5Af_c.html#robo30" class="indexitem" >H5Af</a>
+<a href="./src/H5Af_c.html#robo_top_of_doc" class="indexitem" >H5Af.c</a>
+<a href="./src/H5Aff_f90.html#robo_top_of_doc" class="indexitem" >H5Aff.f90</a>
+<a href="./src/H5Aff_F03_f90.html#robo_top_of_doc" class="indexitem" >H5Aff_F03.f90</a>
+<a href="./src/H5Aff_F90_f90.html#robo_top_of_doc" class="indexitem" >H5Aff_F90.f90</a>
+<a href="./src/H5Aff_f90.html#robo93" class="indexitem" >h5aget_create_plist_f</a>
+<a href="./src/H5Aff_f90.html#robo94" class="indexitem" >h5aget_info_by_idx_f</a>
+<a href="./src/H5Aff_f90.html#robo95" class="indexitem" >h5aget_info_by_name_f</a>
+<a href="./src/H5Aff_f90.html#robo96" class="indexitem" >h5aget_info_f</a>
+<a href="./src/H5Aff_f90.html#robo97" class="indexitem" >h5aget_name_by_idx_f</a>
+<a href="./src/H5Aff_f90.html#robo98" class="indexitem" >h5aget_name_f</a>
+<a href="./src/H5Aff_f90.html#robo99" class="indexitem" >h5aget_num_attrs_f</a>
+<a href="./src/H5Aff_f90.html#robo100" class="indexitem" >h5aget_space_f</a>
+<a href="./src/H5Aff_f90.html#robo101" class="indexitem" >h5aget_storage_size_f</a>
+<a href="./src/H5Aff_f90.html#robo102" class="indexitem" >h5aget_type_f</a>
+<a href="./src/H5Aff_f90.html#robo103" class="indexitem" >h5aopen_by_idx_f</a>
+<a href="./src/H5Aff_f90.html#robo104" class="indexitem" >H5Aopen_by_name_f</a>
+<a href="./src/H5Aff_f90.html#robo105" class="indexitem" >h5aopen_f</a>
+<a href="./src/H5Aff_f90.html#robo106" class="indexitem" >h5aopen_idx_f</a>
+<a href="./src/H5Aff_f90.html#robo107" class="indexitem" >h5aopen_name_f</a>
+<a href="./src/H5Aff_F03_f90.html#robo108" class="indexitem" >h5aread_f</a>
+<a href="./src/H5Aff_f90.html#robo109" class="indexitem" >h5arename_by_name_f</a>
+<a href="./src/H5Aff_f90.html#robo110" class="indexitem" >h5arename_f</a>
+<a href="./src/H5_ff_f90.html#robo111" class="indexitem" >h5check_version_f</a>
+<a href="./src/H5_ff_f90.html#robo112" class="indexitem" >h5close_f</a>
+<a href="./src/H5Dff_f90.html#robo31" class="indexitem" >H5D</a>
+<a href="./src/H5Dff_F03_f90.html#robo32" class="indexitem" >H5D (F03)</a>
+<a href="./src/H5Dff_F90_f90.html#robo33" class="indexitem" >H5D (F90)</a>
+<a href="./src/H5Dff_f90.html#robo113" class="indexitem" >h5dclose_f</a>
+<a href="./src/H5Dff_f90.html#robo114" class="indexitem" >h5dcreate_anon_f</a>
+<a href="./src/H5Dff_f90.html#robo115" class="indexitem" >h5dcreate_f</a>
+<a href="./src/H5Df_c.html#robo34" class="indexitem" >H5Df</a>
+<a href="./src/H5Df_c.html#robo_top_of_doc" class="indexitem" >H5Df.c</a>
+<a href="./src/H5Dff_f90.html#robo_top_of_doc" class="indexitem" >H5Dff.f90</a>
+<a href="./src/H5Dff_F03_f90.html#robo_top_of_doc" class="indexitem" >H5Dff_F03.f90</a>
+<a href="./src/H5Dff_F90_f90.html#robo_top_of_doc" class="indexitem" >H5Dff_F90.f90</a>
+<a href="./src/H5Dff_f90.html#robo116" class="indexitem" >h5dget_access_plist_f</a>
+<a href="./src/H5Dff_f90.html#robo117" class="indexitem" >h5dget_create_plist_f</a>
+<a href="./src/H5Dff_f90.html#robo118" class="indexitem" >h5dget_space_f</a>
+<a href="./src/H5Dff_f90.html#robo119" class="indexitem" >h5dget_space_status_f</a>
+<a href="./src/H5Dff_f90.html#robo120" class="indexitem" >h5dget_storage_size_f</a>
+<a href="./src/H5Dff_f90.html#robo121" class="indexitem" >h5dget_type_f</a>
+<a href="./src/H5_ff_f90.html#robo122" class="indexitem" >h5dont_atexit_f</a>
+<a href="./src/H5Dff_f90.html#robo123" class="indexitem" >h5dopen_f</a>
+<a href="./src/H5Dff_F90_f90.html#robo124" class="indexitem" >h5dread_f</a>
+<a href="./src/H5Dff_f90.html#robo125" class="indexitem" >h5dset_extent</a>
+<a href="./src/H5Dff_f90.html#robo126" class="indexitem" >h5dvlen_get_max_len_f</a>
+<a href="./src/H5Dff_F03_f90.html#robo127" class="indexitem" >h5dvlen_reclaim</a>
+<a href="./src/H5Eff_f90.html#robo35" class="indexitem" >H5E</a>
+<a href="./src/H5Eff_F03_f90.html#robo36" class="indexitem" >H5E (F03)</a>
+<a href="./src/H5Eff_F90_f90.html#robo37" class="indexitem" >H5E (F90)</a>
+<a href="./src/H5Eff_f90.html#robo128" class="indexitem" >h5eclear_f</a>
+<a href="./src/H5Ef_c.html#robo38" class="indexitem" >H5Ef</a>
+<a href="./src/H5Ef_c.html#robo_top_of_doc" class="indexitem" >H5Ef.c</a>
+<a href="./src/H5Eff_f90.html#robo_top_of_doc" class="indexitem" >H5Eff.f90</a>
+<a href="./src/H5Eff_F03_f90.html#robo_top_of_doc" class="indexitem" >H5Eff_F03.f90</a>
+<a href="./src/H5Eff_F90_f90.html#robo_top_of_doc" class="indexitem" >H5Eff_F90.f90</a>
+<a href="./src/H5Eff_F03_f90.html#robo129" class="indexitem" >h5eget_auto_f</a>
+<a href="./src/H5Eff_f90.html#robo130" class="indexitem" >h5eget_major_f</a>
+<a href="./src/H5Eff_f90.html#robo131" class="indexitem" >h5eget_minor_f</a>
+<a href="./src/H5Eff_f90.html#robo132" class="indexitem" >h5eprint_f</a>
+<a href="./src/H5Eff_F03_f90.html#robo133" class="indexitem" >h5eset_auto2_f</a>
+<a href="./src/H5Eff_F90_f90.html#robo134" class="indexitem" >h5eset_auto_f</a>
+<a href="./src/H5Fff_f90.html#robo39" class="indexitem" >H5F</a>
+<a href="./src/H5f90global_f90.html#robo_top_of_doc" class="indexitem" >H5f90global.f90</a>
+<a href="./src/H5f90kit_c.html#robo40" class="indexitem" >H5f90kit</a>
+<a href="./src/H5f90kit_c.html#robo_top_of_doc" class="indexitem" >H5f90kit.c</a>
+<a href="./src/H5Fff_f90.html#robo135" class="indexitem" >h5fclose_f</a>
+<a href="./src/H5Fff_f90.html#robo136" class="indexitem" >h5fcreate_f</a>
+<a href="./src/H5FDmpioff_f90.html#robo41" class="indexitem" >H5FDMPIO</a>
+<a href="./src/H5FDmpiof_c.html#robo42" class="indexitem" >H5FDmpiof</a>
+<a href="./src/H5FDmpiof_c.html#robo_top_of_doc" class="indexitem" >H5FDmpiof.c</a>
+<a href="./src/H5FDmpioff_f90.html#robo_top_of_doc" class="indexitem" >H5FDmpioff.f90</a>
+<a href="./src/H5Ff_c.html#robo43" class="indexitem" >H5Ff</a>
+<a href="./src/H5Ff_c.html#robo_top_of_doc" class="indexitem" >H5Ff.c</a>
+<a href="./src/H5Fff_f90.html#robo_top_of_doc" class="indexitem" >H5Fff.f90</a>
+<a href="./src/H5Fff_f90.html#robo137" class="indexitem" >h5fflush_f</a>
+<a href="./src/H5Fff_f90.html#robo138" class="indexitem" >h5fget_access_plist_f</a>
+<a href="./src/H5Fff_f90.html#robo139" class="indexitem" >h5fget_create_plist_f</a>
+<a href="./src/H5Fff_f90.html#robo140" class="indexitem" >h5fget_filesize_f</a>
+<a href="./src/H5Fff_f90.html#robo141" class="indexitem" >h5fget_freespace_f</a>
+<a href="./src/H5Fff_f90.html#robo142" class="indexitem" >h5fget_name_f</a>
+<a href="./src/H5Fff_f90.html#robo143" class="indexitem" >h5fget_obj_count_f</a>
+<a href="./src/H5Fff_f90.html#robo144" class="indexitem" >h5fget_obj_ids_f</a>
+<a href="./src/H5Fff_f90.html#robo145" class="indexitem" >h5fis_hdf5_f</a>
+<a href="./src/H5Fff_f90.html#robo146" class="indexitem" >h5fmount_f</a>
+<a href="./src/H5Fff_f90.html#robo147" class="indexitem" >h5fopen_f</a>
+<a href="./src/H5Fff_f90.html#robo148" class="indexitem" >h5freopen_f</a>
+<a href="./src/H5Fff_f90.html#robo149" class="indexitem" >h5funmount_f</a>
+<a href="./src/H5Gff_f90.html#robo44" class="indexitem" >H5G</a>
+<a href="./src/H5_ff_f90.html#robo150" class="indexitem" >h5garbage_collect_f</a>
+<a href="./src/H5Gff_f90.html#robo151" class="indexitem" >h5gclose_f</a>
+<a href="./src/H5Gff_f90.html#robo152" class="indexitem" >H5Gcreate_anon_f</a>
+<a href="./src/H5Gff_f90.html#robo153" class="indexitem" >h5gcreate_f</a>
+<a href="./src/H5_ff_f90.html#robo154" class="indexitem" >h5get_libversion_f</a>
+<a href="./src/H5Gf_c.html#robo45" class="indexitem" >H5Gf</a>
+<a href="./src/H5Gf_c.html#robo_top_of_doc" class="indexitem" >H5Gf.c</a>
+<a href="./src/H5Gff_f90.html#robo_top_of_doc" class="indexitem" >H5Gff.f90</a>
+<a href="./src/H5Gff_f90.html#robo155" class="indexitem" >h5gget_comment_f</a>
+<a href="./src/H5Gff_f90.html#robo156" class="indexitem" >H5Gget_create_plist_f</a>
+<a href="./src/H5Gff_f90.html#robo157" class="indexitem" >h5gget_info_by_idx_f</a>
+<a href="./src/H5Gff_f90.html#robo158" class="indexitem" >h5gget_info_by_name_f</a>
+<a href="./src/H5Gff_f90.html#robo159" class="indexitem" >h5gget_info_f</a>
+<a href="./src/H5Gff_f90.html#robo160" class="indexitem" >h5gget_linkval_f</a>
+<a href="./src/H5Gff_f90.html#robo161" class="indexitem" >h5gget_obj_info_idx_f</a>
+<a href="./src/H5Gff_f90.html#robo162" class="indexitem" >h5glink2_f</a>
+<a href="./src/H5Gff_f90.html#robo163" class="indexitem" >h5glink_f</a>
+<a href="./src/H5f90global_f90.html#robo46" class="indexitem" >H5GLOBAL</a>
+<a href="./src/H5Gff_f90.html#robo164" class="indexitem" >h5gmove2_f</a>
+<a href="./src/H5Gff_f90.html#robo165" class="indexitem" >h5gmove_f</a>
+<a href="./src/H5Gff_f90.html#robo166" class="indexitem" >h5gn_members_f</a>
+<a href="./src/H5Gff_f90.html#robo167" class="indexitem" >h5gopen_f</a>
+<a href="./src/H5Gff_f90.html#robo168" class="indexitem" >h5gset_comment_f</a>
+<a href="./src/H5Gff_f90.html#robo169" class="indexitem" >h5gunlink_f</a>
+<a href="./src/H5Iff_f90.html#robo47" class="indexitem" >H5I</a>
+<a href="./src/H5Iff_f90.html#robo170" class="indexitem" >h5idec_ref_f</a>
+<a href="./src/H5If_c.html#robo48" class="indexitem" >H5If</a>
+<a href="./src/H5If_c.html#robo_top_of_doc" class="indexitem" >H5If.c</a>
+<a href="./src/H5Iff_f90.html#robo_top_of_doc" class="indexitem" >H5Iff.f90</a>
+<a href="./src/H5Iff_f90.html#robo171" class="indexitem" >h5iget_file_id_f</a>
+<a href="./src/H5Iff_f90.html#robo172" class="indexitem" >h5iget_name_f</a>
+<a href="./src/H5Iff_f90.html#robo173" class="indexitem" >h5iget_ref_f</a>
+<a href="./src/H5Iff_f90.html#robo174" class="indexitem" >h5iget_type_f</a>
+<a href="./src/H5Iff_f90.html#robo175" class="indexitem" >h5iinc_ref_f</a>
+<a href="./src/H5Iff_f90.html#robo176" class="indexitem" >h5iis_valid_f</a>
+<a href="./src/H5_ff_f90.html#robo177" class="indexitem" >h5kind_to_type</a>
+<a href="./src/H5Lff_f90.html#robo49" class="indexitem" >H5L</a>
+<a href="./src/H5Lff_F03_f90.html#robo50" class="indexitem" >H5L (F03)</a>
+<a href="./src/H5Lff_F90_f90.html#robo51" class="indexitem" >H5L (F90)</a>
+<a href="./src/H5Lff_f90.html#robo178" class="indexitem" >h5lcopy_f</a>
+<a href="./src/H5Lff_f90.html#robo179" class="indexitem" >H5Lcreate_external_f</a>
+<a href="./src/H5Lff_f90.html#robo180" class="indexitem" >H5Lcreate_hard_f</a>
+<a href="./src/H5Lff_f90.html#robo181" class="indexitem" >H5Lcreate_soft_f</a>
+<a href="./src/H5Lff_f90.html#robo182" class="indexitem" >h5ldelete_by_idx_f</a>
+<a href="./src/H5Lff_f90.html#robo183" class="indexitem" >h5ldelete_f</a>
+<a href="./src/H5Lff_f90.html#robo184" class="indexitem" >H5Lexists_f</a>
+<a href="./src/H5Lf_c.html#robo52" class="indexitem" >H5Lf</a>
+<a href="./src/H5Lf_c.html#robo_top_of_doc" class="indexitem" >H5Lf.c</a>
+<a href="./src/H5Lff_f90.html#robo_top_of_doc" class="indexitem" >H5Lff.f90</a>
+<a href="./src/H5Lff_F03_f90.html#robo_top_of_doc" class="indexitem" >H5Lff_F03.f90</a>
+<a href="./src/H5Lff_F90_f90.html#robo_top_of_doc" class="indexitem" >H5Lff_F90.f90</a>
+<a href="./src/H5Lff_f90.html#robo185" class="indexitem" >h5lget_info_by_idx_f</a>
+<a href="./src/H5Lff_f90.html#robo186" class="indexitem" >h5lget_info_f</a>
+<a href="./src/H5Lff_f90.html#robo187" class="indexitem" >h5lget_name_by_idx_f</a>
+<a href="./src/H5_ff_f90.html#robo53" class="indexitem" >H5LIB</a>
+<a href="./src/H5_ff_F03_f90.html#robo54" class="indexitem" >H5LIB_PROVISIONAL</a>
+<a href="./src/H5_ff_F90_f90.html#robo55" class="indexitem" >H5LIB_PROVISIONAL (F90)</a>
+<a href="./src/H5Lff_f90.html#robo188" class="indexitem" >h5lis_registered_f</a>
+<a href="./src/H5Lff_F03_f90.html#robo189" class="indexitem" >h5literate_by_name_f</a>
+<a href="./src/H5Lff_F03_f90.html#robo190" class="indexitem" >h5literate_f</a>
+<a href="./src/H5Lff_f90.html#robo191" class="indexitem" >h5lmove_f</a>
+<a href="./src/H5match_types_c.html#robo192" class="indexitem" >H5match_types</a>
+<a href="./src/H5match_types_c.html#robo_top_of_doc" class="indexitem" >H5match_types.c</a>
+<a href="./src/H5Off_f90.html#robo56" class="indexitem" >H5O</a>
+<a href="./src/H5Off_F03_f90.html#robo57" class="indexitem" >H5O (F03)</a>
+<a href="./src/H5Off_F90_f90.html#robo58" class="indexitem" >H5O (F90)</a>
+<a href="./src/H5Off_f90.html#robo193" class="indexitem" >h5oclose_f</a>
+<a href="./src/H5Of_c.html#robo59" class="indexitem" >H5Of</a>
+<a href="./src/H5Of_c.html#robo_top_of_doc" class="indexitem" >H5Of.c</a>
+<a href="./src/H5Off_f90.html#robo_top_of_doc" class="indexitem" >H5Off.f90</a>
+<a href="./src/H5Off_F03_f90.html#robo_top_of_doc" class="indexitem" >H5Off_F03.f90</a>
+<a href="./src/H5Off_F90_f90.html#robo_top_of_doc" class="indexitem" >H5Off_F90.f90</a>
+<a href="./src/H5_ff_F03_f90.html#robo194" class="indexitem" >h5offsetof</a>
+<a href="./src/H5Off_f90.html#robo195" class="indexitem" >h5olink_f</a>
+<a href="./src/H5Off_f90.html#robo196" class="indexitem" >h5oopen_f</a>
+<a href="./src/H5Off_f90.html#robo197" class="indexitem" >h5open_by_addr_f</a>
+<a href="./src/H5_ff_f90.html#robo198" class="indexitem" >h5open_f</a>
+<a href="./src/H5Off_F03_f90.html#robo199" class="indexitem" >h5ovisit_f</a>
+<a href="./src/H5Pff_F90_f90.html#robo60" class="indexitem" >H5P (_F90)</a>
+<a href="./src/H5Pff_F03_f90.html#robo61" class="indexitem" >H5P (F03)</a>
+<a href="./src/H5Pff_f90.html#robo62" class="indexitem" >H5P (F90)</a>
+<a href="./src/H5Pff_f90.html#robo200" class="indexitem" >h5pall_filters_avail_f</a>
+<a href="./src/H5Pff_f90.html#robo201" class="indexitem" >h5pclose_class_f</a>
+<a href="./src/H5Pff_f90.html#robo202" class="indexitem" >h5pclose_f</a>
+<a href="./src/H5Pff_f90.html#robo203" class="indexitem" >h5pcopy_f</a>
+<a href="./src/H5Pff_f90.html#robo204" class="indexitem" >h5pcopy_prop_f</a>
+<a href="./src/H5Pff_F03_f90.html#robo205" class="indexitem" >h5pcreate_class_f</a>
+<a href="./src/H5Pff_F90_f90.html#robo206" class="indexitem" >h5pcreate_class_f</a>
+<a href="./src/H5Pff_f90.html#robo207" class="indexitem" >h5pcreate_f</a>
+<a href="./src/H5Pff_f90.html#robo208" class="indexitem" >h5pequal_f</a>
+<a href="./src/H5Pff_f90.html#robo209" class="indexitem" >h5pexist_f</a>
+<a href="./src/H5Pf_c.html#robo63" class="indexitem" >H5Pf</a>
+<a href="./src/H5Pf_c.html#robo_top_of_doc" class="indexitem" >H5Pf.c</a>
+<a href="./src/H5Pff_f90.html#robo_top_of_doc" class="indexitem" >H5Pff.f90</a>
+<a href="./src/H5Pff_F03_f90.html#robo_top_of_doc" class="indexitem" >H5Pff_F03.f90</a>
+<a href="./src/H5Pff_F90_f90.html#robo_top_of_doc" class="indexitem" >H5Pff_F90.f90</a>
+<a href="./src/H5Pff_f90.html#robo210" class="indexitem" >h5pfill_value_defined_f</a>
+<a href="./src/H5Pff_f90.html#robo211" class="indexitem" >h5pget_alignment_f</a>
+<a href="./src/H5Pff_f90.html#robo212" class="indexitem" >h5pget_alloc_time_f</a>
+<a href="./src/H5Pff_f90.html#robo213" class="indexitem" >H5Pget_attr_creation_order_f</a>
+<a href="./src/H5Pff_f90.html#robo214" class="indexitem" >H5Pget_attr_phase_change_f</a>
+<a href="./src/H5Pff_f90.html#robo215" class="indexitem" >h5pget_btree_ratios_f</a>
+<a href="./src/H5Pff_f90.html#robo216" class="indexitem" >h5pget_buffer_f</a>
+<a href="./src/H5Pff_f90.html#robo217" class="indexitem" >h5pget_cache_f</a>
+<a href="./src/H5Pff_F03_f90.html#robo218" class="indexitem" >h5pget_char</a>
+<a href="./src/H5Pff_F90_f90.html#robo219" class="indexitem" >h5pget_char</a>
+<a href="./src/H5Pff_f90.html#robo220" class="indexitem" >H5Pget_char_encoding_f</a>
+<a href="./src/H5Pff_f90.html#robo221" class="indexitem" >H5Pget_chunk_cache_f</a>
+<a href="./src/H5Pff_f90.html#robo222" class="indexitem" >h5pget_chunk_f</a>
+<a href="./src/H5Pff_f90.html#robo223" class="indexitem" >h5pget_class_f</a>
+<a href="./src/H5Pff_f90.html#robo224" class="indexitem" >h5pget_class_name_f</a>
+<a href="./src/H5Pff_f90.html#robo225" class="indexitem" >h5pget_class_parent_f</a>
+<a href="./src/H5Pff_f90.html#robo226" class="indexitem" >h5pget_copy_object_f</a>
+<a href="./src/H5Pff_f90.html#robo227" class="indexitem" >H5Pget_create_inter_group_f</a>
+<a href="./src/H5Pff_f90.html#robo228" class="indexitem" >h5pget_data_transform_f</a>
+<a href="./src/H5Pff_F90_f90.html#robo229" class="indexitem" >h5pget_double</a>
+<a href="./src/H5Pff_f90.html#robo230" class="indexitem" >h5pget_driver_f</a>
+<a href="./src/H5FDmpioff_f90.html#robo231" class="indexitem" >h5pget_dxpl_mpio_f</a>
+<a href="./src/H5Pff_f90.html#robo232" class="indexitem" >h5pget_edc_check_f</a>
+<a href="./src/H5Pff_f90.html#robo233" class="indexitem" >H5Pget_est_link_info_f</a>
+<a href="./src/H5Pff_f90.html#robo234" class="indexitem" >h5pget_external_count_f</a>
+<a href="./src/H5Pff_f90.html#robo235" class="indexitem" >h5pget_external_f</a>
+<a href="./src/H5Pff_f90.html#robo236" class="indexitem" >h5pget_fapl_core_f</a>
+<a href="./src/H5Pff_f90.html#robo237" class="indexitem" >h5pget_fapl_direct_f</a>
+<a href="./src/H5Pff_f90.html#robo238" class="indexitem" >h5pget_fapl_family_f</a>
+<a href="./src/H5FDmpioff_f90.html#robo239" class="indexitem" >h5pget_fapl_mpio_f</a>
+<a href="./src/H5FDmpioff_f90.html#robo240" class="indexitem" >h5pget_fapl_mpiposix_f</a>
+<a href="./src/H5Pff_f90.html#robo241" class="indexitem" >h5pget_fapl_multi_f</a>
+<a href="./src/H5Pff_f90.html#robo242" class="indexitem" >h5pget_fclose_degree_f</a>
+<a href="./src/H5Pff_f90.html#robo243" class="indexitem" >h5pget_fill_time_f</a>
+<a href="./src/H5Pff_f90.html#robo244" class="indexitem" >h5pget_filter_by_id_f</a>
+<a href="./src/H5Pff_f90.html#robo245" class="indexitem" >h5pget_filter_f</a>
+<a href="./src/H5Pff_f90.html#robo246" class="indexitem" >h5pget_gc_references_f</a>
+<a href="./src/H5Pff_F03_f90.html#robo247" class="indexitem" >h5pget_integer</a>
+<a href="./src/H5Pff_F90_f90.html#robo248" class="indexitem" >h5pget_integer</a>
+<a href="./src/H5Pff_f90.html#robo249" class="indexitem" >h5pget_istore_k_f</a>
+<a href="./src/H5Pff_f90.html#robo250" class="indexitem" >h5pget_layout_f</a>
+<a href="./src/H5Pff_f90.html#robo251" class="indexitem" >H5Pget_link_creation_order_f</a>
+<a href="./src/H5Pff_f90.html#robo252" class="indexitem" >H5Pget_link_phase_change_f</a>
+<a href="./src/H5Pff_f90.html#robo253" class="indexitem" >H5Pget_local_heap_size_hint_f</a>
+<a href="./src/H5Pff_f90.html#robo254" class="indexitem" >h5pget_meta_block_size_f</a>
+<a href="./src/H5Pff_f90.html#robo255" class="indexitem" >h5pget_nfilters_f</a>
+<a href="./src/H5Pff_f90.html#robo256" class="indexitem" >h5pget_nlinks_f</a>
+<a href="./src/H5Pff_f90.html#robo257" class="indexitem" >h5pget_npros_f</a>
+<a href="./src/H5Pff_f90.html#robo258" class="indexitem" >H5Pget_obj_track_times_f</a>
+<a href="./src/H5Pff_f90.html#robo259" class="indexitem" >h5pget_preserve_f</a>
+<a href="./src/H5Pff_F90_f90.html#robo260" class="indexitem" >h5pget_real</a>
+<a href="./src/H5Pff_F03_f90.html#robo261" class="indexitem" >h5pget_real</a>
+<a href="./src/H5Pff_f90.html#robo262" class="indexitem" >h5pget_sec2_f</a>
+<a href="./src/H5Pff_f90.html#robo263" class="indexitem" >h5pget_sieve_buf_size_f</a>
+<a href="./src/H5Pff_f90.html#robo264" class="indexitem" >h5pget_size_f</a>
+<a href="./src/H5Pff_f90.html#robo265" class="indexitem" >h5pget_sizes_f</a>
+<a href="./src/H5Pff_f90.html#robo266" class="indexitem" >h5pget_small_data_block_size_f</a>
+<a href="./src/H5Pff_f90.html#robo267" class="indexitem" >h5pget_split_f</a>
+<a href="./src/H5Pff_f90.html#robo268" class="indexitem" >h5pget_stdio_f</a>
+<a href="./src/H5Pff_f90.html#robo269" class="indexitem" >h5pget_sym_k_f</a>
+<a href="./src/H5Pff_f90.html#robo270" class="indexitem" >h5pget_userblock_f</a>
+<a href="./src/H5Pff_f90.html#robo271" class="indexitem" >h5pget_version_f</a>
+<a href="./src/H5Pff_F03_f90.html#robo273" class="indexitem" >h5pinsert_char</a>
+<a href="./src/H5Pff_F90_f90.html#robo272" class="indexitem" >h5pinsert_char</a>
+<a href="./src/H5Pff_F90_f90.html#robo275" class="indexitem" >h5pinsert_double</a>
+<a href="./src/H5Pff_F03_f90.html#robo274" class="indexitem" >h5pinsert_double</a>
+<a href="./src/H5Pff_F90_f90.html#robo277" class="indexitem" >h5pinsert_integer</a>
+<a href="./src/H5Pff_F03_f90.html#robo276" class="indexitem" >h5pinsert_integer</a>
+<a href="./src/H5Pff_F03_f90.html#robo278" class="indexitem" >h5pinsert_ptr</a>
+<a href="./src/H5Pff_F90_f90.html#robo279" class="indexitem" >h5pinsert_real</a>
+<a href="./src/H5Pff_F03_f90.html#robo280" class="indexitem" >h5pinsert_real</a>
+<a href="./src/H5Pff_f90.html#robo281" class="indexitem" >h5pisa_class_f</a>
+<a href="./src/H5Pff_f90.html#robo282" class="indexitem" >h5pmodify_filter_f</a>
+<a href="./src/H5Pff_F03_f90.html#robo283" class="indexitem" >h5pregister_char</a>
+<a href="./src/H5Pff_F90_f90.html#robo284" class="indexitem" >h5pregister_char</a>
+<a href="./src/H5Pff_F03_f90.html#robo286" class="indexitem" >h5pregister_double</a>
+<a href="./src/H5Pff_F90_f90.html#robo285" class="indexitem" >h5pregister_double</a>
+<a href="./src/H5Pff_F90_f90.html#robo288" class="indexitem" >h5pregister_integer</a>
+<a href="./src/H5Pff_F03_f90.html#robo287" class="indexitem" >h5pregister_integer</a>
+<a href="./src/H5Pff_F03_f90.html#robo289" class="indexitem" >h5pregister_ptr</a>
+<a href="./src/H5Pff_F90_f90.html#robo290" class="indexitem" >h5pregister_real</a>
+<a href="./src/H5Pff_F03_f90.html#robo291" class="indexitem" >h5pregister_real</a>
+<a href="./src/H5Pff_f90.html#robo292" class="indexitem" >h5premove_f</a>
+<a href="./src/H5Pff_f90.html#robo293" class="indexitem" >h5premove_filter_f</a>
+<a href="./src/H5Pff_F90_f90.html#robo295" class="indexitem" >h5pset(get)fill_value_f</a>
+<a href="./src/H5Pff_F03_f90.html#robo294" class="indexitem" >h5pset(get)fill_value_f</a>
+<a href="./src/H5Pff_f90.html#robo296" class="indexitem" >h5pset_alignment_f</a>
+<a href="./src/H5Pff_f90.html#robo297" class="indexitem" >h5pset_alloc_time_f</a>
+<a href="./src/H5Pff_f90.html#robo298" class="indexitem" >H5Pset_attr_creation_order_f</a>
+<a href="./src/H5Pff_f90.html#robo299" class="indexitem" >H5Pset_attr_phase_change_f</a>
+<a href="./src/H5Pff_f90.html#robo300" class="indexitem" >h5pset_btree_ratios_f</a>
+<a href="./src/H5Pff_f90.html#robo301" class="indexitem" >h5pset_buffer_f</a>
+<a href="./src/H5Pff_f90.html#robo302" class="indexitem" >h5pset_cache_f</a>
+<a href="./src/H5Pff_F03_f90.html#robo303" class="indexitem" >h5pset_char</a>
+<a href="./src/H5Pff_F90_f90.html#robo304" class="indexitem" >h5pset_char</a>
+<a href="./src/H5Pff_f90.html#robo305" class="indexitem" >H5Pset_char_encoding_f</a>
+<a href="./src/H5Pff_f90.html#robo306" class="indexitem" >H5Pset_chunk_cache_f</a>
+<a href="./src/H5Pff_f90.html#robo307" class="indexitem" >h5pset_chunk_f</a>
+<a href="./src/H5Pff_f90.html#robo308" class="indexitem" >h5pset_copy_object_f</a>
+<a href="./src/H5Pff_f90.html#robo309" class="indexitem" >H5Pset_create_inter_group_f</a>
+<a href="./src/H5Pff_f90.html#robo310" class="indexitem" >h5pset_data_transform_f</a>
+<a href="./src/H5Pff_f90.html#robo311" class="indexitem" >h5pset_deflate_f</a>
+<a href="./src/H5Pff_F90_f90.html#robo312" class="indexitem" >h5pset_double</a>
+<a href="./src/H5Pff_F03_f90.html#robo313" class="indexitem" >h5pset_double</a>
+<a href="./src/H5FDmpioff_f90.html#robo314" class="indexitem" >h5pset_dxpl_mpio_f</a>
+<a href="./src/H5Pff_f90.html#robo315" class="indexitem" >h5pset_edc_check_f</a>
+<a href="./src/H5Pff_f90.html#robo316" class="indexitem" >h5pset_est_link_info_f</a>
+<a href="./src/H5Pff_f90.html#robo317" class="indexitem" >h5pset_external_f</a>
+<a href="./src/H5Pff_f90.html#robo318" class="indexitem" >h5pset_fapl_core_f</a>
+<a href="./src/H5Pff_f90.html#robo319" class="indexitem" >h5pset_fapl_direct_f</a>
+<a href="./src/H5FDmpioff_f90.html#robo320" class="indexitem" >h5pset_fapl_mpio_f</a>
+<a href="./src/H5FDmpioff_f90.html#robo321" class="indexitem" >h5pset_fapl_mpiposix_f</a>
+<a href="./src/H5Pff_f90.html#robo322" class="indexitem" >h5pset_fapl_multi_l</a>
+<a href="./src/H5Pff_f90.html#robo323" class="indexitem" >h5pset_fapl_multi_s</a>
+<a href="./src/H5Pff_f90.html#robo324" class="indexitem" >h5pset_fapl_sec2_f</a>
+<a href="./src/H5Pff_f90.html#robo325" class="indexitem" >h5pset_fapl_split_f</a>
+<a href="./src/H5Pff_f90.html#robo326" class="indexitem" >h5pset_fapl_stdio_f</a>
+<a href="./src/H5Pff_f90.html#robo327" class="indexitem" >h5pset_fclose_degree_f</a>
+<a href="./src/H5Pff_f90.html#robo328" class="indexitem" >h5pset_fill_time_f</a>
+<a href="./src/H5Pff_f90.html#robo329" class="indexitem" >h5pset_filter_f</a>
+<a href="./src/H5Pff_f90.html#robo330" class="indexitem" >h5pset_fletcher32_f</a>
+<a href="./src/H5Pff_f90.html#robo331" class="indexitem" >h5pset_gc_references_f</a>
+<a href="./src/H5Pff_f90.html#robo332" class="indexitem" >h5pset_hyper_vector_size_f</a>
+<a href="./src/H5Pff_F03_f90.html#robo334" class="indexitem" >h5pset_integer</a>
+<a href="./src/H5Pff_F90_f90.html#robo333" class="indexitem" >h5pset_integer</a>
+<a href="./src/H5Pff_f90.html#robo335" class="indexitem" >h5pset_istore_k_f</a>
+<a href="./src/H5Pff_f90.html#robo336" class="indexitem" >h5pset_layout_f</a>
+<a href="./src/H5Pff_f90.html#robo337" class="indexitem" >H5Pset_libver_bounds_f</a>
+<a href="./src/H5Pff_f90.html#robo338" class="indexitem" >H5Pset_link_creation_order_f</a>
+<a href="./src/H5Pff_f90.html#robo339" class="indexitem" >h5pset_link_phase_change_f</a>
+<a href="./src/H5Pff_f90.html#robo340" class="indexitem" >H5Pset_local_heap_size_hint_f</a>
+<a href="./src/H5Pff_f90.html#robo341" class="indexitem" >H5Pset_nbit_f</a>
+<a href="./src/H5Pff_f90.html#robo342" class="indexitem" >h5pset_nlinks_f</a>
+<a href="./src/H5Pff_f90.html#robo343" class="indexitem" >H5Pset_obj_track_times_f</a>
+<a href="./src/H5Pff_f90.html#robo344" class="indexitem" >h5pset_preserve_f</a>
+<a href="./src/H5Pff_F90_f90.html#robo346" class="indexitem" >h5pset_real</a>
+<a href="./src/H5Pff_F03_f90.html#robo345" class="indexitem" >h5pset_real</a>
+<a href="./src/H5Pff_f90.html#robo347" class="indexitem" >h5pset_scaleoffset_f</a>
+<a href="./src/H5Pff_f90.html#robo348" class="indexitem" >H5Pset_shared_mesg_index_f</a>
+<a href="./src/H5Pff_f90.html#robo349" class="indexitem" >H5Pset_shared_mesg_nindexes_f</a>
+<a href="./src/H5Pff_f90.html#robo350" class="indexitem" >h5pset_shuffle_f</a>
+<a href="./src/H5Pff_f90.html#robo351" class="indexitem" >h5pset_sieve_buf_size_f</a>
+<a href="./src/H5Pff_f90.html#robo352" class="indexitem" >h5pset_sizes_f</a>
+<a href="./src/H5Pff_f90.html#robo353" class="indexitem" >h5pset_small_data_block_size_f</a>
+<a href="./src/H5Pff_f90.html#robo354" class="indexitem" >h5pset_sym_k_f</a>
+<a href="./src/H5Pff_f90.html#robo355" class="indexitem" >h5pset_szip_f</a>
+<a href="./src/H5Pff_f90.html#robo356" class="indexitem" >h5pset_userblock_f</a>
+<a href="./src/H5Pff_f90.html#robo357" class="indexitem" >h5punregister_f</a>
+<a href="./src/H5Rff_f90.html#robo64" class="indexitem" >H5R</a>
+<a href="./src/H5Rff_F03_f90.html#robo65" class="indexitem" >H5R (F03)</a>
+<a href="./src/H5Rff_F90_f90.html#robo66" class="indexitem" >H5R (F90)</a>
+<a href="./src/H5Rff_F03_f90.html#robo358" class="indexitem" >h5rcreate_object_f</a>
+<a href="./src/H5Rff_F90_f90.html#robo359" class="indexitem" >h5rcreate_object_f</a>
+<a href="./src/H5Rff_F03_f90.html#robo360" class="indexitem" >h5rcreate_ptr_f</a>
+<a href="./src/H5Rff_F03_f90.html#robo362" class="indexitem" >h5rcreate_region_f</a>
+<a href="./src/H5Rff_F90_f90.html#robo361" class="indexitem" >h5rcreate_region_f</a>
+<a href="./src/H5Rff_F03_f90.html#robo363" class="indexitem" >h5rdereference_object_f</a>
+<a href="./src/H5Rff_F90_f90.html#robo364" class="indexitem" >h5rdereference_object_f</a>
+<a href="./src/H5Rff_F03_f90.html#robo365" class="indexitem" >h5rdereference_ptr_f</a>
+<a href="./src/H5Rff_F90_f90.html#robo367" class="indexitem" >h5rdereference_region_f</a>
+<a href="./src/H5Rff_F03_f90.html#robo366" class="indexitem" >h5rdereference_region_f</a>
+<a href="./src/H5Rf_c.html#robo67" class="indexitem" >H5Rf</a>
+<a href="./src/H5Rf_c.html#robo_top_of_doc" class="indexitem" >H5Rf.c</a>
+<a href="./src/H5Rff_f90.html#robo_top_of_doc" class="indexitem" >H5Rff.f90</a>
+<a href="./src/H5Rff_F03_f90.html#robo_top_of_doc" class="indexitem" >H5Rff_F03.f90</a>
+<a href="./src/H5Rff_F90_f90.html#robo_top_of_doc" class="indexitem" >H5Rff_F90.f90</a>
+<a href="./src/H5Rff_F03_f90.html#robo369" class="indexitem" >h5rget_name_object_f</a>
+<a href="./src/H5Rff_F90_f90.html#robo368" class="indexitem" >h5rget_name_object_f</a>
+<a href="./src/H5Rff_F03_f90.html#robo370" class="indexitem" >h5rget_name_ptr_f</a>
+<a href="./src/H5Rff_F90_f90.html#robo371" class="indexitem" >h5rget_name_region_f</a>
+<a href="./src/H5Rff_F03_f90.html#robo372" class="indexitem" >h5rget_name_region_f</a>
+<a href="./src/H5Rff_F03_f90.html#robo373" class="indexitem" >h5rget_obj_type_f</a>
+<a href="./src/H5Rff_f90.html#robo374" class="indexitem" >h5rget_object_type_obj_f</a>
+<a href="./src/H5Rff_f90.html#robo375" class="indexitem" >h5rget_region_region_f</a>
+<a href="./src/H5Sff_f90.html#robo68" class="indexitem" >H5S</a>
+<a href="./src/H5Sff_f90.html#robo376" class="indexitem" >h5sclose_f</a>
+<a href="./src/H5Sff_f90.html#robo377" class="indexitem" >h5scopy_f</a>
+<a href="./src/H5Sff_f90.html#robo378" class="indexitem" >h5screate_f</a>
+<a href="./src/H5Sff_f90.html#robo379" class="indexitem" >h5screate_simple_f</a>
+<a href="./src/H5Sff_f90.html#robo380" class="indexitem" >H5Sdecode_f</a>
+<a href="./src/H5Sff_f90.html#robo381" class="indexitem" >H5Sencode_f</a>
+<a href="./src/H5Sff_f90.html#robo382" class="indexitem" >h5sextent_copy_f</a>
+<a href="./src/H5Sff_f90.html#robo383" class="indexitem" >h5sextent_equal_f</a>
+<a href="./src/H5Sf_c.html#robo69" class="indexitem" >H5Sf</a>
+<a href="./src/H5Sf_c.html#robo_top_of_doc" class="indexitem" >H5Sf.c</a>
+<a href="./src/H5Sff_f90.html#robo_top_of_doc" class="indexitem" >H5Sff.f90</a>
+<a href="./src/H5Sff_f90.html#robo384" class="indexitem" >h5sget_select_bounds_f</a>
+<a href="./src/H5Sff_f90.html#robo385" class="indexitem" >h5sget_select_elem_npoints_f</a>
+<a href="./src/H5Sff_f90.html#robo386" class="indexitem" >h5sget_select_elem_pointlist_f</a>
+<a href="./src/H5Sff_f90.html#robo387" class="indexitem" >h5sget_select_hyper_blocklist_f</a>
+<a href="./src/H5Sff_f90.html#robo388" class="indexitem" >h5sget_select_hyper_nblocks_f</a>
+<a href="./src/H5Sff_f90.html#robo389" class="indexitem" >h5sget_select_npoints_f</a>
+<a href="./src/H5Sff_f90.html#robo390" class="indexitem" >h5sget_select_type_f</a>
+<a href="./src/H5Sff_f90.html#robo391" class="indexitem" >h5sget_simple_extent_dims_f</a>
+<a href="./src/H5Sff_f90.html#robo392" class="indexitem" >h5sget_simple_extent_ndims_f</a>
+<a href="./src/H5Sff_f90.html#robo393" class="indexitem" >h5sget_simple_extent_npoints_f</a>
+<a href="./src/H5Sff_f90.html#robo394" class="indexitem" >h5sget_simple_extent_type_f</a>
+<a href="./src/H5Sff_f90.html#robo395" class="indexitem" >h5sis_simple_f</a>
+<a href="./src/H5Sff_f90.html#robo396" class="indexitem" >h5soffset_simple_f</a>
+<a href="./src/H5Sff_f90.html#robo397" class="indexitem" >h5sselect_all_f</a>
+<a href="./src/H5Sff_f90.html#robo398" class="indexitem" >h5sselect_elements_f</a>
+<a href="./src/H5Sff_f90.html#robo399" class="indexitem" >h5sselect_hyperslab_f</a>
+<a href="./src/H5Sff_f90.html#robo400" class="indexitem" >h5sselect_none_f</a>
+<a href="./src/H5Sff_f90.html#robo401" class="indexitem" >h5sselect_valid_f</a>
+<a href="./src/H5Sff_f90.html#robo402" class="indexitem" >h5sset_extent_none_f</a>
+<a href="./src/H5Sff_f90.html#robo403" class="indexitem" >h5sset_extent_simple_f</a>
+<a href="./src/H5Tff_f90.html#robo70" class="indexitem" >H5T</a>
+<a href="./src/H5Tff_F03_f90.html#robo71" class="indexitem" >H5T (F03)</a>
+<a href="./src/H5Tff_F90_f90.html#robo72" class="indexitem" >H5T (F90)</a>
+<a href="./src/H5Tff_f90.html#robo404" class="indexitem" >h5tarray_create_f</a>
+<a href="./src/H5Tff_f90.html#robo405" class="indexitem" >h5tclose_f</a>
+<a href="./src/H5Tff_f90.html#robo406" class="indexitem" >h5tcommit_anon_f</a>
+<a href="./src/H5Tff_f90.html#robo407" class="indexitem" >h5tcommit_f</a>
+<a href="./src/H5Tff_f90.html#robo408" class="indexitem" >h5tcommitted_f</a>
+<a href="./src/H5Tff_f90.html#robo409" class="indexitem" >h5tcompiler_conv_f</a>
+<a href="./src/H5Tff_F03_f90.html#robo410" class="indexitem" >H5Tconvert_f</a>
+<a href="./src/H5Tff_f90.html#robo411" class="indexitem" >h5tcopy_f</a>
+<a href="./src/H5Tff_f90.html#robo412" class="indexitem" >h5tcreate_f</a>
+<a href="./src/H5Tff_f90.html#robo413" class="indexitem" >H5Tdecode_f</a>
+<a href="./src/H5Tff_f90.html#robo414" class="indexitem" >h5tenaum_insert_f</a>
+<a href="./src/H5Tff_f90.html#robo415" class="indexitem" >H5Tencode_f</a>
+<a href="./src/H5Tff_f90.html#robo416" class="indexitem" >h5tenum_create_f</a>
+<a href="./src/H5Tff_f90.html#robo417" class="indexitem" >h5tenum_nameof_f</a>
+<a href="./src/H5Tff_f90.html#robo418" class="indexitem" >h5tenum_valuof_f</a>
+<a href="./src/H5Tff_f90.html#robo419" class="indexitem" >h5tequal_f</a>
+<a href="./src/H5test_kind_f90.html#robo420" class="indexitem" >H5test_kind</a>
+<a href="./src/H5test_kind_f90.html#robo_top_of_doc" class="indexitem" >H5test_kind.f90</a>
+<a href="./src/H5test_kind_SIZEOF_f90.html#robo421" class="indexitem" >H5test_kind_SIZEOF</a>
+<a href="./src/H5test_kind_SIZEOF_f90.html#robo_top_of_doc" class="indexitem" >H5test_kind_SIZEOF.f90</a>
+<a href="./src/H5Tf_c.html#robo73" class="indexitem" >H5Tf</a>
+<a href="./src/H5Tf_c.html#robo_top_of_doc" class="indexitem" >H5Tf.c</a>
+<a href="./src/H5Tff_f90.html#robo_top_of_doc" class="indexitem" >H5Tff.f90</a>
+<a href="./src/H5Tff_F03_f90.html#robo_top_of_doc" class="indexitem" >H5Tff_F03.f90</a>
+<a href="./src/H5Tff_F90_f90.html#robo_top_of_doc" class="indexitem" >H5Tff_F90.f90</a>
+<a href="./src/H5Tff_f90.html#robo422" class="indexitem" >h5tget_array_dims_f</a>
+<a href="./src/H5Tff_f90.html#robo423" class="indexitem" >h5tget_array_ndims_f</a>
+<a href="./src/H5Tff_f90.html#robo424" class="indexitem" >h5tget_class_f</a>
+<a href="./src/H5Tff_f90.html#robo425" class="indexitem" >h5tget_create_plist_f</a>
+<a href="./src/H5Tff_f90.html#robo426" class="indexitem" >h5tget_cset_f</a>
+<a href="./src/H5Tff_f90.html#robo427" class="indexitem" >h5tget_ebias_f</a>
+<a href="./src/H5Tff_f90.html#robo428" class="indexitem" >h5tget_fields_f</a>
+<a href="./src/H5Tff_f90.html#robo429" class="indexitem" >h5tget_inpad_f</a>
+<a href="./src/H5Tff_f90.html#robo430" class="indexitem" >h5tget_member_class_f</a>
+<a href="./src/H5Tff_f90.html#robo431" class="indexitem" >h5tget_member_index_f</a>
+<a href="./src/H5Tff_f90.html#robo432" class="indexitem" >h5tget_member_name_f</a>
+<a href="./src/H5Tff_f90.html#robo433" class="indexitem" >h5tget_member_offset_f</a>
+<a href="./src/H5Tff_f90.html#robo434" class="indexitem" >h5tget_member_type_f</a>
+<a href="./src/H5Tff_f90.html#robo435" class="indexitem" >h5tget_member_value_f</a>
+<a href="./src/H5Tff_f90.html#robo436" class="indexitem" >h5tget_native_type_f</a>
+<a href="./src/H5Tff_f90.html#robo437" class="indexitem" >h5tget_nmembers_f</a>
+<a href="./src/H5Tff_f90.html#robo438" class="indexitem" >h5tget_norm_f</a>
+<a href="./src/H5Tff_f90.html#robo439" class="indexitem" >h5tget_offset_f</a>
+<a href="./src/H5Tff_f90.html#robo440" class="indexitem" >h5tget_order_f</a>
+<a href="./src/H5Tff_f90.html#robo441" class="indexitem" >h5tget_pad_f</a>
+<a href="./src/H5Tff_f90.html#robo442" class="indexitem" >h5tget_precision_f</a>
+<a href="./src/H5Tff_f90.html#robo443" class="indexitem" >h5tget_sign_f</a>
+<a href="./src/H5Tff_f90.html#robo444" class="indexitem" >h5tget_size_f</a>
+<a href="./src/H5Tff_f90.html#robo445" class="indexitem" >h5tget_strpad_f</a>
+<a href="./src/H5Tff_f90.html#robo446" class="indexitem" >h5tget_super_f</a>
+<a href="./src/H5Tff_f90.html#robo447" class="indexitem" >h5tget_tag_f</a>
+<a href="./src/H5Tff_f90.html#robo448" class="indexitem" >h5tinsert_f</a>
+<a href="./src/H5Tff_f90.html#robo449" class="indexitem" >h5tis_variable_str_f</a>
+<a href="./src/H5Tff_f90.html#robo450" class="indexitem" >h5topen_f</a>
+<a href="./src/H5Tff_f90.html#robo451" class="indexitem" >h5tpack_f</a>
+<a href="./src/H5Tff_f90.html#robo452" class="indexitem" >h5tset_cset_f</a>
+<a href="./src/H5Tff_f90.html#robo453" class="indexitem" >h5tset_ebias_f</a>
+<a href="./src/H5Tff_f90.html#robo454" class="indexitem" >h5tset_fields_f</a>
+<a href="./src/H5Tff_f90.html#robo455" class="indexitem" >h5tset_inpad_f</a>
+<a href="./src/H5Tff_f90.html#robo456" class="indexitem" >h5tset_norm_f</a>
+<a href="./src/H5Tff_f90.html#robo457" class="indexitem" >h5tset_offset_f</a>
+<a href="./src/H5Tff_f90.html#robo458" class="indexitem" >h5tset_order_f</a>
+<a href="./src/H5Tff_f90.html#robo459" class="indexitem" >h5tset_pad_f</a>
+<a href="./src/H5Tff_f90.html#robo460" class="indexitem" >h5tset_precision_f</a>
+<a href="./src/H5Tff_f90.html#robo461" class="indexitem" >h5tset_sign_f</a>
+<a href="./src/H5Tff_f90.html#robo462" class="indexitem" >h5tset_size_f</a>
+<a href="./src/H5Tff_f90.html#robo463" class="indexitem" >h5tset_strpad_f</a>
+<a href="./src/H5Tff_f90.html#robo464" class="indexitem" >h5tset_tag_f</a>
+<a href="./src/H5Tff_f90.html#robo465" class="indexitem" >h5tvlen_create_f</a>
+<a href="./src/H5Zff_f90.html#robo74" class="indexitem" >H5Z</a>
+<a href="./src/H5Zf_c.html#robo75" class="indexitem" >H5Zf</a>
+<a href="./src/H5Zf_c.html#robo_top_of_doc" class="indexitem" >H5Zf.c</a>
+<a href="./src/H5Zff_f90.html#robo_top_of_doc" class="indexitem" >H5Zff.f90</a>
+<a href="./src/H5Zff_f90.html#robo466" class="indexitem" >h5zfilter_avail_f</a>
+<a href="./src/H5Zff_f90.html#robo467" class="indexitem" >h5zget_filter_info_f</a>
+<a href="./src/H5Zff_f90.html#robo468" class="indexitem" >h5zunregister_f</a>
+<a href="./src/HDF5_f90.html#robo76" class="indexitem" >HDF5</a>
+<a href="./src/HDF5mpio_f90.html#robo77" class="indexitem" >HDF5 (mpio)</a>
+<a href="./src/HDF5_f90.html#robo_top_of_doc" class="indexitem" >HDF5.f90</a>
+<a href="./src/HDF5mpio_f90.html#robo_top_of_doc" class="indexitem" >HDF5mpio.f90</a>
+<h2><a name="S"></a>S</h2><a href="./src/H5_DBLE_InterfaceExclude_f90.html#robo78" class="indexitem" >src/H5_DBLE_InterfaceExclude.f90</a>
+<a href="./src/H5_DBLE_InterfaceInclude_f90.html#robo79" class="indexitem" >src/H5_DBLE_InterfaceInclude.f90</a>
+<h2><a name="T"></a>T</h2><a href="./test/t_c.html#robo_top_of_doc" class="indexitem" >t.c</a>
+<a href="./test/tf_f90.html#robo_top_of_doc" class="indexitem" >tf.f90</a>
+<a href="./test/tH5A_f90.html#robo_top_of_doc" class="indexitem" >tH5A.f90</a>
+<a href="./test/tH5A_1_8_f90.html#robo_top_of_doc" class="indexitem" >tH5A_1_8.f90</a>
+<a href="./test/tH5D_f90.html#robo_top_of_doc" class="indexitem" >tH5D.f90</a>
+<a href="./test/tH5E_f90.html#robo_top_of_doc" class="indexitem" >tH5E.f90</a>
+<a href="./test/tH5E_F03_f90.html#robo_top_of_doc" class="indexitem" >tH5E_F03.f90</a>
+<a href="./test/tH5F_f90.html#robo_top_of_doc" class="indexitem" >tH5F.f90</a>
+<a href="./test/tH5G_f90.html#robo_top_of_doc" class="indexitem" >tH5G.f90</a>
+<a href="./test/tH5G_1_8_f90.html#robo_top_of_doc" class="indexitem" >tH5G_1_8.f90</a>
+<a href="./test/tH5I_f90.html#robo_top_of_doc" class="indexitem" >tH5I.f90</a>
+<a href="./test/tH5L_F03_f90.html#robo_top_of_doc" class="indexitem" >tH5L_F03.f90</a>
+<a href="./test/tH5O_f90.html#robo_top_of_doc" class="indexitem" >tH5O.f90</a>
+<a href="./test/tH5P_f90.html#robo_top_of_doc" class="indexitem" >tH5P.f90</a>
+<a href="./test/tH5P_F03_f90.html#robo_top_of_doc" class="indexitem" >tH5P_F03.f90</a>
+<a href="./test/tH5R_f90.html#robo_top_of_doc" class="indexitem" >tH5R.f90</a>
+<a href="./test/tH5S_f90.html#robo_top_of_doc" class="indexitem" >tH5S.f90</a>
+<a href="./test/tH5Sselect_f90.html#robo_top_of_doc" class="indexitem" >tH5Sselect.f90</a>
+<a href="./test/tH5T_f90.html#robo_top_of_doc" class="indexitem" >tH5T.f90</a>
+<a href="./test/tH5T_F03_f90.html#robo_top_of_doc" class="indexitem" >tH5T_F03.f90</a>
+<a href="./test/tH5VL_f90.html#robo_top_of_doc" class="indexitem" >tH5VL.f90</a>
+<a href="./test/tH5Z_f90.html#robo_top_of_doc" class="indexitem" >tH5Z.f90</a>
+<h2><a href="#A">A</a> - <a href="#B">B</a> - <a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#H">H</a> - <a href="#I">I</a> - <a href="#J">J</a> - <a href="#K">K</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#O">O</a> - <a href="#P">P</a> - <a href="#Q">Q</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#X">X</a> - <a href="#Y">Y</a> - <a href="#Z">Z</a> - <a href="#0">0</a> - <a href="#1">1</a> - <a href="#2">2</a> - <a href="#3">3</a> - <a href="#4">4</a> - <a href="#5">5</a> - <a href="#6">6</a> - <a href="#7">7</a> - <a href="#8">8</a> - <a href="#9">9</a></h2>
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./ on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/robo_functions.html b/fortran/doc/DevelGuide/robo_functions.html
new file mode 100644
index 0000000..e4f253a
--- /dev/null
+++ b/fortran/doc/DevelGuide/robo_functions.html
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="./robodoc.css" type="text/css" />
+<title>Functions</title>
+<!-- Source: ./ -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="extra">
+</div> <!-- extra -->
+<div id="navigation">
+<a class="menuitem" href="./toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="./robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="./masterindex.html#top">Index</a>
+<a class="menuitem" href="#top">Functions</a>
+<a class="menuitem" href="./robo_modules.html#top">Modules</a>
+<a class="menuitem" href="./robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="./robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<h1>Functions</h1>
+<h2><a href="#A">A</a> - <a href="#B">B</a> - <a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#H">H</a> - <a href="#I">I</a> - <a href="#J">J</a> - <a href="#K">K</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#O">O</a> - <a href="#P">P</a> - <a href="#Q">Q</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#X">X</a> - <a href="#Y">Y</a> - <a href="#Z">Z</a> - <a href="#0">0</a> - <a href="#1">1</a> - <a href="#2">2</a> - <a href="#3">3</a> - <a href="#4">4</a> - <a href="#5">5</a> - <a href="#6">6</a> - <a href="#7">7</a> - <a href="#8">8</a> - <a href="#9">9</a></h2>
+<h2><a name="H"></a>H</h2><a href="./src/H5_ff_f90.html#robo177" class="indexitem" >h5kind_to_type</a>
+<a href="./src/H5_ff_F03_f90.html#robo194" class="indexitem" >h5offsetof</a>
+<h2><a href="#A">A</a> - <a href="#B">B</a> - <a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#H">H</a> - <a href="#I">I</a> - <a href="#J">J</a> - <a href="#K">K</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#O">O</a> - <a href="#P">P</a> - <a href="#Q">Q</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#X">X</a> - <a href="#Y">Y</a> - <a href="#Z">Z</a> - <a href="#0">0</a> - <a href="#1">1</a> - <a href="#2">2</a> - <a href="#3">3</a> - <a href="#4">4</a> - <a href="#5">5</a> - <a href="#6">6</a> - <a href="#7">7</a> - <a href="#8">8</a> - <a href="#9">9</a></h2>
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./ on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/robo_modules.html b/fortran/doc/DevelGuide/robo_modules.html
new file mode 100644
index 0000000..8e57f38
--- /dev/null
+++ b/fortran/doc/DevelGuide/robo_modules.html
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="./robodoc.css" type="text/css" />
+<title>Modules</title>
+<!-- Source: ./ -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="extra">
+</div> <!-- extra -->
+<div id="navigation">
+<a class="menuitem" href="./toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="./robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="./masterindex.html#top">Index</a>
+<a class="menuitem" href="./robo_functions.html#top">Functions</a>
+<a class="menuitem" href="#top">Modules</a>
+<a class="menuitem" href="./robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="./robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<h1>Modules</h1>
+<h2><a href="#A">A</a> - <a href="#B">B</a> - <a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#H">H</a> - <a href="#I">I</a> - <a href="#J">J</a> - <a href="#K">K</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#O">O</a> - <a href="#P">P</a> - <a href="#Q">Q</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#X">X</a> - <a href="#Y">Y</a> - <a href="#Z">Z</a> - <a href="#0">0</a> - <a href="#1">1</a> - <a href="#2">2</a> - <a href="#3">3</a> - <a href="#4">4</a> - <a href="#5">5</a> - <a href="#6">6</a> - <a href="#7">7</a> - <a href="#8">8</a> - <a href="#9">9</a></h2>
+<h2><a name="F"></a>F</h2><a href="./test/fflush1_f90.html#robo0" class="indexitem" >fortran/test/fflush1.f90</a>
+<a href="./test/fflush2_f90.html#robo1" class="indexitem" >fortran/test/fflush2.f90</a>
+<a href="./test/fortranlib_test_f90.html#robo2" class="indexitem" >fortran/test/fortranlib_test.f90</a>
+<a href="./test/fortranlib_test_1_8_f90.html#robo3" class="indexitem" >fortran/test/fortranlib_test_1_8.f90</a>
+<a href="./test/fortranlib_test_F03_f90.html#robo4" class="indexitem" >fortran/test/fortranlib_test_F03.f90</a>
+<a href="./test/t_c.html#robo5" class="indexitem" >fortran/test/tc.c</a>
+<a href="./test/tf_f90.html#robo6" class="indexitem" >fortran/test/tf.f90</a>
+<a href="./test/tH5A_f90.html#robo7" class="indexitem" >fortran/test/tH5A.f90</a>
+<a href="./test/tH5A_1_8_f90.html#robo8" class="indexitem" >fortran/test/tH5A_1_8.f90</a>
+<a href="./test/tH5D_f90.html#robo9" class="indexitem" >fortran/test/tH5D.f90</a>
+<a href="./test/tH5E_f90.html#robo10" class="indexitem" >fortran/test/tH5E.f90</a>
+<a href="./test/tH5E_F03_f90.html#robo11" class="indexitem" >fortran/test/tH5E_F03.f90</a>
+<a href="./test/tH5F_f90.html#robo12" class="indexitem" >fortran/test/tH5F.f90</a>
+<a href="./test/tH5G_f90.html#robo13" class="indexitem" >fortran/test/tH5G.f90</a>
+<a href="./test/tH5G_1_8_f90.html#robo14" class="indexitem" >fortran/test/tH5G_1_8.f90</a>
+<a href="./test/tH5I_f90.html#robo15" class="indexitem" >fortran/test/tH5I.f90</a>
+<a href="./test/tH5L_F03_f90.html#robo16" class="indexitem" >fortran/test/tH5L_F03.f90</a>
+<a href="./test/tH5O_f90.html#robo17" class="indexitem" >fortran/test/tH5O.f90</a>
+<a href="./test/tH5P_f90.html#robo18" class="indexitem" >fortran/test/tH5P.f90</a>
+<a href="./test/tH5P_F03_f90.html#robo19" class="indexitem" >fortran/test/tH5P_F03.f90</a>
+<a href="./test/tH5R_f90.html#robo20" class="indexitem" >fortran/test/tH5R.f90</a>
+<a href="./test/tH5S_f90.html#robo21" class="indexitem" >fortran/test/tH5S.f90</a>
+<a href="./test/tH5Sselect_f90.html#robo22" class="indexitem" >fortran/test/tH5Sselect.f90</a>
+<a href="./test/tH5T_f90.html#robo23" class="indexitem" >fortran/test/tH5T.f90</a>
+<a href="./test/tH5T_F03_f90.html#robo24" class="indexitem" >fortran/test/tH5T_F03.f90</a>
+<a href="./test/tH5VL_f90.html#robo25" class="indexitem" >fortran/test/tH5VL.f90</a>
+<a href="./test/tH5Z_f90.html#robo26" class="indexitem" >fortran/test/tH5Z.f90</a>
+<h2><a name="H"></a>H</h2><a href="./src/H5Aff_f90.html#robo27" class="indexitem" >H5A</a>
+<a href="./src/H5Aff_F03_f90.html#robo28" class="indexitem" >H5A (F03)</a>
+<a href="./src/H5Aff_F90_f90.html#robo29" class="indexitem" >H5A (F90)</a>
+<a href="./src/H5Af_c.html#robo30" class="indexitem" >H5Af</a>
+<a href="./src/H5Dff_f90.html#robo31" class="indexitem" >H5D</a>
+<a href="./src/H5Dff_F03_f90.html#robo32" class="indexitem" >H5D (F03)</a>
+<a href="./src/H5Dff_F90_f90.html#robo33" class="indexitem" >H5D (F90)</a>
+<a href="./src/H5Df_c.html#robo34" class="indexitem" >H5Df</a>
+<a href="./src/H5Eff_f90.html#robo35" class="indexitem" >H5E</a>
+<a href="./src/H5Eff_F03_f90.html#robo36" class="indexitem" >H5E (F03)</a>
+<a href="./src/H5Eff_F90_f90.html#robo37" class="indexitem" >H5E (F90)</a>
+<a href="./src/H5Ef_c.html#robo38" class="indexitem" >H5Ef</a>
+<a href="./src/H5Fff_f90.html#robo39" class="indexitem" >H5F</a>
+<a href="./src/H5f90kit_c.html#robo40" class="indexitem" >H5f90kit</a>
+<a href="./src/H5FDmpioff_f90.html#robo41" class="indexitem" >H5FDMPIO</a>
+<a href="./src/H5FDmpiof_c.html#robo42" class="indexitem" >H5FDmpiof</a>
+<a href="./src/H5Ff_c.html#robo43" class="indexitem" >H5Ff</a>
+<a href="./src/H5Gff_f90.html#robo44" class="indexitem" >H5G</a>
+<a href="./src/H5Gf_c.html#robo45" class="indexitem" >H5Gf</a>
+<a href="./src/H5f90global_f90.html#robo46" class="indexitem" >H5GLOBAL</a>
+<a href="./src/H5Iff_f90.html#robo47" class="indexitem" >H5I</a>
+<a href="./src/H5If_c.html#robo48" class="indexitem" >H5If</a>
+<a href="./src/H5Lff_f90.html#robo49" class="indexitem" >H5L</a>
+<a href="./src/H5Lff_F03_f90.html#robo50" class="indexitem" >H5L (F03)</a>
+<a href="./src/H5Lff_F90_f90.html#robo51" class="indexitem" >H5L (F90)</a>
+<a href="./src/H5Lf_c.html#robo52" class="indexitem" >H5Lf</a>
+<a href="./src/H5_ff_f90.html#robo53" class="indexitem" >H5LIB</a>
+<a href="./src/H5_ff_F03_f90.html#robo54" class="indexitem" >H5LIB_PROVISIONAL</a>
+<a href="./src/H5_ff_F90_f90.html#robo55" class="indexitem" >H5LIB_PROVISIONAL (F90)</a>
+<a href="./src/H5Off_f90.html#robo56" class="indexitem" >H5O</a>
+<a href="./src/H5Off_F03_f90.html#robo57" class="indexitem" >H5O (F03)</a>
+<a href="./src/H5Off_F90_f90.html#robo58" class="indexitem" >H5O (F90)</a>
+<a href="./src/H5Of_c.html#robo59" class="indexitem" >H5Of</a>
+<a href="./src/H5Pff_F90_f90.html#robo60" class="indexitem" >H5P (_F90)</a>
+<a href="./src/H5Pff_F03_f90.html#robo61" class="indexitem" >H5P (F03)</a>
+<a href="./src/H5Pff_f90.html#robo62" class="indexitem" >H5P (F90)</a>
+<a href="./src/H5Pf_c.html#robo63" class="indexitem" >H5Pf</a>
+<a href="./src/H5Rff_f90.html#robo64" class="indexitem" >H5R</a>
+<a href="./src/H5Rff_F03_f90.html#robo65" class="indexitem" >H5R (F03)</a>
+<a href="./src/H5Rff_F90_f90.html#robo66" class="indexitem" >H5R (F90)</a>
+<a href="./src/H5Rf_c.html#robo67" class="indexitem" >H5Rf</a>
+<a href="./src/H5Sff_f90.html#robo68" class="indexitem" >H5S</a>
+<a href="./src/H5Sf_c.html#robo69" class="indexitem" >H5Sf</a>
+<a href="./src/H5Tff_f90.html#robo70" class="indexitem" >H5T</a>
+<a href="./src/H5Tff_F03_f90.html#robo71" class="indexitem" >H5T (F03)</a>
+<a href="./src/H5Tff_F90_f90.html#robo72" class="indexitem" >H5T (F90)</a>
+<a href="./src/H5Tf_c.html#robo73" class="indexitem" >H5Tf</a>
+<a href="./src/H5Zff_f90.html#robo74" class="indexitem" >H5Z</a>
+<a href="./src/H5Zf_c.html#robo75" class="indexitem" >H5Zf</a>
+<a href="./src/HDF5_f90.html#robo76" class="indexitem" >HDF5</a>
+<a href="./src/HDF5mpio_f90.html#robo77" class="indexitem" >HDF5 (mpio)</a>
+<h2><a name="S"></a>S</h2><a href="./src/H5_DBLE_InterfaceExclude_f90.html#robo78" class="indexitem" >src/H5_DBLE_InterfaceExclude.f90</a>
+<a href="./src/H5_DBLE_InterfaceInclude_f90.html#robo79" class="indexitem" >src/H5_DBLE_InterfaceInclude.f90</a>
+<h2><a href="#A">A</a> - <a href="#B">B</a> - <a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#H">H</a> - <a href="#I">I</a> - <a href="#J">J</a> - <a href="#K">K</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#O">O</a> - <a href="#P">P</a> - <a href="#Q">Q</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#X">X</a> - <a href="#Y">Y</a> - <a href="#Z">Z</a> - <a href="#0">0</a> - <a href="#1">1</a> - <a href="#2">2</a> - <a href="#3">3</a> - <a href="#4">4</a> - <a href="#5">5</a> - <a href="#6">6</a> - <a href="#7">7</a> - <a href="#8">8</a> - <a href="#9">9</a></h2>
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./ on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/robo_programs.html b/fortran/doc/DevelGuide/robo_programs.html
new file mode 100644
index 0000000..8c35230
--- /dev/null
+++ b/fortran/doc/DevelGuide/robo_programs.html
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="./robodoc.css" type="text/css" />
+<title>Programs</title>
+<!-- Source: ./ -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="extra">
+</div> <!-- extra -->
+<div id="navigation">
+<a class="menuitem" href="./toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="./robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="./masterindex.html#top">Index</a>
+<a class="menuitem" href="./robo_functions.html#top">Functions</a>
+<a class="menuitem" href="./robo_modules.html#top">Modules</a>
+<a class="menuitem" href="#top">Programs</a>
+<a class="menuitem" href="./robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<h1>Programs</h1>
+<h2><a href="#A">A</a> - <a href="#B">B</a> - <a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#H">H</a> - <a href="#I">I</a> - <a href="#J">J</a> - <a href="#K">K</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#O">O</a> - <a href="#P">P</a> - <a href="#Q">Q</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#X">X</a> - <a href="#Y">Y</a> - <a href="#Z">Z</a> - <a href="#0">0</a> - <a href="#1">1</a> - <a href="#2">2</a> - <a href="#3">3</a> - <a href="#4">4</a> - <a href="#5">5</a> - <a href="#6">6</a> - <a href="#7">7</a> - <a href="#8">8</a> - <a href="#9">9</a></h2>
+<h2><a name="H"></a>H</h2><a href="./src/H5test_kind_f90.html#robo132" class="indexitem" >H5test_kind</a>
+<a href="./src/H5test_kind_SIZEOF_f90.html#robo133" class="indexitem" >H5test_kind_SIZEOF</a>
+<h2><a href="#A">A</a> - <a href="#B">B</a> - <a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#H">H</a> - <a href="#I">I</a> - <a href="#J">J</a> - <a href="#K">K</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#O">O</a> - <a href="#P">P</a> - <a href="#Q">Q</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#X">X</a> - <a href="#Y">Y</a> - <a href="#Z">Z</a> - <a href="#0">0</a> - <a href="#1">1</a> - <a href="#2">2</a> - <a href="#3">3</a> - <a href="#4">4</a> - <a href="#5">5</a> - <a href="#6">6</a> - <a href="#7">7</a> - <a href="#8">8</a> - <a href="#9">9</a></h2>
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./ on Wed Oct 22 2008 15:34:43
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/robo_sourcefiles.html b/fortran/doc/DevelGuide/robo_sourcefiles.html
new file mode 100644
index 0000000..63a8637
--- /dev/null
+++ b/fortran/doc/DevelGuide/robo_sourcefiles.html
@@ -0,0 +1,309 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="./robodoc.css" type="text/css" />
+<title>Sourcefiles</title>
+<!-- Source: ./ -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="extra">
+</div> <!-- extra -->
+<div id="navigation">
+<a class="menuitem" href="./toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="#top">Sourcefiles</a>
+<a class="menuitem" href="./masterindex.html#top">Index</a>
+<a class="menuitem" href="./robo_functions.html#top">Functions</a>
+<a class="menuitem" href="./robo_modules.html#top">Modules</a>
+<a class="menuitem" href="./robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="./robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<ul>
+<li>
+./<ul>
+<li>
+./doc/<ul>
+</ul>
+</li>
+<li>
+./examples/<ul>
+</ul>
+</li>
+<li>
+./src/<ul>
+<li>
+<a href="./src/H5_DBLE_InterfaceExclude_f90.html#robo_top_of_doc"><tt>
+H5_DBLE_InterfaceExclude.f90</tt></a></li>
+<li>
+<a href="./src/H5_DBLE_InterfaceInclude_f90.html#robo_top_of_doc"><tt>
+H5_DBLE_InterfaceInclude.f90</tt></a></li>
+<li>
+<a href="./src/H5_ff_f90.html#robo_top_of_doc"><tt>
+H5_ff.f90</tt></a></li>
+<li>
+<a href="./src/H5_ff_F03_f90.html#robo_top_of_doc"><tt>
+H5_ff_F03.f90</tt></a></li>
+<li>
+<a href="./src/H5_ff_F90_f90.html#robo_top_of_doc"><tt>
+H5_ff_F90.f90</tt></a></li>
+<li>
+<a href="./src/H5Af_c.html#robo_top_of_doc"><tt>
+H5Af.c</tt></a></li>
+<li>
+<a href="./src/H5Aff_f90.html#robo_top_of_doc"><tt>
+H5Aff.f90</tt></a></li>
+<li>
+<a href="./src/H5Aff_F03_f90.html#robo_top_of_doc"><tt>
+H5Aff_F03.f90</tt></a></li>
+<li>
+<a href="./src/H5Aff_F90_f90.html#robo_top_of_doc"><tt>
+H5Aff_F90.f90</tt></a></li>
+<li>
+<a href="./src/H5Df_c.html#robo_top_of_doc"><tt>
+H5Df.c</tt></a></li>
+<li>
+<a href="./src/H5Dff_f90.html#robo_top_of_doc"><tt>
+H5Dff.f90</tt></a></li>
+<li>
+<a href="./src/H5Dff_F03_f90.html#robo_top_of_doc"><tt>
+H5Dff_F03.f90</tt></a></li>
+<li>
+<a href="./src/H5Dff_F90_f90.html#robo_top_of_doc"><tt>
+H5Dff_F90.f90</tt></a></li>
+<li>
+<a href="./src/H5Ef_c.html#robo_top_of_doc"><tt>
+H5Ef.c</tt></a></li>
+<li>
+<a href="./src/H5Eff_f90.html#robo_top_of_doc"><tt>
+H5Eff.f90</tt></a></li>
+<li>
+<a href="./src/H5Eff_F03_f90.html#robo_top_of_doc"><tt>
+H5Eff_F03.f90</tt></a></li>
+<li>
+<a href="./src/H5Eff_F90_f90.html#robo_top_of_doc"><tt>
+H5Eff_F90.f90</tt></a></li>
+<li>
+<a href="./src/H5f90global_f90.html#robo_top_of_doc"><tt>
+H5f90global.f90</tt></a></li>
+<li>
+<a href="./src/H5f90kit_c.html#robo_top_of_doc"><tt>
+H5f90kit.c</tt></a></li>
+<li>
+<a href="./src/H5FDmpiof_c.html#robo_top_of_doc"><tt>
+H5FDmpiof.c</tt></a></li>
+<li>
+<a href="./src/H5FDmpioff_f90.html#robo_top_of_doc"><tt>
+H5FDmpioff.f90</tt></a></li>
+<li>
+<a href="./src/H5Ff_c.html#robo_top_of_doc"><tt>
+H5Ff.c</tt></a></li>
+<li>
+<a href="./src/H5Fff_f90.html#robo_top_of_doc"><tt>
+H5Fff.f90</tt></a></li>
+<li>
+<a href="./src/H5Gf_c.html#robo_top_of_doc"><tt>
+H5Gf.c</tt></a></li>
+<li>
+<a href="./src/H5Gff_f90.html#robo_top_of_doc"><tt>
+H5Gff.f90</tt></a></li>
+<li>
+<a href="./src/H5If_c.html#robo_top_of_doc"><tt>
+H5If.c</tt></a></li>
+<li>
+<a href="./src/H5Iff_f90.html#robo_top_of_doc"><tt>
+H5Iff.f90</tt></a></li>
+<li>
+<a href="./src/H5Lf_c.html#robo_top_of_doc"><tt>
+H5Lf.c</tt></a></li>
+<li>
+<a href="./src/H5Lff_f90.html#robo_top_of_doc"><tt>
+H5Lff.f90</tt></a></li>
+<li>
+<a href="./src/H5Lff_F03_f90.html#robo_top_of_doc"><tt>
+H5Lff_F03.f90</tt></a></li>
+<li>
+<a href="./src/H5Lff_F90_f90.html#robo_top_of_doc"><tt>
+H5Lff_F90.f90</tt></a></li>
+<li>
+<a href="./src/H5match_types_c.html#robo_top_of_doc"><tt>
+H5match_types.c</tt></a></li>
+<li>
+<a href="./src/H5Of_c.html#robo_top_of_doc"><tt>
+H5Of.c</tt></a></li>
+<li>
+<a href="./src/H5Off_f90.html#robo_top_of_doc"><tt>
+H5Off.f90</tt></a></li>
+<li>
+<a href="./src/H5Off_F03_f90.html#robo_top_of_doc"><tt>
+H5Off_F03.f90</tt></a></li>
+<li>
+<a href="./src/H5Off_F90_f90.html#robo_top_of_doc"><tt>
+H5Off_F90.f90</tt></a></li>
+<li>
+<a href="./src/H5Pf_c.html#robo_top_of_doc"><tt>
+H5Pf.c</tt></a></li>
+<li>
+<a href="./src/H5Pff_f90.html#robo_top_of_doc"><tt>
+H5Pff.f90</tt></a></li>
+<li>
+<a href="./src/H5Pff_F03_f90.html#robo_top_of_doc"><tt>
+H5Pff_F03.f90</tt></a></li>
+<li>
+<a href="./src/H5Pff_F90_f90.html#robo_top_of_doc"><tt>
+H5Pff_F90.f90</tt></a></li>
+<li>
+<a href="./src/H5Rf_c.html#robo_top_of_doc"><tt>
+H5Rf.c</tt></a></li>
+<li>
+<a href="./src/H5Rff_f90.html#robo_top_of_doc"><tt>
+H5Rff.f90</tt></a></li>
+<li>
+<a href="./src/H5Rff_F03_f90.html#robo_top_of_doc"><tt>
+H5Rff_F03.f90</tt></a></li>
+<li>
+<a href="./src/H5Rff_F90_f90.html#robo_top_of_doc"><tt>
+H5Rff_F90.f90</tt></a></li>
+<li>
+<a href="./src/H5Sf_c.html#robo_top_of_doc"><tt>
+H5Sf.c</tt></a></li>
+<li>
+<a href="./src/H5Sff_f90.html#robo_top_of_doc"><tt>
+H5Sff.f90</tt></a></li>
+<li>
+<a href="./src/H5test_kind_f90.html#robo_top_of_doc"><tt>
+H5test_kind.f90</tt></a></li>
+<li>
+<a href="./src/H5test_kind_SIZEOF_f90.html#robo_top_of_doc"><tt>
+H5test_kind_SIZEOF.f90</tt></a></li>
+<li>
+<a href="./src/H5Tf_c.html#robo_top_of_doc"><tt>
+H5Tf.c</tt></a></li>
+<li>
+<a href="./src/H5Tff_f90.html#robo_top_of_doc"><tt>
+H5Tff.f90</tt></a></li>
+<li>
+<a href="./src/H5Tff_F03_f90.html#robo_top_of_doc"><tt>
+H5Tff_F03.f90</tt></a></li>
+<li>
+<a href="./src/H5Tff_F90_f90.html#robo_top_of_doc"><tt>
+H5Tff_F90.f90</tt></a></li>
+<li>
+<a href="./src/H5Zf_c.html#robo_top_of_doc"><tt>
+H5Zf.c</tt></a></li>
+<li>
+<a href="./src/H5Zff_f90.html#robo_top_of_doc"><tt>
+H5Zff.f90</tt></a></li>
+<li>
+<a href="./src/HDF5_f90.html#robo_top_of_doc"><tt>
+HDF5.f90</tt></a></li>
+<li>
+<a href="./src/HDF5mpio_f90.html#robo_top_of_doc"><tt>
+HDF5mpio.f90</tt></a></li>
+</ul>
+</li>
+<li>
+./test/<ul>
+<li>
+<a href="./test/fflush1_f90.html#robo_top_of_doc"><tt>
+fflush1.f90</tt></a></li>
+<li>
+<a href="./test/fflush2_f90.html#robo_top_of_doc"><tt>
+fflush2.f90</tt></a></li>
+<li>
+<a href="./test/fortranlib_test_f90.html#robo_top_of_doc"><tt>
+fortranlib_test.f90</tt></a></li>
+<li>
+<a href="./test/fortranlib_test_1_8_f90.html#robo_top_of_doc"><tt>
+fortranlib_test_1_8.f90</tt></a></li>
+<li>
+<a href="./test/fortranlib_test_F03_f90.html#robo_top_of_doc"><tt>
+fortranlib_test_F03.f90</tt></a></li>
+<li>
+<a href="./test/t_c.html#robo_top_of_doc"><tt>
+t.c</tt></a></li>
+<li>
+<a href="./test/tf_f90.html#robo_top_of_doc"><tt>
+tf.f90</tt></a></li>
+<li>
+<a href="./test/tH5A_f90.html#robo_top_of_doc"><tt>
+tH5A.f90</tt></a></li>
+<li>
+<a href="./test/tH5A_1_8_f90.html#robo_top_of_doc"><tt>
+tH5A_1_8.f90</tt></a></li>
+<li>
+<a href="./test/tH5D_f90.html#robo_top_of_doc"><tt>
+tH5D.f90</tt></a></li>
+<li>
+<a href="./test/tH5E_f90.html#robo_top_of_doc"><tt>
+tH5E.f90</tt></a></li>
+<li>
+<a href="./test/tH5E_F03_f90.html#robo_top_of_doc"><tt>
+tH5E_F03.f90</tt></a></li>
+<li>
+<a href="./test/tH5F_f90.html#robo_top_of_doc"><tt>
+tH5F.f90</tt></a></li>
+<li>
+<a href="./test/tH5G_f90.html#robo_top_of_doc"><tt>
+tH5G.f90</tt></a></li>
+<li>
+<a href="./test/tH5G_1_8_f90.html#robo_top_of_doc"><tt>
+tH5G_1_8.f90</tt></a></li>
+<li>
+<a href="./test/tH5I_f90.html#robo_top_of_doc"><tt>
+tH5I.f90</tt></a></li>
+<li>
+<a href="./test/tH5L_F03_f90.html#robo_top_of_doc"><tt>
+tH5L_F03.f90</tt></a></li>
+<li>
+<a href="./test/tH5O_f90.html#robo_top_of_doc"><tt>
+tH5O.f90</tt></a></li>
+<li>
+<a href="./test/tH5P_f90.html#robo_top_of_doc"><tt>
+tH5P.f90</tt></a></li>
+<li>
+<a href="./test/tH5P_F03_f90.html#robo_top_of_doc"><tt>
+tH5P_F03.f90</tt></a></li>
+<li>
+<a href="./test/tH5R_f90.html#robo_top_of_doc"><tt>
+tH5R.f90</tt></a></li>
+<li>
+<a href="./test/tH5S_f90.html#robo_top_of_doc"><tt>
+tH5S.f90</tt></a></li>
+<li>
+<a href="./test/tH5Sselect_f90.html#robo_top_of_doc"><tt>
+tH5Sselect.f90</tt></a></li>
+<li>
+<a href="./test/tH5T_f90.html#robo_top_of_doc"><tt>
+tH5T.f90</tt></a></li>
+<li>
+<a href="./test/tH5T_F03_f90.html#robo_top_of_doc"><tt>
+tH5T_F03.f90</tt></a></li>
+<li>
+<a href="./test/tH5VL_f90.html#robo_top_of_doc"><tt>
+tH5VL.f90</tt></a></li>
+<li>
+<a href="./test/tH5Z_f90.html#robo_top_of_doc"><tt>
+tH5Z.f90</tt></a></li>
+</ul>
+</li>
+<li>
+./testpar/<ul>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./ on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/robo_subroutines.html b/fortran/doc/DevelGuide/robo_subroutines.html
new file mode 100644
index 0000000..0846c77
--- /dev/null
+++ b/fortran/doc/DevelGuide/robo_subroutines.html
@@ -0,0 +1,421 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="./robodoc.css" type="text/css" />
+<title>Subroutines</title>
+<!-- Source: ./ -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="extra">
+</div> <!-- extra -->
+<div id="navigation">
+<a class="menuitem" href="./toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="./robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="./masterindex.html#top">Index</a>
+<a class="menuitem" href="./robo_functions.html#top">Functions</a>
+<a class="menuitem" href="./robo_modules.html#top">Modules</a>
+<a class="menuitem" href="./robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<h1>Subroutines</h1>
+<h2><a href="#A">A</a> - <a href="#B">B</a> - <a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#H">H</a> - <a href="#I">I</a> - <a href="#J">J</a> - <a href="#K">K</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#O">O</a> - <a href="#P">P</a> - <a href="#Q">Q</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#X">X</a> - <a href="#Y">Y</a> - <a href="#Z">Z</a> - <a href="#0">0</a> - <a href="#1">1</a> - <a href="#2">2</a> - <a href="#3">3</a> - <a href="#4">4</a> - <a href="#5">5</a> - <a href="#6">6</a> - <a href="#7">7</a> - <a href="#8">8</a> - <a href="#9">9</a></h2>
+<a href="./src/H5Pff_F03_f90.html#robo80" class="indexitem" > h5pget_double</a>
+<a href="./src/H5Pff_f90.html#robo81" class="indexitem" > h5pget_hyper_vector_size_f</a>
+<a href="./src/H5Pff_f90.html#robo82" class="indexitem" > h5pset_family_offset_f</a>
+<a href="./src/H5Pff_f90.html#robo83" class="indexitem" > h5pset_fapl_family_f</a>
+<a href="./src/H5Pff_f90.html#robo84" class="indexitem" > h5pset_meta_block_size_f</a>
+<h2><a name="H"></a>H</h2><a href="./src/H5Aff_f90.html#robo85" class="indexitem" >h5aclose_f</a>
+<a href="./src/H5Aff_f90.html#robo86" class="indexitem" >h5acreate_by_name_f</a>
+<a href="./src/H5Aff_f90.html#robo87" class="indexitem" >h5acreate_f</a>
+<a href="./src/H5Aff_f90.html#robo88" class="indexitem" >h5adelete_by_idx_f</a>
+<a href="./src/H5Aff_f90.html#robo89" class="indexitem" >h5adelete_by_name_f</a>
+<a href="./src/H5Aff_f90.html#robo90" class="indexitem" >h5adelete_f</a>
+<a href="./src/H5Aff_f90.html#robo91" class="indexitem" >H5Aexists_by_name_f</a>
+<a href="./src/H5Aff_f90.html#robo92" class="indexitem" >H5Aexists_f</a>
+<a href="./src/H5Aff_f90.html#robo93" class="indexitem" >h5aget_create_plist_f</a>
+<a href="./src/H5Aff_f90.html#robo94" class="indexitem" >h5aget_info_by_idx_f</a>
+<a href="./src/H5Aff_f90.html#robo95" class="indexitem" >h5aget_info_by_name_f</a>
+<a href="./src/H5Aff_f90.html#robo96" class="indexitem" >h5aget_info_f</a>
+<a href="./src/H5Aff_f90.html#robo97" class="indexitem" >h5aget_name_by_idx_f</a>
+<a href="./src/H5Aff_f90.html#robo98" class="indexitem" >h5aget_name_f</a>
+<a href="./src/H5Aff_f90.html#robo99" class="indexitem" >h5aget_num_attrs_f</a>
+<a href="./src/H5Aff_f90.html#robo100" class="indexitem" >h5aget_space_f</a>
+<a href="./src/H5Aff_f90.html#robo101" class="indexitem" >h5aget_storage_size_f</a>
+<a href="./src/H5Aff_f90.html#robo102" class="indexitem" >h5aget_type_f</a>
+<a href="./src/H5Aff_f90.html#robo103" class="indexitem" >h5aopen_by_idx_f</a>
+<a href="./src/H5Aff_f90.html#robo104" class="indexitem" >H5Aopen_by_name_f</a>
+<a href="./src/H5Aff_f90.html#robo105" class="indexitem" >h5aopen_f</a>
+<a href="./src/H5Aff_f90.html#robo106" class="indexitem" >h5aopen_idx_f</a>
+<a href="./src/H5Aff_f90.html#robo107" class="indexitem" >h5aopen_name_f</a>
+<a href="./src/H5Aff_F03_f90.html#robo108" class="indexitem" >h5aread_f</a>
+<a href="./src/H5Aff_f90.html#robo109" class="indexitem" >h5arename_by_name_f</a>
+<a href="./src/H5Aff_f90.html#robo110" class="indexitem" >h5arename_f</a>
+<a href="./src/H5_ff_f90.html#robo111" class="indexitem" >h5check_version_f</a>
+<a href="./src/H5_ff_f90.html#robo112" class="indexitem" >h5close_f</a>
+<a href="./src/H5Dff_f90.html#robo113" class="indexitem" >h5dclose_f</a>
+<a href="./src/H5Dff_f90.html#robo114" class="indexitem" >h5dcreate_anon_f</a>
+<a href="./src/H5Dff_f90.html#robo115" class="indexitem" >h5dcreate_f</a>
+<a href="./src/H5Dff_f90.html#robo116" class="indexitem" >h5dget_access_plist_f</a>
+<a href="./src/H5Dff_f90.html#robo117" class="indexitem" >h5dget_create_plist_f</a>
+<a href="./src/H5Dff_f90.html#robo118" class="indexitem" >h5dget_space_f</a>
+<a href="./src/H5Dff_f90.html#robo119" class="indexitem" >h5dget_space_status_f</a>
+<a href="./src/H5Dff_f90.html#robo120" class="indexitem" >h5dget_storage_size_f</a>
+<a href="./src/H5Dff_f90.html#robo121" class="indexitem" >h5dget_type_f</a>
+<a href="./src/H5_ff_f90.html#robo122" class="indexitem" >h5dont_atexit_f</a>
+<a href="./src/H5Dff_f90.html#robo123" class="indexitem" >h5dopen_f</a>
+<a href="./src/H5Dff_F90_f90.html#robo124" class="indexitem" >h5dread_f</a>
+<a href="./src/H5Dff_f90.html#robo125" class="indexitem" >h5dset_extent</a>
+<a href="./src/H5Dff_f90.html#robo126" class="indexitem" >h5dvlen_get_max_len_f</a>
+<a href="./src/H5Dff_F03_f90.html#robo127" class="indexitem" >h5dvlen_reclaim</a>
+<a href="./src/H5Eff_f90.html#robo128" class="indexitem" >h5eclear_f</a>
+<a href="./src/H5Eff_F03_f90.html#robo129" class="indexitem" >h5eget_auto_f</a>
+<a href="./src/H5Eff_f90.html#robo130" class="indexitem" >h5eget_major_f</a>
+<a href="./src/H5Eff_f90.html#robo131" class="indexitem" >h5eget_minor_f</a>
+<a href="./src/H5Eff_f90.html#robo132" class="indexitem" >h5eprint_f</a>
+<a href="./src/H5Eff_F03_f90.html#robo133" class="indexitem" >h5eset_auto2_f</a>
+<a href="./src/H5Eff_F90_f90.html#robo134" class="indexitem" >h5eset_auto_f</a>
+<a href="./src/H5Fff_f90.html#robo135" class="indexitem" >h5fclose_f</a>
+<a href="./src/H5Fff_f90.html#robo136" class="indexitem" >h5fcreate_f</a>
+<a href="./src/H5Fff_f90.html#robo137" class="indexitem" >h5fflush_f</a>
+<a href="./src/H5Fff_f90.html#robo138" class="indexitem" >h5fget_access_plist_f</a>
+<a href="./src/H5Fff_f90.html#robo139" class="indexitem" >h5fget_create_plist_f</a>
+<a href="./src/H5Fff_f90.html#robo140" class="indexitem" >h5fget_filesize_f</a>
+<a href="./src/H5Fff_f90.html#robo141" class="indexitem" >h5fget_freespace_f</a>
+<a href="./src/H5Fff_f90.html#robo142" class="indexitem" >h5fget_name_f</a>
+<a href="./src/H5Fff_f90.html#robo143" class="indexitem" >h5fget_obj_count_f</a>
+<a href="./src/H5Fff_f90.html#robo144" class="indexitem" >h5fget_obj_ids_f</a>
+<a href="./src/H5Fff_f90.html#robo145" class="indexitem" >h5fis_hdf5_f</a>
+<a href="./src/H5Fff_f90.html#robo146" class="indexitem" >h5fmount_f</a>
+<a href="./src/H5Fff_f90.html#robo147" class="indexitem" >h5fopen_f</a>
+<a href="./src/H5Fff_f90.html#robo148" class="indexitem" >h5freopen_f</a>
+<a href="./src/H5Fff_f90.html#robo149" class="indexitem" >h5funmount_f</a>
+<a href="./src/H5_ff_f90.html#robo150" class="indexitem" >h5garbage_collect_f</a>
+<a href="./src/H5Gff_f90.html#robo151" class="indexitem" >h5gclose_f</a>
+<a href="./src/H5Gff_f90.html#robo152" class="indexitem" >H5Gcreate_anon_f</a>
+<a href="./src/H5Gff_f90.html#robo153" class="indexitem" >h5gcreate_f</a>
+<a href="./src/H5_ff_f90.html#robo154" class="indexitem" >h5get_libversion_f</a>
+<a href="./src/H5Gff_f90.html#robo155" class="indexitem" >h5gget_comment_f</a>
+<a href="./src/H5Gff_f90.html#robo156" class="indexitem" >H5Gget_create_plist_f</a>
+<a href="./src/H5Gff_f90.html#robo157" class="indexitem" >h5gget_info_by_idx_f</a>
+<a href="./src/H5Gff_f90.html#robo158" class="indexitem" >h5gget_info_by_name_f</a>
+<a href="./src/H5Gff_f90.html#robo159" class="indexitem" >h5gget_info_f</a>
+<a href="./src/H5Gff_f90.html#robo160" class="indexitem" >h5gget_linkval_f</a>
+<a href="./src/H5Gff_f90.html#robo161" class="indexitem" >h5gget_obj_info_idx_f</a>
+<a href="./src/H5Gff_f90.html#robo162" class="indexitem" >h5glink2_f</a>
+<a href="./src/H5Gff_f90.html#robo163" class="indexitem" >h5glink_f</a>
+<a href="./src/H5Gff_f90.html#robo164" class="indexitem" >h5gmove2_f</a>
+<a href="./src/H5Gff_f90.html#robo165" class="indexitem" >h5gmove_f</a>
+<a href="./src/H5Gff_f90.html#robo166" class="indexitem" >h5gn_members_f</a>
+<a href="./src/H5Gff_f90.html#robo167" class="indexitem" >h5gopen_f</a>
+<a href="./src/H5Gff_f90.html#robo168" class="indexitem" >h5gset_comment_f</a>
+<a href="./src/H5Gff_f90.html#robo169" class="indexitem" >h5gunlink_f</a>
+<a href="./src/H5Iff_f90.html#robo170" class="indexitem" >h5idec_ref_f</a>
+<a href="./src/H5Iff_f90.html#robo171" class="indexitem" >h5iget_file_id_f</a>
+<a href="./src/H5Iff_f90.html#robo172" class="indexitem" >h5iget_name_f</a>
+<a href="./src/H5Iff_f90.html#robo173" class="indexitem" >h5iget_ref_f</a>
+<a href="./src/H5Iff_f90.html#robo174" class="indexitem" >h5iget_type_f</a>
+<a href="./src/H5Iff_f90.html#robo175" class="indexitem" >h5iinc_ref_f</a>
+<a href="./src/H5Iff_f90.html#robo176" class="indexitem" >h5iis_valid_f</a>
+<a href="./src/H5Lff_f90.html#robo178" class="indexitem" >h5lcopy_f</a>
+<a href="./src/H5Lff_f90.html#robo179" class="indexitem" >H5Lcreate_external_f</a>
+<a href="./src/H5Lff_f90.html#robo180" class="indexitem" >H5Lcreate_hard_f</a>
+<a href="./src/H5Lff_f90.html#robo181" class="indexitem" >H5Lcreate_soft_f</a>
+<a href="./src/H5Lff_f90.html#robo182" class="indexitem" >h5ldelete_by_idx_f</a>
+<a href="./src/H5Lff_f90.html#robo183" class="indexitem" >h5ldelete_f</a>
+<a href="./src/H5Lff_f90.html#robo184" class="indexitem" >H5Lexists_f</a>
+<a href="./src/H5Lff_f90.html#robo185" class="indexitem" >h5lget_info_by_idx_f</a>
+<a href="./src/H5Lff_f90.html#robo186" class="indexitem" >h5lget_info_f</a>
+<a href="./src/H5Lff_f90.html#robo187" class="indexitem" >h5lget_name_by_idx_f</a>
+<a href="./src/H5Lff_f90.html#robo188" class="indexitem" >h5lis_registered_f</a>
+<a href="./src/H5Lff_F03_f90.html#robo189" class="indexitem" >h5literate_by_name_f</a>
+<a href="./src/H5Lff_F03_f90.html#robo190" class="indexitem" >h5literate_f</a>
+<a href="./src/H5Lff_f90.html#robo191" class="indexitem" >h5lmove_f</a>
+<a href="./src/H5Off_f90.html#robo193" class="indexitem" >h5oclose_f</a>
+<a href="./src/H5Off_f90.html#robo195" class="indexitem" >h5olink_f</a>
+<a href="./src/H5Off_f90.html#robo196" class="indexitem" >h5oopen_f</a>
+<a href="./src/H5Off_f90.html#robo197" class="indexitem" >h5open_by_addr_f</a>
+<a href="./src/H5_ff_f90.html#robo198" class="indexitem" >h5open_f</a>
+<a href="./src/H5Off_F03_f90.html#robo199" class="indexitem" >h5ovisit_f</a>
+<a href="./src/H5Pff_f90.html#robo200" class="indexitem" >h5pall_filters_avail_f</a>
+<a href="./src/H5Pff_f90.html#robo201" class="indexitem" >h5pclose_class_f</a>
+<a href="./src/H5Pff_f90.html#robo202" class="indexitem" >h5pclose_f</a>
+<a href="./src/H5Pff_f90.html#robo203" class="indexitem" >h5pcopy_f</a>
+<a href="./src/H5Pff_f90.html#robo204" class="indexitem" >h5pcopy_prop_f</a>
+<a href="./src/H5Pff_F03_f90.html#robo205" class="indexitem" >h5pcreate_class_f</a>
+<a href="./src/H5Pff_F90_f90.html#robo206" class="indexitem" >h5pcreate_class_f</a>
+<a href="./src/H5Pff_f90.html#robo207" class="indexitem" >h5pcreate_f</a>
+<a href="./src/H5Pff_f90.html#robo208" class="indexitem" >h5pequal_f</a>
+<a href="./src/H5Pff_f90.html#robo209" class="indexitem" >h5pexist_f</a>
+<a href="./src/H5Pff_f90.html#robo210" class="indexitem" >h5pfill_value_defined_f</a>
+<a href="./src/H5Pff_f90.html#robo211" class="indexitem" >h5pget_alignment_f</a>
+<a href="./src/H5Pff_f90.html#robo212" class="indexitem" >h5pget_alloc_time_f</a>
+<a href="./src/H5Pff_f90.html#robo213" class="indexitem" >H5Pget_attr_creation_order_f</a>
+<a href="./src/H5Pff_f90.html#robo214" class="indexitem" >H5Pget_attr_phase_change_f</a>
+<a href="./src/H5Pff_f90.html#robo215" class="indexitem" >h5pget_btree_ratios_f</a>
+<a href="./src/H5Pff_f90.html#robo216" class="indexitem" >h5pget_buffer_f</a>
+<a href="./src/H5Pff_f90.html#robo217" class="indexitem" >h5pget_cache_f</a>
+<a href="./src/H5Pff_F03_f90.html#robo218" class="indexitem" >h5pget_char</a>
+<a href="./src/H5Pff_F90_f90.html#robo219" class="indexitem" >h5pget_char</a>
+<a href="./src/H5Pff_f90.html#robo220" class="indexitem" >H5Pget_char_encoding_f</a>
+<a href="./src/H5Pff_f90.html#robo221" class="indexitem" >H5Pget_chunk_cache_f</a>
+<a href="./src/H5Pff_f90.html#robo222" class="indexitem" >h5pget_chunk_f</a>
+<a href="./src/H5Pff_f90.html#robo223" class="indexitem" >h5pget_class_f</a>
+<a href="./src/H5Pff_f90.html#robo224" class="indexitem" >h5pget_class_name_f</a>
+<a href="./src/H5Pff_f90.html#robo225" class="indexitem" >h5pget_class_parent_f</a>
+<a href="./src/H5Pff_f90.html#robo226" class="indexitem" >h5pget_copy_object_f</a>
+<a href="./src/H5Pff_f90.html#robo227" class="indexitem" >H5Pget_create_inter_group_f</a>
+<a href="./src/H5Pff_f90.html#robo228" class="indexitem" >h5pget_data_transform_f</a>
+<a href="./src/H5Pff_F90_f90.html#robo229" class="indexitem" >h5pget_double</a>
+<a href="./src/H5Pff_f90.html#robo230" class="indexitem" >h5pget_driver_f</a>
+<a href="./src/H5FDmpioff_f90.html#robo231" class="indexitem" >h5pget_dxpl_mpio_f</a>
+<a href="./src/H5Pff_f90.html#robo232" class="indexitem" >h5pget_edc_check_f</a>
+<a href="./src/H5Pff_f90.html#robo233" class="indexitem" >H5Pget_est_link_info_f</a>
+<a href="./src/H5Pff_f90.html#robo234" class="indexitem" >h5pget_external_count_f</a>
+<a href="./src/H5Pff_f90.html#robo235" class="indexitem" >h5pget_external_f</a>
+<a href="./src/H5Pff_f90.html#robo236" class="indexitem" >h5pget_fapl_core_f</a>
+<a href="./src/H5Pff_f90.html#robo237" class="indexitem" >h5pget_fapl_direct_f</a>
+<a href="./src/H5Pff_f90.html#robo238" class="indexitem" >h5pget_fapl_family_f</a>
+<a href="./src/H5FDmpioff_f90.html#robo239" class="indexitem" >h5pget_fapl_mpio_f</a>
+<a href="./src/H5FDmpioff_f90.html#robo240" class="indexitem" >h5pget_fapl_mpiposix_f</a>
+<a href="./src/H5Pff_f90.html#robo241" class="indexitem" >h5pget_fapl_multi_f</a>
+<a href="./src/H5Pff_f90.html#robo242" class="indexitem" >h5pget_fclose_degree_f</a>
+<a href="./src/H5Pff_f90.html#robo243" class="indexitem" >h5pget_fill_time_f</a>
+<a href="./src/H5Pff_f90.html#robo244" class="indexitem" >h5pget_filter_by_id_f</a>
+<a href="./src/H5Pff_f90.html#robo245" class="indexitem" >h5pget_filter_f</a>
+<a href="./src/H5Pff_f90.html#robo246" class="indexitem" >h5pget_gc_references_f</a>
+<a href="./src/H5Pff_F03_f90.html#robo247" class="indexitem" >h5pget_integer</a>
+<a href="./src/H5Pff_F90_f90.html#robo248" class="indexitem" >h5pget_integer</a>
+<a href="./src/H5Pff_f90.html#robo249" class="indexitem" >h5pget_istore_k_f</a>
+<a href="./src/H5Pff_f90.html#robo250" class="indexitem" >h5pget_layout_f</a>
+<a href="./src/H5Pff_f90.html#robo251" class="indexitem" >H5Pget_link_creation_order_f</a>
+<a href="./src/H5Pff_f90.html#robo252" class="indexitem" >H5Pget_link_phase_change_f</a>
+<a href="./src/H5Pff_f90.html#robo253" class="indexitem" >H5Pget_local_heap_size_hint_f</a>
+<a href="./src/H5Pff_f90.html#robo254" class="indexitem" >h5pget_meta_block_size_f</a>
+<a href="./src/H5Pff_f90.html#robo255" class="indexitem" >h5pget_nfilters_f</a>
+<a href="./src/H5Pff_f90.html#robo256" class="indexitem" >h5pget_nlinks_f</a>
+<a href="./src/H5Pff_f90.html#robo257" class="indexitem" >h5pget_npros_f</a>
+<a href="./src/H5Pff_f90.html#robo258" class="indexitem" >H5Pget_obj_track_times_f</a>
+<a href="./src/H5Pff_f90.html#robo259" class="indexitem" >h5pget_preserve_f</a>
+<a href="./src/H5Pff_F90_f90.html#robo260" class="indexitem" >h5pget_real</a>
+<a href="./src/H5Pff_F03_f90.html#robo261" class="indexitem" >h5pget_real</a>
+<a href="./src/H5Pff_f90.html#robo262" class="indexitem" >h5pget_sec2_f</a>
+<a href="./src/H5Pff_f90.html#robo263" class="indexitem" >h5pget_sieve_buf_size_f</a>
+<a href="./src/H5Pff_f90.html#robo264" class="indexitem" >h5pget_size_f</a>
+<a href="./src/H5Pff_f90.html#robo265" class="indexitem" >h5pget_sizes_f</a>
+<a href="./src/H5Pff_f90.html#robo266" class="indexitem" >h5pget_small_data_block_size_f</a>
+<a href="./src/H5Pff_f90.html#robo267" class="indexitem" >h5pget_split_f</a>
+<a href="./src/H5Pff_f90.html#robo268" class="indexitem" >h5pget_stdio_f</a>
+<a href="./src/H5Pff_f90.html#robo269" class="indexitem" >h5pget_sym_k_f</a>
+<a href="./src/H5Pff_f90.html#robo270" class="indexitem" >h5pget_userblock_f</a>
+<a href="./src/H5Pff_f90.html#robo271" class="indexitem" >h5pget_version_f</a>
+<a href="./src/H5Pff_F03_f90.html#robo273" class="indexitem" >h5pinsert_char</a>
+<a href="./src/H5Pff_F90_f90.html#robo272" class="indexitem" >h5pinsert_char</a>
+<a href="./src/H5Pff_F90_f90.html#robo275" class="indexitem" >h5pinsert_double</a>
+<a href="./src/H5Pff_F03_f90.html#robo274" class="indexitem" >h5pinsert_double</a>
+<a href="./src/H5Pff_F90_f90.html#robo277" class="indexitem" >h5pinsert_integer</a>
+<a href="./src/H5Pff_F03_f90.html#robo276" class="indexitem" >h5pinsert_integer</a>
+<a href="./src/H5Pff_F03_f90.html#robo278" class="indexitem" >h5pinsert_ptr</a>
+<a href="./src/H5Pff_F90_f90.html#robo279" class="indexitem" >h5pinsert_real</a>
+<a href="./src/H5Pff_F03_f90.html#robo280" class="indexitem" >h5pinsert_real</a>
+<a href="./src/H5Pff_f90.html#robo281" class="indexitem" >h5pisa_class_f</a>
+<a href="./src/H5Pff_f90.html#robo282" class="indexitem" >h5pmodify_filter_f</a>
+<a href="./src/H5Pff_F03_f90.html#robo283" class="indexitem" >h5pregister_char</a>
+<a href="./src/H5Pff_F90_f90.html#robo284" class="indexitem" >h5pregister_char</a>
+<a href="./src/H5Pff_F03_f90.html#robo286" class="indexitem" >h5pregister_double</a>
+<a href="./src/H5Pff_F90_f90.html#robo285" class="indexitem" >h5pregister_double</a>
+<a href="./src/H5Pff_F90_f90.html#robo288" class="indexitem" >h5pregister_integer</a>
+<a href="./src/H5Pff_F03_f90.html#robo287" class="indexitem" >h5pregister_integer</a>
+<a href="./src/H5Pff_F03_f90.html#robo289" class="indexitem" >h5pregister_ptr</a>
+<a href="./src/H5Pff_F90_f90.html#robo290" class="indexitem" >h5pregister_real</a>
+<a href="./src/H5Pff_F03_f90.html#robo291" class="indexitem" >h5pregister_real</a>
+<a href="./src/H5Pff_f90.html#robo292" class="indexitem" >h5premove_f</a>
+<a href="./src/H5Pff_f90.html#robo293" class="indexitem" >h5premove_filter_f</a>
+<a href="./src/H5Pff_F90_f90.html#robo295" class="indexitem" >h5pset(get)fill_value_f</a>
+<a href="./src/H5Pff_F03_f90.html#robo294" class="indexitem" >h5pset(get)fill_value_f</a>
+<a href="./src/H5Pff_f90.html#robo296" class="indexitem" >h5pset_alignment_f</a>
+<a href="./src/H5Pff_f90.html#robo297" class="indexitem" >h5pset_alloc_time_f</a>
+<a href="./src/H5Pff_f90.html#robo298" class="indexitem" >H5Pset_attr_creation_order_f</a>
+<a href="./src/H5Pff_f90.html#robo299" class="indexitem" >H5Pset_attr_phase_change_f</a>
+<a href="./src/H5Pff_f90.html#robo300" class="indexitem" >h5pset_btree_ratios_f</a>
+<a href="./src/H5Pff_f90.html#robo301" class="indexitem" >h5pset_buffer_f</a>
+<a href="./src/H5Pff_f90.html#robo302" class="indexitem" >h5pset_cache_f</a>
+<a href="./src/H5Pff_F03_f90.html#robo303" class="indexitem" >h5pset_char</a>
+<a href="./src/H5Pff_F90_f90.html#robo304" class="indexitem" >h5pset_char</a>
+<a href="./src/H5Pff_f90.html#robo305" class="indexitem" >H5Pset_char_encoding_f</a>
+<a href="./src/H5Pff_f90.html#robo306" class="indexitem" >H5Pset_chunk_cache_f</a>
+<a href="./src/H5Pff_f90.html#robo307" class="indexitem" >h5pset_chunk_f</a>
+<a href="./src/H5Pff_f90.html#robo308" class="indexitem" >h5pset_copy_object_f</a>
+<a href="./src/H5Pff_f90.html#robo309" class="indexitem" >H5Pset_create_inter_group_f</a>
+<a href="./src/H5Pff_f90.html#robo310" class="indexitem" >h5pset_data_transform_f</a>
+<a href="./src/H5Pff_f90.html#robo311" class="indexitem" >h5pset_deflate_f</a>
+<a href="./src/H5Pff_F90_f90.html#robo312" class="indexitem" >h5pset_double</a>
+<a href="./src/H5Pff_F03_f90.html#robo313" class="indexitem" >h5pset_double</a>
+<a href="./src/H5FDmpioff_f90.html#robo314" class="indexitem" >h5pset_dxpl_mpio_f</a>
+<a href="./src/H5Pff_f90.html#robo315" class="indexitem" >h5pset_edc_check_f</a>
+<a href="./src/H5Pff_f90.html#robo316" class="indexitem" >h5pset_est_link_info_f</a>
+<a href="./src/H5Pff_f90.html#robo317" class="indexitem" >h5pset_external_f</a>
+<a href="./src/H5Pff_f90.html#robo318" class="indexitem" >h5pset_fapl_core_f</a>
+<a href="./src/H5Pff_f90.html#robo319" class="indexitem" >h5pset_fapl_direct_f</a>
+<a href="./src/H5FDmpioff_f90.html#robo320" class="indexitem" >h5pset_fapl_mpio_f</a>
+<a href="./src/H5FDmpioff_f90.html#robo321" class="indexitem" >h5pset_fapl_mpiposix_f</a>
+<a href="./src/H5Pff_f90.html#robo322" class="indexitem" >h5pset_fapl_multi_l</a>
+<a href="./src/H5Pff_f90.html#robo323" class="indexitem" >h5pset_fapl_multi_s</a>
+<a href="./src/H5Pff_f90.html#robo324" class="indexitem" >h5pset_fapl_sec2_f</a>
+<a href="./src/H5Pff_f90.html#robo325" class="indexitem" >h5pset_fapl_split_f</a>
+<a href="./src/H5Pff_f90.html#robo326" class="indexitem" >h5pset_fapl_stdio_f</a>
+<a href="./src/H5Pff_f90.html#robo327" class="indexitem" >h5pset_fclose_degree_f</a>
+<a href="./src/H5Pff_f90.html#robo328" class="indexitem" >h5pset_fill_time_f</a>
+<a href="./src/H5Pff_f90.html#robo329" class="indexitem" >h5pset_filter_f</a>
+<a href="./src/H5Pff_f90.html#robo330" class="indexitem" >h5pset_fletcher32_f</a>
+<a href="./src/H5Pff_f90.html#robo331" class="indexitem" >h5pset_gc_references_f</a>
+<a href="./src/H5Pff_f90.html#robo332" class="indexitem" >h5pset_hyper_vector_size_f</a>
+<a href="./src/H5Pff_F03_f90.html#robo334" class="indexitem" >h5pset_integer</a>
+<a href="./src/H5Pff_F90_f90.html#robo333" class="indexitem" >h5pset_integer</a>
+<a href="./src/H5Pff_f90.html#robo335" class="indexitem" >h5pset_istore_k_f</a>
+<a href="./src/H5Pff_f90.html#robo336" class="indexitem" >h5pset_layout_f</a>
+<a href="./src/H5Pff_f90.html#robo337" class="indexitem" >H5Pset_libver_bounds_f</a>
+<a href="./src/H5Pff_f90.html#robo338" class="indexitem" >H5Pset_link_creation_order_f</a>
+<a href="./src/H5Pff_f90.html#robo339" class="indexitem" >h5pset_link_phase_change_f</a>
+<a href="./src/H5Pff_f90.html#robo340" class="indexitem" >H5Pset_local_heap_size_hint_f</a>
+<a href="./src/H5Pff_f90.html#robo341" class="indexitem" >H5Pset_nbit_f</a>
+<a href="./src/H5Pff_f90.html#robo342" class="indexitem" >h5pset_nlinks_f</a>
+<a href="./src/H5Pff_f90.html#robo343" class="indexitem" >H5Pset_obj_track_times_f</a>
+<a href="./src/H5Pff_f90.html#robo344" class="indexitem" >h5pset_preserve_f</a>
+<a href="./src/H5Pff_F90_f90.html#robo346" class="indexitem" >h5pset_real</a>
+<a href="./src/H5Pff_F03_f90.html#robo345" class="indexitem" >h5pset_real</a>
+<a href="./src/H5Pff_f90.html#robo347" class="indexitem" >h5pset_scaleoffset_f</a>
+<a href="./src/H5Pff_f90.html#robo348" class="indexitem" >H5Pset_shared_mesg_index_f</a>
+<a href="./src/H5Pff_f90.html#robo349" class="indexitem" >H5Pset_shared_mesg_nindexes_f</a>
+<a href="./src/H5Pff_f90.html#robo350" class="indexitem" >h5pset_shuffle_f</a>
+<a href="./src/H5Pff_f90.html#robo351" class="indexitem" >h5pset_sieve_buf_size_f</a>
+<a href="./src/H5Pff_f90.html#robo352" class="indexitem" >h5pset_sizes_f</a>
+<a href="./src/H5Pff_f90.html#robo353" class="indexitem" >h5pset_small_data_block_size_f</a>
+<a href="./src/H5Pff_f90.html#robo354" class="indexitem" >h5pset_sym_k_f</a>
+<a href="./src/H5Pff_f90.html#robo355" class="indexitem" >h5pset_szip_f</a>
+<a href="./src/H5Pff_f90.html#robo356" class="indexitem" >h5pset_userblock_f</a>
+<a href="./src/H5Pff_f90.html#robo357" class="indexitem" >h5punregister_f</a>
+<a href="./src/H5Rff_F03_f90.html#robo358" class="indexitem" >h5rcreate_object_f</a>
+<a href="./src/H5Rff_F90_f90.html#robo359" class="indexitem" >h5rcreate_object_f</a>
+<a href="./src/H5Rff_F03_f90.html#robo360" class="indexitem" >h5rcreate_ptr_f</a>
+<a href="./src/H5Rff_F03_f90.html#robo362" class="indexitem" >h5rcreate_region_f</a>
+<a href="./src/H5Rff_F90_f90.html#robo361" class="indexitem" >h5rcreate_region_f</a>
+<a href="./src/H5Rff_F03_f90.html#robo363" class="indexitem" >h5rdereference_object_f</a>
+<a href="./src/H5Rff_F90_f90.html#robo364" class="indexitem" >h5rdereference_object_f</a>
+<a href="./src/H5Rff_F03_f90.html#robo365" class="indexitem" >h5rdereference_ptr_f</a>
+<a href="./src/H5Rff_F90_f90.html#robo367" class="indexitem" >h5rdereference_region_f</a>
+<a href="./src/H5Rff_F03_f90.html#robo366" class="indexitem" >h5rdereference_region_f</a>
+<a href="./src/H5Rff_F03_f90.html#robo369" class="indexitem" >h5rget_name_object_f</a>
+<a href="./src/H5Rff_F90_f90.html#robo368" class="indexitem" >h5rget_name_object_f</a>
+<a href="./src/H5Rff_F03_f90.html#robo370" class="indexitem" >h5rget_name_ptr_f</a>
+<a href="./src/H5Rff_F90_f90.html#robo371" class="indexitem" >h5rget_name_region_f</a>
+<a href="./src/H5Rff_F03_f90.html#robo372" class="indexitem" >h5rget_name_region_f</a>
+<a href="./src/H5Rff_F03_f90.html#robo373" class="indexitem" >h5rget_obj_type_f</a>
+<a href="./src/H5Rff_f90.html#robo374" class="indexitem" >h5rget_object_type_obj_f</a>
+<a href="./src/H5Rff_f90.html#robo375" class="indexitem" >h5rget_region_region_f</a>
+<a href="./src/H5Sff_f90.html#robo376" class="indexitem" >h5sclose_f</a>
+<a href="./src/H5Sff_f90.html#robo377" class="indexitem" >h5scopy_f</a>
+<a href="./src/H5Sff_f90.html#robo378" class="indexitem" >h5screate_f</a>
+<a href="./src/H5Sff_f90.html#robo379" class="indexitem" >h5screate_simple_f</a>
+<a href="./src/H5Sff_f90.html#robo380" class="indexitem" >H5Sdecode_f</a>
+<a href="./src/H5Sff_f90.html#robo381" class="indexitem" >H5Sencode_f</a>
+<a href="./src/H5Sff_f90.html#robo382" class="indexitem" >h5sextent_copy_f</a>
+<a href="./src/H5Sff_f90.html#robo383" class="indexitem" >h5sextent_equal_f</a>
+<a href="./src/H5Sff_f90.html#robo384" class="indexitem" >h5sget_select_bounds_f</a>
+<a href="./src/H5Sff_f90.html#robo385" class="indexitem" >h5sget_select_elem_npoints_f</a>
+<a href="./src/H5Sff_f90.html#robo386" class="indexitem" >h5sget_select_elem_pointlist_f</a>
+<a href="./src/H5Sff_f90.html#robo387" class="indexitem" >h5sget_select_hyper_blocklist_f</a>
+<a href="./src/H5Sff_f90.html#robo388" class="indexitem" >h5sget_select_hyper_nblocks_f</a>
+<a href="./src/H5Sff_f90.html#robo389" class="indexitem" >h5sget_select_npoints_f</a>
+<a href="./src/H5Sff_f90.html#robo390" class="indexitem" >h5sget_select_type_f</a>
+<a href="./src/H5Sff_f90.html#robo391" class="indexitem" >h5sget_simple_extent_dims_f</a>
+<a href="./src/H5Sff_f90.html#robo392" class="indexitem" >h5sget_simple_extent_ndims_f</a>
+<a href="./src/H5Sff_f90.html#robo393" class="indexitem" >h5sget_simple_extent_npoints_f</a>
+<a href="./src/H5Sff_f90.html#robo394" class="indexitem" >h5sget_simple_extent_type_f</a>
+<a href="./src/H5Sff_f90.html#robo395" class="indexitem" >h5sis_simple_f</a>
+<a href="./src/H5Sff_f90.html#robo396" class="indexitem" >h5soffset_simple_f</a>
+<a href="./src/H5Sff_f90.html#robo397" class="indexitem" >h5sselect_all_f</a>
+<a href="./src/H5Sff_f90.html#robo398" class="indexitem" >h5sselect_elements_f</a>
+<a href="./src/H5Sff_f90.html#robo399" class="indexitem" >h5sselect_hyperslab_f</a>
+<a href="./src/H5Sff_f90.html#robo400" class="indexitem" >h5sselect_none_f</a>
+<a href="./src/H5Sff_f90.html#robo401" class="indexitem" >h5sselect_valid_f</a>
+<a href="./src/H5Sff_f90.html#robo402" class="indexitem" >h5sset_extent_none_f</a>
+<a href="./src/H5Sff_f90.html#robo403" class="indexitem" >h5sset_extent_simple_f</a>
+<a href="./src/H5Tff_f90.html#robo404" class="indexitem" >h5tarray_create_f</a>
+<a href="./src/H5Tff_f90.html#robo405" class="indexitem" >h5tclose_f</a>
+<a href="./src/H5Tff_f90.html#robo406" class="indexitem" >h5tcommit_anon_f</a>
+<a href="./src/H5Tff_f90.html#robo407" class="indexitem" >h5tcommit_f</a>
+<a href="./src/H5Tff_f90.html#robo408" class="indexitem" >h5tcommitted_f</a>
+<a href="./src/H5Tff_f90.html#robo409" class="indexitem" >h5tcompiler_conv_f</a>
+<a href="./src/H5Tff_F03_f90.html#robo410" class="indexitem" >H5Tconvert_f</a>
+<a href="./src/H5Tff_f90.html#robo411" class="indexitem" >h5tcopy_f</a>
+<a href="./src/H5Tff_f90.html#robo412" class="indexitem" >h5tcreate_f</a>
+<a href="./src/H5Tff_f90.html#robo413" class="indexitem" >H5Tdecode_f</a>
+<a href="./src/H5Tff_f90.html#robo414" class="indexitem" >h5tenaum_insert_f</a>
+<a href="./src/H5Tff_f90.html#robo415" class="indexitem" >H5Tencode_f</a>
+<a href="./src/H5Tff_f90.html#robo416" class="indexitem" >h5tenum_create_f</a>
+<a href="./src/H5Tff_f90.html#robo417" class="indexitem" >h5tenum_nameof_f</a>
+<a href="./src/H5Tff_f90.html#robo418" class="indexitem" >h5tenum_valuof_f</a>
+<a href="./src/H5Tff_f90.html#robo419" class="indexitem" >h5tequal_f</a>
+<a href="./src/H5Tff_f90.html#robo422" class="indexitem" >h5tget_array_dims_f</a>
+<a href="./src/H5Tff_f90.html#robo423" class="indexitem" >h5tget_array_ndims_f</a>
+<a href="./src/H5Tff_f90.html#robo424" class="indexitem" >h5tget_class_f</a>
+<a href="./src/H5Tff_f90.html#robo425" class="indexitem" >h5tget_create_plist_f</a>
+<a href="./src/H5Tff_f90.html#robo426" class="indexitem" >h5tget_cset_f</a>
+<a href="./src/H5Tff_f90.html#robo427" class="indexitem" >h5tget_ebias_f</a>
+<a href="./src/H5Tff_f90.html#robo428" class="indexitem" >h5tget_fields_f</a>
+<a href="./src/H5Tff_f90.html#robo429" class="indexitem" >h5tget_inpad_f</a>
+<a href="./src/H5Tff_f90.html#robo430" class="indexitem" >h5tget_member_class_f</a>
+<a href="./src/H5Tff_f90.html#robo431" class="indexitem" >h5tget_member_index_f</a>
+<a href="./src/H5Tff_f90.html#robo432" class="indexitem" >h5tget_member_name_f</a>
+<a href="./src/H5Tff_f90.html#robo433" class="indexitem" >h5tget_member_offset_f</a>
+<a href="./src/H5Tff_f90.html#robo434" class="indexitem" >h5tget_member_type_f</a>
+<a href="./src/H5Tff_f90.html#robo435" class="indexitem" >h5tget_member_value_f</a>
+<a href="./src/H5Tff_f90.html#robo436" class="indexitem" >h5tget_native_type_f</a>
+<a href="./src/H5Tff_f90.html#robo437" class="indexitem" >h5tget_nmembers_f</a>
+<a href="./src/H5Tff_f90.html#robo438" class="indexitem" >h5tget_norm_f</a>
+<a href="./src/H5Tff_f90.html#robo439" class="indexitem" >h5tget_offset_f</a>
+<a href="./src/H5Tff_f90.html#robo440" class="indexitem" >h5tget_order_f</a>
+<a href="./src/H5Tff_f90.html#robo441" class="indexitem" >h5tget_pad_f</a>
+<a href="./src/H5Tff_f90.html#robo442" class="indexitem" >h5tget_precision_f</a>
+<a href="./src/H5Tff_f90.html#robo443" class="indexitem" >h5tget_sign_f</a>
+<a href="./src/H5Tff_f90.html#robo444" class="indexitem" >h5tget_size_f</a>
+<a href="./src/H5Tff_f90.html#robo445" class="indexitem" >h5tget_strpad_f</a>
+<a href="./src/H5Tff_f90.html#robo446" class="indexitem" >h5tget_super_f</a>
+<a href="./src/H5Tff_f90.html#robo447" class="indexitem" >h5tget_tag_f</a>
+<a href="./src/H5Tff_f90.html#robo448" class="indexitem" >h5tinsert_f</a>
+<a href="./src/H5Tff_f90.html#robo449" class="indexitem" >h5tis_variable_str_f</a>
+<a href="./src/H5Tff_f90.html#robo450" class="indexitem" >h5topen_f</a>
+<a href="./src/H5Tff_f90.html#robo451" class="indexitem" >h5tpack_f</a>
+<a href="./src/H5Tff_f90.html#robo452" class="indexitem" >h5tset_cset_f</a>
+<a href="./src/H5Tff_f90.html#robo453" class="indexitem" >h5tset_ebias_f</a>
+<a href="./src/H5Tff_f90.html#robo454" class="indexitem" >h5tset_fields_f</a>
+<a href="./src/H5Tff_f90.html#robo455" class="indexitem" >h5tset_inpad_f</a>
+<a href="./src/H5Tff_f90.html#robo456" class="indexitem" >h5tset_norm_f</a>
+<a href="./src/H5Tff_f90.html#robo457" class="indexitem" >h5tset_offset_f</a>
+<a href="./src/H5Tff_f90.html#robo458" class="indexitem" >h5tset_order_f</a>
+<a href="./src/H5Tff_f90.html#robo459" class="indexitem" >h5tset_pad_f</a>
+<a href="./src/H5Tff_f90.html#robo460" class="indexitem" >h5tset_precision_f</a>
+<a href="./src/H5Tff_f90.html#robo461" class="indexitem" >h5tset_sign_f</a>
+<a href="./src/H5Tff_f90.html#robo462" class="indexitem" >h5tset_size_f</a>
+<a href="./src/H5Tff_f90.html#robo463" class="indexitem" >h5tset_strpad_f</a>
+<a href="./src/H5Tff_f90.html#robo464" class="indexitem" >h5tset_tag_f</a>
+<a href="./src/H5Tff_f90.html#robo465" class="indexitem" >h5tvlen_create_f</a>
+<a href="./src/H5Zff_f90.html#robo466" class="indexitem" >h5zfilter_avail_f</a>
+<a href="./src/H5Zff_f90.html#robo467" class="indexitem" >h5zget_filter_info_f</a>
+<a href="./src/H5Zff_f90.html#robo468" class="indexitem" >h5zunregister_f</a>
+<h2><a href="#A">A</a> - <a href="#B">B</a> - <a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#H">H</a> - <a href="#I">I</a> - <a href="#J">J</a> - <a href="#K">K</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#O">O</a> - <a href="#P">P</a> - <a href="#Q">Q</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#X">X</a> - <a href="#Y">Y</a> - <a href="#Z">Z</a> - <a href="#0">0</a> - <a href="#1">1</a> - <a href="#2">2</a> - <a href="#3">3</a> - <a href="#4">4</a> - <a href="#5">5</a> - <a href="#6">6</a> - <a href="#7">7</a> - <a href="#8">8</a> - <a href="#9">9</a></h2>
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./ on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/robodoc.css b/fortran/doc/DevelGuide/robodoc.css
new file mode 100644
index 0000000..207a172
--- /dev/null
+++ b/fortran/doc/DevelGuide/robodoc.css
@@ -0,0 +1,302 @@
+/****h* ROBODoc/ROBODoc Cascading Style Sheet
+ * FUNCTION
+ * This is the default cascading style sheet for documentation
+ * generated with ROBODoc.
+ * You can edit this file to your own liking and then use
+ * it with the option
+ * --css <filename>
+ *
+ * This style-sheet defines the following layout
+ * +----------------------------------------+
+ * | logo |
+ * +----------------------------------------+
+ * | extra |
+ * +----------------------------------------+
+ * | | navi- |
+ * | | gation |
+ * | content | |
+ * | | |
+ * +----------------------------------------+
+ * | footer |
+ * +----------------------------------------+
+ *
+ * This style-sheet is based on a style-sheet that was automatically
+ * generated with the Strange Banana stylesheet generator.
+ * See http://www.strangebanana.com/generator.aspx
+ *
+ ******
+ * $Id: html_generator.c,v 1.94 2008/06/17 11:49:27 gumpu Exp $
+ */
+
+body
+{
+ background-color: rgb(255,255,255);
+ color: rgb(98,84,55);
+ font-family: Arial, serif;
+ border-color: rgb(226,199,143);
+}
+
+pre
+{
+ font-family: monospace;
+ margin: 15px;
+ padding: 5px;
+ white-space: pre;
+ color: #000;
+}
+
+pre.source
+{
+ background-color: #ffe;
+ border: dashed #aa9 1px;
+}
+
+p
+{
+ margin:15px;
+}
+
+p.item_name
+{
+ font-weight: bolder;
+ margin:5px;
+ font-size: 120%;
+}
+
+#content
+{
+ font-size: 100%;
+ color: rgb(0,0,0);
+ background-color: rgb(255,255,255);
+ border-left-width: 0px;
+ border-right-width: 0px;
+ border-top-width: 0px;
+ border-bottom-width: 0px;
+ border-left-style: none;
+ border-right-style: none;
+ border-top-style: none;
+ border-bottom-style: none;
+ padding: 40px 31px 14px 17px;
+ border-color: rgb(0,0,0);
+ text-align: justify;
+}
+
+#navigation
+{
+ background-color: rgb(98,84,55);
+ color: rgb(230,221,202);
+ font-family: "Times New Roman", serif;
+ font-style: normal;
+ border-color: rgb(0,0,0);
+}
+
+a.menuitem
+{
+ font-size: 120%;
+ background-color: rgb(0,0,0);
+ color: rgb(195,165,100);
+ font-variant: normal;
+ text-transform: none;
+ font-weight: normal;
+ padding: 1px 8px 3px 1px;
+ margin-left: 5px;
+ margin-right: 5px;
+ margin-top: 5px;
+ margin-bottom: 5px;
+ border-color: rgb(159,126,57);
+ text-align: right;
+}
+
+#logo, #logo a
+{
+ font-size: 130%;
+ background-color: rgb(198,178,135);
+ color: rgb(98,84,55);
+ font-family: Georgia, serif;
+ font-style: normal;
+ font-variant: normal;
+ text-transform: none;
+ font-weight: bold;
+ padding: 20px 18px 20px 18px;
+ border-color: rgb(255,255,255);
+ text-align: right;
+}
+
+#extra, #extra a
+{
+ font-size: 128%;
+ background-color: rgb(0,0,0);
+ color: rgb(230,221,202);
+ font-style: normal;
+ font-variant: normal;
+ text-transform: none;
+ font-weight: normal;
+ border-left-width: 0px;
+ border-right-width: 0px;
+ border-top-width: 0px;
+ border-bottom-width: 0px;
+ border-left-style: none;
+ border-right-style: none;
+ border-top-style: none;
+ border-bottom-style: none;
+ padding: 12px 12px 12px 12px;
+ border-color: rgb(195,165,100);
+ text-align: center;
+}
+
+#content a
+{
+ color: rgb(159,126,57);
+ text-decoration: none;
+}
+
+#content a:hover, #content a:active
+{
+ color: rgb(255,255,255);
+ background-color: rgb(159,126,57);
+}
+
+a.indexitem
+{
+ display: block;
+}
+
+h1, h2, h3, h4, h5, h6
+{
+ background-color: rgb(221,221,221);
+ font-family: Arial, serif;
+ font-style: normal;
+ font-variant: normal;
+ text-transform: none;
+ font-weight: normal;
+}
+
+h1
+{
+ font-size: 151%;
+}
+
+h2
+{
+ font-size: 142%;
+}
+
+h3
+{
+ font-size: 133%;
+}
+
+h4
+{
+ font-size: 124%;
+}
+
+h5
+{
+ font-size: 115%;
+}
+
+h6
+{
+ font-size: 106%;
+}
+
+#navigation a
+{
+ text-decoration: none;
+}
+
+.menuitem:hover
+{
+ background-color: rgb(195,165,100);
+ color: rgb(0,0,0);
+}
+
+#extra a
+{
+ text-decoration: none;
+}
+
+#logo a
+{
+ text-decoration: none;
+}
+
+#extra a:hover
+{
+}
+
+/* layout */
+#navigation
+{
+ width: 22%;
+ position: relative;
+ top: 0;
+ right: 0;
+ float: right;
+ text-align: center;
+ margin-left: 10px;
+}
+
+.menuitem {width: auto;}
+#content {width: auto;}
+.menuitem {display: block;}
+
+
+div#footer
+{
+ background-color: rgb(198,178,135);
+ color: rgb(98,84,55);
+ clear: left;
+ width: 100%;
+ font-size: 71%;
+}
+
+div#footer a
+{
+ background-color: rgb(198,178,135);
+ color: rgb(98,84,55);
+}
+
+div#footer p
+{
+ margin:0;
+ padding:5px 10px
+}
+
+span.keyword
+{
+ color: #00F;
+}
+
+span.comment
+{
+ color: #080;
+}
+
+span.quote
+{
+ color: #F00;
+}
+
+span.squote
+{
+ color: #F0F;
+}
+
+span.sign
+{
+ color: #008B8B;
+}
+
+span.line_number
+{
+ color: #808080;
+}
+
+@media print
+{
+ #navigation {display: none;}
+ #content {padding: 0px;}
+ #content a {text-decoration: underline;}
+}
diff --git a/fortran/doc/DevelGuide/src/H5Af_c.html b/fortran/doc/DevelGuide/src/H5Af_c.html
new file mode 100644
index 0000000..7fcecc1
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Af_c.html
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Af.c</title>
+<!-- Source: ./src/H5Af.c -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="H5Af2fH5Af"></a>
+<a name="robo30"></a><h2>H5Af</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains C stubs for <a href="./H5Aff_f90.html#robo27">H5A</a> Fortran APIs
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Af.c on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Aff_F03_f90.html b/fortran/doc/DevelGuide/src/H5Aff_F03_f90.html
new file mode 100644
index 0000000..9e503f4
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Aff_F03_f90.html
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Aff_F03.f90</title>
+<!-- Source: ./src/H5Aff_F03.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5A2028F0329"></a>
+<a name="robo28"></a><h2>H5A (F03)</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> H5A_PROVISIONAL
+</pre>
+<p class="item_name">FILE</p>
+<pre> src/fortran/src/<a href="#robo_top_of_doc">H5Aff_F03.f90</a>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains Fortran 90 and Fortran 2003 interfaces for <a href="./H5Aff_f90.html#robo27">H5A</a> functions.
+ It contains the same functions as <a href="./H5Aff_F90_f90.html#robo_top_of_doc">H5Aff_F90.f90</a> but includes the
+ Fortran 2003 functions and the interface listings. This file will be compiled
+ instead of <a href="./H5Aff_F90_f90.html#robo_top_of_doc">H5Aff_F90.f90</a> if Fortran 2003 functions are enabled.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> (A) C_LOC and character strings according to the Fortran 2003 standard:
+
+ 15.1.2.5 C_LOC(X)
+
+ Argument. X shall either
+
+ (1) have interoperable type and type parameters and be
+ (a) a variable that has the TARGET attribute and is interoperable,
+ (b) an allocated allocatable variable that has the TARGET attribute
+ and is not an array of zero size, or
+ (c) an associated scalar pointer, or
+ (2) be a nonpolymorphic scalar, have no length type parameters, and be
+ (a) a nonallocatable, nonpointer variable that has the TARGET attribute,
+ (b) an allocated allocatable variable that has the TARGET attribute, or
+ (c) an associated pointer.
+
+ - When X is a character, for interoperability the standard is:
+
+ 15.2.1 Interoperability of intrinsic types
+
+ ...if the type is character, interoperability also requires that the length type parameter
+ be omitted or be specified by an initialization expression whose value is one.
+
+ THEREFORE compilers that have not extended the standard require
+
+ CHARACTER(LEN=1), TARGET :: chr
+ or
+ CHARACTER, TARGET :: chr
+
+ (B)
+ *** IMPORTANT ***
+ If you add a new <a href="./H5Aff_f90.html#robo27">H5A</a> function you must add the function name to the
+ Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+ This is needed for Windows based operating systems.
+</pre>
+
+<hr />
+<a name="H5A2028F03292fh5aread5ff"></a>
+<a name="robo108"></a><h2>h5aread_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo28">H5A (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5aread_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Reads an attribute.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> attr_id - attribute identifier
+ memtype_id - attribute memory type identifier
+ dims - 1D array of size 7, stores sizes of the
+ - buf array dimensions.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> buf - buffer to read attribute data in
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces are added for
+ called C functions (it is needed for Windows
+ port). February 27, 2001
+
+ dims parameter was added to make code portable;
+ Aprile 4, 2001
+
+ Changed buf intent to INOUT to be consistant
+ with how the C functions handles it. The pg
+ compiler will return 0 if a buf value is not set.
+ February, 2008
+</pre>
+<p class="item_name">NOTES</p>
+<pre> This function is overloaded to write INTEGER,
+ REAL, DOUBLE PRECISION and CHARACTER buffers
+ up to 7 dimensions.
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Aff_F03.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Aff_F90_f90.html b/fortran/doc/DevelGuide/src/H5Aff_F90_f90.html
new file mode 100644
index 0000000..aa01b49
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Aff_F90_f90.html
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Aff_F90.f90</title>
+<!-- Source: ./src/H5Aff_F90.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5A2028F9029"></a>
+<a name="robo29"></a><h2>H5A (F90)</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> H5A_PROVISIONAL
+</pre>
+<p class="item_name">FILE</p>
+<pre> fortran/src/<a href="#robo_top_of_doc">H5Aff_F90.f90</a>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains Fortran 90 interfaces for <a href="./H5Aff_f90.html#robo27">H5A</a> functions. It contains
+ the same functions as <a href="./H5Aff_F03_f90.html#robo_top_of_doc">H5Aff_F03.f90</a> but excludes the Fortran 2003 functions
+ and the interface listings. This file will be compiled instead of <a href="./H5Aff_F03_f90.html#robo_top_of_doc">H5Aff_F03.f90</a>
+ if Fortran 2003 functions are not enabled.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> *** IMPORTANT ***
+ If you add a new <a href="./H5Aff_f90.html#robo27">H5A</a> function you must add the function name to the
+ Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+ This is needed for Windows based operating systems.
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Aff_F90.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Aff_f90.html b/fortran/doc/DevelGuide/src/H5Aff_f90.html
new file mode 100644
index 0000000..268c1db
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Aff_f90.html
@@ -0,0 +1,1102 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Aff.f90</title>
+<!-- Source: ./src/H5Aff.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5A"></a>
+<a name="robo27"></a><h2>H5A</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> MODULE <strong>H5A</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains Fortran interfaces for <strong>H5A</strong> functions. It includes
+ all the functions that are independent on whether the Fortran 2003 functions
+ are enabled or disabled.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> *** IMPORTANT ***
+ If you add a new <strong>H5A</strong> function you must add the function name to the
+ Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+ This is needed for Windows based operating systems.
+</pre>
+
+<hr />
+<a name="H5A2fh5aclose5ff"></a>
+<a name="robo85"></a><h2>h5aclose_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo27">H5A</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5aclose_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Closes the specified attribute.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> attr_id - attribute identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces are added for
+ called C functions (it is needed for Windows
+ port). February 27, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5aclose_f</strong><span class="sign">(</span>attr_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> attr_id <span class="sign">!</span> Attribute identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5A2fh5acreate5fby5fname5ff"></a>
+<a name="robo86"></a><h2>h5acreate_by_name_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo27">H5A</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5acreate_by_name_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates an attribute attached to a specified object
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - Location or object identifier; may be dataset or group
+ obj_name - Name, relative to loc_id, of object that attribute is to be attached to
+ attr_name - Attribute name
+ type_id - Attribute datatype identifier
+ space_id - Attribute dataspace identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> attr - an attribute identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> acpl_id - Attribute creation property list identifier (Currently not used.)
+ aapl_id - Attribute access property list identifier (Currently not used.)
+ lapl_id - Link access property list
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5acreate_by_name_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> obj_name<span class="sign">,</span> attr_name<span class="sign">,</span> type_id<span class="sign">,</span> space_id<span class="sign">,</span> attr<span class="sign">,</span> hdferr<span class="sign">,</span> <span class="sign">&amp;</span>
+ acpl_id<span class="sign">,</span> aapl_id<span class="sign">,</span> lapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_name
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> attr_name
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> attr
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr
+
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span><span class="sign">,</span> OPTIONAL <span class="sign">:</span><span class="sign">:</span> acpl_id
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span><span class="sign">,</span> OPTIONAL <span class="sign">:</span><span class="sign">:</span> aapl_id
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span><span class="sign">,</span> OPTIONAL <span class="sign">:</span><span class="sign">:</span> lapl_id
+</pre>
+
+<hr />
+<a name="H5A2fh5acreate5ff"></a>
+<a name="robo87"></a><h2>h5acreate_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo27">H5A</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5acreate_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates a dataset as an attribute of a group, dataset, or named datatype
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - identifier of an object (group, dataset,
+ or named datatype) attribute is attached to
+ name - attribute name
+ type_id - attribute datatype identifier
+ space_id - attribute dataspace identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> attr_id - attribute identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> acpl_id - Attribute creation property list identifier
+ appl_id - Attribute access property list identifier
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces are added for
+ called C functions (it is needed for Windows
+ port). February 27, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5acreate_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> name<span class="sign">,</span> type_id<span class="sign">,</span> space_id<span class="sign">,</span> attr_id<span class="sign">,</span> <span class="sign">&amp;</span>
+ hdferr<span class="sign">,</span> acpl_id<span class="sign">,</span> aapl_id <span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> Object identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Attribute name
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Attribute datatype identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Attribute dataspace identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> attr_id <span class="sign">!</span> Attribute identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5A2fh5adelete5fby5fidx5ff"></a>
+<a name="robo88"></a><h2>h5adelete_by_idx_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo27">H5A</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5adelete_by_idx_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Deletes an attribute from an object according to index order
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - Location or object identifier; may be dataset or group
+ obj_name - Name of object, relative to location, from which attribute is to be removed
+ idx_type - Type of index; Possible values are:
+ H5_INDEX_UNKNOWN_F = -1 - Unknown index type
+ H5_INDEX_NAME_F - Index on names
+ H5_INDEX_CRT_ORDER_F - Index on creation order
+ H5_INDEX_N_F - Number of indices defined
+
+ order - Order in which to iterate over index; Possible values are:
+ H5_ITER_UNKNOWN_F - Unknown order
+ H5_ITER_INC_F - Increasing order
+ H5_ITER_DEC_F - Decreasing order
+ H5_ITER_NATIVE_F - No particular order, whatever is fastest
+ H5_ITER_N_F - Number of iteration orders
+
+ n - Offset within index
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> lapl_id - Link access property list
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ January, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5adelete_by_idx_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> obj_name<span class="sign">,</span> idx_type<span class="sign">,</span> order<span class="sign">,</span> n<span class="sign">,</span> hdferr<span class="sign">,</span> lapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> Identifer <span class="keyword">for</span> object to which attribute is attached
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_name <span class="sign">!</span> Name of object<span class="sign">,</span> relative to location<span class="sign">,</span>
+ <span class="sign">!</span> from which attribute is to be removed
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> idx_type <span class="sign">!</span> Type of index<span class="sign">;</span> Possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5_INDEX_UNKNOWN_F <span class="sign">-</span> Unknown index type
+ <span class="sign">!</span> H5_INDEX_NAME_F <span class="sign">-</span> Index on names
+ <span class="sign">!</span> H5_INDEX_CRT_ORDER_F <span class="sign">-</span> Index on creation order
+ <span class="sign">!</span> H5_INDEX_N_F <span class="sign">-</span> Number of indices defined
+
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> order <span class="sign">!</span> Order in which to iterate over index<span class="sign">;</span> Possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5_ITER_UNKNOWN_F <span class="sign">-</span> Unknown order
+ <span class="sign">!</span> H5_ITER_INC_F <span class="sign">-</span> Increasing order
+ <span class="sign">!</span> H5_ITER_DEC_F <span class="sign">-</span> Decreasing order
+ <span class="sign">!</span> H5_ITER_NATIVE_F <span class="sign">-</span> No particular order<span class="sign">,</span> whatever is fastest
+ <span class="sign">!</span> H5_ITER_N_F <span class="sign">-</span> Number of iteration orders
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> n <span class="sign">!</span> Offset within index
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lapl_id <span class="sign">!</span> Link access property list
+</pre>
+
+<hr />
+<a name="H5A2fh5adelete5fby5fname5ff"></a>
+<a name="robo89"></a><h2>h5adelete_by_name_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo27">H5A</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5adelete_by_name_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Removes an attribute from a specified location
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - Identifer for object to which attribute is attached
+ obj_name - Name of attribute to open
+ attr_name - Attribute access property list
+ lapl_id - Link access property list
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ January, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5adelete_by_name_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> obj_name<span class="sign">,</span> attr_name<span class="sign">,</span> hdferr<span class="sign">,</span> lapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> Identifer <span class="keyword">for</span> object to which attribute is attached
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_name <span class="sign">!</span> Name of object<span class="sign">,</span> relative to location<span class="sign">,</span>
+ <span class="sign">!</span> from which attribute is to be removed
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> attr_name <span class="sign">!</span> Name of attribute to delete
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lapl_id <span class="sign">!</span> Link access property list
+</pre>
+
+<hr />
+<a name="H5A2fh5adelete5ff"></a>
+<a name="robo90"></a><h2>h5adelete_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo27">H5A</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5adelete_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Deletes an attribute of an object (group, dataset or
+ named datatype)
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> obj_id - object identifier
+ name - attribute name
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces are added for
+ called C functions (it is needed for Windows
+ port). February 27, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5adelete_f</strong><span class="sign">(</span>obj_id<span class="sign">,</span> name<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_id <span class="sign">!</span> Object identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Attribute name
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5A2fH5Aexists5fby5fname5ff"></a>
+<a name="robo91"></a><h2>H5Aexists_by_name_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo27">H5A</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Aexists_by_name_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Determines whether an attribute with a given name exists on an object
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - Location identifier
+ obj_name - Object name either relative to loc_id, absolute from the file’s root group, or '.' (a dot)
+ attr_name - Attribute name
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> attr_exists - attribute exists status
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> lapl_id - Link access property list identifier
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5aexists_by_name_f<span class="sign">(</span>loc_id<span class="sign">,</span> obj_name<span class="sign">,</span> attr_name<span class="sign">,</span> attr_exists<span class="sign">,</span> hdferr<span class="sign">,</span> lapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> Location identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_name <span class="sign">!</span> Object name either relative to loc_id<span class="sign">,</span>
+ <span class="sign">!</span> absolute from the file<span class="sign">â</span><span class="sign">€</span><span class="sign">™</span>s root group<span class="sign">,</span> or <span class="squote">'.'</span>
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> attr_name <span class="sign">!</span> Attribute name
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> attr_exists <span class="sign">!</span> <span class="sign">.</span>TRUE<span class="sign">.</span> <span class="keyword">if</span> exists<span class="sign">,</span> <span class="sign">.</span>FALSE<span class="sign">.</span> otherwise
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lapl_id <span class="sign">!</span> Link access property list identifier
+</pre>
+
+<hr />
+<a name="H5A2fH5Aexists5ff"></a>
+<a name="robo92"></a><h2>H5Aexists_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo27">H5A</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Aexists_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Determines whether an attribute with a given name exists on an object
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> obj_id - Object identifier
+ attr_name - Attribute name
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> attr_exists - attribute exists status
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5aexists_f<span class="sign">(</span>obj_id<span class="sign">,</span> attr_name<span class="sign">,</span> attr_exists<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_id <span class="sign">!</span> Object identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> attr_name <span class="sign">!</span> Attribute name
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> attr_exists <span class="sign">!</span> <span class="sign">.</span>TRUE<span class="sign">.</span> <span class="keyword">if</span> exists<span class="sign">,</span> <span class="sign">.</span>FALSE<span class="sign">.</span> otherwise
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5A2fh5aget5fcreate5fplist5ff"></a>
+<a name="robo93"></a><h2>h5aget_create_plist_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo27">H5A</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5aget_create_plist_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets an attribute creation property list identifier
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> attr_id - Identifier of the attribute
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> creation_prop_id - Identifier for the attribute’s creation property
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ January, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5aget_create_plist_f</strong><span class="sign">(</span>attr_id<span class="sign">,</span> creation_prop_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> attr_id <span class="sign">!</span> Identifier of the attribute
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> creation_prop_id <span class="sign">!</span> Identifier <span class="keyword">for</span> the attribute<span class="sign">â</span><span class="sign">€</span><span class="sign">™</span>s creation property
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5A2fh5aget5finfo5fby5fidx5ff"></a>
+<a name="robo94"></a><h2>h5aget_info_by_idx_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo27">H5A</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5aget_info_by_idx_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves attribute information, by attribute index position
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - Location of object to which attribute is attached
+ obj_name - Name of object to which attribute is attached, relative to location
+ idx_type - Type of index
+ order - Index traversal order
+ n - Attribute’s position in index
+
+ OUTPUTS NOTE: In C it is defined as a structure: H5A_info_t
+ corder_valid - indicates whether the creation order data is valid for this attribute
+ corder - is a positive integer containing the creation order of the attribute
+ cset - indicates the character set used for the attribute’s name
+ data_size - indicates the size, in the number of characters, of the attribute
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> lapl_id - Link access property list
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ January, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5aget_info_by_idx_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> obj_name<span class="sign">,</span> idx_type<span class="sign">,</span> order<span class="sign">,</span> n<span class="sign">,</span> <span class="sign">&amp;</span>
+ f_corder_valid<span class="sign">,</span> corder<span class="sign">,</span> cset<span class="sign">,</span> data_size<span class="sign">,</span> hdferr<span class="sign">,</span> lapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> Object identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_name <span class="sign">!</span> Name of object to which attribute is attached
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> idx_type <span class="sign">!</span> Type of index<span class="sign">;</span> Possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5_INDEX_UNKNOWN_F <span class="sign">-</span> Unknown index type
+ <span class="sign">!</span> H5_INDEX_NAME_F <span class="sign">-</span> Index on names
+ <span class="sign">!</span> H5_INDEX_CRT_ORDER_F <span class="sign">-</span> Index on creation order
+ <span class="sign">!</span> H5_INDEX_N_F <span class="sign">-</span> Number of indices defined
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> order <span class="sign">!</span> Order in which to iterate over index<span class="sign">;</span> Possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5_ITER_UNKNOWN_F <span class="sign">-</span> Unknown order
+ <span class="sign">!</span> H5_ITER_INC_F <span class="sign">-</span> Increasing order
+ <span class="sign">!</span> H5_ITER_DEC_F <span class="sign">-</span> Decreasing order
+ <span class="sign">!</span> H5_ITER_NATIVE_F <span class="sign">-</span> No particular order<span class="sign">,</span> whatever is fastest
+
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> n <span class="sign">!</span> Attribute<span class="sign">â</span><span class="sign">€</span><span class="sign">™</span>s position in index
+
+
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> f_corder_valid <span class="sign">!</span> Indicates whether the creation order data is valid <span class="keyword">for</span> this attribute
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> corder <span class="sign">!</span> Is a positive integer containing the creation order of the attribute
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> cset <span class="sign">!</span> Indicates the character set used <span class="keyword">for</span> the attribute<span class="sign">â</span><span class="sign">€</span><span class="sign">™</span>s name
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> data_size <span class="sign">!</span> Indicates the size<span class="sign">,</span> in the number of characters<span class="sign">,</span> of the attribute
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lapl_id <span class="sign">!</span> Link access property list
+</pre>
+
+<hr />
+<a name="H5A2fh5aget5finfo5fby5fname5ff"></a>
+<a name="robo95"></a><h2>h5aget_info_by_name_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo27">H5A</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5aget_info_by_name_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves attribute information, by attribute name
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - Location of object to which attribute is attached
+ obj_name - Name of object to which attribute is attached, relative to location
+ attr_name - Attribute name
+
+ OUTPUTS NOTE: In C it is defined as a structure: H5A_info_t
+ corder_valid - indicates whether the creation order data is valid for this attribute
+ corder - is a positive integer containing the creation order of the attribute
+ cset - indicates the character set used for the attribute’s name
+ data_size - indicates the size, in the number of characters, of the attribute
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> lapl_id - Link access property list
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ January, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5aget_info_by_name_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> obj_name<span class="sign">,</span> attr_name<span class="sign">,</span> <span class="sign">&amp;</span>
+ f_corder_valid<span class="sign">,</span> corder<span class="sign">,</span> cset<span class="sign">,</span> data_size<span class="sign">,</span> hdferr<span class="sign">,</span> lapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> Object identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_name <span class="sign">!</span> Name of object to which attribute is attached
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> attr_name <span class="sign">!</span> Attribute name
+
+
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> f_corder_valid <span class="sign">!</span> Indicates whether the creation order data is valid <span class="keyword">for</span> this attribute
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> corder <span class="sign">!</span> Is a positive integer containing the creation order of the attribute
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> cset <span class="sign">!</span> Indicates the character set used <span class="keyword">for</span> the attribute<span class="sign">â</span><span class="sign">€</span><span class="sign">™</span>s name
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> data_size <span class="sign">!</span> Indicates the size<span class="sign">,</span> in the number of characters<span class="sign">,</span> of the attribute
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lapl_id <span class="sign">!</span> Link access property list
+</pre>
+
+<hr />
+<a name="H5A2fh5aget5finfo5ff"></a>
+<a name="robo96"></a><h2>h5aget_info_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo27">H5A</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5aget_info_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves attribute information, by attribute identifier
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> attr_id - attribute identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> NOTE: In C it is defined as a structure: H5A_info_t
+
+ corder_valid - indicates whether the creation order data is valid for this attribute
+ corder - is a positive integer containing the creation order of the attribute
+ cset - indicates the character set used for the attribute’s name
+ data_size - indicates the size, in the number of characters, of the attribute
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ January, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5aget_info_f</strong><span class="sign">(</span>attr_id<span class="sign">,</span> f_corder_valid<span class="sign">,</span> corder<span class="sign">,</span> cset<span class="sign">,</span> data_size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> attr_id <span class="sign">!</span> Attribute identifier
+
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> f_corder_valid <span class="sign">!</span> Indicates whether the creation order data is valid <span class="keyword">for</span> this attribute
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> corder <span class="sign">!</span> Is a positive integer containing the creation order of the attribute
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> cset <span class="sign">!</span> Indicates the character set used <span class="keyword">for</span> the attribute<span class="sign">â</span><span class="sign">€</span><span class="sign">™</span>s name
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> data_size <span class="sign">!</span> Indicates the size<span class="sign">,</span> in the number of characters<span class="sign">,</span> of the attribute
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5A2fh5aget5fname5fby5fidx5ff"></a>
+<a name="robo97"></a><h2>h5aget_name_by_idx_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo27">H5A</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5aget_name_by_idx_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets an attribute name, by attribute index position.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - Location of object to which attribute is attached
+ obj_name - Name of object to which attribute is attached, relative to location
+ idx_type - Type of index; Possible values are:
+ H5_INDEX_UNKNOWN_F = -1 - Unknown index type
+ H5_INDEX_NAME_F - Index on names
+ H5_INDEX_CRT_ORDER_F - Index on creation order
+ H5_INDEX_N_F - Number of indices defined
+
+ order - Order in which to iterate over index; Possible values are:
+ H5_ITER_UNKNOWN_F - Unknown order
+ H5_ITER_INC_F - Increasing order
+ H5_ITER_DEC_F - Decreasing order
+ H5_ITER_NATIVE_F - No particular order, whatever is fastest
+ H5_ITER_N_F - Number of iteration orders
+ order - Index traversal order
+ n - Attribute’s position in index
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> name - Attribute name
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> lapl_id - Link access property list
+ size - Size, in bytes, of attribute name
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ January, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5aget_name_by_idx_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> obj_name<span class="sign">,</span> idx_type<span class="sign">,</span> order<span class="sign">,</span> <span class="sign">&amp;</span>
+ n<span class="sign">,</span> name<span class="sign">,</span> hdferr<span class="sign">,</span> size<span class="sign">,</span> lapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> Identifer <span class="keyword">for</span> object to which attribute is attached
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_name <span class="sign">!</span> Name of object<span class="sign">,</span> relative to location<span class="sign">,</span>
+ <span class="sign">!</span> from which attribute is to be removed <span class="sign">*</span>TEST<span class="sign">*</span> check NULL
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> idx_type <span class="sign">!</span> Type of index<span class="sign">;</span> Possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5_INDEX_UNKNOWN_F <span class="sign">-</span> Unknown index type
+ <span class="sign">!</span> H5_INDEX_NAME_F <span class="sign">-</span> Index on names
+ <span class="sign">!</span> H5_INDEX_CRT_ORDER_F <span class="sign">-</span> Index on creation order
+ <span class="sign">!</span> H5_INDEX_N_F <span class="sign">-</span> Number of indices defined
+
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> order <span class="sign">!</span> Order in which to iterate over index<span class="sign">;</span> Possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5_ITER_UNKNOWN_F <span class="sign">-</span> Unknown order
+ <span class="sign">!</span> H5_ITER_INC_F <span class="sign">-</span> Increasing order
+ <span class="sign">!</span> H5_ITER_DEC_F <span class="sign">-</span> Decreasing order
+ <span class="sign">!</span> H5_ITER_NATIVE_F <span class="sign">-</span> No particular order<span class="sign">,</span> whatever is fastest
+ <span class="sign">!</span> H5_ITER_N_F <span class="sign">-</span> Number of iteration orders
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> n <span class="sign">!</span> Attribute<span class="sign">â</span><span class="sign">€</span><span class="sign">™</span>s position in index
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Attribute name
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> Returns attribute name size<span class="sign">,</span>
+ <span class="sign">!</span> <span class="sign">-</span>1 <span class="keyword">if</span> fail
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lapl_id <span class="sign">!</span> Link access property list
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Indicates the size<span class="sign">,</span> in the number of characters<span class="sign">,</span>
+ <span class="sign">!</span> of the attribute
+</pre>
+
+<hr />
+<a name="H5A2fh5aget5fname5ff"></a>
+<a name="robo98"></a><h2>h5aget_name_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo27">H5A</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5aget_name_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets an attribute name.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> attr_id - attribute identifier
+ size - size of a buffer to read name in
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> buf - buffer to read name in
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces are added for
+ called C functions (it is needed for Windows
+ port). February 27, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5aget_name_f</strong><span class="sign">(</span>attr_id<span class="sign">,</span> size<span class="sign">,</span> buf<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> attr_id <span class="sign">!</span> Attribute identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Buffer size
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>INOUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> buf <span class="sign">!</span> Buffer to hold attribute name
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> name length is successful<span class="sign">,</span> <span class="sign">-</span>1 <span class="keyword">if</span> fail
+</pre>
+
+<hr />
+<a name="H5A2fh5aget5fnum5fattrs5ff"></a>
+<a name="robo99"></a><h2>h5aget_num_attrs_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo27">H5A</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5aget_num_attrs_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Determines the number of attributes attached to an object.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> obj_id - object (group, dataset, or named datatype)
+ identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> attr_num - number of attributes attached to the object
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces are added for
+ called C functions (it is needed for Windows
+ port). February 27, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5aget_num_attrs_f</strong><span class="sign">(</span>obj_id<span class="sign">,</span> attr_num<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_id <span class="sign">!</span> Object identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> attr_num <span class="sign">!</span> Number of attributes of the object
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5A2fh5aget5fspace5ff"></a>
+<a name="robo100"></a><h2>h5aget_space_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo27">H5A</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5aget_space_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets a copy of the dataspace for an attribute.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> attr_id - attribute identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> space_id - attribite dataspace identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces are added for
+ called C functions (it is needed for Windows
+ port). February 27, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5aget_space_f</strong><span class="sign">(</span>attr_id<span class="sign">,</span> space_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> attr_id <span class="sign">!</span> Attribute identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Attribute dataspace identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5A2fh5aget5fstorage5fsize5ff"></a>
+<a name="robo101"></a><h2>h5aget_storage_size_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo27">H5A</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5aget_storage_size_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns the amount of storage required for an attribute.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> attr_id - attribute identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> size - attribute storage size
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ January, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5aget_storage_size_f</strong><span class="sign">(</span>attr_id<span class="sign">,</span> size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> attr_id <span class="sign">!</span> Attribute identifier
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Attribute storage requirement
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5A2fh5aget5ftype5ff"></a>
+<a name="robo102"></a><h2>h5aget_type_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo27">H5A</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5aget_type_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets an attribute datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> attr_id - attribute identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> type_id - attribute datatype identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces are added for
+ called C functions (it is needed for Windows
+ port). February 27, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5aget_type_f</strong><span class="sign">(</span>attr_id<span class="sign">,</span> type_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> attr_id <span class="sign">!</span> Attribute identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Attribute datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5A2fh5aopen5fby5fidx5ff"></a>
+<a name="robo103"></a><h2>h5aopen_by_idx_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo27">H5A</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5aopen_by_idx_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Opens an existing attribute that is attached to an object specified by location and name
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - Location of object to which attribute is attached
+ obj_name - Name of object to which attribute is attached, relative to location
+ idx_type - Type of index
+ order - Index traversal order
+ n - Attribute’s position in index
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> aapl_id - Attribute access property list
+ lapl_id - Link access property list
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ January, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5aopen_by_idx_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> obj_name<span class="sign">,</span> idx_type<span class="sign">,</span> order<span class="sign">,</span> n<span class="sign">,</span> attr_id<span class="sign">,</span> hdferr<span class="sign">,</span> aapl_id<span class="sign">,</span> lapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> Object identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_name <span class="sign">!</span> Name of object to which attribute is attached
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> idx_type <span class="sign">!</span> Type of index<span class="sign">;</span> Possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5_INDEX_UNKNOWN_F <span class="sign">-</span> Unknown index type
+ <span class="sign">!</span> H5_INDEX_NAME_F <span class="sign">-</span> Index on names
+ <span class="sign">!</span> H5_INDEX_CRT_ORDER_F <span class="sign">-</span> Index on creation order
+ <span class="sign">!</span> H5_INDEX_N_F <span class="sign">-</span> Number of indices defined
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> order <span class="sign">!</span> Order in which to iterate over index<span class="sign">;</span> Possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5_ITER_UNKNOWN_F <span class="sign">-</span> Unknown order
+ <span class="sign">!</span> H5_ITER_INC_F <span class="sign">-</span> Increasing order
+ <span class="sign">!</span> H5_ITER_DEC_F <span class="sign">-</span> Decreasing order
+ <span class="sign">!</span> H5_ITER_NATIVE_F <span class="sign">-</span> No particular order<span class="sign">,</span> whatever is fastest
+
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> n <span class="sign">!</span> Attribute<span class="sign">â</span><span class="sign">€</span><span class="sign">™</span>s position in index
+
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> attr_id <span class="sign">!</span> Attribute identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> aapl_id <span class="sign">!</span> Attribute access property list
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lapl_id <span class="sign">!</span> Link access property list
+</pre>
+
+<hr />
+<a name="H5A2fH5Aopen5fby5fname5ff"></a>
+<a name="robo104"></a><h2>H5Aopen_by_name_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo27">H5A</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Aopen_by_name_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Opens an attribute for an object by object name and attribute name.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - Location from which to find object to which attribute is attached
+ obj_name - Object name either relative to loc_id, absolute from the file’s root group, or '.' (a dot)
+ attr_name - Attribute name
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> attr_id - attribute identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> aapl_id - Attribute access property list (Currently unused; should be passed in as H5P_DEFAULT.)
+ lapl_id - Link access property list identifier
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5aopen_by_name_f<span class="sign">(</span>loc_id<span class="sign">,</span> obj_name<span class="sign">,</span> attr_name<span class="sign">,</span> attr_id<span class="sign">,</span> hdferr<span class="sign">,</span> aapl_id<span class="sign">,</span> lapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> Location identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_name <span class="sign">!</span> Object name either relative to loc_id<span class="sign">,</span>
+ <span class="sign">!</span> absolute from the file<span class="sign">â</span><span class="sign">€</span><span class="sign">™</span>s root group<span class="sign">,</span> or <span class="squote">'.'</span>
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> attr_name <span class="sign">!</span> Attribute name
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> attr_id <span class="sign">!</span> Attribute identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> aapl_id <span class="sign">!</span> Attribute access property list
+ <span class="sign">!</span> <span class="sign">(</span>Currently unused<span class="sign">;</span> should be passed in as H5P_DEFAULT_F<span class="sign">)</span>
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lapl_id <span class="sign">!</span> Link access property list identifier
+</pre>
+
+<hr />
+<a name="H5A2fh5aopen5ff"></a>
+<a name="robo105"></a><h2>h5aopen_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo27">H5A</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5aopen_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Opens an attribute for an object specified by object
+ identifier and attribute name
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> obj_id - Identifer for object to which attribute is attached
+ attr_name - Name of attribute to open
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> attr_id - attribute identifier
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> aapl_id - Attribute access property list
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ January, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5aopen_f</strong><span class="sign">(</span>obj_id<span class="sign">,</span> attr_name<span class="sign">,</span> attr_id<span class="sign">,</span> hdferr<span class="sign">,</span> aapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_id <span class="sign">!</span> Object identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> attr_name <span class="sign">!</span> Attribute name
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> attr_id <span class="sign">!</span> Attribute identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> Success<span class="sign">:</span> 0
+ <span class="sign">!</span> Failure<span class="sign">:</span> <span class="sign">-</span>1
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> aapl_id <span class="sign">!</span> Attribute access property list
+</pre>
+
+<hr />
+<a name="H5A2fh5aopen5fidx5ff"></a>
+<a name="robo106"></a><h2>h5aopen_idx_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo27">H5A</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5aopen_idx_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Opens the attribute specified by its index.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> obj_id - identifier of a group, dataset, or named
+ datatype an attribute to be attached to
+ index - index of the attribute to open (zero-based)
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> attr_id - attribute identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces are added for
+ called C functions (it is needed for Windows
+ port). February 27, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5aopen_idx_f</strong><span class="sign">(</span>obj_id<span class="sign">,</span> index<span class="sign">,</span> attr_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_id <span class="sign">!</span> Object identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> index <span class="sign">!</span> Attribute index
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> attr_id <span class="sign">!</span> Attribute identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5A2fh5aopen5fname5ff"></a>
+<a name="robo107"></a><h2>h5aopen_name_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo27">H5A</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5aopen_name_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Opens an attribute specified by name.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> obj_id - identifier of a group, dataset, or named
+ datatype atttribute to be attached to
+ name - attribute name
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> attr_id - attribute identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces are added for
+ called C functions (it is needed for Windows
+ port). February 27, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5aopen_name_f</strong><span class="sign">(</span>obj_id<span class="sign">,</span> name<span class="sign">,</span> attr_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_id <span class="sign">!</span> Object identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Attribute name
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> attr_id <span class="sign">!</span> Attribute identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5A2fh5arename5fby5fname5ff"></a>
+<a name="robo109"></a><h2>h5arename_by_name_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo27">H5A</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5arename_by_name_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Renames an attribute
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - Location or object identifier; may be dataset or group
+ obj_name - Name of object, relative to location,
+ whose attribute is to be renamed
+ old_attr_name - Prior attribute name
+ new_attr_name - New attribute name
+ lapl_id - Link access property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ January, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5arename_by_name_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> obj_name<span class="sign">,</span> old_attr_name<span class="sign">,</span> new_attr_name<span class="sign">,</span> <span class="sign">&amp;</span>
+ hdferr<span class="sign">,</span> lapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> Object identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_name <span class="sign">!</span> Name of object<span class="sign">,</span> relative to location<span class="sign">,</span>
+ <span class="sign">!</span> whose attribute is to be renamed
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> old_attr_name <span class="sign">!</span> Prior attribute name
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> new_attr_name <span class="sign">!</span> New attribute name
+
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lapl_id <span class="sign">!</span> Link access property list identifier
+</pre>
+
+<hr />
+<a name="H5A2fh5arename5ff"></a>
+<a name="robo110"></a><h2>h5arename_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo27">H5A</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5arename_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Renames an attribute
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - Location or object identifier; may be dataset or group
+ old_attr_name - Prior attribute name
+ new_attr_name - New attribute name
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ January, 2008
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> N/A
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5arename_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> old_attr_name<span class="sign">,</span> new_attr_name<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> Object identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> old_attr_name <span class="sign">!</span> Prior attribute name
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> new_attr_name <span class="sign">!</span> New attribute name
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Aff.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Df_c.html b/fortran/doc/DevelGuide/src/H5Df_c.html
new file mode 100644
index 0000000..1e163f2
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Df_c.html
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Df.c</title>
+<!-- Source: ./src/H5Df.c -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="H5Df2fH5Df"></a>
+<a name="robo34"></a><h2>H5Df</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains C stubs for <a href="./H5Dff_f90.html#robo31">H5D</a> Fortran APIs
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Df.c on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Dff_F03_f90.html b/fortran/doc/DevelGuide/src/H5Dff_F03_f90.html
new file mode 100644
index 0000000..0bb4173
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Dff_F03_f90.html
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Dff_F03.f90</title>
+<!-- Source: ./src/H5Dff_F03.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5D2028F0329"></a>
+<a name="robo32"></a><h2>H5D (F03)</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> H5D_PROVISIONAL
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains Fortran 90 and Fortran 2003 interfaces for <a href="./H5Dff_f90.html#robo31">H5D</a> functions.
+ It contains the same functions as H5Dff_DEPRECIATE.f90 but includes the
+ Fortran 2003 functions and the interface listings. This file will be compiled
+ instead of H5Dff_DEPRECIATE.f90 if Fortran 2003 functions are enabled.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> (1) The maximum rank of an array allowed in Fortran is 7, therefore
+ we only provide an interface for arrays up to and including rank 7.
+
+ (2) Unfortunately we are using a generic interface and one of the factors
+ used in determining the proper routine to select is that of the array
+ rank being passed. Therefore, we can not create just one subroutine for
+ each array type (integer, real, etc...) and use a
+ rank 1 array of assumed size to handle multiple ranks, i.e.
+ (i.e. integer, dimension(*) :: ... )
+ (i.e. real , dimension(*) :: ... ) etc...
+
+ (3) Could not place the USE ISO_C_BINDING in the module header because it may
+ conflict with the USE ISO_C_BINDING included in the user's program. Moved
+ the statement instead to each subroutine.
+
+
+ (4) C_LOC and character strings according to the Fortran 2003 standard:
+
+ 15.1.2.5 C_LOC(X)
+
+ Argument. X shall either
+
+ (A) have interoperable type and type parameters and be
+ (a) a variable that has the TARGET attribute and is interoperable,
+ (b) an allocated allocatable variable that has the TARGET attribute
+ and is not an array of zero size, or
+ (c) an associated scalar pointer, or
+ (B) be a nonpolymorphic scalar, have no length type parameters, and be
+ (a) a nonallocatable, nonpointer variable that has the TARGET attribute,
+ (b) an allocated allocatable variable that has the TARGET attribute, or
+ (c) an associated pointer.
+
+ - When X is a character, for interoperability the standard is:
+
+ 15.2.1 Interoperability of intrinsic types
+
+ ...if the type is character, interoperability also requires that the length type parameter
+ be omitted or be specified by an initialization expression whose value is one.
+
+ THEREFORE compilers that have not extended the standard require the
+ argument in C_LOC to be of the variant:
+
+ CHARACTER(LEN=1), TARGET :: chr
+ or
+ CHARACTER, TARGET :: chr
+ (B)
+ *** IMPORTANT ***
+ If you add a new <a href="./H5Dff_f90.html#robo31">H5D</a> function you must add the function name to the
+ Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+ This is needed for Windows based operating systems.
+</pre>
+
+<hr />
+<a name="H5D2fh5dvlen5freclaim"></a>
+<a name="robo127"></a><h2>h5dvlen_reclaim</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="./H5Dff_f90.html#robo31">H5D</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5dvlen_reclaim</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Reclaims VL datatype memory buffers.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - Identifier of the datatype.
+ space_id - Identifier of the dataspace.
+ plist_id - Identifier of the property list used to create the buffer.
+ buf - Pointer to the buffer to be reclaimed.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ January 11, 2011
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE H5Dvlen_reclaim_f<span class="sign">(</span>type_id<span class="sign">,</span> space_id<span class="sign">,</span> plist_id<span class="sign">,</span> buf<span class="sign">,</span> hdferr<span class="sign">)</span>
+
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Identifier of the datatype<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Identifier of the dataspace<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id <span class="sign">!</span> Identifier of the property list used to create the buffer<span class="sign">.</span>
+ TYPE<span class="sign">(</span>C_PTR<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>INOUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> buf <span class="sign">!</span> Pointer to the buffer to be reclaimed<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">.</span>
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Dff_F03.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Dff_F90_f90.html b/fortran/doc/DevelGuide/src/H5Dff_F90_f90.html
new file mode 100644
index 0000000..afebdd8
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Dff_F90_f90.html
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Dff_F90.f90</title>
+<!-- Source: ./src/H5Dff_F90.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5D2028F9029"></a>
+<a name="robo33"></a><h2>H5D (F90)</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> H5D_PROVISIONAL
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains Fortran 90 interfaces for <a href="./H5Dff_f90.html#robo31">H5D</a> functions. It contains
+ the same functions as <a href="./H5Dff_F03_f90.html#robo_top_of_doc">H5Dff_F03.f90</a> but excludes the Fortran 2003 functions
+ and the interface listings. This file will be compiled instead of <a href="./H5Dff_F03_f90.html#robo_top_of_doc">H5Dff_F03.f90</a>
+ if Fortran 2003 functions are not enabled.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> (1) The maximum rank of an array allowed in Fortran is 7, therefore
+ we only provide an interface for arrays up to and including rank 7.
+
+ (2) Unfortunately we are using a generic interface and one of the factors
+ used in determining the proper routine to select is that of the array
+ rank being passed, therefore we can not create just one subroutine for
+ each array type (integer, real, etc...) of various ranks and then use a
+ rank 1 array of assumed size in the just one subroutine,
+ (i.e. integer, dimension(*) :: ... )
+ (i.e. real , dimension(*) :: ... ) etc...
+
+ (3)
+ *** IMPORTANT ***
+ If you add a new <a href="./H5Dff_f90.html#robo31">H5D</a> function you must add the function name to the
+ Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+ This is needed for Windows based operating systems.
+</pre>
+
+<hr />
+<a name="H5D2fh5dread5ff"></a>
+<a name="robo124"></a><h2>h5dread_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="./H5Dff_f90.html#robo31">H5D</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5dread_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Reads raw data from the specified dataset into buf,
+ converting from file datatype and dataspace to memory
+ datatype and dataspace.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> dset_id - dataset identifier
+ mem_type_id - memory type identifier
+ dims - 1-dim array of size 7; dims(k) has the size
+ of k-th dimension of the buf array
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> buf - buffer to read data in
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> mem_space_id - memory dataspace identifier
+ file_space_id - file dataspace identifier
+ xfer_prp - trasfer property list identifier
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+
+ dims parameter was added to make code portable;
+ n parameter was replaced with dims parameter in
+ the h5dwrite_reference_obj and h5dwrite_reference_dsetreg
+ functions. April 2, 2001
+</pre>
+<p class="item_name">NOTES</p>
+<pre> This function is overloaded to read INTEGER,
+ REAL, DOUBLE PRECISION and CHARACTER buffers
+ up to 7 dimensions, and one dimensional buffers
+ of the TYPE(hobj_ref_t_f) and TYPE(hdset_reg_ref_t_f) types.
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Dff_F90.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Dff_f90.html b/fortran/doc/DevelGuide/src/H5Dff_f90.html
new file mode 100644
index 0000000..5444a93
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Dff_f90.html
@@ -0,0 +1,506 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Dff.f90</title>
+<!-- Source: ./src/H5Dff.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5D"></a>
+<a name="robo31"></a><h2>H5D</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> MODULE <strong>H5D</strong>
+</pre>
+<p class="item_name">FILE</p>
+<pre> fortran/src/<a href="#robo_top_of_doc">H5Dff.f90</a>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains Fortran interfaces for <strong>H5D</strong> functions. It includes
+ all the functions that are independent on whether the Fortran 2003 functions
+ are enabled or disabled.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> *** IMPORTANT ***
+ If you add a new <strong>H5D</strong> function you must add the function name to the
+ Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+ This is needed for Windows based operating systems.
+</pre>
+
+<hr />
+<a name="H5D2fh5dclose5ff"></a>
+<a name="robo113"></a><h2>h5dclose_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo31">H5D</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5dclose_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Closes a dataset.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> dset_id - dataset identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5dclose_f</strong><span class="sign">(</span>dset_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dset_id <span class="sign">!</span> Dataset identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5D2fh5dcreate5fanon5ff"></a>
+<a name="robo114"></a><h2>h5dcreate_anon_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo31">H5D</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5dcreate_anon_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates a dataset in a file without linking it into the file structure
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - Identifier of the file or group within which to create the dataset.
+ type_id - Identifier of the datatype to use when creating the dataset.
+ space_id - Identifier of the dataspace to use when creating the dataset.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> dset_id - dataset identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> dcpl_id - Dataset creation property list identifier.
+ dapl_id - Dataset access property list identifier.
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February 11, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5dcreate_anon_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> type_id<span class="sign">,</span> space_id<span class="sign">,</span> dset_id<span class="sign">,</span> hdferr<span class="sign">,</span> dcpl_id<span class="sign">,</span> dapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> File or group identifier<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataspace identifier<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dset_id <span class="sign">!</span> Dataset identifier<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dcpl_id <span class="sign">!</span> Dataset creation property list identifier<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dapl_id <span class="sign">!</span> Dataset access property list identifier<span class="sign">.</span>
+</pre>
+
+<hr />
+<a name="H5D2fh5dcreate5ff"></a>
+<a name="robo115"></a><h2>h5dcreate_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo31">H5D</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5dcreate_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates a dataset at the specified location
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - file or group identifier
+ name - dataset name
+ type_id - dataset datatype identifier
+ space_id - dataset dataspace identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> dset_id - dataset identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> creation_prp - Dataset creation property list
+ lcpl_id - Link creation property list
+ dapl_id - Dataset access property list
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> - Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+
+ - Added version's 1.8 new optional parameters
+ February, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5dcreate_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> name<span class="sign">,</span> type_id<span class="sign">,</span> space_id<span class="sign">,</span> dset_id<span class="sign">,</span> <span class="sign">&amp;</span>
+ hdferr<span class="sign">,</span> dcpl_id<span class="sign">,</span> lcpl_id<span class="sign">,</span> dapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> File or group identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of the dataset
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataspace identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dset_id <span class="sign">!</span> Dataset identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5D2fh5dget5faccess5fplist5ff"></a>
+<a name="robo116"></a><h2>h5dget_access_plist_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo31">H5D</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5dget_access_plist_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns a copy of the dataset creation property list.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> dset_id - Dataset identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> plist_id - Dataset access property list identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ April 13, 2009
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source">SUBROUTINE <strong>h5dget_access_plist_f</strong><span class="sign">(</span>dset_id<span class="sign">,</span> plist_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dset_id
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id
+ INTEGER <span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr
+</pre>
+
+<hr />
+<a name="H5D2fh5dget5fcreate5fplist5ff"></a>
+<a name="robo117"></a><h2>h5dget_create_plist_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo31">H5D</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5dget_create_plist_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns an identifier for a copy of the dataset creation
+ property list for a dataset.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> dataset_id - dataset identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> plist_id - creation property list identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5dget_create_plist_f</strong><span class="sign">(</span>dataset_id<span class="sign">,</span> plist_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dataset_id <span class="sign">!</span> Dataset identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id <span class="sign">!</span> Dataset creation
+ <span class="sign">!</span> property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5D2fh5dget5fspace5ff"></a>
+<a name="robo118"></a><h2>h5dget_space_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo31">H5D</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5dget_space_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns an identifier for a copy of the dataspace for a
+ dataset.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> dataset_id - dataset identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> dataspace_id - dataspace identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5dget_space_f</strong><span class="sign">(</span>dataset_id<span class="sign">,</span> dataspace_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dataset_id <span class="sign">!</span> Dataset identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dataspace_id <span class="sign">!</span> Dataspace identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5D2fh5dget5fspace5fstatus5ff"></a>
+<a name="robo119"></a><h2>h5dget_space_status_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo31">H5D</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5dget_space_status_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns the status of data space allocation.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> dset_id - dataset identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> flag - status; may have one of the following values:
+ H5D_SPACE_STS_ERROR_F
+ H5D_SPACE_STS_NOT_ALLOCATED_F
+ H5D_SPACE_STS_PART_ALLOCATED_F
+ H5D_SPACE_STS_ALLOCATED_F
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ March 12, 2003
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5dget_space_status_f</strong><span class="sign">(</span>dset_id<span class="sign">,</span> flag<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dset_id <span class="sign">!</span> Dataspace identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> flag <span class="sign">!</span> Memory buffer to fill in
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5D2fh5dget5fstorage5fsize5ff"></a>
+<a name="robo120"></a><h2>h5dget_storage_size_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo31">H5D</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5dget_storage_size_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns the amount of storage requires by a dataset
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> dataset_id - dataset identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> size - datastorage size
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 15, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5dget_storage_size_f</strong><span class="sign">(</span>dataset_id<span class="sign">,</span> size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dataset_id <span class="sign">!</span> Dataset identifier
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Amount of storage
+ <span class="sign">!</span> allocated <span class="keyword">for</span> dataset
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5D2fh5dget5ftype5ff"></a>
+<a name="robo121"></a><h2>h5dget_type_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo31">H5D</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5dget_type_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns an identifier for a copy of the datatype for a
+ dataset.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> dataset_id - dataset identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> datatype_id - dataspace identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+</pre>
+<p class="item_name">NOTES</p>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5dget_type_f</strong><span class="sign">(</span>dataset_id<span class="sign">,</span> datatype_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dataset_id <span class="sign">!</span> Dataset identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> datatype_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5D2fh5dopen5ff"></a>
+<a name="robo123"></a><h2>h5dopen_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo31">H5D</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5dopen_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Opens an existing dataset.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - file or group identifier
+ name - dataset name
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> dset_id - dataset identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> dapl_id - Dataset access property list
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> -Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+
+ -Added 1.8 (optional) parameter dapl_id
+ February, 2008, M. Scot Breitenfeld
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5dopen_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> name<span class="sign">,</span> dset_id<span class="sign">,</span> hdferr<span class="sign">,</span> dapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> File or group identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of the dataset
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dset_id <span class="sign">!</span> Dataset identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dapl_id <span class="sign">!</span> Dataset access property list
+</pre>
+
+<hr />
+<a name="H5D2fh5dset5fextent"></a>
+<a name="robo125"></a><h2>h5dset_extent</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo31">H5D</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5dset_extent</strong> (instead of obsolete name: h5dextend_f)
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Extends a dataset with unlimited dimension.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> dataset_id - dataset identifier
+ size - array containing the new magnitude of
+ each dimension
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+
+ Changed name from the now obsolete h5dextend_f
+ to h5dset_extent_f. Provided interface to old name
+ for backward compatability. -MSB- March 14, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5dset_extent_f<span class="sign">(</span>dataset_id<span class="sign">,</span> size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dataset_id <span class="sign">!</span> Dataset identifier
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> DIMENSION<span class="comment">(*), INTENT(IN) :: size
+ ! Array containing
+ ! dimensions' sizes
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+</pre>
+
+<hr />
+<a name="H5D2fh5dvlen5fget5fmax5flen5ff"></a>
+<a name="robo126"></a><h2>h5dvlen_get_max_len_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo31">H5D</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5dvlen_get_max_len_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns maximum length of the VL array elements
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> dataset_id - dataset identifier
+ type_id - datatype identifier
+ space_id - dataspace identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> size - buffer size
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> NONE
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 15, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5dvlen_get_max_len_f</strong><span class="sign">(</span>dataset_id<span class="sign">,</span> type_id<span class="sign">,</span> space_id<span class="sign">,</span> len<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dataset_id <span class="sign">!</span> Dataset identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataspace identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> len <span class="sign">!</span> Maximum length of the element
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Dff.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Ef_c.html b/fortran/doc/DevelGuide/src/H5Ef_c.html
new file mode 100644
index 0000000..79b7914
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Ef_c.html
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Ef.c</title>
+<!-- Source: ./src/H5Ef.c -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="H5Ef2fH5Ef"></a>
+<a name="robo38"></a><h2>H5Ef</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains C stubs for <a href="./H5Eff_f90.html#robo35">H5E</a> Fortran APIs
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Ef.c on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Eff_f90.html b/fortran/doc/DevelGuide/src/H5Eff_f90.html
new file mode 100644
index 0000000..7eb95e6
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Eff_f90.html
@@ -0,0 +1,197 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Eff.f90</title>
+<!-- Source: ./src/H5Eff.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5E"></a>
+<a name="robo35"></a><h2>H5E</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> MODULE <strong>H5E</strong>
+</pre>
+<p class="item_name">FILE</p>
+<pre> fortran/src/<a href="#robo_top_of_doc">H5Eff.f90</a>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This Module contains Fortran interfaces for <strong>H5E</strong> functions.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> *** IMPORTANT ***
+ If you add a new <strong>H5E</strong> function to the module you must add the function name
+ to the Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+ This is needed for Windows based operating systems.
+</pre>
+
+<hr />
+<a name="H5E2fh5eclear5ff"></a>
+<a name="robo128"></a><h2>h5eclear_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo35">H5E</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5eclear_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Clears the error stack for the current thread.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> estack_id - Error Stack id
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). April 6, 2001
+
+ Added optional error stack identifier in order to bring
+ the function in line with the h5eclear2 routine.
+ MSB, July 9, 2009
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5eclear_f</strong><span class="sign">(</span>hdferr<span class="sign">,</span> estack_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> estack_id
+</pre>
+
+<hr />
+<a name="H5E2fh5eget5fmajor5ff"></a>
+<a name="robo130"></a><h2>h5eget_major_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo35">H5E</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5eget_major_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns a character string describing an error specified
+ by a major error number.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> error_no - major error number
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> name - character string describing the error
+ namelen - number of characters in the name buffer
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). April 6, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5eget_major_f</strong><span class="sign">(</span>error_no<span class="sign">,</span> name<span class="sign">,</span> namelen<span class="sign">,</span> hdferr<span class="sign">)</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> error_no <span class="sign">!</span> Major error number
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Character string describing
+ <span class="sign">!</span> the error<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> namelen <span class="sign">!</span> Anticipated number of characters
+ <span class="sign">!</span> in name<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5E2fh5eget5fminor5ff"></a>
+<a name="robo131"></a><h2>h5eget_minor_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo35">H5E</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5eget_minor_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns a character string describing an error specified
+ by a minor error number.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> error_no - minor error number
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> name - character string describing the error
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). April 6, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5eget_minor_f</strong><span class="sign">(</span>error_no<span class="sign">,</span> name<span class="sign">,</span> hdferr<span class="sign">)</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> error_no <span class="sign">!</span> Major error number
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Character string describing
+ <span class="sign">!</span> the error
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5E2fh5eprint5ff"></a>
+<a name="robo132"></a><h2>h5eprint_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo35">H5E</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5eprint_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Prints the error stack in a default manner.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> name - name of the file that contains print output
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). April 6, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5eprint_f</strong><span class="sign">(</span>hdferr<span class="sign">,</span> name<span class="sign">)</span>
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> File name
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Eff.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5FDmpiof_c.html b/fortran/doc/DevelGuide/src/H5FDmpiof_c.html
new file mode 100644
index 0000000..74143d2
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5FDmpiof_c.html
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5FDmpiof.c</title>
+<!-- Source: ./src/H5FDmpiof.c -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="H5FDmpiof2fH5FDmpiof"></a>
+<a name="robo42"></a><h2>H5FDmpiof</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains C stubs for Parallel Fortran APIs
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5FDmpiof.c on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5FDmpioff_f90.html b/fortran/doc/DevelGuide/src/H5FDmpioff_f90.html
new file mode 100644
index 0000000..473b5db
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5FDmpioff_f90.html
@@ -0,0 +1,253 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5FDmpioff.f90</title>
+<!-- Source: ./src/H5FDmpioff.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5FDMPIO"></a>
+<a name="robo41"></a><h2>H5FDMPIO</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> MODULE <strong>H5FDMPIO</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains Fortran interfaces for H5P functions needed by
+ parallel MPI programs.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> *** IMPORTANT ***
+ If you add a new H5P function you must add the function name to the
+ Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+ This is needed for Windows based operating systems.
+</pre>
+
+<hr />
+<a name="H5FDMPIO2fh5pget5fdxpl5fmpio5ff"></a>
+<a name="robo231"></a><h2>h5pget_dxpl_mpio_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo41">H5FDMPIO</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_dxpl_mpio_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns the data transfer mode.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - data transfer property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> data_xfer_mode- transfer mode; possible values are:
+ H5FD_MPIO_INDEPENDENT_F
+ H5FD_MPIO_COLLECTIVE_F
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ November, 2000
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_dxpl_mpio_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> data_xfer_mode<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> data_xfer_mode <span class="sign">!</span> Data transfer mode<span class="sign">.</span> Possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5FD_MPIO_INDEPENDENT_F
+ <span class="sign">!</span> H5FD_MPIO_COLLECTIVE_F
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5FDMPIO2fh5pget5ffapl5fmpio5ff"></a>
+<a name="robo239"></a><h2>h5pget_fapl_mpio_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo41">H5FDMPIO</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_fapl_mpio_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns MPI communicator information.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file access property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> comm - MPI-2 communicator
+ info - MPI-2 info object
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ November, 2000
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_fapl_mpio_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> comm<span class="sign">,</span> info<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> comm <span class="sign">!</span> buffer to <span class="keyword">return</span> communicator
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> info <span class="sign">!</span> buffer to <span class="keyword">return</span> info object
+ <span class="sign">!</span> as defined in MPI_FILE_OPEN of MPI<span class="sign">-</span>2
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5FDMPIO2fh5pget5ffapl5fmpiposix5ff"></a>
+<a name="robo240"></a><h2>h5pget_fapl_mpiposix_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo41">H5FDMPIO</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_fapl_mpiposix_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns MPI communicator information.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file access property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> comm - MPI-2 communicator
+ use_gpfs - flag to use GPFS hints
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ May 6, 2003
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_fapl_mpiposix_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> comm<span class="sign">,</span> use_gpfs<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> comm <span class="sign">!</span> Buffer to <span class="keyword">return</span> communicator
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> use_gpfs
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5FDMPIO2fh5pset5fdxpl5fmpio5ff"></a>
+<a name="robo314"></a><h2>h5pset_dxpl_mpio_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo41">H5FDMPIO</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_dxpl_mpio_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets data transfer mode.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - data transfer property list identifier
+ data_xfer_mode - transfer mode; possible values are:
+ H5FD_MPIO_INDEPENDENT_F
+ H5FD_MPIO_COLLECTIVE_F
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ November, 2000
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_dxpl_mpio_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> data_xfer_mode<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> data_xfer_mode <span class="sign">!</span> Data transfer mode<span class="sign">.</span> Possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5FD_MPIO_INDEPENDENT_F
+ <span class="sign">!</span> H5FD_MPIO_COLLECTIVE_F
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5FDMPIO2fh5pset5ffapl5fmpio5ff"></a>
+<a name="robo320"></a><h2>h5pset_fapl_mpio_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo41">H5FDMPIO</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_fapl_mpio_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Stores MPI IO communicator information to the file
+ access property list.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file access property list identifier
+ comm - MPI-2 communicator
+ info - MPI-2 info object
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ November, 2000
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_fapl_mpio_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> comm<span class="sign">,</span> info<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> comm <span class="sign">!</span> MPI communicator to be used <span class="keyword">for</span> file open
+ <span class="sign">!</span> as defined in MPI_FILE_OPEN of MPI<span class="sign">-</span>2
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> info <span class="sign">!</span> MPI info object to be used <span class="keyword">for</span> file open
+ <span class="sign">!</span> as defined in MPI_FILE_OPEN of MPI<span class="sign">-</span>2
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5FDMPIO2fh5pset5ffapl5fmpiposix5ff"></a>
+<a name="robo321"></a><h2>h5pset_fapl_mpiposix_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo41">H5FDMPIO</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_fapl_mpiposix_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Stores MPI IO communicator information to the file
+ access property list.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file access property list identifier
+ comm - MPI-2 communicator
+ use_gpfs - logical flag to use the GPFS hints
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ May 6, 2003
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_fapl_mpiposix_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> comm<span class="sign">,</span> use_gpfs<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> comm <span class="sign">!</span> MPI communicator to be used <span class="keyword">for</span> file open
+ <span class="sign">!</span> as defined in MPI_FILE_OPEN of MPI<span class="sign">-</span>2
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> use_gpfs
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5FDmpioff.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Ff_c.html b/fortran/doc/DevelGuide/src/H5Ff_c.html
new file mode 100644
index 0000000..c91a62d
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Ff_c.html
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Ff.c</title>
+<!-- Source: ./src/H5Ff.c -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="H5Ff2fH5Ff"></a>
+<a name="robo43"></a><h2>H5Ff</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains C stubs for <a href="./H5Fff_f90.html#robo39">H5F</a> Fortran APIs
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Ff.c on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Fff_f90.html b/fortran/doc/DevelGuide/src/H5Fff_f90.html
new file mode 100644
index 0000000..b0164c9
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Fff_f90.html
@@ -0,0 +1,653 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Fff.f90</title>
+<!-- Source: ./src/H5Fff.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5F"></a>
+<a name="robo39"></a><h2>H5F</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> MODULE <strong>H5F</strong>
+</pre>
+<p class="item_name">FILE</p>
+<pre> <a href="#robo_top_of_doc">H5Fff.f90</a>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains Fortran interfaces for <strong>H5F</strong> functions.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> *** IMPORTANT ***
+ If you add a new <strong>H5F</strong> function you must add the function name to the
+ Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+ This is needed for Windows based operating systems.
+</pre>
+
+<hr />
+<a name="H5F2fh5fclose5ff"></a>
+<a name="robo135"></a><h2>h5fclose_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo39">H5F</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5fclose_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Closes <a href="./HDF5_f90.html#robo76">HDF5</a> file.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> file_id - file identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5fclose_f</strong><span class="sign">(</span>file_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> file_id <span class="sign">!</span> File identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5F2fh5fcreate5ff"></a>
+<a name="robo136"></a><h2>h5fcreate_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo39">H5F</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5fcreate_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates <a href="./HDF5_f90.html#robo76">HDF5</a> files.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> name - name of the file to create
+ access_flags - File access flags. Allowable values are:
+ H5F_ACC_TRUNC_F
+ H5F_ACC_EXCL_F
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> file_id - file identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> creation_prp - file creation property list identifier
+ access_prp - file access property list identifier
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5fcreate_f</strong><span class="sign">(</span>name<span class="sign">,</span> access_flags<span class="sign">,</span> file_id<span class="sign">,</span> hdferr<span class="sign">,</span> <span class="sign">&amp;</span>
+ creation_prp<span class="sign">,</span> access_prp<span class="sign">)</span>
+ IMPLICIT NONE
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of the file
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> access_flags <span class="sign">!</span> File access flags
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> file_id <span class="sign">!</span> File identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> creation_prp
+ <span class="sign">!</span> File creation propertly
+ <span class="sign">!</span> list identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> access_prp
+ <span class="sign">!</span> File access property list
+ <span class="sign">!</span> identifier
+</pre>
+
+<hr />
+<a name="H5F2fh5fflush5ff"></a>
+<a name="robo137"></a><h2>h5fflush_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo39">H5F</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5fflush_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Flushes all buffers associated WITH a file to disk
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> object_id - identifier of object used to identify the file.
+ scope - specifies the scope of the flushing action.
+ Possible values are:
+ H5F_SCOPE_GLOBAL_F
+ H5F_SCOPE_LOCAL_F
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> creation_prp - file creation property list identifier
+ access_prp - file access property list identifier
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5fflush_f</strong><span class="sign">(</span>object_id<span class="sign">,</span> scope<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> object_id <span class="sign">!</span>identifier <span class="keyword">for</span> any object
+ <span class="sign">!</span>associate with a file<span class="sign">,</span>
+ <span class="sign">!</span>including the file itself<span class="sign">,</span>
+ <span class="sign">!</span>a dataset<span class="sign">,</span> a group<span class="sign">,</span> an
+ <span class="sign">!</span>attribute<span class="sign">,</span> or a named
+ <span class="sign">!</span>data type
+
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> scope <span class="sign">!</span>scope of the flushing
+ <span class="sign">!</span>action<span class="sign">,</span> possible values
+ <span class="sign">!</span>are<span class="sign">:</span> H5F_SCOPE_GLOBAL_F
+ <span class="sign">!</span> which flushes the entire
+ <span class="sign">!</span>virtual file<span class="sign">,</span>
+ <span class="sign">!</span>and H5F_SCOPE_LOCAL_F
+ <span class="sign">!</span>which flushes only the
+ <span class="sign">!</span>specified file<span class="sign">.</span>
+
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5F2fh5fget5faccess5fplist5ff"></a>
+<a name="robo138"></a><h2>h5fget_access_plist_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo39">H5F</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5fget_access_plist_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns a file access property list identifier.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> file_id - identifier of a file to creation property list of
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> access_id - access property list identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5fget_access_plist_f</strong><span class="sign">(</span>file_id<span class="sign">,</span> access_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> file_id <span class="sign">!</span> File identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> access_id <span class="sign">!</span> File access property
+ <span class="sign">!</span> list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5F2fh5fget5fcreate5fplist5ff"></a>
+<a name="robo139"></a><h2>h5fget_create_plist_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo39">H5F</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5fget_create_plist_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns a file creation property list identifier.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> file_id - identifier of a file to creation property list of
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> prop_id - creation property list identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5fget_create_plist_f</strong><span class="sign">(</span>file_id<span class="sign">,</span> prop_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> file_id <span class="sign">!</span> File identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prop_id <span class="sign">!</span> File creation property
+ <span class="sign">!</span> list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5F2fh5fget5ffilesize5ff"></a>
+<a name="robo140"></a><h2>h5fget_filesize_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo39">H5F</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5fget_filesize_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves the file size of the <a href="./HDF5_f90.html#robo76">HDF5</a> file.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> file_id - file identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> size - file size
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ July 7, 2004
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5fget_filesize_f</strong><span class="sign">(</span>file_id<span class="sign">,</span> size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> file_id <span class="sign">!</span> file identifier
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Size of the file
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span> 0 on success<span class="sign">,</span>
+ <span class="sign">!</span> <span class="sign">-</span>1 <span class="keyword">if</span> fail
+</pre>
+
+<hr />
+<a name="H5F2fh5fget5ffreespace5ff"></a>
+<a name="robo141"></a><h2>h5fget_freespace_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo39">H5F</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5fget_freespace_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Get amount of free space within a file
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> file_id - file identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> free_space - amount of free space in file
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Quincey Koziol
+ October 7, 2003
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5fget_freespace_f</strong><span class="sign">(</span>file_id<span class="sign">,</span> free_space<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> file_id <span class="sign">!</span> File identifier
+ INTEGER<span class="sign">(</span>HSSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> free_space
+ <span class="sign">!</span> amount of free space in file
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5F2fh5fget5fname5ff"></a>
+<a name="robo142"></a><h2>h5fget_name_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo39">H5F</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5fget_name_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets the name of the file from the object identifier
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> obj_id - object identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> buf - buffer to store the read name
+ size - actual size of the name
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ July 6, 2004
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5fget_name_f</strong><span class="sign">(</span>obj_id<span class="sign">,</span> buf<span class="sign">,</span> size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_id <span class="sign">!</span> Object identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>INOUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> buf
+ <span class="sign">!</span> Buffer to hold file name
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Size of the file name
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span> 0 on success<span class="sign">,</span>
+ <span class="sign">!</span> <span class="sign">-</span>1 <span class="keyword">if</span> fail
+</pre>
+
+<hr />
+<a name="H5F2fh5fget5fobj5fcount5ff"></a>
+<a name="robo143"></a><h2>h5fget_obj_count_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo39">H5F</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5fget_obj_count_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets number of the objects open within a file
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> file_id - file identifier
+ obj_type - type of the object; possible values are:
+ H5F_OBJ_FILE_F
+ H5F_OBJ_DATASET_F
+ H5F_OBJ_GROUP_F
+ H5F_OBJ_DATATYPE_F
+ H5F_OBJ_ALL_F
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> obj_count - number of open objects
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ September 30, 2002
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Changed the type of obj_count to INTEGER(SIZE_T)
+ September 25, 2008 EIP
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5fget_obj_count_f</strong><span class="sign">(</span>file_id<span class="sign">,</span> obj_type<span class="sign">,</span> obj_count<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> file_id <span class="sign">!</span> File identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_type <span class="sign">!</span> Object type
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_count
+ <span class="sign">!</span> Number of open objects
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5F2fh5fget5fobj5fids5ff"></a>
+<a name="robo144"></a><h2>h5fget_obj_ids_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo39">H5F</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5fget_obj_ids_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Get list of open objects identifiers within a file
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> file_id - file identifier
+ obj_type - type of the object; possible values are:
+ H5F_OBJ_FILE_F
+ H5F_OBJ_DATASET_F
+ H5F_OBJ_GROUP_F
+ H5F_OBJ_DATATYPE_F
+ H5F_OBJ_ALL_F
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> obj_ids - array of open object identifiers
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> num_objs - number of open objects
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ September 30, 2002
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Added optional parameter num_objs for number of open objects
+ of the specified type and changed type of max_obj to
+ INTEGER(SIZE_T)
+ September 25, 2008 EIP
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5fget_obj_ids_f</strong><span class="sign">(</span>file_id<span class="sign">,</span> obj_type<span class="sign">,</span> max_objs<span class="sign">,</span> obj_ids<span class="sign">,</span> hdferr<span class="sign">,</span> num_objs<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> file_id <span class="sign">!</span> File identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_type <span class="sign">!</span> Object type
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> max_objs <span class="sign">!</span> Maximum <span class="sign">#</span> of objects to retrieve
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> DIMENSION<span class="comment">(*), INTENT(INOUT) :: obj_ids
+ ! Array of open objects iidentifiers
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(SIZE_T), INTENT(OUT), OPTIONAL :: num_objs ! number of open objects
+</pre>
+
+<hr />
+<a name="H5F2fh5fis5fhdf55ff"></a>
+<a name="robo145"></a><h2>h5fis_hdf5_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo39">H5F</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5fis_hdf5_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Determines whether a file is in the <a href="./HDF5_f90.html#robo76">HDF5</a> format.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> name - name of the file to check
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> status - indicates if file is and <a href="./HDF5_f90.html#robo76">HDF5</a> file
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5fis_hdf5_f</strong><span class="sign">(</span>name<span class="sign">,</span> status<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of the file
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> status <span class="sign">!</span> Indicates <span class="keyword">if</span> file
+ <span class="sign">!</span> is an <a href="./HDF5_f90.html#robo76">HDF5</a> file
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5F2fh5fmount5ff"></a>
+<a name="robo146"></a><h2>h5fmount_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo39">H5F</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5fmount_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Mounts a file.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - the identifier for of file or group in
+ which name is defined
+ name - the name of the group onto which the file
+ specified by child_id is to be mounted.
+ child_id - the identifier of the file to be mounted.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> access_prp - the identifier of the property list to be used
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5fmount_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> name<span class="sign">,</span> child_id<span class="sign">,</span> hdferr<span class="sign">,</span> access_prp<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> Identifier <span class="keyword">for</span> file or group
+ <span class="sign">!</span> in which dsetname is defined
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of the group
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> child_id <span class="sign">!</span> File identifier <span class="keyword">for</span> the
+ <span class="sign">!</span> file to be mounted
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> access_prp
+ <span class="sign">!</span> File access property list
+ <span class="sign">!</span> identifier
+</pre>
+
+<hr />
+<a name="H5F2fh5fopen5ff"></a>
+<a name="robo147"></a><h2>h5fopen_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo39">H5F</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5fopen_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Opens <a href="./HDF5_f90.html#robo76">HDF5</a> file.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> name - name of the file to acecss
+ access_flags - File access flags. Allowable values are:
+ H5F_ACC_RDWR_F
+ H5F_ACC_RDONLY_F
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> file_id - file identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> access_prp - file access property list identifier
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5fopen_f</strong><span class="sign">(</span>name<span class="sign">,</span> access_flags<span class="sign">,</span> file_id<span class="sign">,</span> hdferr<span class="sign">,</span> access_prp<span class="sign">)</span>
+ IMPLICIT NONE
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of the file
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> access_flags <span class="sign">!</span> File access flags
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> file_id <span class="sign">!</span> File identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> access_prp
+ <span class="sign">!</span> File access property list
+ <span class="sign">!</span> identifier
+</pre>
+
+<hr />
+<a name="H5F2fh5freopen5ff"></a>
+<a name="robo148"></a><h2>h5freopen_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo39">H5F</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5freopen_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Reopens <a href="./HDF5_f90.html#robo76">HDF5</a> file.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> file_id - identifier of a file for which an
+ additional identifier is required
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> ret_file_id - new file identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5freopen_f</strong><span class="sign">(</span>file_id<span class="sign">,</span> ret_file_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> file_id <span class="sign">!</span> File identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ret_file_id <span class="sign">!</span> New File identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5F2fh5funmount5ff"></a>
+<a name="robo149"></a><h2>h5funmount_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo39">H5F</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5funmount_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Unmounts a file.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - the identifier for of file or group in
+ which name is defined
+ name - the name of the mount point
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5funmount_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> name<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> Identifier <span class="keyword">for</span> file or group
+ <span class="sign">!</span> at which the specified file
+ <span class="sign">!</span> is to be unmounted
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of the mount point
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Fff.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Gf_c.html b/fortran/doc/DevelGuide/src/H5Gf_c.html
new file mode 100644
index 0000000..a71f0e8
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Gf_c.html
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Gf.c</title>
+<!-- Source: ./src/H5Gf.c -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="H5Gf2fH5Gf"></a>
+<a name="robo45"></a><h2>H5Gf</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains C stubs for <a href="./H5Gff_f90.html#robo44">H5G</a> Fortran APIs
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Gf.c on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Gff_f90.html b/fortran/doc/DevelGuide/src/H5Gff_f90.html
new file mode 100644
index 0000000..74ec2f4
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Gff_f90.html
@@ -0,0 +1,840 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Gff.f90</title>
+<!-- Source: ./src/H5Gff.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5G"></a>
+<a name="robo44"></a><h2>H5G</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> MODULE <strong>H5G</strong>
+</pre>
+<p class="item_name">FILE</p>
+<pre> fortran/src/<a href="#robo_top_of_doc">H5Gff.f90</a>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains Fortran interfaces for <strong>H5G</strong> functions.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> *** IMPORTANT ***
+ If you add a new <strong>H5G</strong> function you must add the function name to the
+ Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+ This is needed for Windows based operating systems.
+</pre>
+
+<hr />
+<a name="H5G2fh5gclose5ff"></a>
+<a name="robo151"></a><h2>h5gclose_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo44">H5G</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5gclose_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Closes the specified group.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> grp_id - group identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 5, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5gclose_f</strong><span class="sign">(</span>grp_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> grp_id <span class="sign">!</span> Group identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5G2fH5Gcreate5fanon5ff"></a>
+<a name="robo152"></a><h2>H5Gcreate_anon_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo44">H5G</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Gcreate_anon_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates a new empty group without linking it into the file structure.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - Location identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> grp_id - group identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> gcpl_id - Group creation property list identifier
+ gapl_id - Group access property list identifier
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February 15, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5Gcreate_anon_f<span class="sign">(</span>loc_id<span class="sign">,</span> grp_id<span class="sign">,</span> hdferr<span class="sign">,</span> gcpl_id<span class="sign">,</span> gapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> File or group identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> grp_id <span class="sign">!</span> Group identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> gcpl_id <span class="sign">!</span> Property list <span class="keyword">for</span> group creation
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> gapl_id <span class="sign">!</span> Property list <span class="keyword">for</span> group access
+</pre>
+
+<hr />
+<a name="H5G2fh5gcreate5ff"></a>
+<a name="robo153"></a><h2>h5gcreate_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo44">H5G</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5gcreate_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates a new group.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - location identifier
+ name - group name at the specified location
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> grp_id - group identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> size_hint - a parameter indicating the number of bytes to
+ reserve for the names that will appear in the group
+ lcpl_id - Property list for link creation
+ gcpl_id - Property list for group creation
+ gapl_id - Property list for group access
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 5, 2001
+
+ Added additional optional paramaters in 1.8
+ MSB - February 27, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5gcreate_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> name<span class="sign">,</span> grp_id<span class="sign">,</span> hdferr<span class="sign">,</span> size_hint<span class="sign">,</span> lcpl_id<span class="sign">,</span> gcpl_id<span class="sign">,</span> gapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> File or group identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of the group
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> grp_id <span class="sign">!</span> Group identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size_hint
+ <span class="sign">!</span> Parameter indicating
+ <span class="sign">!</span> the number of bytes
+ <span class="sign">!</span> to reserve <span class="keyword">for</span> the
+ <span class="sign">!</span> names that will appear
+ <span class="sign">!</span> in the group<span class="sign">.</span> Set to OBJECT_NAMELEN_DEFAULT_F
+ <span class="sign">!</span> <span class="keyword">if</span> using any of the optional
+ <span class="sign">!</span> parameters lcpl_id<span class="sign">,</span> gcpl_id<span class="sign">,</span> and<span class="sign">/</span>or gapl_id when not
+ <span class="sign">!</span> using keywords in specifying the optional parameters
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lcpl_id <span class="sign">!</span> Property list <span class="keyword">for</span> link creation
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> gcpl_id <span class="sign">!</span> Property list <span class="keyword">for</span> group creation
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> gapl_id <span class="sign">!</span> Property list <span class="keyword">for</span> group access
+</pre>
+
+<hr />
+<a name="H5G2fh5gget5fcomment5ff"></a>
+<a name="robo155"></a><h2>h5gget_comment_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo44">H5G</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5gget_comment_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves comment for specified object.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - location identifier
+ name - name of the object at specified location
+ size - size of the buffer required to hold comment
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> buffer - buffer to hold object's comment
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 5, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5gget_comment_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> name<span class="sign">,</span> size<span class="sign">,</span> buffer<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> File or group identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Current name of an object
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Maximum number of buffer
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span>size<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> buffer
+ <span class="sign">!</span> Buffer to hold a comment
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5G2fH5Gget5fcreate5fplist5ff"></a>
+<a name="robo156"></a><h2>H5Gget_create_plist_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo44">H5G</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Gget_create_plist_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets a group creation property list identifier.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> grp_id - group identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> gcpl_id - Group creation property list identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February 15, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5gget_create_plist_f<span class="sign">(</span>grp_id<span class="sign">,</span> gcpl_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> grp_id <span class="sign">!</span> Group identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> gcpl_id <span class="sign">!</span> Property list <span class="keyword">for</span> group creation
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5G2fh5gget5finfo5fby5fidx5ff"></a>
+<a name="robo157"></a><h2>h5gget_info_by_idx_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo44">H5G</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5gget_info_by_idx_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves information about a group, according to the group’s position within an index.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - File or group identifier
+ group_name - Name of group containing group for which information is to be retrieved
+ index_type - Index type
+ order - Order of the count in the index
+ n - Position in the index of the group for which information is retrieved
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> storage_type - Type of storage for links in group
+ H5G_STORAGE_TYPE_COMPACT: Compact storage
+ H5G_STORAGE_TYPE_DENSE: Indexed storage
+ H5G_STORAGE_TYPE_SYMBOL_TABLE: Symbol tables, the original <a href="./HDF5_f90.html#robo76">HDF5</a> structure
+ nlinks - Number of links in group
+ max_corder - Current maximum creation order value for group
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> lapl_id - Link access property list
+ mounted - Whether group has a file mounted on it
+</pre>
+<p class="item_name">NOTES</p>
+<pre> In C the output is defined as a structure: H5G_info_t
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February 18, 2008
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Added 'mounted' paramater
+ M. Scot Breitenfeld
+ July 16, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5gget_info_by_idx_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> group_name<span class="sign">,</span> index_type<span class="sign">,</span> order<span class="sign">,</span> n<span class="sign">,</span> <span class="sign">&amp;</span>
+ storage_type<span class="sign">,</span> nlinks<span class="sign">,</span> max_corder<span class="sign">,</span> hdferr<span class="sign">,</span> lapl_id<span class="sign">,</span> mounted<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> File or group identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> group_name <span class="sign">!</span> Name of group containing group <span class="keyword">for</span> which information is to be retrieved
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> index_type <span class="sign">!</span> Index type
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> order <span class="sign">!</span> Order of the count in the index
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> n <span class="sign">!</span> Position in the index of the group <span class="keyword">for</span> which information is retrieved
+
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> storage_type <span class="sign">!</span> Type of storage <span class="keyword">for</span> links in group<span class="sign">:</span>
+ <span class="sign">!</span> H5G_STORAGE_TYPE_COMPACT_F<span class="sign">:</span> Compact storage
+ <span class="sign">!</span> H5G_STORAGE_TYPE_DENSE_F<span class="sign">:</span> Indexed storage
+ <span class="sign">!</span> H5G_STORAGE_TYPE_SYMBOL_TABLE_F<span class="sign">:</span> Symbol tables<span class="sign">,</span> the original <a href="./HDF5_f90.html#robo76">HDF5</a> structure
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> nlinks <span class="sign">!</span> Number of links in group
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> max_corder <span class="sign">!</span> Current maximum creation order value <span class="keyword">for</span> group
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lapl_id <span class="sign">!</span> Link access property list
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span><span class="sign">,</span> OPTIONAL <span class="sign">:</span><span class="sign">:</span> mounted <span class="sign">!</span> Whether group has a file mounted on it
+</pre>
+
+<hr />
+<a name="H5G2fh5gget5finfo5fby5fname5ff"></a>
+<a name="robo158"></a><h2>h5gget_info_by_name_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo44">H5G</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5gget_info_by_name_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves information about a group.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - File or group identifier
+ group_name - Name of group containing group for which information is to be retrieved
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> storage_type - Type of storage for links in group
+ H5G_STORAGE_TYPE_COMPACT: Compact storage
+ H5G_STORAGE_TYPE_DENSE: Indexed storage
+ H5G_STORAGE_TYPE_SYMBOL_TABLE: Symbol tables, the original <a href="./HDF5_f90.html#robo76">HDF5</a> structure
+ nlinks - Number of links in group
+ max_corder - Current maximum creation order value for group
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> lapl_id - Link access property list
+ mounted - Whether group has a file mounted on it
+</pre>
+<p class="item_name">NOTES</p>
+<pre> In C the output is defined as a structure: H5G_info_t
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February 18, 2008
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Added 'mounted' paramater
+ M. Scot Breitenfeld
+ July 16, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5gget_info_by_name_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> group_name<span class="sign">,</span> <span class="sign">&amp;</span>
+ storage_type<span class="sign">,</span> nlinks<span class="sign">,</span> max_corder<span class="sign">,</span> hdferr<span class="sign">,</span> lapl_id<span class="sign">,</span> mounted<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> File or group identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> group_name <span class="sign">!</span> Name of group containing group <span class="keyword">for</span> which information is to be retrieved
+
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> storage_type <span class="sign">!</span> Type of storage <span class="keyword">for</span> links in group<span class="sign">:</span>
+ <span class="sign">!</span> H5G_STORAGE_TYPE_COMPACT_F<span class="sign">:</span> Compact storage
+ <span class="sign">!</span> H5G_STORAGE_TYPE_DENSE_F<span class="sign">:</span> Indexed storage
+ <span class="sign">!</span> H5G_STORAGE_TYPE_SYMBOL_TABLE_F<span class="sign">:</span> Symbol tables<span class="sign">,</span> the original <a href="./HDF5_f90.html#robo76">HDF5</a> structure
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> nlinks <span class="sign">!</span> Number of links in group
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> max_corder <span class="sign">!</span> Current maximum creation order value <span class="keyword">for</span> group
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lapl_id <span class="sign">!</span> Link access property list
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span><span class="sign">,</span> OPTIONAL <span class="sign">:</span><span class="sign">:</span> mounted <span class="sign">!</span> Whether group has a file mounted on it
+</pre>
+
+<hr />
+<a name="H5G2fh5gget5finfo5ff"></a>
+<a name="robo159"></a><h2>h5gget_info_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo44">H5G</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5gget_info_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves information about a group
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> group_id - Group identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> storage_type - Type of storage for links in group
+ H5G_STORAGE_TYPE_COMPACT: Compact storage
+ H5G_STORAGE_TYPE_DENSE: Indexed storage
+ H5G_STORAGE_TYPE_SYMBOL_TABLE: Symbol tables, the original <a href="./HDF5_f90.html#robo76">HDF5</a> structure
+ nlinks - Number of links in group
+ max_corder - Current maximum creation order value for group
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> mounted - Whether group has a file mounted on it
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February 15, 2008
+</pre>
+<p class="item_name">NOTES</p>
+<pre> In C the output is defined as a structure: H5G_info_t
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> - Added 'mounted' paramater
+ M. Scot Breitenfeld
+ July 16, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5gget_info_f</strong><span class="sign">(</span>group_id<span class="sign">,</span> storage_type<span class="sign">,</span> nlinks<span class="sign">,</span> max_corder<span class="sign">,</span> hdferr<span class="sign">,</span> mounted<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> group_id <span class="sign">!</span> Group identifier
+
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> storage_type <span class="sign">!</span> Type of storage <span class="keyword">for</span> links in group<span class="sign">:</span>
+ <span class="sign">!</span> H5G_STORAGE_TYPE_COMPACT_F<span class="sign">:</span> Compact storage
+ <span class="sign">!</span> H5G_STORAGE_TYPE_DENSE_F<span class="sign">:</span> Indexed storage
+ <span class="sign">!</span> H5G_STORAGE_TYPE_SYMBOL_TABLE_F<span class="sign">:</span> Symbol tables<span class="sign">,</span> the original <a href="./HDF5_f90.html#robo76">HDF5</a> structure
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> nlinks <span class="sign">!</span> Number of links in group
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> max_corder <span class="sign">!</span> Current maximum creation order value <span class="keyword">for</span> group
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span><span class="sign">,</span> OPTIONAL <span class="sign">:</span><span class="sign">:</span> mounted <span class="sign">!</span> Whether group has a file mounted on it
+</pre>
+
+<hr />
+<a name="H5G2fh5gget5flinkval5ff"></a>
+<a name="robo160"></a><h2>h5gget_linkval_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo44">H5G</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5gget_linkval_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns the name of the object that the symbolic link
+ points to.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - location identifier
+ name - symbolic link to the object whose name
+ is to be returned.
+ size - maximum number of characters to be returned
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> buffer - a buffer to hold the name of the object
+ being sought
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 5, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5gget_linkval_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> name<span class="sign">,</span> size<span class="sign">,</span> buffer<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> File or group identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Current name of an object
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Maximum number of buffer
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span>size<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> buffer
+ <span class="sign">!</span> Buffer to hold a name of
+ <span class="sign">!</span> the object symbolic link
+ <span class="sign">!</span> points to
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5G2fh5gget5fobj5finfo5fidx5ff"></a>
+<a name="robo161"></a><h2>h5gget_obj_info_idx_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo44">H5G</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5gget_obj_info_idx_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns name and type of the group member identified by
+ its index.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - location identifier
+ name - name of the group at the specified location
+ idx - object index (zero-based)
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> obj_name - object name
+ obj_type - object type
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 5, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5gget_obj_info_idx_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> name<span class="sign">,</span> idx<span class="sign">,</span> <span class="sign">&amp;</span>
+ obj_name<span class="sign">,</span> obj_type<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> File or group identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of the group
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> idx <span class="sign">!</span> Index of member object
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_name <span class="sign">!</span> Name of the object
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_type <span class="sign">!</span> Object type
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5G2fh5glink25ff"></a>
+<a name="robo162"></a><h2>h5glink2_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo44">H5G</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5glink2_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates a link of the specified type from new_name
+ to current_name. current_name and new_name are interpreted
+ releative to current and new location identifiers.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> cur_loc_id - location identifier
+ cur_name - name of the existing object if link is a
+ hard link. Can be anything for the soft link.
+ link_type - link type; possible values are:
+ H5G_LINK_HARD_F (0)
+ H5G_LINK_SOFT_F (1)
+ new_loc_id - new location identifier
+ new_name - new name for the object
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ September 25, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5glink2_f</strong><span class="sign">(</span>cur_loc_id<span class="sign">,</span> cur_name<span class="sign">,</span> link_type<span class="sign">,</span> new_loc_id<span class="sign">,</span> <span class="sign">&amp;</span>
+ new_name<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> cur_loc_id <span class="sign">!</span> File or group identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> cur_name
+ <span class="sign">!</span> Current name of an object
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> link_type <span class="sign">!</span> link type
+ <span class="sign">!</span> Possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5G_LINK_HARD_F <span class="sign">(</span>0<span class="sign">)</span> or
+ <span class="sign">!</span> H5G_LINK_SOFT_F <span class="sign">(</span>1<span class="sign">)</span>
+
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> new_loc_id <span class="sign">!</span> File or group identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> new_name <span class="sign">!</span> New name of an object
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5G2fh5glink5ff"></a>
+<a name="robo163"></a><h2>h5glink_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo44">H5G</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5glink_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates a link of the specified type from new_name
+ to current_name.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - location identifier
+ link_type - link type; possible values are:
+ H5G_LINK_HARD_F (0)
+ H5G_LINK_SOFT_F (1)
+ current_name - name of the existing object if link is a
+ hard link. Can be anything for the soft link
+ new_name - new name for the object
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 5, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5glink_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> link_type<span class="sign">,</span> current_name<span class="sign">,</span> <span class="sign">&amp;</span>
+ new_name<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> File or group identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> link_type <span class="sign">!</span> link type
+ <span class="sign">!</span> Possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5G_LINK_HARD_F <span class="sign">(</span>0<span class="sign">)</span> or
+ <span class="sign">!</span> H5G_LINK_SOFT_F <span class="sign">(</span>1<span class="sign">)</span>
+
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> current_name
+ <span class="sign">!</span> Current name of an object
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> new_name <span class="sign">!</span> New name of an object
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5G2fh5gmove25ff"></a>
+<a name="robo164"></a><h2>h5gmove2_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo44">H5G</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5gmove2_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Renames an object within an <a href="./HDF5_f90.html#robo76">HDF5</a> file.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> src_loc_id - original location identifier
+ src_name - object's name at specified original location
+ dst_loc_id - original location identifier
+ dst_name - object's new name
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ September 25, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5gmove2_f</strong><span class="sign">(</span>src_loc_id<span class="sign">,</span> src_name<span class="sign">,</span> dst_loc_id<span class="sign">,</span> dst_name<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> src_loc_id <span class="sign">!</span> File or group identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> src_name <span class="sign">!</span> Original name of an object
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dst_loc_id <span class="sign">!</span> File or group identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dst_name <span class="sign">!</span> New name of an object
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5G2fh5gmove5ff"></a>
+<a name="robo165"></a><h2>h5gmove_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo44">H5G</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5gmove_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Renames an object within an <a href="./HDF5_f90.html#robo76">HDF5</a> file.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - location identifier
+ name - object's name at specified location
+ new_name - object's new name
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 5, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5gmove_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> name<span class="sign">,</span> new_name<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> File or group identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Current name of an object
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> new_name <span class="sign">!</span> New name of an object
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5G2fh5gn5fmembers5ff"></a>
+<a name="robo166"></a><h2>h5gn_members_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo44">H5G</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5gn_members_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns the number of group members.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - location identifier
+ name - name of the group at the specified location
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> nmembers - number of group members
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 5, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5gn_members_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> name<span class="sign">,</span> nmembers<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> File or group identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of the group
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> nmembers <span class="sign">!</span> Number of members in the
+ <span class="sign">!</span> group
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5G2fh5gopen5ff"></a>
+<a name="robo167"></a><h2>h5gopen_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo44">H5G</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5gopen_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Opens an existing group.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - location identifier
+ name - name of the group to open
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> grp_id - group identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> gapl_id - Group access property list identifier
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 5, 2001
+
+ Added 1.8 (optional) parameter gapl_id
+ February, 2008 M. Scot Breitenfeld
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5gopen_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> name<span class="sign">,</span> grp_id<span class="sign">,</span> hdferr<span class="sign">,</span> gapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> File or group identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of the group
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> grp_id <span class="sign">!</span> File identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> gapl_id <span class="sign">!</span> Group access property list identifier
+</pre>
+
+<hr />
+<a name="H5G2fh5gset5fcomment5ff"></a>
+<a name="robo168"></a><h2>h5gset_comment_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo44">H5G</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5gset_comment_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets comment for specified object.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - location identifier
+ name - name of the object
+ comment - comment to set for the object
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 5, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5gset_comment_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> name<span class="sign">,</span> comment<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> File or group identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Current name of an object
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> comment <span class="sign">!</span> New name of an object
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5G2fh5gunlink5ff"></a>
+<a name="robo169"></a><h2>h5gunlink_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo44">H5G</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5gunlink_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Removes the specified name from the group graph and
+ decrements the link count for the object to which name
+ points
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - location identifier
+ name - name of the object to unlink
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 5, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5gunlink_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> name<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> File or group identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of an object
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Gff.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5If_c.html b/fortran/doc/DevelGuide/src/H5If_c.html
new file mode 100644
index 0000000..8dccce7
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5If_c.html
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5If.c</title>
+<!-- Source: ./src/H5If.c -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="H5If2fH5If"></a>
+<a name="robo48"></a><h2>H5If</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains C stubs for <a href="./H5Iff_f90.html#robo47">H5I</a> Fortran APIs
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5If.c on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Iff_f90.html b/fortran/doc/DevelGuide/src/H5Iff_f90.html
new file mode 100644
index 0000000..5987581
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Iff_f90.html
@@ -0,0 +1,304 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Iff.f90</title>
+<!-- Source: ./src/H5Iff.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5I"></a>
+<a name="robo47"></a><h2>H5I</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> MODULE <strong>H5I</strong>
+</pre>
+<p class="item_name">FILE</p>
+<pre> fortran/src/<a href="#robo_top_of_doc">H5Iff.f90</a>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains Fortran interfaces for <strong>H5I</strong> functions.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> *** IMPORTANT ***
+ If you add a new <strong>H5I</strong> function you must add the function name to the
+ Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+ This is needed for Windows based operating systems.
+</pre>
+
+<hr />
+<a name="H5I2fh5idec5fref5ff"></a>
+<a name="robo170"></a><h2>h5idec_ref_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo47">H5I</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5idec_ref_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Decrements the reference count of an ID
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> obj_id - Object identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> ref_count - Current reference count of the ID
+ hdferr: - Error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Quincey Koziol
+ December 9, 2003
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5idec_ref_f</strong><span class="sign">(</span>obj_id<span class="sign">,</span> ref_count<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_id <span class="sign">!</span> Object identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ref_count <span class="sign">!</span> Current reference count of ID
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5I2fh5iget5ffile5fid5ff"></a>
+<a name="robo171"></a><h2>h5iget_file_id_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo47">H5I</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5iget_file_id_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Obtains file identifier from the object identifier
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> obj_id - object identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> file_id - file identifier
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 23, 2004
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5iget_file_id_f</strong><span class="sign">(</span>obj_id<span class="sign">,</span> file_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_id <span class="sign">!</span> Object identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> file_id <span class="sign">!</span> File identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5I2fh5iget5fname5ff"></a>
+<a name="robo172"></a><h2>h5iget_name_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo47">H5I</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5iget_name_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets a name of an object specified by its idetifier.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> obj_id - attribute identifier
+ buf_size - size of a buffer to read name in
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> buf - buffer to read name in, name will be truncated if
+ buffer is not big enough
+ name_size - name size
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ March 12, 2003
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5iget_name_f</strong><span class="sign">(</span>obj_id<span class="sign">,</span> buf<span class="sign">,</span> buf_size<span class="sign">,</span> name_size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_id <span class="sign">!</span> Object identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> buf_size <span class="sign">!</span> Buffer size
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> buf <span class="sign">!</span> Buffer to hold object name
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name_size <span class="sign">!</span> Actual name size
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 <span class="keyword">if</span> successful<span class="sign">,</span>
+ <span class="sign">!</span> <span class="sign">-</span>1 <span class="keyword">if</span> fail
+</pre>
+
+<hr />
+<a name="H5I2fh5iget5fref5ff"></a>
+<a name="robo173"></a><h2>h5iget_ref_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo47">H5I</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5iget_ref_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves the reference count of an ID
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> obj_id - object identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> ref_count - Current reference count of the ID
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Quincey Koziol
+ December 9, 2003
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5iget_ref_f</strong><span class="sign">(</span>obj_id<span class="sign">,</span> ref_count<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_id <span class="sign">!</span> Object identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ref_count <span class="sign">!</span> Current reference count of ID
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5I2fh5iget5ftype5ff"></a>
+<a name="robo174"></a><h2>h5iget_type_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo47">H5I</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5iget_type_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves the type of an object.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> obj_id - object identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> type - type of the object, possible values:
+ H5I_FILE_F
+ H5I_GROUP_F
+ H5I_DATATYPE_F
+ H5I_DATASPACE_F
+ H5I_DATASET_F
+ H5I_ATTR_F
+ H5I_BADID_F
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 5, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5iget_type_f</strong><span class="sign">(</span>obj_id<span class="sign">,</span> TYPE<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_id <span class="sign">!</span> Object identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> TYPE <span class="sign">!</span> type of an object<span class="sign">.</span>
+ <span class="sign">!</span> possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5I_FILE_F
+ <span class="sign">!</span> H5I_GROUP_F
+ <span class="sign">!</span> H5I_DATATYPE_F
+ <span class="sign">!</span> H5I_DATASPACE_F
+ <span class="sign">!</span> H5I_DATASET_F
+ <span class="sign">!</span> H5I_ATTR_F
+ <span class="sign">!</span> H5I_BADID_F
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5I2fh5iinc5fref5ff"></a>
+<a name="robo175"></a><h2>h5iinc_ref_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo47">H5I</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5iinc_ref_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Increments the reference count of an ID
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> obj_id - object identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> ref_count - Current reference count of the ID
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Quincey Koziol
+ December 9, 2003
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5iinc_ref_f</strong><span class="sign">(</span>obj_id<span class="sign">,</span> ref_count<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_id <span class="sign">!</span> Object identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ref_count <span class="sign">!</span> Current reference count of ID
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5I2fh5iis5fvalid5ff"></a>
+<a name="robo176"></a><h2>h5iis_valid_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo47">H5I</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <a href="#robo171">h5iget_file_id_f</a>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Check if an ID is valid without producing an error message
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> id - identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> valid - status of id as a valid identifier
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ April 13, 2009
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5iis_valid_f</strong><span class="sign">(</span>id<span class="sign">,</span> valid<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> id <span class="sign">!</span> Identifier
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> valid <span class="sign">!</span> Status of id as a valid identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Iff.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Lf_c.html b/fortran/doc/DevelGuide/src/H5Lf_c.html
new file mode 100644
index 0000000..9adb759
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Lf_c.html
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Lf.c</title>
+<!-- Source: ./src/H5Lf.c -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="H5Lf2fH5Lf"></a>
+<a name="robo52"></a><h2>H5Lf</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains C stubs for <a href="./H5Lff_f90.html#robo49">H5L</a> Fortran APIs
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Lf.c on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Lff_F03_f90.html b/fortran/doc/DevelGuide/src/H5Lff_F03_f90.html
new file mode 100644
index 0000000..6b9640b
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Lff_F03_f90.html
@@ -0,0 +1,181 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Lff_F03.f90</title>
+<!-- Source: ./src/H5Lff_F03.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5L2028F0329"></a>
+<a name="robo50"></a><h2>H5L (F03)</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> H5L_PROVISIONAL
+</pre>
+<p class="item_name">FILE</p>
+<pre> src/fortran/src/<a href="#robo_top_of_doc">H5Lff_F03.f90</a>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains Fortran 90 and Fortran 2003 interfaces for <a href="./H5Lff_f90.html#robo49">H5L</a> functions.
+ It contains the same functions as H5Lff_DEPRECIATE.f90 but includes the
+ Fortran 2003 functions and the interface listings. This file will be compiled
+ instead of H5Lff_DEPRECIATE.f90 if Fortran 2003 functions are enabled.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> *** IMPORTANT ***
+ If you add a new <a href="./H5Aff_f90.html#robo27">H5A</a> function you must add the function name to the
+ Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+ This is needed for Windows based operating systems.
+</pre>
+
+<hr />
+<a name="H5L2028F03292fh5literate5fby5fname5ff"></a>
+<a name="robo189"></a><h2>h5literate_by_name_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo50">H5L (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5literate_by_name_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Iterates through links in a group.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - File or group identifier specifying location of subject group
+ group_name - Name of subject group
+ index_type - Type of index which determines the order
+ order - Order within index
+ idx - Iteration position at which to start
+ op - Callback function passing data regarding the link to the calling application
+ op_data - User-defined pointer to data required by the application for its processing of the link
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> idx - Position at which an interrupted iteration may be restarted
+ hdferr - Error code:
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> lapl_id - Link access property list
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ Augest 18, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5literate_by_name_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> group_name<span class="sign">,</span> index_type<span class="sign">,</span> order<span class="sign">,</span> idx<span class="sign">,</span> op<span class="sign">,</span> op_data<span class="sign">,</span> return_value<span class="sign">,</span> hdferr<span class="sign">,</span> lapl_id<span class="sign">)</span>
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> Identifier specifying subject group
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> group_name <span class="sign">!</span> Name of subject group
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> index_type <span class="sign">!</span> Type of index which determines the order<span class="sign">:</span>
+ <span class="sign">!</span> H5_INDEX_NAME_F <span class="sign">-</span> Alpha<span class="sign">-</span>numeric index on name
+ <span class="sign">!</span> H5_INDEX_CRT_ORDER_F <span class="sign">-</span> Index on creation order
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> order <span class="sign">!</span> Order within index<span class="sign">:</span>
+ <span class="sign">!</span> H5_ITER_INC_F <span class="sign">-</span> Increasing order
+ <span class="sign">!</span> H5_ITER_DEC_F <span class="sign">-</span> Decreasing order
+ <span class="sign">!</span> H5_ITER_NATIVE_F <span class="sign">-</span> Fastest available order
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>INOUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> idx <span class="sign">!</span> IN <span class="sign">:</span> Iteration position at which to start
+ <span class="sign">!</span> OUT<span class="sign">:</span> Position at which an interrupted iteration may be restarted
+
+ TYPE<span class="sign">(</span>C_FUNPTR<span class="sign">)</span><span class="sign">:</span><span class="sign">:</span> op <span class="sign">!</span> Callback function passing data regarding the link to the calling application
+ TYPE<span class="sign">(</span>C_PTR<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> op_data <span class="sign">!</span> User<span class="sign">-</span>defined pointer to data required by the application <span class="keyword">for</span> its processing of the link
+
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> return_value <span class="sign">!</span> Success<span class="sign">:</span> The <span class="keyword">return</span> value of the first operator that
+ <span class="sign">!</span> returns non<span class="sign">-</span>zero<span class="sign">,</span> or zero <span class="keyword">if</span> all members were
+ <span class="sign">!</span> processed with no operator returning non<span class="sign">-</span>zero<span class="sign">.</span>
+
+ <span class="sign">!</span> Failure<span class="sign">:</span> Negative <span class="keyword">if</span> something goes wrong within the
+ <span class="sign">!</span> library<span class="sign">,</span> or the negative value returned by one
+ <span class="sign">!</span> of the operators<span class="sign">.</span>
+
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lapl_id <span class="sign">!</span> Link access property list
+</pre>
+
+<hr />
+<a name="H5L2028F03292fh5literate5ff"></a>
+<a name="robo190"></a><h2>h5literate_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo50">H5L (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5literate_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Iterates through links in a group.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> group_id - Identifier specifying subject group
+ index_type - Type of index which determines the order
+ order - Order within index
+ idx - Iteration position at which to start
+ op - Callback function passing data regarding the link to the calling application
+ op_data - User-defined pointer to data required by the application for its processing of the link
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> idx - Position at which an interrupted iteration may be restarted
+ hdferr - Error code:
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ July 8, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5literate_f</strong><span class="sign">(</span>group_id<span class="sign">,</span> index_type<span class="sign">,</span> order<span class="sign">,</span> idx<span class="sign">,</span> op<span class="sign">,</span> op_data<span class="sign">,</span> return_value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> group_id <span class="sign">!</span> Identifier specifying subject group
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> index_type <span class="sign">!</span> Type of index which determines the order<span class="sign">:</span>
+ <span class="sign">!</span> H5_INDEX_NAME_F <span class="sign">-</span> Alpha<span class="sign">-</span>numeric index on name
+ <span class="sign">!</span> H5_INDEX_CRT_ORDER_F <span class="sign">-</span> Index on creation order
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> order <span class="sign">!</span> Order within index<span class="sign">:</span>
+ <span class="sign">!</span> H5_ITER_INC_F <span class="sign">-</span> Increasing order
+ <span class="sign">!</span> H5_ITER_DEC_F <span class="sign">-</span> Decreasing order
+ <span class="sign">!</span> H5_ITER_NATIVE_F <span class="sign">-</span> Fastest available order
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>INOUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> idx <span class="sign">!</span> IN <span class="sign">:</span> Iteration position at which to start
+ <span class="sign">!</span> OUT<span class="sign">:</span> Position at which an interrupted iteration may be restarted
+
+ TYPE<span class="sign">(</span>C_FUNPTR<span class="sign">)</span><span class="sign">:</span><span class="sign">:</span> op <span class="sign">!</span> Callback function passing data regarding the link to the calling application
+ TYPE<span class="sign">(</span>C_PTR<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> op_data <span class="sign">!</span> User<span class="sign">-</span>defined pointer to data required by the application <span class="keyword">for</span> its processing of the link
+
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> return_value <span class="sign">!</span> Success<span class="sign">:</span> The <span class="keyword">return</span> value of the first operator that
+ <span class="sign">!</span> returns non<span class="sign">-</span>zero<span class="sign">,</span> or zero <span class="keyword">if</span> all members were
+ <span class="sign">!</span> processed with no operator returning non<span class="sign">-</span>zero<span class="sign">.</span>
+
+ <span class="sign">!</span> Failure<span class="sign">:</span> Negative <span class="keyword">if</span> something goes wrong within the
+ <span class="sign">!</span> library<span class="sign">,</span> or the negative value returned by one
+ <span class="sign">!</span> of the operators<span class="sign">.</span>
+
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Lff_F03.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Lff_F90_f90.html b/fortran/doc/DevelGuide/src/H5Lff_F90_f90.html
new file mode 100644
index 0000000..6d1a9bb
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Lff_F90_f90.html
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Lff_F90.f90</title>
+<!-- Source: ./src/H5Lff_F90.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5L2028F9029"></a>
+<a name="robo51"></a><h2>H5L (F90)</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> MODULE H5L_PROVISIONAL
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains Fortran 90 interfaces for <a href="./H5Lff_f90.html#robo49">H5L</a> functions. It contains
+ the same functions as <a href="./H5Lff_F03_f90.html#robo_top_of_doc">H5Lff_F03.f90</a> but excludes the Fortran 2003 functions
+ and the interface listings. This file will be compiled instead of <a href="./H5Lff_F03_f90.html#robo_top_of_doc">H5Lff_F03.f90</a>
+ if Fortran 2003 functions are not enabled.
+
+ NOTE
+ Currently contains no functions.
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Lff_F90.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Lff_f90.html b/fortran/doc/DevelGuide/src/H5Lff_f90.html
new file mode 100644
index 0000000..1a209f2
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Lff_f90.html
@@ -0,0 +1,637 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Lff.f90</title>
+<!-- Source: ./src/H5Lff.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5L"></a>
+<a name="robo49"></a><h2>H5L</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> MODULE <strong>H5L</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains Fortran interfaces for <strong>H5L</strong> functions. It includes
+ all the functions that are independent on whether the Fortran 2003 functions
+ are enabled or disabled.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> *** IMPORTANT ***
+ If you add a new <strong>H5L</strong> function you must add the function name to the
+ Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+ This is needed for Windows based operating systems.
+</pre>
+
+<hr />
+<a name="H5L2fh5lcopy5ff"></a>
+<a name="robo178"></a><h2>h5lcopy_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo49">H5L</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5lcopy_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Copies a link from one location to another.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> src_loc_id - Location identifier of the source link
+ src_name - Name of the link to be copied
+ dest_loc_id - Location identifier specifying the destination of the copy
+ dest_name - Name to be assigned to the NEW copy
+ loc_id - Identifier of the file or group containing the object
+ name - Name of the link to delete
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> lcpl_id - Link creation property list identifier
+ lapl_id - Link access property list identifier
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February 27, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5lcopy_f</strong><span class="sign">(</span>src_loc_id<span class="sign">,</span> src_name<span class="sign">,</span> dest_loc_id<span class="sign">,</span> dest_name<span class="sign">,</span> hdferr<span class="sign">,</span> <span class="sign">&amp;</span>
+ lcpl_id<span class="sign">,</span> lapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> src_loc_id <span class="sign">!</span> Location identifier of the source link
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> src_name <span class="sign">!</span> Name of the link to be copied
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dest_loc_id <span class="sign">!</span> Location identifier specifying the destination of the copy
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dest_name <span class="sign">!</span> Name to be assigned to the NEW copy
+
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lcpl_id <span class="sign">!</span> Link creation property list identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lapl_id <span class="sign">!</span> Link access property list identifier
+</pre>
+
+<hr />
+<a name="H5L2fH5Lcreate5fexternal5ff"></a>
+<a name="robo179"></a><h2>H5Lcreate_external_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo49">H5L</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Lcreate_external_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates a soft link to an object in a different file.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> file_name - Name of the file containing the target object. Neither the file nor the target object is
+ required to exist. May be the file the link is being created in.
+ obj_name - Path within the target file to the target object.
+ link_loc_id - The file or group identifier for the new link.
+ link_name - The name of the new link.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> lcpl_id - Link creation property list identifier.
+ lapl_id - Link access property list identifier.
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February 27, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5lcreate_external_f<span class="sign">(</span>file_name<span class="sign">,</span> obj_name<span class="sign">,</span> link_loc_id<span class="sign">,</span> link_name<span class="sign">,</span> hdferr<span class="sign">,</span> lcpl_id<span class="sign">,</span> lapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> file_name <span class="sign">!</span> Name of the file containing the target object<span class="sign">.</span> Neither
+ <span class="sign">!</span> the file nor the target object is required to exist<span class="sign">.</span>
+ <span class="sign">!</span> May be the file the link is being created in<span class="sign">.</span>
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_name <span class="sign">!</span> Name of the target object<span class="sign">,</span> which must already exist<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> link_loc_id <span class="sign">!</span> The file or group identifier <span class="keyword">for</span> the new link<span class="sign">.</span>
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> link_name <span class="sign">!</span> The name of the new link<span class="sign">.</span>
+
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lcpl_id <span class="sign">!</span> Link creation property list identifier<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lapl_id <span class="sign">!</span> Link access property list identifier<span class="sign">.</span>
+</pre>
+
+<hr />
+<a name="H5L2fH5Lcreate5fhard5ff"></a>
+<a name="robo180"></a><h2>H5Lcreate_hard_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo49">H5L</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Lcreate_hard_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates a hard link to an object.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> obj_loc_id - The file or group identifier for the target object.
+ obj_name - Name of the target object, which must already exist.
+ link_loc_id - The file or group identifier for the new link.
+ link_name - The name of the new link.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> lcpl_id - Link creation property list identifier.
+ lapl_id - Link access property list identifier.
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February 27, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5lcreate_hard_f<span class="sign">(</span>obj_loc_id<span class="sign">,</span> obj_name<span class="sign">,</span> link_loc_id<span class="sign">,</span> link_name<span class="sign">,</span> hdferr<span class="sign">,</span> lcpl_id<span class="sign">,</span> lapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_loc_id <span class="sign">!</span> The file or group identifier <span class="keyword">for</span> the target object<span class="sign">.</span>
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_name <span class="sign">!</span> Name of the target object<span class="sign">,</span> which must already exist<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> link_loc_id <span class="sign">!</span> The file or group identifier <span class="keyword">for</span> the new link<span class="sign">.</span>
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> link_name <span class="sign">!</span> The name of the new link<span class="sign">.</span>
+
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lcpl_id <span class="sign">!</span> Link creation property list identifier<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lapl_id <span class="sign">!</span> Link access property list identifier<span class="sign">.</span>
+</pre>
+
+<hr />
+<a name="H5L2fH5Lcreate5fsoft5ff"></a>
+<a name="robo181"></a><h2>H5Lcreate_soft_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo49">H5L</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Lcreate_soft_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates a soft link to an object.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> target_path - Path to the target object, which is not required to exist.
+ link_loc_id - The file or group identifier for the new link.
+ link_name - The name of the new link.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> lcpl_id - Link creation property list identifier.
+ lapl_id - Link access property list identifier.
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February 20, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5lcreate_soft_f<span class="sign">(</span>target_path<span class="sign">,</span> link_loc_id<span class="sign">,</span> link_name<span class="sign">,</span> hdferr<span class="sign">,</span> lcpl_id<span class="sign">,</span> lapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> target_path <span class="sign">!</span> Path to the target object<span class="sign">,</span> which is not required to exist<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> link_loc_id <span class="sign">!</span> The file or group identifier <span class="keyword">for</span> the new link<span class="sign">.</span>
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> link_name <span class="sign">!</span> The name of the new link<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lcpl_id <span class="sign">!</span> Link creation property list identifier<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lapl_id <span class="sign">!</span> Link access property list identifier<span class="sign">.</span>
+</pre>
+
+<hr />
+<a name="H5L2fh5ldelete5fby5fidx5ff"></a>
+<a name="robo182"></a><h2>h5ldelete_by_idx_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo49">H5L</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5ldelete_by_idx_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Removes the nth link in a group.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - File or group identifier specifying location of subject group
+ group_name - Name of subject group
+ index_field - Type of index; Possible values are:
+ H5_INDEX_UNKNOWN_F = -1 - Unknown index type
+ H5_INDEX_NAME_F - Index on names
+ H5_INDEX_CRT_ORDER_F - Index on creation order
+ H5_INDEX_N_F - Number of indices defined
+
+ order - Order within field or index; Possible values are:
+ H5_ITER_UNKNOWN_F - Unknown order
+ H5_ITER_INC_F - Increasing order
+ H5_ITER_DEC_F - Decreasing order
+ H5_ITER_NATIVE_F - No particular order, whatever is fastest
+ H5_ITER_N_F - Number of iteration orders
+
+ n - Link for which to retrieve information
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> lapl_id - Link access property list
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February 29, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5ldelete_by_idx_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> group_name<span class="sign">,</span> index_field<span class="sign">,</span> order<span class="sign">,</span> n<span class="sign">,</span> hdferr<span class="sign">,</span> lapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> Identifer <span class="keyword">for</span> object to which attribute is attached
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> group_name <span class="sign">!</span> Name of object<span class="sign">,</span> relative to location<span class="sign">,</span>
+ <span class="sign">!</span> from which attribute is to be removed
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> index_field <span class="sign">!</span> Type of index<span class="sign">;</span> Possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5_INDEX_UNKNOWN_F <span class="sign">-</span> Unknown index type
+ <span class="sign">!</span> H5_INDEX_NAME_F <span class="sign">-</span> Index on names
+ <span class="sign">!</span> H5_INDEX_CRT_ORDER_F <span class="sign">-</span> Index on creation order
+ <span class="sign">!</span> H5_INDEX_N_F <span class="sign">-</span> Number of indices defined
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> order <span class="sign">!</span> Order in which to iterate over index<span class="sign">;</span> Possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5_ITER_UNKNOWN_F <span class="sign">-</span> Unknown order
+ <span class="sign">!</span> H5_ITER_INC_F <span class="sign">-</span> Increasing order
+ <span class="sign">!</span> H5_ITER_DEC_F <span class="sign">-</span> Decreasing order
+ <span class="sign">!</span> H5_ITER_NATIVE_F <span class="sign">-</span> No particular order<span class="sign">,</span> whatever is fastest
+ <span class="sign">!</span> H5_ITER_N_F <span class="sign">-</span> Number of iteration orders
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> n <span class="sign">!</span> Offset within index
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lapl_id <span class="sign">!</span> Link access property list
+</pre>
+
+<hr />
+<a name="H5L2fh5ldelete5ff"></a>
+<a name="robo183"></a><h2>h5ldelete_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo49">H5L</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5ldelete_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Removes a link from a group.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - Identifier of the file or group containing the object
+ name - Name of the link to delete
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> lapl_id - Link access property list identifier
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ January, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5ldelete_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> name<span class="sign">,</span> hdferr<span class="sign">,</span> lapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> Identifier of the file or group containing the object
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of the link to delete
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lapl_id <span class="sign">!</span> Link access property list identifier
+</pre>
+
+<hr />
+<a name="H5L2fH5Lexists5ff"></a>
+<a name="robo184"></a><h2>H5Lexists_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo49">H5L</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Lexists_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Check if a link with a particular name exists in a group.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - Identifier of the file or group to query.
+ name - Link name to check
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> link_exists - link exists status (.TRUE.,.FALSE.)
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> lapl_id - Link access property list identifier.
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February 29, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5lexists_f<span class="sign">(</span>loc_id<span class="sign">,</span> name<span class="sign">,</span> link_exists<span class="sign">,</span> hdferr<span class="sign">,</span> lapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> Identifier of the file or group to query<span class="sign">.</span>
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Link name to check<span class="sign">.</span>
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> link_exists <span class="sign">!</span> <span class="sign">.</span>TRUE<span class="sign">.</span> <span class="keyword">if</span> exists<span class="sign">,</span> <span class="sign">.</span>FALSE<span class="sign">.</span> otherwise
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lapl_id
+ <span class="sign">!</span> Link access property list identifier<span class="sign">.</span>
+</pre>
+
+<hr />
+<a name="H5L2fh5lget5finfo5fby5fidx5ff"></a>
+<a name="robo185"></a><h2>h5lget_info_by_idx_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo49">H5L</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5lget_info_by_idx_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves metadata for a link in a group, according to the order within a field or index.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - File or group identifier specifying location of subject group
+ group_name - Name of subject group
+ index_field - Index or field which determines the order
+ order - Order within field or index
+ n - Link for which to retrieve information
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> NOTE: In C these are defined as a structure: H5L_info_t
+ corder_valid - Indicates whether the creation order data is valid for this attribute
+ corder - Is a positive integer containing the creation order of the attribute
+ cset - Indicates the character set used for the attribute’s name
+ address - If the link is a hard link, address specifies the file address that the link points to
+ val_size - If the link is a symbolic link, val_size will be the length of the link value, e.g.,
+ the length of the name of the pointed-to object with a null terminator.
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> lapl_id - Link access property list
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February 29, 2008
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Changed the link_type names to match those in C (bug 1720) from,
+ H5L_LINK_HARD_F, H5L_LINK_SOFT_F,H5L_LINK_EXTERNAL_F,H5L_LINK_ERROR_F
+ to
+ H5L_TYPE_HARD_F, H5L_TYPE_SOFT_F,H5L_TYPE_EXTERNAL_F,H5L_TYPE_ERROR_F
+ MSB January 8, 2010.
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5lget_info_by_idx_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> group_name<span class="sign">,</span> index_field<span class="sign">,</span> order<span class="sign">,</span> n<span class="sign">,</span> <span class="sign">&amp;</span>
+ link_type<span class="sign">,</span> f_corder_valid<span class="sign">,</span> corder<span class="sign">,</span> cset<span class="sign">,</span> address<span class="sign">,</span> val_size<span class="sign">,</span> hdferr<span class="sign">,</span> lapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> File or group identifier specifying location of subject group
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> group_name <span class="sign">!</span> Name of subject group
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> index_field <span class="sign">!</span> Index or field which determines the order
+ <span class="sign">!</span> H5_INDEX_UNKNOWN_F <span class="sign">-</span> Unknown index type
+ <span class="sign">!</span> H5_INDEX_NAME_F <span class="sign">-</span> Index on names
+ <span class="sign">!</span> H5_INDEX_CRT_ORDER_F <span class="sign">-</span> Index on creation order
+ <span class="sign">!</span> H5_INDEX_N_F <span class="sign">-</span> Number of indices defined
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> order <span class="sign">!</span> Order in which to iterate over index<span class="sign">;</span> Possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5_ITER_UNKNOWN_F <span class="sign">-</span> Unknown order
+ <span class="sign">!</span> H5_ITER_INC_F <span class="sign">-</span> Increasing order
+ <span class="sign">!</span> H5_ITER_DEC_F <span class="sign">-</span> Decreasing order
+ <span class="sign">!</span> H5_ITER_NATIVE_F <span class="sign">-</span> No particular order<span class="sign">,</span> whatever is fastest
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> n <span class="sign">!</span> Attribute<span class="sign">â</span><span class="sign">€</span><span class="sign">™</span>s position in index
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> link_type <span class="sign">!</span> Specifies the link class<span class="sign">:</span>
+ <span class="sign">!</span> H5L_TYPE_HARD_F <span class="sign">-</span> Hard link
+ <span class="sign">!</span> H5L_TYPE_SOFT_F <span class="sign">-</span> Soft link
+ <span class="sign">!</span> H5L_TYPE_EXTERNAL_F <span class="sign">-</span> External link
+ <span class="sign">!</span> H5L_TYPE_ERROR _F <span class="sign">-</span> Error
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> f_corder_valid <span class="sign">!</span> Indicates whether the creation order data is valid <span class="keyword">for</span> this attribute
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> corder <span class="sign">!</span> Is a positive integer containing the creation order of the attribute
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> cset <span class="sign">!</span> Indicates the character set used <span class="keyword">for</span> the attribute<span class="sign">â</span><span class="sign">€</span><span class="sign">™</span>s name
+ INTEGER<span class="sign">(</span>HADDR_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> address <span class="sign">!</span> If the link is a hard link<span class="sign">,</span> address specifies the file address that the link points to
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> val_size <span class="sign">!</span> If the link is a symbolic link<span class="sign">,</span> val_size will be the length of the link value<span class="sign">,</span> e<span class="sign">.</span>g<span class="sign">.</span><span class="sign">,</span>
+ <span class="sign">!</span> the length of the name of the pointed<span class="sign">-</span>to object with a null terminator<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lapl_id <span class="sign">!</span> Link access property list
+</pre>
+
+<hr />
+<a name="H5L2fh5lget5finfo5ff"></a>
+<a name="robo186"></a><h2>h5lget_info_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo49">H5L</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5lget_info_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns information about a link.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> link_loc_id - File or group identifier.
+ link_name - Name of the link for which information is being sought
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> NOTE: In C these are contained in the structure H5L_info_t
+
+ cset - indicates the character set used for link’s name.
+ corder - specifies the link’s creation order position.
+ corder_valid - indicates whether the value in corder is valid.
+ link_type - specifies the link class:
+ H5L_TYPE_HARD_F - Hard link
+ H5L_TYPE_SOFT_F - Soft link
+ H5L_TYPE_EXTERNAL_F - External link
+ H5L_TYPE_ERROR_ F - Error
+ address - If the link is a hard link, address specifies the file address that the link points to
+ val_size - If the link is a symbolic link, val_size will be the length of the link value, e.g.,
+ the length of the name of the pointed-to object with a null terminator.
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> lapl_id - Link access property list
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February 29, 2008
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Changed the link_type names to match those in C (bug 1720) from,
+ H5L_LINK_HARD_F, H5L_LINK_SOFT_F,H5L_LINK_EXTERNAL_F,H5L_LINK_ERROR_F
+ to
+ H5L_TYPE_HARD_F, H5L_TYPE_SOFT_F,H5L_TYPE_EXTERNAL_F,H5L_TYPE_ERROR_F
+ MSB January 8, 2010.
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5lget_info_f</strong><span class="sign">(</span>link_loc_id<span class="sign">,</span> link_name<span class="sign">,</span> <span class="sign">&amp;</span>
+ cset<span class="sign">,</span> corder<span class="sign">,</span> f_corder_valid<span class="sign">,</span> link_type<span class="sign">,</span> address<span class="sign">,</span> val_size<span class="sign">,</span> <span class="sign">&amp;</span>
+ hdferr<span class="sign">,</span> lapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> link_loc_id <span class="sign">!</span> File or group identifier<span class="sign">.</span>
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> link_name <span class="sign">!</span> Name of the link <span class="keyword">for</span> which information is being sought
+
+<span class="sign">!</span> OUTPUTS NOTE<span class="sign">:</span> In C these are contained in the structure H5L_info_t
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> cset <span class="sign">!</span> Indicates the character set used <span class="keyword">for</span> the link<span class="sign">â</span><span class="sign">€</span><span class="sign">™</span>s name<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> corder <span class="sign">!</span> Specifies the link<span class="sign">â</span><span class="sign">€</span><span class="sign">™</span>s creation order position<span class="sign">.</span>
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> f_corder_valid <span class="sign">!</span> Indicates whether the value in corder is valid<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> link_type <span class="sign">!</span> Specifies the link class<span class="sign">:</span>
+ <span class="sign">!</span> H5L_TYPE_HARD_F <span class="sign">-</span> Hard link
+ <span class="sign">!</span> H5L_TYPE_SOFT_F <span class="sign">-</span> Soft link
+ <span class="sign">!</span> H5L_TYPE_EXTERNAL_F <span class="sign">-</span> External link
+ <span class="sign">!</span> H5L_TYPE_ERROR _F <span class="sign">-</span> Error
+ INTEGER<span class="sign">(</span>HADDR_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> address <span class="sign">!</span> If the link is a hard link<span class="sign">,</span> address specifies the file address that the link points to
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> val_size <span class="sign">!</span> If the link is a symbolic link<span class="sign">,</span> val_size will be the length of the link value<span class="sign">,</span> e<span class="sign">.</span>g<span class="sign">.</span><span class="sign">,</span>
+ <span class="sign">!</span> the length of the name of the pointed<span class="sign">-</span>to object with a null terminator<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lapl_id <span class="sign">!</span> Link access property list
+</pre>
+
+<hr />
+<a name="H5L2fh5lget5fname5fby5fidx5ff"></a>
+<a name="robo187"></a><h2>h5lget_name_by_idx_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo49">H5L</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5lget_name_by_idx_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves name of the nth link in a group, according to the order within a specified field or index.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - File or group identifier specifying location of subject group
+ group_name - Name of subject group
+ index_field - Index or field which determines the order
+ order - Order within field or index
+ n - Link for which to retrieve information
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> name - Buffer in which link value is returned
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> lapl_id - List access property list identifier.
+ size - Maximum number of characters of link value to be returned.
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 10, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5lget_name_by_idx_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> group_name<span class="sign">,</span> index_field<span class="sign">,</span> order<span class="sign">,</span> n<span class="sign">,</span> <span class="sign">&amp;</span>
+ name<span class="sign">,</span> hdferr<span class="sign">,</span> size<span class="sign">,</span> lapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> File or group identifier specifying location of subject group
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> group_name <span class="sign">!</span> Name of subject group
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> index_field <span class="sign">!</span> Index or field which determines the order
+ <span class="sign">!</span> H5_INDEX_UNKNOWN_F <span class="sign">-</span> Unknown index type
+ <span class="sign">!</span> H5_INDEX_NAME_F <span class="sign">-</span> Index on names
+ <span class="sign">!</span> H5_INDEX_CRT_ORDER_F <span class="sign">-</span> Index on creation order
+ <span class="sign">!</span> H5_INDEX_N_F <span class="sign">-</span> Number of indices defined
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> order <span class="sign">!</span> Order in which to iterate over index<span class="sign">;</span> Possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5_ITER_UNKNOWN_F <span class="sign">-</span> Unknown order
+ <span class="sign">!</span> H5_ITER_INC_F <span class="sign">-</span> Increasing order
+ <span class="sign">!</span> H5_ITER_DEC_F <span class="sign">-</span> Decreasing order
+ <span class="sign">!</span> H5_ITER_NATIVE_F <span class="sign">-</span> No particular order<span class="sign">,</span> whatever is fastest
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> n <span class="sign">!</span> Attribute<span class="sign">â</span><span class="sign">€</span><span class="sign">™</span>s position in index
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Buffer in which link value is returned
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5L2fh5lis5fregistered5ff"></a>
+<a name="robo188"></a><h2>h5lis_registered_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo49">H5L</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5lis_registered_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Determines whether a class of user-defined links is registered.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> link_cls_id - User-defined link class identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> registered - .TRUE. - if the link class has been registered
+ .FALSE. - if it is unregistered
+ hdferr - Error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February 29, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5lis_registered_f</strong><span class="sign">(</span>link_cls_id<span class="sign">,</span> registered<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> link_cls_id <span class="sign">!</span> User<span class="sign">-</span>defined link class identifier
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> registered <span class="sign">!</span> <span class="sign">.</span>TRUE<span class="sign">.</span> <span class="sign">-</span> <span class="keyword">if</span> the link class has been registered and
+ <span class="sign">!</span> <span class="sign">.</span>FALSE<span class="sign">.</span> <span class="sign">-</span> <span class="keyword">if</span> it is unregistered
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5L2fh5lmove5ff"></a>
+<a name="robo191"></a><h2>h5lmove_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo49">H5L</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5lmove_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Renames a link within an <a href="./HDF5_f90.html#robo76">HDF5</a> file.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> src_loc_id - Original file or group identifier.
+ src_name - Original link name.
+ dest_loc_id - Destination file or group identifier.
+ dest_name - NEW link name.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Error code:
+ 0 on success and -1 on failure
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> lcpl_id - Link creation property list identifier to be associated WITH the NEW link.
+ lapl_id - Link access property list identifier to be associated WITH the NEW link.
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 3, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5lmove_f</strong><span class="sign">(</span>src_loc_id<span class="sign">,</span> src_name<span class="sign">,</span> dest_loc_id<span class="sign">,</span> dest_name<span class="sign">,</span> hdferr<span class="sign">,</span> lcpl_id<span class="sign">,</span> lapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> src_loc_id <span class="sign">!</span> Original file or group identifier<span class="sign">.</span>
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> src_name <span class="sign">!</span> Original link name<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dest_loc_id <span class="sign">!</span> Destination file or group identifier<span class="sign">.</span>
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dest_name <span class="sign">!</span> NEW link name<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lcpl_id <span class="sign">!</span> Link creation property list identifier
+ <span class="sign">!</span> to be associated WITH the NEW link<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lapl_id <span class="sign">!</span> Link access property list identifier
+ <span class="sign">!</span> to be associated WITH the NEW link<span class="sign">.</span>
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Lff.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Of_c.html b/fortran/doc/DevelGuide/src/H5Of_c.html
new file mode 100644
index 0000000..e4a97e9
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Of_c.html
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Of.c</title>
+<!-- Source: ./src/H5Of.c -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="H5Of2fH5Of"></a>
+<a name="robo59"></a><h2>H5Of</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains C stubs for <a href="./H5Off_f90.html#robo56">H5O</a> Fortran APIs
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Of.c on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Off_f90.html b/fortran/doc/DevelGuide/src/H5Off_f90.html
new file mode 100644
index 0000000..790810e
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Off_f90.html
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Off.f90</title>
+<!-- Source: ./src/H5Off.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5O"></a>
+<a name="robo56"></a><h2>H5O</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> MODULE <strong>H5O</strong>
+</pre>
+<p class="item_name">FILE</p>
+<pre> fortran/src/<a href="#robo_top_of_doc">H5Off.f90</a>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains Fortran interfaces for <strong>H5O</strong> functions. It includes
+ all the functions that are independent on whether the Fortran 2003 functions
+ are enabled or disabled.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> *** IMPORTANT ***
+ If you add a new <strong>H5O</strong> function you must add the function name to the
+ Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+ This is needed for Windows based operating systems.
+</pre>
+
+<hr />
+<a name="H5O2fh5oclose5ff"></a>
+<a name="robo193"></a><h2>h5oclose_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo56">H5O</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5oclose_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Closes an object in an <a href="./HDF5_f90.html#robo76">HDF5</a> file.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> object_id - Object identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ December 17, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5oclose_f</strong><span class="sign">(</span>object_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> object_id
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr
+</pre>
+
+<hr />
+<a name="H5O2fh5olink5ff"></a>
+<a name="robo195"></a><h2>h5olink_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo56">H5O</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5olink_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates a hard link to an object in an <a href="./HDF5_f90.html#robo76">HDF5</a> file.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> object_id - Object to be linked.
+ new_loc_id - File or group identifier specifying location at which object is to be linked.
+ new_link_name - Name of link to be created, relative to new_loc_id.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> lcpl_id - Link creation property list identifier.
+ lapl_id - Link access property list identifier.
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ April 21, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5olink_f</strong><span class="sign">(</span>object_id<span class="sign">,</span> new_loc_id<span class="sign">,</span> new_link_name<span class="sign">,</span> hdferr<span class="sign">,</span> lcpl_id<span class="sign">,</span> lapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> object_id <span class="sign">!</span> Object to be linked
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> new_loc_id <span class="sign">!</span> File or group identifier specifying
+ <span class="sign">!</span> location at which object is to be linked<span class="sign">.</span>
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> new_link_name <span class="sign">!</span> Name of link to be created<span class="sign">,</span> relative to new_loc_id<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> Success<span class="sign">:</span> 0
+ <span class="sign">!</span> Failure<span class="sign">:</span> <span class="sign">-</span>1
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lcpl_id <span class="sign">!</span> Link creation property list identifier<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lapl_id <span class="sign">!</span> Link creation property list identifier<span class="sign">.</span>
+</pre>
+
+<hr />
+<a name="H5O2fh5oopen5ff"></a>
+<a name="robo196"></a><h2>h5oopen_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo56">H5O</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5oopen_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Opens an object in an <a href="./HDF5_f90.html#robo76">HDF5</a> file by location identifier and path name.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - File or group identifier
+ name - Path to the object, relative to loc_id.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> obj_id - Object identifier for the opened object
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> lapl_id - Access property list identifier for the link pointing to the object
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ April 18, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5oopen_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> name<span class="sign">,</span> obj_id<span class="sign">,</span> hdferr<span class="sign">,</span> lapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> File or group identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Path to the object<span class="sign">,</span> relative to loc_id
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_id <span class="sign">!</span> Object identifier <span class="keyword">for</span> the opened object
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> Success<span class="sign">:</span> 0
+ <span class="sign">!</span> Failure<span class="sign">:</span> <span class="sign">-</span>1
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lapl_id <span class="sign">!</span> Attribute access property list
+</pre>
+
+<hr />
+<a name="H5O2fh5open5fby5faddr5ff"></a>
+<a name="robo197"></a><h2>h5open_by_addr_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo56">H5O</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> h5oopen_by_addr_f
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Opens an object using its address within an <a href="./HDF5_f90.html#robo76">HDF5</a> file.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - File or group identifier
+ addr - Object’s address in the file
+ OUTPUTS:
+ obj_id - Object identifier for the opened object
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ September 14, 2009
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5oopen_by_addr_f<span class="sign">(</span>loc_id<span class="sign">,</span> addr<span class="sign">,</span> obj_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> File or group identifier
+ INTEGER<span class="sign">(</span>HADDR_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> addr <span class="sign">!</span> Object<span class="sign">â</span><span class="sign">€</span><span class="sign">™</span>s address in the file
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_id <span class="sign">!</span> Object identifier <span class="keyword">for</span> the opened object
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Off.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Pf_c.html b/fortran/doc/DevelGuide/src/H5Pf_c.html
new file mode 100644
index 0000000..6b8079a
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Pf_c.html
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Pf.c</title>
+<!-- Source: ./src/H5Pf.c -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="H5Pf2fH5Pf"></a>
+<a name="robo63"></a><h2>H5Pf</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains C stubs for H5P Fortran APIs
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Pf.c on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Pff_F03_f90.html b/fortran/doc/DevelGuide/src/H5Pff_F03_f90.html
new file mode 100644
index 0000000..51882ba
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Pff_F03_f90.html
@@ -0,0 +1,832 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Pff_F03.f90</title>
+<!-- Source: ./src/H5Pff_F03.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5P2028F0329"></a>
+<a name="robo61"></a><h2>H5P (F03)</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> H5P_PROVISIONAL
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains Fortran 90 and Fortran 2003 interfaces for H5P functions.
+ It contains the same functions as H5Pff_DEPRECIATE.f90 but includes the
+ Fortran 2003 functions and the interface listings. This file will be compiled
+ instead of H5Pff_DEPRECIATE.f90 if Fortran 2003 functions are enabled.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> *** IMPORTANT ***
+ If you add a new H5P function you must add the function name to the
+ Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+ This is needed for Windows based operating systems.
+</pre>
+
+<hr />
+<a name="H5P2028F03292f20h5pget5fdouble"></a>
+<a name="robo80"></a><h2> h5pget_double</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo61">H5P (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <a href="./H5Pff_F90_f90.html#robo229">h5pget_double</a>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets a property list value
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - iproperty list identifier to modify
+ name - name of property to modify
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> value - value of property
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <a href="./H5Pff_F90_f90.html#robo229">h5pget_double</a><span class="sign">(</span>prp_id<span class="sign">,</span> name<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ USE<span class="sign">,</span> INTRINSIC <span class="sign">:</span><span class="sign">:</span> ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to modify
+ DOUBLE PRECISION<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span><span class="sign">,</span> TARGET <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F03292fh5pcreate5fclass5ff"></a>
+<a name="robo205"></a><h2>h5pcreate_class_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo61">H5P (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pcreate_class_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Create a new property list class
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> parent - Property list identifier of the parent class
+ Possible values include:
+ H5P_ROOT_F
+ H5P_FILE_CREATE_F
+ H5P_FILE_ACCESS_F
+ H5P_DATASET_CREATE_F
+ H5P_DATASET_XFER_F
+ H5P_FILE_MOUNT_F
+ name - name of the class we are creating
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> class - porperty list class identifier
+ hdferr: - error code
+
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> H5P_cls_create_func_t (create) - Callback routine called when a property list is created
+ create_data - User pointer to any class creation information needed
+ H5P_cls_copy_func_t (copy) - Callback routine called when a property list is copied
+ copy_data - User pointer to any class copy information needed
+ H5P_cls_close_func_t (close) - Callback routine called when a property list is being closed
+ close_data - User pointer to any class close information needed
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Added callback arguments
+ M. Scot Breitenfeld, July 3, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pcreate_class_f</strong><span class="sign">(</span>parent<span class="sign">,</span> name<span class="sign">,</span> class<span class="sign">,</span> hdferr<span class="sign">,</span> create<span class="sign">,</span> create_data<span class="sign">,</span> copy<span class="sign">,</span> copy_data<span class="sign">,</span> close<span class="sign">,</span> close_data<span class="sign">)</span>
+ USE iso_c_binding
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> parent <span class="sign">!</span> parent property list class identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> name of property tocreate
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> class <span class="sign">!</span> property list class identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ TYPE<span class="sign">(</span>C_PTR<span class="sign">)</span><span class="sign">,</span> OPTIONAL <span class="sign">:</span><span class="sign">:</span> create_data<span class="sign">,</span> copy_data<span class="sign">,</span> close_data
+ TYPE<span class="sign">(</span>C_FUNPTR<span class="sign">)</span><span class="sign">,</span> OPTIONAL <span class="sign">:</span><span class="sign">:</span> create<span class="sign">,</span> copy<span class="sign">,</span> close
+</pre>
+
+<hr />
+<a name="H5P2028F03292fh5pget5fchar"></a>
+<a name="robo218"></a><h2>h5pget_char</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo61">H5P (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_char</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets a property list value
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - iproperty list identifier to modify
+ name - name of property to modify
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> value - value of property
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_char</strong><span class="sign">(</span>prp_id<span class="sign">,</span> name<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ USE<span class="sign">,</span> INTRINSIC <span class="sign">:</span><span class="sign">:</span> ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to modify
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F03292fh5pget5finteger"></a>
+<a name="robo247"></a><h2>h5pget_integer</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo61">H5P (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_integer</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets a property list value
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - iproperty list identifier to modify
+ name - name of property to modify
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> value - value of property
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_integer</strong><span class="sign">(</span>prp_id<span class="sign">,</span> name<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ USE<span class="sign">,</span> INTRINSIC <span class="sign">:</span><span class="sign">:</span> ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to modify
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span><span class="sign">,</span> TARGET <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F03292fh5pget5freal"></a>
+<a name="robo261"></a><h2>h5pget_real</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo61">H5P (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_real</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets a property list value
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - iproperty list identifier to modify
+ name - name of property to modify
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> value - value of property
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_real</strong><span class="sign">(</span>prp_id<span class="sign">,</span> name<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ USE<span class="sign">,</span> INTRINSIC <span class="sign">:</span><span class="sign">:</span> ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to modify
+ REAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span><span class="sign">,</span> TARGET <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F03292fh5pinsert5fchar"></a>
+<a name="robo273"></a><h2>h5pinsert_char</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo61">H5P (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pinsert_char</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Registers a temporary property with a property list class.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist - property list identifier
+ permanent property within
+ name - name of property to insert
+ size - size of property in bytes
+ value - initial value for the property
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 10, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pinsert_char</strong><span class="sign">(</span>plist<span class="sign">,</span> name<span class="sign">,</span> size<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ USE iso_c_binding
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to insert
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Size of property value
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F03292fh5pinsert5fdouble"></a>
+<a name="robo274"></a><h2>h5pinsert_double</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo61">H5P (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pinsert_double</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Registers a temporary property with a property list class.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist - property list identifier
+ permanent property within
+ name - name of property to insert
+ size - size of property in bytes
+ value - initial value for the property
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> NONE
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 10, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pinsert_double</strong><span class="sign">(</span>plist<span class="sign">,</span> name<span class="sign">,</span> size<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ USE iso_c_binding
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to insert
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Size of the property value
+ DOUBLE PRECISION<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span><span class="sign">,</span> TARGET <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F03292fh5pinsert5finteger"></a>
+<a name="robo276"></a><h2>h5pinsert_integer</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo61">H5P (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pinsert_integer</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Registers a temporary property with a property list class.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist - property list identifier
+ name - name of property to insert
+ size - size of property in bytes
+ value - initial value for the property
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 10, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pinsert_integer</strong><span class="sign">(</span>plist<span class="sign">,</span> name<span class="sign">,</span> size<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ USE iso_c_binding
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to insert
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Size of the property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span><span class="sign">,</span> TARGET <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F03292fh5pinsert5fptr"></a>
+<a name="robo278"></a><h2>h5pinsert_ptr</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo61">H5P (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pinsert_ptr</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Registers a temporary property with a property list class.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist - property list identifier
+ permanent property within
+ name - name of property to insert
+ size - size of property in bytes
+ value - initial value for the property
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ June 24, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pinsert_ptr</strong><span class="sign">(</span>plist<span class="sign">,</span> name<span class="sign">,</span> size<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ USE iso_c_binding
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to insert
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Size of property value
+ TYPE<span class="sign">(</span>c_ptr<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F03292fh5pinsert5freal"></a>
+<a name="robo280"></a><h2>h5pinsert_real</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo61">H5P (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pinsert_real</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Registers a temporary property with a property list class.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist - property list identifier
+ permanent property within
+ name - name of property to insert
+ size - size of property in bytes
+ value - initial value for the property
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 10, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pinsert_real</strong><span class="sign">(</span>plist<span class="sign">,</span> name<span class="sign">,</span> size<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ USE iso_c_binding
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to insert
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Size of the property value
+ REAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span><span class="sign">,</span> TARGET <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F03292fh5pregister5fchar"></a>
+<a name="robo283"></a><h2>h5pregister_char</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo61">H5P (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pregister_char</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Registers a permanent property with a property list class.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> class - property list class to register
+ permanent property within
+ name - name of property to register
+ size - size of property in bytes
+ value - default value for property in newly
+ created property lists
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 10, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pregister_char</strong><span class="sign">(</span>class<span class="sign">,</span> name<span class="sign">,</span> size<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> class <span class="sign">!</span> Property list class identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to <span class="keyword">register</span>
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> size of the property value
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F03292fh5pregister5fdouble"></a>
+<a name="robo286"></a><h2>h5pregister_double</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo61">H5P (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pregister_double</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Registers a permanent property with a property list class.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> class - property list class to register
+ permanent property within
+ name - name of property to register
+ size - size of property in bytes
+ value - default value for property in newly
+ created property lists
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 10, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pregister_double</strong><span class="sign">(</span>class<span class="sign">,</span> name<span class="sign">,</span> size<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> class <span class="sign">!</span> Property list class identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to <span class="keyword">register</span>
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> size of the property value
+ DOUBLE PRECISION<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span><span class="sign">,</span> TARGET <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F03292fh5pregister5finteger"></a>
+<a name="robo287"></a><h2>h5pregister_integer</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo61">H5P (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pregister_integer</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Registers a permanent property with a property list class.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> class - property list class to register
+ permanent property within
+ name - name of property to register
+ size - size of property in bytes
+ value - default value for property in newly
+ created property lists
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 10, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pregister_integer</strong><span class="sign">(</span>class<span class="sign">,</span> name<span class="sign">,</span> size<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> class <span class="sign">!</span> Property list class identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to <span class="keyword">register</span>
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Size of the property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span><span class="sign">,</span> TARGET <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F03292fh5pregister5fptr"></a>
+<a name="robo289"></a><h2>h5pregister_ptr</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo61">H5P (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pregister_ptr</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Registers a permanent property with a property list class.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> class - property list class to register
+ permanent property within
+ name - name of property to register
+ size - size of property in bytes
+ value - default value for property in newly
+ created property lists
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ June 24, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pregister_ptr</strong><span class="sign">(</span>class<span class="sign">,</span> name<span class="sign">,</span> size<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> class <span class="sign">!</span> Property list class identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to <span class="keyword">register</span>
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Size of the property value
+ TYPE<span class="sign">(</span>C_PTR<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F03292fh5pregister5freal"></a>
+<a name="robo291"></a><h2>h5pregister_real</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo61">H5P (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pregister_real</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Registers a permanent property with a property list class.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> class - property list class to register
+ permanent property within
+ name - name of property to register
+ size - size of property in bytes
+ value - default value for property in newly
+ created property lists
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 10, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pregister_real</strong><span class="sign">(</span>class<span class="sign">,</span> name<span class="sign">,</span> size<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> class <span class="sign">!</span> Property list class identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to <span class="keyword">register</span>
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> size of the property value
+ REAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span><span class="sign">,</span> TARGET <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F03292fh5pset28get29fill5fvalue5ff"></a>
+<a name="robo294"></a><h2>h5pset(get)fill_value_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo61">H5P (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset(get)fill_value_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets(gets) fill value for a dataset creation property list
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - dataset creation property list identifier
+ type_id - datatype identifier for fill value
+ fillvalue - fill value
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> type_id - datatype identifier for fill value
+ fillvalue - fill value
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+ Added the recommended way of passing fillvalue
+ and that is by passing the C address, all other
+ ways are obsolete and should be avoided. June, 2008 MSB
+</pre>
+<p class="item_name">NOTES</p>
+<pre> <strong>h5pset(get)fill_value_f</strong> function is overloaded to support
+ INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes.
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pset_fill_value_integer<span class="sign">(</span>prp_id<span class="sign">,</span> type_id<span class="sign">,</span> fillvalue<span class="sign">,</span> hdferr<span class="sign">)</span>
+ USE<span class="sign">,</span> INTRINSIC <span class="sign">:</span><span class="sign">:</span> ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier of
+ <span class="sign">!</span> of fillvalue datatype
+ <span class="sign">!</span> <span class="sign">(</span>in memory<span class="sign">)</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span><span class="sign">,</span> TARGET <span class="sign">:</span><span class="sign">:</span> fillvalue <span class="sign">!</span> Fillvalue
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F03292fh5pset5fchar"></a>
+<a name="robo303"></a><h2>h5pset_char</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo61">H5P (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_char</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets a property list value
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - iproperty list identifier to modify
+ name - name of property to modify
+ value - value to set property to
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> NONE
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_char</strong><span class="sign">(</span>prp_id<span class="sign">,</span> name<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ USE<span class="sign">,</span> INTRINSIC <span class="sign">:</span><span class="sign">:</span> ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to modify
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F03292fh5pset5fdouble"></a>
+<a name="robo313"></a><h2>h5pset_double</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo61">H5P (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_double</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets a property list value
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - iproperty list identifier to modify
+ name - name of property to modify
+ value - value to set property to
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_double</strong><span class="sign">(</span>prp_id<span class="sign">,</span> name<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ USE<span class="sign">,</span> INTRINSIC <span class="sign">:</span><span class="sign">:</span> ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to modify
+ DOUBLE PRECISION<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span><span class="sign">,</span> TARGET <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F03292fh5pset5finteger"></a>
+<a name="robo334"></a><h2>h5pset_integer</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo61">H5P (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_integer</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets a property list value
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - iproperty list identifier to modify
+ name - name of property to modify
+ value - value to set property to
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_integer</strong><span class="sign">(</span>prp_id<span class="sign">,</span> name<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ USE<span class="sign">,</span> INTRINSIC <span class="sign">:</span><span class="sign">:</span> ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to modify
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span><span class="sign">,</span> TARGET <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F03292fh5pset5freal"></a>
+<a name="robo345"></a><h2>h5pset_real</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo61">H5P (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_real</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets a property list value
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - iproperty list identifier to modify
+ name - name of property to modify
+ value - value to set property to
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_real</strong><span class="sign">(</span>prp_id<span class="sign">,</span> name<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ USE<span class="sign">,</span> INTRINSIC <span class="sign">:</span><span class="sign">:</span> ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to modify
+ REAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span><span class="sign">,</span> TARGET <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Pff_F03.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Pff_F90_f90.html b/fortran/doc/DevelGuide/src/H5Pff_F90_f90.html
new file mode 100644
index 0000000..5f8d579
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Pff_F90_f90.html
@@ -0,0 +1,715 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Pff_F90.f90</title>
+<!-- Source: ./src/H5Pff_F90.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5P20285fF9029"></a>
+<a name="robo60"></a><h2>H5P (_F90)</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> H5P_PROVISIONAL
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains Fortran 90 interfaces for H5P functions. It contains
+ the same functions as <a href="./H5Pff_F03_f90.html#robo_top_of_doc">H5Pff_F03.f90</a> but excludes the Fortran 2003 functions
+ and the interface listings. This file will be compiled instead of <a href="./H5Pff_F03_f90.html#robo_top_of_doc">H5Pff_F03.f90</a>
+ if Fortran 2003 functions are not enabled.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> *** IMPORTANT ***
+ If you add a new H5P function you must add the function name to the
+ Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+ This is needed for Windows based operating systems.
+</pre>
+
+<hr />
+<a name="H5P2028F90292fh5pcreate5fclass5ff"></a>
+<a name="robo206"></a><h2>h5pcreate_class_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="./H5Pff_f90.html#robo62">H5P (F90)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pcreate_class_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Create a new property list class
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> parent - Property list identifier of the parent class
+ Possible values include:
+ H5P_ROOT_F
+ H5P_FILE_CREATE_F
+ H5P_FILE_ACCESS_F
+ H5P_DATASET_CREATE_F
+ H5P_DATASET_XFER_F
+ H5P_FILE_MOUNT_F
+ name - name of the class we are creating
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> class - property list class identifier
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pcreate_class_f</strong><span class="sign">(</span>parent<span class="sign">,</span> name<span class="sign">,</span> class<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> parent <span class="sign">!</span> parent property list class
+ <span class="sign">!</span> identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> name of property tocreate
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> class <span class="sign">!</span> property list class identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F90292fh5pget5fchar"></a>
+<a name="robo219"></a><h2>h5pget_char</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="./H5Pff_f90.html#robo62">H5P (F90)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_char</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets a property list value
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - iproperty list identifier to modify
+ name - name of property to modify
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> value - value of property
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_char</strong><span class="sign">(</span>prp_id<span class="sign">,</span> name<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to modify
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F90292fh5pget5fdouble"></a>
+<a name="robo229"></a><h2>h5pget_double</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="./H5Pff_f90.html#robo62">H5P (F90)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_double</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets a property list value
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - iproperty list identifier to modify
+ name - name of property to modify
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> value - value of property
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_double</strong><span class="sign">(</span>prp_id<span class="sign">,</span> name<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to modify
+ DOUBLE PRECISION<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F90292fh5pget5finteger"></a>
+<a name="robo248"></a><h2>h5pget_integer</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="./H5Pff_f90.html#robo62">H5P (F90)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_integer</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets a property list value
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - iproperty list identifier to modify
+ name - name of property to modify
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> value - value of property
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_integer</strong><span class="sign">(</span>prp_id<span class="sign">,</span> name<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to modify
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F90292fh5pget5freal"></a>
+<a name="robo260"></a><h2>h5pget_real</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="./H5Pff_f90.html#robo62">H5P (F90)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_real</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets a property list value
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - iproperty list identifier to modify
+ name - name of property to modify
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> value - value of property
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_real</strong><span class="sign">(</span>prp_id<span class="sign">,</span> name<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to modify
+ REAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F90292fh5pinsert5fchar"></a>
+<a name="robo272"></a><h2>h5pinsert_char</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="./H5Pff_f90.html#robo62">H5P (F90)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pinsert_char</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Registers a temporary property with a property list class.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist - property list identifier
+ permanent property within
+ name - name of property to insert
+ size - size of property in bytes
+ value - initial value for the property
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 10, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source">SUBROUTINE <strong>h5pinsert_char</strong><span class="sign">(</span>plist<span class="sign">,</span> name<span class="sign">,</span> size<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to insert
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Size of property value
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F90292fh5pinsert5fdouble"></a>
+<a name="robo275"></a><h2>h5pinsert_double</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="./H5Pff_f90.html#robo62">H5P (F90)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pinsert_double</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Registers a temporary property with a property list class.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist - property list identifier
+ permanent property within
+ name - name of property to insert
+ size - size of property in bytes
+ value - initial value for the property
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 10, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pinsert_double</strong><span class="sign">(</span>plist<span class="sign">,</span> name<span class="sign">,</span> size<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to insert
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Size of the property value
+ DOUBLE PRECISION<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F90292fh5pinsert5finteger"></a>
+<a name="robo277"></a><h2>h5pinsert_integer</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="./H5Pff_f90.html#robo62">H5P (F90)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pinsert_integer</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Registers a temporary property with a property list class.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist - property list identifier
+ name - name of property to insert
+ size - size of property in bytes
+ value - initial value for the property
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 10, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pinsert_integer</strong><span class="sign">(</span>plist<span class="sign">,</span> name<span class="sign">,</span> size<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to insert
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Size of the property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F90292fh5pinsert5freal"></a>
+<a name="robo279"></a><h2>h5pinsert_real</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="./H5Pff_f90.html#robo62">H5P (F90)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pinsert_real</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Registers a temporary property with a property list class.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist - property list identifier
+ permanent property within
+ name - name of property to insert
+ size - size of property in bytes
+ value - initial value for the property
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 10, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pinsert_real</strong><span class="sign">(</span>plist<span class="sign">,</span> name<span class="sign">,</span> size<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to insert
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Size of the property value
+ REAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F90292fh5pregister5fchar"></a>
+<a name="robo284"></a><h2>h5pregister_char</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="./H5Pff_f90.html#robo62">H5P (F90)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pregister_char</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Registers a permanent property with a property list class.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> class - property list class to register
+ permanent property within
+ name - name of property to register
+ size - size of property in bytes
+ value - default value for property in newly
+ created property lists
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 10, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pregister_char</strong><span class="sign">(</span>class<span class="sign">,</span> name<span class="sign">,</span> size<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> class <span class="sign">!</span> Property list class identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to <span class="keyword">register</span>
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> size of the property value
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F90292fh5pregister5fdouble"></a>
+<a name="robo285"></a><h2>h5pregister_double</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="./H5Pff_f90.html#robo62">H5P (F90)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pregister_double</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Registers a permanent property with a property list class.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> class - property list class to register
+ permanent property within
+ name - name of property to register
+ size - size of property in bytes
+ value - default value for property in newly
+ created property lists
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 10, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pregister_double</strong><span class="sign">(</span>class<span class="sign">,</span> name<span class="sign">,</span> size<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> class <span class="sign">!</span> Property list class identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to <span class="keyword">register</span>
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Size of the property value
+ DOUBLE PRECISION<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F90292fh5pregister5finteger"></a>
+<a name="robo288"></a><h2>h5pregister_integer</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="./H5Pff_f90.html#robo62">H5P (F90)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pregister_integer</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Registers a permanent property with a property list class.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> class - property list class to register
+ permanent property within
+ name - name of property to register
+ size - size of property in bytes
+ value - default value for property in newly
+ created property lists
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 10, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pregister_integer</strong><span class="sign">(</span>class<span class="sign">,</span> name<span class="sign">,</span> size<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> class <span class="sign">!</span> Property list class identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to <span class="keyword">register</span>
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Size of the property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F90292fh5pregister5freal"></a>
+<a name="robo290"></a><h2>h5pregister_real</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="./H5Pff_f90.html#robo62">H5P (F90)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pregister_real</strong>
+
+ PURPOSE Registers a permanent property with a property list class.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> class - property list class to register
+ permanent property within
+ name - name of property to register
+ size - size of property in bytes
+ value - default value for property in newly
+ created property lists
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 10, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pregister_real</strong><span class="sign">(</span>class<span class="sign">,</span> name<span class="sign">,</span> size<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> class <span class="sign">!</span> Property list class identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to <span class="keyword">register</span>
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> size of the property value
+ REAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F90292fh5pset28get29fill5fvalue5ff"></a>
+<a name="robo295"></a><h2>h5pset(get)fill_value_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="./H5Pff_f90.html#robo62">H5P (F90)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset(get)fill_value_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets(gets) fill value for a dataset creation property list
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - dataset creation property list identifier
+ type_id - datatype identifier for fill value
+ fillvalue - fill value
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> type_id - datatype identifier for fill value
+ fillvalue - fill value
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+</pre>
+<p class="item_name">NOTES</p>
+<pre> <strong>h5pset(get)fill_value_f</strong> function is overloaded to support
+ INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes.
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pset_fill_value_integer<span class="sign">(</span>prp_id<span class="sign">,</span> type_id<span class="sign">,</span> fillvalue<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier of
+ <span class="sign">!</span> of fillvalue datatype
+ <span class="sign">!</span> <span class="sign">(</span>in memory<span class="sign">)</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> fillvalue <span class="sign">!</span> Fillvalue
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F90292fh5pset5fchar"></a>
+<a name="robo304"></a><h2>h5pset_char</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="./H5Pff_f90.html#robo62">H5P (F90)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_char</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets a property list value
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - iproperty list identifier to modify
+ name - name of property to modify
+ value - value to set property to
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> NONE
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_char</strong><span class="sign">(</span>prp_id<span class="sign">,</span> name<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to modify
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F90292fh5pset5fdouble"></a>
+<a name="robo312"></a><h2>h5pset_double</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="./H5Pff_f90.html#robo62">H5P (F90)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_double</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets a property list value
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - iproperty list identifier to modify
+ name - name of property to modify
+ value - value to set property to
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_double</strong><span class="sign">(</span>prp_id<span class="sign">,</span> name<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to modify
+ DOUBLE PRECISION<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F90292fh5pset5finteger"></a>
+<a name="robo333"></a><h2>h5pset_integer</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="./H5Pff_f90.html#robo62">H5P (F90)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_integer</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets a property list value
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - iproperty list identifier to modify
+ name - name of property to modify
+ value - value to set property to
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_integer</strong><span class="sign">(</span>prp_id<span class="sign">,</span> name<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to modify
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5P2028F90292fh5pset5freal"></a>
+<a name="robo346"></a><h2>h5pset_real</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="./H5Pff_f90.html#robo62">H5P (F90)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_real</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets a property list value
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - iproperty list identifier to modify
+ name - name of property to modify
+ value - value to set property to
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_real</strong><span class="sign">(</span>prp_id<span class="sign">,</span> name<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to modify
+ REAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span> Property value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Pff_F90.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Pff_f90.html b/fortran/doc/DevelGuide/src/H5Pff_f90.html
new file mode 100644
index 0000000..0e9ff5c
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Pff_f90.html
@@ -0,0 +1,4752 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Pff.f90</title>
+<!-- Source: ./src/H5Pff.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5P2028F9029"></a>
+<a name="robo62"></a><h2>H5P (F90)</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> H5P_PROVISIONAL
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains Fortran interfaces for H5P functions. It includes
+ all the functions that are independent on whether the Fortran 2003 functions
+ are enabled or disabled.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> *** IMPORTANT ***
+ If you add a new H5P function you must add the function name to the
+ Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+ This is needed for Windows based operating systems.
+</pre>
+
+<hr />
+<a name="H5P2f20h5pget5fhyper5fvector5fsize5ff"></a>
+<a name="robo81"></a><h2> h5pget_hyper_vector_size_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> h5pget_hyper_vector_size_f
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Get the number of "I/O" vectors (vector size)
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist_id - dataset transfer property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> size - vector size
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 7, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pget_hyper_vector_size_f<span class="sign">(</span>plist_id<span class="sign">,</span> size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id <span class="sign">!</span> Dataset transfer property list identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Vector size
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2f20h5pset5ffamily5foffset5ff"></a>
+<a name="robo82"></a><h2> h5pset_family_offset_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> h5pset_family_offset_f
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets offset for family file driver.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file creation property list identifier
+ offset - file offset
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ 19 March 2003
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pset_family_offset_f<span class="sign">(</span>prp_id<span class="sign">,</span> offset<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> offset <span class="sign">!</span> Offset in bytes
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2f20h5pset5ffapl5ffamily5ff"></a>
+<a name="robo83"></a><h2> h5pset_fapl_family_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> h5pset_fapl_family_f
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets the file access property list to use the family driver.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file access property list identifier
+ memb_size - size in bytes of each file member
+ memb_plist - identifier of the file access property
+ list to be used for each family member
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pset_fapl_family_f<span class="sign">(</span>prp_id<span class="sign">,</span> memb_size<span class="sign">,</span> memb_plist <span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> memb_size <span class="sign">!</span> Logical size<span class="sign">,</span> in bytes<span class="sign">,</span>
+ <span class="sign">!</span> of each family member
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> memb_plist <span class="sign">!</span> Identifier of the file
+ <span class="sign">!</span> access property list <span class="keyword">for</span>
+ <span class="sign">!</span> each member of the family
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2f20h5pset5fmeta5fblock5fsize5ff"></a>
+<a name="robo84"></a><h2> h5pset_meta_block_size_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> h5pset_meta_block_size_f
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets the minimum size of metadata block allocations
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist_id - file access property list identifier
+ size - metatdata block size
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 7, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pset_meta_block_size_f<span class="sign">(</span>plist_id<span class="sign">,</span> size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id <span class="sign">!</span> File access property list identifier
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Block size in bytes<span class="sign">;</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pall5ffilters5favail5ff"></a>
+<a name="robo200"></a><h2>h5pall_filters_avail_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pall_filters_avail_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Checks if all filters set in the dataset creation
+ property list are available
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - data creation property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> flag - .TRUE. if all filters are available
+ .FALSE. otherwise
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ April 10 2003
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pall_filters_avail_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> flag<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Dataset creation property
+ <span class="sign">!</span> list identifier
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> flag <span class="sign">!</span> <span class="sign">.</span>TRUE<span class="sign">.</span> <span class="keyword">if</span> all filters are available
+ <span class="sign">!</span> <span class="sign">.</span>FALSE<span class="sign">.</span> otherwise
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pclose5fclass5ff"></a>
+<a name="robo201"></a><h2>h5pclose_class_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pclose_class_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Closes an existing property list class.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> class - Property list class identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pclose_class_f</strong><span class="sign">(</span>class<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> class <span class="sign">!</span> Property list class identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pclose5ff"></a>
+<a name="robo202"></a><h2>h5pclose_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pclose_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Terminates access to a property list.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - identifier of the property list to
+ terminate access to.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pclose_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pcopy5ff"></a>
+<a name="robo203"></a><h2>h5pcopy_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pcopy_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Copies an existing property list to create a new
+ property list
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> new_prp_id - new property list identifier
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pcopy_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> new_prp_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> new_prp_id <span class="sign">!</span> Identifier of property list
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pcopy5fprop5ff"></a>
+<a name="robo204"></a><h2>h5pcopy_prop_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pcopy_prop_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Copies a property from one list or class to another.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> dst_id - Identifier of the destination property list
+ src_id - Identifier of the source property list
+ name - name of the property to copy
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pcopy_prop_f</strong><span class="sign">(</span>dst_id<span class="sign">,</span> src_id<span class="sign">,</span> name<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dst_id <span class="sign">!</span> Destination property list
+ <span class="sign">!</span> identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> src_id <span class="sign">!</span> Source property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Property name
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pcreate5ff"></a>
+<a name="robo207"></a><h2>h5pcreate_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pcreate_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates a new property as an instance of a property
+ list class.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> class - type of the property class to be created.
+ Possible values are:
+ H5P_FILE_CREATE_F
+ H5P_FILE_ACCESS_F
+ H5P_DATASET_CREATE_F
+ H5P_DATASET_XFER_F
+ H5P_FILE_MOUNT_F
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> prp_id - property list identifier
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pcreate_f</strong><span class="sign">(</span>class<span class="sign">,</span> prp_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> class <span class="sign">!</span> The type of the property list
+ <span class="sign">!</span> to be created<span class="sign">.</span> Possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5P_FILE_CREATE_F
+ <span class="sign">!</span> H5P_FILE_ACCESS_F
+ <span class="sign">!</span> H5P_DATASET_CREATE_F
+ <span class="sign">!</span> H5P_DATASET_XFER_F
+ <span class="sign">!</span> H5P_FILE_MOUNT_F
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pequal5ff"></a>
+<a name="robo208"></a><h2>h5pequal_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pequal_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Checks if two property lists are eqaul
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist1_id - property list identifier
+ plist2_id - property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> flag - flag, possible values
+ .TRUE. or .FALSE.
+ hdferr: - error code
+ Success: 0
+ Failure: -1, flag is set to .FALSE.
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ September 30, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pequal_f</strong><span class="sign">(</span>plist1_id<span class="sign">,</span> plist2_id<span class="sign">,</span> flag<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist1_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist2_id <span class="sign">!</span> Property list identifier
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> flag <span class="sign">!</span> Flag
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pexist5ff"></a>
+<a name="robo209"></a><h2>h5pexist_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pexist_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Queries whether a property name exists in a property list or class.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - property list identifier to query
+ name - name of property to check for
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> flag - logical flag
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pexist_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> name<span class="sign">,</span> flag<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to modify
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> flag <span class="sign">!</span> <span class="sign">.</span>TRUE<span class="sign">.</span> <span class="keyword">if</span> exists<span class="sign">,</span> <span class="sign">.</span>FALSE<span class="sign">.</span> otherwise
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pfill5fvalue5fdefined5ff"></a>
+<a name="robo210"></a><h2>h5pfill_value_defined_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pfill_value_defined_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Check if fill value is defined.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist_id - dataset creation property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> flag - fill value status flag
+ Possible values are:
+ H5D_FILL_VALUE_ERROR_F
+ H5D_FILL_VALUE_UNDEFINED_F
+ H5D_FILL_VALUE_DEFAULT_F
+ H5D_FILL_VALUE_USER_DEFINED_F
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 4, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pfill_value_defined_f</strong><span class="sign">(</span>plist_id<span class="sign">,</span> flag<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id <span class="sign">!</span> Dataset creation property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> flag <span class="sign">!</span> Fill value status flag
+ <span class="sign">!</span> H5D_FILL_VALUE_ERROR_F
+ <span class="sign">!</span> H5D_FILL_VALUE_UNDEFINED_F
+ <span class="sign">!</span> H5D_FILL_VALUE_DEFAULT_F
+ <span class="sign">!</span> H5D_FILL_VALUE_USER_DEFINED_F
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5falignment5ff"></a>
+<a name="robo211"></a><h2>h5pget_alignment_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_alignment_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves the current settings for alignment
+ properties from a file access property list.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file access property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> threshold - threshold value
+ alignment - alignment value
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_alignment_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> threshold<span class="sign">,</span> alignment<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> threshold <span class="sign">!</span> Threshold value
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> alignment <span class="sign">!</span> alignment value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5falloc5ftime5ff"></a>
+<a name="robo212"></a><h2>h5pget_alloc_time_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_alloc_time_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Get space allocation time for dataset during creation.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist_id - dataset creation property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> flag - allocation time flag:
+ H5D_ALLOC_TIME_ERROR_F
+ H5D_ALLOC_TIME_DEFAULT_F
+ H5D_ALLOC_TIME_EARLY_F
+ H5D_ALLOC_TIME_LATE_F
+ H5D_ALLOC_TIME_INCR_F
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 4, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_alloc_time_f</strong><span class="sign">(</span>plist_id<span class="sign">,</span> flag<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id <span class="sign">!</span> Dataset creation property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> flag <span class="sign">!</span> Allocation time flag<span class="sign">:</span>
+ <span class="sign">!</span> H5D_ALLOC_TIME_ERROR_F
+ <span class="sign">!</span> H5D_ALLOC_TIME_DEFAULT_F
+ <span class="sign">!</span> H5D_ALLOC_TIME_EARLY_F
+ <span class="sign">!</span> H5D_ALLOC_TIME_LATE_F
+ <span class="sign">!</span> H5D_ALLOC_TIME_INCR_F
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fH5Pget5fattr5fcreation5forder5ff"></a>
+<a name="robo213"></a><h2>H5Pget_attr_creation_order_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Pget_attr_creation_order_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves tracking and indexing settings for attribute creation order
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> ocpl_id - Object (group or dataset) creation property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> crt_order_flags - Flags specifying whether to track and index attribute creation order
+ hdferr - Error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pget_attr_creation_order_f<span class="sign">(</span>ocpl_id<span class="sign">,</span> crt_order_flags<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ocpl_id <span class="sign">!</span> Object <span class="sign">(</span>group or dataset<span class="sign">)</span> creation property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> crt_order_flags <span class="sign">!</span> Flags specifying whether to track and index attribute creation order
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fH5Pget5fattr5fphase5fchange5ff"></a>
+<a name="robo214"></a><h2>H5Pget_attr_phase_change_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Pget_attr_phase_change_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves attribute storage phase change thresholds
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> ocpl_id - Object (dataset or group) creation property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> max_compact - Maximum number of attributes to be stored in compact storage
+ (Default: 8)
+ min_dense - Minimum number of attributes to be stored in dense storage
+ (Default: 6)
+ hdferr - Error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ January, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pget_attr_phase_change_f<span class="sign">(</span>ocpl_id<span class="sign">,</span> max_compact<span class="sign">,</span> min_dense<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ocpl_id <span class="sign">!</span> Object <span class="sign">(</span>dataset or group<span class="sign">)</span> creation property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> max_compact <span class="sign">!</span> Maximum number of attributes to be stored in compact storage
+ <span class="sign">!</span> <span class="sign">(</span>Default<span class="sign">:</span> 8<span class="sign">)</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> min_dense <span class="sign">!</span> Minimum number of attributes to be stored in dense storage
+ <span class="sign">!</span> <span class="sign">(</span>Default<span class="sign">:</span> 6<span class="sign">)</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fbtree5fratios5ff"></a>
+<a name="robo215"></a><h2>h5pget_btree_ratios_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_btree_ratios_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets B-tree split ratios for a dataset transfer property list
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - the dataset transfer property list
+ identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> left - the B-tree split ratio for left-most nodes
+ middle - the B-tree split ratio for all other nodes
+ right - the B-tree split ratio for right-most nodes
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_btree_ratios_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> left<span class="sign">,</span> middle<span class="sign">,</span> right<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ REAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> left <span class="sign">!</span> The B<span class="sign">-</span>tree split ratio <span class="keyword">for</span> left<span class="sign">-</span>most nodes<span class="sign">.</span>
+ REAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> middle <span class="sign">!</span> The B<span class="sign">-</span>tree split ratio <span class="keyword">for</span> all other nodes
+ REAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> right <span class="sign">!</span> The B<span class="sign">-</span>tree split ratio <span class="keyword">for</span> right<span class="sign">-</span>most
+ <span class="sign">!</span> nodes and lone nodes<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fbuffer5ff"></a>
+<a name="robo216"></a><h2>h5pget_buffer_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_buffer_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets size for conversion buffer
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist_id - data transfer property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> size - buffer size
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 2, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_buffer_f</strong><span class="sign">(</span>plist_id<span class="sign">,</span> size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id <span class="sign">!</span> Data transfer property list identifier
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Buffer size in bytes<span class="sign">;</span>
+ <span class="sign">!</span> buffer is allocated and freed by
+ <span class="sign">!</span> the library<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fcache5ff"></a>
+<a name="robo217"></a><h2>h5pget_cache_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_cache_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Queries the meta data cache and raw data chunk cache
+ parameters.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file access property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> mdc_nelmts - number of elements (objects) in the meta
+ data cache
+ rdcc_nelmts - number of elements (objects) in the raw
+ data chunk cache
+ rdcc_nbytes - total size of the raw data chunk cache, in bytes
+ rdcc_w0 - preemption policy (0 or 1)
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+ Bug fix: type of the rdcc_nelmts parameter should be INTEGER
+ instead of INTEGER(SIZE_T) October 10, 2003
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_cache_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> mdc_nelmts<span class="sign">,</span> rdcc_nelmts<span class="sign">,</span> rdcc_nbytes<span class="sign">,</span> rdcc_w0<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> mdc_nelmts <span class="sign">!</span> Number of elements <span class="sign">(</span>objects<span class="sign">)</span>
+ <span class="sign">!</span> in the meta data cache
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> rdcc_nelmts <span class="sign">!</span> Number of elements <span class="sign">(</span>objects<span class="sign">)</span>
+ <span class="sign">!</span> in the meta data cache
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> rdcc_nbytes <span class="sign">!</span> Total size of the raw data
+ <span class="sign">!</span> chunk cache<span class="sign">,</span> in bytes
+ REAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> rdcc_w0 <span class="sign">!</span> Preemption policy
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fH5Pget5fchar5fencoding5ff"></a>
+<a name="robo220"></a><h2>H5Pget_char_encoding_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Pget_char_encoding_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves the character encoding used to create a string
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist_id - Property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> encoding - Valid values for encoding are:
+ H5T_CSET_ASCII_F -&gt; US ASCII
+ H5T_CSET_UTF8_F -&gt; UTF-8 Unicode encoding
+ hdferr - Error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 3, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pget_char_encoding_f<span class="sign">(</span>plist_id<span class="sign">,</span> encoding<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id <span class="sign">!</span> Property list identifier
+
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> encoding <span class="sign">!</span> Valid values <span class="keyword">for</span> encoding are<span class="sign">:</span>
+ <span class="sign">!</span> H5T_CSET_ASCII_F <span class="sign">-</span><span class="sign">&gt;</span> US ASCII
+ <span class="sign">!</span> H5T_CSET_UTF8_F <span class="sign">-</span><span class="sign">&gt;</span> UTF<span class="sign">-</span>8 Unicode encoding
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fH5Pget5fchunk5fcache5ff"></a>
+<a name="robo221"></a><h2>H5Pget_chunk_cache_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Pget_chunk_cache_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves the maximum possible number of elements in the meta
+ data cache and the maximum possible number of elements and
+ bytes and the RDCC_W0 value in the raw data chunk cache. Any
+ (or all) arguments may be null pointers in which case the
+ corresponding datum is not returned. If these properties have
+ not been set on this property list, the default values for a
+ file access property list are returned.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> dapl_id - Dataset access property list identifier.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> rdcc_nslots - Number of chunk slots in the raw data chunk cache hash table.
+ rdcc_nbytes - Total size of the raw data chunk cache, in bytes.
+ rdcc_w0 - Preemption policy.
+ hdferr - Error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ April 13, 2009
+</pre>
+<p class="item_name">HISTORY</p>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pget_chunk_cache_f<span class="sign">(</span>dapl_id<span class="sign">,</span> rdcc_nslots<span class="sign">,</span> rdcc_nbytes<span class="sign">,</span> rdcc_w0<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dapl_id <span class="sign">!</span> Dataset access property list identifier<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> rdcc_nslots <span class="sign">!</span> Number of chunk slots in the raw data chunk cache hash table<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> rdcc_nbytes <span class="sign">!</span> Total size of the raw data chunk cache<span class="sign">,</span> in bytes<span class="sign">.</span>
+ REAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> rdcc_w0 <span class="sign">!</span> Preemption policy<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fchunk5ff"></a>
+<a name="robo222"></a><h2>h5pget_chunk_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_chunk_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves the size of chunks for the raw data of a
+ chunked layout dataset
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - property list identifier
+ ndims - size of dims array
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> dims - array with dimension sizes for each chunk
+ hdferr - error code
+ Success: number of chunk dimensions
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_chunk_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> ndims<span class="sign">,</span> dims<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ndims <span class="sign">!</span> Number of chunk dimensions to
+ <span class="sign">!</span> to <span class="keyword">return</span>
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> DIMENSION<span class="sign">(</span>ndims<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dims
+ <span class="sign">!</span> Array containing sizes of
+ <span class="sign">!</span> chunk dimensions
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> number of chunk dimensions on success<span class="sign">,</span>
+ <span class="sign">!</span> <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fclass5ff"></a>
+<a name="robo223"></a><h2>h5pget_class_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_class_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns the property list class for a property list.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> classtype - property list class
+ Possible values are:
+ H5P_ROOT_F
+ H5P_FILE_CREATE_F
+ H5P_FILE_ACCESS_F
+ H5PE_DATASET_CREATE_F
+ H5P_DATASET_XFER_F
+ H5P_FILE_MOUNT_F
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_class_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> classtype<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> classtype <span class="sign">!</span> The type of the property list
+ <span class="sign">!</span> to be created<span class="sign">.</span> Possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5P_ROOT_F
+ <span class="sign">!</span> H5P_FILE_CREATE_F
+ <span class="sign">!</span> H5P_FILE_ACCESS_F
+ <span class="sign">!</span> H5PE_DATASET_CREATE_F
+ <span class="sign">!</span> H5P_DATASET_XFER_F
+ <span class="sign">!</span> H5P_FILE_MOUNT_F
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fclass5fname5ff"></a>
+<a name="robo224"></a><h2>h5pget_class_name_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_class_name_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Queries the name of a class.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - property list identifier to query
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> name - name of a class
+ size - Actual length of the class name
+ NOTE: If provided buffer "name" is smaller,
+ than name will be truncated to fit into
+ provided user buffer
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Returned the size of name as an argument
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_class_name_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> name<span class="sign">,</span> size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Buffer to retireve class name
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Actual length of the class name
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fclass5fparent5ff"></a>
+<a name="robo225"></a><h2>h5pget_class_parent_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_class_parent_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves the parent class of a genric property class.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - property list identifier to query
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> parent_id - identifier of the parent class
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_class_parent_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> parent_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> parent_id <span class="sign">!</span> Parent class property list
+ <span class="sign">!</span> identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fcopy5fobject5ff"></a>
+<a name="robo226"></a><h2>h5pget_copy_object_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_copy_object_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves the properties to be used when an object is copied.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> ocp_plist_id - Object copy property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> copy_options - Copy option(s) to be get
+ hdferr - Error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 3, 2008
+</pre>
+<p class="item_name">HISTORY</p>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_copy_object_f</strong><span class="sign">(</span>ocp_plist_id<span class="sign">,</span> copy_options<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ocp_plist_id <span class="sign">!</span> Object copy property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> copy_options <span class="sign">!</span> Valid copy options returned are<span class="sign">:</span>
+ <span class="sign">!</span> H5O_COPY_SHALLOW_HIERARCHY_F
+ <span class="sign">!</span> H5O_COPY_EXPAND_SOFT_LINK_F
+ <span class="sign">!</span> H5O_COPY_EXPAND_EXT_LINK_F
+ <span class="sign">!</span> H5O_COPY_EXPAND_REFERENCE_F
+ <span class="sign">!</span> H5O_COPY_WITHOUT_ATTR_FLAG_F
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fH5Pget5fcreate5finter5fgroup5ff"></a>
+<a name="robo227"></a><h2>H5Pget_create_inter_group_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Pget_create_inter_group_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Determines whether property is set to enable creating missing intermediate groups.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> lcpl_id - Link creation property list identifier
+ crt_intermed_group - Specifying whether to create intermediate groups upon
+ the creation of an object
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ April 4, 2008
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> The long subroutine name (&gt;31) on older f90 compilers causes problems
+ so the name was shortened
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pget_create_inter_group_f<span class="sign">(</span>lcpl_id<span class="sign">,</span> crt_intermed_group<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lcpl_id <span class="sign">!</span> Link creation property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> crt_intermed_group <span class="sign">!</span> Flag specifying whether to create intermediate groups
+ <span class="sign">!</span> upon creation of an object
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fdata5ftransform5ff"></a>
+<a name="robo228"></a><h2>h5pget_data_transform_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_data_transform_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves a data transform expression.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist_id - Identifier of the property list or class
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> expression - buffer to hold transform expression
+ hdferr - Error code
+ Success: Actual lenght of the expression
+ If provided buffer "expression" is
+ smaller, than expression will be
+ truncated to fit into
+ provided user buffer
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 19, 2008
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Should hdferr return just 0 or 1 and add another arguement for the size?
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source">SUBROUTINE <strong>h5pget_data_transform_f</strong><span class="sign">(</span>plist_id<span class="sign">,</span> expression<span class="sign">,</span> hdferr<span class="sign">,</span> size<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id <span class="sign">!</span> Identifier of the property list or class
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> expression <span class="sign">!</span> Buffer to hold transform expression
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span><span class="sign">,</span> OPTIONAL <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Registered size of the transform expression
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fdriver5ff"></a>
+<a name="robo230"></a><h2>h5pget_driver_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_driver_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns low-lever driver identifier.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file access or data transfer property
+ list identifier.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> driver - low-level driver identifier
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_driver_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> driver<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> driver <span class="sign">!</span> Low<span class="sign">-</span>level file driver identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fedc5fcheck5ff"></a>
+<a name="robo232"></a><h2>h5pget_edc_check_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_edc_check_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Queries error detecting
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - dataset creation property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ March 13, 2003
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_edc_check_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> flag<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Dataset transfer property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> flag <span class="sign">!</span> Checksum filter flag
+ <span class="sign">!</span> May have one of the following values<span class="sign">:</span>
+ <span class="sign">!</span> H5Z_ERROR_EDC_F
+ <span class="sign">!</span> H5Z_DISABLE_EDC_F
+ <span class="sign">!</span> H5Z_ENABLE_EDC_F
+ <span class="sign">!</span> H5Z_NO_EDC_F
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fH5Pget5fest5flink5finfo5ff"></a>
+<a name="robo233"></a><h2>H5Pget_est_link_info_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Pget_est_link_info_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Queries data required to estimate required local heap or object header size.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> gcpl_id - Group creation property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> est_num_entries - Estimated number of links to be inserted into group
+ est_name_len - Estimated average length of link names
+ hdferr - Error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 21, 2008
+</pre>
+<p class="item_name">HISTORY</p>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pget_est_link_info_f<span class="sign">(</span>gcpl_id<span class="sign">,</span> est_num_entries<span class="sign">,</span> est_name_len<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> gcpl_id <span class="sign">!</span> Group creation property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> est_num_entries <span class="sign">!</span> Estimated number of links to be inserted into group
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> est_name_len <span class="sign">!</span> Estimated average length of link names
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fexternal5fcount5ff"></a>
+<a name="robo234"></a><h2>h5pget_external_count_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_external_count_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns the number of external files for a dataset.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - dataset creation property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> count - number of external files for the
+ specified dataset
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_external_count_f</strong> <span class="sign">(</span>prp_id<span class="sign">,</span> count<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> count <span class="sign">!</span> Number of external files <span class="keyword">for</span> the
+ <span class="sign">!</span> Specified dataset
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fexternal5ff"></a>
+<a name="robo235"></a><h2>h5pget_external_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_external_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns information about an external file.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - dataset creation property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> idx - external file index
+ name_size - maximum size of name array
+ name - name of the external file
+ name - name of external file
+ offset - offset in bytes from the beginning of the
+ file to the location in the file
+ where the data starts
+ bytes - size of the external file data
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_external_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> idx<span class="sign">,</span> name_size<span class="sign">,</span> name<span class="sign">,</span> offset<span class="sign">,</span>bytes<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> idx <span class="sign">!</span> External file index<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name_size <span class="sign">!</span> Maximum length of name array
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of an external file
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> offset <span class="sign">!</span> Offset<span class="sign">,</span> in bytes<span class="sign">,</span> from the beginning
+ <span class="sign">!</span> of the file to the location in the file
+ <span class="sign">!</span> where the data starts<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> bytes <span class="sign">!</span> Number of bytes reserved in the
+ <span class="sign">!</span> file <span class="keyword">for</span> the data
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5ffapl5fcore5ff"></a>
+<a name="robo236"></a><h2>h5pget_fapl_core_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_fapl_core_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Queries core file driver properties.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file access property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> increment - size, in bytes, of memory increments
+ backing_store - boolean flag indicating whether to write
+ the file contents to disk when the file is closed.
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_fapl_core_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> increment<span class="sign">,</span> backing_store<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> increment <span class="sign">!</span> File block size in bytes<span class="sign">.</span>
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> backing_store <span class="sign">!</span> Flag to indicate that
+ <span class="sign">!</span> entire file contents are flushed to a file
+ <span class="sign">!</span> with the same name as this core file<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5ffapl5fdirect5ff"></a>
+<a name="robo237"></a><h2>h5pget_fapl_direct_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_fapl_direct_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets up use of the direct I/O driver.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> fapl_id - File access property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> alignment - Required memory alignment boundary
+ block_size - File system block size
+ cbuf_size - Copy buffer size
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 21, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_fapl_direct_f</strong><span class="sign">(</span>fapl_id<span class="sign">,</span> alignment<span class="sign">,</span> block_size<span class="sign">,</span> cbuf_size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> fapl_id <span class="sign">!</span> File access property list identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> alignment <span class="sign">!</span> Required memory alignment boundary<span class="sign">!</span>
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> block_size <span class="sign">!</span> File system block size
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> cbuf_size <span class="sign">!</span> Copy buffer size
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5ffapl5ffamily5ff"></a>
+<a name="robo238"></a><h2>h5pget_fapl_family_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_fapl_family_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns file access property list information.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file access property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> memb_size - size in bytes of each file member
+ memb_plist - identifier of the file access property
+ list to be used for each family member
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_fapl_family_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> memb_size<span class="sign">,</span> memb_plist <span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> memb_size <span class="sign">!</span> Logical size<span class="sign">,</span> in bytes<span class="sign">,</span>
+ <span class="sign">!</span> of each family member
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> memb_plist <span class="sign">!</span> Identifier of the file
+ <span class="sign">!</span> access property list <span class="keyword">for</span>
+ <span class="sign">!</span> each member of the family
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5ffapl5fmulti5ff"></a>
+<a name="robo241"></a><h2>h5pget_fapl_multi_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_fapl_multi_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets up use of the multi-file driver.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file creation property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> mem_map - mapping array
+ memb_fapl - property list for each memory usage type
+ memb_name - names of member file
+ relax - flag
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> maxlen_out - maximum length for memb_name array element
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ 24 March 2003
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_fapl_multi_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> memb_map<span class="sign">,</span> memb_fapl<span class="sign">,</span> memb_name<span class="sign">,</span> memb_addr<span class="sign">,</span> relax<span class="sign">,</span> hdferr<span class="sign">,</span> maxlen_out<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> File creation property list identifier
+ INTEGER<span class="sign">,</span> DIMENSION<span class="sign">(</span>0<span class="sign">:</span>H5FD_MEM_NTYPES_F<span class="sign">-</span>1<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> memb_map
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> DIMENSION<span class="sign">(</span>0<span class="sign">:</span>H5FD_MEM_NTYPES_F<span class="sign">-</span>1<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> memb_fapl
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> DIMENSION<span class="sign">(</span>0<span class="sign">:</span>H5FD_MEM_NTYPES_F<span class="sign">-</span>1<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> memb_name
+ <span class="sign">!</span>INTEGER<span class="sign">(</span>HADDR_T<span class="sign">)</span><span class="sign">,</span> DIMENSION<span class="sign">(</span>0<span class="sign">:</span>H5FD_MEM_NTYPES_F<span class="sign">-</span>1<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> memb_addr
+ REAL<span class="sign">,</span> DIMENSION<span class="sign">(</span>0<span class="sign">:</span>H5FD_MEM_NTYPES_F<span class="sign">-</span>1<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> memb_addr
+ INTEGER<span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> maxlen_out
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> relax
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5ffclose5fdegree5ff"></a>
+<a name="robo242"></a><h2>h5pget_fclose_degree_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_fclose_degree_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns the degree for the file close behavior.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> fapl_id - File access property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> degree - Possible values are:
+ H5F_CLOSE_DEFAULT_F
+ H5F_CLOSE_WEAK_F
+ H5F_CLOSE_SEMI_F
+ H5F_CLOSE_STRONG_F
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ September 26, 2002
+</pre>
+<p class="item_name">HISTORY</p>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_fclose_degree_f</strong><span class="sign">(</span>fapl_id<span class="sign">,</span> degree<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> fapl_id <span class="sign">!</span> File Access Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> degree <span class="sign">!</span> Possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5F_CLOSE_DEFAULT_F
+ <span class="sign">!</span> H5F_CLOSE_WEAK_F
+ <span class="sign">!</span> H5F_CLOSE_SEMI_F
+ <span class="sign">!</span> H5F_CLOSE_STRONG_F
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5ffill5ftime5ff"></a>
+<a name="robo243"></a><h2>h5pget_fill_time_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_fill_time_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Get fill value writing time for dataset
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist_id - dataset creation property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> flag - fill time flag:
+ H5D_FILL_TIME_ERROR_F
+ H5D_FILL_TIME_ALLOC_F
+ H5D_FILL_TIME_NEVER_F
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 4, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_fill_time_f</strong><span class="sign">(</span>plist_id<span class="sign">,</span> flag<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id <span class="sign">!</span> Dataset creation property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> flag <span class="sign">!</span> Fill time flag<span class="sign">:</span>
+ <span class="sign">!</span> H5D_FILL_TIME_ERROR_F
+ <span class="sign">!</span> H5D_FILL_TIME_ALLOC_F
+ <span class="sign">!</span> H5D_FILL_TIME_NEVER_F
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5ffilter5fby5fid5ff"></a>
+<a name="robo244"></a><h2>h5pget_filter_by_id_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_filter_by_id_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns information about a filter in a pipeline
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - data creation or transfer property list
+ identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> filter_id - filter identifier
+ flags - bit vector specifying certain general
+ properties of the filter
+ cd_nelmts - number of elements in cd_values
+ cd_values - auxiliary data for the filter
+ namelen - number of characters in the name buffer
+ name - buffer to retrieve filter name
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ April 10 2003
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_filter_by_id_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> filter_id<span class="sign">,</span> flags<span class="sign">,</span> cd_nelmts<span class="sign">,</span> cd_values<span class="sign">,</span> namelen<span class="sign">,</span> name<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> filter_id <span class="sign">!</span> Filter identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>INOUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> cd_nelmts <span class="sign">!</span> Number of elements in cd_values<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> DIMENSION<span class="comment">(*), INTENT(OUT) :: cd_values ! Auxiliary data for the filter.
+ INTEGER, INTENT(OUT) :: flags ! Bit vector specifying certain general
+ ! properties of the filter.
+ INTEGER(SIZE_T), INTENT(IN) :: namelen ! Anticipated number of characters in name.
+ CHARACTER(LEN=*)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of the filter
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5ffilter5ff"></a>
+<a name="robo245"></a><h2>h5pget_filter_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_filter_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns information about a filter in a pipeline
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - data creation or transfer property list
+ identifier
+ filter_number - sequence number within the filter
+ pipeline of the filter for which
+ information is sought
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> filter_id - filter identification number
+ flags - bit vector specifying certain general
+ properties of the filter
+ cd_nelmts - number of elements in cd_values
+ cd_values - auxiliary data for the filter
+ namelen - number of characters in the name buffer
+ name - buffer to retrieve filter name
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_filter_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> filter_number<span class="sign">,</span> flags<span class="sign">,</span> cd_nelmts<span class="sign">,</span> cd_values<span class="sign">,</span> namelen<span class="sign">,</span> name<span class="sign">,</span> filter_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> filter_number <span class="sign">!</span> Sequence number within the filter
+ <span class="sign">!</span> pipeline of the filter <span class="keyword">for</span> which
+ <span class="sign">!</span> information is sought
+ INTEGER<span class="sign">,</span> DIMENSION<span class="comment">(*), INTENT(OUT) :: cd_values ! Auxiliary data for the filter.
+ INTEGER, INTENT(OUT) :: flags ! Bit vector specifying certain general
+ ! properties of the filter.
+ INTEGER(SIZE_T), INTENT(INOUT) :: cd_nelmts ! Number of elements in cd_values.
+ INTEGER(SIZE_T), INTENT(IN) :: namelen ! Anticipated number of characters in name.
+ CHARACTER(LEN=*)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of the filter
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> filter_id <span class="sign">!</span> Filter identification number
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fgc5freferences5ff"></a>
+<a name="robo246"></a><h2>h5pget_gc_references_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_gc_references_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns garbage collecting references setting.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file access property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> gc_reference - flag for stting garbage collection on
+ and off (1 or 0)
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_gc_references_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> gc_reference<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> gc_reference <span class="sign">!</span> The flag <span class="keyword">for</span> garbage collecting
+ <span class="sign">!</span> references <span class="keyword">for</span> the file
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fistore5fk5ff"></a>
+<a name="robo249"></a><h2>h5pget_istore_k_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_istore_k_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Queries the 1/2 rank of an indexed storage B-tree.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file creation property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> ik - 1/2 rank of chunked storage B-tree
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_istore_k_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> ik<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ik <span class="sign">!</span> 1<span class="sign">/</span>2 rank of chunked storage B<span class="sign">-</span>tree
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5flayout5ff"></a>
+<a name="robo250"></a><h2>h5pget_layout_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_layout_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns the layout of the raw data for a dataset.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - data creation property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> layout - type of storage layout for raw data
+ possible values are:
+ H5D_COMPACT_F
+ H5D_CONTIGUOUS_F
+ H5D_CHUNKED_F
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_layout_f</strong> <span class="sign">(</span>prp_id<span class="sign">,</span> layout<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> layout <span class="sign">!</span> Type of storage layout <span class="keyword">for</span> raw data
+ <span class="sign">!</span> possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5D_COMPACT_F<span class="sign">(</span>0<span class="sign">)</span>
+ <span class="sign">!</span> H5D_CONTIGUOUS_F<span class="sign">(</span>1<span class="sign">)</span>
+ <span class="sign">!</span> H5D_CHUNKED_F<span class="sign">(</span>2<span class="sign">)</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fH5Pget5flink5fcreation5forder5ff"></a>
+<a name="robo251"></a><h2>H5Pget_link_creation_order_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Pget_link_creation_order_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Queries whether link creation order is tracked and/or indexed in a group.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> gcpl_id - Group creation property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> crt_order_flags - Creation order flag(s)
+ hdferr - Error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 3, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pget_link_creation_order_f<span class="sign">(</span>gcpl_id<span class="sign">,</span> crt_order_flags<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> gcpl_id <span class="sign">!</span> Group creation property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> crt_order_flags <span class="sign">!</span> Creation order flag<span class="sign">(</span>s<span class="sign">)</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fH5Pget5flink5fphase5fchange5ff"></a>
+<a name="robo252"></a><h2>H5Pget_link_phase_change_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Pget_link_phase_change_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Queries the settings for conversion between compact and dense groups.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> gcpl_id - Group creation property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> max_compact - Maximum number of attributes to be stored in compact storage
+ min_dense - Minimum number of attributes to be stored in dense storage
+ hdferr - Error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February 20, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pget_link_phase_change_f<span class="sign">(</span>gcpl_id<span class="sign">,</span> max_compact<span class="sign">,</span> min_dense<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> gcpl_id <span class="sign">!</span> Group creation property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> max_compact <span class="sign">!</span> Maximum number of attributes to be stored in compact storage
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> min_dense <span class="sign">!</span> Minimum number of attributes to be stored in dense storage
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fH5Pget5flocal5fheap5fsize5fhint5ff"></a>
+<a name="robo253"></a><h2>H5Pget_local_heap_size_hint_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Pget_local_heap_size_hint_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Queries the local heap size hint for original-style groups.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> gcpl_id - Group creation property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> size_hint - Hint for size of local heap
+ hdferr - Error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 21, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pget_local_heap_size_hint_f<span class="sign">(</span>gcpl_id<span class="sign">,</span> size_hint<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> gcpl_id <span class="sign">!</span> Group creation property list identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size_hint <span class="sign">!</span> Hint <span class="keyword">for</span> size of local heap
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fmeta5fblock5fsize5ff"></a>
+<a name="robo254"></a><h2>h5pget_meta_block_size_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_meta_block_size_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets the minimum size of metadata block allocations
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist_id - file access property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> size - metatdata block size
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 7, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_meta_block_size_f</strong><span class="sign">(</span>plist_id<span class="sign">,</span> size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id <span class="sign">!</span> File access property list identifier
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Block size in bytes<span class="sign">;</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fnfilters5ff"></a>
+<a name="robo255"></a><h2>h5pget_nfilters_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_nfilters_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns the number of filters in the pipeline.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - data creation or transfer property list
+ identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> nfilters - number of filters in the pipeline
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_nfilters_f</strong> <span class="sign">(</span>prp_id<span class="sign">,</span> nfilters<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> nfilters <span class="sign">!</span> The number of filters in the pipeline
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fnlinks5ff"></a>
+<a name="robo256"></a><h2>h5pget_nlinks_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_nlinks_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets maximum number of soft or user-defined link traversals.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> lapl_id - File access property list identifier
+ nlinks - Maximum number of links to traverse
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 24, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_nlinks_f</strong><span class="sign">(</span>lapl_id<span class="sign">,</span> nlinks<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lapl_id <span class="sign">!</span> File access property list identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> nlinks <span class="sign">!</span> Maximum number of links to traverse
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fnpros5ff"></a>
+<a name="robo257"></a><h2>h5pget_npros_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_npros_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Queries number of properties in property list or class
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - iproperty list identifier to query
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> nprops - number of properties in property object
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pget_nprops_f<span class="sign">(</span>prp_id<span class="sign">,</span> nprops<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> nprops <span class="sign">!</span> Number of properties
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fH5Pget5fobj5ftrack5ftimes5ff"></a>
+<a name="robo258"></a><h2>H5Pget_obj_track_times_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Pget_obj_track_times_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns whether times are tracked for an object.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist_id - property list id
+ flag - object timestamp setting
+ .TRUE.,.FALSE.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February 22, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pget_obj_track_times_f<span class="sign">(</span>plist_id<span class="sign">,</span> flag<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id <span class="sign">!</span> Dataset creation property
+ <span class="sign">!</span> list identifier
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> flag <span class="sign">!</span> Object timestamp setting
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fpreserve5ff"></a>
+<a name="robo259"></a><h2>h5pget_preserve_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_preserve_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Checks status of the dataset transfer property list.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> flag - status flag
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+ Datatype of the flag parameter is changed from
+ INTEGER to LOGICAL
+ June 4, 2003
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_preserve_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> flag<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> flag <span class="sign">!</span> TRUE<span class="sign">/</span>FALSE flag<span class="sign">.</span> Shows status of the dataset<span class="squote">'s
+ ! transfer property for partial writing/reading
+ ! compound datatype
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fsec25ff"></a>
+<a name="robo262"></a><h2>h5pget_sec2_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_sec2_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> NOT AVAILABLE
+</pre>
+<p class="item_name">INPUTS</p>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+ SOURCE! SUBROUTINE <strong>h5pget_sec2_f</strong> (prp_id, sec2, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: sec2 ! value indicates whether the file
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ 0 on success and -1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fsieve5fbuf5fsize5ff"></a>
+<a name="robo263"></a><h2>h5pget_sieve_buf_size_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_sieve_buf_size_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets the maximum size of the data sieve buffer
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist_id - file access property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> size - sieve buffer size
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 7, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_sieve_buf_size_f</strong><span class="sign">(</span>plist_id<span class="sign">,</span> size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id <span class="sign">!</span> File access property list identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Buffer size in bytes
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fsize5ff"></a>
+<a name="robo264"></a><h2>h5pget_size_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_size_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Queries the size of a property value in bytes.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - property list identifier to query
+ name - name of property to query
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> size - size of property in bytes
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">HISTORY</p>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_size_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> name<span class="sign">,</span> size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to query
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Size in bytes
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fsizes5ff"></a>
+<a name="robo265"></a><h2>h5pget_sizes_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_sizes_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves the size of the offsets and lengths used
+ in an <a href="./HDF5_f90.html#robo76">HDF5</a> file
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file creation property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> sizeof_addr - size of an object offset in bytes
+ sizeof_size - size of an object length in bytes
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_sizes_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> sizeof_addr<span class="sign">,</span> sizeof_size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> sizeof_addr <span class="sign">!</span> Size of an object
+ <span class="sign">!</span> offset in bytes
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> sizeof_size <span class="sign">!</span> Size of an object
+ <span class="sign">!</span> length in bytes
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fsmall5fdata5fblock5fsize5ff"></a>
+<a name="robo266"></a><h2>h5pget_small_data_block_size_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_small_data_block_size_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets the minimum size of "small" raw data block
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist_id - file access property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> size - small raw data block size
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 7, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_small_data_block_size_f</strong><span class="sign">(</span>plist_id<span class="sign">,</span> size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id <span class="sign">!</span> File access property list identifier
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Small raw data block size
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fsplit5ff"></a>
+<a name="robo267"></a><h2>h5pget_split_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_split_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> NOT AVAILABLE
+</pre>
+<p class="item_name">INPUTS</p>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"><span class="sign">!</span> SUBROUTINE <strong>h5pget_split_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> meta_ext_size<span class="sign">,</span> meta_ext<span class="sign">,</span> meta_plist<span class="sign">,</span>raw_ext_size<span class="sign">,</span><span class="sign">&amp;</span>
+<span class="sign">!</span> raw_ext<span class="sign">,</span> raw_plist<span class="sign">,</span> hdferr<span class="sign">)</span>
+<span class="sign">!</span> IMPLICIT NONE
+<span class="sign">!</span> INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+<span class="sign">!</span> INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> meta_ext_size <span class="sign">!</span> Number of characters of the meta
+ <span class="sign">!</span> file extension to be copied to the
+ <span class="sign">!</span> meta_ext buffer
+
+<span class="sign">!</span> CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> meta_ext <span class="sign">!</span>Name of the extension <span class="keyword">for</span>
+ <span class="sign">!</span>the metafile filename
+<span class="sign">!</span> INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> meta_plist <span class="sign">!</span> Identifier of the meta file
+ <span class="sign">!</span> access property list
+<span class="sign">!</span> INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> raw_ext_size <span class="sign">!</span> Number of characters of the raw
+ <span class="sign">!</span> file extension to be copied to the
+ <span class="sign">!</span> raw_ext buffer
+<span class="sign">!</span> CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> raw_ext <span class="sign">!</span>Name extension <span class="keyword">for</span> the raw file filename
+<span class="sign">!</span> INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> raw_plist <span class="sign">!</span>Identifier of the raw file
+ <span class="sign">!</span>access property list
+<span class="sign">!</span> INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fstdio5ff"></a>
+<a name="robo268"></a><h2>h5pget_stdio_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_stdio_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> NOT AVAILABLE
+</pre>
+<p class="item_name">INPUTS</p>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"><span class="sign">!</span> SUBROUTINE <strong>h5pget_stdio_f</strong> <span class="sign">(</span>prp_id<span class="sign">,</span> io<span class="sign">,</span> hdferr<span class="sign">)</span>
+<span class="sign">!</span>
+<span class="sign">!</span> IMPLICIT NONE
+<span class="sign">!</span> INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+<span class="sign">!</span> INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> io <span class="sign">!</span> value indicates that the file
+ <span class="sign">!</span>access property list is set to
+ <span class="sign">!</span>the stdio driver
+<span class="sign">!</span> INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fsym5fk5ff"></a>
+<a name="robo269"></a><h2>h5pget_sym_k_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_sym_k_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves the size of the symbol table B-tree 1/2 rank
+ and the symbol table leaf node 1/2 size.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file creation property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> ik - symbol table tree 1/2 rank
+ lk - symbol table node 1/2 size
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_sym_k_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> ik<span class="sign">,</span> lk<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ik <span class="sign">!</span> Symbol table tree rank
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lk <span class="sign">!</span> Symbol table node size
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fuserblock5ff"></a>
+<a name="robo270"></a><h2>h5pget_userblock_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_userblock_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets user block size.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file creation property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> block_size - size of the user block in bytes
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_userblock_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> block_size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> block_size <span class="sign">!</span> Size of the
+ <span class="sign">!</span> user<span class="sign">-</span>block in bytes
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pget5fversion5ff"></a>
+<a name="robo271"></a><h2>h5pget_version_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pget_version_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves the version information of various objects
+ for a file creation property list
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file createion property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> boot - super block version number
+ freelist - global freelist version number
+ stab - symbol table version number
+ shhdr - shared object header version number
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pget_version_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> boot<span class="sign">,</span> freelist<span class="sign">,</span> <span class="sign">&amp;</span>
+ stab<span class="sign">,</span> shhdr<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> DIMENSION<span class="sign">(</span><span class="sign">:</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> boot <span class="sign">!</span> Array to put boot
+ <span class="sign">!</span> block version number
+ INTEGER<span class="sign">,</span> DIMENSION<span class="sign">(</span><span class="sign">:</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> freelist <span class="sign">!</span> Array to put global
+ <span class="sign">!</span> Freelist version number
+
+ INTEGER<span class="sign">,</span> DIMENSION<span class="sign">(</span><span class="sign">:</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> stab <span class="sign">!</span> Array to put symbol
+ <span class="sign">!</span> table version number
+ INTEGER<span class="sign">,</span> DIMENSION<span class="sign">(</span><span class="sign">:</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> shhdr <span class="sign">!</span> Array to put shared
+ <span class="sign">!</span> object header version number
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pisa5fclass5ff"></a>
+<a name="robo281"></a><h2>h5pisa_class_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pisa_class_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Determines whether a property list is a member of a class.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist - property list identifier
+ pclass - identifier of the property class
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> flag - .TRUE. if a member, .FALSE. otherwise
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pisa_class_f</strong><span class="sign">(</span>plist<span class="sign">,</span> pclass<span class="sign">,</span> flag<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> pclass <span class="sign">!</span> Class identifier
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> flag <span class="sign">!</span> logical flag
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pmodify5ffilter5ff"></a>
+<a name="robo282"></a><h2>h5pmodify_filter_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pmodify_filter_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Adds a filter to the filter pipeline.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - data creation or transfer property list
+ identifier
+ filter - filter to be modified
+ flags - bit vector specifying certain general
+ properties of the filter
+ cd_nelmts - number of elements in cd_values
+ cd_values - auxiliary data for the filter
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ April 10 2003
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pmodify_filter_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> filter<span class="sign">,</span> flags<span class="sign">,</span> cd_nelmts<span class="sign">,</span> cd_values<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> filter <span class="sign">!</span> Filter to be modified
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> flags <span class="sign">!</span> Bit vector specifying certain general
+ <span class="sign">!</span> properties of the filter
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> cd_nelmts <span class="sign">!</span> Number of elements in cd_values
+ INTEGER<span class="sign">,</span> DIMENSION<span class="comment">(*), INTENT(IN) :: cd_values ! Auxiliary data for the filter
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5premove5ff"></a>
+<a name="robo292"></a><h2>h5premove_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5premove_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Removes a property from a property list.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plid - Property list identofoer
+ name - name of the property to remove
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5premove_f</strong><span class="sign">(</span>plid<span class="sign">,</span> name<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plid <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of property to remove
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5premove5ffilter5ff"></a>
+<a name="robo293"></a><h2>h5premove_filter_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5premove_filter_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Delete one or more filters from the filter pipeline.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - data creation or transfer property list
+ identifier
+ filter - filter to be removed
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Quincey Koziol
+ January 27 2004
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5premove_filter_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> filter<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Dataset creation property list
+ <span class="sign">!</span> identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> filter <span class="sign">!</span> Filter to be removed
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5falignment5ff"></a>
+<a name="robo296"></a><h2>h5pset_alignment_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_alignment_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets alignment properties of a file access property list.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file access property list identifier
+ threshold - threshold value
+ alignment - alignment value
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_alignment_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> threshold<span class="sign">,</span> alignment<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> threshold <span class="sign">!</span> Threshold value
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> alignment <span class="sign">!</span> alignment value
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5falloc5ftime5ff"></a>
+<a name="robo297"></a><h2>h5pset_alloc_time_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_alloc_time_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Set space allocation time for dataset during creation.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist_id - dataset creation property list identifier
+ flag - allocation time flag:
+ H5D_ALLOC_TIME_ERROR_F
+ H5D_ALLOC_TIME_DEFAULT_F
+ H5D_ALLOC_TIME_EARLY_F
+ H5D_ALLOC_TIME_LATE_F
+ H5D_ALLOC_TIME_INCR_F
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 4, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_alloc_time_f</strong><span class="sign">(</span>plist_id<span class="sign">,</span> flag<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id <span class="sign">!</span> Dataset creation property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> flag <span class="sign">!</span> Allocation time flag<span class="sign">:</span>
+ <span class="sign">!</span> H5D_ALLOC_TIME_ERROR_F
+ <span class="sign">!</span> H5D_ALLOC_TIME_DEFAULT_F
+ <span class="sign">!</span> H5D_ALLOC_TIME_EARLY_F
+ <span class="sign">!</span> H5D_ALLOC_TIME_LATE_F
+ <span class="sign">!</span> H5D_ALLOC_TIME_INCR_F
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fH5Pset5fattr5fcreation5forder5ff"></a>
+<a name="robo298"></a><h2>H5Pset_attr_creation_order_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Pset_attr_creation_order_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets tracking and indexing of attribute creation order
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> ocpl_id - Object creation property list identifier
+ crt_order_flags - Flags specifying whether to track and index attribute creation order
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ January, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pset_attr_creation_order_f<span class="sign">(</span>ocpl_id<span class="sign">,</span> crt_order_flags <span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ocpl_id <span class="sign">!</span> Object <span class="sign">(</span>dataset or group<span class="sign">)</span> creation property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> crt_order_flags <span class="sign">!</span> Flags specifying whether to track and index attribute creation order
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fH5Pset5fattr5fphase5fchange5ff"></a>
+<a name="robo299"></a><h2>H5Pset_attr_phase_change_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Pset_attr_phase_change_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets attribute storage phase change thresholds.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> ocpl_id - Object (dataset or group) creation property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> max_compact - Maximum number of attributes to be stored in compact storage
+ (Default: 8)
+ min_dense - Minimum number of attributes to be stored in dense storage
+ (Default: 6)
+ hdferr - Error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ January, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source">SUBROUTINE h5pset_attr_phase_change_f<span class="sign">(</span>ocpl_id<span class="sign">,</span> max_compact<span class="sign">,</span> min_dense<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ocpl_id <span class="sign">!</span> Object <span class="sign">(</span>dataset or group<span class="sign">)</span> creation property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> max_compact <span class="sign">!</span> Maximum number of attributes to be stored in compact storage
+ <span class="sign">!</span><span class="sign">(</span>Default<span class="sign">:</span> 8<span class="sign">)</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> min_dense <span class="sign">!</span> Minimum number of attributes to be stored in dense storage
+ <span class="sign">!</span> <span class="sign">(</span>Default<span class="sign">:</span> 6<span class="sign">)</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5fbtree5fratios5ff"></a>
+<a name="robo300"></a><h2>h5pset_btree_ratios_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_btree_ratios_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets B-tree split ratios for a dataset transfer
+ property list.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - the dataset transfer property list
+ identifier
+ left - the B-tree split ratio for left-most nodes
+ middle - the B-tree split ratio for all other nodes
+ right - the B-tree split ratio for right-most nodes
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_btree_ratios_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> left<span class="sign">,</span> middle<span class="sign">,</span> right<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ REAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> left <span class="sign">!</span> The B<span class="sign">-</span>tree split ratio <span class="keyword">for</span> left<span class="sign">-</span>most nodes<span class="sign">.</span>
+ REAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> middle <span class="sign">!</span> The B<span class="sign">-</span>tree split ratio <span class="keyword">for</span> all other nodes
+ REAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> right <span class="sign">!</span> The B<span class="sign">-</span>tree split ratio <span class="keyword">for</span> right<span class="sign">-</span>most
+ <span class="sign">!</span> nodes and lone nodes<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5fbuffer5ff"></a>
+<a name="robo301"></a><h2>h5pset_buffer_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_buffer_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets sixe for conversion buffer
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist_id - data transfer property list identifier
+ size - buffer size
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 2, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_buffer_f</strong><span class="sign">(</span>plist_id<span class="sign">,</span> size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id <span class="sign">!</span> Data transfer property list identifier
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Buffer size in bytes<span class="sign">;</span>
+ <span class="sign">!</span> buffer is allocated and freed by
+ <span class="sign">!</span> the library<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5fcache5ff"></a>
+<a name="robo302"></a><h2>h5pset_cache_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_cache_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets the meta data cache and raw data chunk
+ cache parameters
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file access property list identifier
+ mdc_nelmts - number of elements (objects) in the meta
+ data cache
+ rdcc_nelmts - number of elements (objects) in the raw
+ data chunk cache
+ rdcc_nbytes - total size of the raw data chunk cache, in bytes
+ rdcc_w0 - preemption policy (0 or 1)
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_cache_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> mdc_nelmts<span class="sign">,</span>rdcc_nelmts<span class="sign">,</span> rdcc_nbytes<span class="sign">,</span> rdcc_w0<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> mdc_nelmts <span class="sign">!</span> Number of elements <span class="sign">(</span>objects<span class="sign">)</span>
+ <span class="sign">!</span> in the meta data cache
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> rdcc_nelmts <span class="sign">!</span> Number of elements <span class="sign">(</span>objects<span class="sign">)</span>
+ <span class="sign">!</span> in the meta data cache
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> rdcc_nbytes <span class="sign">!</span> Total size of the raw data
+ <span class="sign">!</span> chunk cache<span class="sign">,</span> in bytes
+ REAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> rdcc_w0 <span class="sign">!</span> Preemption policy
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fH5Pset5fchar5fencoding5ff"></a>
+<a name="robo305"></a><h2>H5Pset_char_encoding_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Pset_char_encoding_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets the character encoding used to encode a string.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist_id - Property list identifier
+ encoding - Valid values for encoding are:
+ H5T_CSET_ASCII_F -&gt; US ASCII
+ H5T_CSET_UTF8_F -&gt; UTF-8 Unicode encoding
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 3, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pset_char_encoding_f<span class="sign">(</span>plist_id<span class="sign">,</span> encoding<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> encoding <span class="sign">!</span> String encoding character set<span class="sign">:</span>
+ <span class="sign">!</span> H5T_CSET_ASCII_F <span class="sign">-</span><span class="sign">&gt;</span> US ASCII
+ <span class="sign">!</span> H5T_CSET_UTF8_F <span class="sign">-</span><span class="sign">&gt;</span> UTF<span class="sign">-</span>8 Unicode encoding
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fH5Pset5fchunk5fcache5ff"></a>
+<a name="robo306"></a><h2>H5Pset_chunk_cache_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Pset_chunk_cache_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Set the number of objects in the meta data cache and the
+ maximum number of chunks and bytes in the raw data chunk cache.
+ Once set, these values will override the values in the file access
+ property list. Each of these values can be individually unset
+ (or not set at all) by passing the macros:
+ H5D_CHUNK_CACHE_NSLOTS_DFLT_F,
+ H5D_CHUNK_CACHE_NBYTES_DFLT_F, and/or
+ H5D_CHUNK_CACHE_W0_DFLT_F
+ as appropriate.
+
+ The RDCC_W0 value should be between 0 and 1 inclusive and
+ indicates how much chunks that have been fully read or fully
+ written are favored for preemption. A value of zero means
+ fully read or written chunks are treated no differently than
+ other chunks (the preemption is strictly LRU) while a value
+ of one means fully read chunks are always preempted before
+ other chunks.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> dapl_id - Dataset access property list identifier.
+ rdcc_nslots - The number of chunk slots in the raw data chunk cache for this dataset.
+ rdcc_nbytes - The total size of the raw data chunk cache for this dataset.
+ rdcc_w0 - The chunk preemption policy for this dataset.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ April 13, 2009
+</pre>
+<p class="item_name">HISTORY</p>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pset_chunk_cache_f<span class="sign">(</span>dapl_id<span class="sign">,</span> rdcc_nslots<span class="sign">,</span> rdcc_nbytes<span class="sign">,</span> rdcc_w0<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dapl_id <span class="sign">!</span> Dataset access property list identifier<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> rdcc_nslots <span class="sign">!</span> The number of chunk slots in the raw data
+ <span class="sign">!</span> chunk cache <span class="keyword">for</span> this dataset<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> rdcc_nbytes <span class="sign">!</span> The total size of the raw data chunk cache
+ <span class="sign">!</span> <span class="keyword">for</span> this dataset<span class="sign">.</span>
+ REAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> rdcc_w0 <span class="sign">!</span> The chunk preemption policy <span class="keyword">for</span> this dataset<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5fchunk5ff"></a>
+<a name="robo307"></a><h2>h5pset_chunk_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_chunk_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets the size of the chunks used to store
+ a chunked layout dataset.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - datatset creation property list identifier
+ ndims - number of dimensions for each chunk
+ dims - array with dimension sizes for each chunk
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_chunk_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> ndims<span class="sign">,</span> dims<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ndims <span class="sign">!</span> Number of chunk dimensions
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> DIMENSION<span class="sign">(</span>ndims<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dims
+ <span class="sign">!</span> Array containing sizes of
+ <span class="sign">!</span> chunk dimensions
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5fcopy5fobject5ff"></a>
+<a name="robo308"></a><h2>h5pset_copy_object_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_copy_object_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets properties to be used when an object is copied.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> ocp_plist_id - Object copy property list identifier
+ copy_options - Copy option(s) to be set
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 3, 2008
+</pre>
+<p class="item_name">HISTORY</p>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_copy_object_f</strong><span class="sign">(</span>ocp_plist_id<span class="sign">,</span> copy_options<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ocp_plist_id <span class="sign">!</span> Object copy property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> copy_options <span class="sign">!</span> Copy option<span class="sign">(</span>s<span class="sign">)</span> to be set<span class="sign">,</span> valid options are<span class="sign">:</span>
+ <span class="sign">!</span> H5O_COPY_SHALLOW_HIERARCHY_F
+ <span class="sign">!</span> H5O_COPY_EXPAND_SOFT_LINK_F
+ <span class="sign">!</span> H5O_COPY_EXPAND_EXT_LINK_F
+ <span class="sign">!</span> H5O_COPY_EXPAND_REFERENCE_F
+ <span class="sign">!</span> H5O_COPY_WITHOUT_ATTR_FLAG_F
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fH5Pset5fcreate5finter5fgroup5ff"></a>
+<a name="robo309"></a><h2>H5Pset_create_inter_group_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Pset_create_inter_group_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Specifies in property list whether to create missing intermediate groups.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> lcpl_id - Link creation property list identifier
+ crt_intermed_group - crt_intermed_group specifying whether
+ to create intermediate groups upon the creation
+ of an object
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February 22, 2008
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> The long subroutine name (&gt;31) on older f90 compilers causes problems
+ so had to shorten the name
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pset_create_inter_group_f<span class="sign">(</span>lcpl_id<span class="sign">,</span> crt_intermed_group<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lcpl_id <span class="sign">!</span> Link creation property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> crt_intermed_group <span class="sign">!</span> specifying whether to create intermediate groups
+ <span class="sign">!</span> upon the creation of an object
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5fdata5ftransform5ff"></a>
+<a name="robo310"></a><h2>h5pset_data_transform_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_data_transform_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets a data transform expression.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist_id - Identifier of the property list or class
+ expression - Buffer to hold transform expression
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 19, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_data_transform_f</strong><span class="sign">(</span>plist_id<span class="sign">,</span> expression<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id <span class="sign">!</span> Identifier of the property list or class
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> expression <span class="sign">!</span> Buffer to hold transform expression
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5fdeflate5ff"></a>
+<a name="robo311"></a><h2>h5pset_deflate_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_deflate_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets compression method and compression level.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - property list identifier
+ level - compression level
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_deflate_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> level<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> level <span class="sign">!</span> Compression level
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5fedc5fcheck5ff"></a>
+<a name="robo315"></a><h2>h5pset_edc_check_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_edc_check_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Enables/disables error detecting
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - dataset creation property list identifier
+ flag - EDC flag; possible values:
+ H5Z_DISABLE_EDC_F
+ H5Z_ENABLE_EDC_F
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ March 13, 2003
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_edc_check_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> flag<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> flag <span class="sign">!</span> Checksum filter flag
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5fest5flink5finfo5ff"></a>
+<a name="robo316"></a><h2>h5pset_est_link_info_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_est_link_info_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets estimated number of links and length of link names in a group.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> gcpl_id - Group creation property list identifier
+ est_num_entries - Estimated number of links to be inserted into group
+ est_name_len - Estimated average length of link names
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 21, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_est_link_info_f</strong><span class="sign">(</span>gcpl_id<span class="sign">,</span> est_num_entries<span class="sign">,</span> est_name_len<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> gcpl_id <span class="sign">!</span> Group creation property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> est_num_entries <span class="sign">!</span> Estimated number of links to be inserted into group
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> est_name_len <span class="sign">!</span> Estimated average length of link names
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5fexternal5ff"></a>
+<a name="robo317"></a><h2>h5pset_external_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_external_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Adds an external file to the list of external files.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - dataset creation property list identifier
+ name - name of external file
+ offset - offset in bytes from the beginning of the
+ file to the location in the file
+ where the data starts
+ bytes - size of the external file data.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_external_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> name<span class="sign">,</span> offset<span class="sign">,</span>bytes<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of an external file
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> offset <span class="sign">!</span> Offset<span class="sign">,</span> in bytes<span class="sign">,</span> from the beginning
+ <span class="sign">!</span> of the file to the location in the file
+ <span class="sign">!</span> where the data starts<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> bytes <span class="sign">!</span> Number of bytes reserved in the
+ <span class="sign">!</span> file <span class="keyword">for</span> the data
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5ffapl5fcore5ff"></a>
+<a name="robo318"></a><h2>h5pset_fapl_core_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_fapl_core_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Modifies the file access property list to use the
+ H5FD_CORE driver.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file access property list identifier
+ increment - size, in bytes, of memory increments
+ backing_store - boolean flag indicating whether to write
+ the file contents to disk when the file is closed.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_fapl_core_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> increment<span class="sign">,</span> backing_store<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> increment <span class="sign">!</span> File block size in bytes<span class="sign">.</span>
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> backing_store <span class="sign">!</span> Flag to indicate that
+ <span class="sign">!</span> entire file contents are flushed to a file
+ <span class="sign">!</span> with the same name as this core file<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5ffapl5fdirect5ff"></a>
+<a name="robo319"></a><h2>h5pset_fapl_direct_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_fapl_direct_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets up use of the direct I/O driver.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> fapl_id - File access property list identifier
+ alignment - Required memory alignment boundary
+ block_size - File system block size
+ cbuf_size - Copy buffer size
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 21, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source">SUBROUTINE <strong>h5pset_fapl_direct_f</strong><span class="sign">(</span>fapl_id<span class="sign">,</span> alignment<span class="sign">,</span> block_size<span class="sign">,</span> cbuf_size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> fapl_id <span class="sign">!</span> File access property list identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> alignment <span class="sign">!</span> Required memory alignment boundary<span class="sign">!</span>
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> block_size <span class="sign">!</span> File system block size
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> cbuf_size <span class="sign">!</span> Copy buffer size
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5ffapl5fmulti5fl"></a>
+<a name="robo322"></a><h2>h5pset_fapl_multi_l</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_fapl_multi_l</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets up use of the multi-file driver.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file creation property list identifier
+ mem_map - mapping array
+ memb_fapl - property list for each memory usage type
+ memb_name - names of member file
+ relax - flag
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ 20 March 2003
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_fapl_multi_l</strong><span class="sign">(</span>prp_id<span class="sign">,</span> memb_map<span class="sign">,</span> memb_fapl<span class="sign">,</span> memb_name<span class="sign">,</span> memb_addr<span class="sign">,</span> relax<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> File creation property list identifier
+ INTEGER<span class="sign">,</span> DIMENSION<span class="sign">(</span>0<span class="sign">:</span>H5FD_MEM_NTYPES_F<span class="sign">-</span>1<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> memb_map <span class="sign">!</span> Mapping array
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> DIMENSION<span class="sign">(</span>0<span class="sign">:</span>H5FD_MEM_NTYPES_F<span class="sign">-</span>1<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> memb_fapl <span class="sign">!</span> Property list <span class="keyword">for</span> each memory usage type
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> DIMENSION<span class="sign">(</span>0<span class="sign">:</span>H5FD_MEM_NTYPES_F<span class="sign">-</span>1<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> memb_name <span class="sign">!</span> Names of member file
+ REAL<span class="sign">,</span> DIMENSION<span class="sign">(</span>0<span class="sign">:</span>H5FD_MEM_NTYPES_F<span class="sign">-</span>1<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> memb_addr
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> relax <span class="sign">!</span> Flag
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5ffapl5fmulti5fs"></a>
+<a name="robo323"></a><h2>h5pset_fapl_multi_s</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_fapl_multi_s</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets up use of the multi-file driver.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file creation property list identifier
+ relax - flag
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ 31 March 2003
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_fapl_multi_s</strong><span class="sign">(</span>prp_id<span class="sign">,</span> relax<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> File creation property list identifier
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> relax
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5ffapl5fsec25ff"></a>
+<a name="robo324"></a><h2>h5pset_fapl_sec2_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_fapl_sec2_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets the sec2 driver.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file access property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_fapl_sec2_f</strong> <span class="sign">(</span>prp_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5ffapl5fsplit5ff"></a>
+<a name="robo325"></a><h2>h5pset_fapl_split_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_fapl_split_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Emulates the old split file driver.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file access property list identifier
+ meta_ext - name of the extension for the metafile
+ filename
+ meta_plist - identifier of the meta file access property
+ list
+ raw_ext - name extension for the raw file filename
+ raw_plist - identifier of the raw file access property list
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_fapl_split_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> meta_ext<span class="sign">,</span> meta_plist<span class="sign">,</span> raw_ext<span class="sign">,</span> raw_plist<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> meta_ext <span class="sign">!</span> Name of the extension <span class="keyword">for</span>
+ <span class="sign">!</span> the metafile filename
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> meta_plist <span class="sign">!</span> Identifier of the meta file
+ <span class="sign">!</span> access property list
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> raw_ext <span class="sign">!</span> Name extension <span class="keyword">for</span> the raw file filename
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> raw_plist <span class="sign">!</span> Identifier of the raw file
+ <span class="sign">!</span> access property list
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5ffapl5fstdio5ff"></a>
+<a name="robo326"></a><h2>h5pset_fapl_stdio_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_fapl_stdio_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets the standard I/O driver.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file access property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_fapl_stdio_f</strong> <span class="sign">(</span>prp_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5ffclose5fdegree5ff"></a>
+<a name="robo327"></a><h2>h5pset_fclose_degree_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_fclose_degree_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets the degree for the file close behavior.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> fapl_id - file access property list identifier
+ degree - Possible values are:
+ H5F_CLOSE_DEFAULT_F
+ H5F_CLOSE_WEAK_F
+ H5F_CLOSE_SEMI_F
+ H5F_CLOSE_STRONG_F
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ September 26, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_fclose_degree_f</strong><span class="sign">(</span>fapl_id<span class="sign">,</span> degree<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> fapl_id <span class="sign">!</span> File Access Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> degree <span class="sign">!</span> Possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5F_CLOSE_DEFAULT_F
+ <span class="sign">!</span> H5F_CLOSE_WEAK_F
+ <span class="sign">!</span> H5F_CLOSE_SEMI_F
+ <span class="sign">!</span> H5F_CLOSE_STRONG_F
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5ffill5ftime5ff"></a>
+<a name="robo328"></a><h2>h5pset_fill_time_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_fill_time_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Set fill value writing time for dataset
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist_id - dataset creation property list identifier
+ flag - fill time flag:
+ H5D_FILL_TIME_ERROR_F
+ H5D_FILL_TIME_ALLOC_F
+ H5D_FILL_TIME_NEVER_F
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 4, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_fill_time_f</strong><span class="sign">(</span>plist_id<span class="sign">,</span> flag<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id <span class="sign">!</span> Dataset creation property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> flag <span class="sign">!</span> Fill time flag<span class="sign">:</span>
+ <span class="sign">!</span> H5D_FILL_TIME_ERROR_F
+ <span class="sign">!</span> H5D_FILL_TIME_ALLOC_F
+ <span class="sign">!</span> H5D_FILL_TIME_NEVER_F
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5ffilter5ff"></a>
+<a name="robo329"></a><h2>h5pset_filter_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_filter_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Adds a filter to the filter pipeline.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - data creation or transfer property list
+ identifier
+ filter - filter to be added to the pipeline
+ flags - bit vector specifying certain general
+ properties of the filter
+ cd_nelmts - number of elements in cd_values
+ cd_values - auxiliary data for the filter
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ February, 2003
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_filter_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> filter<span class="sign">,</span> flags<span class="sign">,</span> cd_nelmts<span class="sign">,</span> cd_values<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> filter <span class="sign">!</span> Filter to be added to the pipeline<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> flags <span class="sign">!</span> Bit vector specifying certain general
+ <span class="sign">!</span> properties of the filter<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> cd_nelmts <span class="sign">!</span> Number of elements in cd_values<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> DIMENSION<span class="comment">(*), INTENT(IN) :: cd_values ! Auxiliary data for the filter.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5ffletcher325ff"></a>
+<a name="robo330"></a><h2>h5pset_fletcher32_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_fletcher32_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets Fletcher32 checksum of EDC for a dataset creation
+ property list.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - dataset creation property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ March 13, 2003
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_fletcher32_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5fgc5freferences5ff"></a>
+<a name="robo331"></a><h2>h5pset_gc_references_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_gc_references_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets garbage collecting references flag.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file access property list identifier
+ gc_reference - flag for stting garbage collection on
+ and off (1 or 0)
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_gc_references_f</strong> <span class="sign">(</span>prp_id<span class="sign">,</span> gc_reference<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> gc_reference <span class="sign">!</span> The flag <span class="keyword">for</span> garbage collecting
+ <span class="sign">!</span> references <span class="keyword">for</span> the file
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5fhyper5fvector5fsize5ff"></a>
+<a name="robo332"></a><h2>h5pset_hyper_vector_size_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_hyper_vector_size_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Set the number of "I/O" vectors (vector size)
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist_id - dataset transfer property list identifier
+ size - vector size
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 7, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_hyper_vector_size_f</strong><span class="sign">(</span>plist_id<span class="sign">,</span> size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id <span class="sign">!</span> Dataset transfer property list identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Vector size
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5fistore5fk5ff"></a>
+<a name="robo335"></a><h2>h5pset_istore_k_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_istore_k_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets the size of the parameter used to control the
+ B-trees for indexing chunked datasets
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file creation property list identifier
+ ik - 1/2 rank of chunked storage B-tree
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_istore_k_f</strong> <span class="sign">(</span>prp_id<span class="sign">,</span> ik<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ik <span class="sign">!</span> 1<span class="sign">/</span>2 rank of chunked storage B<span class="sign">-</span>tree
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5flayout5ff"></a>
+<a name="robo336"></a><h2>h5pset_layout_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_layout_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets the type of storage used store the raw data
+ for a dataset.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - data creation property list identifier
+ layout - type of storage layout for raw data
+ possible values are:
+ H5D_COMPACT_F
+ H5D_CONTIGUOUS_F
+ H5D_CHUNKED_F
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_layout_f</strong> <span class="sign">(</span>prp_id<span class="sign">,</span> layout<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> layout <span class="sign">!</span> Type of storage layout <span class="keyword">for</span> raw data
+ <span class="sign">!</span> possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5D_COMPACT_F
+ <span class="sign">!</span> H5D_CONTIGUOUS_F
+ <span class="sign">!</span> H5D_CHUNKED_F
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fH5Pset5flibver5fbounds5ff"></a>
+<a name="robo337"></a><h2>H5Pset_libver_bounds_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Pset_libver_bounds_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets bounds on library versions, and indirectly format versions, to be used when creating objects.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> fapl_id - File access property list identifier
+ low - The earliest version of the library that will be used for writing objects.
+ high - The latest version of the library that will be used for writing objects.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February 18, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pset_libver_bounds_f<span class="sign">(</span>fapl_id<span class="sign">,</span> low<span class="sign">,</span> high<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> fapl_id <span class="sign">!</span> File access property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> low <span class="sign">!</span> The earliest version of the library that will be used <span class="keyword">for</span> writing objects<span class="sign">.</span>
+ <span class="sign">!</span> Currently<span class="sign">,</span> low must be one of two pre<span class="sign">-</span>defined values<span class="sign">:</span>
+ <span class="sign">!</span> HDF_LIBVER_EARLIEST_F
+ <span class="sign">!</span> HDF_LIBVER_LATEST_F
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> high <span class="sign">!</span> The latest version of the library that will be used <span class="keyword">for</span> writing objects<span class="sign">.</span>
+ <span class="sign">!</span> Currently<span class="sign">,</span> low must set to the pre<span class="sign">-</span>defined value<span class="sign">:</span>
+ <span class="sign">!</span> HDF_LIBVER_LATEST_F
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fH5Pset5flink5fcreation5forder5ff"></a>
+<a name="robo338"></a><h2>H5Pset_link_creation_order_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Pset_link_creation_order_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets creation order tracking and indexing for links in a group.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> gcpl_id - Group creation property list identifier
+ crt_order_flags - Creation order flag(s)
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February 18, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pset_link_creation_order_f<span class="sign">(</span>gcpl_id<span class="sign">,</span> crt_order_flags<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> gcpl_id <span class="sign">!</span> File access property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> crt_order_flags <span class="sign">!</span> Creation order flag<span class="sign">(</span>s<span class="sign">)</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5flink5fphase5fchange5ff"></a>
+<a name="robo339"></a><h2>h5pset_link_phase_change_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_link_phase_change_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets the parameters for conversion between compact and dense groups.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> gcpl_id - Group creation property list identifier
+ max_compact - Maximum number of attributes to be stored in compact storage
+ min_dense - Minimum number of attributes to be stored in dense storage
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 21, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source">SUBROUTINE <strong>h5pset_link_phase_change_f</strong><span class="sign">(</span>gcpl_id<span class="sign">,</span> max_compact<span class="sign">,</span> min_dense<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> gcpl_id <span class="sign">!</span> Group creation property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> max_compact <span class="sign">!</span> Maximum number of attributes to be stored in compact storage
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> min_dense <span class="sign">!</span> Minimum number of attributes to be stored in dense storage
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fH5Pset5flocal5fheap5fsize5fhint5ff"></a>
+<a name="robo340"></a><h2>H5Pset_local_heap_size_hint_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Pset_local_heap_size_hint_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets the local heap size hint for original-style groups.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> gcpl_id - Group creation property list identifier
+ size_hint - Hint for size of local heap
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 21, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pset_local_heap_size_hint_f<span class="sign">(</span>gcpl_id<span class="sign">,</span> size_hint<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> gcpl_id <span class="sign">!</span> Group creation property list identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size_hint <span class="sign">!</span> Hint <span class="keyword">for</span> size of local heap
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fH5Pset5fnbit5ff"></a>
+<a name="robo341"></a><h2>H5Pset_nbit_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Pset_nbit_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets up the use of the N-Bit filter.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist_id - Dataset creation property list identifier.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 21, 2008
+</pre>
+<p class="item_name">HISTORY</p>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pset_nbit_f<span class="sign">(</span>plist_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id <span class="sign">!</span> Dataset creation property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5fnlinks5ff"></a>
+<a name="robo342"></a><h2>h5pset_nlinks_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_nlinks_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets maximum number of soft or user-defined link traversals.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> lapl_id - File access property list identifier
+ nlinks - Maximum number of links to traverse
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 24, 2008
+</pre>
+<p class="item_name">HISTORY</p>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_nlinks_f</strong><span class="sign">(</span>lapl_id<span class="sign">,</span> nlinks<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lapl_id <span class="sign">!</span> File access property list identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> nlinks <span class="sign">!</span> Maximum number of links to traverse
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fH5Pset5fobj5ftrack5ftimes5ff"></a>
+<a name="robo343"></a><h2>H5Pset_obj_track_times_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Pset_obj_track_times_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Set whether the birth, access, modification &amp; change times for
+ an object are stored.
+
+ Birth time is the time the object was created. Access time is
+ the last time that metadata or raw data was read from this
+ object. Modification time is the last time the data for
+ this object was changed (either writing raw data to a dataset
+ or inserting/modifying/deleting a link in a group). Change
+ time is the last time the metadata for this object was written
+ (adding/modifying/deleting an attribute on an object, extending
+ the size of a dataset, etc).
+
+ If these times are not tracked, they will be reported as
+ 12:00 AM UDT, Jan. 1, 1970 (i.e. 0 seconds past the UNIX
+ epoch) when queried.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist_id - property list id
+ flag - object timestamp setting
+ .TRUE.,.FALSE.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February 22, 2008
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pset_obj_track_times_f<span class="sign">(</span>plist_id<span class="sign">,</span> flag<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id <span class="sign">!</span> Dataset creation property
+ <span class="sign">!</span> list identifier
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> flag <span class="sign">!</span> Object timestamp setting
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5fpreserve5ff"></a>
+<a name="robo344"></a><h2>h5pset_preserve_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_preserve_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets the dataset transfer property list status to
+ TRUE or FALSE for initializing compound datatype
+ members during write/read operations.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - property list identifier
+ flag - status flag
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> NONE
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+ Datatype of the flag parameter is changed from
+ INTEGER to LOGICAL June 4, 2003
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_preserve_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> flag<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> flag <span class="sign">!</span> TRUE<span class="sign">/</span>FALSE flag to set the dataset
+ <span class="sign">!</span> transfer property <span class="keyword">for</span> partila writing<span class="sign">/</span>reading
+ <span class="sign">!</span> compound datatype
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5fscaleoffset5ff"></a>
+<a name="robo347"></a><h2>h5pset_scaleoffset_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_scaleoffset_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets up the use of the Scale-Offset filter.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist_id - Dataset creation property list identifier.
+ scale_type - Flag indicating compression method.
+ scale_factor - Parameter related to scale.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 21, 2008
+</pre>
+<p class="item_name">HISTORY</p>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_scaleoffset_f</strong><span class="sign">(</span>plist_id<span class="sign">,</span> scale_type<span class="sign">,</span> scale_factor<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id <span class="sign">!</span> Dataset creation property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> scale_type <span class="sign">!</span> Flag indicating compression method<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> scale_factor <span class="sign">!</span> Parameter related to scale<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fH5Pset5fshared5fmesg5findex5ff"></a>
+<a name="robo348"></a><h2>H5Pset_shared_mesg_index_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Pset_shared_mesg_index_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Configures the specified shared object header message index
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> fcpl_id - File creation property list identifier.
+ index_num - Index being configured.
+ mesg_type_flags - Types of messages that should be stored in this index.
+ min_mesg_size - Minimum message size.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ January, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pset_shared_mesg_index_f<span class="sign">(</span>fcpl_id<span class="sign">,</span> index_num<span class="sign">,</span> mesg_type_flags<span class="sign">,</span> min_mesg_size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> fcpl_id <span class="sign">!</span> file creation property list
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> index_num <span class="sign">!</span> Index being configured<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> mesg_type_flags <span class="sign">!</span> Types of messages that should be stored in this index<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> min_mesg_size <span class="sign">!</span> Minimum message size<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fH5Pset5fshared5fmesg5fnindexes5ff"></a>
+<a name="robo349"></a><h2>H5Pset_shared_mesg_nindexes_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Pset_shared_mesg_nindexes_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets number of shared object header message indexes
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist_id - file creation property list
+ nindexes - Number of shared object header message indexes to be available in files created with this property list
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ January, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5pset_shared_mesg_nindexes_f<span class="sign">(</span> plist_id<span class="sign">,</span> nindexes<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id <span class="sign">!</span> File creation property list
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> nindexes <span class="sign">!</span> Number of shared object header message indexes
+ <span class="sign">!</span> available in files created WITH this property list
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5fshuffle5ff"></a>
+<a name="robo350"></a><h2>h5pset_shuffle_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_shuffle_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets shuffling filter
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - dataset creation property list identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ March 12, 2003
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_shuffle_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5fsieve5fbuf5fsize5ff"></a>
+<a name="robo351"></a><h2>h5pset_sieve_buf_size_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_sieve_buf_size_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets the maximum size of the data sieve buffer
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist_id - file access property list identifier
+ size - sieve buffer size
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 7, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_sieve_buf_size_f</strong><span class="sign">(</span>plist_id<span class="sign">,</span> size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id <span class="sign">!</span> File access property list identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Buffer size in bytes<span class="sign">;</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5fsizes5ff"></a>
+<a name="robo352"></a><h2>h5pset_sizes_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_sizes_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets the byte size of the offsets and lengths used
+ to address objects in an <a href="./HDF5_f90.html#robo76">HDF5</a> file.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file creation property list identifier
+ sizeof_addr - size of an object offset in bytes
+ sizeof_size - size of an object length in bytes
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_sizes_f</strong> <span class="sign">(</span>prp_id<span class="sign">,</span> sizeof_addr<span class="sign">,</span> sizeof_size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> sizeof_addr <span class="sign">!</span> Size of an object
+ <span class="sign">!</span> offset in bytes
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> sizeof_size <span class="sign">!</span> Size of an object
+ <span class="sign">!</span> length in bytes
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5fsmall5fdata5fblock5fsize5ff"></a>
+<a name="robo353"></a><h2>h5pset_small_data_block_size_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_small_data_block_size_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets the minimum size of "small" raw data block
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> plist_id - file access property list identifier
+ size - small raw data block size
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 7, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_small_data_block_size_f</strong><span class="sign">(</span>plist_id<span class="sign">,</span> size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> plist_id <span class="sign">!</span> File access property list identifier
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Small raw data block size
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5fsym5fk5ff"></a>
+<a name="robo354"></a><h2>h5pset_sym_k_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_sym_k_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets the size of parameters used to control the
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file creation property list identifier
+ ik - symbol table tree rank
+ lk - symbol table node size
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_sym_k_f</strong> <span class="sign">(</span>prp_id<span class="sign">,</span> ik<span class="sign">,</span> lk<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ik <span class="sign">!</span> Symbol table tree rank
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lk <span class="sign">!</span> Symbol table node size
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5fszip5ff"></a>
+<a name="robo355"></a><h2>h5pset_szip_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_szip_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets up use of szip compression
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - dataset creation property list identifier
+ options_mask - A bit-mask conveying the desired SZIP options.
+ Current valid values in Fortran are:
+ H5_SZIP_EC_OM_F
+ H5_SZIP_NN_OM_F
+ pixels_per_block - szip parameters
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ April 10 2003
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_szip_f</strong><span class="sign">(</span>prp_id<span class="sign">,</span> options_mask<span class="sign">,</span> pixels_per_block<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Dataset creation property
+ <span class="sign">!</span> list identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> options_mask <span class="sign">!</span> A bit<span class="sign">-</span>mask conveying the desired
+ <span class="sign">!</span> SZIP options
+ <span class="sign">!</span> Current valid values in Fortran are<span class="sign">:</span>
+ <span class="sign">!</span> H5_SZIP_EC_OM_F
+ <span class="sign">!</span> H5_SZIP_NN_OM_F
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> pixels_per_block <span class="sign">!</span> The number of pixels or data elements
+ <span class="sign">!</span> in each data block
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5pset5fuserblock5ff"></a>
+<a name="robo356"></a><h2>h5pset_userblock_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5pset_userblock_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets user block size
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> prp_id - file creation property list to modify
+ size - size of the user-block in bytes
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 14, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5pset_userblock_f</strong> <span class="sign">(</span>prp_id<span class="sign">,</span> size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> prp_id <span class="sign">!</span> Property list identifier
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Size of the user<span class="sign">-</span>block in bytes
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5P2fh5punregister5ff"></a>
+<a name="robo357"></a><h2>h5punregister_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5punregister_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Removes a property from a property list class.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> class - Property list class identifier
+ name - name of the property to remove
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 9, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5punregister_f</strong><span class="sign">(</span>class<span class="sign">,</span> name<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> class <span class="sign">!</span> property list class identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> name of property to remove
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Pff.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Rf_c.html b/fortran/doc/DevelGuide/src/H5Rf_c.html
new file mode 100644
index 0000000..bba197e
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Rf_c.html
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Rf.c</title>
+<!-- Source: ./src/H5Rf.c -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="H5Rf2fH5Rf"></a>
+<a name="robo67"></a><h2>H5Rf</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains C stubs for <a href="./H5Rff_f90.html#robo64">H5R</a> Fortran APIs
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Rf.c on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Rff_F03_f90.html b/fortran/doc/DevelGuide/src/H5Rff_F03_f90.html
new file mode 100644
index 0000000..3202540
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Rff_F03_f90.html
@@ -0,0 +1,492 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Rff_F03.f90</title>
+<!-- Source: ./src/H5Rff_F03.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5R2028F0329"></a>
+<a name="robo65"></a><h2>H5R (F03)</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> MODULE H5R_PROVISIONAL
+</pre>
+<p class="item_name">FILE</p>
+<pre> fortran/src/<a href="#robo_top_of_doc">H5Rff_F03.f90</a>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains Fortran 90 and Fortran 2003 interfaces for <a href="./H5Rff_f90.html#robo64">H5R</a> functions.
+ It contains the same functions as H5Rff_DEPRECIATE.f90 but includes the
+ Fortran 2003 functions and the interface listings. This file will be compiled
+ instead of H5Rff_DEPRECIATE.f90 if Fortran 2003 functions are enabled.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> *** IMPORTANT ***
+ If you add a new <a href="./H5Rff_f90.html#robo64">H5R</a> function you must add the function name to the
+ Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+ This is needed for Windows based operating systems.
+</pre>
+
+<hr />
+<a name="H5R2028F03292fh5rcreate5fobject5ff"></a>
+<a name="robo358"></a><h2>h5rcreate_object_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo65">H5R (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5rcreate_object_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates reference to the object
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - location identifier
+ name - name of the object at the specified location
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> ref - reference to the specified object
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+</pre>
+<p class="item_name">NOTES</p>
+<pre> This is a module procedure for the h5rcreate_f subroutine.
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5rcreate_object_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> name<span class="sign">,</span> ref<span class="sign">,</span> hdferr<span class="sign">)</span>
+ USE<span class="sign">,</span> INTRINSIC <span class="sign">:</span><span class="sign">:</span> ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> Location identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of the object at location specified
+ <span class="sign">!</span> by loc_id identifier
+ TYPE<span class="sign">(</span>hobj_ref_t_f<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>INOUT<span class="sign">)</span><span class="sign">,</span> TARGET <span class="sign">:</span><span class="sign">:</span> ref <span class="sign">!</span> Object reference
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5R2028F03292fh5rcreate5fptr5ff"></a>
+<a name="robo360"></a><h2>h5rcreate_ptr_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo65">H5R (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5rcreate_ptr_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates a reference.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - location identifier
+ name - name of the dataset at the specified location
+ ref_type - type of reference:
+ H5R_OBJECT
+ H5T_STD_REF_DSETREG
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> ref - reference created by the function call.
+ hdferr - error code
+ Success: 0
+ Failure: -1
+ OPTIONAL
+ space_id - dataspace identifier that describes selected region
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ June 20, 2008
+</pre>
+<p class="item_name">NOTES</p>
+<pre> This is a module procedure for the h5rcreate_f
+ subroutine where the output is a pointer.
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5rcreate_ptr_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> name<span class="sign">,</span> ref_type<span class="sign">,</span> ref<span class="sign">,</span> hdferr<span class="sign">,</span> space_id<span class="sign">)</span>
+ USE<span class="sign">,</span> INTRINSIC <span class="sign">:</span><span class="sign">:</span> ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> Location identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of the dataset at location specified
+ <span class="sign">!</span> by loc_id identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ref_type <span class="sign">!</span> type of reference
+ TYPE<span class="sign">(</span>C_PTR<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>INOUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ref <span class="sign">!</span> Reference created by the function call
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span><span class="sign">,</span> OPTIONAL <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataset<span class="squote">'s dataspace identifier
+</pre>
+
+<hr />
+<a name="H5R2028F03292fh5rcreate5fregion5ff"></a>
+<a name="robo362"></a><h2>h5rcreate_region_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo65">H5R (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5rcreate_region_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates reference to the dataset region
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - location identifier
+ name - name of the dataset at the specified location
+ space_id - dataspace identifier that describes selected region
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> ref - reference to the dataset region
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+</pre>
+<p class="item_name">NOTES</p>
+<pre> This is a module procedure for the h5rcreate_f subroutine.
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5rcreate_region_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> name<span class="sign">,</span> space_id<span class="sign">,</span> ref<span class="sign">,</span> hdferr<span class="sign">)</span>
+ USE<span class="sign">,</span> INTRINSIC <span class="sign">:</span><span class="sign">:</span> ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> Location identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of the dataset at location specified
+ <span class="sign">!</span> by loc_id identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataset<span class="squote">'s dataspace identifier
+ TYPE(hdset_reg_ref_t_f), INTENT(INOUT), TARGET :: ref ! Dataset region reference
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+</pre>
+
+<hr />
+<a name="H5R2028F03292fh5rdereference5fobject5ff"></a>
+<a name="robo363"></a><h2>h5rdereference_object_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo65">H5R (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5rdereference_object_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Opens the <a href="./HDF5_f90.html#robo76">HDF5</a> object referenced
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> dset_id - identifier of the dataset containing
+ reference
+ ref - reference to open
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> obj_id - object_identifier
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+</pre>
+<p class="item_name">NOTES</p>
+<pre> This is a module procedure for the h5rdereference_f subroutine.
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5rdereference_object_f</strong><span class="sign">(</span>obj_id<span class="sign">,</span> ref<span class="sign">,</span> ref_obj_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ USE<span class="sign">,</span> INTRINSIC <span class="sign">:</span><span class="sign">:</span> ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_id <span class="sign">!</span> Dataset identifier
+ TYPE<span class="sign">(</span>hobj_ref_t_f<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span><span class="sign">,</span> TARGET <span class="sign">:</span><span class="sign">:</span> ref <span class="sign">!</span> Object reference
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ref_obj_id <span class="sign">!</span> Object identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5R2028F03292fh5rdereference5fptr5ff"></a>
+<a name="robo365"></a><h2>h5rdereference_ptr_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo65">H5R (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5rdereference_ptr_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Opens the <a href="./HDF5_f90.html#robo76">HDF5</a> object referenced.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> obj_id - valid identifier for the file containing the
+ referenced object or any object in that file.
+ ref_type - the reference type of ref.
+ ref - Reference to open.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> ref_obj_id - identifier of referenced object
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ June 20, 2008
+</pre>
+<p class="item_name">NOTES</p>
+<pre> This is a module procedure for the h5rdereference_f
+ subroutine using pointers.
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5rdereference_ptr_f</strong><span class="sign">(</span>obj_id<span class="sign">,</span> ref_type<span class="sign">,</span> ref<span class="sign">,</span> ref_obj_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ USE<span class="sign">,</span> INTRINSIC <span class="sign">:</span><span class="sign">:</span> ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_id <span class="sign">!</span> Valid identifier <span class="keyword">for</span> the file containing the
+ <span class="sign">!</span> referenced object or any object in that file<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ref_type <span class="sign">!</span> The reference type of ref<span class="sign">.</span>
+ TYPE<span class="sign">(</span>C_PTR<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ref <span class="sign">!</span> Object reference
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ref_obj_id
+ <span class="sign">!</span> Identifier of referenced object
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5R2028F03292fh5rdereference5fregion5ff"></a>
+<a name="robo366"></a><h2>h5rdereference_region_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo65">H5R (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5rdereference_region_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Opens the dataset region
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> dset_id - identifier of the dataset containing
+ reference to teh regions
+ ref - reference to open
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> obj_id - dataspace identifier
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+</pre>
+<p class="item_name">NOTES</p>
+<pre> This is a module procedure for the h5rdereference_f subroutine.
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5rdereference_region_f</strong><span class="sign">(</span>obj_id<span class="sign">,</span> ref<span class="sign">,</span> ref_obj_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ USE<span class="sign">,</span> INTRINSIC <span class="sign">:</span><span class="sign">:</span> ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_id <span class="sign">!</span> Dataset identifier
+ TYPE<span class="sign">(</span>hdset_reg_ref_t_f<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span><span class="sign">,</span> TARGET <span class="sign">:</span><span class="sign">:</span> ref <span class="sign">!</span> Object reference
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ref_obj_id <span class="sign">!</span> Dataspace identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5R2028F03292fh5rget5fname5fobject5ff"></a>
+<a name="robo369"></a><h2>h5rget_name_object_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo65">H5R (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5rget_name_object_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves a name of a referenced object.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - Identifier for the dataset containing the reference or for the group that dataset is in.
+ ref - An object or dataset region reference.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> name - A name associated with the referenced object or dataset region.
+
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> size - The size of the name buffer.
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 28, 2008
+
+ SOURCES
+ or for the group that dataset is in.
+ returning 0 (zero) if no name is associated
+ with the identifier
+</pre>
+
+<hr />
+<a name="H5R2028F03292fh5rget5fname5fptr5ff"></a>
+<a name="robo370"></a><h2>h5rget_name_ptr_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo65">H5R (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5rget_name_ptr_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves a name of a referenced object.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - Identifier for the dataset containing the reference or
+ for the group that dataset is in.
+ ref_type - Type of reference.
+ ref - An object or dataset region reference.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> name - A name associated with the referenced object or dataset ptr.
+
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> size - The size of the name buffer.
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 28, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5rget_name_ptr_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> ref_type<span class="sign">,</span> ref<span class="sign">,</span> name<span class="sign">,</span> hdferr<span class="sign">,</span> size<span class="sign">)</span>
+ USE<span class="sign">,</span> INTRINSIC <span class="sign">:</span><span class="sign">:</span> ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> Identifier <span class="keyword">for</span> the dataset containing the reference
+ <span class="sign">!</span> or <span class="keyword">for</span> the group that dataset is in<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ref_type <span class="sign">!</span> Type of reference<span class="sign">.</span>
+ TYPE<span class="sign">(</span>C_PTR<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ref <span class="sign">!</span> An object or dataset region reference<span class="sign">.</span>
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> A name associated with the referenced object or dataset ptr<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> The size of the name buffer<span class="sign">,</span>
+ <span class="sign">!</span> returning 0 <span class="sign">(</span>zero<span class="sign">)</span> <span class="keyword">if</span> no name is associated
+ <span class="sign">!</span> with the identifier
+</pre>
+
+<hr />
+<a name="H5R2028F03292fh5rget5fname5fregion5ff"></a>
+<a name="robo372"></a><h2>h5rget_name_region_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo65">H5R (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5rget_name_region_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves a name of a dataset region.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - Identifier for the dataset containing the reference or
+ for the group that dataset is in.
+ ref - An object or dataset region reference.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> name - A name associated with the referenced object or dataset region.
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> size - The size of the name buffer.
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 28, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5rget_name_region_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> ref<span class="sign">,</span> name<span class="sign">,</span> hdferr<span class="sign">,</span> size<span class="sign">)</span>
+ USE<span class="sign">,</span> INTRINSIC <span class="sign">:</span><span class="sign">:</span> ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> Identifier <span class="keyword">for</span> the dataset containing the reference
+ <span class="sign">!</span> or <span class="keyword">for</span> the group that dataset is in<span class="sign">.</span>
+ TYPE<span class="sign">(</span>hdset_reg_ref_t_f<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span><span class="sign">,</span> TARGET <span class="sign">:</span><span class="sign">:</span> ref <span class="sign">!</span> Object reference
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> The size of the name buffer<span class="sign">,</span>
+ <span class="sign">!</span> returning 0 <span class="sign">(</span>zero<span class="sign">)</span> <span class="keyword">if</span> no name is associated with the identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> A name associated with the referenced object or dataset region<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5R2028F03292fh5rget5fobj5ftype5ff"></a>
+<a name="robo373"></a><h2>h5rget_obj_type_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo65">H5R (F03)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5rget_obj_type_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves the type of object that an object reference points to.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - Identifier for the dataset containing the reference or
+ for the group that dataset is in.
+ ref_type - Type of reference to query.
+ ref - Reference to query.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> obj_type - Type of referenced object.
+ H5G_UNKNOWN_F (-1)
+ H5G_LINK_F 0
+ H5G_GROUP_F 1
+ H5G_DATASET_F 2
+ H5G_TYPE_F 3
+
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ Decemeber 17, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5rget_obj_type_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> ref_type<span class="sign">,</span> ref<span class="sign">,</span> obj_type<span class="sign">,</span> hdferr<span class="sign">)</span>
+ USE<span class="sign">,</span> INTRINSIC <span class="sign">:</span><span class="sign">:</span> ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ref_type
+ TYPE<span class="sign">(</span>C_PTR<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ref
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_type
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Rff_F03.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Rff_F90_f90.html b/fortran/doc/DevelGuide/src/H5Rff_F90_f90.html
new file mode 100644
index 0000000..7d20d0c
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Rff_F90_f90.html
@@ -0,0 +1,305 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Rff_F90.f90</title>
+<!-- Source: ./src/H5Rff_F90.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5R2028F9029"></a>
+<a name="robo66"></a><h2>H5R (F90)</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> MODULE H5R_PROVISIONAL
+</pre>
+<p class="item_name">FILE</p>
+<pre> fortran/src/<a href="#robo_top_of_doc">H5Rff_F90.f90</a>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains Fortran 90 interfaces for <a href="./H5Rff_f90.html#robo64">H5R</a> functions. It contains
+ the same functions as <a href="./H5Rff_F03_f90.html#robo_top_of_doc">H5Rff_F03.f90</a> but excludes the Fortran 2003 functions
+ and the interface listings. This file will be compiled instead of <a href="./H5Rff_F03_f90.html#robo_top_of_doc">H5Rff_F03.f90</a>
+ if Fortran 2003 functions are not enabled.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> *** IMPORTANT ***
+ If you add a new <a href="./H5Rff_f90.html#robo64">H5R</a> function you must add the function name to the
+ Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+ This is needed for Windows based operating systems.
+</pre>
+
+<hr />
+<a name="H5R2028F90292fh5rcreate5fobject5ff"></a>
+<a name="robo359"></a><h2>h5rcreate_object_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo66">H5R (F90)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5rcreate_object_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates reference to the object
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - location identifier
+ name - name of the object at the specified location
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> ref - reference to the specified object
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+</pre>
+<p class="item_name">NOTES</p>
+<pre> This is a module procedure for the h5rcreate_f subroutine.
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5rcreate_object_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> name<span class="sign">,</span> ref<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> Location identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of the object at location specified
+ <span class="sign">!</span> by loc_id identifier
+ TYPE<span class="sign">(</span>hobj_ref_t_f<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ref <span class="sign">!</span> Object reference
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5R2028F90292fh5rcreate5fregion5ff"></a>
+<a name="robo361"></a><h2>h5rcreate_region_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo66">H5R (F90)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5rcreate_region_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates reference to the dataset region
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - location identifier
+ name - name of the dataset at the specified location
+ space_id - dataspace identifier that describes selected region
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> ref - reference to the dataset region
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+</pre>
+<p class="item_name">NOTES</p>
+<pre> This is a module procedure for the h5rcreate_f subroutine.
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5rcreate_region_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> name<span class="sign">,</span> space_id<span class="sign">,</span> ref<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> Location identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Name of the dataset at location specified
+ <span class="sign">!</span> by loc_id identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataset<span class="squote">'s dataspace identifier
+ TYPE(hdset_reg_ref_t_f), INTENT(OUT) :: ref ! Dataset region reference
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+</pre>
+
+<hr />
+<a name="H5R2028F90292fh5rdereference5fobject5ff"></a>
+<a name="robo364"></a><h2>h5rdereference_object_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo66">H5R (F90)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5rdereference_object_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Opens the <a href="./HDF5_f90.html#robo76">HDF5</a> object referenced
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> dset_id - identifier of the dataset containing reference
+ ref - reference to open
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> obj_id - object_identifier
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+</pre>
+<p class="item_name">NOTES</p>
+<pre> This is a module procedure for the h5rdereference_f subroutine.
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5rdereference_object_f</strong><span class="sign">(</span>dset_id<span class="sign">,</span> ref<span class="sign">,</span> obj_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dset_id <span class="sign">!</span> Dataset identifier
+ TYPE<span class="sign">(</span>hobj_ref_t_f<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ref <span class="sign">!</span> Object reference
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_id <span class="sign">!</span> Object identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5R2028F90292fh5rdereference5fregion5ff"></a>
+<a name="robo367"></a><h2>h5rdereference_region_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo66">H5R (F90)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5rdereference_region_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Opens the dataset region
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> dset_id - identifier of the dataset containing
+ reference to teh regions
+ ref - reference to open
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> obj_id - dataspace identifier
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+</pre>
+<p class="item_name">NOTES</p>
+<pre> This is a module procedure for the h5rdereference_f subroutine.
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5rdereference_region_f</strong><span class="sign">(</span>dset_id<span class="sign">,</span> ref<span class="sign">,</span> obj_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dset_id <span class="sign">!</span> Dataset identifier
+ TYPE<span class="sign">(</span>hdset_reg_ref_t_f<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ref <span class="sign">!</span> Object reference
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_id <span class="sign">!</span> Dataspace identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5R2028F90292fh5rget5fname5fobject5ff"></a>
+<a name="robo368"></a><h2>h5rget_name_object_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo66">H5R (F90)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5rget_name_object_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves a name of a referenced object.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - Identifier for the dataset containing the reference or for the group that dataset is in.
+ ref - An object or dataset region reference.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> name - A name associated with the referenced object or dataset region.
+
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> size - The size of the name buffer.
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 28, 2008
+
+ SOURCES
+ or for the group that dataset is in.
+ returning 0 (zero) if no name is associated with the identifier
+</pre>
+
+<hr />
+<a name="H5R2028F90292fh5rget5fname5fregion5ff"></a>
+<a name="robo371"></a><h2>h5rget_name_region_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo66">H5R (F90)</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5rget_name_region_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves a name of a dataset region.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - Identifier for the dataset containing the reference or
+ for the group that dataset is in.
+ ref - An object or dataset region reference.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> name - A name associated with the referenced object or dataset region.
+ hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> size - The size of the name buffer.
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 28, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5rget_name_region_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> ref<span class="sign">,</span> name<span class="sign">,</span> hdferr<span class="sign">,</span> size<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> Identifier <span class="keyword">for</span> the dataset containing the reference
+ <span class="sign">!</span> or <span class="keyword">for</span> the group that dataset is in<span class="sign">.</span>
+ TYPE<span class="sign">(</span>hdset_reg_ref_t_f<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ref <span class="sign">!</span> Object reference
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> The size of the name buffer<span class="sign">,</span>
+ <span class="sign">!</span> returning 0 <span class="sign">(</span>zero<span class="sign">)</span> <span class="keyword">if</span> no name is associated
+ <span class="sign">!</span> with the identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> A name associated with the referenced object or dataset region<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Rff_F90.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Rff_f90.html b/fortran/doc/DevelGuide/src/H5Rff_f90.html
new file mode 100644
index 0000000..2b60b08
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Rff_f90.html
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Rff.f90</title>
+<!-- Source: ./src/H5Rff.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5R"></a>
+<a name="robo64"></a><h2>H5R</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> MODULE <strong>H5R</strong>
+</pre>
+<p class="item_name">FILE</p>
+<pre> fortran/src/<a href="#robo_top_of_doc">H5Rff.f90</a>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains Fortran interfaces for <strong>H5R</strong> functions. It includes
+ all the functions that are independent on whether the Fortran 2003 functions
+ are enabled or disabled.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> *** IMPORTANT ***
+ If you add a new <strong>H5R</strong> function you must add the function name to the
+ Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+ This is needed for Windows based operating systems.
+</pre>
+
+<hr />
+<a name="H5R2fh5rget5fobject5ftype5fobj5ff"></a>
+<a name="robo374"></a><h2>h5rget_object_type_obj_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo64">H5R</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5rget_object_type_obj_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves the type of object that an object reference points to.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> dset_id - identifier of the dataset containing
+ reference to the objects
+ ref - reference to open
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> obj_type - object_type, possible values:
+ H5G_UNKNOWN_F (-1)
+ H5G_GROUP_F 0
+ H5G_DATASET_F 1
+ H5G_TYPE_F 2
+ H5G_LINK_F 3
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+</pre>
+<p class="item_name">NOTES</p>
+<pre> This is a module procedure for the h5rget_object_type_f
+ subroutine.
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5rget_object_type_obj_f</strong><span class="sign">(</span>dset_id<span class="sign">,</span> ref<span class="sign">,</span> obj_type<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dset_id <span class="sign">!</span> Dataset identifier
+ TYPE<span class="sign">(</span>hobj_ref_t_f<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ref <span class="sign">!</span> Object reference
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_type <span class="sign">!</span> Object type
+ <span class="sign">!</span> H5G_UNKNOWN_F <span class="sign">(</span><span class="sign">-</span>1<span class="sign">)</span>
+ <span class="sign">!</span> H5G_GROUP_F 0
+ <span class="sign">!</span> H5G_DATASET_F 1
+ <span class="sign">!</span> H5G_TYPE_F 2
+ <span class="sign">!</span> H5G_LINK_F 3
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5R2fh5rget5fregion5fregion5ff"></a>
+<a name="robo375"></a><h2>h5rget_region_region_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo64">H5R</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5rget_region_region_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves a dataspace with the specified region selected
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> dset_id - identifier of the dataset containing
+ reference to the regions
+ ref - reference to open
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> space_id - dataspace identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+</pre>
+<p class="item_name">NOTES</p>
+<pre> This is a module procedure for the h5rget_region_f subroutine.
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5rget_region_region_f</strong><span class="sign">(</span>dset_id<span class="sign">,</span> ref<span class="sign">,</span> space_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dset_id <span class="sign">!</span> Dataset identifier
+ TYPE<span class="sign">(</span>hdset_reg_ref_t_f<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ref <span class="sign">!</span> Dataset region reference
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Space identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Rff.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Sf_c.html b/fortran/doc/DevelGuide/src/H5Sf_c.html
new file mode 100644
index 0000000..ebdedf7
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Sf_c.html
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Sf.c</title>
+<!-- Source: ./src/H5Sf.c -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="H5Sf2fH5Sf"></a>
+<a name="robo69"></a><h2>H5Sf</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains C stubs for <a href="./H5Sff_f90.html#robo68">H5S</a> Fortran APIs
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Sf.c on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Sff_f90.html b/fortran/doc/DevelGuide/src/H5Sff_f90.html
new file mode 100644
index 0000000..c26b191
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Sff_f90.html
@@ -0,0 +1,1165 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Sff.f90</title>
+<!-- Source: ./src/H5Sff.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5S"></a>
+<a name="robo68"></a><h2>H5S</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> MODULE <strong>H5S</strong>
+</pre>
+<p class="item_name">FILE</p>
+<pre> fortran/src/<a href="#robo_top_of_doc">H5Sff.f90</a>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains Fortran interfaces for <strong>H5S</strong> functions. It includes
+ all the functions that are independent on whether the Fortran 2003 functions
+ are enabled or disabled.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> *** IMPORTANT ***
+ If you add a new <strong>H5S</strong> function you must add the function name to the
+ Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+ This is needed for Windows based operating systems.
+</pre>
+
+<hr />
+<a name="H5S2fh5sclose5ff"></a>
+<a name="robo376"></a><h2>h5sclose_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5sclose_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Releases and terminates access to a dataspace.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> space_id - identifier of dataspace to release
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 6, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5sclose_f</strong><span class="sign">(</span>space_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataspace identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5S2fh5scopy5ff"></a>
+<a name="robo377"></a><h2>h5scopy_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5scopy_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates an exact copy of a dataspace.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> space_id - dataspace identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> new_space_id - identifier of dataspace's copy
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 6, 2001
+</pre>
+<p class="item_name">NOTES</p>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5scopy_f</strong><span class="sign">(</span>space_id<span class="sign">,</span> new_space_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataspace identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> new_space_id
+ <span class="sign">!</span> Identifier of dataspace<span class="squote">'s copy
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+</pre>
+
+<hr />
+<a name="H5S2fh5screate5ff"></a>
+<a name="robo378"></a><h2>h5screate_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5screate_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates a new dataspace of a specified type.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> classtype - the type of the dataspace to be created
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> space_id - dataspace identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 6, 2001
+</pre>
+<p class="item_name">NOTES</p>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5screate_f</strong><span class="sign">(</span>classtype<span class="sign">,</span> space_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> classtype <span class="sign">!</span> The type of the dataspace
+ <span class="sign">!</span> to be created<span class="sign">.</span>
+ <span class="sign">!</span> Possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5S_SCALAR_F <span class="sign">(</span>0<span class="sign">)</span>
+ <span class="sign">!</span> H5S_SIMPLE_F<span class="sign">(</span>1<span class="sign">)</span>
+ <span class="sign">!</span> H5S_NULL_F<span class="sign">(</span>2<span class="sign">)</span>
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataspace identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5S2fh5screate5fsimple5ff"></a>
+<a name="robo379"></a><h2>h5screate_simple_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5screate_simple_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates a new simple data space and opens it for access .
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> rank - number of dimensions
+ dims - an array of the size of each dimension
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> space_id - dataspace identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> maxdims - an array of the maximum size of each dimension
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 6, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5screate_simple_f</strong><span class="sign">(</span>rank<span class="sign">,</span> dims<span class="sign">,</span> space_id<span class="sign">,</span> hdferr<span class="sign">,</span> maxdims<span class="sign">)</span>
+
+ IMPLICIT NONE
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> rank <span class="sign">!</span> Number of dataspace dimensions
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dims<span class="sign">(</span>rank<span class="sign">)</span>
+ <span class="sign">!</span> Array with the dimension
+ <span class="sign">!</span> sizes
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataspace identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> maxdims<span class="sign">(</span>rank<span class="sign">)</span>
+ <span class="sign">!</span> Array with the maximum
+ <span class="sign">!</span> dimension sizes
+</pre>
+
+<hr />
+<a name="H5S2fH5Sdecode5ff"></a>
+<a name="robo380"></a><h2>H5Sdecode_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Sdecode_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Decode a binary object description of data space and return a new object handle.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> buf - Buffer for the data space object to be decoded.
+ obj_id - Object ID
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 26, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5sdecode_f<span class="sign">(</span>buf<span class="sign">,</span> obj_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> buf <span class="sign">!</span> Buffer <span class="keyword">for</span> the data space object to be decoded<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_id <span class="sign">!</span> Object ID
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5S2fH5Sencode5ff"></a>
+<a name="robo381"></a><h2>H5Sencode_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Sencode_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Encode a data space object description into a binary buffer.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> obj_id - Identifier of the object to be encoded.
+ buf - Buffer for the object to be encoded into.
+ nalloc - The size of the allocated buffer.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> nalloc - The size of the buffer needed.
+ hdferr - Returns 0 if successful and -1 if fails.
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ March 26, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5sencode_f<span class="sign">(</span>obj_id<span class="sign">,</span> buf<span class="sign">,</span> nalloc<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_id <span class="sign">!</span> Identifier of the object to be encoded<span class="sign">.</span>
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> buf <span class="sign">!</span> Buffer <span class="keyword">for</span> the object to be encoded into<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>INOUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> nalloc <span class="sign">!</span> The size of the allocated buffer<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5S2fh5sextent5fcopy5ff"></a>
+<a name="robo382"></a><h2>h5sextent_copy_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5sextent_copy_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Copies the extent of a dataspace.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> dest_space_id - the identifier for the dataspace to which
+ the extent is copied
+ source_space_id - the identifier for the dataspace from
+ which the extent is copied
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> NONE
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 6, 2001
+</pre>
+<p class="item_name">NOTES</p>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5sextent_copy_f</strong><span class="sign">(</span>dest_space_id<span class="sign">,</span> source_space_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dest_space_id <span class="sign">!</span> Identifier of destination
+ <span class="sign">!</span> dataspace
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> source_space_id <span class="sign">!</span> Identifier of source
+ <span class="sign">!</span> dataspace
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5S2fh5sextent5fequal5ff"></a>
+<a name="robo383"></a><h2>h5sextent_equal_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5sextent_equal_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Determines whether two dataspace extents are equal.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> space1_id - First dataspace identifier.
+ space2_id - Second dataspace identifier.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> Equal - .TRUE. if equal, .FALSE. if unequal.
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ April 2, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5sextent_equal_f</strong><span class="sign">(</span>space1_id<span class="sign">,</span> space2_id<span class="sign">,</span> equal<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space1_id <span class="sign">!</span> First dataspace identifier<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space2_id <span class="sign">!</span> Second dataspace identifier<span class="sign">.</span>
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> Equal <span class="sign">!</span> <span class="sign">.</span>TRUE<span class="sign">.</span> <span class="keyword">if</span> equal<span class="sign">,</span> <span class="sign">.</span>FALSE<span class="sign">.</span> <span class="keyword">if</span> unequal<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5S2fh5sget5fselect5fbounds5ff"></a>
+<a name="robo384"></a><h2>h5sget_select_bounds_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5sget_select_bounds_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets the bounding box containing the current selection.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> space_id - dataspace identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> start - starting coordinates of bounding box
+ end - ending coordinates of bounding box
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> NONE
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 6, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5sget_select_bounds_f</strong><span class="sign">(</span>space_id<span class="sign">,</span> start<span class="sign">,</span> END<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataspace identifier
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> DIMENSION<span class="comment">(*), INTENT(OUT) :: start
+ ! Starting coordinates of the bounding box.
+ INTEGER(HSIZE_T), DIMENSION(*)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> END
+ <span class="sign">!</span>Ending coordinates of the bounding box<span class="sign">,</span>
+ <span class="sign">!</span>i<span class="sign">.</span>e<span class="sign">.</span><span class="sign">,</span> the coordinates of the diagonally
+ <span class="sign">!</span>opposite corner
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5S2fh5sget5fselect5felem5fnpoints5ff"></a>
+<a name="robo385"></a><h2>h5sget_select_elem_npoints_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5sget_select_elem_npoints_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets the number of element points in the current selection
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> space_id - dataspace identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> num_points - number of element points in the current
+ dataspace selection
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 6, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5sget_select_elem_npoints_f</strong><span class="sign">(</span>space_id<span class="sign">,</span> num_points<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataspace identifier
+ INTEGER<span class="sign">(</span>HSSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> num_points
+ <span class="sign">!</span>number of element points
+ <span class="sign">!</span>in the current dataspace
+ <span class="sign">!</span>selection
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5S2fh5sget5fselect5felem5fpointlist5ff"></a>
+<a name="robo386"></a><h2>h5sget_select_elem_pointlist_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5sget_select_elem_pointlist_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets the list of element points currently selected.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> space_id - dataspace identifier
+ startpoint - element point to start with
+ num_points - number of elemnt points to get
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> buf - buffer with element points selected
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 6, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5sget_select_elem_pointlist_f</strong><span class="sign">(</span>space_id<span class="sign">,</span> startpoint<span class="sign">,</span> <span class="sign">&amp;</span>
+ num_points<span class="sign">,</span> buf<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataspace identifier
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> startpoint
+ <span class="sign">!</span>Element point to start with<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> num_points
+ <span class="sign">!</span>Number of element points to get
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> DIMENSION<span class="comment">(*), INTENT(OUT) :: buf
+ !List of element points selected
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+</pre>
+
+<hr />
+<a name="H5S2fh5sget5fselect5fhyper5fblocklist5ff"></a>
+<a name="robo387"></a><h2>h5sget_select_hyper_blocklist_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5sget_select_hyper_blocklist_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets the list of hyperslab blocks currently selected.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> space_id - dataspace identifier
+ startblock - hyperslab block to start with
+ num_blocks - number of blocks to get
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> buf - buffer to hold block list
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 6, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5sget_select_hyper_blocklist_f</strong><span class="sign">(</span>space_id<span class="sign">,</span> startblock<span class="sign">,</span> <span class="sign">&amp;</span>
+ num_blocks<span class="sign">,</span> buf<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataspace identifier
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> startblock
+ <span class="sign">!</span>Hyperslab block to start with<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> num_blocks
+ <span class="sign">!</span>number of hyperslab blocks
+ <span class="sign">!</span>to get in the current dataspace
+ <span class="sign">!</span>selection
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> DIMENSION<span class="comment">(*), INTENT(OUT) :: buf
+ !List of hyperslab blocks selected
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+</pre>
+
+<hr />
+<a name="H5S2fh5sget5fselect5fhyper5fnblocks5ff"></a>
+<a name="robo388"></a><h2>h5sget_select_hyper_nblocks_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5sget_select_hyper_nblocks_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Get number of hyperslab blocks.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> space_id - dataspace identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> num_blocks - number of hyperslab blocks in the current
+ hyperslab selection
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 6, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5sget_select_hyper_nblocks_f</strong><span class="sign">(</span>space_id<span class="sign">,</span> num_blocks<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataspace identifier
+ INTEGER<span class="sign">(</span>HSSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> num_blocks
+ <span class="sign">!</span>number of hyperslab blocks
+ <span class="sign">!</span>in the current dataspace
+ <span class="sign">!</span>selection
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5S2fh5sget5fselect5fnpoints5ff"></a>
+<a name="robo389"></a><h2>h5sget_select_npoints_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5sget_select_npoints_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Determines the number of elements in a dataspace selection.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> space_id - dataspace identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> npoints - number of points in the dataspace selection
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 6, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5sget_select_npoints_f</strong><span class="sign">(</span>space_id<span class="sign">,</span> npoints<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataspace identifier
+ INTEGER<span class="sign">(</span>HSSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> npoints <span class="sign">!</span> Number of elements in the
+ <span class="sign">!</span> selection
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5S2fh5sget5fselect5ftype5ff"></a>
+<a name="robo390"></a><h2>h5sget_select_type_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5sget_select_type_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieve the type of selection
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> space_id - dataspace iidentifier with selection
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> type - flag, valid values are:
+ H5S_SEL_ERROR_F
+ H5S_SEL_NONE_F
+ H5S_SEL_POINTS_F
+ H5S_SEL_HYPERSLABS_F
+ H5S_SEL_ALL_F
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ October 7, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5sget_select_type_f</strong><span class="sign">(</span>space_id<span class="sign">,</span> type<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>INOUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataspace identifier to
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type <span class="sign">!</span> Selection type
+ <span class="sign">!</span> H5S_SEL_ERROR_F
+ <span class="sign">!</span> H5S_SEL_NONE_F
+ <span class="sign">!</span> H5S_SEL_POINTS_F
+ <span class="sign">!</span> H5S_SEL_HYPERSLABS_F
+ <span class="sign">!</span> H5S_SEL_ALL_F
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5S2fh5sget5fsimple5fextent5fdims5ff"></a>
+<a name="robo391"></a><h2>h5sget_simple_extent_dims_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5sget_simple_extent_dims_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves dataspace dimension size and maximum size.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> space_id - dataspace identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> dims - array to store size of each dimension
+ maxdims - array to store maximum size of each
+ dimension
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 6, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5sget_simple_extent_dims_f</strong><span class="sign">(</span>space_id<span class="sign">,</span> dims<span class="sign">,</span> maxdims<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataspace identifier
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> DIMENSION<span class="comment">(*), INTENT(OUT) :: dims
+ ! Array to store dimension sizes
+ INTEGER(HSIZE_T), DIMENSION(*)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> maxdims
+ <span class="sign">!</span> Array to store max dimension
+ <span class="sign">!</span> sizes
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span> <span class="sign">-</span>1 on failure<span class="sign">,</span>
+ <span class="sign">!</span> number of dimensions on
+ <span class="sign">!</span> on success
+</pre>
+
+<hr />
+<a name="H5S2fh5sget5fsimple5fextent5fndims5ff"></a>
+<a name="robo392"></a><h2>h5sget_simple_extent_ndims_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5sget_simple_extent_ndims_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Determines the dimensionality of a dataspace
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> space_id - dataspace identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> rank - number of dataspace dimensions
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 6, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5sget_simple_extent_ndims_f</strong><span class="sign">(</span>space_id<span class="sign">,</span> rank<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataspace identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> rank <span class="sign">!</span> Number of dimensions
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5S2fh5sget5fsimple5fextent5fnpoints5ff"></a>
+<a name="robo393"></a><h2>h5sget_simple_extent_npoints_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5sget_simple_extent_npoints_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Determines the number of elements in a dataspace.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> space_id - dataspace identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> npoints - number of elements in the dataspace
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 6, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5sget_simple_extent_npoints_f</strong><span class="sign">(</span>space_id<span class="sign">,</span> npoints<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataspace identifier
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> npoints <span class="sign">!</span> Number of elements in
+ <span class="sign">!</span> dataspace
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5S2fh5sget5fsimple5fextent5ftype5ff"></a>
+<a name="robo394"></a><h2>h5sget_simple_extent_type_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5sget_simple_extent_type_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Determine the current class of a dataspace
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> space_id - dataspace identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> classtype - class type, possible values are:
+ H5S_NO_CLASS_F (-1)
+ H5S_SCALAR_F (0)
+ H5S_SIMPLE_F (1)
+ H5S_NULL_F (2)
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 6, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5sget_simple_extent_type_f</strong><span class="sign">(</span>space_id<span class="sign">,</span> classtype<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataspace identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> classtype <span class="sign">!</span> Class type <span class="sign">,</span> possible values
+ <span class="sign">!</span> are<span class="sign">:</span>
+ <span class="sign">!</span> H5S_NO_CLASS_F <span class="sign">(</span><span class="sign">-</span>1<span class="sign">)</span>
+ <span class="sign">!</span> H5S_SCALAR_F <span class="sign">(</span>0<span class="sign">)</span>
+ <span class="sign">!</span> H5S_SIMPLE_F <span class="sign">(</span>1<span class="sign">)</span>
+ <span class="sign">!</span> H5S_NULL_F <span class="sign">(</span>2<span class="sign">)</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5S2fh5sis5fsimple5ff"></a>
+<a name="robo395"></a><h2>h5sis_simple_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5sis_simple_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Determines whether a dataspace is a simple dataspace.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> space_id - dataspace identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> status - flag to indicate if dataspace
+ is simple or not
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 6, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5sis_simple_f</strong><span class="sign">(</span>space_id<span class="sign">,</span> status<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataspace identifier
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> status <span class="sign">!</span> Flag<span class="sign">,</span> idicates <span class="keyword">if</span> dataspace
+ <span class="sign">!</span> is simple or not <span class="sign">(</span> TRUE or
+ <span class="sign">!</span> FALSE<span class="sign">)</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5S2fh5soffset5fsimple5ff"></a>
+<a name="robo396"></a><h2>h5soffset_simple_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5soffset_simple_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets the offset of a simple dataspace.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> space_id - dataspace identifier
+ offset - the offset at which to position the
+ selection
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> NONE
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 6, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5soffset_simple_f</strong><span class="sign">(</span>space_id<span class="sign">,</span> offset<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataspace identifier
+ INTEGER<span class="sign">(</span>HSSIZE_T<span class="sign">)</span><span class="sign">,</span> DIMENSION<span class="comment">(*), INTENT(IN) :: offset
+ ! The offset at which to position
+ ! the selection
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+</pre>
+
+<hr />
+<a name="H5S2fh5sselect5fall5ff"></a>
+<a name="robo397"></a><h2>h5sselect_all_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5sselect_all_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Selects the entire dataspace.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> space_id - Identifier for the dataspace in which
+ selection being made
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 6, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5sselect_all_f</strong><span class="sign">(</span>space_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataspace identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5S2fh5sselect5felements5ff"></a>
+<a name="robo398"></a><h2>h5sselect_elements_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5sselect_elements_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Selects elements to be included in the selection for
+ a dataspace
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> space_id - dataspace identifier
+ operator - flag, valid values are:
+ H5S_SELECT_SET_F
+ H5S_SELECT_APPEND_F
+ H5S_SELECT_PREPEND_F
+ rank - number of dataspace dimensions
+ num_elements - number of elements to be selected
+ coord - 2D (rank x num_elements) array with the
+ elements coordinates ( 1-based); in C the
+ array is stored in 2D as (num_element x rank)
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 6, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5sselect_elements_f</strong><span class="sign">(</span>space_id<span class="sign">,</span> OPERATOR<span class="sign">,</span> rank<span class="sign">,</span> <span class="sign">&amp;</span>
+ num_elements<span class="sign">,</span> coord<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> OPERATOR
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> rank
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> num_elements
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">,</span> DIMENSION<span class="sign">(</span>rank<span class="sign">,</span>num_elements<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> coord
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr
+</pre>
+
+<hr />
+<a name="H5S2fh5sselect5fhyperslab5ff"></a>
+<a name="robo399"></a><h2>h5sselect_hyperslab_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5sselect_hyperslab_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Selects a hyperslab region to add to the current selected
+ region
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> space_id - dataspace identifier
+ operator - flag, valid values are:
+ H5S_SELECT_SET_F (0)
+ H5S_SELECT_OR_F (1)
+ start - array with hyperslab offsets
+ count - number of blocks included in the
+ hyperslab
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> stride - array with hyperslab strides
+ block - array with hyperslab block sizes
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 6, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5sselect_hyperslab_f</strong><span class="sign">(</span>space_id<span class="sign">,</span> operator<span class="sign">,</span> start<span class="sign">,</span> count<span class="sign">,</span> <span class="sign">&amp;</span>
+ hdferr<span class="sign">,</span> stride<span class="sign">,</span> block<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataspace identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> operator <span class="sign">!</span> Flag<span class="sign">,</span> valid values are<span class="sign">:</span>
+ <span class="sign">!</span> H5S_SELECT_SET_F <span class="sign">(</span>0<span class="sign">)</span>
+ <span class="sign">!</span> H5S_SELECT_OR_F <span class="sign">(</span>1<span class="sign">)</span>
+ <span class="sign">!</span>
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> DIMENSION<span class="comment">(*), INTENT(IN) :: start
+ ! Starting coordinates of the hyperslab
+ INTEGER(HSIZE_T), DIMENSION(*)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> count
+ <span class="sign">!</span> Number of blocks to select
+ <span class="sign">!</span> from dataspace
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> DIMENSION<span class="sign">(</span><span class="sign">:</span><span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> stride
+ <span class="sign">!</span> Array of how many elements to move
+ <span class="sign">!</span> in each direction
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> DIMENSION<span class="sign">(</span><span class="sign">:</span><span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> block
+ <span class="sign">!</span> Sizes of element block
+</pre>
+
+<hr />
+<a name="H5S2fh5sselect5fnone5ff"></a>
+<a name="robo400"></a><h2>h5sselect_none_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5sselect_none_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Resets the selection region to include no elements.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> space_id - the identifier for the dataspace in which
+ the selection is being reset.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 6, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5sselect_none_f</strong><span class="sign">(</span>space_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataspace identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5S2fh5sselect5fvalid5ff"></a>
+<a name="robo401"></a><h2>h5sselect_valid_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5sselect_valid_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Verifies that the selection is within the extent of
+ the dataspace.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> space_id - identifier for the dataspace for which
+ selection is verified
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 6, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5sselect_valid_f</strong><span class="sign">(</span>space_id<span class="sign">,</span> status<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataspace identifier
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> status <span class="sign">!</span> TRUE <span class="keyword">if</span> the selection is
+ <span class="sign">!</span> contained within the extent<span class="sign">,</span>
+ <span class="sign">!</span> FALSE otherwise<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5S2fh5sset5fextent5fnone5ff"></a>
+<a name="robo402"></a><h2>h5sset_extent_none_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5sset_extent_none_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Removes the extent from a dataspace.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> space_id - dataspace identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 6, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5sset_extent_none_f</strong><span class="sign">(</span>space_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataspace identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5S2fh5sset5fextent5fsimple5ff"></a>
+<a name="robo403"></a><h2>h5sset_extent_simple_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo68">H5S</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5sset_extent_simple_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets or resets the size of an existing dataspace.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> space_id - dataspace identifier
+ rank - dataspace number of dimensions
+ current_size - array with the new sizes of dimensions
+ maximum_size - array with the new maximum sizes of
+ dimensions
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 6, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5sset_extent_simple_f</strong><span class="sign">(</span>space_id<span class="sign">,</span> rank<span class="sign">,</span> current_size<span class="sign">,</span> <span class="sign">&amp;</span>
+ maximum_size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> space_id <span class="sign">!</span> Dataspace identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> rank <span class="sign">!</span> Dataspace rank
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> DIMENSION<span class="sign">(</span>rank<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> current_size
+ <span class="sign">!</span> Array with the new sizes
+ <span class="sign">!</span> of dimensions
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> DIMENSION<span class="sign">(</span>rank<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> maximum_size
+ <span class="sign">!</span> Array with the new maximum
+ <span class="sign">!</span> sizes of dimensions
+ <span class="sign">!</span> sizes
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Sff.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Tf_c.html b/fortran/doc/DevelGuide/src/H5Tf_c.html
new file mode 100644
index 0000000..b36c2a5
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Tf_c.html
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Tf.c</title>
+<!-- Source: ./src/H5Tf.c -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="H5Tf2fH5Tf"></a>
+<a name="robo73"></a><h2>H5Tf</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains C stubs for <a href="./H5Tff_f90.html#robo70">H5T</a> Fortran APIs
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Tf.c on Sun Aug 14 2011 22:49:37
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Tff_f90.html b/fortran/doc/DevelGuide/src/H5Tff_f90.html
new file mode 100644
index 0000000..3b7dfe8
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Tff_f90.html
@@ -0,0 +1,2378 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Tff.f90</title>
+<!-- Source: ./src/H5Tff.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5T"></a>
+<a name="robo70"></a><h2>H5T</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> MODULE <strong>H5T</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains Fortran interfaces for <strong>H5T</strong> functions. It includes
+ all the functions that are independent on whether the Fortran 2003 functions
+ are enabled or disabled.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> *** IMPORTANT ***
+ If you add a new <strong>H5T</strong> function you must add the function name to the
+ Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+ This is needed for Windows based operating systems.
+</pre>
+
+<hr />
+<a name="H5T2fh5tarray5fcreate5ff"></a>
+<a name="robo404"></a><h2>h5tarray_create_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tarray_create_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates an array datatype object.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> base_id - datatype identifier for the array
+ base datatype
+ rank - rank of the array
+ dims - array dimension sizes
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> type_id - array datatype identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tarray_create_f</strong><span class="sign">(</span>base_id<span class="sign">,</span> rank<span class="sign">,</span> dims<span class="sign">,</span> type_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> base_id <span class="sign">!</span> identifier of array base datatype
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> rank <span class="sign">!</span> Rank of the array
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span> DIMENSION<span class="comment">(*), INTENT(IN) :: dims !Sizes of each array dimension
+ INTEGER(HID_T), INTENT(OUT) :: type_id ! identifier of the array datatype
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tclose5ff"></a>
+<a name="robo405"></a><h2>h5tclose_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tclose_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Releases a datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tclose_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tcommit5fanon5ff"></a>
+<a name="robo406"></a><h2>h5tcommit_anon_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tcommit_anon_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Commits a transient datatype to a file,
+ creating a new named datatype,
+ but does not link it into the file structure.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - A file or group identifier specifying the file
+ in which the new named datatype is to be created.
+ dtype_id - A datatype identifier.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> tcpl_id - A datatype creation property list identifier.
+ (H5P_DEFAULT_F for the default property list.)
+ tapl_id - A datatype access property list identifier.
+ should always be passed as the value H5P_DEFAULT_F.
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February 25, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tcommit_anon_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> dtype_id<span class="sign">,</span> hdferr<span class="sign">,</span> tcpl_id<span class="sign">,</span> tapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> A file or group identifier specifying
+ <span class="sign">!</span> the file in which the new named datatype
+ <span class="sign">!</span> is to be created<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dtype_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> tcpl_id <span class="sign">!</span> A datatype creation property
+ <span class="sign">!</span> list identifier<span class="sign">.</span>
+ <span class="sign">!</span> <span class="sign">(</span>H5P_DEFAULT_F <span class="keyword">for</span> the <span class="keyword">default</span> property list<span class="sign">.</span><span class="sign">)</span>
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> tapl_id <span class="sign">!</span> A datatype access property list identifier<span class="sign">.</span>
+ <span class="sign">!</span> should always be passed as the value H5P_DEFAULT_F<span class="sign">.</span>
+</pre>
+
+<hr />
+<a name="H5T2fh5tcommit5ff"></a>
+<a name="robo407"></a><h2>h5tcommit_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tcommit_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Commits a transient datatype to a file, creating a
+ new named datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - location identifier
+ name - name of the datatype to be stored
+ at the specified location
+ type_id - identifier of a datatype to be stored
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> lcpl_id - Link creation property list
+ tcpl_id - Datatype creation property list
+ tapl_id - Datatype access property list
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> - Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+
+ - Added optional parameters introduced in version 1.8
+ M. Scot Breitenfeld
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tcommit_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> name<span class="sign">,</span> type_id<span class="sign">,</span> hdferr<span class="sign">,</span> <span class="sign">&amp;</span>
+ lcpl_id<span class="sign">,</span> tcpl_id<span class="sign">,</span> tapl_id <span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> File or group identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name
+ <span class="sign">!</span> Datatype name within file or group
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lcpl_id <span class="sign">!</span> Link creation property list
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> tcpl_id <span class="sign">!</span> Datatype creation property list
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> tapl_id <span class="sign">!</span> Datatype access property list
+</pre>
+
+<hr />
+<a name="H5T2fh5tcommitted5ff"></a>
+<a name="robo408"></a><h2>h5tcommitted_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tcommitted_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Determines whether a datatype is a named type or a transient type.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> dtype_id - A datatype identifier.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> committed - .TRUE., if the datatype has been committed
+ .FALSE., if the datatype has not been committed.
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ February 25, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tcommitted_f</strong><span class="sign">(</span>dtype_id<span class="sign">,</span> committed<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dtype_id <span class="sign">!</span> A datatype identifier
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> committed <span class="sign">!</span> <span class="sign">.</span>TRUE<span class="sign">.</span><span class="sign">,</span> <span class="keyword">if</span> the datatype has been committed
+ <span class="sign">!</span><span class="sign">.</span>FALSE<span class="sign">.</span><span class="sign">,</span> <span class="keyword">if</span> the datatype has not been committed<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+<span class="sign">!</span> Success<span class="sign">:</span> 0
+<span class="sign">!</span> Failure<span class="sign">:</span> <span class="sign">-</span>1
+</pre>
+
+<hr />
+<a name="H5T2fh5tcompiler5fconv5ff"></a>
+<a name="robo409"></a><h2>h5tcompiler_conv_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tcompiler_conv_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Check whether the library’s default conversion is hard conversion.R
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> src_id - Identifier for the source datatype.
+ dst_id - Identifier for the destination datatype.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> flag - TRUE for compiler conversion, FALSE for library conversion
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ April 9, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tcompiler_conv_f</strong><span class="sign">(</span> src_id<span class="sign">,</span> dst_id<span class="sign">,</span> flag<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> src_id <span class="sign">!</span> Identifier <span class="keyword">for</span> the source datatype<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dst_id <span class="sign">!</span> Identifier <span class="keyword">for</span> the destination datatype<span class="sign">.</span>
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> flag <span class="sign">!</span> <span class="sign">.</span>TRUE<span class="sign">.</span> <span class="keyword">for</span> compiler conversion<span class="sign">,</span> <span class="sign">.</span>FALSE<span class="sign">.</span> <span class="keyword">for</span> library conversion
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5T2fh5tcopy5ff"></a>
+<a name="robo411"></a><h2>h5tcopy_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tcopy_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates a copy of exisiting datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> new_type_id - identifier of datatype's copy
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tcopy_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> new_type_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> new_type_id
+ <span class="sign">!</span> Identifier of datatype<span class="squote">'s copy
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tcreate5ff"></a>
+<a name="robo412"></a><h2>h5tcreate_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tcreate_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates a new dataype
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> class - datatype class, possible values are:
+ H5T_COMPOUND_F
+ H5T_ENUM_F
+ H5T_OPAQUE_F
+ size - datattype size
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> type_id - datatype identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tcreate_f</strong><span class="sign">(</span>class<span class="sign">,</span> size<span class="sign">,</span> type_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> class <span class="sign">!</span> Datatype class can be one of
+ <span class="sign">!</span> H5T_COMPOUND_F
+ <span class="sign">!</span> H5T_ENUM_F
+ <span class="sign">!</span> H5T_OPAQUE_F
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Size of the datatype
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fH5Tdecode5ff"></a>
+<a name="robo413"></a><h2>H5Tdecode_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Tdecode_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Decode a binary object description of data type and return a new object handle.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> buf - Buffer for the data space object to be decoded.
+ obj_id - Object ID
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ April 9, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5tdecode_f<span class="sign">(</span>buf<span class="sign">,</span> obj_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> buf <span class="sign">!</span> Buffer <span class="keyword">for</span> the data space object to be decoded<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_id <span class="sign">!</span> Object ID
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tenaum5finsert5ff"></a>
+<a name="robo414"></a><h2>h5tenaum_insert_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tenaum_insert_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Inserts a new enumeration datatype member.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5tenum_insert_f<span class="sign">(</span>type_id<span class="sign">,</span> name<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span>Name of the new member
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span>value of the new member
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fH5Tencode5ff"></a>
+<a name="robo415"></a><h2>H5Tencode_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>H5Tencode_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Encode a data type object description into a binary buffer.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> obj_id - Identifier of the object to be encoded.
+ buf - Buffer for the object to be encoded into.
+ nalloc - The size of the allocated buffer.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> nalloc - The size of the buffer needed.
+ hdferr - Returns 0 if successful and -1 if fails.
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ April 9, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5tencode_f<span class="sign">(</span>obj_id<span class="sign">,</span> buf<span class="sign">,</span> nalloc<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> obj_id <span class="sign">!</span> Identifier of the object to be encoded<span class="sign">.</span>
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> buf <span class="sign">!</span> Buffer <span class="keyword">for</span> the object to be encoded into<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>INOUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> nalloc <span class="sign">!</span> The size of the allocated buffer<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tenum5fcreate5ff"></a>
+<a name="robo416"></a><h2>h5tenum_create_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tenum_create_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates a new enumeration datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> parent_id - datatype identifier for base datatype
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> new_type_id - datatype identifier for the enumeration datatype
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tenum_create_f</strong><span class="sign">(</span>parent_id<span class="sign">,</span> new_type_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> parent_id <span class="sign">!</span> Datatype identifier <span class="keyword">for</span>
+ <span class="sign">!</span> the base datatype
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> new_type_id
+ <span class="sign">!</span>datatype identifier <span class="keyword">for</span> the
+ <span class="sign">!</span> new enumeration datatype
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tenum5fnameof5ff"></a>
+<a name="robo417"></a><h2>h5tenum_nameof_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tenum_nameof_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns the symbol name corresponding to a specified
+ member of an enumeration datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+ value - value of the enumeration datatype
+ namelen - name buffer size
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> name - buffer to hold symbol name
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+
+ NOTE
+ According to the standard: Because an INTENT(OUT) variable is considered undefined
+ on entry to the procedure, any default initialization specified for its type will
+ be applied. So we need to blank out the "name" to be portable and eliminate any
+ characters the "name' may contain upon entry, depending on compiler implementation.
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tenum_nameof_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> value<span class="sign">,</span> namelen<span class="sign">,</span> name<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span>Name of the enumeration datatype<span class="sign">.</span>
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> namelen <span class="sign">!</span>length of the name
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span>value of the enumeration datatype<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tenum5fvaluof5ff"></a>
+<a name="robo418"></a><h2>h5tenum_valuof_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tenum_valuof_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns the value corresponding to a specified
+ member of an enumeration datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+ name - symbol name
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> value - value of the enumeration datatype
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE h5tenum_valueof_f<span class="sign">(</span>type_id<span class="sign">,</span> name<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span>Name of the enumeration datatype<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span>value of the enumeration datatype<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tequal5ff"></a>
+<a name="robo419"></a><h2>h5tequal_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tequal_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Determines whether two datatype identifiers refer
+ to the same datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type1_id - datatype identifier
+ type2_id - datatype identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> flag - TRUE/FALSE flag to indicate
+ if two datatypes are equal
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tequal_f</strong><span class="sign">(</span>type1_id<span class="sign">,</span> type2_id<span class="sign">,</span> flag<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type1_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type2_id <span class="sign">!</span> Datatype identifier
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> flag <span class="sign">!</span> TRUE<span class="sign">/</span>FALSE flag to indicate <span class="keyword">if</span> two
+ <span class="sign">!</span> datatypes are equal
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tget5farray5fdims5ff"></a>
+<a name="robo422"></a><h2>h5tget_array_dims_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tget_array_dims_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns sizes of array dimensions.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - array datatype identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> dims - buffer to store array datatype dimensions
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tget_array_dims_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> dims<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Array datatype identifier
+ INTEGER<span class="sign">(</span>HSIZE_T<span class="sign">)</span><span class="sign">,</span>DIMENSION<span class="comment">(*), INTENT(OUT) :: dims !buffer to store array datatype
+ ! dimensions
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tget5farray5fndims5ff"></a>
+<a name="robo423"></a><h2>h5tget_array_ndims_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tget_array_ndims_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns the rank of an array datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - array datatype identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> ndims - number of array dimensions
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tget_array_ndims_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> ndims<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Array datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ndims <span class="sign">!</span> number of array dimensions
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tget5fclass5ff"></a>
+<a name="robo424"></a><h2>h5tget_class_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tget_class_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns the datatype class identifier.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> class - class, possible values are:
+ H5T_NO_CLASS_F (-1)
+ H5T_INTEGER_F (0)
+ H5T_FLOAT_F (1)
+ H5T_TIME_F (2)
+ H5T_STRING_F (3)
+ H5T_BITFIELD_F (4)
+ H5T_OPAQUE_F (5)
+ H5T_COMPOUND_F (6)
+ H5T_REFERENCE_F (7)
+ H5T_ENUM_F (8)
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tget_class_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> class<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> class
+ <span class="sign">!</span> Datatype class<span class="sign">,</span> possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5T_NO_CLASS_F <span class="sign">(</span><span class="sign">-</span>1<span class="sign">)</span>
+ <span class="sign">!</span> H5T_INTEGER_F <span class="sign">(</span>0<span class="sign">)</span>
+ <span class="sign">!</span> H5T_FLOAT_F <span class="sign">(</span>1<span class="sign">)</span>
+ <span class="sign">!</span> H5T_TIME_F <span class="sign">(</span>2<span class="sign">)</span>
+ <span class="sign">!</span> H5T_STRING_F <span class="sign">(</span>3<span class="sign">)</span>
+ <span class="sign">!</span> H5T_BITFIELD_F <span class="sign">(</span>4<span class="sign">)</span>
+ <span class="sign">!</span> H5T_OPAQUE_F <span class="sign">(</span>5<span class="sign">)</span>
+ <span class="sign">!</span> H5T_COMPOUND_F <span class="sign">(</span>6<span class="sign">)</span>
+ <span class="sign">!</span> H5T_REFERENCE_F <span class="sign">(</span>7<span class="sign">)</span>
+ <span class="sign">!</span> H5T_ENUM_F <span class="sign">(</span>8<span class="sign">)</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tget5fcreate5fplist5ff"></a>
+<a name="robo425"></a><h2>h5tget_create_plist_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tget_create_plist_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns a copy of a datatype creation property list.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> dtype_id - Datatype identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> dtpl_id - Datatype property list identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ April 9, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tget_create_plist_f</strong><span class="sign">(</span>dtype_id<span class="sign">,</span> dtpl_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dtype_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dtpl_id <span class="sign">!</span> Datatype property list identifier<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5T2fh5tget5fcset5ff"></a>
+<a name="robo426"></a><h2>h5tget_cset_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tget_cset_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves the character set type of a string datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - Datatype identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> cset - Character set type of a string datatype
+ Possible values are:
+ H5T_CSET_ASCII_F = 0
+ H5T_CSET_UTF8_F
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tget_cset_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> cset<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> cset <span class="sign">!</span> character set type of a string datatype
+ <span class="sign">!</span> Possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5T_CSET_ASCII_F <span class="sign">=</span> 0
+ <span class="sign">!</span> H5T_CSET_UTF8_F
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tget5febias5ff"></a>
+<a name="robo427"></a><h2>h5tget_ebias_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tget_ebias_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves the exponent bias of a floating-point type.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> ebias - datatype exponent bias
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tget_ebias_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> ebias<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ebias <span class="sign">!</span> Datatype exponent bias of a floating<span class="sign">-</span>point type
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tget5ffields5ff"></a>
+<a name="robo428"></a><h2>h5tget_fields_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tget_fields_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves floating point datatype bit field information.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> spos - sign bit-position
+ epos - exponent bit-position
+ esize - size of exponent in bits
+ mpos - mantissa position
+ msize - size of mantissa in bits
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tget_fields_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> spos<span class="sign">,</span> epos<span class="sign">,</span> esize<span class="sign">,</span> mpos<span class="sign">,</span> msize<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> spos <span class="sign">!</span> sign bit<span class="sign">-</span>position
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> epos <span class="sign">!</span> exponent bit<span class="sign">-</span>position
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> esize <span class="sign">!</span> size of exponent in bits
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> mpos <span class="sign">!</span> mantissa bit<span class="sign">-</span>position
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> msize <span class="sign">!</span> size of mantissa in bits
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tget5finpad5ff"></a>
+<a name="robo429"></a><h2>h5tget_inpad_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tget_inpad_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves the internal padding type for unused bits
+ in floating-point datatypes.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> padtype - padding type for unused bits
+ Possible values of padding type are:
+ H5T_PAD_ZERO_F = 0
+ H5T_PAD_ONE_F = 1
+ H5T_PAD_BACKGROUND_F = 2
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tget_inpad_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> padtype<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> padtype <span class="sign">!</span> padding type <span class="keyword">for</span> unused bits
+ <span class="sign">!</span> in floating<span class="sign">-</span>point datatypes<span class="sign">.</span>
+ <span class="sign">!</span> Possible values of padding type are<span class="sign">:</span>
+ <span class="sign">!</span> H5T__PAD_ZERO_F <span class="sign">=</span> 0
+ <span class="sign">!</span> H5T__PAD_ONE_F <span class="sign">=</span> 1
+ <span class="sign">!</span> H5T__PAD_BACKGROUND_F <span class="sign">=</span> 2
+
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tget5fmember5fclass5ff"></a>
+<a name="robo430"></a><h2>h5tget_member_class_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tget_member_class_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns datatype class of compound datatype member.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datartpe identifier
+ member_no - index of compound datatype member
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> class - class type for compound dadtype member
+ Valid classes:
+ H5T_NO_CLASS_F (error)
+ H5T_INTEGER_F
+ H5T_FLOAT_F
+ H5T_TIME_F
+ H5T_STRING_F
+ H5T_BITFIELD_F
+ H5T_OPAQUE_F
+ H5T_COMPOUND_F
+ H5T_REFERENCE_F
+ H5T_ENUM_F
+ H5T_VLEN_F
+ H5T_ARRAY_F
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ April 6, 2005
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tget_member_class_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> member_no<span class="sign">,</span> class<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> member_no <span class="sign">!</span> Member number
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> class <span class="sign">!</span> Member class
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tget5fmember5findex5ff"></a>
+<a name="robo431"></a><h2>h5tget_member_index_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tget_member_index_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves the index of a compound or enumeration datatype member.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+ name - name of the field or member whose index to
+ to be retrieved from the datatype.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> index - 0-based index of the filed or member (0 to N-1)
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ September 26, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tget_member_index_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> name<span class="sign">,</span> index<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Field or member name
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> index <span class="sign">!</span> Field or member index
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tget5fmember5fname5ff"></a>
+<a name="robo432"></a><h2>h5tget_member_name_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tget_member_name_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves the name of a field of a compound datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+ index - filed index (0-based)
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> member_name - buffer to hold member's name
+ namelen - name length
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tget_member_name_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> index<span class="sign">,</span> member_name<span class="sign">,</span> namelen<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> index <span class="sign">!</span>Field index <span class="sign">(</span>0<span class="sign">-</span>based<span class="sign">)</span> of the field name to retrieve
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> member_name <span class="sign">!</span>name of a field of
+ <span class="sign">!</span>a compound datatype
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> namelen <span class="sign">!</span> Length of the name
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tget5fmember5foffset5ff"></a>
+<a name="robo433"></a><h2>h5tget_member_offset_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tget_member_offset_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves the offset of a field of a compound datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+ member_no - number of the field
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> offset - byte offset of the requested field
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tget_member_offset_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> member_no<span class="sign">,</span> offset<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> member_no <span class="sign">!</span>Number of the field
+ <span class="sign">!</span>whose offset is requested
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> offset <span class="sign">!</span>byte offset of the beginning of the field
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tget5fmember5ftype5ff"></a>
+<a name="robo434"></a><h2>h5tget_member_type_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tget_member_type_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns the datatype of the specified member.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - compound datatype identifier
+ field_idx - field index (0-based)
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> datatype - idnetifier of the member's datatype
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tget_member_type_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> field_idx<span class="sign">,</span> datatype<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> field_idx <span class="sign">!</span>Field index <span class="sign">(</span>0<span class="sign">-</span>based<span class="sign">)</span> of the field type to retrieve
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> datatype <span class="sign">!</span>identifier of a copy of
+ <span class="sign">!</span>the datatype of the field
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tget5fmember5fvalue5ff"></a>
+<a name="robo435"></a><h2>h5tget_member_value_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tget_member_value_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns the value of an enumeration datatype member.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+ member_no - number of the enumeration datatype member
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> value - value of the enumeration datatype
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tget_member_value_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> member_no<span class="sign">,</span> value<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> member_no <span class="sign">!</span>Number of the enumeration datatype member
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> value <span class="sign">!</span>value of the enumeration datatype<span class="sign">.</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tget5fnative5ftype5ff"></a>
+<a name="robo436"></a><h2>h5tget_native_type_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tget_native_type_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns the native datatype of a specified datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> dtype_id - Datatype identifier for the dataset datatype.
+
+ direction - Direction of search:
+ H5T_DIR_DEFAULT = 0, /*default direction is inscendent */
+ H5T_DIR_ASCEND = 1, /*in inscendent order */
+ H5T_DIR_DESCEND = 2 /*in descendent order */
+ * NOTE: In C it is defined as a structure: H5T_direction_t
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> native_dtype_id - The native datatype identifier for the specified dataset datatype
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ June 18, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tget_native_type_f</strong><span class="sign">(</span>dtype_id<span class="sign">,</span> direction<span class="sign">,</span> native_dtype_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> dtype_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> direction <span class="sign">!</span> Direction of search<span class="sign">:</span>
+ <span class="sign">!</span> H5T_DIR_ASCEND_F <span class="sign">=</span> 1 in inscendent order
+ <span class="sign">!</span> H5T_DIR_DESCEND_F <span class="sign">=</span> 2 in descendent order
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> native_dtype_id <span class="sign">!</span> The native datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code<span class="sign">:</span>
+ <span class="sign">!</span> 0 on success and <span class="sign">-</span>1 on failure
+</pre>
+
+<hr />
+<a name="H5T2fh5tget5fnmembers5ff"></a>
+<a name="robo437"></a><h2>h5tget_nmembers_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tget_nmembers_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves the number of fields in a compound datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> num_members - number of members
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tget_nmembers_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> num_members<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> num_members <span class="sign">!</span>number of fields in a compound datatype
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tget5fnorm5ff"></a>
+<a name="robo438"></a><h2>h5tget_norm_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tget_norm_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves mantissa normalization of a floating-point
+ datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> norm - normalization types, valid values are:
+ H5T_NORM_IMPLIED_F(0)
+ H5T_NORM_MSBSET_F(1)
+ H5T_NORM_NONE_F(2)
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tget_norm_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> norm<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> norm <span class="sign">!</span>mantissa normalization of a floating<span class="sign">-</span>point datatype
+ <span class="sign">!</span>Valid normalization types are<span class="sign">:</span>
+ <span class="sign">!</span>H5T_NORM_IMPLIED_F<span class="sign">(</span>0<span class="sign">)</span><span class="sign">,</span>MSB of mantissa is not
+ <span class="sign">!</span>stored<span class="sign">,</span> always 1<span class="sign">,</span> H5T_NORM_MSBSET_F<span class="sign">(</span>1<span class="sign">)</span><span class="sign">,</span> MSB of
+ <span class="sign">!</span>mantissa is always 1<span class="sign">,</span> H5T_NORM_NONE_F<span class="sign">(</span>2<span class="sign">)</span>
+ <span class="sign">!</span>Mantissa is not normalize
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tget5foffset5ff"></a>
+<a name="robo439"></a><h2>h5tget_offset_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tget_offset_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves the bit offset of the first significant bit.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> offset - offset value
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tget_offset_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> offset<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> offset <span class="sign">!</span> Datatype bit offset of the
+ <span class="sign">!</span> first significant bit
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tget5forder5ff"></a>
+<a name="robo440"></a><h2>h5tget_order_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tget_order_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns the byte order of an atomic datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> order - byte order for the datatype, possible
+ values are:
+ H5T_ORDER_LE_F
+ H5T_ORDER_BE_F
+ H5T_ORDER_VAX_F (not implemented yet)
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tget_order_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> order<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> order
+ <span class="sign">!</span> Datatype byte order<span class="sign">,</span> possible values are<span class="sign">:</span>
+ <span class="sign">!</span> H5T_ORDER_LE_F
+ <span class="sign">!</span> H5T_ORDER_BE_F
+ <span class="sign">!</span> H5T_ORDER_VAX_F
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tget5fpad5ff"></a>
+<a name="robo441"></a><h2>h5tget_pad_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tget_pad_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves the padding type of the least and
+ most -significant bit padding.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> lsbpad - least-significant bit padding type
+ msbpad - most-significant bit padding type
+ Possible values of padding type are:
+ H5T_PAD_ERROR_F = -1
+ H5T_PAD_ZERO_F = 0
+ H5T_PAD_ONE_F = 1
+ H5T_PAD_BACKGROUND_F = 2
+ H5T_PAD_NPAD_F = 3
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tget_pad_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> lsbpad<span class="sign">,</span> msbpad<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lsbpad <span class="sign">!</span> padding type of the
+ <span class="sign">!</span> least significant bit
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> msbpad <span class="sign">!</span> padding type of the
+ <span class="sign">!</span> most significant bit
+ <span class="sign">!</span> Possible values of padding type are<span class="sign">:</span>
+ <span class="sign">!</span> H5T__PAD_ZERO_F <span class="sign">=</span> 0
+ <span class="sign">!</span> H5T__PAD_ONE_F <span class="sign">=</span> 1
+ <span class="sign">!</span> H5T__PAD_BACKGROUND_F <span class="sign">=</span> 2
+ <span class="sign">!</span> H5T_PAD_ERROR_F <span class="sign">=</span> <span class="sign">-</span>1
+ <span class="sign">!</span> H5T_PAD_NPAD_F <span class="sign">=</span> 3
+
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tget5fprecision5ff"></a>
+<a name="robo442"></a><h2>h5tget_precision_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tget_precision_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns the precision of an atomic datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> precision - precision of the datatype
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tget_precision_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> precision<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> precision <span class="sign">!</span> Datatype precision
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tget5fsign5ff"></a>
+<a name="robo443"></a><h2>h5tget_sign_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tget_sign_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves the sign type for an integer type.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> sign - sign type
+ Possible values are:
+ - Unsigned integer type
+ H5T_SGN_NONE_F = 0
+ - Two's complement signed integer type
+ H5T_SGN_2_F = 1
+ - error value: H5T_SGN_ERROR_F=-1
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tget_sign_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> sign<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> sign <span class="sign">!</span> sign type <span class="keyword">for</span> an integer type
+ <span class="sign">!</span>possible values are<span class="sign">:</span>
+ <span class="sign">!</span>Unsigned integer type H5T_SGN_NONE_F <span class="sign">=</span> 0
+ <span class="sign">!</span>Two<span class="squote">'s complement signed integer type
+ !H5T_SGN_2_F = 1
+ !or error value: H5T_SGN_ERROR_F=-1
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tget5fsize5ff"></a>
+<a name="robo444"></a><h2>h5tget_size_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tget_size_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns the size of a datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> size - datatype size
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tget_size_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Datatype size
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tget5fstrpad5ff"></a>
+<a name="robo445"></a><h2>h5tget_strpad_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tget_strpad_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Retrieves the storage mechanism for a string datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> strpad - storage method for a string datatype
+ Possible values are:
+ H5T_STR_NULLTERM_F,
+ H5T_STR_NULLPAD_F,
+ H5T_STR_SPACEPAD_F
+ H5T_STR_ERROR_F
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tget_strpad_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> strpad<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> strpad
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tget5fsuper5ff"></a>
+<a name="robo446"></a><h2>h5tget_super_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tget_super_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns the base datatype from which a datatype is derived.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> base_type_id - identifier of the base type
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tget_super_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> base_type_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> datatype identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> base_type_id <span class="sign">!</span> identifier of the datatype
+ <span class="sign">!</span> from which datatype <span class="sign">(</span>type_id<span class="sign">)</span> was derived
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tget5ftag5ff"></a>
+<a name="robo447"></a><h2>h5tget_tag_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tget_tag_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Gets the tag associated with an opaque datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - identifier for opaque datatype
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> tag - unique ASCII string associated with opaque
+ datatype
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tget_tag_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> tag<span class="sign">,</span>taglen<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> tag <span class="sign">!</span> Unique ASCII string with which
+ <span class="sign">!</span> the opaque datatype is to be tagged
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> taglen <span class="sign">!</span> Length of tag
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> tag_size <span class="sign">!</span> Declared character length of tab
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tinsert5ff"></a>
+<a name="robo448"></a><h2>h5tinsert_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tinsert_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Adds a new member to a compound datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - compound dattype identifier
+ name - name of the field to insert
+ offset - start of the member in an instance of
+ the compound datatype
+ field_id - datatype identifier of the field to insert
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tinsert_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> name<span class="sign">,</span> offset<span class="sign">,</span> field_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span>Name of the field to insert
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> offset <span class="sign">!</span>start of the member in an instance of
+ <span class="sign">!</span>the compound datatype
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> field_id <span class="sign">!</span>datatype identifier of the new member
+
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tis5fvariable5fstr5ff"></a>
+<a name="robo449"></a><h2>h5tis_variable_str_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tis_variable_str_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Determines whether a dattype is a variable string.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datartpe identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> status - flag to indicate if datatype
+ is a variable string
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ March 12, 2003
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tis_variable_str_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> status<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> status <span class="sign">!</span> Flag<span class="sign">,</span> idicates <span class="keyword">if</span> datatype
+ <span class="sign">!</span> is a variable string or not <span class="sign">(</span> TRUE or
+ <span class="sign">!</span> FALSE<span class="sign">)</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5topen5ff"></a>
+<a name="robo450"></a><h2>h5topen_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5topen_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Opens named datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> loc_id - location identifier
+ name - a datatype name
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> type_id - datatype identifier
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">OPTIONAL PARAMETERS</p>
+<pre> tapl_id - datatype access property list identifier.
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+
+ Added optional parameter 'tapl_id' for compatability
+ with H5Topen2. April 9, 2009.
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5topen_f</strong><span class="sign">(</span>loc_id<span class="sign">,</span> name<span class="sign">,</span> type_id<span class="sign">,</span> hdferr<span class="sign">,</span> tapl_id<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> loc_id <span class="sign">!</span> File or group identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> name <span class="sign">!</span> Datatype name within file or group
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> OPTIONAL<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> tapl_id <span class="sign">!</span> datatype access property list identifier
+</pre>
+
+<hr />
+<a name="H5T2fh5tpack5ff"></a>
+<a name="robo451"></a><h2>h5tpack_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tpack_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Recursively removes padding from within a compound datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - compound datatype identifier
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tpack_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tset5fcset5ff"></a>
+<a name="robo452"></a><h2>h5tset_cset_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tset_cset_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets character set to be used.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+ cset - character set type of a string datatype
+ Possible values are:
+ H5T_CSET_ASCII_F = 0
+ H5T_CSET_UTF8_F
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tset_cset_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> cset<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> cset <span class="sign">!</span>character set type of a string datatype
+ <span class="sign">!</span> Possible values of padding type are<span class="sign">:</span>
+ <span class="sign">!</span> H5T_CSET_ASCII_F <span class="sign">=</span> 0
+ <span class="sign">!</span> H5T_CSET_UTF8_F
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tset5febias5ff"></a>
+<a name="robo453"></a><h2>h5tset_ebias_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tset_ebias_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets the exponent bias of a floating-point type.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+ ebias - datatype exponent bias
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tset_ebias_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> ebias<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> ebias <span class="sign">!</span>Datatype exponent bias of a floating<span class="sign">-</span>point type
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tset5ffields5ff"></a>
+<a name="robo454"></a><h2>h5tset_fields_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tset_fields_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets locations and sizes of floating point bit fields.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+ spos - sign bit-position
+ epos - exponent bit-position
+ esize - size of exponent in bits
+ mpos - mantissa position
+ msize - size of mantissa in bits
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tset_fields_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> spos<span class="sign">,</span> epos<span class="sign">,</span> esize<span class="sign">,</span> mpos<span class="sign">,</span> msize<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> spos <span class="sign">!</span> sign bit<span class="sign">-</span>position
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> epos <span class="sign">!</span> exponent bit<span class="sign">-</span>position
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> esize <span class="sign">!</span> size of exponent in bits
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> mpos <span class="sign">!</span> mantissa bit<span class="sign">-</span>position
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> msize <span class="sign">!</span> size of mantissa in bits
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tset5finpad5ff"></a>
+<a name="robo455"></a><h2>h5tset_inpad_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tset_inpad_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Fills unused internal floating point bits.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+ padtype - padding type for unused bits
+ Possible values of padding type are:
+ H5T_PAD_ZERO_F = 0
+ H5T_PAD_ONE_F = 1
+ H5T_PAD_BACKGROUND_F = 2
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tset_inpad_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> padtype<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> padtype <span class="sign">!</span> padding type <span class="keyword">for</span> unused bits
+ <span class="sign">!</span> in floating<span class="sign">-</span>point datatypes<span class="sign">.</span>
+ <span class="sign">!</span> Possible values of padding type are<span class="sign">:</span>
+ <span class="sign">!</span> H5T__PAD_ZERO_F <span class="sign">=</span> 0
+ <span class="sign">!</span> H5T__PAD_ONE_F <span class="sign">=</span> 1
+ <span class="sign">!</span> H5T__PAD_BACKGROUND_F <span class="sign">=</span> 2
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tset5fnorm5ff"></a>
+<a name="robo456"></a><h2>h5tset_norm_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tset_norm_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets the mantissa normalization of a floating-point datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+ norm - normalization types, valid values are:
+ H5T_NORM_IMPLIED_F(0)
+ H5T_NORM_MSBSET_F(1)
+ H5T_NORM_NONE_F(2)
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tset_norm_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> norm<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> norm <span class="sign">!</span>mantissa normalization of a floating<span class="sign">-</span>point datatype
+ <span class="sign">!</span>Valid normalization types are<span class="sign">:</span>
+ <span class="sign">!</span>H5T_NORM_IMPLIED_F<span class="sign">(</span>0<span class="sign">)</span><span class="sign">,</span>MSB of mantissa is not
+ <span class="sign">!</span>stored<span class="sign">,</span> always 1<span class="sign">,</span> H5T_NORM_MSBSET_F<span class="sign">(</span>1<span class="sign">)</span><span class="sign">,</span> MSB of
+ <span class="sign">!</span>mantissa is always 1<span class="sign">,</span> H5T_NORM_NONE_F<span class="sign">(</span>2<span class="sign">)</span>
+ <span class="sign">!</span>Mantissa is not normalize
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tset5foffset5ff"></a>
+<a name="robo457"></a><h2>h5tset_offset_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tset_offset_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets the bit offset of the first significant bit.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+ offset - offset value
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tset_offset_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> offset<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> offset <span class="sign">!</span> Datatype bit offset of the
+ <span class="sign">!</span> first significant bit
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tset5forder5ff"></a>
+<a name="robo458"></a><h2>h5tset_order_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tset_order_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets the byte ordering of an atomic datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+ order - datatype byte order Possible values are:
+ H5T_ORDER_LE_F
+ H5T_ORDER_BE_F
+ H5T_ORDER_VAX_F (not implemented yet)
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tset_order_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> order<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> order <span class="sign">!</span> Datatype byte order<span class="sign">,</span> possible values
+ <span class="sign">!</span> are<span class="sign">:</span>
+ <span class="sign">!</span> H5T_ORDER_LE_F
+ <span class="sign">!</span> H5T_ORDER_BE_F
+ <span class="sign">!</span> H5T_ORDER_VAX_F
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tset5fpad5ff"></a>
+<a name="robo459"></a><h2>h5tset_pad_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tset_pad_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets the least and most-significant bits padding types.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+ lsbpad - least-significant bit padding type
+ msbpad - most-significant bit padding type
+ Possible values of padding type are:
+ H5T_PAD_ERROR_F = -1
+ H5T_PAD_ZERO_F = 0
+ H5T_PAD_ONE_F = 1
+ H5T_PAD_BACKGROUND_F = 2
+ H5T_PAD_NPAD_F = 3
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tset_pad_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> lsbpad<span class="sign">,</span> msbpad<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> lsbpad <span class="sign">!</span> padding type of the
+ <span class="sign">!</span> least significant bit
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> msbpad <span class="sign">!</span> padding type of the
+ <span class="sign">!</span> most significant bit
+ <span class="sign">!</span> Possible values of padding type are<span class="sign">:</span>
+ <span class="sign">!</span> H5T_PAD_ZERO_F <span class="sign">=</span> 0
+ <span class="sign">!</span> H5T_PAD_ONE_F <span class="sign">=</span> 1
+ <span class="sign">!</span> H5T_PAD_BACKGROUND_F <span class="sign">=</span> 2
+ <span class="sign">!</span> H5T_PAD_ERROR_F <span class="sign">=</span> <span class="sign">-</span>1
+ <span class="sign">!</span> H5T_PAD_NPAD_F <span class="sign">=</span> 3
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tset5fprecision5ff"></a>
+<a name="robo460"></a><h2>h5tset_precision_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tset_precision_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets the precision of an atomic datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+ precision - datatype precision
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tset_precision_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> precision<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> precision <span class="sign">!</span> Datatype precision
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tset5fsign5ff"></a>
+<a name="robo461"></a><h2>h5tset_sign_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tset_sign_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets the sign proprety for an integer type.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+ sign - sign type
+ Possible values are:
+ - Unsigned integer type
+ H5T_SGN_NONE_F = 0
+ - Two's complement signed integer type
+ H5T_SGN_2_F = 1
+ - error value: H5T_SGN_ERROR_F=-1
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tset_sign_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> sign<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> sign <span class="sign">!</span>sign type <span class="keyword">for</span> an integer type
+ <span class="sign">!</span>possible values are<span class="sign">:</span>
+ <span class="sign">!</span>Unsigned integer type H5T_SGN_NONE_F <span class="sign">=</span> 0
+ <span class="sign">!</span>Two<span class="squote">'s complement signed integer type
+ !H5T_SGN_2_F = 1
+ !or error value: H5T_SGN_ERROR_F=-1
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tset5fsize5ff"></a>
+<a name="robo462"></a><h2>h5tset_size_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tset_size_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Sets the total size for an atomic datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+ size - size of the datatype
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tset_size_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> size<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> size <span class="sign">!</span> Datatype size
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tset5fstrpad5ff"></a>
+<a name="robo463"></a><h2>h5tset_strpad_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tset_strpad_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Defines the storage mechanism for character strings.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - datatype identifier
+ strpad - storage method for a string datatype
+ Possible values are:
+ H5T_STR_NULLTERM_F,
+ H5T_STR_NULLPAD_F,
+ H5T_STR_SPACEPAD_F
+ H5T_STR_ERROR_F
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tset_strpad_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> strpad<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> strpad <span class="sign">!</span> string padding method <span class="keyword">for</span> a string datatype
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tset5ftag5ff"></a>
+<a name="robo464"></a><h2>h5tset_tag_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tset_tag_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Tags an opaque datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - identifier for opaque datatype
+ tag - unique ASCII string with which the opaque
+ datatype is to be tagged.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). March 7, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tset_tag_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> tag<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ CHARACTER<span class="sign">(</span>LEN<span class="sign">=</span><span class="sign">*</span><span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> tag <span class="sign">!</span>Unique ASCII string with which
+ <span class="sign">!</span>the opaque datatype is to be tagged
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5T2fh5tvlen5fcreate5ff"></a>
+<a name="robo465"></a><h2>h5tvlen_create_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo70">H5T</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5tvlen_create_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Creates a new variable-length datatype.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> type_id - identifier iof base datatype
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> vltype_id - identifier for VL datatype
+ hdferr - Returns 0 if successful and -1 if fails
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ Wednesday, October 23, 2002
+</pre>
+<p class="item_name">NOTES</p>
+<pre> Only basic Fortran base datatypes are supported
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5tvlen_create_f</strong><span class="sign">(</span>type_id<span class="sign">,</span> vltype_id<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> type_id <span class="sign">!</span> Datatype identifier
+ INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span><span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> vltype_id <span class="sign">!</span> VL datatype identifier
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Tff.f90 on Sun Aug 14 2011 22:49:37
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Zf_c.html b/fortran/doc/DevelGuide/src/H5Zf_c.html
new file mode 100644
index 0000000..2973548
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Zf_c.html
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Zf.c</title>
+<!-- Source: ./src/H5Zf.c -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="H5Zf2fH5Zf"></a>
+<a name="robo75"></a><h2>H5Zf</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains C stubs for <a href="./H5Zff_f90.html#robo74">H5Z</a> Fortran APIs
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Zf.c on Sun Aug 14 2011 22:49:37
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5Zff_f90.html b/fortran/doc/DevelGuide/src/H5Zff_f90.html
new file mode 100644
index 0000000..8ccd0ae
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5Zff_f90.html
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5Zff.f90</title>
+<!-- Source: ./src/H5Zff.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5Z"></a>
+<a name="robo74"></a><h2>H5Z</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> MODULE <strong>H5Z</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains Fortran interfaces for <strong>H5Z</strong> functions. It includes
+ all the functions that are independent on whether the Fortran 2003 functions
+ are enabled or disabled.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> *** IMPORTANT ***
+ If you add a new <strong>H5Z</strong> function you must add the function name to the
+ Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+ This is needed for Windows based operating systems.
+</pre>
+
+<hr />
+<a name="H5Z2fh5zfilter5favail5ff"></a>
+<a name="robo466"></a><h2>h5zfilter_avail_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo74">H5Z</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5zfilter_avail_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Queries if filter is available
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> filter - filter
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> status - status; .TRUE. if filter is available,
+ .FALSE. otherwise
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ March 12, 2003
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5zfilter_avail_f</strong><span class="sign">(</span>filter<span class="sign">,</span> status<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> filter <span class="sign">!</span> Filter<span class="sign">;</span> may be one of the following<span class="sign">:</span>
+ <span class="sign">!</span> H5Z_FILTER_DEFLATE_F
+ <span class="sign">!</span> H5Z_FILTER_SZIP_F
+ <span class="sign">!</span> H5Z_FILTER_NBIT_F
+ <span class="sign">!</span> H5Z_FILTER_SCALEOFFSET_F
+ <span class="sign">!</span> H5Z_FILTER_SHUFFLE_F
+ <span class="sign">!</span> H5Z_FILTER_FLETCHER32_F
+ LOGICAL<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> status <span class="sign">!</span> Flag<span class="sign">,</span> idicates <span class="keyword">if</span> filter
+ <span class="sign">!</span> is availble not <span class="sign">(</span> TRUE or
+ <span class="sign">!</span> FALSE<span class="sign">)</span>
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5Z2fh5zget5ffilter5finfo5ff"></a>
+<a name="robo467"></a><h2>h5zget_filter_info_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo74">H5Z</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5zget_filter_info_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Queries if filter has its encoder and/or decoder
+ available
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> filter - filter
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> config_flags - Bit vector possibly containing the
+ following values:
+ H5Z_FILTER_ENCODE_ENABLED_F
+ H5Z_FILTER_DECODE_ENABLED_F
+ hdferr: - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Nat Furrer and James Laird
+ June 16, 2004
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5zget_filter_info_f</strong><span class="sign">(</span>filter<span class="sign">,</span> config_flags<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> filter <span class="sign">!</span> Filter<span class="sign">;</span> may be one of the following<span class="sign">:</span>
+ <span class="sign">!</span> H5Z_FILTER_DEFLATE_F
+ <span class="sign">!</span> H5Z_FILTER_SZIP_F
+ <span class="sign">!</span> H5Z_FILTER_NBIT_F
+ <span class="sign">!</span> H5Z_FILTER_SCALEOFFSET_F
+ <span class="sign">!</span> H5Z_FILTER_SHUFFLE_F
+ <span class="sign">!</span> H5Z_FILTER_FLETCHER32_F
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> config_flags<span class="sign">!</span> Flag<span class="sign">,</span> indicates <span class="keyword">if</span> filter
+ <span class="sign">!</span> has its encoder and<span class="sign">/</span>or decoder
+ <span class="sign">!</span> available
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+<hr />
+<a name="H5Z2fh5zunregister5ff"></a>
+<a name="robo468"></a><h2>h5zunregister_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo74">H5Z</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5zunregister_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Unregisters specified filetr
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> filter - filter; may have one of the following values:
+ H5Z_FILTER_DEFLATE_F
+ H5Z_FILTER_SZIP_F
+ H5Z_FILTER_NBIT_F
+ H5Z_FILTER_SCALEOFFSET_F
+ H5Z_FILTER_SHUFFLE_F
+ H5Z_FILTER_FLETCHER32_F
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> hdferr - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ March 12, 2003
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5zunregister_f</strong><span class="sign">(</span>filter<span class="sign">,</span> hdferr<span class="sign">)</span>
+ IMPLICIT NONE
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> filter
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> hdferr <span class="sign">!</span> Error code
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5Zff.f90 on Sun Aug 14 2011 22:49:37
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5_DBLE_InterfaceExclude_f90.html b/fortran/doc/DevelGuide/src/H5_DBLE_InterfaceExclude_f90.html
new file mode 100644
index 0000000..4e51e7f
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5_DBLE_InterfaceExclude_f90.html
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5_DBLE_InterfaceExclude.f90</title>
+<!-- Source: ./src/H5_DBLE_InterfaceExclude.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="fortran2fsrc2fH55fDBLE5fInterfaceExclude2ef90"></a>
+<a name="robo78"></a><h2>src/H5_DBLE_InterfaceExclude.f90</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> H5_DBLE_INTERFACE
+</pre>
+<p class="item_name">FUNCTION</p>
+<pre> This module is used for when the default REAL is of type DOUBLE PRECISION.
+ We do not include the double precision interfaces if the defaut REAL is
+ DOUBLE PRECISION since this would lead to a non-unique conflict with the
+ generic interfaces declared as REAL and those declared as DOUBLE PRECISION.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> Empty module.
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5_DBLE_InterfaceExclude.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5_DBLE_InterfaceInclude_f90.html b/fortran/doc/DevelGuide/src/H5_DBLE_InterfaceInclude_f90.html
new file mode 100644
index 0000000..5a71d52
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5_DBLE_InterfaceInclude_f90.html
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5_DBLE_InterfaceInclude.f90</title>
+<!-- Source: ./src/H5_DBLE_InterfaceInclude.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="fortran2fsrc2fH55fDBLE5fInterfaceInclude2ef90"></a>
+<a name="robo79"></a><h2>src/H5_DBLE_InterfaceInclude.f90</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> H5_DBLE_INTERFACE
+</pre>
+<p class="item_name">FUNCTION</p>
+<pre> This module is used for when the default REAL is not of the type DOUBLE PRECISION.
+ We only do not include the double precision interfaces if the defaut REAL is
+ DOUBLE PRECISION since this would lead to a non-unique conflict with the
+ generic interfaces declared as REAL. Otherwise it is okay to include the interfaces.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> This module contains all the DOUBLE PRECISION interfaces and corresponding subroutines
+ from the HDF function catagory <a href="./H5Aff_f90.html#robo27">H5A</a>, <a href="./H5Dff_f90.html#robo31">H5D</a> and H5P.
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5_DBLE_InterfaceInclude.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5_f_c.html b/fortran/doc/DevelGuide/src/H5_f_c.html
new file mode 100644
index 0000000..2bdbce1
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5_f_c.html
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5_f.c</title>
+<!-- Source: ./src/H5_f.c -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_programs.html#top">Programs</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="root2ffortran2fsrc2fH55ff2ec"></a>
+<a name="robo0"></a><h2>fortran/src/H5_f.c</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">FUNCTION</p>
+<pre> This file contains C stubs for H5 Fortran APIs
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5_f.c on Wed Oct 22 2008 15:34:43
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5_ff_F03_f90.html b/fortran/doc/DevelGuide/src/H5_ff_F03_f90.html
new file mode 100644
index 0000000..17f07c1
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5_ff_F03_f90.html
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5_ff_F03.f90</title>
+<!-- Source: ./src/H5_ff_F03.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5LIB5fPROVISIONAL"></a>
+<a name="robo54"></a><h2>H5LIB_PROVISIONAL</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> MODULE <strong>H5LIB_PROVISIONAL</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This file contains helper functions for Fortran 2003 features and is
+ only compiled when Fortran 2003 features are enabled, otherwise
+ the file <a href="./H5_ff_F90_f90.html#robo_top_of_doc">H5_ff_F90.f90</a> is compiled.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> *** IMPORTANT ***
+ If you add a new function you must add the function name to the
+ Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+ This is needed for Windows based operating systems.
+</pre>
+
+<hr />
+<a name="H5LIB5fPROVISIONAL2fh5offsetof"></a>
+<a name="robo194"></a><h2>h5offsetof</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo54">H5LIB_PROVISIONAL</a> ] [ <a href="../robo_functions.html#robo_top_of_doc">Functions</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5offsetof</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Computes the offset in memory
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> start - starting pointer address
+ end - ending pointer address
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> offset - offset
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ Augest 25, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> FUNCTION <strong>h5offsetof</strong><span class="sign">(</span>start<span class="sign">,</span>end<span class="sign">)</span> RESULT<span class="sign">(</span>offset<span class="sign">)</span>
+ USE<span class="sign">,</span> INTRINSIC <span class="sign">:</span><span class="sign">:</span> ISO_C_BINDING
+ USE <a href="./H5f90global_f90.html#robo46">H5GLOBAL</a>
+ IMPLICIT NONE
+ INTEGER<span class="sign">(</span>SIZE_T<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> offset
+ TYPE<span class="sign">(</span>C_PTR<span class="sign">)</span><span class="sign">,</span> VALUE<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> start<span class="sign">,</span> end
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5_ff_F03.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5_ff_F90_f90.html b/fortran/doc/DevelGuide/src/H5_ff_F90_f90.html
new file mode 100644
index 0000000..c310ef2
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5_ff_F90_f90.html
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5_ff_F90.f90</title>
+<!-- Source: ./src/H5_ff_F90.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5LIB5fPROVISIONAL2028F9029"></a>
+<a name="robo55"></a><h2>H5LIB_PROVISIONAL (F90)</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> MODULE <a href="./H5_ff_F03_f90.html#robo54">H5LIB_PROVISIONAL</a>
+</pre>
+<p class="item_name">FILE</p>
+<pre> fortran/src/<a href="#robo_top_of_doc">H5_ff_F90.f90</a>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This file is a dummy module for when Fortran 2003 features are not enabled.
+ It is compiled in place of <a href="./H5_ff_F03_f90.html#robo_top_of_doc">H5_ff_F03.f90</a> and is empty.
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5_ff_F90.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5_ff_f90.html b/fortran/doc/DevelGuide/src/H5_ff_f90.html
new file mode 100644
index 0000000..021c7c5
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5_ff_f90.html
@@ -0,0 +1,269 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5_ff.f90</title>
+<!-- Source: ./src/H5_ff.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5LIB"></a>
+<a name="robo53"></a><h2>H5LIB</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> MODULE <strong>H5LIB</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This module provides fortran specific helper functions for the HDF library
+</pre>
+<p class="item_name">USES</p>
+<pre> <a href="./H5_ff_F03_f90.html#robo54">H5LIB_PROVISIONAL</a> - This module provides helper functions for Fortran 2003
+ only features. If Fortran 2003 functions are enabled then
+ <a href="./H5_ff_F03_f90.html#robo_top_of_doc">H5_ff_F03.f90</a> is compiled, else <a href="./H5_ff_F90_f90.html#robo_top_of_doc">H5_ff_F90.f90</a>,
+ which is just a place holder blank module, is compiled.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> *** IMPORTANT ***
+ If you add a new function you must add the function name to the
+ Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+ This is needed for Windows based operating systems.
+</pre>
+
+<hr />
+<a name="H5LIB2fh5check5fversion5ff"></a>
+<a name="robo111"></a><h2>h5check_version_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo53">H5LIB</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5check_version_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Verifies that library versions are consistent.
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> majnum - major version of the library
+ minum - minor version of the library
+ relnum - release version of the library
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> error - error code
+ Success: 0
+ Failure: application aborts
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ September 24, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5check_version_f</strong><span class="sign">(</span>majnum<span class="sign">,</span> minnum<span class="sign">,</span> relnum<span class="sign">,</span> error<span class="sign">)</span>
+ USE <a href="./H5f90global_f90.html#robo46">H5GLOBAL</a>
+ IMPLICIT NONE
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> majnum<span class="sign">,</span> minnum<span class="sign">,</span> relnum
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> error
+</pre>
+
+<hr />
+<a name="H5LIB2fh5close5ff"></a>
+<a name="robo112"></a><h2>h5close_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo53">H5LIB</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5close_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Closes the <a href="./HDF5_f90.html#robo76">HDF5</a> library and Fortran90 interface.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> error - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5close_f</strong><span class="sign">(</span>error<span class="sign">)</span>
+ USE <a href="./H5f90global_f90.html#robo46">H5GLOBAL</a>
+ IMPLICIT NONE
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> error
+</pre>
+
+<hr />
+<a name="H5LIB2fh5dont5fatexit5ff"></a>
+<a name="robo122"></a><h2>h5dont_atexit_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo53">H5LIB</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5dont_atexit_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Instructs library not to install atexit cleanup routine.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> error - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ September 24, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5dont_atexit_f</strong><span class="sign">(</span>error<span class="sign">)</span>
+ USE <a href="./H5f90global_f90.html#robo46">H5GLOBAL</a>
+ IMPLICIT NONE
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> error
+</pre>
+
+<hr />
+<a name="H5LIB2fh5garbage5fcollect5ff"></a>
+<a name="robo150"></a><h2>h5garbage_collect_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo53">H5LIB</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5garbage_collect_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Garbage collects on all free-lists of all types.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> error - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ September 24, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5garbage_collect_f</strong><span class="sign">(</span>error<span class="sign">)</span>
+ USE <a href="./H5f90global_f90.html#robo46">H5GLOBAL</a>
+ IMPLICIT NONE
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> error
+</pre>
+
+<hr />
+<a name="H5LIB2fh5get5flibversion5ff"></a>
+<a name="robo154"></a><h2>h5get_libversion_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo53">H5LIB</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5get_libversion_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Returns the <a href="./HDF5_f90.html#robo76">HDF5</a> LIbrary release number
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> majnum - major version of the library
+ minum - minor version of the library
+ relnum - release version of the library
+ error - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ September 24, 2002
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5get_libversion_f</strong><span class="sign">(</span>majnum<span class="sign">,</span> minnum<span class="sign">,</span> relnum<span class="sign">,</span> error<span class="sign">)</span>
+ USE <a href="./H5f90global_f90.html#robo46">H5GLOBAL</a>
+ IMPLICIT NONE
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> majnum<span class="sign">,</span> minnum<span class="sign">,</span> relnum<span class="sign">,</span> error
+</pre>
+
+<hr />
+<a name="H5LIB2fh5kind5fto5ftype"></a>
+<a name="robo177"></a><h2>h5kind_to_type</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo53">H5LIB</a> ] [ <a href="../robo_functions.html#robo_top_of_doc">Functions</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5kind_to_type</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Converts the KIND to the correct HDF type
+</pre>
+<p class="item_name">INPUTS</p>
+<pre> kind - Fortran KIND parameter
+ flag - whether KIND is of type INTEGER or REAL:
+ H5_INTEGER_KIND - integer
+ H5_REAL_KIND - real
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> h5_type - returns the type
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+ Augest 25, 2008
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> INTEGER<span class="sign">(</span>HID_T<span class="sign">)</span> FUNCTION <strong>h5kind_to_type</strong><span class="sign">(</span>kind<span class="sign">,</span> flag<span class="sign">)</span> RESULT<span class="sign">(</span>h5_type<span class="sign">)</span>
+ USE <a href="./H5f90global_f90.html#robo46">H5GLOBAL</a>
+ IMPLICIT NONE
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> kind
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>IN<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> flag
+</pre>
+
+<hr />
+<a name="H5LIB2fh5open5ff"></a>
+<a name="robo198"></a><h2>h5open_f</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo53">H5LIB</a> ] [ <a href="../robo_subroutines.html#robo_top_of_doc">Subroutines</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <strong>h5open_f</strong>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> Initializes the <a href="./HDF5_f90.html#robo76">HDF5</a> library and Fortran90 interface.
+</pre>
+<p class="item_name">OUTPUTS</p>
+<pre> error - error code
+ Success: 0
+ Failure: -1
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+ August 12, 1999
+</pre>
+<p class="item_name">HISTORY</p>
+<pre> Explicit Fortran interfaces were added for
+ called C functions (it is needed for Windows
+ port). February 28, 2001
+</pre>
+<p class="item_name">SOURCE</p>
+<pre class="source"> SUBROUTINE <strong>h5open_f</strong><span class="sign">(</span>error<span class="sign">)</span>
+ USE <a href="./H5f90global_f90.html#robo46">H5GLOBAL</a>
+ IMPLICIT NONE
+ INTEGER<span class="sign">,</span> INTENT<span class="sign">(</span>OUT<span class="sign">)</span> <span class="sign">:</span><span class="sign">:</span> error
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5_ff.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5f90global_f90.html b/fortran/doc/DevelGuide/src/H5f90global_f90.html
new file mode 100644
index 0000000..587b6d0
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5f90global_f90.html
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5f90global.f90</title>
+<!-- Source: ./src/H5f90global.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fH5GLOBAL"></a>
+<a name="robo46"></a><h2>H5GLOBAL</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> MODULE <strong>H5GLOBAL</strong>
+</pre>
+<p class="item_name">FILE</p>
+<pre> src/fortran/<a href="#robo_top_of_doc">H5f90global.f90</a>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This module is used to pass C stubs for H5 Fortran APIs. The C stubs are
+ packed into arrays in H5_f.c and these arrays are then passed to Fortran.
+ This module then uses EQUIVALENCE to assign elements of the arrays to
+ Fortran equivalent C stubs.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> The size of the C arrays in H5_f.c has to match the values of the variables
+ declared as PARAMETER, hence if the size of an array in H5_f.c is changed
+ then the PARAMETER of that corresponding array in Fortran must also be changed.
+</pre>
+<p class="item_name">USES</p>
+<pre> H5FORTRAN_TYPES - This module is generated at run time. See
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourmal
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5f90global.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5f90kit_c.html b/fortran/doc/DevelGuide/src/H5f90kit_c.html
new file mode 100644
index 0000000..1329a87
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5f90kit_c.html
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5f90kit.c</title>
+<!-- Source: ./src/H5f90kit.c -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="H5f90kit2fH5f90kit"></a>
+<a name="robo40"></a><h2>H5f90kit</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">PURPOSE</p>
+<pre> Routines from HDF4 to deal with C-FORTRAN issues:
+
+ HD5f2cstring -- convert a Fortran string to a C string
+ HD5packFstring -- convert a C string into a Fortran string
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5f90kit.c on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5match_types_c.html b/fortran/doc/DevelGuide/src/H5match_types_c.html
new file mode 100644
index 0000000..083319a
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5match_types_c.html
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5match_types.c</title>
+<!-- Source: ./src/H5match_types.c -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="Program2fH5match5ftypes"></a>
+<a name="robo192"></a><h2>H5match_types</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_procedures.html#robo_top_of_doc">Procedures</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> Executable: <strong>H5match_types</strong>
+</pre>
+<p class="item_name">FILE</p>
+<pre> fortran/src/<a href="#robo_top_of_doc">H5match_types.c</a>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> C Program to match C types to Fortran types.
+ Creates the files H5f90i_gen.h for the C code and
+ H5fortran_types.f90 for the Fortran code.
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5match_types.c on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5test_kind_SIZEOF_f90.html b/fortran/doc/DevelGuide/src/H5test_kind_SIZEOF_f90.html
new file mode 100644
index 0000000..3494db0
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5test_kind_SIZEOF_f90.html
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5test_kind_SIZEOF.f90</title>
+<!-- Source: ./src/H5test_kind_SIZEOF.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="Program2fH5test5fkind5fSIZEOF"></a>
+<a name="robo421"></a><h2>H5test_kind_SIZEOF</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_procedures.html#robo_top_of_doc">Procedures</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> Executable: <a href="./H5test_kind_f90.html#robo420">H5test_kind</a>
+</pre>
+<p class="item_name">FILE</p>
+<pre> fortran/src/<a href="#robo_top_of_doc">H5test_kind_SIZEOF.f90</a>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This stand alone program is used at build time to generate the program
+ H5fortran_detect.f90. It cycles through all the available KIND parameters for
+ integers and reals. The appropriate program and subroutines are then generated
+ depending on which of the KIND values are found.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> This program is used in place of <a href="./H5test_kind_f90.html#robo_top_of_doc">H5test_kind.f90</a> when the Fortran intrinsic
+ function SIZEOF is available. It generates code that makes use of SIZEOF in
+ H5fortran_detect.f90 which is a portable solution.
+
+ The availability of SIZEOF is checked at configure time and the TRUE/FALSE
+ condition is set in the configure variable "FORTRAN_HAVE_SIZEOF".
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> M. Scot Breitenfeld
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5test_kind_SIZEOF.f90 on Sun Aug 14 2011 22:49:37
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/H5test_kind_f90.html b/fortran/doc/DevelGuide/src/H5test_kind_f90.html
new file mode 100644
index 0000000..c08e488
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/H5test_kind_f90.html
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/H5test_kind.f90</title>
+<!-- Source: ./src/H5test_kind.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="Program2fH5test5fkind"></a>
+<a name="robo420"></a><h2>H5test_kind</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_procedures.html#robo_top_of_doc">Procedures</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> Executable: <strong>H5test_kind</strong>
+</pre>
+<p class="item_name">FILE</p>
+<pre> fortran/src/<a href="#robo_top_of_doc">H5test_kind.f90</a>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This stand alone program is used at build time to generate the program
+ H5fortran_detect.f90. It cycles through all the available KIND parameters for
+ integers and reals. The appropriate program and subroutines are then generated
+ depending on which of the KIND values are found.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> This program is depreciated in favor of <a href="./H5test_kind_SIZEOF_f90.html#robo_top_of_doc">H5test_kind_SIZEOF.f90</a> and is only
+ used when the Fortran intrinsic function SIZEOF is not available. It generates
+ code that does not make use of SIZEOF in H5fortran_detect.f90 which is less
+ portable in comparison to using SIZEOF.
+
+ The availability of SIZEOF is checked at configure time and the TRUE/FALSE
+ condition is set in the configure variable "FORTRAN_HAVE_SIZEOF".
+</pre>
+<p class="item_name">AUTHOR</p>
+<pre> Elena Pourma
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/H5test_kind.f90 on Sun Aug 14 2011 22:49:37
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/HDF5_f90.html b/fortran/doc/DevelGuide/src/HDF5_f90.html
new file mode 100644
index 0000000..1490c7c
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/HDF5_f90.html
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/HDF5.f90</title>
+<!-- Source: ./src/HDF5.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fHDF5"></a>
+<a name="robo76"></a><h2>HDF5</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> MODULE <strong>HDF5</strong>
+</pre>
+<p class="item_name">FILE</p>
+<pre> src/fortran/src/<a href="#robo_top_of_doc">HDF5.f90</a>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This is the main module used for linking to the Fortran HDF library.
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/HDF5.f90 on Sun Aug 14 2011 22:49:37
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/src/HDF5mpio_f90.html b/fortran/doc/DevelGuide/src/HDF5mpio_f90.html
new file mode 100644
index 0000000..9ef5f32
--- /dev/null
+++ b/fortran/doc/DevelGuide/src/HDF5mpio_f90.html
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./src/HDF5mpio.f90</title>
+<!-- Source: ./src/HDF5mpio.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="ROBODoc2fHDF52028mpio29"></a>
+<a name="robo77"></a><h2>HDF5 (mpio)</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <a href="./HDF5_f90.html#robo76">HDF5</a>
+</pre>
+<p class="item_name">PURPOSE</p>
+<pre> This is the main module used for linking to the Fortran parallel HDF library.
+ This file replaces <a href="./HDF5_f90.html#robo_top_of_doc">HDF5.f90</a> when compiling the parallel library.
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./src/HDF5mpio.f90 on Sun Aug 14 2011 22:49:37
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/test/fflush1_f90.html b/fortran/doc/DevelGuide/test/fflush1_f90.html
new file mode 100644
index 0000000..eaab841
--- /dev/null
+++ b/fortran/doc/DevelGuide/test/fflush1_f90.html
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./test/fflush1.f90</title>
+<!-- Source: ./test/fflush1.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="root2ffortran2ftest2ffflush12ef90"></a>
+<a name="robo0"></a><h2>fortran/test/fflush1.f90</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> FFLUSH1EXAMPLE
+</pre>
+<p class="item_name">FUNCTION</p>
+<pre> This is the first half of a two-part test that makes sure
+ that a file can be read after an application crashes as long
+ as the file was flushed first. We simulate by exit the
+ the program using stop statement
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./test/fflush1.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/test/fflush2_f90.html b/fortran/doc/DevelGuide/test/fflush2_f90.html
new file mode 100644
index 0000000..23b7797
--- /dev/null
+++ b/fortran/doc/DevelGuide/test/fflush2_f90.html
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./test/fflush2.f90</title>
+<!-- Source: ./test/fflush2.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="root2ffortran2ftest2ffflush22ef90"></a>
+<a name="robo1"></a><h2>fortran/test/fflush2.f90</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <a href="#robo_top_of_doc">fflush2.f90</a>
+</pre>
+<p class="item_name">FUNCTION</p>
+<pre> This is the second half of a two-part test that makes sure
+ that a file can be read after an application crashes as long
+ as the file was flushed first. This half tries to read the
+ file created by the first half.
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./test/fflush2.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/test/fortranlib_test_1_8_f90.html b/fortran/doc/DevelGuide/test/fortranlib_test_1_8_f90.html
new file mode 100644
index 0000000..3ce387d
--- /dev/null
+++ b/fortran/doc/DevelGuide/test/fortranlib_test_1_8_f90.html
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./test/fortranlib_test_1_8.f90</title>
+<!-- Source: ./test/fortranlib_test_1_8.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="root2ffortran2ftest2ffortranlib5ftest5f15f82ef90"></a>
+<a name="robo3"></a><h2>fortran/test/fortranlib_test_1_8.f90</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <a href="#robo_top_of_doc">fortranlib_test_1_8.f90</a>
+</pre>
+<p class="item_name">FUNCTION</p>
+<pre> Basic testing of Fortran API's introduced in 1.8 release.
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./test/fortranlib_test_1_8.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/test/fortranlib_test_F03_f90.html b/fortran/doc/DevelGuide/test/fortranlib_test_F03_f90.html
new file mode 100644
index 0000000..1a0c7be
--- /dev/null
+++ b/fortran/doc/DevelGuide/test/fortranlib_test_F03_f90.html
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./test/fortranlib_test_F03.f90</title>
+<!-- Source: ./test/fortranlib_test_F03.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="root2ffortran2ftest2ffortranlib5ftest5fF032ef90"></a>
+<a name="robo4"></a><h2>fortran/test/fortranlib_test_F03.f90</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <a href="#robo_top_of_doc">fortranlib_test_F03.f90</a>
+</pre>
+<p class="item_name">FUNCTION</p>
+<pre> Basic testing of Fortran API's requiring Fortran 2003
+ compliance.
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./test/fortranlib_test_F03.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/test/fortranlib_test_f90.html b/fortran/doc/DevelGuide/test/fortranlib_test_f90.html
new file mode 100644
index 0000000..29fb2f1
--- /dev/null
+++ b/fortran/doc/DevelGuide/test/fortranlib_test_f90.html
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./test/fortranlib_test.f90</title>
+<!-- Source: ./test/fortranlib_test.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="root2ffortran2ftest2ffortranlib5ftest2ef90"></a>
+<a name="robo2"></a><h2>fortran/test/fortranlib_test.f90</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <a href="#robo_top_of_doc">fortranlib_test.f90</a>
+</pre>
+<p class="item_name">FUNCTION</p>
+<pre> Basic testing of Fortran API's functionality.
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./test/fortranlib_test.f90 on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/test/tF2003_f90.html b/fortran/doc/DevelGuide/test/tF2003_f90.html
new file mode 100644
index 0000000..8101411
--- /dev/null
+++ b/fortran/doc/DevelGuide/test/tF2003_f90.html
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./test/tF2003.f90</title>
+<!-- Source: ./test/tF2003.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="root2ffortran2ftest2ftF20032ef90"></a>
+<a name="robo7"></a><h2>fortran/test/tF2003.f90</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <a href="#robo_top_of_doc">tF2003.f90</a>
+</pre>
+<p class="item_name">FUNCTION</p>
+<pre> Test FORTRAN <a href="../src/HDF5_f90.html#robo75">HDF5</a> APIs which are dependent on the FORTRAN 2003
+ features. Tests <a href="../src/H5Lff_f90.html#robo48">H5L</a>, H5P, <a href="../src/H5Tff_f90.html#robo69">H5T</a> APIs.
+</pre>
+<p class="item_name">USES</p>
+<pre> liter_cb_mod, test_genprop_cls_cb1_mod
+</pre>
+<p class="item_name">CONTAINS SUBROUTINES</p>
+<pre> test_iter_group, test_create, test_genprop_class_callback,
+ test_array_compound_atomic, test_array_compound_array,
+ test_array_bkg
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./test/tF2003.f90 on Tue Sep 14 2010 23:17:29
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/test/tH5A_1_8_f90.html b/fortran/doc/DevelGuide/test/tH5A_1_8_f90.html
new file mode 100644
index 0000000..c217d99
--- /dev/null
+++ b/fortran/doc/DevelGuide/test/tH5A_1_8_f90.html
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./test/tH5A_1_8.f90</title>
+<!-- Source: ./test/tH5A_1_8.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="root2ffortran2ftest2ftH5A5f15f82ef90"></a>
+<a name="robo8"></a><h2>fortran/test/tH5A_1_8.f90</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <a href="#robo_top_of_doc">tH5A_1_8.f90</a>
+</pre>
+<p class="item_name">FUNCTION</p>
+<pre> Basic testing of Fortran <a href="../src/H5Aff_f90.html#robo27">H5A</a> APIs introduced in 1.8.
+</pre>
+<p class="item_name">CONTAINS SUBROUTINES</p>
+<pre> attribute_test_1_8, test_attr_corder_create_compact, test_attr_null_space,
+ test_attr_create_by_name, test_attr_info_by_idx, attr_info_by_idx_check,
+ test_attr_shared_rename, test_attr_delete_by_idx, test_attr_shared_delete,
+ test_attr_dense_open, test_attr_dense_verify, test_attr_corder_create_basic,
+ test_attr_basic_write, test_attr_many, attr_open_check,
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./test/tH5A_1_8.f90 on Sun Aug 14 2011 22:49:37
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/test/tH5A_f90.html b/fortran/doc/DevelGuide/test/tH5A_f90.html
new file mode 100644
index 0000000..87c5a45
--- /dev/null
+++ b/fortran/doc/DevelGuide/test/tH5A_f90.html
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./test/tH5A.f90</title>
+<!-- Source: ./test/tH5A.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="root2ffortran2ftest2ftH5A2ef90"></a>
+<a name="robo7"></a><h2>fortran/test/tH5A.f90</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <a href="#robo_top_of_doc">tH5A.f90</a>
+</pre>
+<p class="item_name">FUNCTION</p>
+<pre> Basic testing of Fortran <a href="../src/H5Aff_f90.html#robo27">H5A</a> APIs.
+</pre>
+<p class="item_name">CONTAINS SUBROUTINES</p>
+<pre> attribute_test
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./test/tH5A.f90 on Sun Aug 14 2011 22:49:37
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/test/tH5D_f90.html b/fortran/doc/DevelGuide/test/tH5D_f90.html
new file mode 100644
index 0000000..c840425
--- /dev/null
+++ b/fortran/doc/DevelGuide/test/tH5D_f90.html
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./test/tH5D.f90</title>
+<!-- Source: ./test/tH5D.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="root2ffortran2ftest2ftH5D2ef90"></a>
+<a name="robo9"></a><h2>fortran/test/tH5D.f90</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <a href="#robo_top_of_doc">tH5D.f90</a>
+</pre>
+<p class="item_name">FUNCTION</p>
+<pre> Basic testing of Fortran <a href="../src/H5Dff_f90.html#robo31">H5D</a> APIs.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> Tests the <a href="../src/H5Dff_f90.html#robo31">H5D</a> APIs functionalities of:
+ <a href="../src/H5Dff_f90.html#robo115">h5dcreate_f</a>, <a href="../src/H5Dff_f90.html#robo123">h5dopen_f</a>, <a href="../src/H5Dff_f90.html#robo113">h5dclose_f</a>, <a href="../src/H5Dff_f90.html#robo118">h5dget_space_f</a>, <a href="../src/H5Dff_f90.html#robo121">h5dget_type_f</a>,
+ <a href="../src/H5Dff_F90_f90.html#robo124">h5dread_f</a>, and h5dwrite_f
+</pre>
+<p class="item_name">CONTAINS SUBROUTINES</p>
+<pre> datasettest, extenddsettest
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./test/tH5D.f90 on Sun Aug 14 2011 22:49:37
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/test/tH5E_f90.html b/fortran/doc/DevelGuide/test/tH5E_f90.html
new file mode 100644
index 0000000..6a1ef56
--- /dev/null
+++ b/fortran/doc/DevelGuide/test/tH5E_f90.html
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./test/tH5E.f90</title>
+<!-- Source: ./test/tH5E.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="root2ffortran2ftest2ftH5E2ef90"></a>
+<a name="robo10"></a><h2>fortran/test/tH5E.f90</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <a href="#robo_top_of_doc">tH5E.f90</a>
+</pre>
+<p class="item_name">FUNCTION</p>
+<pre> Basic testing of Fortran <a href="../src/H5Eff_f90.html#robo35">H5E</a> APIs.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> Tests the <a href="../src/H5Dff_f90.html#robo31">H5D</a> APIs functionalities of:
+ <a href="../src/H5Eff_f90.html#robo132">h5eprint_f</a>
+</pre>
+<p class="item_name">CONTAINS SUBROUTINES</p>
+<pre> error_report_test
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./test/tH5E.f90 on Sun Aug 14 2011 22:49:37
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/test/tH5F_f90.html b/fortran/doc/DevelGuide/test/tH5F_f90.html
new file mode 100644
index 0000000..d1aff59
--- /dev/null
+++ b/fortran/doc/DevelGuide/test/tH5F_f90.html
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./test/tH5F.f90</title>
+<!-- Source: ./test/tH5F.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="root2ffortran2ftest2ftH5F2ef90"></a>
+<a name="robo12"></a><h2>fortran/test/tH5F.f90</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <a href="#robo_top_of_doc">tH5F.f90</a>
+</pre>
+<p class="item_name">FUNCTION</p>
+<pre> Basic testing of Fortran <a href="../src/H5Fff_f90.html#robo39">H5F</a> APIs.
+</pre>
+<p class="item_name">CONTAINS SUBROUTINES</p>
+<pre> mountingtest, reopentest, plisttest, file_close, file_space
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./test/tH5F.f90 on Sun Aug 14 2011 22:49:37
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/test/tH5G_1_8_f90.html b/fortran/doc/DevelGuide/test/tH5G_1_8_f90.html
new file mode 100644
index 0000000..81fdd3c
--- /dev/null
+++ b/fortran/doc/DevelGuide/test/tH5G_1_8_f90.html
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./test/tH5G_1_8.f90</title>
+<!-- Source: ./test/tH5G_1_8.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="root2ffortran2ftest2ftH5G5f15f82ef90"></a>
+<a name="robo14"></a><h2>fortran/test/tH5G_1_8.f90</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <a href="#robo_top_of_doc">tH5G_1_8.f90</a>
+</pre>
+<p class="item_name">FUNCTION</p>
+<pre> Basic testing of Fortran <a href="../src/H5Gff_f90.html#robo44">H5G</a> APIs introduced in 1.8.
+</pre>
+<p class="item_name">CONTAINS SUBROUTINES</p>
+<pre> group_test, group_info, timestamps, mklinks, test_move_preserves, lifecycle
+ cklinks, delete_by_idx, link_info_by_idx_check, test_lcpl, objcopy,
+ lapl_nlinks
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./test/tH5G_1_8.f90 on Sun Aug 14 2011 22:49:37
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/test/tH5G_f90.html b/fortran/doc/DevelGuide/test/tH5G_f90.html
new file mode 100644
index 0000000..6c60a3c
--- /dev/null
+++ b/fortran/doc/DevelGuide/test/tH5G_f90.html
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./test/tH5G.f90</title>
+<!-- Source: ./test/tH5G.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="root2ffortran2ftest2ftH5G2ef90"></a>
+<a name="robo13"></a><h2>fortran/test/tH5G.f90</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <a href="#robo_top_of_doc">tH5G.f90</a>
+</pre>
+<p class="item_name">FUNCTION</p>
+<pre> Basic testing of Fortran <a href="../src/H5Gff_f90.html#robo44">H5G</a> APIs.
+</pre>
+<p class="item_name">CONTAINS SUBROUTINES</p>
+<pre> group_test
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./test/tH5G.f90 on Sun Aug 14 2011 22:49:37
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/test/tH5I_f90.html b/fortran/doc/DevelGuide/test/tH5I_f90.html
new file mode 100644
index 0000000..52e21fc
--- /dev/null
+++ b/fortran/doc/DevelGuide/test/tH5I_f90.html
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./test/tH5I.f90</title>
+<!-- Source: ./test/tH5I.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="root2ffortran2ftest2ftH5I2ef90"></a>
+<a name="robo15"></a><h2>fortran/test/tH5I.f90</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <a href="#robo_top_of_doc">tH5I.f90</a>
+</pre>
+<p class="item_name">FUNCTION</p>
+<pre> Basic testing of Fortran <a href="../src/H5Iff_f90.html#robo47">H5I</a> APIs.
+</pre>
+<p class="item_name">CONTAINS SUBROUTINES</p>
+<pre> identifier_test
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./test/tH5I.f90 on Sun Aug 14 2011 22:49:37
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/test/tH5O_f90.html b/fortran/doc/DevelGuide/test/tH5O_f90.html
new file mode 100644
index 0000000..a128da5
--- /dev/null
+++ b/fortran/doc/DevelGuide/test/tH5O_f90.html
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./test/tH5O.f90</title>
+<!-- Source: ./test/tH5O.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="root2ffortran2ftest2ftH5O2ef90"></a>
+<a name="robo17"></a><h2>fortran/test/tH5O.f90</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <a href="#robo_top_of_doc">tH5O.f90</a>
+</pre>
+<p class="item_name">FUNCTION</p>
+<pre> Basic testing of Fortran <a href="../src/H5Off_f90.html#robo56">H5O</a> APIs.
+</pre>
+<p class="item_name">CONTAINS SUBROUTINES</p>
+<pre> test_h5o, test_h5o_link, test_h5o_plist
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./test/tH5O.f90 on Sun Aug 14 2011 22:49:37
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/test/tH5P_f90.html b/fortran/doc/DevelGuide/test/tH5P_f90.html
new file mode 100644
index 0000000..edc0787
--- /dev/null
+++ b/fortran/doc/DevelGuide/test/tH5P_f90.html
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./test/tH5P.f90</title>
+<!-- Source: ./test/tH5P.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="root2ffortran2ftest2ftH5P2ef90"></a>
+<a name="robo18"></a><h2>fortran/test/tH5P.f90</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <a href="#robo_top_of_doc">tH5P.f90</a>
+</pre>
+<p class="item_name">FUNCTION</p>
+<pre> Basic testing of Fortran H5P APIs.
+</pre>
+<p class="item_name">CONTAINS SUBROUTINES</p>
+<pre> external_test, multi_file_test
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./test/tH5P.f90 on Sun Aug 14 2011 22:49:37
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/test/tH5R_f90.html b/fortran/doc/DevelGuide/test/tH5R_f90.html
new file mode 100644
index 0000000..fd44062
--- /dev/null
+++ b/fortran/doc/DevelGuide/test/tH5R_f90.html
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./test/tH5R.f90</title>
+<!-- Source: ./test/tH5R.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="root2ffortran2ftest2ftH5R2ef90"></a>
+<a name="robo20"></a><h2>fortran/test/tH5R.f90</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <a href="#robo_top_of_doc">tH5R.f90</a>
+</pre>
+<p class="item_name">FUNCTION</p>
+<pre> Basic testing of Fortran <a href="../src/H5Rff_f90.html#robo64">H5R</a>, Reference Interface, APIs.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> Tests h5rcreate_f, h5rdereference_f, h5rget_name_f
+ and H5Rget_object_type functions
+</pre>
+<p class="item_name">CONTAINS SUBROUTINES</p>
+<pre> refobjtest, refregtest
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./test/tH5R.f90 on Sun Aug 14 2011 22:49:37
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/test/tH5S_f90.html b/fortran/doc/DevelGuide/test/tH5S_f90.html
new file mode 100644
index 0000000..5879d28
--- /dev/null
+++ b/fortran/doc/DevelGuide/test/tH5S_f90.html
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./test/tH5S.f90</title>
+<!-- Source: ./test/tH5S.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="root2ffortran2ftest2ftH5S2ef90"></a>
+<a name="robo21"></a><h2>fortran/test/tH5S.f90</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <a href="#robo_top_of_doc">tH5S.f90</a>
+</pre>
+<p class="item_name">FUNCTION</p>
+<pre> Basic testing of Fortran <a href="../src/H5Sff_f90.html#robo68">H5S</a>, Dataspace Interface, APIs.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> Tests the following functionalities:
+ <a href="../src/H5Sff_f90.html#robo378">h5screate_f</a>, <a href="../src/H5Sff_f90.html#robo377">h5scopy_f</a>, <a href="../src/H5Sff_f90.html#robo379">h5screate_simple_f</a>, <a href="../src/H5Sff_f90.html#robo395">h5sis_simple_f</a>,
+ <a href="../src/H5Sff_f90.html#robo391">h5sget_simple_extent_dims_f</a>,<a href="../src/H5Sff_f90.html#robo392">h5sget_simple_extent_ndims_f</a>
+ <a href="../src/H5Sff_f90.html#robo393">h5sget_simple_extent_npoints_f</a>, <a href="../src/H5Sff_f90.html#robo394">h5sget_simple_extent_type_f</a>,
+ <a href="../src/H5Sff_f90.html#robo382">h5sextent_copy_f</a>, <a href="../src/H5Sff_f90.html#robo403">h5sset_extent_simple_f</a>, <a href="../src/H5Sff_f90.html#robo402">h5sset_extent_none_f</a>
+</pre>
+<p class="item_name">CONTAINS SUBROUTINES</p>
+<pre> dataspace_basic_test
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./test/tH5S.f90 on Sun Aug 14 2011 22:49:37
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/test/tH5Sselect_f90.html b/fortran/doc/DevelGuide/test/tH5Sselect_f90.html
new file mode 100644
index 0000000..e8eaa73
--- /dev/null
+++ b/fortran/doc/DevelGuide/test/tH5Sselect_f90.html
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./test/tH5Sselect.f90</title>
+<!-- Source: ./test/tH5Sselect.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="root2ffortran2ftest2ftH5Sselect2ef90"></a>
+<a name="robo22"></a><h2>fortran/test/tH5Sselect.f90</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <a href="#robo_top_of_doc">tH5Sselect.f90</a>
+</pre>
+<p class="item_name">FUNCTION</p>
+<pre> Basic testing of Fortran <a href="../src/H5Sff_f90.html#robo68">H5S</a>, Selection-related Dataspace Interface, APIs.
+</pre>
+<p class="item_name">NOTES</p>
+<pre> Tests the following functionalities:
+ <a href="../src/H5Sff_f90.html#robo389">h5sget_select_npoints_f</a>, <a href="../src/H5Sff_f90.html#robo398">h5sselect_elements_f</a>, <a href="../src/H5Sff_f90.html#robo397">h5sselect_all_f</a>,
+ <a href="../src/H5Sff_f90.html#robo400">h5sselect_none_f</a>, <a href="../src/H5Sff_f90.html#robo401">h5sselect_valid_f</a>, <a href="../src/H5Sff_f90.html#robo399">h5sselect_hyperslab_f</a>,
+ <a href="../src/H5Sff_f90.html#robo384">h5sget_select_bounds_f</a>, <a href="../src/H5Sff_f90.html#robo386">h5sget_select_elem_pointlist_f</a>,
+ <a href="../src/H5Sff_f90.html#robo385">h5sget_select_elem_npoints_f</a>, <a href="../src/H5Sff_f90.html#robo387">h5sget_select_hyper_blocklist_f</a>,
+ <a href="../src/H5Sff_f90.html#robo388">h5sget_select_hyper_nblocks_f</a>, <a href="../src/H5Sff_f90.html#robo389">h5sget_select_npoints_f</a>
+</pre>
+<p class="item_name">CONTAINS SUBROUTINES</p>
+<pre> test_select_hyperslab, test_select_element, test_basic_select,
+ test_select_point, test_select_combine, test_select_bounds
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./test/tH5Sselect.f90 on Sun Aug 14 2011 22:49:37
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/test/tH5T_f90.html b/fortran/doc/DevelGuide/test/tH5T_f90.html
new file mode 100644
index 0000000..35006b3
--- /dev/null
+++ b/fortran/doc/DevelGuide/test/tH5T_f90.html
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./test/tH5T.f90</title>
+<!-- Source: ./test/tH5T.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="root2ffortran2ftest2ftH5T2ef90"></a>
+<a name="robo23"></a><h2>fortran/test/tH5T.f90</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <a href="#robo_top_of_doc">tH5T.f90</a>
+</pre>
+<p class="item_name">FUNCTION</p>
+<pre> Basic testing of Fortran <a href="../src/H5Tff_f90.html#robo70">H5T</a> APIs.
+</pre>
+<p class="item_name">CONTAINS SUBROUTINES</p>
+<pre> compoundtest, basic_data_type_test, enumtest, test_derived_flt
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./test/tH5T.f90 on Sun Aug 14 2011 22:49:37
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/test/tH5VL_f90.html b/fortran/doc/DevelGuide/test/tH5VL_f90.html
new file mode 100644
index 0000000..a34a01d
--- /dev/null
+++ b/fortran/doc/DevelGuide/test/tH5VL_f90.html
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./test/tH5VL.f90</title>
+<!-- Source: ./test/tH5VL.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="root2ffortran2ftest2ftH5VL2ef90"></a>
+<a name="robo25"></a><h2>fortran/test/tH5VL.f90</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <a href="#robo_top_of_doc">tH5VL.f90</a>
+</pre>
+<p class="item_name">FUNCTION</p>
+<pre> Basic testing of Fortran Variable_length datatypes APIs.
+</pre>
+<p class="item_name">CONTAINS SUBROUTINES</p>
+<pre> vl_test_integer, vl_test_real, vl_test_string
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./test/tH5VL.f90 on Sun Aug 14 2011 22:49:37
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/test/tH5Z_f90.html b/fortran/doc/DevelGuide/test/tH5Z_f90.html
new file mode 100644
index 0000000..94325b9
--- /dev/null
+++ b/fortran/doc/DevelGuide/test/tH5Z_f90.html
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./test/tH5Z.f90</title>
+<!-- Source: ./test/tH5Z.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="root2ffortran2ftest2ftH5Z2ef90"></a>
+<a name="robo26"></a><h2>fortran/test/tH5Z.f90</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <a href="#robo_top_of_doc">tH5Z.f90</a>
+</pre>
+<p class="item_name">FUNCTION</p>
+<pre> Basic testing of Fortran <a href="../src/H5Zff_f90.html#robo74">H5Z</a> szip APIs.
+</pre>
+<p class="item_name">CONTAINS SUBROUTINES</p>
+<pre> filters_test, szip_test
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./test/tH5Z.f90 on Sun Aug 14 2011 22:49:37
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/test/t_c.html b/fortran/doc/DevelGuide/test/t_c.html
new file mode 100644
index 0000000..c9512a7
--- /dev/null
+++ b/fortran/doc/DevelGuide/test/t_c.html
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./test/t.c</title>
+<!-- Source: ./test/t.c -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="root2ffortran2ftest2ftc2ec"></a>
+<a name="robo5"></a><h2>fortran/test/tc.c</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> tc.c
+</pre>
+<p class="item_name">FUNCTION</p>
+<pre> This file contains C routines needed for the test programs.
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./test/t.c on Sun Aug 14 2011 22:49:37
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/test/tf_f90.html b/fortran/doc/DevelGuide/test/tf_f90.html
new file mode 100644
index 0000000..e3c51f4
--- /dev/null
+++ b/fortran/doc/DevelGuide/test/tf_f90.html
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<title>./test/tf.f90</title>
+<!-- Source: ./test/tf.f90 -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+<a class="menuitem" href="../robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="../robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="root2ffortran2ftest2ftf2ef90"></a>
+<a name="robo6"></a><h2>fortran/test/tf.f90</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<pre> <a href="#robo_top_of_doc">tf.f90</a>
+</pre>
+<p class="item_name">FUNCTION</p>
+<pre> Contains subroutines which are needed in all the hdf5 fortran tests
+</pre>
+<p class="item_name">CONTAINS SUBROUTINES</p>
+<pre> write_test_status, check, verify, verifyLogical, verifyString, h5_fixname_f,
+ h5_cleanup_f, h5_exit_f, h5_env_nocleanup_f
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./test/tf.f90 on Sun Aug 14 2011 22:49:37
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/doc/DevelGuide/toc_index.html b/fortran/doc/DevelGuide/toc_index.html
new file mode 100644
index 0000000..94a2792
--- /dev/null
+++ b/fortran/doc/DevelGuide/toc_index.html
@@ -0,0 +1,552 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="./robodoc.css" type="text/css" />
+<title>Table of Contents</title>
+<!-- Source: ./ -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc">HDF5 FORTRAN Developer's Guide</a>
+</div> <!-- logo -->
+<div id="extra">
+</div> <!-- extra -->
+<div id="navigation">
+<a class="menuitem" href="#top">Table of Contents</a>
+<a class="menuitem" href="./robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="./masterindex.html#top">Index</a>
+<a class="menuitem" href="./robo_functions.html#top">Functions</a>
+<a class="menuitem" href="./robo_modules.html#top">Modules</a>
+<a class="menuitem" href="./robo_procedures.html#top">Procedures</a>
+<a class="menuitem" href="./robo_subroutines.html#top">Subroutines</a>
+</div> <!-- navigation -->
+<div id="content">
+<h3>TABLE OF CONTENTS</h3>
+<ul>
+<li><a href="./test/fflush1_f90.html#robo0">fortran/test/fflush1.f90</a></li>
+<li><a href="./test/fflush2_f90.html#robo1">fortran/test/fflush2.f90</a></li>
+<li><a href="./test/fortranlib_test_f90.html#robo2">fortran/test/fortranlib_test.f90</a></li>
+<li><a href="./test/fortranlib_test_1_8_f90.html#robo3">fortran/test/fortranlib_test_1_8.f90</a></li>
+<li><a href="./test/fortranlib_test_F03_f90.html#robo4">fortran/test/fortranlib_test_F03.f90</a></li>
+<li><a href="./test/t_c.html#robo5">fortran/test/tc.c</a></li>
+<li><a href="./test/tf_f90.html#robo6">fortran/test/tf.f90</a></li>
+<li><a href="./test/tH5A_f90.html#robo7">fortran/test/tH5A.f90</a></li>
+<li><a href="./test/tH5A_1_8_f90.html#robo8">fortran/test/tH5A_1_8.f90</a></li>
+<li><a href="./test/tH5D_f90.html#robo9">fortran/test/tH5D.f90</a></li>
+<li><a href="./test/tH5E_f90.html#robo10">fortran/test/tH5E.f90</a></li>
+<li><a href="./test/tH5E_F03_f90.html#robo11">fortran/test/tH5E_F03.f90</a></li>
+<li><a href="./test/tH5F_f90.html#robo12">fortran/test/tH5F.f90</a></li>
+<li><a href="./test/tH5G_f90.html#robo13">fortran/test/tH5G.f90</a></li>
+<li><a href="./test/tH5G_1_8_f90.html#robo14">fortran/test/tH5G_1_8.f90</a></li>
+<li><a href="./test/tH5I_f90.html#robo15">fortran/test/tH5I.f90</a></li>
+<li><a href="./test/tH5L_F03_f90.html#robo16">fortran/test/tH5L_F03.f90</a></li>
+<li><a href="./test/tH5O_f90.html#robo17">fortran/test/tH5O.f90</a></li>
+<li><a href="./test/tH5P_f90.html#robo18">fortran/test/tH5P.f90</a></li>
+<li><a href="./test/tH5P_F03_f90.html#robo19">fortran/test/tH5P_F03.f90</a></li>
+<li><a href="./test/tH5R_f90.html#robo20">fortran/test/tH5R.f90</a></li>
+<li><a href="./test/tH5S_f90.html#robo21">fortran/test/tH5S.f90</a></li>
+<li><a href="./test/tH5Sselect_f90.html#robo22">fortran/test/tH5Sselect.f90</a></li>
+<li><a href="./test/tH5T_f90.html#robo23">fortran/test/tH5T.f90</a></li>
+<li><a href="./test/tH5T_F03_f90.html#robo24">fortran/test/tH5T_F03.f90</a></li>
+<li><a href="./test/tH5VL_f90.html#robo25">fortran/test/tH5VL.f90</a></li>
+<li><a href="./test/tH5Z_f90.html#robo26">fortran/test/tH5Z.f90</a></li>
+<li><a href="./src/H5Aff_f90.html#robo27">H5A</a></li>
+<ul>
+<li><a href="./src/H5Aff_f90.html#robo85">h5aclose_f</a></li>
+<li><a href="./src/H5Aff_f90.html#robo86">h5acreate_by_name_f</a></li>
+<li><a href="./src/H5Aff_f90.html#robo87">h5acreate_f</a></li>
+<li><a href="./src/H5Aff_f90.html#robo88">h5adelete_by_idx_f</a></li>
+<li><a href="./src/H5Aff_f90.html#robo89">h5adelete_by_name_f</a></li>
+<li><a href="./src/H5Aff_f90.html#robo90">h5adelete_f</a></li>
+<li><a href="./src/H5Aff_f90.html#robo91">H5Aexists_by_name_f</a></li>
+<li><a href="./src/H5Aff_f90.html#robo92">H5Aexists_f</a></li>
+<li><a href="./src/H5Aff_f90.html#robo93">h5aget_create_plist_f</a></li>
+<li><a href="./src/H5Aff_f90.html#robo94">h5aget_info_by_idx_f</a></li>
+<li><a href="./src/H5Aff_f90.html#robo95">h5aget_info_by_name_f</a></li>
+<li><a href="./src/H5Aff_f90.html#robo96">h5aget_info_f</a></li>
+<li><a href="./src/H5Aff_f90.html#robo97">h5aget_name_by_idx_f</a></li>
+<li><a href="./src/H5Aff_f90.html#robo98">h5aget_name_f</a></li>
+<li><a href="./src/H5Aff_f90.html#robo99">h5aget_num_attrs_f</a></li>
+<li><a href="./src/H5Aff_f90.html#robo100">h5aget_space_f</a></li>
+<li><a href="./src/H5Aff_f90.html#robo101">h5aget_storage_size_f</a></li>
+<li><a href="./src/H5Aff_f90.html#robo102">h5aget_type_f</a></li>
+<li><a href="./src/H5Aff_f90.html#robo103">h5aopen_by_idx_f</a></li>
+<li><a href="./src/H5Aff_f90.html#robo104">H5Aopen_by_name_f</a></li>
+<li><a href="./src/H5Aff_f90.html#robo105">h5aopen_f</a></li>
+<li><a href="./src/H5Aff_f90.html#robo106">h5aopen_idx_f</a></li>
+<li><a href="./src/H5Aff_f90.html#robo107">h5aopen_name_f</a></li>
+<li><a href="./src/H5Aff_f90.html#robo109">h5arename_by_name_f</a></li>
+<li><a href="./src/H5Aff_f90.html#robo110">h5arename_f</a></li>
+</ul>
+<li><a href="./src/H5Aff_F03_f90.html#robo28">H5A (F03)</a></li>
+<ul>
+<li><a href="./src/H5Aff_F03_f90.html#robo108">h5aread_f</a></li>
+</ul>
+<li><a href="./src/H5Aff_F90_f90.html#robo29">H5A (F90)</a></li>
+<li><a href="./src/H5Af_c.html#robo30">H5Af</a></li>
+<li><a href="./src/H5Dff_f90.html#robo31">H5D</a></li>
+<ul>
+<li><a href="./src/H5Dff_f90.html#robo113">h5dclose_f</a></li>
+<li><a href="./src/H5Dff_f90.html#robo114">h5dcreate_anon_f</a></li>
+<li><a href="./src/H5Dff_f90.html#robo115">h5dcreate_f</a></li>
+<li><a href="./src/H5Dff_f90.html#robo116">h5dget_access_plist_f</a></li>
+<li><a href="./src/H5Dff_f90.html#robo117">h5dget_create_plist_f</a></li>
+<li><a href="./src/H5Dff_f90.html#robo118">h5dget_space_f</a></li>
+<li><a href="./src/H5Dff_f90.html#robo119">h5dget_space_status_f</a></li>
+<li><a href="./src/H5Dff_f90.html#robo120">h5dget_storage_size_f</a></li>
+<li><a href="./src/H5Dff_f90.html#robo121">h5dget_type_f</a></li>
+<li><a href="./src/H5Dff_f90.html#robo123">h5dopen_f</a></li>
+<li><a href="./src/H5Dff_F90_f90.html#robo124">h5dread_f</a></li>
+<li><a href="./src/H5Dff_f90.html#robo125">h5dset_extent</a></li>
+<li><a href="./src/H5Dff_f90.html#robo126">h5dvlen_get_max_len_f</a></li>
+<li><a href="./src/H5Dff_F03_f90.html#robo127">h5dvlen_reclaim</a></li>
+</ul>
+<li><a href="./src/H5Dff_F03_f90.html#robo32">H5D (F03)</a></li>
+<li><a href="./src/H5Dff_F90_f90.html#robo33">H5D (F90)</a></li>
+<li><a href="./src/H5Df_c.html#robo34">H5Df</a></li>
+<li><a href="./src/H5Eff_f90.html#robo35">H5E</a></li>
+<ul>
+<li><a href="./src/H5Eff_f90.html#robo128">h5eclear_f</a></li>
+<li><a href="./src/H5Eff_F03_f90.html#robo129">h5eget_auto_f</a></li>
+<li><a href="./src/H5Eff_f90.html#robo130">h5eget_major_f</a></li>
+<li><a href="./src/H5Eff_f90.html#robo131">h5eget_minor_f</a></li>
+<li><a href="./src/H5Eff_f90.html#robo132">h5eprint_f</a></li>
+<li><a href="./src/H5Eff_F03_f90.html#robo133">h5eset_auto2_f</a></li>
+<li><a href="./src/H5Eff_F90_f90.html#robo134">h5eset_auto_f</a></li>
+</ul>
+<li><a href="./src/H5Eff_F03_f90.html#robo36">H5E (F03)</a></li>
+<li><a href="./src/H5Eff_F90_f90.html#robo37">H5E (F90)</a></li>
+<li><a href="./src/H5Ef_c.html#robo38">H5Ef</a></li>
+<li><a href="./src/H5Fff_f90.html#robo39">H5F</a></li>
+<ul>
+<li><a href="./src/H5Fff_f90.html#robo135">h5fclose_f</a></li>
+<li><a href="./src/H5Fff_f90.html#robo136">h5fcreate_f</a></li>
+<li><a href="./src/H5Fff_f90.html#robo137">h5fflush_f</a></li>
+<li><a href="./src/H5Fff_f90.html#robo138">h5fget_access_plist_f</a></li>
+<li><a href="./src/H5Fff_f90.html#robo139">h5fget_create_plist_f</a></li>
+<li><a href="./src/H5Fff_f90.html#robo140">h5fget_filesize_f</a></li>
+<li><a href="./src/H5Fff_f90.html#robo141">h5fget_freespace_f</a></li>
+<li><a href="./src/H5Fff_f90.html#robo142">h5fget_name_f</a></li>
+<li><a href="./src/H5Fff_f90.html#robo143">h5fget_obj_count_f</a></li>
+<li><a href="./src/H5Fff_f90.html#robo144">h5fget_obj_ids_f</a></li>
+<li><a href="./src/H5Fff_f90.html#robo145">h5fis_hdf5_f</a></li>
+<li><a href="./src/H5Fff_f90.html#robo146">h5fmount_f</a></li>
+<li><a href="./src/H5Fff_f90.html#robo147">h5fopen_f</a></li>
+<li><a href="./src/H5Fff_f90.html#robo148">h5freopen_f</a></li>
+<li><a href="./src/H5Fff_f90.html#robo149">h5funmount_f</a></li>
+</ul>
+<li><a href="./src/H5f90kit_c.html#robo40">H5f90kit</a></li>
+<li><a href="./src/H5FDmpioff_f90.html#robo41">H5FDMPIO</a></li>
+<ul>
+<li><a href="./src/H5FDmpioff_f90.html#robo231">h5pget_dxpl_mpio_f</a></li>
+<li><a href="./src/H5FDmpioff_f90.html#robo239">h5pget_fapl_mpio_f</a></li>
+<li><a href="./src/H5FDmpioff_f90.html#robo240">h5pget_fapl_mpiposix_f</a></li>
+<li><a href="./src/H5FDmpioff_f90.html#robo314">h5pset_dxpl_mpio_f</a></li>
+<li><a href="./src/H5FDmpioff_f90.html#robo320">h5pset_fapl_mpio_f</a></li>
+<li><a href="./src/H5FDmpioff_f90.html#robo321">h5pset_fapl_mpiposix_f</a></li>
+</ul>
+<li><a href="./src/H5FDmpiof_c.html#robo42">H5FDmpiof</a></li>
+<li><a href="./src/H5Ff_c.html#robo43">H5Ff</a></li>
+<li><a href="./src/H5Gff_f90.html#robo44">H5G</a></li>
+<ul>
+<li><a href="./src/H5Gff_f90.html#robo151">h5gclose_f</a></li>
+<li><a href="./src/H5Gff_f90.html#robo152">H5Gcreate_anon_f</a></li>
+<li><a href="./src/H5Gff_f90.html#robo153">h5gcreate_f</a></li>
+<li><a href="./src/H5Gff_f90.html#robo155">h5gget_comment_f</a></li>
+<li><a href="./src/H5Gff_f90.html#robo156">H5Gget_create_plist_f</a></li>
+<li><a href="./src/H5Gff_f90.html#robo157">h5gget_info_by_idx_f</a></li>
+<li><a href="./src/H5Gff_f90.html#robo158">h5gget_info_by_name_f</a></li>
+<li><a href="./src/H5Gff_f90.html#robo159">h5gget_info_f</a></li>
+<li><a href="./src/H5Gff_f90.html#robo160">h5gget_linkval_f</a></li>
+<li><a href="./src/H5Gff_f90.html#robo161">h5gget_obj_info_idx_f</a></li>
+<li><a href="./src/H5Gff_f90.html#robo162">h5glink2_f</a></li>
+<li><a href="./src/H5Gff_f90.html#robo163">h5glink_f</a></li>
+<li><a href="./src/H5Gff_f90.html#robo164">h5gmove2_f</a></li>
+<li><a href="./src/H5Gff_f90.html#robo165">h5gmove_f</a></li>
+<li><a href="./src/H5Gff_f90.html#robo166">h5gn_members_f</a></li>
+<li><a href="./src/H5Gff_f90.html#robo167">h5gopen_f</a></li>
+<li><a href="./src/H5Gff_f90.html#robo168">h5gset_comment_f</a></li>
+<li><a href="./src/H5Gff_f90.html#robo169">h5gunlink_f</a></li>
+</ul>
+<li><a href="./src/H5Gf_c.html#robo45">H5Gf</a></li>
+<li><a href="./src/H5f90global_f90.html#robo46">H5GLOBAL</a></li>
+<li><a href="./src/H5Iff_f90.html#robo47">H5I</a></li>
+<ul>
+<li><a href="./src/H5Iff_f90.html#robo170">h5idec_ref_f</a></li>
+<li><a href="./src/H5Iff_f90.html#robo171">h5iget_file_id_f</a></li>
+<li><a href="./src/H5Iff_f90.html#robo172">h5iget_name_f</a></li>
+<li><a href="./src/H5Iff_f90.html#robo173">h5iget_ref_f</a></li>
+<li><a href="./src/H5Iff_f90.html#robo174">h5iget_type_f</a></li>
+<li><a href="./src/H5Iff_f90.html#robo175">h5iinc_ref_f</a></li>
+<li><a href="./src/H5Iff_f90.html#robo176">h5iis_valid_f</a></li>
+</ul>
+<li><a href="./src/H5If_c.html#robo48">H5If</a></li>
+<li><a href="./src/H5Lff_f90.html#robo49">H5L</a></li>
+<ul>
+<li><a href="./src/H5Lff_f90.html#robo178">h5lcopy_f</a></li>
+<li><a href="./src/H5Lff_f90.html#robo179">H5Lcreate_external_f</a></li>
+<li><a href="./src/H5Lff_f90.html#robo180">H5Lcreate_hard_f</a></li>
+<li><a href="./src/H5Lff_f90.html#robo181">H5Lcreate_soft_f</a></li>
+<li><a href="./src/H5Lff_f90.html#robo182">h5ldelete_by_idx_f</a></li>
+<li><a href="./src/H5Lff_f90.html#robo183">h5ldelete_f</a></li>
+<li><a href="./src/H5Lff_f90.html#robo184">H5Lexists_f</a></li>
+<li><a href="./src/H5Lff_f90.html#robo185">h5lget_info_by_idx_f</a></li>
+<li><a href="./src/H5Lff_f90.html#robo186">h5lget_info_f</a></li>
+<li><a href="./src/H5Lff_f90.html#robo187">h5lget_name_by_idx_f</a></li>
+<li><a href="./src/H5Lff_f90.html#robo188">h5lis_registered_f</a></li>
+<li><a href="./src/H5Lff_f90.html#robo191">h5lmove_f</a></li>
+</ul>
+<li><a href="./src/H5Lff_F03_f90.html#robo50">H5L (F03)</a></li>
+<ul>
+<li><a href="./src/H5Lff_F03_f90.html#robo189">h5literate_by_name_f</a></li>
+<li><a href="./src/H5Lff_F03_f90.html#robo190">h5literate_f</a></li>
+</ul>
+<li><a href="./src/H5Lff_F90_f90.html#robo51">H5L (F90)</a></li>
+<li><a href="./src/H5Lf_c.html#robo52">H5Lf</a></li>
+<li><a href="./src/H5_ff_f90.html#robo53">H5LIB</a></li>
+<ul>
+<li><a href="./src/H5_ff_f90.html#robo111">h5check_version_f</a></li>
+<li><a href="./src/H5_ff_f90.html#robo112">h5close_f</a></li>
+<li><a href="./src/H5_ff_f90.html#robo122">h5dont_atexit_f</a></li>
+<li><a href="./src/H5_ff_f90.html#robo150">h5garbage_collect_f</a></li>
+<li><a href="./src/H5_ff_f90.html#robo154">h5get_libversion_f</a></li>
+<li><a href="./src/H5_ff_f90.html#robo177">h5kind_to_type</a></li>
+<li><a href="./src/H5_ff_f90.html#robo198">h5open_f</a></li>
+</ul>
+<li><a href="./src/H5_ff_F03_f90.html#robo54">H5LIB_PROVISIONAL</a></li>
+<ul>
+<li><a href="./src/H5_ff_F03_f90.html#robo194">h5offsetof</a></li>
+</ul>
+<li><a href="./src/H5_ff_F90_f90.html#robo55">H5LIB_PROVISIONAL (F90)</a></li>
+<li><a href="./src/H5Off_f90.html#robo56">H5O</a></li>
+<ul>
+<li><a href="./src/H5Off_f90.html#robo193">h5oclose_f</a></li>
+<li><a href="./src/H5Off_f90.html#robo195">h5olink_f</a></li>
+<li><a href="./src/H5Off_f90.html#robo196">h5oopen_f</a></li>
+<li><a href="./src/H5Off_f90.html#robo197">h5open_by_addr_f</a></li>
+</ul>
+<li><a href="./src/H5Off_F03_f90.html#robo57">H5O (F03)</a></li>
+<ul>
+<li><a href="./src/H5Off_F03_f90.html#robo199">h5ovisit_f</a></li>
+</ul>
+<li><a href="./src/H5Off_F90_f90.html#robo58">H5O (F90)</a></li>
+<li><a href="./src/H5Of_c.html#robo59">H5Of</a></li>
+<li><a href="./src/H5Pff_F90_f90.html#robo60">H5P (_F90)</a></li>
+<li><a href="./src/H5Pff_F03_f90.html#robo61">H5P (F03)</a></li>
+<ul>
+<li><a href="./src/H5Pff_F03_f90.html#robo80"> h5pget_double</a></li>
+<li><a href="./src/H5Pff_F03_f90.html#robo205">h5pcreate_class_f</a></li>
+<li><a href="./src/H5Pff_F03_f90.html#robo218">h5pget_char</a></li>
+<li><a href="./src/H5Pff_F03_f90.html#robo247">h5pget_integer</a></li>
+<li><a href="./src/H5Pff_F03_f90.html#robo261">h5pget_real</a></li>
+<li><a href="./src/H5Pff_F03_f90.html#robo273">h5pinsert_char</a></li>
+<li><a href="./src/H5Pff_F03_f90.html#robo274">h5pinsert_double</a></li>
+<li><a href="./src/H5Pff_F03_f90.html#robo276">h5pinsert_integer</a></li>
+<li><a href="./src/H5Pff_F03_f90.html#robo278">h5pinsert_ptr</a></li>
+<li><a href="./src/H5Pff_F03_f90.html#robo280">h5pinsert_real</a></li>
+<li><a href="./src/H5Pff_F03_f90.html#robo283">h5pregister_char</a></li>
+<li><a href="./src/H5Pff_F03_f90.html#robo286">h5pregister_double</a></li>
+<li><a href="./src/H5Pff_F03_f90.html#robo287">h5pregister_integer</a></li>
+<li><a href="./src/H5Pff_F03_f90.html#robo289">h5pregister_ptr</a></li>
+<li><a href="./src/H5Pff_F03_f90.html#robo291">h5pregister_real</a></li>
+<li><a href="./src/H5Pff_F03_f90.html#robo294">h5pset(get)fill_value_f</a></li>
+<li><a href="./src/H5Pff_F03_f90.html#robo303">h5pset_char</a></li>
+<li><a href="./src/H5Pff_F03_f90.html#robo313">h5pset_double</a></li>
+<li><a href="./src/H5Pff_F03_f90.html#robo334">h5pset_integer</a></li>
+<li><a href="./src/H5Pff_F03_f90.html#robo345">h5pset_real</a></li>
+</ul>
+<li><a href="./src/H5Pff_f90.html#robo62">H5P (F90)</a></li>
+<ul>
+<li><a href="./src/H5Pff_F90_f90.html#robo206">h5pcreate_class_f</a></li>
+<li><a href="./src/H5Pff_F90_f90.html#robo219">h5pget_char</a></li>
+<li><a href="./src/H5Pff_F90_f90.html#robo229">h5pget_double</a></li>
+<li><a href="./src/H5Pff_F90_f90.html#robo248">h5pget_integer</a></li>
+<li><a href="./src/H5Pff_F90_f90.html#robo260">h5pget_real</a></li>
+<li><a href="./src/H5Pff_F90_f90.html#robo272">h5pinsert_char</a></li>
+<li><a href="./src/H5Pff_F90_f90.html#robo275">h5pinsert_double</a></li>
+<li><a href="./src/H5Pff_F90_f90.html#robo277">h5pinsert_integer</a></li>
+<li><a href="./src/H5Pff_F90_f90.html#robo279">h5pinsert_real</a></li>
+<li><a href="./src/H5Pff_F90_f90.html#robo284">h5pregister_char</a></li>
+<li><a href="./src/H5Pff_F90_f90.html#robo285">h5pregister_double</a></li>
+<li><a href="./src/H5Pff_F90_f90.html#robo288">h5pregister_integer</a></li>
+<li><a href="./src/H5Pff_F90_f90.html#robo290">h5pregister_real</a></li>
+<li><a href="./src/H5Pff_F90_f90.html#robo295">h5pset(get)fill_value_f</a></li>
+<li><a href="./src/H5Pff_F90_f90.html#robo304">h5pset_char</a></li>
+<li><a href="./src/H5Pff_F90_f90.html#robo312">h5pset_double</a></li>
+<li><a href="./src/H5Pff_F90_f90.html#robo333">h5pset_integer</a></li>
+<li><a href="./src/H5Pff_F90_f90.html#robo346">h5pset_real</a></li>
+</ul>
+<li><a href="./src/H5Pf_c.html#robo63">H5Pf</a></li>
+<li><a href="./src/H5Rff_f90.html#robo64">H5R</a></li>
+<ul>
+<li><a href="./src/H5Rff_f90.html#robo374">h5rget_object_type_obj_f</a></li>
+<li><a href="./src/H5Rff_f90.html#robo375">h5rget_region_region_f</a></li>
+</ul>
+<li><a href="./src/H5Rff_F03_f90.html#robo65">H5R (F03)</a></li>
+<ul>
+<li><a href="./src/H5Rff_F03_f90.html#robo358">h5rcreate_object_f</a></li>
+<li><a href="./src/H5Rff_F03_f90.html#robo360">h5rcreate_ptr_f</a></li>
+<li><a href="./src/H5Rff_F03_f90.html#robo362">h5rcreate_region_f</a></li>
+<li><a href="./src/H5Rff_F03_f90.html#robo363">h5rdereference_object_f</a></li>
+<li><a href="./src/H5Rff_F03_f90.html#robo365">h5rdereference_ptr_f</a></li>
+<li><a href="./src/H5Rff_F03_f90.html#robo366">h5rdereference_region_f</a></li>
+<li><a href="./src/H5Rff_F03_f90.html#robo369">h5rget_name_object_f</a></li>
+<li><a href="./src/H5Rff_F03_f90.html#robo370">h5rget_name_ptr_f</a></li>
+<li><a href="./src/H5Rff_F03_f90.html#robo372">h5rget_name_region_f</a></li>
+<li><a href="./src/H5Rff_F03_f90.html#robo373">h5rget_obj_type_f</a></li>
+</ul>
+<li><a href="./src/H5Rff_F90_f90.html#robo66">H5R (F90)</a></li>
+<ul>
+<li><a href="./src/H5Rff_F90_f90.html#robo359">h5rcreate_object_f</a></li>
+<li><a href="./src/H5Rff_F90_f90.html#robo361">h5rcreate_region_f</a></li>
+<li><a href="./src/H5Rff_F90_f90.html#robo364">h5rdereference_object_f</a></li>
+<li><a href="./src/H5Rff_F90_f90.html#robo367">h5rdereference_region_f</a></li>
+<li><a href="./src/H5Rff_F90_f90.html#robo368">h5rget_name_object_f</a></li>
+<li><a href="./src/H5Rff_F90_f90.html#robo371">h5rget_name_region_f</a></li>
+</ul>
+<li><a href="./src/H5Rf_c.html#robo67">H5Rf</a></li>
+<li><a href="./src/H5Sff_f90.html#robo68">H5S</a></li>
+<ul>
+<li><a href="./src/H5Sff_f90.html#robo376">h5sclose_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo377">h5scopy_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo378">h5screate_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo379">h5screate_simple_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo380">H5Sdecode_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo381">H5Sencode_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo382">h5sextent_copy_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo383">h5sextent_equal_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo384">h5sget_select_bounds_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo385">h5sget_select_elem_npoints_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo386">h5sget_select_elem_pointlist_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo387">h5sget_select_hyper_blocklist_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo388">h5sget_select_hyper_nblocks_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo389">h5sget_select_npoints_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo390">h5sget_select_type_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo391">h5sget_simple_extent_dims_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo392">h5sget_simple_extent_ndims_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo393">h5sget_simple_extent_npoints_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo394">h5sget_simple_extent_type_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo395">h5sis_simple_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo396">h5soffset_simple_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo397">h5sselect_all_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo398">h5sselect_elements_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo399">h5sselect_hyperslab_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo400">h5sselect_none_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo401">h5sselect_valid_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo402">h5sset_extent_none_f</a></li>
+<li><a href="./src/H5Sff_f90.html#robo403">h5sset_extent_simple_f</a></li>
+</ul>
+<li><a href="./src/H5Sf_c.html#robo69">H5Sf</a></li>
+<li><a href="./src/H5Tff_f90.html#robo70">H5T</a></li>
+<ul>
+<li><a href="./src/H5Tff_f90.html#robo404">h5tarray_create_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo405">h5tclose_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo406">h5tcommit_anon_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo407">h5tcommit_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo408">h5tcommitted_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo409">h5tcompiler_conv_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo411">h5tcopy_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo412">h5tcreate_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo413">H5Tdecode_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo414">h5tenaum_insert_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo415">H5Tencode_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo416">h5tenum_create_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo417">h5tenum_nameof_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo418">h5tenum_valuof_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo419">h5tequal_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo422">h5tget_array_dims_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo423">h5tget_array_ndims_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo424">h5tget_class_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo425">h5tget_create_plist_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo426">h5tget_cset_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo427">h5tget_ebias_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo428">h5tget_fields_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo429">h5tget_inpad_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo430">h5tget_member_class_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo431">h5tget_member_index_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo432">h5tget_member_name_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo433">h5tget_member_offset_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo434">h5tget_member_type_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo435">h5tget_member_value_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo436">h5tget_native_type_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo437">h5tget_nmembers_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo438">h5tget_norm_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo439">h5tget_offset_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo440">h5tget_order_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo441">h5tget_pad_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo442">h5tget_precision_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo443">h5tget_sign_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo444">h5tget_size_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo445">h5tget_strpad_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo446">h5tget_super_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo447">h5tget_tag_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo448">h5tinsert_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo449">h5tis_variable_str_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo450">h5topen_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo451">h5tpack_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo452">h5tset_cset_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo453">h5tset_ebias_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo454">h5tset_fields_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo455">h5tset_inpad_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo456">h5tset_norm_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo457">h5tset_offset_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo458">h5tset_order_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo459">h5tset_pad_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo460">h5tset_precision_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo461">h5tset_sign_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo462">h5tset_size_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo463">h5tset_strpad_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo464">h5tset_tag_f</a></li>
+<li><a href="./src/H5Tff_f90.html#robo465">h5tvlen_create_f</a></li>
+</ul>
+<li><a href="./src/H5Tff_F03_f90.html#robo71">H5T (F03)</a></li>
+<ul>
+<li><a href="./src/H5Tff_F03_f90.html#robo410">H5Tconvert_f</a></li>
+</ul>
+<li><a href="./src/H5Tff_F90_f90.html#robo72">H5T (F90)</a></li>
+<li><a href="./src/H5Tf_c.html#robo73">H5Tf</a></li>
+<li><a href="./src/H5Zff_f90.html#robo74">H5Z</a></li>
+<ul>
+<li><a href="./src/H5Zff_f90.html#robo466">h5zfilter_avail_f</a></li>
+<li><a href="./src/H5Zff_f90.html#robo467">h5zget_filter_info_f</a></li>
+<li><a href="./src/H5Zff_f90.html#robo468">h5zunregister_f</a></li>
+</ul>
+<li><a href="./src/H5Zf_c.html#robo75">H5Zf</a></li>
+<li><a href="./src/HDF5_f90.html#robo76">HDF5</a></li>
+<li><a href="./src/HDF5mpio_f90.html#robo77">HDF5 (mpio)</a></li>
+<li><a href="./src/H5_DBLE_InterfaceExclude_f90.html#robo78">src/H5_DBLE_InterfaceExclude.f90</a></li>
+<li><a href="./src/H5_DBLE_InterfaceInclude_f90.html#robo79">src/H5_DBLE_InterfaceInclude.f90</a></li>
+<li><a href="./src/H5Pff_f90.html#robo81"> h5pget_hyper_vector_size_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo82"> h5pset_family_offset_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo83"> h5pset_fapl_family_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo84"> h5pset_meta_block_size_f</a></li>
+<li><a href="./src/H5match_types_c.html#robo192">H5match_types</a></li>
+<li><a href="./src/H5Pff_f90.html#robo200">h5pall_filters_avail_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo201">h5pclose_class_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo202">h5pclose_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo203">h5pcopy_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo204">h5pcopy_prop_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo207">h5pcreate_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo208">h5pequal_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo209">h5pexist_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo210">h5pfill_value_defined_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo211">h5pget_alignment_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo212">h5pget_alloc_time_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo213">H5Pget_attr_creation_order_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo214">H5Pget_attr_phase_change_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo215">h5pget_btree_ratios_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo216">h5pget_buffer_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo217">h5pget_cache_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo220">H5Pget_char_encoding_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo221">H5Pget_chunk_cache_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo222">h5pget_chunk_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo223">h5pget_class_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo224">h5pget_class_name_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo225">h5pget_class_parent_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo226">h5pget_copy_object_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo227">H5Pget_create_inter_group_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo228">h5pget_data_transform_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo230">h5pget_driver_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo232">h5pget_edc_check_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo233">H5Pget_est_link_info_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo234">h5pget_external_count_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo235">h5pget_external_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo236">h5pget_fapl_core_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo237">h5pget_fapl_direct_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo238">h5pget_fapl_family_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo241">h5pget_fapl_multi_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo242">h5pget_fclose_degree_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo243">h5pget_fill_time_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo244">h5pget_filter_by_id_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo245">h5pget_filter_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo246">h5pget_gc_references_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo249">h5pget_istore_k_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo250">h5pget_layout_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo251">H5Pget_link_creation_order_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo252">H5Pget_link_phase_change_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo253">H5Pget_local_heap_size_hint_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo254">h5pget_meta_block_size_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo255">h5pget_nfilters_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo256">h5pget_nlinks_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo257">h5pget_npros_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo258">H5Pget_obj_track_times_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo259">h5pget_preserve_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo262">h5pget_sec2_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo263">h5pget_sieve_buf_size_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo264">h5pget_size_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo265">h5pget_sizes_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo266">h5pget_small_data_block_size_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo267">h5pget_split_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo268">h5pget_stdio_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo269">h5pget_sym_k_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo270">h5pget_userblock_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo271">h5pget_version_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo281">h5pisa_class_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo282">h5pmodify_filter_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo292">h5premove_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo293">h5premove_filter_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo296">h5pset_alignment_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo297">h5pset_alloc_time_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo298">H5Pset_attr_creation_order_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo299">H5Pset_attr_phase_change_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo300">h5pset_btree_ratios_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo301">h5pset_buffer_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo302">h5pset_cache_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo305">H5Pset_char_encoding_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo306">H5Pset_chunk_cache_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo307">h5pset_chunk_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo308">h5pset_copy_object_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo309">H5Pset_create_inter_group_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo310">h5pset_data_transform_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo311">h5pset_deflate_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo315">h5pset_edc_check_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo316">h5pset_est_link_info_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo317">h5pset_external_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo318">h5pset_fapl_core_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo319">h5pset_fapl_direct_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo322">h5pset_fapl_multi_l</a></li>
+<li><a href="./src/H5Pff_f90.html#robo323">h5pset_fapl_multi_s</a></li>
+<li><a href="./src/H5Pff_f90.html#robo324">h5pset_fapl_sec2_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo325">h5pset_fapl_split_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo326">h5pset_fapl_stdio_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo327">h5pset_fclose_degree_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo328">h5pset_fill_time_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo329">h5pset_filter_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo330">h5pset_fletcher32_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo331">h5pset_gc_references_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo332">h5pset_hyper_vector_size_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo335">h5pset_istore_k_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo336">h5pset_layout_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo337">H5Pset_libver_bounds_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo338">H5Pset_link_creation_order_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo339">h5pset_link_phase_change_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo340">H5Pset_local_heap_size_hint_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo341">H5Pset_nbit_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo342">h5pset_nlinks_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo343">H5Pset_obj_track_times_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo344">h5pset_preserve_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo347">h5pset_scaleoffset_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo348">H5Pset_shared_mesg_index_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo349">H5Pset_shared_mesg_nindexes_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo350">h5pset_shuffle_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo351">h5pset_sieve_buf_size_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo352">h5pset_sizes_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo353">h5pset_small_data_block_size_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo354">h5pset_sym_k_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo355">h5pset_szip_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo356">h5pset_userblock_f</a></li>
+<li><a href="./src/H5Pff_f90.html#robo357">h5punregister_f</a></li>
+<li><a href="./src/H5test_kind_f90.html#robo420">H5test_kind</a></li>
+<li><a href="./src/H5test_kind_SIZEOF_f90.html#robo421">H5test_kind_SIZEOF</a></li>
+</ul>
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./ on Sun Aug 14 2011 22:49:38
+</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/fortran/examples/Makefile.am b/fortran/examples/Makefile.am
index 57a8f94..d767490 100644
--- a/fortran/examples/Makefile.am
+++ b/fortran/examples/Makefile.am
@@ -31,17 +31,28 @@ endif
# be run.
# We don't tell automake about these programs so that it doesn't try to
# compile them with the regular fortran compiler.
-TEST_PROG=dsetexample fileexample rwdsetexample attrexample groupexample \
- grpsexample grpdsetexample hyperslab selectele grpit refobjexample \
- refregexample mountexample compound
-TEST_SCRIPT=testh5fc.sh
+
+TEST_PROG=dsetexample fileexample rwdsetexample attrexample groupexample \
+ grpsexample grpdsetexample hyperslab selectele grpit refobjexample \
+ refregexample mountexample compound
# List files to be installed here
-INSTALL_FILES=dsetexample.f90 fileexample.f90 rwdsetexample.f90 \
- attrexample.f90 groupexample.f90 grpsexample.f90 grpdsetexample.f90 \
- hyperslab.f90 selectele.f90 grpit.f90 refobjexample.f90 \
- refregexample.f90 mountexample.f90 compound.f90 ph5example.f90
+INSTALL_FILES=dsetexample.f90 fileexample.f90 rwdsetexample.f90 \
+ attrexample.f90 groupexample.f90 grpsexample.f90 grpdsetexample.f90 \
+ hyperslab.f90 selectele.f90 grpit.f90 refobjexample.f90 \
+ refregexample.f90 mountexample.f90 compound.f90 ph5example.f90
INSTALL_SCRIPT_FILES = run-fortran-ex.sh
+INSTALL_SCRIPT_FILES = run-fortran-ex.sh
+
+
+# Add attention tests for Fortran 2003 features
+if FORTRAN_2003_CONDITIONAL_F
+ TEST_PROG += rwdset_fortran2003 nested_derived_type \
+ compound_fortran2003 compound_complex_fortran2003
+ INSTALL_FILES += rwdset_fortran2003.f90 nested_derived_type.f90 \
+ compound_fortran2003.f90 compound_complex_fortran2003.f90
+endif
+TEST_SCRIPT=testh5fc.sh
# Mark this directory as part of the Fortran API
FORTRAN_API=yes
@@ -89,6 +100,12 @@ refregexample: refregexample.f90
mountexample: mountexample.f90
compound: compound.f90
ph5example: ph5example.f90
+if FORTRAN_2003_CONDITIONAL_F
+rwdset_fortran2003: rwdset_fortran2003.f90
+nested_derived_type: nested_derived_type.f90
+compound_fortran2003: compound_fortran2003.f90
+compound_complex_fortran2003: compound_complex_fortran2003.f90
+endif
include $(top_srcdir)/config/examples.am
include $(top_srcdir)/config/conclude.am
diff --git a/fortran/examples/Makefile.in b/fortran/examples/Makefile.in
index c0f89c3..12460f3 100644
--- a/fortran/examples/Makefile.in
+++ b/fortran/examples/Makefile.in
@@ -59,6 +59,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(top_srcdir)/config/commence.am \
$(top_srcdir)/config/conclude.am \
$(top_srcdir)/config/examples.am
+
+# Add attention tests for Fortran 2003 features
+@FORTRAN_2003_CONDITIONAL_F_TRUE@am__append_1 = rwdset_fortran2003 nested_derived_type \
+@FORTRAN_2003_CONDITIONAL_F_TRUE@ compound_fortran2003 compound_complex_fortran2003
+
+@FORTRAN_2003_CONDITIONAL_F_TRUE@am__append_2 = rwdset_fortran2003.f90 nested_derived_type.f90 \
+@FORTRAN_2003_CONDITIONAL_F_TRUE@ compound_fortran2003.f90 compound_complex_fortran2003.f90
+
TESTS =
subdir = fortran/examples
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -145,6 +153,7 @@ F9XMODEXT = @F9XMODEXT@
F9XMODFLAG = @F9XMODFLAG@
F9XSUFFIXFLAG = @F9XSUFFIXFLAG@
FC = @FC@
+FC2003 = @FC2003@
FCFLAGS = @FCFLAGS@
FCFLAGS_f90 = @FCFLAGS_f90@
FCLIBS = @FCLIBS@
@@ -165,10 +174,12 @@ H5_LONE_COLON = @H5_LONE_COLON@
H5_VERSION = @H5_VERSION@
HADDR_T = @HADDR_T@
HAVE_DMALLOC = @HAVE_DMALLOC@
+HAVE_FORTRAN_2003 = @HAVE_FORTRAN_2003@
HDF5_HL = @HDF5_HL@
HDF5_INTERFACES = @HDF5_INTERFACES@
HDF_CXX = @HDF_CXX@
HDF_FORTRAN = @HDF_FORTRAN@
+HDF_FORTRAN2003 = @HDF_FORTRAN2003@
HID_T = @HID_T@
HL = @HL@
HL_FOR = @HL_FOR@
@@ -367,19 +378,19 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5
# be run.
# We don't tell automake about these programs so that it doesn't try to
# compile them with the regular fortran compiler.
-TEST_PROG = dsetexample fileexample rwdsetexample attrexample groupexample \
- grpsexample grpdsetexample hyperslab selectele grpit refobjexample \
- refregexample mountexample compound
-
-TEST_SCRIPT = testh5fc.sh
+TEST_PROG = dsetexample fileexample rwdsetexample attrexample \
+ groupexample grpsexample grpdsetexample hyperslab selectele \
+ grpit refobjexample refregexample mountexample compound \
+ $(am__append_1)
# List files to be installed here
-INSTALL_FILES = dsetexample.f90 fileexample.f90 rwdsetexample.f90 \
- attrexample.f90 groupexample.f90 grpsexample.f90 grpdsetexample.f90 \
- hyperslab.f90 selectele.f90 grpit.f90 refobjexample.f90 \
- refregexample.f90 mountexample.f90 compound.f90 ph5example.f90
-
+INSTALL_FILES = dsetexample.f90 fileexample.f90 rwdsetexample.f90 \
+ attrexample.f90 groupexample.f90 grpsexample.f90 \
+ grpdsetexample.f90 hyperslab.f90 selectele.f90 grpit.f90 \
+ refobjexample.f90 refregexample.f90 mountexample.f90 \
+ compound.f90 ph5example.f90 $(am__append_2)
INSTALL_SCRIPT_FILES = run-fortran-ex.sh
+TEST_SCRIPT = testh5fc.sh
# Mark this directory as part of the Fortran API
FORTRAN_API = yes
@@ -654,6 +665,10 @@ refregexample: refregexample.f90
mountexample: mountexample.f90
compound: compound.f90
ph5example: ph5example.f90
+@FORTRAN_2003_CONDITIONAL_F_TRUE@rwdset_fortran2003: rwdset_fortran2003.f90
+@FORTRAN_2003_CONDITIONAL_F_TRUE@nested_derived_type: nested_derived_type.f90
+@FORTRAN_2003_CONDITIONAL_F_TRUE@compound_fortran2003: compound_fortran2003.f90
+@FORTRAN_2003_CONDITIONAL_F_TRUE@compound_complex_fortran2003: compound_complex_fortran2003.f90
# How to create EXAMPLEDIR if it doesn't already exist
$(EXAMPLEDIR):
diff --git a/fortran/examples/compound_complex_fortran2003.f90 b/fortran/examples/compound_complex_fortran2003.f90
new file mode 100644
index 0000000..19671f7
--- /dev/null
+++ b/fortran/examples/compound_complex_fortran2003.f90
@@ -0,0 +1,117 @@
+! This is the F2003 version of the h5_compound.c example source code.
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! This example shows how to create an array of a compound datatype which
+! contains an array of type complex and how to write it to hdf5
+! and how to read it back into a compound datatype for hdf5.
+!
+
+PROGRAM compound_complex_fortran2003
+
+ USE hdf5
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+
+ INTEGER, PARAMETER :: r_k8 = KIND(0.0d0)
+ INTEGER, PARAMETER :: NMAX = 3
+
+ TYPE sample
+ COMPLEX(KIND=r_k8), DIMENSION(1:NMAX) :: nlev
+ REAL(KIND=r_k8) :: N
+ END TYPE sample
+
+ INTEGER(HID_T) :: sample_type_id, dset_id, dspace_id, file_id
+ INTEGER(HSIZE_T) :: dims(1) = (/NMAX/)
+ INTEGER :: error
+
+ TYPE(sample), DIMENSION(1:NMAX), TARGET :: samples, read_samples
+ INTEGER :: i
+
+ TYPE(C_PTR) :: f_ptr
+ INTEGER(HSIZE_T), DIMENSION(1) :: array_dims=(/2*NMAX/) ! complex is really (real,real) so double size of array
+ INTEGER(hid_t) :: array_type_id ! Nested Array Datatype ID
+
+ ! Initialize data
+ DO i=1,NMAX
+ samples(i)%nlev(1:NMAX) = (3.14159_r_k8, 2.71828_r_k8)
+ samples(i)%N = i
+ END DO
+
+ ! Initialize FORTRAN interface.
+ CALL h5open_f(error)
+
+ ! Create a new file using default properties.
+ CALL h5fcreate_f("test.h5", H5F_ACC_TRUNC_F, file_id, error)
+ !
+ ! Create the memory data type.
+ !
+ CALL H5Tcreate_f(H5T_COMPOUND_F, H5OFFSETOF(C_LOC(samples(1)), C_LOC(samples(2))), sample_type_id, error)
+
+ ! Create the array type
+ CALL h5Tarray_create_f(H5T_NATIVE_DOUBLE, 1, array_dims, array_type_id, error)
+ ! Then use that array type to insert values into
+ CALL H5Tinsert_f( sample_type_id, "nlev", &
+ H5OFFSETOF(C_LOC(samples(1)),C_LOC(samples(1)%nlev(1))), array_type_id, error)
+ CALL H5Tinsert_f( sample_type_id, "N", &
+ H5OFFSETOF(C_LOC(samples(1)),C_LOC(samples(1)%N)), h5kind_to_type(r_k8,H5_REAL_KIND), error)
+ !
+ ! Create dataspace
+ !
+ CALL h5screate_simple_f(1, dims, dspace_id, error)
+ !
+ ! Create the dataset.
+ !
+ CALL H5Dcreate_f(file_id, "samples", sample_type_id, dspace_id, dset_id, error)
+ !
+ ! Write data to the dataset
+ !
+ f_ptr = C_LOC(samples(1))
+ CALL H5Dwrite_f(dset_id, sample_type_id, f_ptr, error)
+ ! Close up
+ CALL h5dclose_f(dset_id, error)
+ CALL h5sclose_f(dspace_id, error)
+ CALL h5fclose_f(file_id, error)
+ !
+ ! Open the file and the dataset.
+ !
+ CALL H5Fopen_f("test.h5", H5F_ACC_RDONLY_F, file_id, error)
+
+ CALL H5Dopen_f(file_id, "samples", dset_id, error)
+ !
+ ! Create the memory data type.
+ !
+ CALL H5Tcreate_f(H5T_COMPOUND_F,H5OFFSETOF(C_LOC(samples(1)), C_LOC(samples(2))), sample_type_id,error)
+
+ CALL H5Tinsert_f( sample_type_id, "nlev", &
+ H5OFFSETOF(C_LOC(samples(1)),C_LOC(samples(1)%nlev(1))), array_type_id, error)
+ CALL H5Tinsert_f( sample_type_id, "N", &
+ H5OFFSETOF(C_LOC(samples(1)),C_LOC(samples(1)%N)), h5kind_to_type(r_k8,H5_REAL_KIND), error)
+
+ f_ptr = C_LOC(read_samples(1))
+ CALL H5Dread_f(dset_id, sample_type_id, f_ptr, error)
+
+ !
+ ! Display the fields
+ !
+ DO i=1,NMAX
+ WRITE(*,'(A,3(" (",F8.5,",",F8.5,")"))') "SAMPLES =",read_samples(i)%nlev(1:NMAX)
+ WRITE(*,'(A,F8.5)') "N =", read_samples(i)%N
+ END DO
+
+ CALL H5Tclose_f(sample_type_id, error)
+ CALL H5Dclose_f(dset_id, error)
+ CALL H5Fclose_f(file_id, error)
+
+END PROGRAM compound_complex_fortran2003
diff --git a/fortran/examples/compound_fortran2003.f90 b/fortran/examples/compound_fortran2003.f90
new file mode 100644
index 0000000..579be61
--- /dev/null
+++ b/fortran/examples/compound_fortran2003.f90
@@ -0,0 +1,208 @@
+! This is the F2003 version of the h5_compound.c example source code.
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! This example shows how to create a compound data type,
+! write an array which has the compound data type to the file,
+! and read back fields' subsets.
+!
+
+PROGRAM main
+ USE hdf5
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+
+! KIND parameters
+
+ INTEGER, PARAMETER :: int_k1 = SELECTED_INT_KIND(1) ! This should map to INTEGER*1 on most modern processors
+ INTEGER, PARAMETER :: int_k2 = SELECTED_INT_KIND(4) ! This should map to INTEGER*2 on most modern processors
+ INTEGER, PARAMETER :: int_k4 = SELECTED_INT_KIND(8) ! This should map to INTEGER*4 on most modern processors
+ INTEGER, PARAMETER :: int_k8 = SELECTED_INT_KIND(16) ! This should map to INTEGER*8 on most modern processors
+
+ INTEGER, PARAMETER :: r_k4 = SELECTED_REAL_KIND(5) ! This should map to REAL*4 on most modern processors
+ INTEGER, PARAMETER :: r_k8 = SELECTED_REAL_KIND(10) ! This should map to REAL*8 on most modern processors
+
+! FILES
+
+ CHARACTER(LEN=*), PARAMETER :: H5FILE_NAME = "SDScompound.h5"
+ CHARACTER(LEN=*), PARAMETER :: DATASETNAME = "ArrayOfStructures"
+
+ INTEGER, PARAMETER :: LENGTH = 10
+ INTEGER, PARAMETER :: RANK = 1
+
+!----------------------------------------------------------------
+! First derived-type and dataset
+ TYPE s1_t
+ CHARACTER(LEN=1), DIMENSION(1:13) :: chr
+ INTEGER(KIND=int_k1) :: a
+ REAL(KIND=r_k4) :: b
+ REAL(KIND=r_k8) :: c
+ END TYPE s1_t
+
+ TYPE(s1_t), TARGET :: s1(LENGTH)
+ INTEGER(hid_t) :: s1_tid ! File datatype identifier
+
+!----------------------------------------------------------------
+! Second derived-type (subset of s1_t) and dataset
+ TYPE s2_t
+ CHARACTER(LEN=1), DIMENSION(1:13) :: chr
+ REAL(KIND=r_k8) :: c
+ INTEGER(KIND=int_k1) :: a
+ END TYPE s2_t
+
+ type(s2_t), target :: s2(LENGTH)
+ integer(hid_t) :: s2_tid ! Memory datatype handle
+
+!----------------------------------------------------------------
+! Third "derived-type" (will be used to read float field of s1)
+ INTEGER(hid_t) :: s3_tid ! Memory datatype handle
+ REAL(KIND=r_k4), TARGET :: s3(LENGTH)
+
+ INTEGER :: i
+ INTEGER(hid_t) :: file, dataset, space
+ !type(H5F_fileid_type) :: file
+ !type(H5D_dsetid_type) :: dataset
+ !type(H5S_spaceid_type) :: space
+ INTEGER(hsize_t) :: DIM(1) = (/LENGTH/) ! Dataspace dimensions
+ INTEGER(SIZE_T) :: type_size ! Size of the datatype
+ INTEGER(SIZE_T) :: offset, sizeof_compound
+ INTEGER :: hdferr
+ TYPE(C_PTR) :: f_ptr
+
+ INTEGER(SIZE_T) :: type_sizei ! Size of the integer datatype
+ INTEGER(SIZE_T) :: type_sizer ! Size of the real datatype
+ INTEGER(SIZE_T) :: type_sized ! Size of the double datatype
+ INTEGER(hid_t) :: tid3 ! /* Nested Array Datatype ID */
+ INTEGER(HSIZE_T), DIMENSION(1) :: tdims1=(/13/)
+ !
+ ! Initialize FORTRAN interface.
+ !
+
+ CALL h5open_f(hdferr)
+
+ !
+ ! Initialize the data
+ !
+ DO i = 0, LENGTH-1
+ s1(i+1)%chr(1)(1:1) = 'a'
+ s1(i+1)%chr(2)(1:1) = 'b'
+ s1(i+1)%chr(3)(1:1) = 'c'
+ s1(i+1)%chr(4:12)(1:1) = ' '
+ s1(i+1)%chr(13)(1:1) = 'd'
+ s1(i+1)%a = i
+ s1(i+1)%b = i*i
+ s1(i+1)%c = 1./REAL(i+1)
+ END DO
+ !
+ ! Create the data space.
+ !
+ !
+ CALL H5Screate_simple_f(RANK, dim, space, hdferr)
+
+ !
+ ! Create the file.
+ !
+ CALL H5Fcreate_f(H5FILE_NAME, H5F_ACC_TRUNC_F, file, hdferr)
+
+ !
+ ! Create the memory data type.
+ !
+ CALL H5Tcreate_f(H5T_COMPOUND_F, H5OFFSETOF(C_LOC(s1(1)), C_LOC(s1(2))), s1_tid, hdferr)
+
+ CALL h5tarray_create_f(H5T_NATIVE_CHARACTER, 1, tdims1, tid3, hdferr)
+
+ CALL H5Tinsert_f(s1_tid, "chr_name", H5OFFSETOF(C_LOC(s1(1)),C_LOC(s1(1)%chr)),tid3, hdferr)
+ CALL H5Tinsert_f(s1_tid, "a_name", H5OFFSETOF(C_LOC(s1(1)),C_LOC(s1(1)%a)), h5kind_to_type(int_k1,H5_INTEGER_KIND), hdferr)
+ CALL H5Tinsert_f(s1_tid, "c_name", H5OFFSETOF(C_LOC(s1(1)),C_LOC(s1(1)%c)), h5kind_to_type(r_k8,H5_REAL_KIND), hdferr)
+ CALL H5Tinsert_f(s1_tid, "b_name", H5OFFSETOF(C_LOC(s1(1)),C_LOC(s1(1)%b)), h5kind_to_type(r_k4,H5_REAL_KIND), hdferr)
+
+ !
+ ! Create the dataset.
+ !
+ CALL H5Dcreate_f(file, DATASETNAME, s1_tid, space, dataset, hdferr)
+
+ !
+ ! Write data to the dataset
+ !
+
+ f_ptr = C_LOC(s1(1))
+ CALL H5Dwrite_f(dataset, s1_tid, f_ptr, hdferr)
+
+ !
+ ! Release resources
+ !
+ CALL H5Tclose_f(s1_tid, hdferr)
+ CALL H5Sclose_f(space, hdferr)
+ CALL H5Dclose_f(dataset, hdferr)
+ CALL H5Fclose_f(file, hdferr)
+
+ !
+ ! Open the file and the dataset.
+ !
+
+ CALL H5Fopen_f(H5FILE_NAME, H5F_ACC_RDONLY_F, file, hdferr)
+
+ CALL H5Dopen_f(file, DATASETNAME, dataset,hdferr)
+
+ !
+ ! Create a data type for s2
+ !
+ CALL H5Tcreate_f(H5T_COMPOUND_F, H5OFFSETOF(C_LOC(s2(1)), C_LOC(s2(2))), s2_tid, hdferr)
+
+ CALL H5Tinsert_f(s2_tid, "chr_name", H5OFFSETOF(C_LOC(s2(1)),C_LOC(s2(1)%chr)), tid3, hdferr)
+ CALL H5Tinsert_f(s2_tid, "c_name", H5OFFSETOF(C_LOC(s2(1)),C_LOC(s2(1)%c)), h5kind_to_type(r_k8,H5_REAL_KIND), hdferr)
+ CALL H5Tinsert_f(s2_tid, "a_name", H5OFFSETOF(C_LOC(s2(1)),C_LOC(s2(1)%a)), h5kind_to_type(int_k1,H5_INTEGER_KIND), hdferr)
+
+ !
+ ! Read two fields c and a from s1 dataset. Fields in the file
+ ! are found by their names "c_name" and "a_name".
+ s2(:)%c=-1; s2(:)%a=-1;
+
+
+ f_ptr = C_LOC(s2(1))
+ CALL H5Dread_f(dataset, s2_tid, f_ptr, hdferr)
+
+ !
+ ! Display the fields
+ !
+ DO i = 1, length
+ WRITE(*,'(/,A,/,999(A,1X))') "Field chr :", s2(i)%chr(1:13)(1:1)
+ ENDDO
+ WRITE(*,'(/,A,/,999(F8.4,1X))') "Field c :", s2(:)%c
+ WRITE(*,'(/,A,/,999(I0,1X))') "Field a :", s2(:)%a
+ !
+ ! Create a data type for s3.
+ !
+ CALL H5Tcreate_f(H5T_COMPOUND_F, H5OFFSETOF(C_LOC(s3(1)),C_LOC(s3(2))),s3_tid, hdferr)
+
+ CALL H5Tinsert_f(s3_tid, "b_name", 0, h5kind_to_type(r_k4,H5_REAL_KIND), hdferr)
+ !
+ ! Read field b from s1 dataset. Field in the file is found by its name.
+ !
+ s3(:)=-1
+ f_ptr = C_LOC(s3(1))
+ CALL H5Dread_f(dataset, s3_tid, f_ptr, hdferr)
+ !
+ ! Display the field
+ !
+ WRITE(*,'(/,A,/,999(F8.4,1X))') "Field b :",s3(:)
+ !
+ ! Release resources
+ !
+ CALL H5Tclose_f(s2_tid, hdferr)
+ CALL H5Tclose_f(s3_tid, hdferr)
+ CALL H5Dclose_f(dataset, hdferr)
+ CALL H5Fclose_f(file, hdferr)
+
+END PROGRAM main
diff --git a/fortran/examples/nested_derived_type.f90 b/fortran/examples/nested_derived_type.f90
new file mode 100644
index 0000000..b79c208
--- /dev/null
+++ b/fortran/examples/nested_derived_type.f90
@@ -0,0 +1,212 @@
+!
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! This example shows how to create a nested compound data type,
+! write an array which has the compound data type to the file,
+! and read back fields' subsets.
+
+PROGRAM main
+ USE HDF5
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+
+! KIND parameters
+ INTEGER, PARAMETER :: int_k1 = SELECTED_INT_KIND(Fortran_INTEGER_1) ! This should map to INTEGER*1 on most modern processors
+ INTEGER, PARAMETER :: int_k4 = SELECTED_INT_KIND(Fortran_INTEGER_2) ! This should map to INTEGER*2 on most modern processors
+ INTEGER, PARAMETER :: int_k8 = SELECTED_INT_KIND(Fortran_INTEGER_4) ! This should map to INTEGER*4 on most modern processors
+ INTEGER, PARAMETER :: int_k16 = SELECTED_INT_KIND(Fortran_INTEGER_8) ! This should map to INTEGER*8 on most modern processors
+
+ INTEGER, PARAMETER :: r_k4 = SELECTED_REAL_KIND(Fortran_REAL_4) ! This should map to REAL*4 on most modern processors
+ INTEGER, PARAMETER :: r_k8 = SELECTED_REAL_KIND(Fortran_REAL_8) ! This should map to REAL*8 on most modern processors
+
+! FILES
+
+ CHARACTER(LEN=*), PARAMETER :: H5FILE_NAME = "SDScompound.h5"
+ CHARACTER(LEN=*), PARAMETER :: DATASETNAME = "ArrayOfStructures"
+
+ INTEGER, PARAMETER :: LENGTH = 10
+ INTEGER, PARAMETER :: RANK = 1
+
+!----------------------------------------------------------------
+! Nested derived-type and dataset
+
+ TYPE s4_t
+ INTEGER(int_k8), DIMENSION(1:4) :: x
+ ENDTYPE s4_t
+
+ TYPE s1_t
+ CHARACTER(LEN=1), DIMENSION(1:7) :: chr
+ INTEGER(KIND=int_k1) :: a
+ REAL(KIND=r_k4) :: b
+ TYPE(s4_t) :: d
+ REAL(KIND=r_k8) :: c
+ END TYPE s1_t
+
+ TYPE(s1_t), TARGET, DIMENSION(1:length) :: s1
+ INTEGER(hid_t) :: s1_tid ! File datatype identifier
+
+!----------------------------------------------------------------
+! Second derived-type (subset of s1_t) and dataset
+ TYPE s2_t
+ CHARACTER(LEN=1), DIMENSION(1:7) :: chr
+ REAL(KIND=r_k8) :: c
+ INTEGER(KIND=int_k1) :: a
+ TYPE(s4_t) :: d
+ END TYPE s2_t
+
+ TYPE(s2_t), TARGET :: s2(LENGTH)
+ integer(hid_t) :: s2_tid ! Memory datatype handle
+ INTEGER(hid_t) :: tid3a
+!----------------------------------------------------------------
+! Third "derived-type" (will be used to read float field of s1)
+ INTEGER(hid_t) :: s3_tid ! Memory datatype handle
+ REAL(KIND=r_k4), TARGET :: s3(LENGTH)
+
+ INTEGER :: i
+ INTEGER(hid_t) :: file, dataset, space
+ !type(H5F_fileid_type) :: file
+ !type(H5D_dsetid_type) :: dataset
+ !type(H5S_spaceid_type) :: space
+ INTEGER(hsize_t) :: DIM(1) = (/LENGTH/) ! Dataspace dimensions
+ INTEGER(SIZE_T) :: type_size ! Size of the datatype
+ INTEGER(SIZE_T) :: offset, sizeof_compound
+ INTEGER :: hdferr
+ TYPE(C_PTR) :: f_ptr
+
+ INTEGER(SIZE_T) :: type_sizei ! Size of the integer datatype
+ INTEGER(SIZE_T) :: type_sizer ! Size of the real datatype
+ INTEGER(SIZE_T) :: type_sized ! Size of the double datatype
+ INTEGER(hid_t) :: tid3 ! /* Nested Array Datatype ID */
+ INTEGER(HSIZE_T), DIMENSION(1) :: tdims1=(/7/)
+ INTEGER(HSIZE_T), DIMENSION(1) :: tdims1a=(/4/)
+ !
+ ! Initialize FORTRAN interface.
+ !
+ CALL h5open_f(hdferr)
+ !
+ ! Initialize the data
+ !
+ DO i = 0, LENGTH-1
+ s1(i+1)%chr(1:7)(1:1) = (/'a','b','c',' ',' ',' ','d'/)
+ s1(i+1)%a = i
+ s1(i+1)%b = i*i
+ s1(i+1)%c = 1./REAL(i+1)
+ s1(i+1)%d%x(1:4) = (/i,i*10,i*100,i*1000/)
+ END DO
+ !
+ ! Create the data space.
+ !
+ !
+ CALL H5Screate_simple_f(RANK, dim, space, hdferr)
+ !
+ ! Create the file.
+ !
+ CALL H5Fcreate_f(H5FILE_NAME, H5F_ACC_TRUNC_F, file, hdferr)
+ !
+ ! Create the memory data type.
+ !
+ CALL H5Tcreate_f(H5T_COMPOUND_F, H5OFFSETOF(C_LOC(s1(1)), C_LOC(s1(2))), s1_tid, hdferr)
+
+ CALL h5tarray_create_f(H5T_NATIVE_CHARACTER, 1, tdims1, tid3, hdferr)
+
+ CALL H5Tinsert_f(s1_tid, "chr_name", H5OFFSETOF(C_LOC(s1(1)),C_LOC(s1(1)%chr)),tid3, hdferr)
+ CALL H5Tinsert_f(s1_tid, "a_name", H5OFFSETOF(C_LOC(s1(1)),C_LOC(s1(1)%a)), h5kind_to_type(int_k1,H5_INTEGER_KIND), hdferr)
+ CALL H5Tinsert_f(s1_tid, "c_name", H5OFFSETOF(C_LOC(s1(1)),C_LOC(s1(1)%c)), h5kind_to_type(r_k8,H5_REAL_KIND), hdferr)
+ CALL H5Tinsert_f(s1_tid, "b_name", H5OFFSETOF(C_LOC(s1(1)),C_LOC(s1(1)%b)), h5kind_to_type(r_k4,H5_REAL_KIND), hdferr)
+
+ ! Create an array of integer datatype
+ CALL h5tarray_create_f(h5kind_to_type(int_k8,H5_INTEGER_KIND), 1, tdims1a, tid3a, hdferr)
+ CALL H5Tinsert_f(s1_tid, "d_name", H5OFFSETOF(C_LOC(s1(1)),C_LOC(s1(1)%d%x)), tid3a, hdferr)
+
+ !
+ ! Create the dataset.
+ !
+ CALL H5Dcreate_f(file, DATASETNAME, s1_tid, space, dataset, hdferr)
+
+ !
+ ! Write data to the dataset
+ !
+
+ f_ptr = C_LOC(s1(1))
+ CALL H5Dwrite_f(dataset, s1_tid, f_ptr, hdferr)
+
+ !
+ ! Release resources
+ !
+ CALL H5Tclose_f(s1_tid, hdferr)
+ CALL H5Sclose_f(space, hdferr)
+ CALL H5Dclose_f(dataset, hdferr)
+ CALL H5Fclose_f(file, hdferr)
+
+ !
+ ! Open the file and the dataset.
+ !
+
+ CALL H5Fopen_f(H5FILE_NAME, H5F_ACC_RDONLY_F, file, hdferr)
+
+ CALL H5Dopen_f(file, DATASETNAME, dataset,hdferr)
+ !
+ ! Create a data type for s2
+ !
+ CALL H5Tcreate_f(H5T_COMPOUND_F, H5OFFSETOF(C_LOC(s2(1)), C_LOC(s2(2))), s2_tid, hdferr)
+
+ CALL H5Tinsert_f(s2_tid, "chr_name", H5OFFSETOF(C_LOC(s2(1)),C_LOC(s2(1)%chr)), tid3, hdferr)
+ CALL H5Tinsert_f(s2_tid, "c_name", H5OFFSETOF(C_LOC(s2(1)),C_LOC(s2(1)%c)), h5kind_to_type(r_k8,H5_REAL_KIND), hdferr)
+ CALL H5Tinsert_f(s2_tid, "a_name", H5OFFSETOF(C_LOC(s2(1)),C_LOC(s2(1)%a)), h5kind_to_type(int_k1,H5_INTEGER_KIND), hdferr)
+ CALL H5Tinsert_f(s2_tid, "d_name", H5OFFSETOF(C_LOC(s2(1)),C_LOC(s2(1)%d%x)), tid3a, hdferr)
+
+ !
+ ! Read two fields c and a from s1 dataset. Fields in the file
+ ! are found by their names "c_name" and "a_name".
+
+ f_ptr = C_LOC(s2(1))
+ CALL H5Dread_f(dataset, s2_tid, f_ptr, hdferr)
+
+ !
+ ! Display the fields
+ !
+ DO i = 1, length
+ WRITE(*,'(/,A,/,999(A,1X))') "Field chr :", s2(i)%chr(1:7)(1:1)
+ ENDDO
+ WRITE(*,'(/,A,/,999(F8.4,1X))') "Field c :", s2(:)%c
+ WRITE(*,'(/,A,/,999(I0,1X))') "Field a :", s2(:)%a
+ DO i = 1, length
+ WRITE(*,'(/,A,/,999(I0,1X))') "Field d%x :", s2(i)%d%x(:)
+ ENDDO
+ !
+ ! Create a data type for s3.
+ !
+ CALL H5Tcreate_f(H5T_COMPOUND_F, H5OFFSETOF(C_LOC(s3(1)),C_LOC(s3(2))),s3_tid, hdferr)
+
+ CALL H5Tinsert_f(s3_tid, "b_name", 0, h5kind_to_type(r_k4,H5_REAL_KIND), hdferr)
+ !
+ ! Read field b from s1 dataset. Field in the file is found by its name.
+ !
+ s3(:)=-1
+ f_ptr = C_LOC(s3(1))
+ CALL H5Dread_f(dataset, s3_tid, f_ptr, hdferr)
+ !
+ ! Display the field
+ !
+ WRITE(*,'(/,A,/,999(F8.4,1X))') "Field b :",s3(:)
+ !
+ ! Release resources
+ !
+ CALL H5Tclose_f(s2_tid, hdferr)
+ CALL H5Tclose_f(s3_tid, hdferr)
+ CALL H5Dclose_f(dataset, hdferr)
+ CALL H5Fclose_f(file, hdferr)
+
+END PROGRAM main
diff --git a/fortran/examples/rwdset_fortran2003.f90 b/fortran/examples/rwdset_fortran2003.f90
new file mode 100644
index 0000000..74bda85
--- /dev/null
+++ b/fortran/examples/rwdset_fortran2003.f90
@@ -0,0 +1,181 @@
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+!
+! The following example shows how to write and read to/from an existing dataset.
+! It opens the file created in the previous example, obtains the dataset
+! identifier, writes the data to the dataset in the file,
+! then reads the dataset to memory. Uses updated Fortran 2003 interface
+! with different KINDs of integers and reals.
+!
+PROGRAM RWDSET_FORTRAN2003
+
+ USE ISO_C_BINDING
+
+ USE HDF5 ! This module contains all necessary modules
+
+ IMPLICIT NONE
+
+ INTEGER, PARAMETER :: int_kind_1 = SELECTED_INT_KIND(Fortran_INTEGER_1) !should map to INTEGER*1 on most modern processors
+ INTEGER, PARAMETER :: int_kind_4 = SELECTED_INT_KIND(Fortran_INTEGER_2) !should map to INTEGER*2 on most modern processors
+ INTEGER, PARAMETER :: int_kind_8 = SELECTED_INT_KIND(Fortran_INTEGER_4) !should map to INTEGER*4 on most modern processors
+ INTEGER, PARAMETER :: int_kind_16 = SELECTED_INT_KIND(Fortran_INTEGER_8) !should map to INTEGER*8 on most modern processors
+
+ INTEGER, PARAMETER :: real_kind_7 = SELECTED_REAL_KIND(Fortran_REAL_4) !should map to REAL*4 on most modern processors
+ INTEGER, PARAMETER :: real_kind_15 = SELECTED_REAL_KIND(Fortran_REAL_8) !should map to REAL*8 on most modern processors
+
+ CHARACTER(LEN=8), PARAMETER :: filename = "dsetf.h5" ! File name
+ CHARACTER(LEN=5), PARAMETER :: dsetname1 = "dset1" ! Dataset name
+ CHARACTER(LEN=5), PARAMETER :: dsetname2 = "dset2" ! Dataset name
+ CHARACTER(LEN=5), PARAMETER :: dsetname4 = "dset4" ! Dataset name
+ CHARACTER(LEN=5), PARAMETER :: dsetname8 = "dset8" ! Dataset name
+ CHARACTER(LEN=6), PARAMETER :: dsetnamer4 = "dsetr4" ! Dataset name
+ CHARACTER(LEN=6), PARAMETER :: dsetnamer8 = "dsetr8" ! Dataset name
+
+ INTEGER(HID_T) :: file_id ! File identifier
+ INTEGER(HID_T) :: dset_id1 ! Dataset identifier
+ INTEGER(HID_T) :: dset_id4 ! Dataset identifier
+ INTEGER(HID_T) :: dset_id8 ! Dataset identifier
+ INTEGER(HID_T) :: dset_id16 ! Dataset identifier
+ INTEGER(HID_T) :: dset_idr4 ! Dataset identifier
+ INTEGER(HID_T) :: dset_idr8 ! Dataset identifier
+
+ INTEGER :: error ! Error flag
+ INTEGER :: i, j
+
+! Data buffers:
+
+ INTEGER, DIMENSION(1:4) :: dset_data
+
+ INTEGER(int_kind_1), DIMENSION(1:4), TARGET :: dset_data_i1, data_out_i1
+ INTEGER(int_kind_4), DIMENSION(1:4), TARGET :: dset_data_i4, data_out_i4
+ INTEGER(int_kind_8), DIMENSION(1:4), TARGET :: dset_data_i8, data_out_i8
+ INTEGER(int_kind_16), DIMENSION(1:4), TARGET :: dset_data_i16, data_out_i16
+
+ INTEGER(int_kind_8), DIMENSION(1:4), TARGET :: data_out_i8a
+
+ REAL(real_kind_7), DIMENSION(1:4), TARGET :: dset_data_r7, data_out_r7
+ REAL(real_kind_15), DIMENSION(1:4), TARGET :: dset_data_r15, data_out_r15
+
+ INTEGER(HSIZE_T), DIMENSION(1:1) :: data_dims = (/4/)
+ INTEGER(HID_T) :: dspace_id ! Dataspace identifier
+
+ TYPE(C_PTR) :: f_ptr
+ INTEGER(hid_t) :: datatype !/* Common datatype ID */
+
+ !
+ ! Initialize FORTRAN interface.
+ !
+ CALL h5open_f(error)
+ !
+ ! Initialize the dset_data array.
+ !
+ DO i = 1, 4
+ dset_data_i1(i) = i
+ dset_data_i4(i) = i
+ dset_data_i8(i) = i
+ dset_data_i16(i) = i
+
+ dset_data_r7(i) = (i)*100.
+ dset_data_r15(i) = (i)*1000.
+
+ END DO
+
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, error)
+ !
+ ! Create dataspaces for datasets
+ !
+ CALL h5screate_simple_f(1, data_dims , dspace_id, error)
+ !
+ ! Create the dataset.
+ !
+ CALL H5Dcreate_f(file_id, dsetname1, h5kind_to_type(int_kind_1,H5_INTEGER_KIND), dspace_id, dset_id1, error)
+ CALL H5Dcreate_f(file_id, dsetname2, h5kind_to_type(int_kind_4,H5_INTEGER_KIND), dspace_id, dset_id4, error)
+ CALL H5Dcreate_f(file_id, dsetname4, h5kind_to_type(int_kind_8,H5_INTEGER_KIND), dspace_id, dset_id8, error)
+ CALL H5Dcreate_f(file_id, dsetname8, h5kind_to_type(int_kind_16,H5_INTEGER_KIND), dspace_id, dset_id16, error)
+
+ CALL H5Dcreate_f(file_id, dsetnamer4, h5kind_to_type(real_kind_7,H5_REAL_KIND), dspace_id, dset_idr4, error)
+ CALL H5Dcreate_f(file_id, dsetnamer8, h5kind_to_type(real_kind_15,H5_REAL_KIND), dspace_id, dset_idr8, error)
+
+ !
+ ! Write the dataset.
+ !
+ f_ptr = C_LOC(dset_data_i1(1))
+ CALL h5dwrite_f(dset_id1, h5kind_to_type(int_kind_1,H5_INTEGER_KIND), f_ptr, error)
+ f_ptr = C_LOC(dset_data_i4(1))
+ CALL h5dwrite_f(dset_id4, h5kind_to_type(int_kind_4,H5_INTEGER_KIND), f_ptr, error)
+ f_ptr = C_LOC(dset_data_i8(1))
+ CALL h5dwrite_f(dset_id8, h5kind_to_type(int_kind_8,H5_INTEGER_KIND), f_ptr, error)
+ f_ptr = C_LOC(dset_data_i16(1))
+ CALL h5dwrite_f(dset_id16, h5kind_to_type(int_kind_16,H5_INTEGER_KIND), f_ptr, error)
+ f_ptr = C_LOC(dset_data_r7(1))
+ CALL h5dwrite_f(dset_idr4, h5kind_to_type(real_kind_7,H5_REAL_KIND), f_ptr, error)
+ f_ptr = C_LOC(dset_data_r15(1))
+ CALL h5dwrite_f(dset_idr8, h5kind_to_type(real_kind_15,H5_REAL_KIND), f_ptr, error)
+ !
+ ! Close the file
+ !
+ CALL h5fclose_f(file_id, error)
+
+ ! Open the file
+
+ CALL h5fopen_f(filename, H5F_ACC_RDWR_F, file_id, error)
+ !
+ ! Read the dataset.
+ !
+ ! Read data back into an integer size that is larger then the original size used for
+ ! writing the data
+ f_ptr = C_LOC(data_out_i8a(1))
+ CALL h5dread_f(dset_id1, h5kind_to_type(int_kind_8,H5_INTEGER_KIND), f_ptr, error)
+ f_ptr = C_LOC(data_out_i4(1))
+ CALL h5dread_f(dset_id4, h5kind_to_type(int_kind_4,H5_INTEGER_KIND), f_ptr, error)
+ f_ptr = C_LOC(data_out_i8(1))
+ CALL h5dread_f(dset_id8, h5kind_to_type(int_kind_8,H5_INTEGER_KIND), f_ptr, error)
+ f_ptr = C_LOC(data_out_i16(1))
+ CALL h5dread_f(dset_id16, h5kind_to_type(int_kind_16,H5_INTEGER_KIND), f_ptr, error)
+ f_ptr = C_LOC(data_out_r7(1))
+ CALL h5dread_f(dset_idr4, h5kind_to_type(real_kind_7,H5_REAL_KIND), f_ptr, error)
+ f_ptr = C_LOC(data_out_r15(1))
+ CALL h5dread_f(dset_idr8, h5kind_to_type(real_kind_15,H5_REAL_KIND), f_ptr, error)
+
+! memory type
+ WRITE(*,'(A,4i8)' )'SELECTED_INT_KIND(Fortran_INTEGER_1): ',data_out_i8a
+ WRITE(*,'(A,4i8)' )'SELECTED_INT_KIND(Fortran_INTEGER_4): ',data_out_i4
+ WRITE(*,'(A,4i8)' )'SELECTED_INT_KIND(Fortran_INTEGER_8): ',data_out_i8
+ WRITE(*,'(A,4i8)' )'SELECTED_INT_KIND(Fortran_INTEGER_16): ',data_out_i16
+ WRITE(*,'(A,4(1x,f9.4))' )'SELECTED_REAL_KIND(Fortran_REAL_7): ',data_out_r7
+ WRITE(*,'(A,4(1x,f16.10))' )'SELECTED_REAL_KIND(Fortran_REAL_15): ',data_out_r15
+ !
+ ! Close the dataset.
+ !
+ CALL h5dclose_f(dset_id1, error)
+ CALL h5dclose_f(dset_id4, error)
+ CALL h5dclose_f(dset_id8, error)
+ CALL h5dclose_f(dset_id16, error)
+ CALL h5dclose_f(dset_idr4, error)
+ CALL h5dclose_f(dset_idr8, error)
+ !
+ ! Close the file.
+ !
+ CALL h5fclose_f(file_id, error)
+ !
+ ! Close FORTRAN interface.
+ !
+ CALL h5close_f(error)
+
+END PROGRAM RWDSET_FORTRAN2003
+
+
+
diff --git a/fortran/robodoc.rc b/fortran/robodoc.rc
new file mode 100644
index 0000000..1366f77
--- /dev/null
+++ b/fortran/robodoc.rc
@@ -0,0 +1,73 @@
+items:
+ NAME
+ COPYRIGHT
+ SYNOPSIS
+ USAGE
+ FUNCTION
+ DESCRIPTION
+ PURPOSE
+ AUTHOR
+ CREATION DATE
+ MODIFICATION HISTORY
+ HISTORY
+ INPUTS
+ ARGUMENTS
+ OPTIONS
+ PARAMETERS
+ SWITCHES
+ OUTPUTS
+ SIDE EFFECTS
+ RESULT
+ RETURN VALUE
+ EXAMPLE
+ NOTES
+ DIAGNOSTICS
+ WARNINGS
+ ERRORS
+ BUGS
+ TODO
+ IDEAS
+ PORTABILITY
+ SEE ALSO
+ METHODS
+ NEW METHODS
+ ATTRIBUTES
+ NEW ATTRIBUTES
+ TAGS
+ DERIVED FROM
+ DERIVED BY
+ USES
+ CHILDREN
+ USED BY
+ PARENTS
+ COMMANDS
+ SOURCE
+ CONTAINS SUBROUTINES
+ OPTIONAL PARAMETERS
+ FILE
+ignore items:
+ COPYRIGHT
+headertypes:
+ s Subroutines robo_subroutines
+options:
+ --nogeneratedwith
+ --src ./
+ --doc ./doc/DevelGuide
+ --html
+ --multidoc
+ --index
+ --tabsize 8
+ --sections
+ --sectionnameonly
+ --documenttitle "HDF5 FORTRAN Developer's Guide"
+ --cmode
+ignore files:
+ .svn
+ *~
+ *.o
+ *e
+ *.mod
+accept files:
+ *.c
+ *.f90
+ *.h
diff --git a/fortran/src/H5Af.c b/fortran/src/H5Af.c
index 8e6158e..896736d 100644
--- a/fortran/src/H5Af.c
+++ b/fortran/src/H5Af.c
@@ -1,4 +1,9 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+/****h* H5Af/H5Af
+ * PURPOSE
+ * This file contains C stubs for H5A Fortran APIs
+ *
+ * COPYRIGHT
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
@@ -11,31 +16,41 @@
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* This files contains C stubs for H5A Fortran APIs */
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ ******
+*/
#include "H5f90.h"
#include "H5Eprivate.h"
-/*----------------------------------------------------------------------------
- * Name: h5acreate_c
- * Purpose: Call H5Acreate2 to create an attribute
- * Inputs: obj_id - object identifier
+/****if* H5Af/h5acreate_c
+ * NAME
+ * h5acreate_c
+ * PURPOSE
+ * Call H5Acreate2 to create an attribute
+ * INPUTS
+ * obj_id - object identifier
* name - name of the attribute
* namelen - name length
* type_id - datatype identifier
* space_id - dataspace identifier
* crt_pr - identifier of creation property list
- * Outputs: attr_id - attribute identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * attr_id - attribute identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, August 12, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5acreate_c(hid_t_f *obj_id, _fcd name, size_t_f *namelen, hid_t_f *type_id,
hid_t_f *space_id, hid_t_f *crt_prp, hid_t_f *aapl, hid_t_f *attr_id)
+/*******/
{
char *c_name = NULL; /* Buffer to hold C string */
int_f ret_value = 0; /* Return value */
@@ -58,20 +73,29 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5aopen_name _c
- * Purpose: Call H5Aopen to open an attribute
- * Inputs: obj_id - object identifier
+/****if* H5Af/h5aopen_name_c
+ * NAME
+ * h5aopen_name_c
+ * PURPOSE
+ * Call H5Aopen to open an attribute
+ * INPUTS
+ * obj_id - object identifier
* name - name of the attribute
* namelen - name length
- * Outputs: attr_id - dataset identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * attr_id - dataset identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, August 12, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5aopen_name_c (hid_t_f *obj_id, _fcd name, size_t_f *namelen, hid_t_f *attr_id)
+/*******/
{
char *c_name = NULL; /* Buffer to hold C string */
int_f ret_value = 0; /* Return value */
@@ -94,22 +118,30 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5awritec_c
- * Purpose: Call h5awrite_c to write a character attribute
- * Inputs: attr_id - dataset identifier
+/****if* H5Af/h5awritec_c
+ * NAME
+ * h5awritec_c
+ * PURPOSE
+ * Call h5awrite_c to write a character attribute
+ * INPUTS
+ * attr_id - dataset identifier
* mem_type_id - memory datatype identifier
* buf - character data buffer
* dims - array to store dimensions sizes of buf; used only
* by Fortran routine.
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday , August 12, 1999
- * Modifications: dims paramete added.
+ * HISTORY
+ * dims paramete added.
* April 4, 2001
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5awritec_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -118,6 +150,7 @@ nh5awritec_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
}
int_f
nh5awritec_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -127,6 +160,7 @@ nh5awritec_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
int_f
nh5awritec_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -136,6 +170,7 @@ nh5awritec_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
int_f
nh5awritec_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -145,6 +180,7 @@ nh5awritec_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
int_f
nh5awritec_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -154,6 +190,7 @@ nh5awritec_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
int_f
nh5awritec_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -163,6 +200,7 @@ nh5awritec_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
int_f
nh5awritec_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -172,6 +210,7 @@ nh5awritec_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
int_f
nh5awritec_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -181,6 +220,7 @@ nh5awritec_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
int_f
nh5awritec_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -190,26 +230,34 @@ nh5awritec_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
-/*----------------------------------------------------------------------------
- * Name: h5awrite_c
- * Purpose: Call H5Awrite to write a attribute
- * Inputs: attr_id - attribute identifier
+/****if* H5Af/h5awrite_c
+ * NAME
+ * h5awrite_c
+ * PURPOSE
+ * Call H5Awrite to write a attribute
+ * INPUTS
+ * attr_id - attribute identifier
* mem_type_id - memory datatype identifier
* buf - data buffer
* dims - array to store dimensions sizes of buf; used only
* by Fortran routine.
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, August 12, 1999
- * Modifications: dims parameter added
+ * HISTORY
+ * dims parameter added
* April 4, 2001
* Added nh5awrite_integer(real,double)_s,1-7 functions to eliminate
* complains about wrong parameters types in h5awrite_c function
* called by Fortran routines.
* October 9, 2006 EIP
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5awrite_integer_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -219,6 +267,7 @@ nh5awrite_integer_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void U
int_f
nh5awrite_integer_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -228,6 +277,7 @@ nh5awrite_integer_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void U
int_f
nh5awrite_integer_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -237,6 +287,7 @@ nh5awrite_integer_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void U
int_f
nh5awrite_integer_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -246,6 +297,7 @@ nh5awrite_integer_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void U
int_f
nh5awrite_integer_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -255,6 +307,7 @@ nh5awrite_integer_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void U
int_f
nh5awrite_integer_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -264,6 +317,7 @@ nh5awrite_integer_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void U
int_f
nh5awrite_integer_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -273,6 +327,7 @@ nh5awrite_integer_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void U
int_f
nh5awrite_integer_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -282,6 +337,7 @@ nh5awrite_integer_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void U
int_f
nh5awrite_real_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -291,6 +347,7 @@ nh5awrite_real_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUS
int_f
nh5awrite_real_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -300,6 +357,7 @@ nh5awrite_real_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUS
int_f
nh5awrite_real_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -309,6 +367,7 @@ nh5awrite_real_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUS
int_f
nh5awrite_real_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -318,6 +377,7 @@ nh5awrite_real_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUS
int_f
nh5awrite_real_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -327,6 +387,7 @@ nh5awrite_real_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUS
int_f
nh5awrite_real_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -336,6 +397,7 @@ nh5awrite_real_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUS
int_f
nh5awrite_real_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -345,6 +407,7 @@ nh5awrite_real_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUS
int_f
nh5awrite_real_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -354,6 +417,7 @@ nh5awrite_real_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUS
int_f
nh5awrite_double_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -363,6 +427,7 @@ nh5awrite_double_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
int_f
nh5awrite_double_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -372,6 +437,7 @@ nh5awrite_double_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
int_f
nh5awrite_double_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -381,6 +447,7 @@ nh5awrite_double_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
int_f
nh5awrite_double_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -390,6 +457,7 @@ nh5awrite_double_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
int_f
nh5awrite_double_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -399,6 +467,7 @@ nh5awrite_double_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
int_f
nh5awrite_double_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -408,6 +477,7 @@ nh5awrite_double_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
int_f
nh5awrite_double_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -417,6 +487,7 @@ nh5awrite_double_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
int_f
nh5awrite_double_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+/******/
{
/*
* Call h5awrite_c function.
@@ -426,6 +497,7 @@ nh5awrite_double_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
int_f
nh5awrite_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+/******/
{
int_f ret_value=0; /* Return value */
@@ -440,26 +512,35 @@ done:
}
-/*----------------------------------------------------------------------------
- * Name: h5areadc_c
- * Purpose: Call h5aread_c to read character attribute
- * Inputs: dset_id - dataset identifier
+/****if* H5Af/h5areadc_c
+ * NAME
+ * h5areadc_c
+ * PURPOSE
+ * Call h5aread_c to read character attribute
+ * INPUTS
+ * dset_id - dataset identifier
* mem_type_id - memory datatype identifier
* dims - array to store dimensions sizes of buf; used only
* by Fortran routine.
- * Outputs: buf - character data buffer
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * buf - character data buffer
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, August 12, 1999
- * Modifications: dims parameter added.
+ * HISTORY
+ * dims parameter added.
* April 4, 2001
* Added nh5areadc_s,1-7 functions to eliminate
* complains about wrong parameters types in h5awrite_c function
* called by Fortran routines.
* October 9, 2006 EIP
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5areadc_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -468,6 +549,7 @@ nh5areadc_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
}
int_f
nh5areadc_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -477,6 +559,7 @@ nh5areadc_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
int_f
nh5areadc_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -486,6 +569,7 @@ nh5areadc_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
int_f
nh5areadc_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -495,6 +579,7 @@ nh5areadc_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
int_f
nh5areadc_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -504,6 +589,7 @@ nh5areadc_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
int_f
nh5areadc_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -513,6 +599,7 @@ nh5areadc_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
int_f
nh5areadc_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -522,6 +609,7 @@ nh5areadc_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
int_f
nh5areadc_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -530,6 +618,7 @@ nh5areadc_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
}
int_f
nh5areadc_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -539,26 +628,35 @@ nh5areadc_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
-/*----------------------------------------------------------------------------
- * Name: h5aread_c
- * Purpose: Call H5Aread to read an attribute
- * Inputs: dset_id - dataset identifier
+/****if* H5Af/h5aread_c
+ * NAME
+ * h5aread_c
+ * PURPOSE
+ * Call H5Aread to read an attribute
+ * INPUTS
+ * dset_id - dataset identifier
* mem_type_id - memory datatype identifier
* dims - array to store dimensions sizes of buf; used only
* by Fortran routine.
- * Outputs: buf - data buffer
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * buf - data buffer
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, August 12, 1999
- * Modifications: dims paramete added.
+ * HISTORY
+ * dims paramete added.
* April 4, 2001
* Added nh5aread_integer(real,double)_s,1-7 functions to eliminate
* complains about wrong parameters types in h5awrite_c function
* called by Fortran routines.
* October 9, 2006 EIP
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5aread_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+/******/
{
int_f ret_value=0; /* Return value */
@@ -574,6 +672,7 @@ done:
int_f
nh5aread_integer_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -583,6 +682,7 @@ nh5aread_integer_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
int_f
nh5aread_integer_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -592,6 +692,7 @@ nh5aread_integer_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
int_f
nh5aread_integer_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -601,6 +702,7 @@ nh5aread_integer_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
int_f
nh5aread_integer_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -610,6 +712,7 @@ nh5aread_integer_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
int_f
nh5aread_integer_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -619,6 +722,7 @@ nh5aread_integer_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
int_f
nh5aread_integer_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -628,6 +732,7 @@ nh5aread_integer_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
int_f
nh5aread_integer_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -637,6 +742,7 @@ nh5aread_integer_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
int_f
nh5aread_integer_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -646,6 +752,7 @@ nh5aread_integer_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
int_f
nh5aread_real_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -655,6 +762,7 @@ nh5aread_real_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSE
int_f
nh5aread_real_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -664,6 +772,7 @@ nh5aread_real_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSE
int_f
nh5aread_real_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -673,6 +782,7 @@ nh5aread_real_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSE
int_f
nh5aread_real_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -682,6 +792,7 @@ nh5aread_real_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSE
int_f
nh5aread_real_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -691,6 +802,7 @@ nh5aread_real_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSE
int_f
nh5aread_real_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -700,6 +812,7 @@ nh5aread_real_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSE
int_f
nh5aread_real_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -709,6 +822,7 @@ nh5aread_real_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSE
int_f
nh5aread_real_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -718,6 +832,7 @@ nh5aread_real_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSE
int_f
nh5aread_double_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -727,6 +842,7 @@ nh5aread_double_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNU
int_f
nh5aread_double_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -736,6 +852,7 @@ nh5aread_double_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNU
int_f
nh5aread_double_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -745,6 +862,7 @@ nh5aread_double_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNU
int_f
nh5aread_double_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -754,6 +872,7 @@ nh5aread_double_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNU
int_f
nh5aread_double_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -763,6 +882,7 @@ nh5aread_double_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNU
int_f
nh5aread_double_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -772,6 +892,7 @@ nh5aread_double_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNU
int_f
nh5aread_double_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -781,6 +902,7 @@ nh5aread_double_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNU
int_f
nh5aread_double_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+/******/
{
/*
* Call h5aread_c function.
@@ -789,18 +911,26 @@ nh5aread_double_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNU
}
-/*----------------------------------------------------------------------------
- * Name: h5aclose_c
- * Purpose: Call H5Aclose to close an attribute
- * Inputs: attr_id - identifier of an attribute to be closed
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Af/h5aclose_c
+ * NAME
+ * h5aclose_c
+ * PURPOSE
+ * Call H5Aclose to close an attribute
+ * INPUTS
+ * attr_id - identifier of an attribute to be closed
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, August 12, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5aclose_c ( hid_t_f *attr_id )
+/******/
{
int_f ret_value=0; /* Return value */
@@ -811,19 +941,27 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5adelete_c
- * Purpose: Call H5Adelete to delete an attribute
- * Inputs: obj_id - object identifier
+/****if* H5Af/h5adelete_c
+ * NAME
+ * h5adelete_c
+ * PURPOSE
+ * Call H5Adelete to delete an attribute
+ * INPUTS
+ * obj_id - object identifier
* name - name of the attribute
* namelen - name length
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, August 12, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5adelete_c (hid_t_f *obj_id, _fcd name, size_t_f *namelen)
+/******/
{
char *c_name = NULL; /* Buffer to hold C string */
int_f ret_value = 0; /* Return value */
@@ -848,19 +986,28 @@ done:
}
-/*----------------------------------------------------------------------------
- * Name: h5aopen_idx_c
- * Purpose: Call H5Aopen_by_idx to open an attribute
- * Inputs: obj_id - object identifier
+/****if* H5Af/h5aopen_idx_c
+ * NAME
+ * h5aopen_idx_c
+ * PURPOSE
+ * Call H5Aopen_by_idx to open an attribute
+ * INPUTS
+ * obj_id - object identifier
* idx - attribute index ( zero based)
- * Outputs: attr_id - attribute identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * attr_id - attribute identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, August 12, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5aopen_idx_c (hid_t_f *obj_id, int_f *idx, hid_t_f *attr_id)
+/******/
{
int_f ret_value = 0; /* Return value */
@@ -875,18 +1022,27 @@ done:
}
-/*----------------------------------------------------------------------------
- * Name: h5aget_space_c
- * Purpose: Call H5Aget_space to get attribute's dataspace
- * Inputs: attr_id - attribute identifier
- * Outputs: space_id - dataspace identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Af/h5aget_space_c
+ * NAME
+ * h5aget_space_c
+ * PURPOSE
+ * Call H5Aget_space to get attribute's dataspace
+ * INPUTS
+ * attr_id - attribute identifier
+ * OUTPUTS
+ * space_id - dataspace identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, August 12, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5aget_space_c (hid_t_f *attr_id, hid_t_f *space_id)
+/******/
{
int_f ret_value=0; /* Return value */
@@ -900,18 +1056,27 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5aget_type_c
- * Purpose: Call H5Aget_space to get attribute's datatype
- * Inputs: attr_id - attribute identifier
- * Outputs: type_id - datatype identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Af/h5aget_type_c
+ * NAME
+ * h5aget_type_c
+ * PURPOSE
+ * Call H5Aget_space to get attribute's datatype
+ * INPUTS
+ * attr_id - attribute identifier
+ * OUTPUTS
+ * type_id - datatype identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, August 12, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5aget_type_c (hid_t_f *attr_id, hid_t_f *type_id)
+/******/
{
int_f ret_value=0; /* Return value */
@@ -925,19 +1090,27 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5aget_num_attrs_c
- * Purpose: Call H5Oget_info to determine number of
+/****if* H5Af/h5aget_num_attrs_c
+ * NAME
+ * h5aget_num_attrs_c
+ * PURPOSE
+ * Call H5Oget_info to determine number of
* attributes of an object
- * Inputs: obj_id - object identifier
+ * INPUTS
+ * obj_id - object identifier
* attr_num - number of attributes
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, August 12, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5aget_num_attrs_c (hid_t_f *obj_id, int_f *attr_num)
+/******/
{
H5O_info_t oinfo; /* Object info */
int_f ret_value = 0; /* Return value */
@@ -955,19 +1128,28 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5aget_name_c
- * Purpose: Call H5Aget_name to get attribute's name
- * Inputs: attr_id - attribute identifier
+/****if* H5Af/h5aget_name_c
+ * NAME
+ * h5aget_name_c
+ * PURPOSE
+ * Call H5Aget_name to get attribute's name
+ * INPUTS
+ * attr_id - attribute identifier
* bufsize - size of the buffer
- * Outputs: buf - buffer to hold the name
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * buf - buffer to hold the name
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, August 12, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5aget_name_c(hid_t_f *attr_id, size_t_f *bufsize, _fcd buf)
+/******/
{
size_t c_bufsize;
char *c_buf=NULL; /* Buffer to hold C string */
@@ -997,19 +1179,28 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5aget_storage_size_c
- * Purpose: Call H5Aget_storage_size
- * Inputs: attr_id - identifier of an attribute
- * Outputs: size - attributes storage requirements
- * Returns: 0 on success, -1 on failure
- * Programmer: M. S. Breitenfeld
+/****if* H5Af/h5aget_storage_size_c
+ * NAME
+ * h5aget_storage_size_c
+ * PURPOSE
+ * Call H5Aget_storage_size
+ * INPUTS
+ * attr_id - identifier of an attribute
+ * OUTPUTS
+ * size - attributes storage requirements
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* January, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ * N/A
+ * SOURCE
+*/
int_f
nh5aget_storage_size_c ( hid_t_f *attr_id, hsize_t_f *size)
+/******/
{
int_f ret_value=0; /* Return value */
@@ -1020,19 +1211,28 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5aget_create_plist_c
- * Purpose: Call H5Aget_create_plist
- * Inputs: attr_id - identifier of an attribute
- * Outputs: creation_prop_id - Identifier for the attribute’s creation property
- * Returns: 0 on success, -1 on failure
- * Programmer: M. S. Breitenfeld
+/****if* H5Af/h5aget_create_plist_c
+ * NAME
+ * h5aget_create_plist_c
+ * PURPOSE
+ * Call H5Aget_create_plist
+ * INPUTS
+ * attr_id - identifier of an attribute
+ * OUTPUTS
+ * creation_prop_id - Identifier for the attribute’s creation property
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* January, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ * N/A
+ * SOURCE
+*/
int_f
nh5aget_create_plist_c ( hid_t_f *attr_id, hid_t_f *creation_prop_id)
+/******/
{
int_f ret_value=0; /* Return value */
@@ -1043,10 +1243,13 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5arename_by_name_c
- * Purpose: Calls H5Arename_by_name
- * Inputs: loc_id - Object identifier
+/****if* H5Af/h5arename_by_name_c
+ * NAME
+ * h5arename_by_name_c
+ * PURPOSE
+ * Calls H5Arename_by_name
+ * INPUTS
+ * loc_id - Object identifier
* obj_name - Name of object, relative to location,
* whose attribute is to be renamed
* obj_name_len - Object name length
@@ -1055,18 +1258,24 @@ done:
* new_attr_name - New attribute name
* new_attr_name_len - New attribute name length
* lapl_id - Link access property list identifier
- * Outputs: N/A
- * Returns: 0 on success, -1 on failure
- * Programmer: M. S. Breitenfeld
+ * OUTPUTS
+ * N/A
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* January, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ * N/A
+ * SOURCE
+*/
int_f
nh5arename_by_name_c( hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen,
_fcd old_attr_name, size_t_f *old_attr_namelen,
_fcd new_attr_name, size_t_f *new_attr_namelen,
hid_t_f *lapl_id )
+/******/
{
char *c_obj_name = NULL; /* Buffer to hold C string */
char *c_old_attr_name = NULL; /* Buffer to hold C string */
@@ -1095,21 +1304,30 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5aopen_c
- * Purpose: Call H5Aopen to open an attribute
- * Inputs: obj_id - Identifer for object to which attribute is attached
+/****if* H5Af/h5aopen_c
+ * NAME
+ * h5aopen_c
+ * PURPOSE
+ * Call H5Aopen to open an attribute
+ * INPUTS
+ * obj_id - Identifer for object to which attribute is attached
* attr_name - Attribute access property list
* attr_namelen - size of attr_name
* aapl_id - Link access property list
- * Outputs: attr_id - dataset identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * OUTPUTS
+ * attr_id - dataset identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* January, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5aopen_c (hid_t_f *obj_id, _fcd attr_name, size_t_f *attr_namelen, hid_t_f *aapl_id, hid_t_f *attr_id)
+/******/
{
char *c_attr_name = NULL; /* Buffer to hold C string */
int_f ret_value = 0; /* Return value */
@@ -1131,24 +1349,33 @@ done:
HDfree(c_attr_name);
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5adelete_by_name_c
- * Purpose: Call h5adelete_by_name to remove an attribute from a specified location
- * Inputs: loc_id - identifer for object to which attribute is attached
+/****if* H5Af/h5adelete_by_name_c
+ * NAME
+ * h5adelete_by_name_c
+ * PURPOSE
+ * Call h5adelete_by_name to remove an attribute from a specified location
+ * INPUTS
+ * loc_id - identifer for object to which attribute is attached
* obj_name - object identifier
* obj_namelen - name length
* attr_name - name of the attribute
* attr_namelen - name length
* lapl_id - link access property list
*
- * Outputs: N/A
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * OUTPUTS
+ * N/A
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* January, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ * N/A
+ * SOURCE
+*/
int_f
nh5adelete_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, _fcd attr_name, size_t_f *attr_namelen, hid_t_f *lapl_id)
+/******/
{
char *c_obj_name = NULL; /* Buffer to hold C string */
char *c_attr_name = NULL; /* Buffer to hold C string */
@@ -1175,25 +1402,34 @@ done:
HDfree(c_obj_name);
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5adelete_by_idx_c
- * Purpose: Call h5adelete_by_idx
- * Inputs: loc_id - Location or object identifier; may be dataset or group
+/****if* H5Af/h5adelete_by_idx_c
+ * NAME
+ * h5adelete_by_idx_c
+ * PURPOSE
+ * Call h5adelete_by_idx
+ * INPUTS
+ * loc_id - Location or object identifier; may be dataset or group
* obj_name - object identifier
* obj_namelen - name length
* attr_name - name of the attribute
* attr_namelen - name length
* lapl_id - link access property list
*
- * Outputs: N/A
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * OUTPUTS
+ * N/A
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* January, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ * N/A
+ * SOURCE
+*/
int_f
nh5adelete_by_idx_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen,
int_f *idx_type, int_f *order, hsize_t_f *n, hid_t_f *lapl_id)
+/******/
{
char *c_obj_name = NULL; /* Buffer to hold C string */
int_f ret_value = 0; /* Return value */
@@ -1216,11 +1452,13 @@ done:
return ret_value;
}
-
-/*----------------------------------------------------------------------------
- * Name: h5aget_name_by_idx_c
- * Purpose: Call h5aget_name_by_idx
- * Inputs:
+/****if* H5Af/h5aget_name_by_idx_c
+ * NAME
+ * h5aget_name_by_idx_c
+ * PURPOSE
+ * Call h5aget_name_by_idx
+ * INPUTS
+ *
*
* loc_id - Identifer for object to which attribute is attached
* obj_name - Name of object, relative to location,
@@ -1246,17 +1484,23 @@ done:
* hdferr - Error code:
* Returns attribute name size, -1 if fail
*
- * Outputs: name - Attribute name
+ * OUTPUTS
+ * name - Attribute name
*
- * Returns: Size of buffer on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * Size of buffer on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* January, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ * N/A
+ * SOURCE
+*/
int_f
nh5aget_name_by_idx_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen,
int_f *idx_type, int_f *order, hsize_t_f *n, _fcd name,
size_t_f *size, hid_t_f *lapl_id)
+/******/
{
char *c_obj_name = NULL; /* Buffer to hold C string */
ssize_t c_size;
@@ -1299,10 +1543,13 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5aopen_by_idx_c
- * Purpose: Call H5Aopen_by_idx
- * Inputs: loc_id - Object identifier
+/****if* H5Af/h5aopen_by_idx_c
+ * NAME
+ * h5aopen_by_idx_c
+ * PURPOSE
+ * Call H5Aopen_by_idx
+ * INPUTS
+ * loc_id - Object identifier
* obj_name - Name of object to which attribute is attached
* obj_namelen - name length
* idx_type - Type of index; Possible values are:
@@ -1321,15 +1568,21 @@ done:
* n - Attribute’s position in index
* aapl_id - Attribute access property list
* lapl_id - Link access property list
- * Outputs: attr_id - attribute identifer
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * OUTPUTS
+ * attr_id - attribute identifer
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* January, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ * N/A
+ * SOURCE
+*/
int_f
nh5aopen_by_idx_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen,
int_f *idx_type, int_f *order, hsize_t_f *n, hid_t_f *aapl_id, hid_t_f *lapl_id, hid_t_f *attr_id )
+/******/
{
char *c_obj_name = NULL; /* Buffer to hold C string */
int_f ret_value = 0; /* Return value */
@@ -1353,24 +1606,33 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5aget_info_c
- * Purpose: Call H5Aget_info
- * Inputs: loc_id - Object identifier
- * Outputs:
+/****if* H5Af/h5aget_info_c
+ * NAME
+ * h5aget_info_c
+ * PURPOSE
+ * Call H5Aget_info
+ * INPUTS
+ * loc_id - Object identifier
+ * OUTPUTS
+ *
* corder_valid - Indicates whether the the creation order data is valid for this attribute
* corder - Is a positive integer containing the creation order of the attribute
* cset - Indicates the character set used for the attribute’s name
* data_size - indicates the size, in the number of characters, of the attribute
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* January, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ * N/A
+ * SOURCE
+*/
int_f
nh5aget_info_c (hid_t_f *loc_id, int_f *corder_valid, int_f *corder,
int_f *cset, hsize_t_f *data_size )
+/******/
{
int_f ret_value = 0; /* Return value */
@@ -1396,10 +1658,13 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5aget_info_by_idx_c
- * Purpose: Call H5Aget_info_by_idx
- * Inputs: loc_id - Object identifier
+/****if* H5Af/h5aget_info_by_idx_c
+ * NAME
+ * h5aget_info_by_idx_c
+ * PURPOSE
+ * Call H5Aget_info_by_idx
+ * INPUTS
+ * loc_id - Object identifier
* obj_name - Name of object to which attribute is attached
* obj_namelen - name length
* idx_type - Type of index; Possible values are:
@@ -1417,22 +1682,28 @@ done:
*
* n - Attribute’s position in index
* lapl_id - Link access property list
- * Outputs:
+ * OUTPUTS
+ *
* corder_valid - Indicates whether the the creation order data is valid for this attribute
* corder - Is a positive integer containing the creation order of the attribute
* cset - Indicates the character set used for the attribute’s name
* data_size - indicates the size, in the number of characters, of the attribute
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* January, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ * N/A
+ * SOURCE
+*/
int_f
nh5aget_info_by_idx_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen,
int_f *idx_type, int_f *order, hsize_t_f *n, hid_t_f *lapl_id,
int_f *corder_valid, int_f *corder,
int_f *cset, hsize_t_f *data_size )
+/******/
{
char *c_obj_name = NULL; /* Buffer to hold C string */
H5A_info_t ainfo;
@@ -1466,31 +1737,40 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5aget_info_by_name_c
- * Purpose: Call H5Aget_info_by_name
- * Inputs: loc_id - Object identifier
+/****if* H5Af/h5aget_info_by_name_c
+ * NAME
+ * h5aget_info_by_name_c
+ * PURPOSE
+ * Call H5Aget_info_by_name
+ * INPUTS
+ * loc_id - Object identifier
* obj_name - Name of object to which attribute is attached
* obj_namelen - name length
* attr_name - Attribute name
* attr_namelen - attribute name length
* lapl_id - Link access property list
- * Outputs:
+ * OUTPUTS
+ *
* corder_valid - Indicates whether the the creation order data is valid for this attribute
* corder - Is a positive integer containing the creation order of the attribute
* cset - Indicates the character set used for the attribute’s name
* data_size - indicates the size, in the number of characters, of the attribute
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* January, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ * N/A
+ * SOURCE
+*/
int_f
nh5aget_info_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen,
_fcd attr_name, size_t_f *attr_namelen, hid_t_f *lapl_id,
int_f *corder_valid, int_f *corder,
int_f *cset, hsize_t_f *data_size )
+/******/
{
char *c_obj_name = NULL; /* Buffer to hold C string */
char *c_attr_name = NULL; /* Buffer to hold C string */
@@ -1528,11 +1808,14 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5acreate_by_name_c
- * Purpose: Call h5acreate_by_name
+/****if* H5Af/h5acreate_by_name_c
+ * NAME
+ * h5acreate_by_name_c
+ * PURPOSE
+ * Call h5acreate_by_name
- * Inputs:
+ * INPUTS
+ *
* loc_id - Object identifier
* obj_name - Name of object to which attribute is attached
* obj_namelen - name length
@@ -1544,19 +1827,25 @@ done:
* aapl_id - Attribute access property list identifier (Currently not used.)
* lapl_id - Link access property list
*
- * Outputs:
+ * OUTPUTS
+ *
* attr - an attribute identifier
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* February, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ * N/A
+ * SOURCE
+*/
int_f
nh5acreate_by_name_c(hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen,
_fcd attr_name, size_t_f *attr_namelen, hid_t_f *type_id,
hid_t_f *space_id, hid_t_f *acpl_id, hid_t_f *aapl_id,
hid_t_f *lapl_id, hid_t_f *attr_id )
+/******/
{
char *c_obj_name = NULL; /* Buffer to hold C string */
char *c_attr_name = NULL; /* Buffer to hold C string */
@@ -1585,21 +1874,30 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5aexists_c
- * Purpose: CAll h5aexists
- * Inputs:
+/****if* H5Af/h5aexists_c
+ * NAME
+ * h5aexists_c
+ * PURPOSE
+ * CAll h5aexists
+ * INPUTS
+ *
* obj_id - Object identifier
* attr_name - Attribute name
- * Outputs:
+ * OUTPUTS
+ *
* attr_exists_c - returns a positive value, for TRUE, or 0 (zero), for FALSE.
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* February, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5aexists_c (hid_t_f *obj_id, _fcd name, size_t_f *namelen, hid_t_f *attr_exists)
+/******/
{
char *c_name = NULL; /* Buffer to hold C string */
int_f ret_value = 0; /* Return value */
@@ -1622,24 +1920,33 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5aexists_by_name_c
- * Purpose: CAll H5Aexists_by_name
- * Inputs:
+/****if* H5Af/h5aexists_by_name_c
+ * NAME
+ * h5aexists_by_name_c
+ * PURPOSE
+ * CAll H5Aexists_by_name
+ * INPUTS
+ *
* loc_id - Location identifier
* obj_name - Object name either relative to loc_id, absolute from the file’s root group, or '.' (a dot)
* attr_name - Attribute name
* lapl_id - Link access property list identifier
- * Outputs:
+ * OUTPUTS
+ *
* attr_exists_c - returns a positive value, for TRUE, or 0 (zero), for FALSE.
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* February, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5aexists_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, _fcd attr_name, size_t_f *attr_namelen,
hid_t_f *lapl_id, int_f *attr_exists)
+/******/
{
char *c_obj_name = NULL; /* Buffer to hold object name C string */
char *c_attr_name = NULL; /* Buffer to hold attribute name C string */
@@ -1667,25 +1974,34 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5aopen_by_name_c
- * Purpose: Call H5Aopen_by_name
- * Inputs:
+/****if* H5Af/h5aopen_by_name_c
+ * NAME
+ * h5aopen_by_name_c
+ * PURPOSE
+ * Call H5Aopen_by_name
+ * INPUTS
+ *
* loc_id - Location identifier
* obj_name - Object name either relative to loc_id, absolute from the file’s root group, or '.' (a dot)
* attr_name - Attribute name
* aapl_id - Attribute access property list (Currently unused; should be passed in as H5P_DEFAULT.)
* lapl_id - Link access property list identifier
- * Outputs:
+ * OUTPUTS
+ *
* attr_id - attribute identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* February, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5aopen_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, _fcd attr_name, size_t_f *attr_namelen,
hid_t_f *aapl_id, hid_t_f *lapl_id, hid_t_f *attr_id)
+/******/
{
char *c_obj_name = NULL; /* Buffer to hold object name C string */
char *c_attr_name = NULL; /* Buffer to hold attribute name C string */
@@ -1713,25 +2029,34 @@ nh5aopen_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, _fcd
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5arename_c
- * Purpose: Calls H5Arename
- * Inputs: loc_id - Object identifier
+/****if* H5Af/h5arename_c
+ * NAME
+ * h5arename_c
+ * PURPOSE
+ * Calls H5Arename
+ * INPUTS
+ * loc_id - Object identifier
* old_attr_name - Prior attribute name
* old_attr_name_len - Prior attribute name length
* new_attr_name - New attribute name
* new_attr_name_len - New attribute name length
- * Outputs: N/A
- * Returns: 0 on success, -1 on failure
- * Programmer: M. S. Breitenfeld
+ * OUTPUTS
+ * N/A
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* January, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ * N/A
+ * SOURCE
+*/
int_f
nh5arename_c( hid_t_f *loc_id,
_fcd old_attr_name, size_t_f *old_attr_namelen,
_fcd new_attr_name, size_t_f *new_attr_namelen)
+/******/
{
char *c_old_attr_name = NULL; /* Buffer to hold C string */
char *c_new_attr_name = NULL; /* Buffer to hold C string */
@@ -1754,3 +2079,69 @@ done:
HDfree(c_new_attr_name);
return ret_value;
}
+/****if* H5Af/h5awrite_f_c
+ * NAME
+ * h5awrite_f_c
+ * PURPOSE
+ * Call H5Awrite to write a dataset
+ * INPUTS
+ * attr_id - Identifier of an attribute to write.
+ * mem_type_id - Identifier of the attribute datatype (in memory).
+ * buf - data pointer buffer
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * June 11, 2008
+ * HISTORY
+ *
+ *
+ * SOURCE
+*/
+int_f
+nh5awrite_f_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf)
+/******/
+{
+ int ret_value = -1;
+ herr_t ret;
+
+ ret = H5Awrite( (hid_t)*attr_id, (hid_t)*mem_type_id, buf);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
+/****if* H5Af/h5aread_f_c
+ * NAME
+ * h5aread_f_c
+ * PURPOSE
+ * Call H5Awrite to write a dataset
+ * INPUTS
+ * attr_id - Identifier of an attribute to write.
+ * mem_type_id - Identifier of the attribute datatype (in memory).
+ * buf - data pointer buffer
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * June 11, 2008
+ * HISTORY
+ *
+ *
+ * SOURCE
+*/
+int_f
+nh5aread_f_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf)
+/******/
+{
+ int ret_value = -1;
+ herr_t ret;
+
+ ret = H5Aread( (hid_t)*attr_id, (hid_t)*mem_type_id, buf);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
diff --git a/fortran/src/H5Aff.f90 b/fortran/src/H5Aff.f90
index 49f3e70..1926dd1 100644
--- a/fortran/src/H5Aff.f90
+++ b/fortran/src/H5Aff.f90
@@ -1,3 +1,15 @@
+!****h* ROBODoc/H5A
+!
+! NAME
+! MODULE H5A
+!
+! PURPOSE
+! This file contains Fortran interfaces for H5A functions. It includes
+! all the functions that are independent on whether the Fortran 2003 functions
+! are enabled or disabled.
+!
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,129 +25,77 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! NOTES
+! *** IMPORTANT ***
+! If you add a new H5A function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
!
-! This file contains Fortran90 interfaces for H5A functions.
-!
+!*****
+
MODULE H5A
USE H5GLOBAL
!
-!On Windows there are no big (integer*8) integers, so overloading
-!for bug #670 does not work. I have to use DEC compilation directives to make
-!Windows DEC Visual Fortran and OSF compilers happy and do right things.
-! 05/01/02 EP
-!
- INTERFACE h5awrite_f
-
- MODULE PROCEDURE h5awrite_integer_scalar
- MODULE PROCEDURE h5awrite_integer_1
- MODULE PROCEDURE h5awrite_integer_2
- MODULE PROCEDURE h5awrite_integer_3
- MODULE PROCEDURE h5awrite_integer_4
- MODULE PROCEDURE h5awrite_integer_5
- MODULE PROCEDURE h5awrite_integer_6
- MODULE PROCEDURE h5awrite_integer_7
- MODULE PROCEDURE h5awrite_char_scalar
- MODULE PROCEDURE h5awrite_char_1
- MODULE PROCEDURE h5awrite_char_2
- MODULE PROCEDURE h5awrite_char_3
- MODULE PROCEDURE h5awrite_char_4
- MODULE PROCEDURE h5awrite_char_5
- MODULE PROCEDURE h5awrite_char_6
- MODULE PROCEDURE h5awrite_char_7
- MODULE PROCEDURE h5awrite_real_scalar
- MODULE PROCEDURE h5awrite_real_1
- MODULE PROCEDURE h5awrite_real_2
- MODULE PROCEDURE h5awrite_real_3
- MODULE PROCEDURE h5awrite_real_4
- MODULE PROCEDURE h5awrite_real_5
- MODULE PROCEDURE h5awrite_real_6
- MODULE PROCEDURE h5awrite_real_7
-
- END INTERFACE
-
- INTERFACE h5aread_f
-
- MODULE PROCEDURE h5aread_integer_scalar
- MODULE PROCEDURE h5aread_integer_1
- MODULE PROCEDURE h5aread_integer_2
- MODULE PROCEDURE h5aread_integer_3
- MODULE PROCEDURE h5aread_integer_4
- MODULE PROCEDURE h5aread_integer_5
- MODULE PROCEDURE h5aread_integer_6
- MODULE PROCEDURE h5aread_integer_7
- MODULE PROCEDURE h5aread_char_scalar
- MODULE PROCEDURE h5aread_char_1
- MODULE PROCEDURE h5aread_char_2
- MODULE PROCEDURE h5aread_char_3
- MODULE PROCEDURE h5aread_char_4
- MODULE PROCEDURE h5aread_char_5
- MODULE PROCEDURE h5aread_char_6
- MODULE PROCEDURE h5aread_char_7
- MODULE PROCEDURE h5aread_real_scalar
- MODULE PROCEDURE h5aread_real_1
- MODULE PROCEDURE h5aread_real_2
- MODULE PROCEDURE h5aread_real_3
- MODULE PROCEDURE h5aread_real_4
- MODULE PROCEDURE h5aread_real_5
- MODULE PROCEDURE h5aread_real_6
- MODULE PROCEDURE h5aread_real_7
-
- END INTERFACE
+! On Windows there are no big (integer*8) integers, so overloading
+! for bug #670 does not work. I have to use DEC compilation directives to make
+! Windows DEC Visual Fortran and OSF compilers happy and do right things.
+! 05/01/02 EP
+!
CONTAINS
-!----------------------------------------------------------------------
-! Name: h5acreate_f
!
-! Purpose: Creates a dataset as an attribute of a group, dataset,
-! or named datatype
+!****s* H5A/h5acreate_f
+!
+! NAME
+! h5acreate_f
+!
+! PURPOSE
+! Creates a dataset as an attribute of a group, dataset, or named datatype
+!
+! INPUTS
+! loc_id - identifier of an object (group, dataset,
+! or named datatype) attribute is attached to
+! name - attribute name
+! type_id - attribute datatype identifier
+! space_id - attribute dataspace identifier
!
-! Inputs:
-! loc_id - identifier of an object (group, dataset,
-! or named datatype) attribute is attached to
-! name - attribute name
-! type_id - attribute datatype identifier
-! space_id - attribute dataspace identifier
+! OUTPUTS
+! attr_id - attribute identifier
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! acpl_id - Attribute creation property list identifier
+! appl_id - Attribute access property list identifier
!
-! Outputs:
-! attr_id - attribute identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! acpl_id - Attribute creation property list identifier
-! appl_id - Attribute access property list identifier
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! HISTORY
+! Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
!
-! Modifications: Explicit Fortran interfaces are added for
-! called C functions (it is needed for Windows
-! port). February 27, 2001
!
-!----------------------------------------------------------------------
+! SOURCE
SUBROUTINE h5acreate_f(loc_id, name, type_id, space_id, attr_id, &
hdferr, acpl_id, aapl_id )
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Attribute name
- INTEGER(HID_T), INTENT(IN) :: type_id
- ! Attribute datatype identifier
- INTEGER(HID_T), INTENT(IN) :: space_id
- ! Attribute dataspace identifier
- INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code:
- ! 0 on success and -1 on failure
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Attribute name
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Attribute datatype identifier
+ INTEGER(HID_T), INTENT(IN) :: space_id ! Attribute dataspace identifier
+ INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
+!*****
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: acpl_id ! Attribute creation property list identifier
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: aapl_id ! Attribute access property list identifier
INTEGER(HID_T) :: acpl_id_default
INTEGER(HID_T) :: aapl_id_default
INTEGER(SIZE_T) :: namelen
-! INTEGER, EXTERNAL :: h5acreate_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5acreate_c(loc_id, name, namelen, type_id, &
space_id, acpl_id_default, aapl_id_default, attr_id)
@@ -157,7 +117,7 @@ CONTAINS
acpl_id_default = H5P_DEFAULT_F
aapl_id_default = H5P_DEFAULT_F
- namelen = LEN(NAME)
+ namelen = LEN(name)
IF (PRESENT(acpl_id)) acpl_id_default = acpl_id
IF (PRESENT(aapl_id)) aapl_id_default = aapl_id
@@ -167,43 +127,42 @@ CONTAINS
END SUBROUTINE h5acreate_f
-!----------------------------------------------------------------------
-! Name: h5aopen_name_f
!
-! Purpose: Opens an attribute specified by name.
+!****s* H5A/h5aopen_name_f
!
-! Inputs:
-! obj_id - identifier of a group, dataset, or named
-! datatype atttribute to be attached to
-! name - attribute name
-! Outputs:
-! attr_id - attribute identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5aopen_name_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Opens an attribute specified by name.
!
-! Modifications: Explicit Fortran interfaces are added for
-! called C functions (it is needed for Windows
-! port). February 27, 2001
+! INPUTS
+! obj_id - identifier of a group, dataset, or named
+! datatype atttribute to be attached to
+! name - attribute name
+! OUTPUTS
+! attr_id - attribute identifier
+! hdferr - Returns 0 if successful and -1 if fails
!
-!----------------------------------------------------------------------
-
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+! SOURCE
SUBROUTINE h5aopen_name_f(obj_id, name, attr_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Attribute name
INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
INTEGER(SIZE_T) :: namelen
-! INTEGER, EXTERNAL :: h5aopen_name_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5aopen_name_c(obj_id, name, namelen, attr_id)
USE H5GLOBAL
@@ -221,44 +180,41 @@ CONTAINS
namelen = LEN(name)
hdferr = h5aopen_name_c(obj_id, name, namelen, attr_id)
END SUBROUTINE h5aopen_name_f
-
-
-!----------------------------------------------------------------------
-! Name: h5aopen_idx_f
!
-! Purpose: Opens the attribute specified by its index.
+!****s* H5A/h5aopen_idx_f
!
-! Inputs:
-! obj_id - identifier of a group, dataset, or named
-! datatype an attribute to be attached to
-! index - index of the attribute to open (zero-based)
-! Outputs:
-! attr_id - attribute identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5aopen_idx_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Opens the attribute specified by its index.
!
-! Modifications: Explicit Fortran interfaces are added for
-! called C functions (it is needed for Windows
-! port). February 27, 2001
+! INPUTS
+! obj_id - identifier of a group, dataset, or named
+! datatype an attribute to be attached to
+! index - index of the attribute to open (zero-based)
+! OUTPUTS
+! attr_id - attribute identifier
+! hdferr - Returns 0 if successful and -1 if fails
!
-!----------------------------------------------------------------------
-
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+! SOURCE
SUBROUTINE h5aopen_idx_f(obj_id, index, attr_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
INTEGER, INTENT(IN) :: index ! Attribute index
INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
-! INTEGER, EXTERNAL :: h5aopen_idx_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5aopen_idx_c(obj_id, index, attr_id)
USE H5GLOBAL
@@ -273,1686 +229,131 @@ CONTAINS
hdferr = h5aopen_idx_c(obj_id, index, attr_id)
END SUBROUTINE h5aopen_idx_f
-
-
- SUBROUTINE h5awrite_integer_scalar(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(IN) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5awrite_integer_s_c
-! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5awrite_integer_s_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_INTEGER_S_C'::h5awrite_integer_s_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(IN)::buf
- END FUNCTION h5awrite_integer_s_c
- END INTERFACE
-
- hdferr = h5awrite_integer_s_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_integer_scalar
-
- SUBROUTINE h5awrite_integer_1(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(IN) , &
- DIMENSION(dims(1)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5awrite_integer_1_c
-! MS FORTRAN needs explicit interface for C functions called here.
+!****s* H5A/h5aget_space_f
!
- INTERFACE
- INTEGER FUNCTION h5awrite_integer_1_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_INTEGER_1_C'::h5awrite_integer_1_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(IN), DIMENSION(dims(1)) :: buf
- END FUNCTION h5awrite_integer_1_c
- END INTERFACE
-
- hdferr = h5awrite_integer_1_c(attr_id, memtype_id, buf, dims)
-
- END SUBROUTINE h5awrite_integer_1
-
-
- SUBROUTINE h5awrite_integer_2(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(IN) , &
- DIMENSION(dims(1),dims(2)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5awrite_integer_2_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! NAME
+! h5aget_space_f
!
- INTERFACE
- INTEGER FUNCTION h5awrite_integer_2_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_INTEGER_2_C'::h5awrite_integer_2_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(IN), DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5awrite_integer_2_c
- END INTERFACE
-
- hdferr = h5awrite_integer_2_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_integer_2
-
-
- SUBROUTINE h5awrite_integer_3(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(IN), DIMENSION(dims(1),dims(2),dims(3)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5awrite_integer_3_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! PURPOSE
+! Gets a copy of the dataspace for an attribute.
!
- INTERFACE
- INTEGER FUNCTION h5awrite_integer_3_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_INTEGER_3_C'::h5awrite_integer_3_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(IN), DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5awrite_integer_3_c
- END INTERFACE
-
- hdferr = h5awrite_integer_3_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_integer_3
-
-
- SUBROUTINE h5awrite_integer_4(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5awrite_integer_4_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! INPUTS
+! attr_id - attribute identifier
!
- INTERFACE
- INTEGER FUNCTION h5awrite_integer_4_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_INTEGER_4_C'::h5awrite_integer_4_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(IN), DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- END FUNCTION h5awrite_integer_4_c
- END INTERFACE
-
- hdferr = h5awrite_integer_4_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_integer_4
-
-
- SUBROUTINE h5awrite_integer_5(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(IN), DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5awrite_integer_5_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! OUTPUTS
+! space_id - attribite dataspace identifier
+! hdferr - Returns 0 if successful and -1 if fails
!
- INTERFACE
- INTEGER FUNCTION h5awrite_integer_5_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_INTEGER_5_C'::h5awrite_integer_5_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(IN), DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5awrite_integer_5_c
- END INTERFACE
-
- hdferr = h5awrite_integer_5_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_integer_5
-
-
- SUBROUTINE h5awrite_integer_6(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5awrite_integer_6_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
- INTERFACE
- INTEGER FUNCTION h5awrite_integer_6_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_INTEGER_6_C'::h5awrite_integer_6_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5awrite_integer_6_c
- END INTERFACE
-
- hdferr = h5awrite_integer_6_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_integer_6
-
-
- SUBROUTINE h5awrite_integer_7(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5awrite_integer_7_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! HISTORY
+! Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
!
- INTERFACE
- INTEGER FUNCTION h5awrite_integer_7_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_INTEGER_7_C'::h5awrite_integer_7_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5awrite_integer_7_c
- END INTERFACE
-
- hdferr = h5awrite_integer_7_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_integer_7
-
-
- SUBROUTINE h5awrite_real_scalar(attr_id, memtype_id, buf, dims, hdferr)
+!
+! SOURCE
+ SUBROUTINE h5aget_space_f(attr_id, space_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(IN) :: buf ! Attribute data
+ INTEGER(HID_T), INTENT(OUT) :: space_id ! Attribute dataspace identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5awrite_real_s_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
- INTEGER FUNCTION h5awrite_real_s_c(attr_id, memtype_id, buf, dims)
+ INTEGER FUNCTION h5aget_space_c(attr_id, space_id)
USE H5GLOBAL
!DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_REAL_S_C'::h5awrite_real_s_c
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AGET_SPACE_C'::h5aget_space_c
!DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(IN)::buf
- END FUNCTION h5awrite_real_s_c
+ INTEGER(HID_T), INTENT(OUT) :: space_id
+ END FUNCTION h5aget_space_c
END INTERFACE
-
- hdferr = h5awrite_real_s_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_real_scalar
-
- SUBROUTINE h5awrite_real_1(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(IN), &
- DIMENSION(dims(1)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5awrite_real_1_c
-! MS FORTRAN needs explicit interface for C functions called here.
+
+ hdferr = h5aget_space_c(attr_id, space_id)
+ END SUBROUTINE h5aget_space_f
+!
+!****s* H5A/h5aget_type_f
+!
+! NAME
+! h5aget_type_f
+!
+! PURPOSE
+! Gets an attribute datatype.
!
+! INPUTS
+! attr_id - attribute identifier
+! OUTPUTS
+! type_id - attribute datatype identifier
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+! SOURCE
+ SUBROUTINE h5aget_type_f(attr_id, type_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(OUT) :: type_id ! Attribute datatype identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
INTERFACE
- INTEGER FUNCTION h5awrite_real_1_c(attr_id, memtype_id, buf, dims)
+ INTEGER FUNCTION h5aget_type_c(attr_id, type_id)
USE H5GLOBAL
!DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_REAL_1_C'::h5awrite_real_1_c
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AGET_TYPE_C'::h5aget_type_c
!DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(IN), &
- DIMENSION(dims(1)) :: buf
- END FUNCTION h5awrite_real_1_c
+ INTEGER(HID_T), INTENT(OUT) :: type_id
+ END FUNCTION h5aget_type_c
END INTERFACE
-
- hdferr = h5awrite_real_1_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_real_1
-
-
- SUBROUTINE h5awrite_real_2(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5awrite_real_2_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5awrite_real_2_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_REAL_2_C'::h5awrite_real_2_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5awrite_real_2_c
- END INTERFACE
-
- hdferr = h5awrite_real_2_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_real_2
-
-
- SUBROUTINE h5awrite_real_3(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5awrite_real_3_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5awrite_real_3_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_REAL_3_C'::h5awrite_real_3_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5awrite_real_3_c
- END INTERFACE
-
- hdferr = h5awrite_real_3_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_real_3
-
-
- SUBROUTINE h5awrite_real_4(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5awrite_real_4_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5awrite_real_4_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_REAL_4_C'::h5awrite_real_4_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- END FUNCTION h5awrite_real_4_c
- END INTERFACE
-
- hdferr = h5awrite_real_4_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_real_4
-
-
- SUBROUTINE h5awrite_real_5(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5awrite_real_5_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5awrite_real_5_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_REAL_5_C'::h5awrite_real_5_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5awrite_real_5_c
- END INTERFACE
-
- hdferr = h5awrite_real_5_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_real_5
-
-
- SUBROUTINE h5awrite_real_6(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5awrite_real_6_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5awrite_real_6_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_REAL_6_C'::h5awrite_real_6_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5awrite_real_6_c
- END INTERFACE
-
- hdferr = h5awrite_real_6_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_real_6
-
-
- SUBROUTINE h5awrite_real_7(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5awrite_real_7_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5awrite_real_7_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_REAL_7_C'::h5awrite_real_7_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5awrite_real_7_c
- END INTERFACE
-
- hdferr = h5awrite_real_7_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_real_7
-
-
- SUBROUTINE h5awrite_char_scalar(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*),INTENT(IN) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-! INTEGER, EXTERNAL :: h5awritec_s_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5awritec_s_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITEC_S_C'::h5awritec_s_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(IN)::buf
- END FUNCTION h5awritec_s_c
- END INTERFACE
-
- hdferr = h5awritec_s_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_char_scalar
-
- SUBROUTINE h5awrite_char_1(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-! INTEGER, EXTERNAL :: h5awritec_1_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5awritec_1_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITEC_1_C'::h5awritec_1_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(IN), DIMENSION(dims(1))::buf
- END FUNCTION h5awritec_1_c
- END INTERFACE
-
- hdferr = h5awritec_1_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_char_1
-
-
- SUBROUTINE h5awrite_char_2(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5awritec_2_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5awritec_2_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITEC_2_C'::h5awritec_2_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5awritec_2_c
- END INTERFACE
-
- hdferr = h5awritec_2_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_char_2
-
-
- SUBROUTINE h5awrite_char_3(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-! INTEGER, EXTERNAL :: h5awritec_3_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5awritec_3_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITEC_3_C'::h5awritec_3_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5awritec_3_c
- END INTERFACE
-
- hdferr = h5awritec_3_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_char_3
-
-
- SUBROUTINE h5awrite_char_4(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-! INTEGER, EXTERNAL :: h5awritec_4_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5awritec_4_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITEC_4_C'::h5awritec_4_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- END FUNCTION h5awritec_4_c
- END INTERFACE
-
- hdferr = h5awritec_4_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_char_4
-
-
- SUBROUTINE h5awrite_char_5(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-! INTEGER, EXTERNAL :: h5awritec_5_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5awritec_5_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITEC_5_C'::h5awritec_5_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5awritec_5_c
- END INTERFACE
-
- hdferr = h5awritec_5_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_char_5
-
-
- SUBROUTINE h5awrite_char_6(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-! INTEGER, EXTERNAL :: h5awritec_6_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5awritec_6_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITEC_6_C'::h5awritec_6_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5awritec_6_c
- END INTERFACE
-
- hdferr = h5awritec_6_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_char_6
-
-
- SUBROUTINE h5awrite_char_7(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-! INTEGER, EXTERNAL :: h5awritec_7_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5awritec_7_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITEC_7_C'::h5awritec_7_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5awritec_7_c
- END INTERFACE
-
- hdferr = h5awritec_7_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_char_7
-
-!----------------------------------------------------------------------
-! Name: h5aread_f
-!
-! Purpose: Reads an attribute.
-!
-! Inputs:
-! attr_id - attribute identifier
-! memtype_id - attribute memory type identifier
-! dims - 1D array of size 7, stores sizes of the
-! - buf array dimensions.
-! Outputs:
-! buf - buffer to read attribute data in
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces are added for
-! called C functions (it is needed for Windows
-! port). February 27, 2001
-!
-! dims parameter was added to make code portable;
-! Aprile 4, 2001
-!
-! Changed buf intent to INOUT to be consistant
-! with how the C functions handles it. The pg
-! compiler will return 0 if a buf value is not set.
-! February, 2008
-!
-! Comment: This function is overloaded to write INTEGER,
-! REAL, DOUBLE PRECISION and CHARACTER buffers
-! up to 7 dimensions.
-!----------------------------------------------------------------------
-
- SUBROUTINE h5aread_integer_scalar(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(INOUT) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5aread_integer_s_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5aread_integer_s_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_INTEGER_S_C'::h5aread_integer_s_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(INOUT)::buf
- END FUNCTION h5aread_integer_s_c
- END INTERFACE
- hdferr = h5aread_integer_s_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_integer_scalar
-
- SUBROUTINE h5aread_integer_1(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(INOUT), DIMENSION(dims(1)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5aread_integer_1_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5aread_integer_1_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_INTEGER_1_C'::h5aread_integer_1_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(INOUT), DIMENSION(dims(1)) :: buf
- END FUNCTION h5aread_integer_1_c
- END INTERFACE
-
- hdferr = h5aread_integer_1_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_integer_1
-
-
- SUBROUTINE h5aread_integer_2(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(INOUT),DIMENSION(dims(1),dims(2)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5aread_integer_2_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5aread_integer_2_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_INTEGER_2_C'::h5aread_integer_2_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(INOUT), DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5aread_integer_2_c
- END INTERFACE
-
- hdferr = h5aread_integer_2_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_integer_2
-
-
- SUBROUTINE h5aread_integer_3(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5aread_integer_3_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5aread_integer_3_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_INTEGER_3_C'::h5aread_integer_3_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5aread_integer_3_c
- END INTERFACE
-
- hdferr = h5aread_integer_3_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_integer_3
-
-
- SUBROUTINE h5aread_integer_4(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5aread_integer_4_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5aread_integer_4_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_INTEGER_4_C'::h5aread_integer_4_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- END FUNCTION h5aread_integer_4_c
- END INTERFACE
-
- hdferr = h5aread_integer_4_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_integer_4
-
-
- SUBROUTINE h5aread_integer_5(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5aread_integer_5_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5aread_integer_5_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_INTEGER_5_C'::h5aread_integer_5_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5aread_integer_5_c
- END INTERFACE
-
- hdferr = h5aread_integer_5_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_integer_5
-
-
- SUBROUTINE h5aread_integer_6(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5aread_integer_6_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5aread_integer_6_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_INTEGER_6_C'::h5aread_integer_6_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5aread_integer_6_c
- END INTERFACE
-
- hdferr = h5aread_integer_6_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_integer_6
-
-
- SUBROUTINE h5aread_integer_7(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5aread_integer_7_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5aread_integer_7_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_INTEGER_7_C'::h5aread_integer_7_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5aread_integer_7_c
- END INTERFACE
-
- hdferr = h5aread_integer_7_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_integer_7
-
-
- SUBROUTINE h5aread_real_scalar(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(INOUT) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5aread_real_s_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5aread_real_s_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_REAL_S_C'::h5aread_real_s_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(INOUT)::buf
- END FUNCTION h5aread_real_s_c
- END INTERFACE
-
- hdferr = h5aread_real_s_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_real_scalar
-
- SUBROUTINE h5aread_real_1(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5aread_real_1_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5aread_real_1_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_REAL_1_C'::h5aread_real_1_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1)) :: buf
- END FUNCTION h5aread_real_1_c
- END INTERFACE
-
- hdferr = h5aread_real_1_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_real_1
-
-
- SUBROUTINE h5aread_real_2(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5aread_real_2_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5aread_real_2_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_REAL_2_C'::h5aread_real_2_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5aread_real_2_c
- END INTERFACE
-
- hdferr = h5aread_real_2_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_real_2
-
-
- SUBROUTINE h5aread_real_3(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5aread_real_3_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5aread_real_3_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_REAL_3_C'::h5aread_real_3_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5aread_real_3_c
- END INTERFACE
-
- hdferr = h5aread_real_3_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_real_3
-
-
- SUBROUTINE h5aread_real_4(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5aread_real_4_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5aread_real_4_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_REAL_4_C'::h5aread_real_4_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- END FUNCTION h5aread_real_4_c
- END INTERFACE
-
- hdferr = h5aread_real_4_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_real_4
-
-
- SUBROUTINE h5aread_real_5(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5aread_real_5_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5aread_real_5_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_REAL_5_C'::h5aread_real_5_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5aread_real_5_c
- END INTERFACE
-
- hdferr = h5aread_real_5_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_real_5
-
-
- SUBROUTINE h5aread_real_6(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5aread_real_6_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5aread_real_6_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_REAL_6_C'::h5aread_real_6_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5aread_real_6_c
- END INTERFACE
-
- hdferr = h5aread_real_6_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_real_6
-
-
- SUBROUTINE h5aread_real_7(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5aread_real_7_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5aread_real_7_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_REAL_7_C'::h5aread_real_7_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5aread_real_7_c
- END INTERFACE
-
- hdferr = h5aread_real_7_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_real_7
-
- SUBROUTINE h5aread_char_scalar(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(INOUT) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5areadc_s_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5areadc_s_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREADC_S_C'::h5areadc_s_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(INOUT) :: buf
- END FUNCTION h5areadc_s_c
- END INTERFACE
-
- hdferr = h5areadc_s_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_char_scalar
-
- SUBROUTINE h5aread_char_1(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5areadc_1_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5areadc_1_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREADC_1_C'::h5areadc_1_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1)) :: buf
- END FUNCTION h5areadc_1_c
- END INTERFACE
-
- hdferr = h5areadc_1_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_char_1
-
-
- SUBROUTINE h5aread_char_2(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5areadc_2_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5areadc_2_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREADC_2_C'::h5areadc_2_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5areadc_2_c
- END INTERFACE
-
- hdferr = h5areadc_2_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_char_2
-
-
- SUBROUTINE h5aread_char_3(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5areadc_3_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5areadc_3_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREADC_3_C'::h5areadc_3_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5areadc_3_c
- END INTERFACE
-
- hdferr = h5areadc_3_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_char_3
-
-
- SUBROUTINE h5aread_char_4(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5areadc_4_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5areadc_4_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREADC_4_C'::h5areadc_4_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- END FUNCTION h5areadc_4_c
- END INTERFACE
-
- hdferr = h5areadc_4_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_char_4
-
-
- SUBROUTINE h5aread_char_5(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5areadc_5_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5areadc_5_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREADC_5_C'::h5areadc_5_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5areadc_5_c
- END INTERFACE
-
- hdferr = h5areadc_5_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_char_5
-
-
- SUBROUTINE h5aread_char_6(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5areadc_6_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5areadc_6_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREADC_6_C'::h5areadc_6_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5areadc_6_c
- END INTERFACE
-
- hdferr = h5areadc_6_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_char_6
-
-
- SUBROUTINE h5aread_char_7(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5areadc_7_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5areadc_7_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREADC_7_C'::h5areadc_7_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5areadc_7_c
- END INTERFACE
-
- hdferr = h5areadc_7_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_char_7
-
-
-!----------------------------------------------------------------------
-! Name: h5aget_space_f
-!
-! Purpose: Gets a copy of the dataspace for an attribute.
-!
-! Inputs:
-! attr_id - attribute identifier
-! Outputs:
-! space_id - attribite dataspace identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces are added for
-! called C functions (it is needed for Windows
-! port). February 27, 2001
-!
-!----------------------------------------------------------------------
-
- SUBROUTINE h5aget_space_f(attr_id, space_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(OUT) :: space_id
- ! Attribute dataspace identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL:: h5aget_space_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5aget_space_c(attr_id, space_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AGET_SPACE_C'::h5aget_space_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(OUT) :: space_id
- END FUNCTION h5aget_space_c
- END INTERFACE
-
- hdferr = h5aget_space_c(attr_id, space_id)
- END SUBROUTINE h5aget_space_f
-
-!----------------------------------------------------------------------
-! Name: h5aget_type_f
-!
-! Purpose: Gets an attribute datatype.
-!
-! Inputs:
-! attr_id - attribute identifier
-! Outputs:
-! type_id - attribute datatype identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces are added for
-! called C functions (it is needed for Windows
-! port). February 27, 2001
-!
-!----------------------------------------------------------------------
-
- SUBROUTINE h5aget_type_f(attr_id, type_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(OUT) :: type_id
- ! Attribute datatype identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5aget_type_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5aget_type_c(attr_id, type_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AGET_TYPE_C'::h5aget_type_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(OUT) :: type_id
- END FUNCTION h5aget_type_c
- END INTERFACE
-
- hdferr = h5aget_type_c(attr_id, type_id)
- END SUBROUTINE h5aget_type_f
-
-!----------------------------------------------------------------------
-! Name: h5aget_name_f
-!
-! Purpose: Gets an attribute name.
-!
-! Inputs:
-! attr_id - attribute identifier
-! size - size of a buffer to read name in
-! Outputs:
-! buf - buffer to read name in
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces are added for
-! called C functions (it is needed for Windows
-! port). February 27, 2001
-!
-!----------------------------------------------------------------------
-
-
+
+ hdferr = h5aget_type_c(attr_id, type_id)
+ END SUBROUTINE h5aget_type_f
+!
+!****s* H5A/h5aget_name_f
+!
+! NAME
+! h5aget_name_f
+!
+! PURPOSE
+! Gets an attribute name.
+!
+! INPUTS
+! attr_id - attribute identifier
+! size - size of a buffer to read name in
+! OUTPUTS
+! buf - buffer to read name in
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+!
+! SOURCE
SUBROUTINE h5aget_name_f(attr_id, size, buf, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(SIZE_T), INTENT(IN) :: size ! Buffer size
- CHARACTER(LEN=*), INTENT(INOUT) :: buf
- ! Buffer to hold attribute name
+ CHARACTER(LEN=*), INTENT(INOUT) :: buf ! Buffer to hold attribute name
INTEGER, INTENT(OUT) :: hdferr ! Error code:
- ! name length is successful,
- ! -1 if fail
-
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+ ! name length is successful, -1 if fail
+!*****
INTERFACE
INTEGER FUNCTION h5aget_name_c(attr_id, size, buf)
USE H5GLOBAL
@@ -1969,47 +370,46 @@ CONTAINS
hdferr = h5aget_name_c(attr_id, size, buf)
END SUBROUTINE h5aget_name_f
-!----------------------------------------------------------------------
-! Name: h5aget_name_by_idx_f
!
-! Purpose: Gets an attribute name, by attribute index position.
+!****s* H5A/h5aget_name_by_idx_f
!
-! Inputs:
-! loc_id - Location of object to which attribute is attached
-! obj_name - Name of object to which attribute is attached, relative to location
-! idx_type - Type of index; Possible values are:
+! NAME
+! h5aget_name_by_idx_f
!
-! H5_INDEX_UNKNOWN_F = -1 - Unknown index type
-! H5_INDEX_NAME_F - Index on names
-! H5_INDEX_CRT_ORDER_F - Index on creation order
-! H5_INDEX_N_F - Number of indices defined
+! PURPOSE
+! Gets an attribute name, by attribute index position.
!
-! order - Order in which to iterate over index; Possible values are:
+! INPUTS
+! loc_id - Location of object to which attribute is attached
+! obj_name - Name of object to which attribute is attached, relative to location
+! idx_type - Type of index; Possible values are:
+! H5_INDEX_UNKNOWN_F = -1 - Unknown index type
+! H5_INDEX_NAME_F - Index on names
+! H5_INDEX_CRT_ORDER_F - Index on creation order
+! H5_INDEX_N_F - Number of indices defined
!
-! H5_ITER_UNKNOWN_F - Unknown order
-! H5_ITER_INC_F - Increasing order
-! H5_ITER_DEC_F - Decreasing order
-! H5_ITER_NATIVE_F - No particular order, whatever is fastest
-! H5_ITER_N_F - Number of iteration orders
+! order - Order in which to iterate over index; Possible values are:
+! H5_ITER_UNKNOWN_F - Unknown order
+! H5_ITER_INC_F - Increasing order
+! H5_ITER_DEC_F - Decreasing order
+! H5_ITER_NATIVE_F - No particular order, whatever is fastest
+! H5_ITER_N_F - Number of iteration orders
+! order - Index traversal order
+! n - Attribute’s position in index
!
-! order - Index traversal order
-! n - Attribute’s position in index
+! OUTPUTS
+! name - Attribute name
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Outputs:
-! name - Attribute name
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! lapl_id - Link access property list
-! size - Size, in bytes, of attribute name
+! OPTIONAL PARAMETERS
+! lapl_id - Link access property list
+! size - Size, in bytes, of attribute name
!
-! Programmer: M.S. Breitenfeld
-! January, 2008
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
!
-! Modifications: N/A
-!----------------------------------------------------------------------
-
+! SOURCE
SUBROUTINE h5aget_name_by_idx_f(loc_id, obj_name, idx_type, order, &
n, name, hdferr, size, lapl_id)
IMPLICIT NONE
@@ -2028,23 +428,19 @@ CONTAINS
! H5_ITER_DEC_F - Decreasing order
! H5_ITER_NATIVE_F - No particular order, whatever is fastest
! H5_ITER_N_F - Number of iteration orders
-
INTEGER(HSIZE_T), INTENT(IN) :: n ! Attribute’s position in index
-
CHARACTER(LEN=*), INTENT(OUT) :: name ! Attribute name
-
-
INTEGER, INTENT(OUT) :: hdferr ! Error code:
- ! Returns attribute name size,
- ! -1 if fail
- INTEGER(SIZE_T) :: obj_namelen
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
+ ! Returns attribute name size,
+ ! -1 if fail
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
+ INTEGER(SIZE_T), OPTIONAL, INTENT(OUT) :: size ! Indicates the size, in the number of characters,
+ ! of the attribute
+!*****
INTEGER(HID_T) :: lapl_id_default
- INTEGER(SIZE_T), OPTIONAL, INTENT(OUT) :: size ! Indicates the size, in the number of characters, of the attribute
+ INTEGER(SIZE_T) :: obj_namelen
INTEGER(SIZE_T) :: size_default
-!
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+
INTERFACE
INTEGER FUNCTION h5aget_name_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, &
n, name, size_default, lapl_id_default)
@@ -2079,43 +475,39 @@ CONTAINS
END SUBROUTINE h5aget_name_by_idx_f
-
-
-!----------------------------------------------------------------------
-! Name: h5aget_num_attrs_f
!
-! Purpose: Determines the number of attributes attached to an object.
+!****s* H5A/h5aget_num_attrs_f
!
-! Inputs:
-! obj_id - object (group, dataset, or named datatype)
-! identifier
-! Outputs:
-! attr_num - number of attributes attached to the object
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5aget_num_attrs_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Determines the number of attributes attached to an object.
!
-! Modifications: Explicit Fortran interfaces are added for
-! called C functions (it is needed for Windows
-! port). February 27, 2001
+! INPUTS
+! obj_id - object (group, dataset, or named datatype)
+! identifier
+! OUTPUTS
+! attr_num - number of attributes attached to the object
+! hdferr - Returns 0 if successful and -1 if fails
!
-!----------------------------------------------------------------------
-
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+! SOURCE
SUBROUTINE h5aget_num_attrs_f(obj_id, attr_num, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
- INTEGER, INTENT(OUT) :: attr_num ! Number of attributes of the
- ! object
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER, INTENT(OUT) :: attr_num ! Number of attributes of the object
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
-! INTEGER, EXTERNAL :: h5aget_num_attrs_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5aget_num_attrs_c(obj_id, attr_num)
USE H5GLOBAL
@@ -2130,42 +522,40 @@ CONTAINS
hdferr = h5aget_num_attrs_c(obj_id, attr_num)
END SUBROUTINE h5aget_num_attrs_f
-!----------------------------------------------------------------------
-! Name: h5adelete_f
!
-! Purpose: Deletes an attribute of an object (group, dataset or
-! named datatype)
+!****s* H5A/h5adelete_f
!
-! Inputs:
-! obj_id - object identifier
-! name - attribute name
-! Outputs:
+! NAME
+! h5adelete_f
!
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! PURPOSE
+! Deletes an attribute of an object (group, dataset or
+! named datatype)
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! INPUTS
+! obj_id - object identifier
+! name - attribute name
+! OUTPUTS
!
-! Modifications: Explicit Fortran interfaces are added for
-! called C functions (it is needed for Windows
-! port). February 27, 2001
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-!----------------------------------------------------------------------
-
+! HISTORY
+! Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+! SOURCE
SUBROUTINE h5adelete_f(obj_id, name, hdferr)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Attribute name
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Attribute name
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
INTEGER(SIZE_T) :: namelen
-! INTEGER, EXTERNAL :: h5adelete_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5adelete_c(obj_id, name, namelen)
USE H5GLOBAL
@@ -2183,38 +573,36 @@ CONTAINS
hdferr = h5adelete_c(obj_id, name, namelen)
END SUBROUTINE h5adelete_f
-!----------------------------------------------------------------------
-! Name: h5aclose_f
!
-! Purpose: Closes the specified attribute.
+!****s* H5A/h5aclose_f
!
-! Inputs:
-! attr_id - attribute identifier
-! Outputs:
+! NAME
+! h5aclose_f
!
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! PURPOSE
+! Closes the specified attribute.
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! INPUTS
+! attr_id - attribute identifier
+! OUTPUTS
!
-! Modifications: Explicit Fortran interfaces are added for
-! called C functions (it is needed for Windows
-! port). February 27, 2001
+! hdferr - Returns 0 if successful and -1 if fails
!
-!----------------------------------------------------------------------
-
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+! SOURCE
SUBROUTINE h5aclose_f(attr_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
-! INTEGER, EXTERNAL :: h5aclose_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5aclose_c(attr_id)
USE H5GLOBAL
@@ -2228,36 +616,32 @@ CONTAINS
hdferr = h5aclose_c(attr_id)
END SUBROUTINE h5aclose_f
-!----------------------------------------------------------------------
-! Name: h5aget_storage_size_f
!
-! Purpose: Returns the amount of storage required for an attribute.
+!****s* H5A/h5aget_storage_size_f
!
-! Inputs:
-! attr_id - attribute identifier
-! Outputs:
-! size - attribute storage size
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5aget_storage_size_f
!
-! Programmer: M. S. Breitenfeld
-! January, 2008
+! PURPOSE
+! Returns the amount of storage required for an attribute.
!
-! Modifications: N/A
+! INPUTS
+! attr_id - attribute identifier
+! OUTPUTS
+! size - attribute storage size
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
!
-!----------------------------------------------------------------------
-
+! SOURCE
SUBROUTINE h5aget_storage_size_f(attr_id, size, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HSIZE_T), INTENT(OUT) :: size ! Attribute storage requirement
+ INTEGER(HSIZE_T), INTENT(OUT) :: size ! Attribute storage requirement
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5aget_storage_size_c(attr_id, size)
USE H5GLOBAL
@@ -2272,37 +656,34 @@ CONTAINS
hdferr = h5aget_storage_size_c(attr_id, size)
END SUBROUTINE h5aget_storage_size_f
-!----------------------------------------------------------------------
-! Name: h5aget_create_plist_f
!
-! Purpose: Gets an attribute creation property list identifier
+!****s* H5A/h5aget_create_plist_f
!
-! Inputs:
-! attr_id - Identifier of the attribute
-! Outputs:
-! creation_prop_id - Identifier for the attribute’s creation property
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5aget_create_plist_f
!
-! Programmer: M. S. Breitenfeld
-! January, 2008
+! PURPOSE
+! Gets an attribute creation property list identifier
!
-! Modifications: N/A
+! INPUTS
+! attr_id - Identifier of the attribute
+! OUTPUTS
+! creation_prop_id - Identifier for the attribute’s creation property
+! hdferr - Returns 0 if successful and -1 if fails
!
-!----------------------------------------------------------------------
-
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+!
+! SOURCE
SUBROUTINE h5aget_create_plist_f(attr_id, creation_prop_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Identifier of the attribute
INTEGER(HID_T), INTENT(OUT) :: creation_prop_id ! Identifier for the attribute’s creation property
- INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
! 0 on success and -1 on failure
+!*****
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5aget_create_plist_c(attr_id, creation_prop_id)
USE H5GLOBAL
@@ -2317,31 +698,31 @@ CONTAINS
hdferr = h5aget_create_plist_c(attr_id, creation_prop_id)
END SUBROUTINE h5aget_create_plist_f
-!----------------------------------------------------------------------
-! Name: h5arename_by_name_f
!
-! Purpose: Renames an attribute
+!****s* H5A/h5arename_by_name_f
!
-! Inputs:
-! loc_id - Location or object identifier; may be dataset or group
-! obj_name - Name of object, relative to location,
-! whose attribute is to be renamed
-! old_attr_name - Prior attribute name
-! new_attr_name - New attribute name
-! lapl_id - Link access property list identifier
+! NAME
+! h5arename_by_name_f
!
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
+! PURPOSE
+! Renames an attribute
!
-! Programmer: M.S. Breitenfeld
-! January, 2008
+! INPUTS
+! loc_id - Location or object identifier; may be dataset or group
+! obj_name - Name of object, relative to location,
+! whose attribute is to be renamed
+! old_attr_name - Prior attribute name
+! new_attr_name - New attribute name
+! lapl_id - Link access property list identifier
!
-! Modifications: N/A
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
!
-!----------------------------------------------------------------------
-
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+!
+! SOURCE
SUBROUTINE h5arename_by_name_f(loc_id, obj_name, old_attr_name, new_attr_name, &
hdferr, lapl_id)
IMPLICIT NONE
@@ -2354,14 +735,12 @@ CONTAINS
INTEGER, INTENT(OUT) :: hdferr ! Error code:
! 0 on success and -1 on failure
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list identifier
-
+!*****
INTEGER(HID_T) :: lapl_id_default
INTEGER(SIZE_T) :: obj_namelen
INTEGER(SIZE_T) :: old_attr_namelen
INTEGER(SIZE_T) :: new_attr_namelen
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5arename_by_name_c(loc_id, obj_name, obj_namelen, &
old_attr_name, old_attr_namelen, new_attr_name, new_attr_namelen, &
@@ -2370,7 +749,7 @@ CONTAINS
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5ARENAME_BY_NAME_C'::h5arename_by_name_c
!DEC$ENDIF
- !DEC$ATTRIBUTES reference :: obj_name, old_attr_name, new_attr_name
+ !DEC$ATTRIBUTES reference :: obj_name, old_attr_name, new_attr_name
INTEGER(HID_T), INTENT(IN) :: loc_id
CHARACTER(LEN=*), INTENT(IN) :: obj_name
INTEGER(SIZE_T) :: obj_namelen
@@ -2396,30 +775,31 @@ CONTAINS
END SUBROUTINE h5arename_by_name_f
-!----------------------------------------------------------------------
-! Name: h5aopen_f
!
-! Purpose: Opens an attribute for an object specified by object
-! identifier and attribute name
+!****s* H5A/h5aopen_f
!
-! Inputs:
-! obj_id - Identifer for object to which attribute is attached
-! attr_name - Name of attribute to open
-! Outputs:
-! attr_id - attribute identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! aapl_id - Attribute access property list
+! NAME
+! h5aopen_f
!
-! Programmer: M.S. Breitenfeld
-! January, 2008
+! PURPOSE
+! Opens an attribute for an object specified by object
+! identifier and attribute name
!
-! Modifications: N/A
-!
-!----------------------------------------------------------------------
+! INPUTS
+! obj_id - Identifer for object to which attribute is attached
+! attr_name - Name of attribute to open
+! OUTPUTS
+! attr_id - attribute identifier
+! OPTIONAL PARAMETERS
+! aapl_id - Attribute access property list
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+!
+! SOURCE
SUBROUTINE h5aopen_f(obj_id, attr_name, attr_id, hdferr, aapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
@@ -2429,12 +809,11 @@ CONTAINS
! Success: 0
! Failure: -1
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: aapl_id ! Attribute access property list
+!*****
INTEGER(HID_T) :: aapl_id_default
INTEGER(SIZE_T) :: attr_namelen
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5aopen_c(obj_id, attr_name, attr_namelen, aapl_id_default, attr_id)
USE H5GLOBAL
@@ -2459,43 +838,42 @@ CONTAINS
END SUBROUTINE h5aopen_f
-!----------------------------------------------------------------------
-! Name: h5adelete_by_idx_f
-!
-! Purpose: Deletes an attribute from an object according to index order
!
-! Inputs:
-! loc_id - Location or object identifier; may be dataset or group
-! obj_name - Name of object, relative to location, from which attribute is to be removed
-! idx_type - Type of index; Possible values are:
+!****s* H5A/h5adelete_by_idx_f
!
-! H5_INDEX_UNKNOWN_F = -1 - Unknown index type
-! H5_INDEX_NAME_F - Index on names
-! H5_INDEX_CRT_ORDER_F - Index on creation order
-! H5_INDEX_N_F - Number of indices defined
+! NAME
+! h5adelete_by_idx_f
!
-! order - Order in which to iterate over index; Possible values are:
+! PURPOSE
+! Deletes an attribute from an object according to index order
!
-! H5_ITER_UNKNOWN_F - Unknown order
-! H5_ITER_INC_F - Increasing order
-! H5_ITER_DEC_F - Decreasing order
-! H5_ITER_NATIVE_F - No particular order, whatever is fastest
-! H5_ITER_N_F - Number of iteration orders
+! INPUTS
+! loc_id - Location or object identifier; may be dataset or group
+! obj_name - Name of object, relative to location, from which attribute is to be removed
+! idx_type - Type of index; Possible values are:
+! H5_INDEX_UNKNOWN_F = -1 - Unknown index type
+! H5_INDEX_NAME_F - Index on names
+! H5_INDEX_CRT_ORDER_F - Index on creation order
+! H5_INDEX_N_F - Number of indices defined
!
-! n - Offset within index
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! lapl_id - Link access property list
+! order - Order in which to iterate over index; Possible values are:
+! H5_ITER_UNKNOWN_F - Unknown order
+! H5_ITER_INC_F - Increasing order
+! H5_ITER_DEC_F - Decreasing order
+! H5_ITER_NATIVE_F - No particular order, whatever is fastest
+! H5_ITER_N_F - Number of iteration orders
!
-! Programmer: M.S. Breitenfeld
-! January, 2008
+! n - Offset within index
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! lapl_id - Link access property list
!
-! Modifications: N/A
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
!
-!----------------------------------------------------------------------
+! SOURCE
SUBROUTINE h5adelete_by_idx_f(loc_id, obj_name, idx_type, order, n, hdferr, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifer for object to which attribute is attached
@@ -2513,17 +891,14 @@ CONTAINS
! H5_ITER_DEC_F - Decreasing order
! H5_ITER_NATIVE_F - No particular order, whatever is fastest
! H5_ITER_N_F - Number of iteration orders
-!
INTEGER(HSIZE_T), INTENT(IN) :: n ! Offset within index
INTEGER, INTENT(OUT) :: hdferr ! Error code:
! 0 on success and -1 on failure
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
+!*****
INTEGER(SIZE_T) :: obj_namelen
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
-
INTEGER(HID_T) :: lapl_id_default
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5adelete_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, n, lapl_id_default)
USE H5GLOBAL
@@ -2549,45 +924,43 @@ CONTAINS
END SUBROUTINE h5adelete_by_idx_f
-!----------------------------------------------------------------------
-! Name: h5adelete_by_name_f
!
-! Purpose: Removes an attribute from a specified location
+!****s* H5A/h5adelete_by_name_f
!
-! Inputs:
-! loc_id - Identifer for object to which attribute is attached
-! obj_name - Name of attribute to open
-! attr_name - Attribute access property list
-! lapl_id - Link access property list
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5adelete_by_name_f
!
-! Programmer: M.S. Breitenfeld
-! January, 2008
+! PURPOSE
+! Removes an attribute from a specified location
!
-! Modifications: N/A
+! INPUTS
+! loc_id - Identifer for object to which attribute is attached
+! obj_name - Name of attribute to open
+! attr_name - Attribute access property list
+! lapl_id - Link access property list
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
!
-!----------------------------------------------------------------------
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+!
+! SOURCE
SUBROUTINE h5adelete_by_name_f(loc_id, obj_name, attr_name, hdferr, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifer for object to which attribute is attached
CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object, relative to location,
! from which attribute is to be removed
CHARACTER(LEN=*), INTENT(IN) :: attr_name ! Name of attribute to delete
- INTEGER, INTENT(OUT) :: hdferr ! Error code:
- ! 0 on success and -1 on failure
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
+!*****
INTEGER(SIZE_T) :: attr_namelen
INTEGER(SIZE_T) :: obj_namelen
INTEGER(HID_T) :: lapl_id_default
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5adelete_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, lapl_id_default)
USE H5GLOBAL
@@ -2614,32 +987,32 @@ CONTAINS
END SUBROUTINE h5adelete_by_name_f
-!----------------------------------------------------------------------
-! Name: h5aopen_by_idx_f
!
-! Purpose: Opens an existing attribute that is attached to an object specified by location and name
+!****s* H5A/h5aopen_by_idx_f
!
-! Inputs:
-! loc_id - Location of object to which attribute is attached
-! obj_name - Name of object to which attribute is attached, relative to location
-! idx_type - Type of index
-! order - Index traversal order
-! n - Attribute’s position in index
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! aapl_id - Attribute access property list
-! lapl_id - Link access property list
+! NAME
+! h5aopen_by_idx_f
!
-! Programmer: M.S. Breitenfeld
-! January, 2008
+! PURPOSE
+! Opens an existing attribute that is attached to an object specified by location and name
!
-! Modifications: N/A
+! INPUTS
+! loc_id - Location of object to which attribute is attached
+! obj_name - Name of object to which attribute is attached, relative to location
+! idx_type - Type of index
+! order - Index traversal order
+! n - Attribute’s position in index
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! aapl_id - Attribute access property list
+! lapl_id - Link access property list
!
-!----------------------------------------------------------------------
-
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+!
+! SOURCE
SUBROUTINE h5aopen_by_idx_f(loc_id, obj_name, idx_type, order, n, attr_id, hdferr, aapl_id, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier
@@ -2655,21 +1028,18 @@ CONTAINS
! H5_ITER_DEC_F - Decreasing order
! H5_ITER_NATIVE_F - No particular order, whatever is fastest
- INTEGER(HSIZE_T), INTENT(IN) :: n ! Attribute’s position in index
+ INTEGER(HSIZE_T), INTENT(IN) :: n ! Attribute’s position in index
INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code:
! 0 on success and -1 on failure
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: aapl_id ! Attribute access property list
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
-
+!*****
INTEGER(SIZE_T) :: obj_namelen
INTEGER(HID_T) :: aapl_id_default
INTEGER(HID_T) :: lapl_id_default
-!
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5aopen_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, n, &
aapl_id_default, lapl_id_default, attr_id)
@@ -2702,49 +1072,43 @@ CONTAINS
END SUBROUTINE h5aopen_by_idx_f
-!----------------------------------------------------------------------
-! Name: h5aget_info_f
-!
-! Purpose: Retrieves attribute information, by attribute identifier
-!
-! Inputs:
-! attr_id - attribute identifier
!
-! Outputs: NOTE: In C it is defined as a structure: H5A_info_t
+!****s* H5A/h5aget_info_f
!
-! corder_valid - indicates whether the creation order data is valid for this attribute
-! corder - is a positive integer containing the creation order of the attribute
-! cset - indicates the character set used for the attribute’s name
-! data_size - indicates the size, in the number of characters, of the attribute
+! NAME
+! h5aget_info_f
!
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! PURPOSE
+! Retrieves attribute information, by attribute identifier
!
-! Programmer: M. S. Breitenfeld
-! January, 2008
+! INPUTS
+! attr_id - attribute identifier
!
-! Modifications: N/A
+! OUTPUTS
+! NOTE: In C it is defined as a structure: H5A_info_t
!
-!----------------------------------------------------------------------
-
- SUBROUTINE h5aget_info_f(attr_id, f_corder_valid, corder, cset, data_size, hdferr)
+! corder_valid - indicates whether the creation order data is valid for this attribute
+! corder - is a positive integer containing the creation order of the attribute
+! cset - indicates the character set used for the attribute’s name
+! data_size - indicates the size, in the number of characters, of the attribute
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+! SOURCE
+ SUBROUTINE h5aget_info_f(attr_id, f_corder_valid, corder, cset, data_size, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
LOGICAL, INTENT(OUT) :: f_corder_valid ! Indicates whether the creation order data is valid for this attribute
INTEGER, INTENT(OUT) :: corder ! Is a positive integer containing the creation order of the attribute
- INTEGER, INTENT(OUT) :: cset ! Indicates the character set used for the attribute’s name
- INTEGER(HSIZE_T), INTENT(OUT) :: data_size ! Indicates the size, in the number of characters, of the attribute
+ INTEGER, INTENT(OUT) :: cset ! Indicates the character set used for the attribute’s name
+ INTEGER(HSIZE_T), INTENT(OUT) :: data_size ! Indicates the size, in the number of characters, of the attribute
INTEGER, INTENT(OUT) :: hdferr ! Error code:
! 0 on success and -1 on failure
-
+!*****
INTEGER :: corder_valid
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5aget_info_c(attr_id, corder_valid, corder, cset, data_size)
USE H5GLOBAL
@@ -2766,43 +1130,43 @@ CONTAINS
IF (corder_valid .EQ. 1) f_corder_valid =.TRUE.
-
END SUBROUTINE h5aget_info_f
-!----------------------------------------------------------------------
-! Name: h5aget_info_by_idx_f
!
-! Purpose: Retrieves attribute information, by attribute index position
+!****s* H5A/h5aget_info_by_idx_f
!
-! Inputs:
-! loc_id - Location of object to which attribute is attached
-! obj_name - Name of object to which attribute is attached, relative to location
-! idx_type - Type of index
-! order - Index traversal order
-! n - Attribute’s position in index
+! NAME
+! h5aget_info_by_idx_f
!
-! Outputs: NOTE: In C it is defined as a structure: H5A_info_t
-! corder_valid - indicates whether the creation order data is valid for this attribute
-! corder - is a positive integer containing the creation order of the attribute
-! cset - indicates the character set used for the attribute’s name
-! data_size - indicates the size, in the number of characters, of the attribute
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! lapl_id - Link access property list
+! PURPOSE
+! Retrieves attribute information, by attribute index position
!
-! Programmer: M. S. Breitenfeld
-! January, 2008
+! INPUTS
+! loc_id - Location of object to which attribute is attached
+! obj_name - Name of object to which attribute is attached, relative to location
+! idx_type - Type of index
+! order - Index traversal order
+! n - Attribute’s position in index
!
-! Modifications: N/A
+! OUTPUTS NOTE: In C it is defined as a structure: H5A_info_t
+! corder_valid - indicates whether the creation order data is valid for this attribute
+! corder - is a positive integer containing the creation order of the attribute
+! cset - indicates the character set used for the attribute’s name
+! data_size - indicates the size, in the number of characters, of the attribute
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! lapl_id - Link access property list
!
-!----------------------------------------------------------------------
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+!
+! SOURCE
SUBROUTINE h5aget_info_by_idx_f(loc_id, obj_name, idx_type, order, n, &
f_corder_valid, corder, cset, data_size, hdferr, lapl_id)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier
- CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object to which attribute is attached
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier
+ CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object to which attribute is attached
INTEGER, INTENT(IN) :: idx_type ! Type of index; Possible values are:
! H5_INDEX_UNKNOWN_F - Unknown index type
! H5_INDEX_NAME_F - Index on names
@@ -2814,22 +1178,21 @@ CONTAINS
! H5_ITER_DEC_F - Decreasing order
! H5_ITER_NATIVE_F - No particular order, whatever is fastest
- INTEGER(HSIZE_T), INTENT(IN) :: n ! Attribute’s position in index
+ INTEGER(HSIZE_T), INTENT(IN) :: n ! Attribute’s position in index
LOGICAL, INTENT(OUT) :: f_corder_valid ! Indicates whether the creation order data is valid for this attribute
INTEGER, INTENT(OUT) :: corder ! Is a positive integer containing the creation order of the attribute
- INTEGER, INTENT(OUT) :: cset ! Indicates the character set used for the attribute’s name
- INTEGER(HSIZE_T), INTENT(OUT) :: data_size ! Indicates the size, in the number of characters, of the attribute
+ INTEGER, INTENT(OUT) :: cset ! Indicates the character set used for the attribute’s name
+ INTEGER(HSIZE_T), INTENT(OUT) :: data_size ! Indicates the size, in the number of characters, of the attribute
INTEGER, INTENT(OUT) :: hdferr ! Error code:
! 0 on success and -1 on failure
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
+!*****
INTEGER :: corder_valid
INTEGER(SIZE_T) :: obj_namelen
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
INTEGER(HID_T) :: lapl_id_default
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5aget_info_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, n, lapl_id_default, &
corder_valid, corder, cset, data_size)
@@ -2866,33 +1229,34 @@ CONTAINS
END SUBROUTINE h5aget_info_by_idx_f
-!----------------------------------------------------------------------
-! Name: h5aget_info_by_name_f
!
-! Purpose: Retrieves attribute information, by attribute name
+!****s* H5A/h5aget_info_by_name_f
+!
+! NAME
+! h5aget_info_by_name_f
!
-! Inputs:
-! loc_id - Location of object to which attribute is attached
-! obj_name - Name of object to which attribute is attached, relative to location
-! attr_name - Attribute name
+! PURPOSE
+! Retrieves attribute information, by attribute name
!
-! Outputs: NOTE: In C it is defined as a structure: H5A_info_t
-! corder_valid - indicates whether the creation order data is valid for this attribute
-! corder - is a positive integer containing the creation order of the attribute
-! cset - indicates the character set used for the attribute’s name
-! data_size - indicates the size, in the number of characters, of the attribute
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! lapl_id - Link access property list
+! INPUTS
+! loc_id - Location of object to which attribute is attached
+! obj_name - Name of object to which attribute is attached, relative to location
+! attr_name - Attribute name
!
-! Programmer: M. S. Breitenfeld
-! January, 2008
+! OUTPUTS NOTE: In C it is defined as a structure: H5A_info_t
+! corder_valid - indicates whether the creation order data is valid for this attribute
+! corder - is a positive integer containing the creation order of the attribute
+! cset - indicates the character set used for the attribute’s name
+! data_size - indicates the size, in the number of characters, of the attribute
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! lapl_id - Link access property list
!
-! Modifications: N/A
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
!
-!----------------------------------------------------------------------
+! SOURCE
SUBROUTINE h5aget_info_by_name_f(loc_id, obj_name, attr_name, &
f_corder_valid, corder, cset, data_size, hdferr, lapl_id)
IMPLICIT NONE
@@ -2907,15 +1271,13 @@ CONTAINS
INTEGER(HSIZE_T), INTENT(OUT) :: data_size ! Indicates the size, in the number of characters, of the attribute
INTEGER, INTENT(OUT) :: hdferr ! Error code:
! 0 on success and -1 on failure
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
+!*****
INTEGER :: corder_valid
INTEGER(SIZE_T) :: obj_namelen
INTEGER(SIZE_T) :: attr_namelen
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
INTEGER(HID_T) :: lapl_id_default
-
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5aget_info_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, lapl_id_default, &
corder_valid, corder, cset, data_size)
@@ -2952,52 +1314,49 @@ CONTAINS
END SUBROUTINE h5aget_info_by_name_f
-!----------------------------------------------------------------------
-! Name: H5Acreate_by_name_f
!
-! Purpose: Creates an attribute attached to a specified object
+!****s* H5A/h5acreate_by_name_f
!
-! Inputs:
-! loc_id - Location or object identifier; may be dataset or group
-! obj_name - Name, relative to loc_id, of object that attribute is to be attached to
-! attr_name - Attribute name
-! type_id - Attribute datatype identifier
-! space_id - Attribute dataspace identifier
+! NAME
+! h5acreate_by_name_f
!
-! Outputs:
-! attr - an attribute identifier
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! acpl_id - Attribute creation property list identifier (Currently not used.)
-! aapl_id - Attribute access property list identifier (Currently not used.)
-! lapl_id - Link access property list
+! PURPOSE
+! Creates an attribute attached to a specified object
!
-! Programmer: M. S. Breitenfeld
-! February, 2008
+! INPUTS
+! loc_id - Location or object identifier; may be dataset or group
+! obj_name - Name, relative to loc_id, of object that attribute is to be attached to
+! attr_name - Attribute name
+! type_id - Attribute datatype identifier
+! space_id - Attribute dataspace identifier
!
-! Modifications: N/A
+! OUTPUTS
+! attr - an attribute identifier
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! acpl_id - Attribute creation property list identifier (Currently not used.)
+! aapl_id - Attribute access property list identifier (Currently not used.)
+! lapl_id - Link access property list
!
-!----------------------------------------------------------------------
+! AUTHOR
+! M. Scot Breitenfeld
+! February, 2008
+! SOURCE
SUBROUTINE h5acreate_by_name_f(loc_id, obj_name, attr_name, type_id, space_id, attr, hdferr, &
acpl_id, aapl_id, lapl_id)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier
- CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object to which attribute is attached
- CHARACTER(LEN=*), INTENT(IN) :: attr_name ! Attribute name
-
- INTEGER(HID_T), INTENT(IN) :: type_id ! Attribute datatype identifier
- INTEGER(HID_T), INTENT(IN) :: space_id ! Attribute dataspace identifier
-
- INTEGER(HID_T), INTENT(OUT) :: attr ! an attribute identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code:
- ! 0 on success and -1 on failure
-
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: acpl_id ! Attribute creation property list identifier (Currently not used.)
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: aapl_id ! Attribute access property list identifier (Currently not used.)
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
-
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: obj_name
+ CHARACTER(LEN=*), INTENT(IN) :: attr_name
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER(HID_T), INTENT(OUT) :: attr
+ INTEGER, INTENT(OUT) :: hdferr
+
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: acpl_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: aapl_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: lapl_id
+!*****
INTEGER(SIZE_T) :: obj_namelen
INTEGER(SIZE_T) :: attr_namelen
@@ -3005,8 +1364,6 @@ CONTAINS
INTEGER(HID_T) :: aapl_id_default
INTEGER(HID_T) :: lapl_id_default
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5acreate_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, &
type_id, space_id, acpl_id_default, aapl_id_default, lapl_id_default, attr)
@@ -3045,41 +1402,39 @@ CONTAINS
type_id, space_id, acpl_id_default, aapl_id_default, lapl_id_default, attr)
END SUBROUTINE h5acreate_by_name_f
-!----------------------------------------------------------------------
-! Name: H5Aexists_f
!
-! Purpose: Determines whether an attribute with a given name exists on an object
+!****s* H5A/H5Aexists_f
+!
+! NAME
+! H5Aexists_f
!
-! Inputs:
-! obj_id - Object identifier
-! attr_name - Attribute name
+! PURPOSE
+! Determines whether an attribute with a given name exists on an object
!
-! Outputs:
-! attr_exists - attribute exists status
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! INPUTS
+! obj_id - Object identifier
+! attr_name - Attribute name
!
-! Programmer: M. S. Breitenfeld
-! February, 2008
+! OUTPUTS
+! attr_exists - attribute exists status
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Modifications: N/A
+! AUTHOR
+! M. Scot Breitenfeld
+! February, 2008
!
-!----------------------------------------------------------------------
+! SOURCE
SUBROUTINE h5aexists_f(obj_id, attr_name, attr_exists, hdferr)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
+ INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
CHARACTER(LEN=*), INTENT(IN) :: attr_name ! Attribute name
- LOGICAL, INTENT(OUT) :: attr_exists ! .TRUE. if exists, .FALSE. otherwise
- INTEGER, INTENT(OUT) :: hdferr ! Error code:
- ! 0 on success and -1 on failure
+ LOGICAL, INTENT(OUT) :: attr_exists ! .TRUE. if exists, .FALSE. otherwise
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
+!*****
INTEGER(HID_T) :: attr_exists_c
INTEGER(SIZE_T) :: attr_namelen
-!
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+
INTERFACE
INTEGER FUNCTION h5aexists_c(obj_id, attr_name, attr_namelen, attr_exists_c)
USE H5GLOBAL
@@ -3103,55 +1458,55 @@ CONTAINS
END SUBROUTINE h5aexists_f
-!----------------------------------------------------------------------
-! Name: H5Aexists_by_name_f
!
-! Purpose: Determines whether an attribute with a given name exists on an object
+!****s* H5A/H5Aexists_by_name_f
+!
+! NAME
+! H5Aexists_by_name_f
!
-! Inputs:
-! loc_id - Location identifier
-! obj_name - Object name either relative to loc_id, absolute from the file’s root group, or '.' (a dot)
-! attr_name - Attribute name
+! PURPOSE
+! Determines whether an attribute with a given name exists on an object
!
-! Outputs:
-! attr_exists - attribute exists status
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! lapl_id - Link access property list identifier
+! INPUTS
+! loc_id - Location identifier
+! obj_name - Object name either relative to loc_id, absolute from the file’s root group, or '.' (a dot)
+! attr_name - Attribute name
!
-! Programmer: M. S. Breitenfeld
-! February, 2008
+! OUTPUTS
+! attr_exists - attribute exists status
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! lapl_id - Link access property list identifier
!
-! Modifications: N/A
+! AUTHOR
+! M. Scot Breitenfeld
+! February, 2008
!
-!----------------------------------------------------------------------
+! SOURCE
SUBROUTINE h5aexists_by_name_f(loc_id, obj_name, attr_name, attr_exists, hdferr, lapl_id)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! Location identifier
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Location identifier
CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Object name either relative to loc_id,
! absolute from the file’s root group, or '.'
CHARACTER(LEN=*), INTENT(IN) :: attr_name ! Attribute name
LOGICAL, INTENT(OUT) :: attr_exists ! .TRUE. if exists, .FALSE. otherwise
- INTEGER, INTENT(OUT) :: hdferr ! Error code:
- ! 0 on success and -1 on failure
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list identifier
+!*****
INTEGER :: attr_exists_c
INTEGER(SIZE_T) :: obj_namelen
INTEGER(SIZE_T) :: attr_namelen
INTEGER(HID_T) :: lapl_id_default
-!
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+
INTERFACE
INTEGER FUNCTION h5aexists_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, lapl_id_default, attr_exists_c)
USE H5GLOBAL
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5AEXISTS_BY_NAME_C'::h5aexists_by_name_c
!DEC$ENDIF
- !DEC$ATTRIBUTES reference :: obj_name, attr_name
+ !DEC$ATTRIBUTES reference :: obj_name, attr_name
INTEGER(HID_T), INTENT(IN) :: loc_id
CHARACTER(LEN=*), INTENT(IN) :: obj_name
INTEGER(SIZE_T), INTENT(IN) :: obj_namelen
@@ -3174,31 +1529,31 @@ CONTAINS
IF(attr_exists_c.GT.0) attr_exists = .TRUE.
END SUBROUTINE h5aexists_by_name_f
-!----------------------------------------------------------------------
-! Name: H5Aopen_by_name_f
!
-! Purpose: Opens an attribute for an object by object name and attribute name.
+!****s* H5A/H5Aopen_by_name_f
!
-! Inputs:
-! loc_id - Location from which to find object to which attribute is attached
-! obj_name - Object name either relative to loc_id, absolute from the file’s root group, or '.' (a dot)
-! attr_name - Attribute name
+! NAME
+! H5Aopen_by_name_f
!
-! Outputs:
-! attr_id - attribute identifier
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! aapl_id - Attribute access property list (Currently unused; should be passed in as H5P_DEFAULT.)
-! lapl_id - Link access property list identifier
+! PURPOSE
+! Opens an attribute for an object by object name and attribute name.
!
-! Programmer: M. S. Breitenfeld
-! February, 2008
+! INPUTS
+! loc_id - Location from which to find object to which attribute is attached
+! obj_name - Object name either relative to loc_id, absolute from the file’s root group, or '.' (a dot)
+! attr_name - Attribute name
!
-! Modifications: N/A
+! OUTPUTS
+! attr_id - attribute identifier
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! aapl_id - Attribute access property list (Currently unused; should be passed in as H5P_DEFAULT.)
+! lapl_id - Link access property list identifier
!
-!----------------------------------------------------------------------
+! AUTHOR
+! M. Scot Breitenfeld
+! February, 2008
+! SOURCE
SUBROUTINE h5aopen_by_name_f(loc_id, obj_name, attr_name, attr_id, hdferr, aapl_id, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Location identifier
@@ -3211,15 +1566,13 @@ CONTAINS
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: aapl_id ! Attribute access property list
! (Currently unused; should be passed in as H5P_DEFAULT_F)
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list identifier
-
+!*****
INTEGER(HID_T) :: aapl_id_default
INTEGER(HID_T) :: lapl_id_default
INTEGER(SIZE_T) :: obj_namelen
INTEGER(SIZE_T) :: attr_namelen
-!
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+
INTERFACE
INTEGER FUNCTION h5aopen_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, &
aapl_id_default, lapl_id_default, attr_id)
@@ -3252,28 +1605,33 @@ CONTAINS
END SUBROUTINE h5aopen_by_name_f
-!----------------------------------------------------------------------
-! Name: h5arename_f
!
-! Purpose: Renames an attribute
+!****s* H5A/h5arename_f
!
-! Inputs:
-! loc_id - Location or object identifier; may be dataset or group
-! old_attr_name - Prior attribute name
-! new_attr_name - New attribute name
+! NAME
+! h5arename_f
!
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
+! PURPOSE
+! Renames an attribute
!
-! Programmer: M.S. Breitenfeld
-! January, 2008
+! INPUTS
+! loc_id - Location or object identifier; may be dataset or group
+! old_attr_name - Prior attribute name
+! new_attr_name - New attribute name
+!
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+!
+! HISTORY
+! N/A
!
-! Modifications: N/A
!
-!----------------------------------------------------------------------
+! SOURCE
SUBROUTINE h5arename_f(loc_id, old_attr_name, new_attr_name, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier
@@ -3281,11 +1639,10 @@ CONTAINS
CHARACTER(LEN=*), INTENT(IN) :: new_attr_name ! New attribute name
INTEGER, INTENT(OUT) :: hdferr ! Error code:
! 0 on success and -1 on failure
+!*****
INTEGER(SIZE_T) :: old_attr_namelen
INTEGER(SIZE_T) :: new_attr_namelen
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5arename_c(loc_id, &
old_attr_name, old_attr_namelen, new_attr_name, new_attr_namelen)
diff --git a/fortran/src/H5Aff_F03.f90 b/fortran/src/H5Aff_F03.f90
new file mode 100644
index 0000000..8565661
--- /dev/null
+++ b/fortran/src/H5Aff_F03.f90
@@ -0,0 +1,1418 @@
+!****h* ROBODoc/H5A (F03)
+! NAME
+! H5A_PROVISIONAL
+!
+! FILE
+! src/fortran/src/H5Aff_F03.f90
+!
+! PURPOSE
+! This file contains Fortran 90 and Fortran 2003 interfaces for H5A functions.
+! It contains the same functions as H5Aff_F90.f90 but includes the
+! Fortran 2003 functions and the interface listings. This file will be compiled
+! instead of H5Aff_F90.f90 if Fortran 2003 functions are enabled.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! NOTES
+!
+! (A) C_LOC and character strings according to the Fortran 2003 standard:
+!
+! 15.1.2.5 C_LOC(X)
+!
+! Argument. X shall either
+!
+! (1) have interoperable type and type parameters and be
+! (a) a variable that has the TARGET attribute and is interoperable,
+! (b) an allocated allocatable variable that has the TARGET attribute
+! and is not an array of zero size, or
+! (c) an associated scalar pointer, or
+! (2) be a nonpolymorphic scalar, have no length type parameters, and be
+! (a) a nonallocatable, nonpointer variable that has the TARGET attribute,
+! (b) an allocated allocatable variable that has the TARGET attribute, or
+! (c) an associated pointer.
+!
+! - When X is a character, for interoperability the standard is:
+!
+! 15.2.1 Interoperability of intrinsic types
+!
+! ...if the type is character, interoperability also requires that the length type parameter
+! be omitted or be specified by an initialization expression whose value is one.
+!
+! THEREFORE compilers that have not extended the standard require
+!
+! CHARACTER(LEN=1), TARGET :: chr
+! or
+! CHARACTER, TARGET :: chr
+!
+! (B)
+! *** IMPORTANT ***
+! If you add a new H5A function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
+!
+!*****
+
+MODULE H5A_PROVISIONAL
+
+ USE H5GLOBAL
+!
+! On Windows there are no big (integer*8) integers, so overloading
+! for bug #670 does not work. I have to use DEC compilation directives to make
+! Windows DEC Visual Fortran and OSF compilers happy and do right things.
+! 05/01/02 EP
+!
+ INTERFACE h5awrite_f
+ MODULE PROCEDURE h5awrite_integer_scalar
+ MODULE PROCEDURE h5awrite_integer_1
+ MODULE PROCEDURE h5awrite_integer_2
+ MODULE PROCEDURE h5awrite_integer_3
+ MODULE PROCEDURE h5awrite_integer_4
+ MODULE PROCEDURE h5awrite_integer_5
+ MODULE PROCEDURE h5awrite_integer_6
+ MODULE PROCEDURE h5awrite_integer_7
+ MODULE PROCEDURE h5awrite_char_scalar
+ MODULE PROCEDURE h5awrite_char_1
+ MODULE PROCEDURE h5awrite_char_2
+ MODULE PROCEDURE h5awrite_char_3
+ MODULE PROCEDURE h5awrite_char_4
+ MODULE PROCEDURE h5awrite_char_5
+ MODULE PROCEDURE h5awrite_char_6
+ MODULE PROCEDURE h5awrite_char_7
+ MODULE PROCEDURE h5awrite_real_scalar
+ MODULE PROCEDURE h5awrite_real_1
+ MODULE PROCEDURE h5awrite_real_2
+ MODULE PROCEDURE h5awrite_real_3
+ MODULE PROCEDURE h5awrite_real_4
+ MODULE PROCEDURE h5awrite_real_5
+ MODULE PROCEDURE h5awrite_real_6
+ MODULE PROCEDURE h5awrite_real_7
+ ! This is the preferred way to call h5awrite
+ ! by passing an address
+ MODULE PROCEDURE h5awrite_ptr
+
+ END INTERFACE
+
+ INTERFACE h5aread_f
+
+ MODULE PROCEDURE h5aread_integer_scalar
+ MODULE PROCEDURE h5aread_integer_1
+ MODULE PROCEDURE h5aread_integer_2
+ MODULE PROCEDURE h5aread_integer_3
+ MODULE PROCEDURE h5aread_integer_4
+ MODULE PROCEDURE h5aread_integer_5
+ MODULE PROCEDURE h5aread_integer_6
+ MODULE PROCEDURE h5aread_integer_7
+ MODULE PROCEDURE h5aread_char_scalar
+ MODULE PROCEDURE h5aread_char_1
+ MODULE PROCEDURE h5aread_char_2
+ MODULE PROCEDURE h5aread_char_3
+ MODULE PROCEDURE h5aread_char_4
+ MODULE PROCEDURE h5aread_char_5
+ MODULE PROCEDURE h5aread_char_6
+ MODULE PROCEDURE h5aread_char_7
+ MODULE PROCEDURE h5aread_real_scalar
+ MODULE PROCEDURE h5aread_real_1
+ MODULE PROCEDURE h5aread_real_2
+ MODULE PROCEDURE h5aread_real_3
+ MODULE PROCEDURE h5aread_real_4
+ MODULE PROCEDURE h5aread_real_5
+ MODULE PROCEDURE h5aread_real_6
+ MODULE PROCEDURE h5aread_real_7
+
+ ! This is the preferred way to call h5aread
+ ! by passing an address
+ MODULE PROCEDURE h5aread_ptr
+
+ END INTERFACE
+
+! Interface for the function used to pass the C pointer of the buffer
+! to the C H5Awrite routine
+
+ INTERFACE
+ INTEGER FUNCTION h5awrite_f_c(attr_id, mem_type_id, buf)
+ USE H5GLOBAL
+ USE, INTRINSIC :: ISO_C_BINDING
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_F_C'::h5awrite_f_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ TYPE(C_PTR), VALUE :: buf
+ END FUNCTION h5awrite_f_c
+ END INTERFACE
+
+! Interface for the function used to pass the C pointer of the buffer
+! to the C H5Aread routine
+
+ INTERFACE
+ INTEGER FUNCTION h5aread_f_c(attr_id, mem_type_id, buf)
+ USE H5GLOBAL
+ USE, INTRINSIC :: ISO_C_BINDING
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_F_C'::h5aread_f_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ TYPE(C_PTR), VALUE :: buf
+ END FUNCTION h5aread_f_c
+ END INTERFACE
+
+CONTAINS
+
+ SUBROUTINE h5awrite_integer_scalar(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE h5awrite_integer_scalar
+
+ SUBROUTINE h5awrite_integer_1(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN) , &
+ DIMENSION(dims(1)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5awrite_integer_1
+
+
+ SUBROUTINE h5awrite_integer_2(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN) , &
+ DIMENSION(dims(1),dims(2)), TARGET :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE h5awrite_integer_2
+
+ SUBROUTINE h5awrite_integer_3(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN), DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE h5awrite_integer_3
+
+
+ SUBROUTINE h5awrite_integer_4(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims! Array to story buf dimension sizes
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE h5awrite_integer_4
+
+
+ SUBROUTINE h5awrite_integer_5(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE h5awrite_integer_5
+
+
+ SUBROUTINE h5awrite_integer_6(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5awrite_integer_6
+
+
+ SUBROUTINE h5awrite_integer_7(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN), DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), &
+ TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE h5awrite_integer_7
+
+
+ SUBROUTINE h5awrite_real_scalar(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5awrite_real_scalar
+
+ SUBROUTINE h5awrite_real_1(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE h5awrite_real_1
+
+
+ SUBROUTINE h5awrite_real_2(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)), TARGET :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE h5awrite_real_2
+
+
+ SUBROUTINE h5awrite_real_3(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5awrite_real_3
+
+
+ SUBROUTINE h5awrite_real_4(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5awrite_real_4
+
+
+ SUBROUTINE h5awrite_real_5(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5awrite_real_5
+
+
+ SUBROUTINE h5awrite_real_6(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5awrite_real_6
+
+
+ SUBROUTINE h5awrite_real_7(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5awrite_real_7
+
+
+ SUBROUTINE h5awrite_double_scalar(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(IN), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5awrite_double_scalar
+
+ SUBROUTINE h5awrite_double_1(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5awrite_double_1
+
+
+ SUBROUTINE h5awrite_double_2(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5awrite_double_2
+
+
+ SUBROUTINE h5awrite_double_3(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5awrite_double_3
+
+
+ SUBROUTINE h5awrite_double_4(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5awrite_double_4
+
+
+ SUBROUTINE h5awrite_double_5(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5awrite_double_5
+
+
+ SUBROUTINE h5awrite_double_6(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE h5awrite_double_6
+
+
+ SUBROUTINE h5awrite_double_7(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5awrite_double_7
+
+ SUBROUTINE h5awrite_char_scalar(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ CALL h5awrite_char_scalar_fix(attr_id, memtype_id, buf, LEN(buf), dims, hdferr)
+
+ END SUBROUTINE h5awrite_char_scalar
+
+ SUBROUTINE h5awrite_char_scalar_fix(attr_id, memtype_id, buf, buf_len, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN) :: buf_len
+ CHARACTER(LEN=buf_len), INTENT(IN), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1:1))
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE h5awrite_char_scalar_fix
+
+
+
+ SUBROUTINE h5awrite_char_1(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN), DIMENSION(dims(1)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1)(1:1))
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE h5awrite_char_1
+
+ SUBROUTINE h5awrite_char_2(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1)(1:1))
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE h5awrite_char_2
+
+ SUBROUTINE h5awrite_char_3(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1)(1:1))
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE h5awrite_char_3
+
+ SUBROUTINE h5awrite_char_4(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1)(1:1))
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE h5awrite_char_4
+
+ SUBROUTINE h5awrite_char_5(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1,1)(1:1))
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE h5awrite_char_5
+
+
+ SUBROUTINE h5awrite_char_6(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1,1,1)(1:1))
+
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE h5awrite_char_6
+
+ SUBROUTINE h5awrite_char_7(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1,1,1,1)(1:1))
+ hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE h5awrite_char_7
+
+!****s* H5A (F03)/h5aread_f
+!
+! NAME
+! h5aread_f
+!
+! PURPOSE
+! Reads an attribute.
+!
+! INPUTS
+! attr_id - attribute identifier
+! memtype_id - attribute memory type identifier
+! dims - 1D array of size 7, stores sizes of the
+! - buf array dimensions.
+! OUTPUTS
+! buf - buffer to read attribute data in
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+! dims parameter was added to make code portable;
+! Aprile 4, 2001
+!
+! Changed buf intent to INOUT to be consistant
+! with how the C functions handles it. The pg
+! compiler will return 0 if a buf value is not set.
+! February, 2008
+!
+! NOTES
+! This function is overloaded to write INTEGER,
+! REAL, DOUBLE PRECISION and CHARACTER buffers
+! up to 7 dimensions.
+!
+!*****
+ SUBROUTINE h5aread_integer_scalar(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(INOUT), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5aread_integer_scalar
+
+ SUBROUTINE h5aread_integer_1(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(INOUT), DIMENSION(dims(1)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5aread_integer_1
+
+
+ SUBROUTINE h5aread_integer_2(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(INOUT),DIMENSION(dims(1),dims(2)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5aread_integer_2
+
+
+ SUBROUTINE h5aread_integer_3(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5aread_integer_3
+
+
+ SUBROUTINE h5aread_integer_4(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5aread_integer_4
+
+
+ SUBROUTINE h5aread_integer_5(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5aread_integer_5
+
+
+ SUBROUTINE h5aread_integer_6(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5aread_integer_6
+
+
+ SUBROUTINE h5aread_integer_7(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5aread_integer_7
+
+
+ SUBROUTINE h5aread_real_scalar(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(INOUT), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5aread_real_scalar
+
+ SUBROUTINE h5aread_real_1(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5aread_real_1
+
+
+ SUBROUTINE h5aread_real_2(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5aread_real_2
+
+
+ SUBROUTINE h5aread_real_3(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5aread_real_3
+
+
+ SUBROUTINE h5aread_real_4(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5aread_real_4
+
+
+ SUBROUTINE h5aread_real_5(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5aread_real_5
+
+
+ SUBROUTINE h5aread_real_6(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5aread_real_6
+
+
+ SUBROUTINE h5aread_real_7(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5aread_real_7
+
+
+ SUBROUTINE h5aread_double_scalar(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(INOUT), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5aread_double_scalar
+
+ SUBROUTINE h5aread_double_1(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5aread_double_1
+
+
+ SUBROUTINE h5aread_double_2(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5aread_double_2
+
+
+ SUBROUTINE h5aread_double_3(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5aread_double_3
+
+
+ SUBROUTINE h5aread_double_4(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5aread_double_4
+
+
+ SUBROUTINE h5aread_double_5(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5aread_double_5
+
+
+ SUBROUTINE h5aread_double_6(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5aread_double_6
+
+
+ SUBROUTINE h5aread_double_7(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE h5aread_double_7
+
+
+ SUBROUTINE h5aread_char_scalar(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(INOUT) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ CALL h5aread_char_scalar_fix(attr_id, memtype_id, buf, LEN(buf), dims, hdferr)
+
+ END SUBROUTINE h5aread_char_scalar
+
+ SUBROUTINE h5aread_char_scalar_fix(attr_id, memtype_id, buf, buf_len, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN) :: buf_len
+ CHARACTER(LEN=buf_len), INTENT(INOUT), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1:1))
+
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE h5aread_char_scalar_fix
+
+ SUBROUTINE h5aread_char_1(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1)(1:1))
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE h5aread_char_1
+
+
+ SUBROUTINE h5aread_char_2(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1)(1:1))
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE h5aread_char_2
+
+
+ SUBROUTINE h5aread_char_3(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1)(1:1))
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE h5aread_char_3
+
+ SUBROUTINE h5aread_char_4(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1)(1:1))
+
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE h5aread_char_4
+
+ SUBROUTINE h5aread_char_5(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1,1)(1:1))
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE h5aread_char_5
+
+
+ SUBROUTINE h5aread_char_6(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1,1,1)(1:1))
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE h5aread_char_6
+
+
+ SUBROUTINE h5aread_char_7(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1,1,1,1)(1:1))
+ hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE h5aread_char_7
+
+ SUBROUTINE h5awrite_ptr(attr_id, mem_type_id, buf, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ TYPE(C_PTR), INTENT(IN), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ hdferr = h5awrite_f_c(attr_id, mem_type_id, buf)
+
+ END SUBROUTINE h5awrite_ptr
+
+ SUBROUTINE h5aread_ptr(attr_id, mem_type_id, buf, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ TYPE(C_PTR), INTENT(IN), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ hdferr = h5aread_f_c(attr_id, mem_type_id, buf)
+
+ END SUBROUTINE h5aread_ptr
+
+END MODULE H5A_PROVISIONAL
+
+
diff --git a/fortran/src/H5Aff_F90.f90 b/fortran/src/H5Aff_F90.f90
new file mode 100644
index 0000000..7e14f7a
--- /dev/null
+++ b/fortran/src/H5Aff_F90.f90
@@ -0,0 +1,1618 @@
+!****h* ROBODoc/H5A (F90)
+!
+! NAME
+! H5A_PROVISIONAL
+!
+! FILE
+! fortran/src/H5Aff_F90.f90
+!
+! PURPOSE
+!
+! This file contains Fortran 90 interfaces for H5A functions. It contains
+! the same functions as H5Aff_F03.f90 but excludes the Fortran 2003 functions
+! and the interface listings. This file will be compiled instead of H5Aff_F03.f90
+! if Fortran 2003 functions are not enabled.
+!
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! NOTES
+! *** IMPORTANT ***
+! If you add a new H5A function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
+!
+!*****
+
+MODULE H5A_PROVISIONAL
+
+ USE H5GLOBAL
+ !
+ !On Windows there are no big (integer*8) integers, so overloading
+ !for bug #670 does not work. I have to use DEC compilation directives to make
+ !Windows DEC Visual Fortran and OSF compilers happy and do right things.
+ ! 05/01/02 EP
+ !
+ INTERFACE h5awrite_f
+
+ MODULE PROCEDURE h5awrite_integer_scalar
+ MODULE PROCEDURE h5awrite_integer_1
+ MODULE PROCEDURE h5awrite_integer_2
+ MODULE PROCEDURE h5awrite_integer_3
+ MODULE PROCEDURE h5awrite_integer_4
+ MODULE PROCEDURE h5awrite_integer_5
+ MODULE PROCEDURE h5awrite_integer_6
+ MODULE PROCEDURE h5awrite_integer_7
+ MODULE PROCEDURE h5awrite_char_scalar
+ MODULE PROCEDURE h5awrite_char_1
+ MODULE PROCEDURE h5awrite_char_2
+ MODULE PROCEDURE h5awrite_char_3
+ MODULE PROCEDURE h5awrite_char_4
+ MODULE PROCEDURE h5awrite_char_5
+ MODULE PROCEDURE h5awrite_char_6
+ MODULE PROCEDURE h5awrite_char_7
+ MODULE PROCEDURE h5awrite_real_scalar
+ MODULE PROCEDURE h5awrite_real_1
+ MODULE PROCEDURE h5awrite_real_2
+ MODULE PROCEDURE h5awrite_real_3
+ MODULE PROCEDURE h5awrite_real_4
+ MODULE PROCEDURE h5awrite_real_5
+ MODULE PROCEDURE h5awrite_real_6
+ MODULE PROCEDURE h5awrite_real_7
+
+ END INTERFACE
+
+ INTERFACE h5aread_f
+
+ MODULE PROCEDURE h5aread_integer_scalar
+ MODULE PROCEDURE h5aread_integer_1
+ MODULE PROCEDURE h5aread_integer_2
+ MODULE PROCEDURE h5aread_integer_3
+ MODULE PROCEDURE h5aread_integer_4
+ MODULE PROCEDURE h5aread_integer_5
+ MODULE PROCEDURE h5aread_integer_6
+ MODULE PROCEDURE h5aread_integer_7
+ MODULE PROCEDURE h5aread_char_scalar
+ MODULE PROCEDURE h5aread_char_1
+ MODULE PROCEDURE h5aread_char_2
+ MODULE PROCEDURE h5aread_char_3
+ MODULE PROCEDURE h5aread_char_4
+ MODULE PROCEDURE h5aread_char_5
+ MODULE PROCEDURE h5aread_char_6
+ MODULE PROCEDURE h5aread_char_7
+ MODULE PROCEDURE h5aread_real_scalar
+ MODULE PROCEDURE h5aread_real_1
+ MODULE PROCEDURE h5aread_real_2
+ MODULE PROCEDURE h5aread_real_3
+ MODULE PROCEDURE h5aread_real_4
+ MODULE PROCEDURE h5aread_real_5
+ MODULE PROCEDURE h5aread_real_6
+ MODULE PROCEDURE h5aread_real_7
+ END INTERFACE
+
+CONTAINS
+
+ SUBROUTINE h5awrite_integer_scalar(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ INTERFACE
+ INTEGER FUNCTION h5awrite_integer_s_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_INTEGER_S_C'::h5awrite_integer_s_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(IN)::buf
+ END FUNCTION h5awrite_integer_s_c
+ END INTERFACE
+
+ hdferr = h5awrite_integer_s_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_integer_scalar
+
+ SUBROUTINE h5awrite_integer_1(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN) , &
+ DIMENSION(dims(1)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! INTEGER, EXTERNAL :: h5awrite_integer_1_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awrite_integer_1_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_INTEGER_1_C'::h5awrite_integer_1_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(IN), DIMENSION(dims(1)) :: buf
+ END FUNCTION h5awrite_integer_1_c
+ END INTERFACE
+
+ hdferr = h5awrite_integer_1_c(attr_id, memtype_id, buf, dims)
+
+ END SUBROUTINE h5awrite_integer_1
+
+
+ SUBROUTINE h5awrite_integer_2(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN) , &
+ DIMENSION(dims(1),dims(2)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5awrite_integer_2_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awrite_integer_2_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_INTEGER_2_C'::h5awrite_integer_2_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(IN), DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5awrite_integer_2_c
+ END INTERFACE
+
+ hdferr = h5awrite_integer_2_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_integer_2
+
+
+ SUBROUTINE h5awrite_integer_3(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN), DIMENSION(dims(1),dims(2),dims(3)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5awrite_integer_3_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awrite_integer_3_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_INTEGER_3_C'::h5awrite_integer_3_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(IN), DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5awrite_integer_3_c
+ END INTERFACE
+
+ hdferr = h5awrite_integer_3_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_integer_3
+
+
+ SUBROUTINE h5awrite_integer_4(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5awrite_integer_4_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awrite_integer_4_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_INTEGER_4_C'::h5awrite_integer_4_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(IN), DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5awrite_integer_4_c
+ END INTERFACE
+
+ hdferr = h5awrite_integer_4_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_integer_4
+
+
+ SUBROUTINE h5awrite_integer_5(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN), DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5awrite_integer_5_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awrite_integer_5_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_INTEGER_5_C'::h5awrite_integer_5_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(IN), DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5awrite_integer_5_c
+ END INTERFACE
+
+ hdferr = h5awrite_integer_5_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_integer_5
+
+
+ SUBROUTINE h5awrite_integer_6(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5awrite_integer_6_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awrite_integer_6_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_INTEGER_6_C'::h5awrite_integer_6_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5awrite_integer_6_c
+ END INTERFACE
+
+ hdferr = h5awrite_integer_6_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_integer_6
+
+
+ SUBROUTINE h5awrite_integer_7(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5awrite_integer_7_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awrite_integer_7_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_INTEGER_7_C'::h5awrite_integer_7_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5awrite_integer_7_c
+ END INTERFACE
+
+ hdferr = h5awrite_integer_7_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_integer_7
+
+
+ SUBROUTINE h5awrite_real_scalar(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5awrite_real_s_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awrite_real_s_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_REAL_S_C'::h5awrite_real_s_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(IN)::buf
+ END FUNCTION h5awrite_real_s_c
+ END INTERFACE
+
+ hdferr = h5awrite_real_s_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_real_scalar
+
+ SUBROUTINE h5awrite_real_1(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5awrite_real_1_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awrite_real_1_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_REAL_1_C'::h5awrite_real_1_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1)) :: buf
+ END FUNCTION h5awrite_real_1_c
+ END INTERFACE
+
+ hdferr = h5awrite_real_1_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_real_1
+
+
+ SUBROUTINE h5awrite_real_2(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5awrite_real_2_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awrite_real_2_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_REAL_2_C'::h5awrite_real_2_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5awrite_real_2_c
+ END INTERFACE
+
+ hdferr = h5awrite_real_2_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_real_2
+
+
+ SUBROUTINE h5awrite_real_3(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5awrite_real_3_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awrite_real_3_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_REAL_3_C'::h5awrite_real_3_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5awrite_real_3_c
+ END INTERFACE
+
+ hdferr = h5awrite_real_3_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_real_3
+
+
+ SUBROUTINE h5awrite_real_4(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5awrite_real_4_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awrite_real_4_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_REAL_4_C'::h5awrite_real_4_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5awrite_real_4_c
+ END INTERFACE
+
+ hdferr = h5awrite_real_4_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_real_4
+
+
+ SUBROUTINE h5awrite_real_5(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5awrite_real_5_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awrite_real_5_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_REAL_5_C'::h5awrite_real_5_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5awrite_real_5_c
+ END INTERFACE
+
+ hdferr = h5awrite_real_5_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_real_5
+
+
+ SUBROUTINE h5awrite_real_6(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5awrite_real_6_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awrite_real_6_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_REAL_6_C'::h5awrite_real_6_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5awrite_real_6_c
+ END INTERFACE
+
+ hdferr = h5awrite_real_6_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_real_6
+
+
+ SUBROUTINE h5awrite_real_7(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5awrite_real_7_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awrite_real_7_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_REAL_7_C'::h5awrite_real_7_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5awrite_real_7_c
+ END INTERFACE
+
+ hdferr = h5awrite_real_7_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_real_7
+
+ SUBROUTINE h5awrite_char_scalar(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*),INTENT(IN) :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! INTEGER, EXTERNAL :: h5awritec_s_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awritec_s_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITEC_S_C'::h5awritec_s_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(IN)::buf
+ END FUNCTION h5awritec_s_c
+ END INTERFACE
+
+ hdferr = h5awritec_s_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_char_scalar
+
+ SUBROUTINE h5awrite_char_1(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! INTEGER, EXTERNAL :: h5awritec_1_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awritec_1_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITEC_1_C'::h5awritec_1_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(IN), DIMENSION(dims(1))::buf
+ END FUNCTION h5awritec_1_c
+ END INTERFACE
+
+ hdferr = h5awritec_1_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_char_1
+
+
+ SUBROUTINE h5awrite_char_2(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5awritec_2_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awritec_2_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITEC_2_C'::h5awritec_2_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5awritec_2_c
+ END INTERFACE
+
+ hdferr = h5awritec_2_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_char_2
+
+
+ SUBROUTINE h5awrite_char_3(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! INTEGER, EXTERNAL :: h5awritec_3_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awritec_3_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITEC_3_C'::h5awritec_3_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5awritec_3_c
+ END INTERFACE
+
+ hdferr = h5awritec_3_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_char_3
+
+
+ SUBROUTINE h5awrite_char_4(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! INTEGER, EXTERNAL :: h5awritec_4_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awritec_4_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITEC_4_C'::h5awritec_4_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5awritec_4_c
+ END INTERFACE
+
+ hdferr = h5awritec_4_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_char_4
+
+
+ SUBROUTINE h5awrite_char_5(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! INTEGER, EXTERNAL :: h5awritec_5_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awritec_5_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITEC_5_C'::h5awritec_5_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5awritec_5_c
+ END INTERFACE
+
+ hdferr = h5awritec_5_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_char_5
+
+
+ SUBROUTINE h5awrite_char_6(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! INTEGER, EXTERNAL :: h5awritec_6_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awritec_6_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITEC_6_C'::h5awritec_6_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5awritec_6_c
+ END INTERFACE
+
+ hdferr = h5awritec_6_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_char_6
+
+
+ SUBROUTINE h5awrite_char_7(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! INTEGER, EXTERNAL :: h5awritec_7_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awritec_7_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITEC_7_C'::h5awritec_7_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5awritec_7_c
+ END INTERFACE
+
+ hdferr = h5awritec_7_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_char_7
+
+!
+! NAME
+! h5aread_f
+!
+! PURPOSE
+! Reads an attribute.
+!
+! INPUTS
+! attr_id - attribute identifier
+! memtype_id - attribute memory type identifier
+! dims - 1D array of size 7, stores sizes of the
+! - buf array dimensions.
+! OUTPUTS
+! buf - buffer to read attribute data in
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! OPTIONAL PARAMETERS
+! NONE
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+!
+! Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+! dims parameter was added to make code portable;
+! April 4, 2001
+!
+! Changed buf intent to INOUT to be consistant
+! with how the C functions handles it. The pg
+! compiler will return 0 if a buf value is not set.
+! February, 2008
+!
+! NOTES
+! This function is overloaded to write INTEGER,
+! REAL, DOUBLE PRECISION and CHARACTER buffers
+! up to 7 dimensions.
+!
+
+ SUBROUTINE h5aread_integer_scalar(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(INOUT) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5aread_integer_s_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5aread_integer_s_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_INTEGER_S_C'::h5aread_integer_s_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(INOUT)::buf
+ END FUNCTION h5aread_integer_s_c
+ END INTERFACE
+ hdferr = h5aread_integer_s_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_integer_scalar
+
+ SUBROUTINE h5aread_integer_1(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(INOUT), DIMENSION(dims(1)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5aread_integer_1_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5aread_integer_1_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_INTEGER_1_C'::h5aread_integer_1_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(INOUT), DIMENSION(dims(1)) :: buf
+ END FUNCTION h5aread_integer_1_c
+ END INTERFACE
+
+ hdferr = h5aread_integer_1_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_integer_1
+
+
+ SUBROUTINE h5aread_integer_2(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(INOUT),DIMENSION(dims(1),dims(2)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5aread_integer_2_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5aread_integer_2_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_INTEGER_2_C'::h5aread_integer_2_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(INOUT), DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5aread_integer_2_c
+ END INTERFACE
+
+ hdferr = h5aread_integer_2_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_integer_2
+
+
+ SUBROUTINE h5aread_integer_3(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5aread_integer_3_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5aread_integer_3_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_INTEGER_3_C'::h5aread_integer_3_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5aread_integer_3_c
+ END INTERFACE
+
+ hdferr = h5aread_integer_3_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_integer_3
+
+
+ SUBROUTINE h5aread_integer_4(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! Attribute data
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5aread_integer_4_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5aread_integer_4_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_INTEGER_4_C'::h5aread_integer_4_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5aread_integer_4_c
+ END INTERFACE
+
+ hdferr = h5aread_integer_4_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_integer_4
+
+
+ SUBROUTINE h5aread_integer_5(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5aread_integer_5_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5aread_integer_5_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_INTEGER_5_C'::h5aread_integer_5_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5aread_integer_5_c
+ END INTERFACE
+
+ hdferr = h5aread_integer_5_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_integer_5
+
+
+ SUBROUTINE h5aread_integer_6(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5aread_integer_6_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5aread_integer_6_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_INTEGER_6_C'::h5aread_integer_6_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5aread_integer_6_c
+ END INTERFACE
+
+ hdferr = h5aread_integer_6_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_integer_6
+
+
+ SUBROUTINE h5aread_integer_7(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5aread_integer_7_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5aread_integer_7_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_INTEGER_7_C'::h5aread_integer_7_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5aread_integer_7_c
+ END INTERFACE
+
+ hdferr = h5aread_integer_7_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_integer_7
+
+
+ SUBROUTINE h5aread_real_scalar(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(INOUT) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5aread_real_s_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5aread_real_s_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_REAL_S_C'::h5aread_real_s_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(INOUT)::buf
+ END FUNCTION h5aread_real_s_c
+ END INTERFACE
+
+ hdferr = h5aread_real_s_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_real_scalar
+
+ SUBROUTINE h5aread_real_1(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5aread_real_1_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5aread_real_1_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_REAL_1_C'::h5aread_real_1_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1)) :: buf
+ END FUNCTION h5aread_real_1_c
+ END INTERFACE
+
+ hdferr = h5aread_real_1_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_real_1
+
+
+ SUBROUTINE h5aread_real_2(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5aread_real_2_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5aread_real_2_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_REAL_2_C'::h5aread_real_2_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5aread_real_2_c
+ END INTERFACE
+
+ hdferr = h5aread_real_2_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_real_2
+
+
+ SUBROUTINE h5aread_real_3(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5aread_real_3_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5aread_real_3_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_REAL_3_C'::h5aread_real_3_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5aread_real_3_c
+ END INTERFACE
+
+ hdferr = h5aread_real_3_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_real_3
+
+
+ SUBROUTINE h5aread_real_4(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5aread_real_4_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5aread_real_4_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_REAL_4_C'::h5aread_real_4_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5aread_real_4_c
+ END INTERFACE
+
+ hdferr = h5aread_real_4_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_real_4
+
+
+ SUBROUTINE h5aread_real_5(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5aread_real_5_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5aread_real_5_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_REAL_5_C'::h5aread_real_5_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5aread_real_5_c
+ END INTERFACE
+
+ hdferr = h5aread_real_5_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_real_5
+
+
+ SUBROUTINE h5aread_real_6(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5aread_real_6_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5aread_real_6_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_REAL_6_C'::h5aread_real_6_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5aread_real_6_c
+ END INTERFACE
+
+ hdferr = h5aread_real_6_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_real_6
+
+
+ SUBROUTINE h5aread_real_7(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5aread_real_7_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5aread_real_7_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_REAL_7_C'::h5aread_real_7_c
+ !DEC$ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5aread_real_7_c
+ END INTERFACE
+
+ hdferr = h5aread_real_7_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_real_7
+
+ SUBROUTINE h5aread_char_scalar(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(INOUT) :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5areadc_s_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5areadc_s_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREADC_S_C'::h5areadc_s_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(INOUT) :: buf
+ END FUNCTION h5areadc_s_c
+ END INTERFACE
+
+ hdferr = h5areadc_s_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_char_scalar
+
+ SUBROUTINE h5aread_char_1(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5areadc_1_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5areadc_1_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREADC_1_C'::h5areadc_1_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1)) :: buf
+ END FUNCTION h5areadc_1_c
+ END INTERFACE
+
+ hdferr = h5areadc_1_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_char_1
+
+
+ SUBROUTINE h5aread_char_2(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5areadc_2_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5areadc_2_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREADC_2_C'::h5areadc_2_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5areadc_2_c
+ END INTERFACE
+
+ hdferr = h5areadc_2_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_char_2
+
+
+ SUBROUTINE h5aread_char_3(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5areadc_3_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5areadc_3_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREADC_3_C'::h5areadc_3_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5areadc_3_c
+ END INTERFACE
+
+ hdferr = h5areadc_3_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_char_3
+
+
+ SUBROUTINE h5aread_char_4(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5areadc_4_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5areadc_4_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREADC_4_C'::h5areadc_4_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5areadc_4_c
+ END INTERFACE
+
+ hdferr = h5areadc_4_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_char_4
+
+
+ SUBROUTINE h5aread_char_5(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5areadc_5_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5areadc_5_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREADC_5_C'::h5areadc_5_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5areadc_5_c
+ END INTERFACE
+
+ hdferr = h5areadc_5_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_char_5
+
+
+ SUBROUTINE h5aread_char_6(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5areadc_6_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5areadc_6_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREADC_6_C'::h5areadc_6_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5areadc_6_c
+ END INTERFACE
+
+ hdferr = h5areadc_6_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_char_6
+
+
+ SUBROUTINE h5aread_char_7(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5areadc_7_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5areadc_7_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREADC_7_C'::h5areadc_7_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5areadc_7_c
+ END INTERFACE
+
+ hdferr = h5areadc_7_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_char_7
+
+END MODULE H5A_PROVISIONAL
+
+
diff --git a/fortran/src/H5Df.c b/fortran/src/H5Df.c
index 573315a..e1aa98e 100644
--- a/fortran/src/H5Df.c
+++ b/fortran/src/H5Df.c
@@ -1,4 +1,9 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+/****h* H5Df/H5Df
+ * PURPOSE
+ * This file contains C stubs for H5D Fortran APIs
+ *
+ * COPYRIGHT
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
@@ -11,32 +16,42 @@
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* This files contains C stubs for H5D Fortran APIs */
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ ******
+*/
#include "H5f90.h"
-/*----------------------------------------------------------------------------
- * Name: h5dcreate_c
- * Purpose: Call H5Dcreate2 to create a dataset
- * Inputs: loc_id - file or group identifier
+/****if* H5Df/h5dcreate_c
+ * NAME
+ * h5dcreate_c
+ * PURPOSE
+ * Call H5Dcreate2 to create a dataset
+ * INPUTS
+ * loc_id - file or group identifier
* name - name of the dataset
* namelen - name length
* type_id - datatype identifier
* space_id - dataspace identifier
* crt_pr - identifier of creation property list
- * Outputs: dset_id - dataset identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * dset_id - dataset identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, August 4, 1999
- * Modifications:
+ * HISTORY
+ *
* - Added optional parameters introduced in version 1.8
* February, 2008
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5dcreate_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *type_id, hid_t_f *space_id,
hid_t_f *lcpl_id, hid_t_f *dcpl_id, hid_t_f *dapl_id, hid_t_f *dset_id)
+/******/
{
char *c_name = NULL;
hid_t c_dset_id;
@@ -64,21 +79,30 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5dopen_c
- * Purpose: Call H5Dopen2 to open a dataset
- * Inputs: loc_id - file or group identifier
+/****if* H5Df/h5dopen_c
+ * NAME
+ * h5dopen_c
+ * PURPOSE
+ * Call H5Dopen2 to open a dataset
+ * INPUTS
+ * loc_id - file or group identifier
* name - name of the dataset
* namelen - name length
* dapl_id - Dataset access property list
- * Outputs: dset_id - dataset identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * dset_id - dataset identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, August 4, 1999
- * Modifications: Added 1.8 parameter: dapl_id
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ * Added 1.8 parameter: dapl_id
+ * SOURCE
+*/
int_f
nh5dopen_c(hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *dapl_id, hid_t_f *dset_id)
+/******/
{
char *c_name = NULL;
hid_t c_dset_id;
@@ -105,24 +129,33 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5dwritec_c
- * Purpose: Call h5dwrite_c to write a dataset of characters
- * Inputs: dset_id - dataset identifier
+
+/****if* H5Df/h5dwritec_c
+ * NAME
+ * h5dwritec_c
+ * PURPOSE
+ * Call h5dwrite_c to write a dataset of characters
+ * INPUTS
+ * dset_id - dataset identifier
* mem_type_id - memory datatype identifier
* mem_space_id - memory dataspace identifier
* file_space_id - memory dataspace identifier
* xfer_pr - identifier of transfer property list
* buf - character data buffer
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Tuesday, May 14, 2002
- * Modifications: This function is added to accomodate oveloaded h5dwrite_f
+ * HISTORY
+ * This function is added to accomodate oveloaded h5dwrite_f
* with the dims argument being of INTEGER(HSIZE_T) type
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5dwritec_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims)
+/******/
{
int ret_value = -1;
@@ -136,6 +169,7 @@ nh5dwritec_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid
int_f
nh5dwritec_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims)
+
{
int ret_value = -1;
@@ -149,6 +183,7 @@ nh5dwritec_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, h
int_f
nh5dwritec_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims)
+
{
int ret_value = -1;
@@ -162,6 +197,7 @@ nh5dwritec_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, h
int_f
nh5dwritec_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims)
+
{
int ret_value = -1;
@@ -175,6 +211,7 @@ nh5dwritec_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, h
int_f
nh5dwritec_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims)
+
{
int ret_value = -1;
@@ -188,6 +225,7 @@ nh5dwritec_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, h
int_f
nh5dwritec_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims)
+
{
int ret_value = -1;
@@ -201,6 +239,7 @@ nh5dwritec_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, h
int_f
nh5dwritec_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims)
+
{
int ret_value = -1;
@@ -214,6 +253,7 @@ nh5dwritec_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, h
int_f
nh5dwritec_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims)
+
{
int ret_value = -1;
@@ -227,6 +267,7 @@ nh5dwritec_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, h
int_f
nh5dwritec_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims)
+
{
int ret_value = -1;
@@ -238,19 +279,25 @@ nh5dwritec_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, h
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5dwrite_c
- * Purpose: Call H5Dwrite to write a dataset
- * Inputs: dset_id - dataset identifier
+/****if* H5Df/h5dwrite_c
+ * NAME
+ * h5dwrite_c
+ * PURPOSE
+ * Call H5Dwrite to write a dataset
+ * INPUTS
+ * dset_id - dataset identifier
* mem_type_id - memory datatype identifier
* mem_space_id - memory dataspace identifier
* file_space_id - memory dataspace identifier
* xfer_pr - identifier of transfer property list
* buf - data buffer
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Tuesday, May 14, 2002
- * Modifications: This function is added to accomodate oveloaded h5dwrite_f
+ * HISTORY
+ * This function is added to accomodate oveloaded h5dwrite_f
* with the dims argument being of INTEGER(HSIZE_T) type
*
* Added nh5dwrite_integer(real,double)_s,1-7_c functions to eliminate
@@ -258,9 +305,11 @@ nh5dwritec_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, h
* called by Fortran rouitnes
* October 10, 2006 EIP
*
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5dwrite_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f UNUSED *dims)
+/******/
{
int ret_value = -1;
herr_t ret;
@@ -291,6 +340,7 @@ nh5dwrite_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_
int_f
nh5dwrite_integer_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dwrite_c function.
@@ -301,6 +351,7 @@ nh5dwrite_integer_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_spac
int_f
nh5dwrite_integer_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dwrite_c function.
@@ -311,6 +362,7 @@ nh5dwrite_integer_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_spac
int_f
nh5dwrite_integer_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dwrite_c function.
@@ -321,6 +373,7 @@ nh5dwrite_integer_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_spac
int_f
nh5dwrite_integer_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dwrite_c function.
@@ -331,6 +384,7 @@ nh5dwrite_integer_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_spac
int_f
nh5dwrite_integer_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dwrite_c function.
@@ -341,6 +395,7 @@ nh5dwrite_integer_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_spac
int_f
nh5dwrite_integer_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dwrite_c function.
@@ -351,6 +406,7 @@ nh5dwrite_integer_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_spac
int_f
nh5dwrite_integer_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dwrite_c function.
@@ -361,6 +417,7 @@ nh5dwrite_integer_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_spac
int_f
nh5dwrite_integer_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dwrite_c function.
@@ -371,6 +428,7 @@ nh5dwrite_integer_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_spac
int_f
nh5dwrite_real_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dwrite_c function.
@@ -380,6 +438,7 @@ nh5dwrite_real_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_i
int_f
nh5dwrite_real_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dwrite_c function.
@@ -389,6 +448,7 @@ nh5dwrite_real_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_i
int_f
nh5dwrite_real_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dwrite_c function.
@@ -398,6 +458,7 @@ nh5dwrite_real_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_i
int_f
nh5dwrite_real_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dwrite_c function.
@@ -407,6 +468,7 @@ nh5dwrite_real_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_i
int_f
nh5dwrite_real_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dwrite_c function.
@@ -416,6 +478,7 @@ nh5dwrite_real_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_i
int_f
nh5dwrite_real_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dwrite_c function.
@@ -425,6 +488,7 @@ nh5dwrite_real_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_i
int_f
nh5dwrite_real_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dwrite_c function.
@@ -434,6 +498,7 @@ nh5dwrite_real_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_i
int_f
nh5dwrite_real_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dwrite_c function.
@@ -443,6 +508,7 @@ nh5dwrite_real_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_i
int_f
nh5dwrite_double_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dwrite_c function.
@@ -452,6 +518,7 @@ nh5dwrite_double_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space
int_f
nh5dwrite_double_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dwrite_c function.
@@ -461,6 +528,7 @@ nh5dwrite_double_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space
int_f
nh5dwrite_double_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dwrite_c function.
@@ -470,6 +538,7 @@ nh5dwrite_double_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space
int_f
nh5dwrite_double_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dwrite_c function.
@@ -479,6 +548,7 @@ nh5dwrite_double_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space
int_f
nh5dwrite_double_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dwrite_c function.
@@ -488,6 +558,7 @@ nh5dwrite_double_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space
int_f
nh5dwrite_double_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dwrite_c function.
@@ -497,6 +568,7 @@ nh5dwrite_double_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space
int_f
nh5dwrite_double_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dwrite_c function.
@@ -506,6 +578,7 @@ nh5dwrite_double_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space
int_f
nh5dwrite_double_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dwrite_c function.
@@ -514,24 +587,32 @@ nh5dwrite_double_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space
}
-/*----------------------------------------------------------------------------
- * Name: h5dwrite_ref_obj_c
- * Purpose: Call H5Dwrite to write a dataset of object references
- * Inputs: dset_id - dataset identifier
+/****if* H5Df/h5dwrite_ref_obj_c
+ * NAME
+ * h5dwrite_ref_obj_c
+ * PURPOSE
+ * Call H5Dwrite to write a dataset of object references
+ * INPUTS
+ * dset_id - dataset identifier
* mem_type_id - memory datatype identifier
* mem_space_id - memory dataspace identifier
* file_space_id - memory dataspace identifier
* xfer_pr - identifier of transfer property list
* buf - data buffer with references to the objects.
* n - number of references to be stored.
- * Returns: 0 on success,e-1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success,e-1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Tuesday, May 14, 2002
- * Modifications: This function was added to accomodate h5dwrite_f with the
+ * HISTORY
+ * This function was added to accomodate h5dwrite_f with the
* dims argumnet being of INTEGER(HSIZE_T) type.
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5dwrite_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, haddr_t_f *buf, hsize_t_f *dims)
+/******/
{
int ret_value = -1;
herr_t ret;
@@ -573,24 +654,32 @@ nh5dwrite_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5dwrite_ref_reg_c
- * Purpose: Call H5Dwrite to write a dataset of dataset region references
- * Inputs: dset_id - dataset identifier
+/****if* H5Df/h5dwrite_ref_reg_c
+ * NAME
+ * h5dwrite_ref_reg_c
+ * PURPOSE
+ * Call H5Dwrite to write a dataset of dataset region references
+ * INPUTS
+ * dset_id - dataset identifier
* mem_type_id - memory datatype identifier
* mem_space_id - memory dataspace identifier
* file_space_id - memory dataspace identifier
* xfer_pr - identifier of transfer property list
* buf - data buffer with references to the objects.
* n - number of references to be stored.
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Tuesday, May 14, 2002
- * Modifications: This function was added to accomodate h5dwrite_f with the
+ * HISTORY
+ * This function was added to accomodate h5dwrite_f with the
* dims argument being of INTEGER(HSIZE_T) type
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5dwrite_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, hsize_t_f *dims)
+/******/
{
int ret_value = -1;
herr_t ret;
@@ -637,23 +726,32 @@ nh5dwrite_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_
-/*----------------------------------------------------------------------------
- * Name: h5dreadc_c
- * Purpose: Call h5dread_c to read a dataset of characters
- * Inputs: dset_id - dataset identifier
+/****if* H5Df/h5dreadc_c
+ * NAME
+ * h5dreadc_c
+ * PURPOSE
+ * Call h5dread_c to read a dataset of characters
+ * INPUTS
+ * dset_id - dataset identifier
* mem_type_id - memory datatype identifier
* mem_space_id - memory dataspace identifier
* file_space_id - memory dataspace identifier
* xfer_pr - identifier of transfer property list
- * Outputs: buf - character data buffer
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * buf - character data buffer
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, May 15, 2002
- * Modifications: This function was added to accomodate h5dread_f subroutine
+ * HISTORY
+ * This function was added to accomodate h5dread_f subroutine
* with the dims parameter being of INTEGER(HSIZE_T_F) size.
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5dreadc_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims)
+/******/
{
int ret_value = -1;
@@ -667,6 +765,7 @@ nh5dreadc_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_
int_f
nh5dreadc_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims)
+
{
int ret_value = -1;
@@ -680,6 +779,7 @@ nh5dreadc_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hi
int_f
nh5dreadc_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims)
+
{
int ret_value = -1;
@@ -693,6 +793,7 @@ nh5dreadc_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hi
int_f
nh5dreadc_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims)
+
{
int ret_value = -1;
@@ -706,6 +807,7 @@ nh5dreadc_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hi
int_f
nh5dreadc_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims)
+
{
int ret_value = -1;
@@ -719,6 +821,7 @@ nh5dreadc_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hi
int_f
nh5dreadc_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims)
+
{
int ret_value = -1;
@@ -732,6 +835,7 @@ nh5dreadc_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hi
int_f
nh5dreadc_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims)
+
{
int ret_value = -1;
@@ -745,6 +849,7 @@ nh5dreadc_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hi
int_f
nh5dreadc_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims)
+
{
int ret_value = -1;
@@ -758,6 +863,7 @@ nh5dreadc_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hi
int_f
nh5dreadc_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims)
+
{
int ret_value = -1;
@@ -769,19 +875,26 @@ nh5dreadc_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hi
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5dread_c
- * Purpose: Call H5Draed to read a dataset
- * Inputs: dset_id - dataset identifier
+/****if* H5Df/h5dread_c
+ * NAME
+ * h5dread_c
+ * PURPOSE
+ * Call H5Draed to read a dataset
+ * INPUTS
+ * dset_id - dataset identifier
* mem_type_id - memory datatype identifier
* mem_space_id - memory dataspace identifier
* file_space_id - memory dataspace identifier
* xfer_pr - identifier of transfer property list
- * Outputs: buf - data buffer
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * buf - data buffer
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, May 15, 2002
- * Modifications: This function was added to accomodate h5dread_f subroutine
+ * HISTORY
+ * This function was added to accomodate h5dread_f subroutine
* with the dims parameter being of INTEGER(HSIZE_T_F) size.
*
* Added nh5dread_integer(real,double)_s,1-7_c functions to eliminate
@@ -789,9 +902,11 @@ nh5dreadc_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hi
* called by Fortran rouitnes
* October 10, 2006 EIP
*
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5dread_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f UNUSED *dims)
+/******/
{
int ret_value = -1;
herr_t ret;
@@ -822,6 +937,7 @@ nh5dread_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t
int_f
nh5dread_integer_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dread_c function.
@@ -831,6 +947,7 @@ nh5dread_integer_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space
int_f
nh5dread_integer_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dread_c function.
@@ -840,6 +957,7 @@ nh5dread_integer_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space
int_f
nh5dread_integer_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dread_c function.
@@ -849,6 +967,7 @@ nh5dread_integer_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space
int_f
nh5dread_integer_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dread_c function.
@@ -858,6 +977,7 @@ nh5dread_integer_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space
int_f
nh5dread_integer_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dread_c function.
@@ -867,6 +987,7 @@ nh5dread_integer_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space
int_f
nh5dread_integer_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dread_c function.
@@ -876,6 +997,7 @@ nh5dread_integer_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space
int_f
nh5dread_integer_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dread_c function.
@@ -885,6 +1007,7 @@ nh5dread_integer_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space
int_f
nh5dread_integer_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dread_c function.
@@ -894,6 +1017,7 @@ nh5dread_integer_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space
int_f
nh5dread_real_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dread_c function.
@@ -903,6 +1027,7 @@ nh5dread_real_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id
int_f
nh5dread_real_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dread_c function.
@@ -912,6 +1037,7 @@ nh5dread_real_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id
int_f
nh5dread_real_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dread_c function.
@@ -921,6 +1047,7 @@ nh5dread_real_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id
int_f
nh5dread_real_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dread_c function.
@@ -930,6 +1057,7 @@ nh5dread_real_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id
int_f
nh5dread_real_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dread_c function.
@@ -939,6 +1067,7 @@ nh5dread_real_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id
int_f
nh5dread_real_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dread_c function.
@@ -948,6 +1077,7 @@ nh5dread_real_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id
int_f
nh5dread_real_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dread_c function.
@@ -957,6 +1087,7 @@ nh5dread_real_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id
int_f
nh5dread_real_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dread_c function.
@@ -966,6 +1097,7 @@ nh5dread_real_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id
int_f
nh5dread_double_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dread_c function.
@@ -975,6 +1107,7 @@ nh5dread_double_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_
int_f
nh5dread_double_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dread_c function.
@@ -984,6 +1117,7 @@ nh5dread_double_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_
int_f
nh5dread_double_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dread_c function.
@@ -993,6 +1127,7 @@ nh5dread_double_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_
int_f
nh5dread_double_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dread_c function.
@@ -1002,6 +1137,7 @@ nh5dread_double_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_
int_f
nh5dread_double_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dread_c function.
@@ -1011,6 +1147,7 @@ nh5dread_double_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_
int_f
nh5dread_double_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dread_c function.
@@ -1020,6 +1157,7 @@ nh5dread_double_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_
int_f
nh5dread_double_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dread_c function.
@@ -1029,6 +1167,7 @@ nh5dread_double_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_
int_f
nh5dread_double_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims)
+
{
/*
* Call h5dread_c function.
@@ -1036,24 +1175,32 @@ nh5dread_double_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_
return nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims);
}
-/*----------------------------------------------------------------------------
- * Name: h5dread_ref_obj_c
- * Purpose: Call H5Dread to read a dataset of object references
- * Inputs: dset_id - dataset identifier
+/****if* H5Df/h5dread_ref_obj_c
+ * NAME
+ * h5dread_ref_obj_c
+ * PURPOSE
+ * Call H5Dread to read a dataset of object references
+ * INPUTS
+ * dset_id - dataset identifier
* mem_type_id - memory datatype identifier
* mem_space_id - memory dataspace identifier
* file_space_id - memory dataspace identifier
* xfer_pr - identifier of transfer property list
* buf - data buffer to store references to the objects.
* n - number of references to be stored.
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, May 15, 2002
- * Modifications: This function was added to accomodate h5dread_f subroutine
+ * HISTORY
+ * This function was added to accomodate h5dread_f subroutine
* with the dims parameter being of INTEGER(HSIZE_T_F) size.
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5dread_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, haddr_t_f * buf, hsize_t_f *dims)
+/******/
{
int ret_value = -1;
herr_t ret = -1;
@@ -1095,24 +1242,32 @@ nh5dread_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_i
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5dread_ref_reg_c
- * Purpose: Call H5Dread to read a dataset of dataset region references
- * Inputs: dset_id - dataset identifier
+/****if* H5Df/h5dread_ref_reg_c
+ * NAME
+ * h5dread_ref_reg_c
+ * PURPOSE
+ * Call H5Dread to read a dataset of dataset region references
+ * INPUTS
+ * dset_id - dataset identifier
* mem_type_id - memory datatype identifier
* mem_space_id - memory dataspace identifier
* file_space_id - memory dataspace identifier
* xfer_pr - identifier of transfer property list
* buf - data buffer to store references to the objects.
* n - number of references to be stored.
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, May 15, 2002
- * Modifications: This function was added to accomodate h5dread_f subroutine
+ * HISTORY
+ * This function was added to accomodate h5dread_f subroutine
* with the dims parameter being of INTEGER(HSIZE_T_F) size.
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5dread_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f * buf, hsize_t_f *dims)
+/******/
{
int ret_value = -1;
herr_t ret = -1;
@@ -1157,18 +1312,26 @@ nh5dread_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_i
-/*----------------------------------------------------------------------------
- * Name: h5dclose_c
- * Purpose: Call H5Dclose to close a dataset
- * Inputs: dset_id - identifier of the dataset to be closed
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Df/h5dclose_c
+ * NAME
+ * h5dclose_c
+ * PURPOSE
+ * Call H5Dclose to close a dataset
+ * INPUTS
+ * dset_id - identifier of the dataset to be closed
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, August 4, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5dclose_c ( hid_t_f *dset_id )
+/******/
{
int ret_value = 0;
hid_t c_dset_id;
@@ -1177,19 +1340,28 @@ nh5dclose_c ( hid_t_f *dset_id )
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5dget_space_c
- * Purpose: Call H5Dget_space to obtain dataspace of a dataset
- * Inputs: dset_id - identifier of the dataset
- * Outputs: space_id - identifier of the dataset's dataspace
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Df/h5dget_space_c
+ * NAME
+ * h5dget_space_c
+ * PURPOSE
+ * Call H5Dget_space to obtain dataspace of a dataset
+ * INPUTS
+ * dset_id - identifier of the dataset
+ * OUTPUTS
+ * space_id - identifier of the dataset's dataspace
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, August 19, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5dget_space_c ( hid_t_f *dset_id , hid_t_f *space_id)
+/******/
{
int ret_value = -1;
hid_t c_dset_id;
@@ -1203,19 +1375,28 @@ nh5dget_space_c ( hid_t_f *dset_id , hid_t_f *space_id)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5dget_type_c
- * Purpose: Call H5Dget_type to obtain datatype of a dataset
- * Inputs: dset_id - identifier of the dataset
- * Outputs: type_id - identifier of the dataset's datatype
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Df/h5dget_type_c
+ * NAME
+ * h5dget_type_c
+ * PURPOSE
+ * Call H5Dget_type to obtain datatype of a dataset
+ * INPUTS
+ * dset_id - identifier of the dataset
+ * OUTPUTS
+ * type_id - identifier of the dataset's datatype
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, August 19, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5dget_type_c ( hid_t_f *dset_id , hid_t_f *type_id)
+/******/
{
int ret_value = -1;
hid_t c_dset_id;
@@ -1231,20 +1412,29 @@ nh5dget_type_c ( hid_t_f *dset_id , hid_t_f *type_id)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5dget_create_plist_c
- * Purpose: Call H5Dget_create_plist to obtain creation property list
+/****if* H5Df/h5dget_create_plist_c
+ * NAME
+ * h5dget_create_plist_c
+ * PURPOSE
+ * Call H5Dget_create_plist to obtain creation property list
* of a dataset
- * Inputs: dset_id - identifier of the dataset
- * Outputs: plist_id - identifier of he dataset creation property list
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * INPUTS
+ * dset_id - identifier of the dataset
+ * OUTPUTS
+ * plist_id - identifier of he dataset creation property list
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, August 19, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5dget_create_plist_c ( hid_t_f *dset_id , hid_t_f *plist_id)
+/******/
{
int ret_value = -1;
hid_t c_dset_id;
@@ -1261,22 +1451,31 @@ nh5dget_create_plist_c ( hid_t_f *dset_id , hid_t_f *plist_id)
}
-/*----------------------------------------------------------------------------
- * Name: h5dset_extent_c
- * Purpose: Call H5Dset_extent to extend dataset with unlimited dimensions
- * Inputs: dset_id - identifier of the dataset
- * Outputs: dims - array with the dimension sizes
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Df/h5dset_extent_c
+ * NAME
+ * h5dset_extent_c
+ * PURPOSE
+ * Call H5Dset_extent to extend dataset with unlimited dimensions
+ * INPUTS
+ * dset_id - identifier of the dataset
+ * OUTPUTS
+ * dims - array with the dimension sizes
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, August 19, 1999
*
- * Modifications: Changed name from the now obsolete h5dextend
+ * HISTORY
+ * Changed name from the now obsolete h5dextend
* to h5dset_extent in order to match new fortran interface.
* -MSB- March 14, 2008
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5dset_extent_c ( hid_t_f *dset_id , hsize_t_f *dims)
+/******/
{
hid_t c_space_id;
hsize_t c_dims[H5S_MAX_RANK];
@@ -1305,20 +1504,29 @@ nh5dset_extent_c ( hid_t_f *dset_id , hsize_t_f *dims)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: nh5dget_storage_size_c
- * Purpose: Call H5Dget_storage_size to return the amount of storage
+/****if* H5Df/nh5dget_storage_size_c
+ * NAME
+ * nh5dget_storage_size_c
+ * PURPOSE
+ * Call H5Dget_storage_size to return the amount of storage
* required for a dataset
- * Inputs: dset_id - identifier of the dataset
- * Outputs: size - the amount of storage required for a dataset
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * INPUTS
+ * dset_id - identifier of the dataset
+ * OUTPUTS
+ * size - the amount of storage required for a dataset
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Tuesday, October 22, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5dget_storage_size_c ( hid_t_f *dset_id , hsize_t_f *size)
+/******/
{
int ret_value = -1;
hsize_t c_size;
@@ -1332,21 +1540,30 @@ nh5dget_storage_size_c ( hid_t_f *dset_id , hsize_t_f *size)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: nh5dvlen_get_max_len_c
- * Purpose: Get the maximum size of the VL dataset element
- * Inputs: dset_id - identifier of the dataset
+/****if* H5Df/nh5dvlen_get_max_len_c
+ * NAME
+ * nh5dvlen_get_max_len_c
+ * PURPOSE
+ * Get the maximum size of the VL dataset element
+ * INPUTS
+ * dset_id - identifier of the dataset
* type_id - datatype identifier
* space_id - dataspace identifier
- * Outputs: len - maximum length of the VL dataset element
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * len - maximum length of the VL dataset element
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Tuesday, October 22, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5dvlen_get_max_len_c ( hid_t_f *dset_id , hid_t_f *type_id, hid_t_f *space_id, size_t_f *len)
+/******/
{
int ret_value = -1;
size_t c_len;
@@ -1381,10 +1598,13 @@ DONE:
free(c_buf);
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: nh5dwrite_vl_integer_c
- * Purpose: Write variable length dataset
- * Inputs: dset_id - identifier of the dataset
+/****if* H5Df/nh5dwrite_vl_integer_c
+ * NAME
+ * nh5dwrite_vl_integer_c
+ * PURPOSE
+ * Write variable length dataset
+ * INPUTS
+ * dset_id - identifier of the dataset
* mem_type_id - datatype identifier
* mem_space_id - dataspace identifier
* file_space_id - file dataspace identifier
@@ -1394,14 +1614,19 @@ DONE:
* dims[0] = MAXLENGTH
* dims[1] = number of elements of VL type
* len - array element lenghts
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, October 23, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5dwrite_vl_integer_c ( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, hsize_t_f *dims, size_t_f *len)
+/******/
{
int ret_value = -1;
hid_t c_dset_id;
@@ -1446,10 +1671,13 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: nh5dread_vl_integer_c
- * Purpose: Read variable length dataset
- * Inputs: dset_id - identifier of the dataset
+/****if* H5Df/nh5dread_vl_integer_c
+ * NAME
+ * nh5dread_vl_integer_c
+ * PURPOSE
+ * Read variable length dataset
+ * INPUTS
+ * dset_id - identifier of the dataset
* mem_type_id - datatype identifier
* mem_space_id - dataspace identifier
* file_space_id - file dataspace identifier
@@ -1457,16 +1685,22 @@ DONE:
* dims - one-demnsional array of size 2
* dims[0] = MAXLENGTH
* dims[1] = number of elements of VL type
- * Outputs: buf - data buffer
+ * OUTPUTS
+ * buf - data buffer
* len - array element lenghts
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, October 24, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5dread_vl_integer_c ( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, hsize_t_f *dims, size_t_f *len)
+/******/
{
int ret_value = -1;
hid_t c_dset_id;
@@ -1509,10 +1743,13 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: nh5dwrite_vl_string_c
- * Purpose: Write variable length strings from Fortran program
- * Inputs: dset_id - identifier of the dataset
+/****if* H5Df/nh5dwrite_vl_string_c
+ * NAME
+ * nh5dwrite_vl_string_c
+ * PURPOSE
+ * Write variable length strings from Fortran program
+ * INPUTS
+ * dset_id - identifier of the dataset
* mem_type_id - datatype identifier
* mem_space_id - dataspace identifier
* file_space_id - file dataspace identifier
@@ -1521,14 +1758,19 @@ DONE:
* dims - one-demnsional array of size 2
* dims[0] = number of strings of size max_len
* len - array of strings lengths
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Monday, October 28, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5dwrite_vl_string_c( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims, size_t_f *len)
+/******/
{
int ret_value = -1;
hid_t c_dset_id;
@@ -1588,10 +1830,13 @@ DONE:
free(tmp);
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: nh5dread_vl_string_c
- * Purpose: Read variable length strings from Fortran program
- * Inputs: dset_id - identifier of the dataset
+/****if* H5Df/nh5dread_vl_string_c
+ * NAME
+ * nh5dread_vl_string_c
+ * PURPOSE
+ * Read variable length strings from Fortran program
+ * INPUTS
+ * dset_id - identifier of the dataset
* mem_type_id - datatype identifier
* mem_space_id - dataspace identifier
* file_space_id - file dataspace identifier
@@ -1600,14 +1845,19 @@ DONE:
* dims[0] = number of strings of size max_len
* Output: buf - data buffer
* len - array of strings lengths
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Friday, November 1, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5dread_vl_string_c( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims, size_t_f *len)
+/******/
{
int ret_value = -1;
hid_t c_dset_id;
@@ -1663,10 +1913,13 @@ nh5dread_vl_string_c( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_spa
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: nh5dwrite_vl_real_c
- * Purpose: Write variable length dataset
- * Inputs: dset_id - identifier of the dataset
+/****if* H5Df/nh5dwrite_vl_real_c
+ * NAME
+ * nh5dwrite_vl_real_c
+ * PURPOSE
+ * Write variable length dataset
+ * INPUTS
+ * dset_id - identifier of the dataset
* mem_type_id - datatype identifier
* mem_space_id - dataspace identifier
* file_space_id - file dataspace identifier
@@ -1676,14 +1929,19 @@ nh5dread_vl_string_c( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_spa
* dims[0] = MAXLENGTH
* dims[1] = number of elements of VL type
* len - array element lenghts
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Monday, November 11, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5dwrite_vl_real_c ( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, real_f *buf, hsize_t_f *dims, size_t_f *len)
+/******/
{
int ret_value = -1;
hid_t c_dset_id;
@@ -1728,10 +1986,13 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: nh5dread_vl_real_c
- * Purpose: Read variable length dataset
- * Inputs: dset_id - identifier of the dataset
+/****if* H5Df/nh5dread_vl_real_c
+ * NAME
+ * nh5dread_vl_real_c
+ * PURPOSE
+ * Read variable length dataset
+ * INPUTS
+ * dset_id - identifier of the dataset
* mem_type_id - datatype identifier
* mem_space_id - dataspace identifier
* file_space_id - file dataspace identifier
@@ -1739,16 +2000,22 @@ DONE:
* dims - one-demnsional array of size 2
* dims[0] = MAXLENGTH
* dims[1] = number of elements of VL type
- * Outputs: buf - data buffer
+ * OUTPUTS
+ * buf - data buffer
* len - array element lenghts
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Monday, November 11, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5dread_vl_real_c ( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, real_f *buf, hsize_t_f *dims, size_t_f *len)
+/******/
{
int ret_value = -1;
hid_t c_dset_id;
@@ -1792,21 +2059,29 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5dfillc_c
- * Purpose: Call h5fill_c to fill memory buffer with a fill value
- * Inputs: fill_value - fill value
+/****if* H5Df/h5dfillc_c
+ * NAME
+ * h5dfillc_c
+ * PURPOSE
+ * Call h5fill_c to fill memory buffer with a fill value
+ * INPUTS
+ * fill_value - fill value
* fill_type_id - fill value datatype identifier
* space_id - memory space selection identifier
* buf - memory buffer to fill
* mem_type_id - memory buffer dtatype identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, March 12, 2003
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5dfillc_c (_fcd fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, _fcd buf, hid_t_f *mem_type_id)
+/******/
{
int ret_value = -1;
@@ -1817,22 +2092,29 @@ nh5dfillc_c (_fcd fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, _fcd buf
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5dfill_c
- * Purpose: Call H5Dfill to fill memory buffer with a fill value
- * Inputs: fill_value - fill value
+/****if* H5Df/h5dfill_c
+ * NAME
+ * h5dfill_c
+ * PURPOSE
+ * Call H5Dfill to fill memory buffer with a fill value
+ * INPUTS
+ * fill_value - fill value
* fill_type_id - fill value datatype identifier
* space_id - memory space selection identifier
* buf - memory buffer to fill
* mem_type_id - memory buffer dtatype identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, March 12, 2003
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5dfill_c (void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id)
-
+/******/
{
int ret_value = -1;
herr_t ret;
@@ -1926,19 +2208,27 @@ nh5dfill_double_c (void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id,
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5dget_space_status_c
- * Purpose: Call H5Dget_space_status to request dataspace allocation status
- * Inputs: dset_id - dataset identifier
- * Outputs: flag - status flag
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Df/h5dget_space_status_c
+ * NAME
+ * h5dget_space_status_c
+ * PURPOSE
+ * Call H5Dget_space_status to request dataspace allocation status
+ * INPUTS
+ * dset_id - dataset identifier
+ * OUTPUTS
+ * flag - status flag
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, March 12, 2003
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5dget_space_status_c ( hid_t_f *dset_id, int_f *flag)
-
+/******/
{
int ret_value = -1;
herr_t ret;
@@ -1957,25 +2247,33 @@ nh5dget_space_status_c ( hid_t_f *dset_id, int_f *flag)
ret_value = 0;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5dcreate_anon_c
- * Purpose: Call H5Dcreate_anon
- * Inputs:
+/****if* H5Df/h5dcreate_anon_c
+ * NAME
+ * h5dcreate_anon_c
+ * PURPOSE
+ * Call H5Dcreate_anon
+ * INPUTS
+ *
* loc_id - Identifier of the file or group within which to create the dataset.
* type_id - Identifier of the datatype to use when creating the dataset.
* space_id - Identifier of the dataspace to use when creating the dataset.
* dcpl_id - Dataset creation property list identifier.
* dapl_id - Dataset access property list identifier.
- * Outputs:
+ * OUTPUTS
+ *
* dset_id - dataset identifier
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* February, 2008
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5dcreate_anon_c (hid_t_f *loc_id, hid_t_f *type_id, hid_t_f *space_id,
hid_t_f *dcpl_id, hid_t_f *dapl_id, hid_t_f *dset_id)
+/******/
{
int ret_value = -1;
@@ -1992,20 +2290,174 @@ nh5dcreate_anon_c (hid_t_f *loc_id, hid_t_f *type_id, hid_t_f *space_id,
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5dget_access_plist_c
- * Purpose: Call H5Dget_access_plist
- * Inputs:
- * dset_id - dataset identifier
- * Outputs:
- * plist_id - the dataset access property list identifier.
+/****if* H5Df/nh5dwrite_f_c
+ * NAME
+ * nh5dwrite_f_c
+ * PURPOSE
+ * Call H5Dwrite to write a dataset
+ * INPUTS
+ * dset_id - dataset identifier
+ * mem_type_id - memory datatype identifier
+ * mem_space_id - memory dataspace identifier
+ * file_space_id - memory dataspace identifier
+ * xfer_pr - identifier of transfer property list
+ * buf - data buffer
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * May 28, 2008
+ * HISTORY
+ *
+ *
+ * SOURCE
+*/
+int_f
+nh5dwrite_f_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id,
+ hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf)
+/******/
+{
+ int ret_value = -1;
+ herr_t ret;
+ hid_t c_dset_id;
+ hid_t c_mem_type_id;
+ hid_t c_mem_space_id;
+ hid_t c_file_space_id;
+ hid_t c_xfer_prp;
+
+/* int i, j; */
+/* typedef struct { */
+/* int x; */
+/* float y; */
+/* } r_dual_c; */
+
+/* const r_dual_c *name=buf; */
+
+/* r_dual_c access[4][4]; */
+
+/* for ( i=0; i<4; ++i) */
+/* for (j = 0; j<4; ++j) { */
+/* access[i][j] = name[i*4+j]; */
+/* /\* access[i].x = access[i].x + 1; *\/ */
+/* printf("x = %i \n", access[i][j].x); */
+/* printf("y = %f \n", access[i][j].y); */
+/* } */
+
+ /*
+ * Define transfer property
+ */
+ c_xfer_prp = (hid_t)*xfer_prp;
+
+ /*
+ * Call H5Dwrite function.
+ */
+ c_dset_id = (hid_t)*dset_id;
+ c_mem_type_id = (hid_t)*mem_type_id;
+ c_mem_space_id = (hid_t)*mem_space_id;
+ c_file_space_id = (hid_t)*file_space_id;
+ ret = H5Dwrite(c_dset_id, c_mem_type_id, c_mem_space_id, c_file_space_id, c_xfer_prp, buf);
+
+ if (ret < 0) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+/****if* H5Df/nh5dread_f_c
+ * NAME
+ * nh5dread_f_c
+ * PURPOSE
+ * Read variable length dataset
+ * INPUTS
+ * dset_id - identifier of the dataset
+ * mem_type_id - datatype identifier
+ * mem_space_id - dataspace identifier
+ * file_space_id - file dataspace identifier
+ * xfer - file transfer property
+ * dims - one-demnsional array of size 2
+ * dims[0] = MAXLENGTH
+ * dims[1] = number of elements of VL type
+ * OUTPUTS
+ * buf - data buffer
+ * len - array element lenghts
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
+ * Wednesday, October 24, 2002
+ * HISTORY
+ *
+ * SOURCE
+*/
+
+int_f
+nh5dread_f_c ( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_space_id,
+ hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf)
+/******/
+{
+ int ret_value = -1;
+ hid_t c_dset_id;
+ hid_t c_mem_type_id;
+ hid_t c_mem_space_id;
+ hid_t c_file_space_id;
+ hid_t c_xfer_prp;
+ herr_t status;
+
+/* int i, j; */
+/* typedef struct { */
+/* int x; */
+/* float y; */
+/* } r_dual_c; */
+
+/* r_dual_c *name=buf; */
+
+/* r_dual_c access[4][4]; */
+
+ c_dset_id = (hid_t)*dset_id;
+ c_mem_type_id = (hid_t)*mem_type_id;
+ c_mem_space_id = (hid_t)*mem_space_id;
+ c_file_space_id = (hid_t)*file_space_id;
+ c_xfer_prp = (hid_t)*xfer_prp;
+ /*
+ * Call H5Dread function.
+ */
+
+/* printf("%i %i %i %i %i \n",c_dset_id, c_mem_type_id, c_mem_space_id, c_file_space_id, c_xfer_prp); */
+
+ status = H5Dread(c_dset_id, c_mem_type_id, c_mem_space_id, c_file_space_id, c_xfer_prp, buf);
+ if ( status < 0 ) return ret_value;
+
+/* for ( i=0; i<4; ++i) */
+/* for (j = 0; j<4; ++j) { */
+/* access[i][j] = name[i*4+j]; */
+/* /\* access[i].x = access[i].x + 1; *\/ */
+/* printf("x = %i \n", access[i][j].x); */
+/* printf("y = %f \n", access[i][j].y); */
+/* } */
+
+
+ ret_value = 1;
+ return ret_value;
+}
+/****if* H5Df/nh5dget_access_plist_c
+ * NAME
+ * nh5dget_access_plist_c
+ * PURPOSE
+ * Call H5Dget_access_plist
+ * INPUTS
+ * dset_id - dataset identifier
+ * OUTPUTS
+ * plist_id - the dataset access property list identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * April 13, 2009
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * April 13, 2009
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
+
int_f
nh5dget_access_plist_c (hid_t_f *dset_id, hid_t_f *plist_id)
+/******/
{
int ret_value = -1;
/*
@@ -2020,4 +2472,38 @@ nh5dget_access_plist_c (hid_t_f *dset_id, hid_t_f *plist_id)
return ret_value;
}
+/****if* H5Df/nh5dvlen_reclaim_c
+ * NAME
+ * nh5dvlen_reclaim_c
+ * PURPOSE
+ * Call H5Dvlen_reclaim
+ * INPUTS
+ * type_id - Identifier of the datatype.
+ * space_id - Identifier of the dataspace.
+ * plist_id - Identifier of the property list used to create the buffer.
+ * buf - Pointer to the buffer to be reclaimed.
+ *
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * January 15, 2011
+ *
+ * SOURCE
+*/
+int_f
+nh5dvlen_reclaim_c(hid_t_f *type_id, hid_t_f *space_id, hid_t_f *plist_id, void *buf)
+/******/
+{
+ int ret_value = -1;
+ herr_t status;
+
+ /*
+ * Call H5Dvlen_reclaim function.
+ */
+ status = H5Dvlen_reclaim((hid_t)*type_id, (hid_t)*space_id, (hid_t)*plist_id, buf);
+ if ( status < 0 ) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
diff --git a/fortran/src/H5Dff.f90 b/fortran/src/H5Dff.f90
index c4810b3..24917e7 100644
--- a/fortran/src/H5Dff.f90
+++ b/fortran/src/H5Dff.f90
@@ -1,3 +1,17 @@
+!****h* ROBODoc/H5D
+!
+! NAME
+! MODULE H5D
+!
+! FILE
+! fortran/src/H5Dff.f90
+!
+! PURPOSE
+! This file contains Fortran interfaces for H5D functions. It includes
+! all the functions that are independent on whether the Fortran 2003 functions
+! are enabled or disabled.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,76 +27,19 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! NOTES
+! *** IMPORTANT ***
+! If you add a new H5D function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
!
-! This file contains Fortran90 interfaces for H5D functions.
-!
+!*****
+
MODULE H5D
USE H5GLOBAL
- INTERFACE h5dwrite_f
-
- MODULE PROCEDURE h5dwrite_reference_obj
- MODULE PROCEDURE h5dwrite_reference_dsetreg
- MODULE PROCEDURE h5dwrite_integer_scalar
- MODULE PROCEDURE h5dwrite_integer_1
- MODULE PROCEDURE h5dwrite_integer_2
- MODULE PROCEDURE h5dwrite_integer_3
- MODULE PROCEDURE h5dwrite_integer_4
- MODULE PROCEDURE h5dwrite_integer_5
- MODULE PROCEDURE h5dwrite_integer_6
- MODULE PROCEDURE h5dwrite_integer_7
- MODULE PROCEDURE h5dwrite_char_scalar
- MODULE PROCEDURE h5dwrite_char_1
- MODULE PROCEDURE h5dwrite_char_2
- MODULE PROCEDURE h5dwrite_char_3
- MODULE PROCEDURE h5dwrite_char_4
- MODULE PROCEDURE h5dwrite_char_5
- MODULE PROCEDURE h5dwrite_char_6
- MODULE PROCEDURE h5dwrite_char_7
- MODULE PROCEDURE h5dwrite_real_scalar
- MODULE PROCEDURE h5dwrite_real_1
- MODULE PROCEDURE h5dwrite_real_2
- MODULE PROCEDURE h5dwrite_real_3
- MODULE PROCEDURE h5dwrite_real_4
- MODULE PROCEDURE h5dwrite_real_5
- MODULE PROCEDURE h5dwrite_real_6
- MODULE PROCEDURE h5dwrite_real_7
- END INTERFACE
-
- INTERFACE h5dread_f
-
- MODULE PROCEDURE h5dread_reference_obj
- MODULE PROCEDURE h5dread_reference_dsetreg
- MODULE PROCEDURE h5dread_integer_scalar
- MODULE PROCEDURE h5dread_integer_1
- MODULE PROCEDURE h5dread_integer_2
- MODULE PROCEDURE h5dread_integer_3
- MODULE PROCEDURE h5dread_integer_4
- MODULE PROCEDURE h5dread_integer_5
- MODULE PROCEDURE h5dread_integer_6
- MODULE PROCEDURE h5dread_integer_7
- MODULE PROCEDURE h5dread_char_scalar
- MODULE PROCEDURE h5dread_char_1
- MODULE PROCEDURE h5dread_char_2
- MODULE PROCEDURE h5dread_char_3
- MODULE PROCEDURE h5dread_char_4
- MODULE PROCEDURE h5dread_char_5
- MODULE PROCEDURE h5dread_char_6
- MODULE PROCEDURE h5dread_char_7
- MODULE PROCEDURE h5dread_real_scalar
- MODULE PROCEDURE h5dread_real_1
- MODULE PROCEDURE h5dread_real_2
- MODULE PROCEDURE h5dread_real_3
- MODULE PROCEDURE h5dread_real_4
- MODULE PROCEDURE h5dread_real_5
- MODULE PROCEDURE h5dread_real_6
- MODULE PROCEDURE h5dread_real_7
- END INTERFACE
-
- INTERFACE h5dwrite_vl_f
- MODULE PROCEDURE h5dwrite_vl_integer
- MODULE PROCEDURE h5dwrite_vl_real
- MODULE PROCEDURE h5dwrite_vl_string
+ INTERFACE h5dextend_f
+ MODULE PROCEDURE h5dset_extent_f
END INTERFACE
INTERFACE h5dread_vl_f
@@ -91,53 +48,50 @@ MODULE H5D
MODULE PROCEDURE h5dread_vl_string
END INTERFACE
- INTERFACE h5dfill_f
- MODULE PROCEDURE h5dfill_integer
- MODULE PROCEDURE h5dfill_real
- MODULE PROCEDURE h5dfill_char
- END INTERFACE
-
- INTERFACE h5dextend_f
- MODULE PROCEDURE h5dset_extent_f
+ INTERFACE h5dwrite_vl_f
+ MODULE PROCEDURE h5dwrite_vl_integer
+ MODULE PROCEDURE h5dwrite_vl_real
+ MODULE PROCEDURE h5dwrite_vl_string
END INTERFACE
-
CONTAINS
-!----------------------------------------------------------------------
-! Name: h5dcreate_f
!
-! Purpose: Creates a dataset at the specified location
+!****s* H5D/h5dcreate_f
!
-! Inputs:
-! loc_id - file or group identifier
-! name - dataset name
-! type_id - dataset datatype identifier
-! space_id - dataset dataspace identifier
-! Outputs:
-! dset_id - dataset identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! creation_prp - Dataset creation property list
-! lcpl_id - Link creation property list
-! dapl_id - Dataset access property list
+! NAME
+! h5dcreate_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Creates a dataset at the specified location
!
-! Modifications:
-! - Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
+! INPUTS
+! loc_id - file or group identifier
+! name - dataset name
+! type_id - dataset datatype identifier
+! space_id - dataset dataspace identifier
+! OUTPUTS
+! dset_id - dataset identifier
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! creation_prp - Dataset creation property list
+! lcpl_id - Link creation property list
+! dapl_id - Dataset access property list
!
-! - Added version's 1.8 new optional parameters
-! February, 2008
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Comment:
-!----------------------------------------------------------------------
-
+! HISTORY
+!
+! - Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! - Added version's 1.8 new optional parameters
+! February, 2008
+!
+! SOURCE
SUBROUTINE h5dcreate_f(loc_id, name, type_id, space_id, dset_id, &
hdferr, dcpl_id, lcpl_id, dapl_id)
IMPLICIT NONE
@@ -147,7 +101,7 @@ CONTAINS
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER(HID_T), INTENT(OUT) :: dset_id ! Dataset identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
+!*****
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: dcpl_id ! Dataset creation property list
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lcpl_id ! Link creation property list
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: dapl_id ! Dataset access property list
@@ -156,7 +110,7 @@ CONTAINS
INTEGER(HID_T) :: dcpl_id_default
INTEGER(HID_T) :: dapl_id_default
- INTEGER :: namelen ! Name length
+ INTEGER :: namelen ! Name length
! MS FORTRAN needs explicit interface for C functions called here.
!
@@ -196,4176 +150,885 @@ CONTAINS
END SUBROUTINE h5dcreate_f
-!----------------------------------------------------------------------
-! Name: h5dopen_f
-!
-! Purpose: Opens an existing dataset.
-!
-! Inputs:
-! loc_id - file or group identifier
-! name - dataset name
-! Outputs:
-! dset_id - dataset identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! dapl_id - Dataset access property list
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: -Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! -Added 1.8 (optional) parameter dapl_id
-! February, 2008, M. Scot Breitenfeld
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5dopen_f(loc_id, name, dset_id, hdferr, dapl_id)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the dataset
- INTEGER(HID_T), INTENT(OUT) :: dset_id ! Dataset identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: dapl_id ! Dataset access property list
- INTEGER :: namelen ! Name length
-
- INTEGER(HID_T) :: dapl_id_default
-
-! INTEGER, EXTERNAL :: h5dopen_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dopen_c(loc_id, name, namelen, dapl_id_default, dset_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DOPEN_C'::h5dopen_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER :: namelen
- INTEGER(HID_T), INTENT(IN) :: dapl_id_default
- INTEGER(HID_T), INTENT(OUT) :: dset_id
- END FUNCTION h5dopen_c
- END INTERFACE
-
- dapl_id_default = H5P_DEFAULT_F
- IF(PRESENT(dapl_id)) dapl_id_default = dapl_id
-
- namelen = LEN(name)
- hdferr = h5dopen_c(loc_id, name, namelen, dapl_id_default, dset_id)
-
- END SUBROUTINE h5dopen_f
-
-!----------------------------------------------------------------------
-! Name: h5dclose_f
-!
-! Purpose: Closes a dataset.
-!
-! Inputs:
-! dset_id - dataset identifier
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5dclose_f(dset_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5dclose_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dclose_c(dset_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DCLOSE_C'::h5dclose_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- END FUNCTION h5dclose_c
- END INTERFACE
-
- hdferr = h5dclose_c(dset_id)
-
- END SUBROUTINE h5dclose_f
-
- SUBROUTINE h5dwrite_reference_obj(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: dims ! size of the bufffer buf
- TYPE(hobj_ref_t_f), DIMENSION(dims(1)), INTENT(IN) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HADDR_T), ALLOCATABLE, DIMENSION(:) :: ref_buf
- INTEGER :: j
-
-! INTEGER, EXTERNAL :: h5dwrite_ref_obj_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwrite_ref_obj_c(dset_id, mem_type_id,&
- mem_space_id_default, &
- file_space_id_default, xfer_prp_default, ref_buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REF_OBJ_C'::h5dwrite_ref_obj_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HADDR_T), DIMENSION(*) :: ref_buf
- INTEGER(HSIZE_T), DIMENSION(*) :: dims
- END FUNCTION h5dwrite_ref_obj_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- allocate(ref_buf(dims(1)), stat=hdferr)
- if (hdferr .NE. 0 ) then
- hdferr = -1
- return
- else
- do j = 1, dims(1)
- ref_buf(j) = buf(j)%ref
- enddo
- endif
- hdferr = h5dwrite_ref_obj_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, ref_buf, dims(1))
- deallocate(ref_buf)
-
- END SUBROUTINE h5dwrite_reference_obj
-
- SUBROUTINE h5dwrite_reference_dsetreg(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: dims ! size of the bufffer buf
- TYPE(hdset_reg_ref_t_f), DIMENSION(dims(1)), INTENT(IN) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf
- INTEGER :: i,j
-
-! INTEGER, EXTERNAL :: h5dwrite_ref_reg_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwrite_ref_reg_c(dset_id, mem_type_id,&
- mem_space_id_default, &
- file_space_id_default, xfer_prp_default, ref_buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REF_REG_C'::h5dwrite_ref_reg_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER, DIMENSION(*) :: ref_buf
- INTEGER(HSIZE_T), DIMENSION(*) :: dims
- END FUNCTION h5dwrite_ref_reg_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- allocate(ref_buf(REF_REG_BUF_LEN*dims(1)), stat=hdferr)
- if (hdferr .NE. 0 ) then
- hdferr = -1
- return
- else
- do j = 1, dims(1)
- do i = 1, REF_REG_BUF_LEN
- ref_buf(REF_REG_BUF_LEN*(j-1) + i) = buf(j)%ref(i)
- enddo
- enddo
- endif
- hdferr = h5dwrite_ref_reg_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, ref_buf, dims)
- deallocate(ref_buf)
-
- END SUBROUTINE h5dwrite_reference_dsetreg
-
-
- SUBROUTINE h5dwrite_integer_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER, INTENT(IN) :: buf ! Data buffer
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwrite_integer_s_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwrite_integer_s_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_INTEGER_S_C'::h5dwrite_integer_s_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN) :: buf
- END FUNCTION h5dwrite_integer_s_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_integer_s_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_integer_scalar
-
- SUBROUTINE h5dwrite_integer_1(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwrite_integer_1_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwrite_integer_1_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_INTEGER_1_C'::h5dwrite_integer_1_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1)) :: buf
- END FUNCTION h5dwrite_integer_1_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_integer_1_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_integer_1
-
- SUBROUTINE h5dwrite_integer_2(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwrite_integer_2_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwrite_integer_2_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_INTEGER_2_C'::h5dwrite_integer_2_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5dwrite_integer_2_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
- hdferr = h5dwrite_integer_2_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims)
-
- END SUBROUTINE h5dwrite_integer_2
-
- SUBROUTINE h5dwrite_integer_3(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwrite_integer_3_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwrite_integer_3_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_INTEGER_3_C'::h5dwrite_integer_3_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5dwrite_integer_3_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_integer_3_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims)
-
- END SUBROUTINE h5dwrite_integer_3
-
- SUBROUTINE h5dwrite_integer_4(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwrite_integer_4_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwrite_integer_4_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_INTEGER_4_C'::h5dwrite_integer_4_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- END FUNCTION h5dwrite_integer_4_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_integer_4_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims)
-
- END SUBROUTINE h5dwrite_integer_4
-
- SUBROUTINE h5dwrite_integer_5(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwrite_integer_5_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwrite_integer_5_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_INTEGER_5_C'::h5dwrite_integer_5_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5dwrite_integer_5_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_integer_5_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims)
-
- END SUBROUTINE h5dwrite_integer_5
-
- SUBROUTINE h5dwrite_integer_6(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwrite_integer_6_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwrite_integer_6_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_INTEGER_6_C'::h5dwrite_integer_6_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5dwrite_integer_6_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_integer_6_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims)
-
- END SUBROUTINE h5dwrite_integer_6
-
- SUBROUTINE h5dwrite_integer_7(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwrite_integer_7_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwrite_integer_7_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_INTEGER_7_C'::h5dwrite_integer_7_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5dwrite_integer_7_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_integer_7_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims)
-
- END SUBROUTINE h5dwrite_integer_7
-
-
- SUBROUTINE h5dwrite_char_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwritec_s_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwritec_s_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITEC_S_C'::h5dwritec_s_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN) :: buf
- END FUNCTION h5dwritec_s_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwritec_s_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_char_scalar
-
- SUBROUTINE h5dwrite_char_1(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwritec_1_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwritec_1_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITEC_1_C'::h5dwritec_1_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1)) :: buf
- END FUNCTION h5dwritec_1_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwritec_1_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_char_1
-
- SUBROUTINE h5dwrite_char_2(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwritec_2_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwritec_2_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITEC_2_C'::h5dwritec_2_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5dwritec_2_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwritec_2_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_char_2
-
- SUBROUTINE h5dwrite_char_3(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwritec_3_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwritec_3_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITEC_3_C'::h5dwritec_3_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5dwritec_3_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwritec_3_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_char_3
-
- SUBROUTINE h5dwrite_char_4(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwritec_4_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwritec_4_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITEC_4_C'::h5dwritec_4_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- END FUNCTION h5dwritec_4_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwritec_4_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_char_4
-
- SUBROUTINE h5dwrite_char_5(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwritec_5_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwritec_5_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITEC_5_C'::h5dwritec_5_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5dwritec_5_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwritec_5_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_char_5
-
- SUBROUTINE h5dwrite_char_6(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwritec_6_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwritec_6_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITEC_6_C'::h5dwritec_6_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5dwritec_6_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwritec_6_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_char_6
-
- SUBROUTINE h5dwrite_char_7(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwritec_7_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwritec_7_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITEC_7_C'::h5dwritec_7_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5dwritec_7_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwritec_7_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_char_7
-
- SUBROUTINE h5dwrite_real_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwrite_real_s_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwrite_real_s_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REAL_S_C'::h5dwrite_real_s_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN) :: buf
- END FUNCTION h5dwrite_real_s_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_real_s_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_real_scalar
-
- SUBROUTINE h5dwrite_real_1(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwrite_real_1_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwrite_real_1_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REAL_1_C'::h5dwrite_real_1_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1)) :: buf
- END FUNCTION h5dwrite_real_1_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_real_1_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_real_1
-
- SUBROUTINE h5dwrite_real_2(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwrite_real_2_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwrite_real_2_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REAL_2_C'::h5dwrite_real_2_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5dwrite_real_2_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_real_2_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_real_2
-
- SUBROUTINE h5dwrite_real_3(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwrite_real_3_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwrite_real_3_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REAL_3_C'::h5dwrite_real_3_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5dwrite_real_3_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_real_3_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_real_3
-
- SUBROUTINE h5dwrite_real_4(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwrite_real_4_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwrite_real_4_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REAL_4_C'::h5dwrite_real_4_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- END FUNCTION h5dwrite_real_4_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_real_4_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_real_4
-
- SUBROUTINE h5dwrite_real_5(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwrite_real_5_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwrite_real_5_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REAL_5_C'::h5dwrite_real_5_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5dwrite_real_5_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_real_5_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_real_5
-
- SUBROUTINE h5dwrite_real_6(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwrite_real_6_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwrite_real_6_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REAL_6_C'::h5dwrite_real_6_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5dwrite_real_6_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_real_6_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_real_6
-
- SUBROUTINE h5dwrite_real_7(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwrite_real_7_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwrite_real_7_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REAL_7_C'::h5dwrite_real_7_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5dwrite_real_7_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_real_7_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_real_7
-
-!----------------------------------------------------------------------
-! Name: h5dread_f
!
-! Purpose: Reads raw data from the specified dataset into buf,
-! converting from file datatype and dataspace to memory
-! datatype and dataspace.
+!****s* H5D/h5dopen_f
!
-! Inputs:
-! dset_id - dataset identifier
-! mem_type_id - memory type identifier
-! dims - 1-dim array of size 7; dims(k) has the size
-! - of k-th dimension of the buf array
-! Outputs:
-! buf - buffer to read data in
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! mem_space_id - memory dataspace identifier
-! file_space_id - file dataspace identifier
-! xfer_prp - trasfer property list identifier
+! NAME
+! h5dopen_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Opens an existing dataset.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
+! INPUTS
+! loc_id - file or group identifier
+! name - dataset name
+! OUTPUTS
+! dset_id - dataset identifier
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! dapl_id - Dataset access property list
!
-! dims parameter was added to make code portable;
-! n parameter was replaced with dims parameter in
-! the h5dwrite_reference_obj and h5dwrite_reference_dsetreg
-! functions. April 2, 2001
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Comment: This function is overloaded to read INTEGER,
-! REAL, DOUBLE PRECISION and CHARACTER buffers
-! up to 7 dimensions, and one dimensional buffers
-! of the TYPE(hobj_ref_t_f) and TYPE(hdset_reg_ref_t_f)
-! types.
-!----------------------------------------------------------------------
- SUBROUTINE h5dread_reference_obj(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- TYPE(hobj_ref_t_f), INTENT(INOUT) , &
- DIMENSION(dims(1)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HADDR_T), ALLOCATABLE, DIMENSION(:) :: ref_buf
- INTEGER :: j
-
-! INTEGER, EXTERNAL :: h5dread_ref_obj_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! HISTORY
+! -Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
!
- INTERFACE
- INTEGER FUNCTION h5dread_ref_obj_c(dset_id, mem_type_id,&
- mem_space_id_default, &
- file_space_id_default, xfer_prp_default, ref_buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REF_OBJ_C'::h5dread_ref_obj_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER(HADDR_T), DIMENSION(*) :: ref_buf
- END FUNCTION h5dread_ref_obj_c
- END INTERFACE
-
- allocate(ref_buf(dims(1)), stat=hdferr)
- if (hdferr .NE. 0) then
- hdferr = -1
- return
- endif
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_ref_obj_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, ref_buf, dims)
- do j = 1, dims(1)
- buf(j)%ref = ref_buf(j)
- enddo
- deallocate(ref_buf)
- END SUBROUTINE h5dread_reference_obj
-
- SUBROUTINE h5dread_reference_dsetreg(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- TYPE(hdset_reg_ref_t_f), INTENT(INOUT), &
- DIMENSION(dims(1)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf
- INTEGER :: i,j
-
-! INTEGER, EXTERNAL :: h5dread_ref_reg_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! -Added 1.8 (optional) parameter dapl_id
+! February, 2008, M. Scot Breitenfeld
!
- INTERFACE
- INTEGER FUNCTION h5dread_ref_reg_c(dset_id, mem_type_id,&
- mem_space_id_default, &
- file_space_id_default, xfer_prp_default, ref_buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REF_REG_C'::h5dread_ref_reg_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, DIMENSION(*) :: ref_buf
- END FUNCTION h5dread_ref_reg_c
- END INTERFACE
-
- allocate(ref_buf(REF_REG_BUF_LEN*dims(1)), stat=hdferr)
- if (hdferr .NE. 0) then
- hdferr = -1
- return
- endif
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
+! SOURCE
+ SUBROUTINE h5dopen_f(loc_id, name, dset_id, hdferr, dapl_id)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the dataset
+ INTEGER(HID_T), INTENT(OUT) :: dset_id ! Dataset identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: dapl_id ! Dataset access property list
+!*****
+ INTEGER :: namelen ! Name length
- hdferr = h5dread_ref_reg_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, ref_buf, dims)
+ INTEGER(HID_T) :: dapl_id_default
- do j = 1, dims(1)
- do i = 1, REF_REG_BUF_LEN
- buf(j)%ref(i) = ref_buf(REF_REG_BUF_LEN*(j-1) + i)
- enddo
- enddo
- deallocate(ref_buf)
- END SUBROUTINE h5dread_reference_dsetreg
+ INTERFACE
+ INTEGER FUNCTION h5dopen_c(loc_id, name, namelen, dapl_id_default, dset_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DOPEN_C'::h5dopen_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER(HID_T), INTENT(IN) :: dapl_id_default
+ INTEGER(HID_T), INTENT(OUT) :: dset_id
+ END FUNCTION h5dopen_c
+ END INTERFACE
+ dapl_id_default = H5P_DEFAULT_F
+ IF(PRESENT(dapl_id)) dapl_id_default = dapl_id
- SUBROUTINE h5dread_integer_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(INOUT) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
+ namelen = LEN(name)
+ hdferr = h5dopen_c(loc_id, name, namelen, dapl_id_default, dset_id)
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
+ END SUBROUTINE h5dopen_f
-! INTEGER, EXTERNAL :: h5dread_integer_s_c
-! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5dread_integer_s_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_INTEGER_S_C'::h5dread_integer_s_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(OUT) :: buf
- END FUNCTION h5dread_integer_s_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_integer_s_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_integer_scalar
-
- SUBROUTINE h5dread_integer_1(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dread_integer_1_c
-! MS FORTRAN needs explicit interface for C functions called here.
+!****s* H5D/h5dclose_f
!
- INTERFACE
- INTEGER FUNCTION h5dread_integer_1_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_INTEGER_1_C'::h5dread_integer_1_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(OUT), &
- DIMENSION(dims(1)) :: buf
- END FUNCTION h5dread_integer_1_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_integer_1_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_integer_1
-
- SUBROUTINE h5dread_integer_2(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dread_integer_2_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! NAME
+! h5dclose_f
!
- INTERFACE
- INTEGER FUNCTION h5dread_integer_2_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_INTEGER_2_C'::h5dread_integer_2_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(OUT), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5dread_integer_2_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_integer_2_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims)
-
- END SUBROUTINE h5dread_integer_2
-
- SUBROUTINE h5dread_integer_3(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dread_integer_3_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! PURPOSE
+! Closes a dataset.
!
- INTERFACE
- INTEGER FUNCTION h5dread_integer_3_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_INTEGER_3_C'::h5dread_integer_3_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(OUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5dread_integer_3_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_integer_3_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims)
-
- END SUBROUTINE h5dread_integer_3
-
- SUBROUTINE h5dread_integer_4(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dread_integer_4_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! INPUTS
+! dset_id - dataset identifier
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
!
- INTERFACE
- INTEGER FUNCTION h5dread_integer_4_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_INTEGER_4_C'::h5dread_integer_4_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(OUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- END FUNCTION h5dread_integer_4_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_integer_4_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims)
-
- END SUBROUTINE h5dread_integer_4
-
- SUBROUTINE h5dread_integer_5(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dread_integer_5_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
- INTERFACE
- INTEGER FUNCTION h5dread_integer_5_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_INTEGER_5_C'::h5dread_integer_5_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5dread_integer_5_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_integer_5_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims)
-
- END SUBROUTINE h5dread_integer_5
-
- SUBROUTINE h5dread_integer_6(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dread_integer_6_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
!
- INTERFACE
- INTEGER FUNCTION h5dread_integer_6_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_INTEGER_6_C'::h5dread_integer_6_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5dread_integer_6_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_integer_6_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims)
-
- END SUBROUTINE h5dread_integer_6
-
- SUBROUTINE h5dread_integer_7(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dread_integer_7_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dread_integer_7_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_INTEGER_7_C'::h5dread_integer_7_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5dread_integer_7_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_integer_7_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims)
-
- END SUBROUTINE h5dread_integer_7
+! SOURCE
+ SUBROUTINE h5dclose_f(dset_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5dclose_c(dset_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DCLOSE_C'::h5dclose_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ END FUNCTION h5dclose_c
+ END INTERFACE
- SUBROUTINE h5dread_char_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
+ hdferr = h5dclose_c(dset_id)
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
+ END SUBROUTINE h5dclose_f
-! INTEGER, EXTERNAL :: h5dreadc_s_c
-! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5dreadc_s_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREADC_S_C'::h5dreadc_s_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(OUT) :: buf
- END FUNCTION h5dreadc_s_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dreadc_s_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_char_scalar
-
- SUBROUTINE h5dread_char_1(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dreadc_1_c
-! MS FORTRAN needs explicit interface for C functions called here.
+!****s* H5D/h5dget_type_f
!
- INTERFACE
- INTEGER FUNCTION h5dreadc_1_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREADC_1_C'::h5dreadc_1_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1)) :: buf
- END FUNCTION h5dreadc_1_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dreadc_1_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_char_1
-
- SUBROUTINE h5dread_char_2(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dreadc_2_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! NAME
+! h5dget_type_f
!
- INTERFACE
- INTEGER FUNCTION h5dreadc_2_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREADC_2_C'::h5dreadc_2_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5dreadc_2_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dreadc_2_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_char_2
-
- SUBROUTINE h5dread_char_3(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dreadc_3_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! PURPOSE
+! Returns an identifier for a copy of the datatype for a
+! dataset.
!
- INTERFACE
- INTEGER FUNCTION h5dreadc_3_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREADC_3_C'::h5dreadc_3_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5dreadc_3_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dreadc_3_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_char_3
-
- SUBROUTINE h5dread_char_4(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dreadc_4_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! INPUTS
+! dataset_id - dataset identifier
+! OUTPUTS
+! datatype_id - dataspace identifier
+! hdferr - Returns 0 if successful and -1 if fails
!
- INTERFACE
- INTEGER FUNCTION h5dreadc_4_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREADC_4_C'::h5dreadc_4_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- END FUNCTION h5dreadc_4_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dreadc_4_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_char_4
-
- SUBROUTINE h5dread_char_5(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dreadc_5_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
- INTERFACE
- INTEGER FUNCTION h5dreadc_5_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREADC_5_C'::h5dreadc_5_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5dreadc_5_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dreadc_5_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_char_5
-
- SUBROUTINE h5dread_char_6(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dreadc_6_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
!
- INTERFACE
- INTEGER FUNCTION h5dreadc_6_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREADC_6_C'::h5dreadc_6_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5dreadc_6_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dreadc_6_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_char_6
-
- SUBROUTINE h5dread_char_7(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dreadc_7_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! NOTES
!
- INTERFACE
- INTEGER FUNCTION h5dreadc_7_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREADC_7_C'::h5dreadc_7_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5dreadc_7_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dreadc_7_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_char_7
+! SOURCE
+ SUBROUTINE h5dget_type_f(dataset_id, datatype_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(OUT) :: datatype_id ! Datatype identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5dget_type_c (dataset_id, datatype_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DGET_TYPE_C'::h5dget_type_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dataset_id
+ INTEGER(HID_T), INTENT(OUT) :: datatype_id
+ END FUNCTION h5dget_type_c
+ END INTERFACE
- SUBROUTINE h5dread_real_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
+ hdferr = h5dget_type_c (dataset_id, datatype_id)
+ END SUBROUTINE h5dget_type_f
-! INTEGER, EXTERNAL :: h5dread_real_s_c
-! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5dread_real_s_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REAL_S_C'::h5dread_real_s_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(OUT) :: buf
- END FUNCTION h5dread_real_s_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_real_s_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_real_scalar
-
- SUBROUTINE h5dread_real_1(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dread_real_1_c
-! MS FORTRAN needs explicit interface for C functions called here.
+!****s* H5D/h5dset_extent
!
- INTERFACE
- INTEGER FUNCTION h5dread_real_1_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REAL_1_C'::h5dread_real_1_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1)) :: buf
- END FUNCTION h5dread_real_1_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_real_1_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_real_1
-
- SUBROUTINE h5dread_real_2(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dread_real_2_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! NAME
+! h5dset_extent (instead of obsolete name: h5dextend_f)
!
- INTERFACE
- INTEGER FUNCTION h5dread_real_2_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REAL_2_C'::h5dread_real_2_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5dread_real_2_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_real_2_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_real_2
-
- SUBROUTINE h5dread_real_3(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dread_real_3_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! PURPOSE
+! Extends a dataset with unlimited dimension.
!
- INTERFACE
- INTEGER FUNCTION h5dread_real_3_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REAL_3_C'::h5dread_real_3_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5dread_real_3_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_real_3_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_real_3
-
- SUBROUTINE h5dread_real_4(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3), dims(4)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dread_real_4_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! INPUTS
+! dataset_id - dataset identifier
+! size - array containing the new magnitude of
+! each dimension
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
!
- INTERFACE
- INTEGER FUNCTION h5dread_real_4_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REAL_4_C'::h5dread_real_4_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3), dims(4)) :: buf
- END FUNCTION h5dread_real_4_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_real_4_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_real_4
-
- SUBROUTINE h5dread_real_5(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dread_real_5_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
- INTERFACE
- INTEGER FUNCTION h5dread_real_5_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REAL_5_C'::h5dread_real_5_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5dread_real_5_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_real_5_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_real_5
-
- SUBROUTINE h5dread_real_6(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dread_real_6_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
!
- INTERFACE
- INTEGER FUNCTION h5dread_real_6_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REAL_6_C'::h5dread_real_6_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5dread_real_6_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_real_6_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_real_6
-
- SUBROUTINE h5dread_real_7(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dread_real_7_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! Changed name from the now obsolete h5dextend_f
+! to h5dset_extent_f. Provided interface to old name
+! for backward compatability. -MSB- March 14, 2008
!
- INTERFACE
- INTEGER FUNCTION h5dread_real_7_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REAL_7_C'::h5dread_real_7_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5dread_real_7_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_real_7_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
+! SOURCE
+ SUBROUTINE h5dset_extent_f(dataset_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: size
+ ! Array containing
+ ! dimensions' sizes
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5dset_extent_c(dataset_id, size)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DSET_EXTENT_C'::h5dset_extent_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dataset_id
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: size
+ END FUNCTION h5dset_extent_c
+ END INTERFACE
- END SUBROUTINE h5dread_real_7
+ hdferr = H5Dset_extent_c(dataset_id, size)
+ END SUBROUTINE h5dset_extent_f
-!----------------------------------------------------------------------
-! Name: h5dget_space_f
+!****s* H5D/h5dget_create_plist_f
!
-! Purpose: Returns an identifier for a copy of the dataspace for a
-! dataset.
+! NAME
+! h5dget_create_plist_f
!
-! Inputs:
-! dataset_id - dataset identifier
-! Outputs:
-! dataspace_id - dataspace identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! PURPOSE
+! Returns an identifier for a copy of the dataset creation
+! property list for a dataset.
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! INPUTS
+! dataset_id - dataset identifier
+! OUTPUTS
+! plist_id - creation property list identifier
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Comment:
-!----------------------------------------------------------------------
- SUBROUTINE h5dget_space_f(dataset_id, dataspace_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(OUT) :: dataspace_id ! Dataspace identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5dget_space_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dget_space_c(dataset_id, dataspace_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DGET_SPACE_C'::h5dget_space_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dataset_id
- INTEGER(HID_T), INTENT(OUT) :: dataspace_id
- END FUNCTION h5dget_space_c
- END INTERFACE
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+! SOURCE
+ SUBROUTINE h5dget_create_plist_f(dataset_id, plist_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(OUT) :: plist_id ! Dataset creation
+ ! property list identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5dget_create_plist_c(dataset_id, plist_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DGET_CREATE_PLIST_C'::h5dget_create_plist_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dataset_id
+ INTEGER(HID_T), INTENT(OUT) :: plist_id
+ END FUNCTION h5dget_create_plist_c
+ END INTERFACE
- hdferr = h5dget_space_c(dataset_id, dataspace_id)
- END SUBROUTINE h5dget_space_f
+ hdferr = h5dget_create_plist_c(dataset_id, plist_id)
+ END SUBROUTINE h5dget_create_plist_f
-!----------------------------------------------------------------------
-! Name: h5dget_type_f
!
-! Purpose: Returns an identifier for a copy of the datatype for a
-! dataset.
+!****s* H5D/h5dget_storage_size_f
!
-! Inputs:
-! dataset_id - dataset identifier
-! Outputs:
-! datatype_id - dataspace identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5dget_storage_size_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Returns the amount of storage requires by a dataset
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
+! INPUTS
+! dataset_id - dataset identifier
+! OUTPUTS
+! size - datastorage size
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5dget_type_f(dataset_id, datatype_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(OUT) :: datatype_id ! Datatype identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-! INTEGER, EXTERNAL :: h5dget_type_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dget_type_c (dataset_id, datatype_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DGET_TYPE_C'::h5dget_type_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dataset_id
- INTEGER(HID_T), INTENT(OUT) :: datatype_id
- END FUNCTION h5dget_type_c
- END INTERFACE
+! AUTHOR
+! Elena Pourmal
+! October 15, 2002
+! SOURCE
+ SUBROUTINE h5dget_storage_size_f(dataset_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
+ INTEGER(HSIZE_T), INTENT(OUT) :: size ! Amount of storage
+ ! allocated for dataset
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5dget_storage_size_c(dataset_id, size)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DGET_STORAGE_SIZE_C'::h5dget_storage_size_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dataset_id
+ INTEGER(HSIZE_T), INTENT(OUT) :: size
+ END FUNCTION h5dget_storage_size_c
+ END INTERFACE
- hdferr = h5dget_type_c (dataset_id, datatype_id)
- END SUBROUTINE h5dget_type_f
+ hdferr = h5dget_storage_size_c(dataset_id, size)
+ END SUBROUTINE h5dget_storage_size_f
-!----------------------------------------------------------------------
-! Name: h5dset_extent (instead of obsolete name: h5dextend_f)
!
-! Purpose: Extends a dataset with unlimited dimension.
+!****s* H5D/h5dvlen_get_max_len_f
!
-! Inputs:
-! dataset_id - dataset identifier
-! size - array containing the new magnitude of
-! each dimension
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5dvlen_get_max_len_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Returns maximum length of the VL array elements
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
+! INPUTS
+! dataset_id - dataset identifier
+! type_id - datatype identifier
+! space_id - dataspace identifier
+! OUTPUTS
+! size - buffer size
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! NONE
!
-! Changed name from the now obsolete h5dextend_f
-! to h5dset_extent_f. Provided interface to old name
-! for backward compatability. -MSB- March 14, 2008
+! AUTHOR
+! Elena Pourmal
+! October 15, 2002
!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5dset_extent_f(dataset_id, size, hdferr)
+! SOURCE
+ SUBROUTINE h5dvlen_get_max_len_f(dataset_id, type_id, space_id, len, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
- INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: size
- ! Array containing
- ! dimensions' sizes
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
+ INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
+ INTEGER(SIZE_T), INTENT(OUT) :: len ! Maximum length of the element
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- !
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
+!*****
INTERFACE
- INTEGER FUNCTION h5dset_extent_c(dataset_id, size)
+ INTEGER FUNCTION h5dvlen_get_max_len_c(dataset_id, type_id, space_id, len)
USE H5GLOBAL
!DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DSET_EXTENT_C'::h5dset_extent_c
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DVLEN_GET_MAX_LEN_C'::h5dvlen_get_max_len_c
!DEC$ENDIF
INTEGER(HID_T), INTENT(IN) :: dataset_id
- INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: size
- END FUNCTION h5dset_extent_c
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER(SIZE_T), INTENT(OUT) :: len
+ END FUNCTION h5dvlen_get_max_len_c
END INTERFACE
- hdferr = H5Dset_extent_c(dataset_id, size)
- END SUBROUTINE h5dset_extent_f
-
+ hdferr = h5dvlen_get_max_len_c(dataset_id, type_id, space_id, len)
+ END SUBROUTINE h5dvlen_get_max_len_f
-!----------------------------------------------------------------------
-! Name: h5dget_create_plist_f
!
-! Purpose: Returns an identifier for a copy of the dataset creation
-! property list for a dataset.
+!****s* H5D/h5dget_space_status_f
!
-! Inputs:
-! dataset_id - dataset identifier
-! Outputs:
-! plist_id - creation property list identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5dget_space_status_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Returns the status of data space allocation.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
+! INPUTS
+! dset_id - dataset identifier
+! OUTPUTS
+! flag - status; may have one of the following values:
+! H5D_SPACE_STS_ERROR_F
+! H5D_SPACE_STS_NOT_ALLOCATED_F
+! H5D_SPACE_STS_PART_ALLOCATED_F
+! H5D_SPACE_STS_ALLOCATED_F
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5dget_create_plist_f(dataset_id, plist_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(OUT) :: plist_id ! Dataset creation
- ! property list identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5dget_create_plist_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! AUTHOR
+! Elena Pourmal
+! March 12, 2003
!
- INTERFACE
- INTEGER FUNCTION h5dget_create_plist_c(dataset_id, plist_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DGET_CREATE_PLIST_C'::h5dget_create_plist_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dataset_id
- INTEGER(HID_T), INTENT(OUT) :: plist_id
- END FUNCTION h5dget_create_plist_c
- END INTERFACE
+! SOURCE
+ SUBROUTINE h5dget_space_status_f(dset_id, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataspace identifier
+ INTEGER, INTENT(IN) :: flag ! Memory buffer to fill in
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ !*****
+ INTERFACE
+ INTEGER FUNCTION h5dget_space_status_c(dset_id, flag)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DGET_SPACE_STATUS_C'::h5dget_space_status_c
+ !DEC$ENDIF
+ INTEGER(HID_T) :: dset_id
+ INTEGER :: flag
+ END FUNCTION h5dget_space_status_c
+ END INTERFACE
- hdferr = h5dget_create_plist_c(dataset_id, plist_id)
- END SUBROUTINE h5dget_create_plist_f
+ hdferr = h5dget_space_status_c(dset_id, flag)
+ END SUBROUTINE h5dget_space_status_f
-!----------------------------------------------------------------------
-! Name: h5dget_storage_size_f
-!
-! Purpose: Returns the amount of storage requires by a dataset
!
-! Inputs:
-! dataset_id - dataset identifier
-! Outputs:
-! size - datastorage size
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+!****s* H5D/h5dcreate_anon_f
!
-! Programmer: Elena Pourmal
-! October 15, 2002
+! NAME
+! h5dcreate_anon_f
!
-! Modifications:
+! PURPOSE
+! Creates a dataset in a file without linking it into the file structure
!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5dget_storage_size_f(dataset_id, size, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
- INTEGER(HSIZE_T), INTENT(OUT) :: size
- ! Amount of storage
- ! allocated for dataset
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTERFACE
- INTEGER FUNCTION h5dget_storage_size_c(dataset_id, size)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DGET_STORAGE_SIZE_C'::h5dget_storage_size_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dataset_id
- INTEGER(HSIZE_T), INTENT(OUT) :: size
- END FUNCTION h5dget_storage_size_c
- END INTERFACE
-
- hdferr = h5dget_storage_size_c(dataset_id, size)
- END SUBROUTINE h5dget_storage_size_f
-
-!----------------------------------------------------------------------
-! Name: h5dvlen_get_max_len_f
-!
-! Purpose: Returns maximum lenght of the VL array elements
-!
-! Inputs:
-! dataset_id - dataset identifier
-! type_id - datatype identifier
-! space_id - dataspace identifier
-! Outputs:
-! size - buffer size
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! INPUTS
+! loc_id - Identifier of the file or group within which to create the dataset.
+! type_id - Identifier of the datatype to use when creating the dataset.
+! space_id - Identifier of the dataspace to use when creating the dataset.
+! OUTPUTS
+! dset_id - dataset identifier
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! dcpl_id - Dataset creation property list identifier.
+! dapl_id - Dataset access property list identifier.
!
-! Programmer: Elena Pourmal
-! October 15, 2002
+! AUTHOR
+! M. Scot Breitenfeld
+! February 11, 2008
!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
+! SOURCE
+ SUBROUTINE h5dcreate_anon_f(loc_id, type_id, space_id, dset_id, hdferr, dcpl_id, dapl_id)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier.
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier.
+ INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier.
+ INTEGER(HID_T), INTENT(OUT) :: dset_id ! Dataset identifier.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code.
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: dcpl_id ! Dataset creation property list identifier.
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: dapl_id ! Dataset access property list identifier.
+!*****
+ INTEGER(HID_T) :: dcpl_id_default
+ INTEGER(HID_T) :: dapl_id_default
+ !
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5dcreate_anon_c(loc_id, type_id, space_id, dcpl_id_default, dapl_id_default, dset_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DCREATE_ANON_C'::h5dcreate_anon_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER(HID_T) :: dcpl_id_default
+ INTEGER(HID_T) :: dapl_id_default
+ INTEGER(HID_T), INTENT(OUT) :: dset_id
+ END FUNCTION h5dcreate_anon_c
+ END INTERFACE
- SUBROUTINE h5dvlen_get_max_len_f(dataset_id, type_id, space_id, len, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
- INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
- INTEGER(SIZE_T), INTENT(OUT) :: len ! Maximum length of the element
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ dcpl_id_default = H5P_DEFAULT_F
+ dapl_id_default = H5P_DEFAULT_F
- INTERFACE
- INTEGER FUNCTION h5dvlen_get_max_len_c(dataset_id, type_id, space_id, len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DVLEN_GET_MAX_LEN_C'::h5dvlen_get_max_len_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dataset_id
- INTEGER(HID_T), INTENT(IN) :: type_id
- INTEGER(HID_T), INTENT(IN) :: space_id
- INTEGER(SIZE_T), INTENT(OUT) :: len
- END FUNCTION h5dvlen_get_max_len_c
- END INTERFACE
+ IF(PRESENT(dcpl_id)) dcpl_id_default = dcpl_id
+ IF(PRESENT(dapl_id)) dapl_id_default = dapl_id
- hdferr = h5dvlen_get_max_len_c(dataset_id, type_id, space_id, len)
- END SUBROUTINE h5dvlen_get_max_len_f
+ hdferr = h5dcreate_anon_c(loc_id, type_id, space_id, dcpl_id_default, dapl_id_default, dset_id)
- SUBROUTINE h5dwrite_vl_integer(dset_id, mem_type_id, buf, dims, len, &
- hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims ! MAX len x num_elem
- INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: len ! Array to store
- ! the lenght of each
- ! element
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
+ END SUBROUTINE h5dcreate_anon_f
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
+ SUBROUTINE h5dwrite_vl_integer(dset_id, mem_type_id, buf, dims, len, &
+ hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims ! MAX len x num_elem
+ INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: len ! Array to store
+ ! the length of each
+ ! element
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)), TARGET :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
- INTERFACE
- INTEGER FUNCTION h5dwrite_vl_integer_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims, len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_VL_INTEGER_C'::h5dwrite_vl_integer_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: len
- INTEGER, INTENT(IN), &
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_vl_integer_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims, len)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_VL_INTEGER_C'::h5dwrite_vl_integer_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: len
+ INTEGER, INTENT(IN), &
DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5dwrite_vl_integer_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
+ END FUNCTION h5dwrite_vl_integer_c
+ END INTERFACE
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
- hdferr = h5dwrite_vl_integer_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims, len)
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
- END SUBROUTINE h5dwrite_vl_integer
+ hdferr = h5dwrite_vl_integer_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, &
+ buf, dims, len)
- SUBROUTINE h5dread_vl_integer(dset_id, mem_type_id, buf, dims, len, &
- hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims ! MAX len x num_elem
- INTEGER(SIZE_T), INTENT(INOUT), DIMENSION(*) :: len ! Array to store
- ! the lenght of each
- ! element
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- ! -1 if failed, 0 otherwise
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
+ END SUBROUTINE h5dwrite_vl_integer
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: tmp
- INTEGER :: error
+ SUBROUTINE h5dread_vl_integer(dset_id, mem_type_id, buf, dims, len, &
+ hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims ! MAX len x num_elem
+ INTEGER(SIZE_T), INTENT(INOUT), DIMENSION(*) :: len ! Array to store
+ ! the length of each
+ ! element
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)), TARGET :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! -1 if failed, 0 otherwise
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: tmp
+ INTEGER :: error
- INTERFACE
- INTEGER FUNCTION h5dread_vl_integer_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims, len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_VL_INTEGER_C'::h5dread_vl_integer_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER(SIZE_T), INTENT(INOUT), DIMENSION(*) :: len
- INTEGER, INTENT(INOUT), &
+ INTERFACE
+ INTEGER FUNCTION h5dread_vl_integer_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims, len)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_VL_INTEGER_C'::h5dread_vl_integer_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER(SIZE_T), INTENT(INOUT), DIMENSION(*) :: len
+ INTEGER, INTENT(INOUT), &
DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5dread_vl_integer_c
- END INTERFACE
+ END FUNCTION h5dread_vl_integer_c
+ END INTERFACE
- CALL h5dget_space_f(dset_id, tmp, error)
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = tmp
- file_space_id_default = tmp
+ CALL h5dget_space_f(dset_id, tmp, error)
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = tmp
+ file_space_id_default = tmp
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
- hdferr = h5dread_vl_integer_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims, len)
+ hdferr = h5dread_vl_integer_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, &
+ buf, dims, len)
- END SUBROUTINE h5dread_vl_integer
+ END SUBROUTINE h5dread_vl_integer
- SUBROUTINE h5dwrite_vl_real(dset_id, mem_type_id, buf, dims, len, &
- hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims ! MAX len x num_elem
- INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: len ! Array to store
- ! the lenght of each
- ! element
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
+ SUBROUTINE h5dwrite_vl_real(dset_id, mem_type_id, buf, dims, len, &
+ hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims ! MAX len x num_elem
+ INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: len ! Array to store
+ ! the length of each
+ ! element
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
- INTERFACE
- INTEGER FUNCTION h5dwrite_vl_real_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims, len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_VL_REAL_C'::h5dwrite_vl_real_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: len
- REAL, INTENT(IN), &
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_vl_real_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims, len)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_VL_REAL_C'::h5dwrite_vl_real_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: len
+ REAL, INTENT(IN), &
DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5dwrite_vl_real_c
- END INTERFACE
+ END FUNCTION h5dwrite_vl_real_c
+ END INTERFACE
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
- hdferr = h5dwrite_vl_real_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims, len)
+ hdferr = h5dwrite_vl_real_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, &
+ buf, dims, len)
- END SUBROUTINE h5dwrite_vl_real
+ END SUBROUTINE h5dwrite_vl_real
- SUBROUTINE h5dread_vl_real(dset_id, mem_type_id, buf, dims, len, &
- hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims ! MAX len x num_elem
- INTEGER(SIZE_T), INTENT(INOUT), DIMENSION(*) :: len ! Array to store
- ! the lenght of each
- ! element
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- ! -1 if failed, 0 otherwise
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
+ SUBROUTINE h5dread_vl_real(dset_id, mem_type_id, buf, dims, len, &
+ hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims ! MAX len x num_elem
+ INTEGER(SIZE_T), INTENT(INOUT), DIMENSION(*) :: len ! Array to store the length of each element
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)) :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! -1 if failed, 0 otherwise
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: tmp
- INTEGER :: error
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: tmp
+ INTEGER :: error
- INTERFACE
- INTEGER FUNCTION h5dread_vl_real_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims, len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_VL_REAL_C'::h5dread_vl_real_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER(SIZE_T), INTENT(INOUT), DIMENSION(*) :: len
- REAL, INTENT(INOUT), &
+ INTERFACE
+ INTEGER FUNCTION h5dread_vl_real_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims, len)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_VL_REAL_C'::h5dread_vl_real_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER(SIZE_T), INTENT(INOUT), DIMENSION(*) :: len
+ REAL, INTENT(INOUT), &
DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5dread_vl_real_c
- END INTERFACE
-
- CALL h5dget_space_f(dset_id, tmp, error)
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = tmp
- file_space_id_default = tmp
+ END FUNCTION h5dread_vl_real_c
+ END INTERFACE
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
+ CALL h5dget_space_f(dset_id, tmp, error)
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = tmp
+ file_space_id_default = tmp
- hdferr = h5dread_vl_real_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims, len)
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
- END SUBROUTINE h5dread_vl_real
+ hdferr = h5dread_vl_real_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, &
+ buf, dims, len)
- SUBROUTINE h5dwrite_vl_string(dset_id, mem_type_id, buf, dims, str_len, &
- hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims ! number of strings
- INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: str_len ! Array to store
- ! the lenght of each
- ! element
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(2)) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
+ END SUBROUTINE h5dread_vl_real
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-! CHARACTER, DIMENSION(dims(1)*dims(2)) :: tmp_buf
+ SUBROUTINE h5dwrite_vl_string(dset_id, mem_type_id, buf, dims, str_len, &
+ hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims ! Number of strings
+ INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: str_len ! Array to store the length of each element
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(2)) :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
- INTERFACE
- INTEGER FUNCTION h5dwrite_vl_string_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
-! xfer_prp_default, tmp_buf, dims, str_len)
- xfer_prp_default, buf, dims, str_len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_VL_STRING_C'::h5dwrite_vl_string_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims
- INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: str_len
-! CHARACTER, INTENT(IN), &
-! DIMENSION(dims(1)*dims(2)) :: tmp_buf
- CHARACTER(LEN=*), DIMENSION(dims(2)) :: buf
- END FUNCTION h5dwrite_vl_string_c
- END INTERFACE
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_vl_string_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ ! xfer_prp_default, tmp_buf, dims, str_len)
+ xfer_prp_default, buf, dims, str_len)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_VL_STRING_C'::h5dwrite_vl_string_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims
+ INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: str_len
+ CHARACTER(LEN=*), DIMENSION(dims(2)) :: buf
+ END FUNCTION
+ END INTERFACE
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-! do i = 1, dims(2)
-! do j = 1, dims(1)
-! tmp_buf((i-1)*dims(1) +j) = buf(i)(j:j)
-! enddo
-! enddo
-! write(*,*) (tmp_buf(j:j), j=1,dims(1)*dims(2))
-! write(*,*) str_len(1), str_len(2), str_len(3), str_len(4)
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
- hdferr = h5dwrite_vl_string_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims, str_len)
+ hdferr = h5dwrite_vl_string_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, &
+ buf, dims, str_len)
- END SUBROUTINE h5dwrite_vl_string
+ END SUBROUTINE h5dwrite_vl_string
- SUBROUTINE h5dread_vl_string(dset_id, mem_type_id, buf, dims, str_len, &
+ SUBROUTINE h5dread_vl_string(dset_id, mem_type_id, buf, dims, str_len, &
hdferr, &
mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims ! number of strings
- INTEGER(SIZE_T), INTENT(OUT), DIMENSION(*) :: str_len ! Array to store
- ! the lenght of each
- ! element
- CHARACTER(LEN=*), INTENT(OUT), &
- DIMENSION(dims(2)) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-! CHARACTER, DIMENSION(dims(1)*dims(2)) :: tmp_buf
-! integer i, j
-
- INTERFACE
- INTEGER FUNCTION h5dread_vl_string_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
-! xfer_prp_default, tmp_buf, dims, str_len)
- xfer_prp_default, buf, dims, str_len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_VL_STRING_C'::h5dread_vl_string_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims
- INTEGER(SIZE_T), INTENT(OUT), DIMENSION(*) :: str_len
-! CHARACTER, INTENT(IN), &
-! DIMENSION(dims(1)*dims(2)) :: tmp_buf
- CHARACTER(LEN=*), DIMENSION(dims(2)) :: buf
- END FUNCTION h5dread_vl_string_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-! do i = 1, dims(2)
-! do j = 1, dims(1)
-! tmp_buf((i-1)*dims(1) +j) = buf(i)(j:j)
-! enddo
-! enddo
-! write(*,*) (tmp_buf(j:j), j=1,dims(1)*dims(2))
-! write(*,*) str_len(1), str_len(2), str_len(3), str_len(4)
-
- hdferr = h5dread_vl_string_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims, str_len)
- RETURN
- END SUBROUTINE h5dread_vl_string
-
-!----------------------------------------------------------------------
-! Name: h5dfill_integer
-!
-! Purpose: Fills dataspace elements with a fill value in a memory buffer.
-! Only INTEGER, CHARACTER, REAL and DOUBLE PRECISION datatypes
-! of the fillvalues and buffers are supported. Buffer and fillvalue
-! are assumed to have the same datatype.
-! Only one-dimesional buffers are supported.
-!
-! Inputs:
-! fill_value - fill value
-! space_id - memory space selection identifier
-! buf - data buffer iin memory ro apply selection to
-! - of k-th dimension of the buf array
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-!
-! Programmer: Elena Pourmal
-! March 12, 2003
-!
-!----------------------------------------------------------------------
-
- SUBROUTINE h5dfill_integer(fill_value, space_id, buf, hdferr)
- IMPLICIT NONE
- INTEGER, INTENT(IN) :: fill_value ! Fill value
- INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
- INTEGER, INTENT(IN), DIMENSION(*) :: buf ! Memory buffer to fill in
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
- INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier
-
-! INTEGER, EXTERNAL :: h5dfill_integer_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dfill_integer_c(fill_value, fill_type_id, space_id, &
- buf, mem_type_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DFILL_INTEGER_C'::h5dfill_integer_c
- !DEC$ENDIF
- INTEGER, INTENT(IN) :: fill_value ! Fill value
- INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
- INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
- INTEGER, INTENT(IN), DIMENSION(*) :: buf ! Memory buffer to fill in
- INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier
- END FUNCTION h5dfill_integer_c
- END INTERFACE
- fill_type_id = H5T_NATIVE_INTEGER
- mem_type_id = H5T_NATIVE_INTEGER
-
- hdferr = h5dfill_integer_c(fill_value, fill_type_id, space_id, &
- buf, mem_type_id)
-
- END SUBROUTINE h5dfill_integer
-
-!----------------------------------------------------------------------
-! Name: h5dfill_real
-!
-! Purpose: Fills dataspace elements with a fill value in a memory buffer.
-! Only INTEGER, CHARACTER, REAL and DOUBLE PRECISION datatypes
-! of the fillvalues and buffers are supported. Buffer and fillvalue
-! are assumed to have the same datatype.
-! Only one-dimesional buffers are supported.
-!
-! Inputs:
-! fill_value - fill value
-! space_id - memory space selection identifier
-! buf - data buffer iin memory ro apply selection to
-! - of k-th dimension of the buf array
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-!
-! Programmer: Elena Pourmal
-! March 12, 2003
-!
-!----------------------------------------------------------------------
-
- SUBROUTINE h5dfill_real(fill_valuer, space_id, buf, hdferr)
- IMPLICIT NONE
- REAL, INTENT(IN) :: fill_valuer ! Fill value
- INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
- REAL, INTENT(IN), DIMENSION(*) :: buf ! Memory buffer to fill in
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
- INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier
-
-! INTEGER, EXTERNAL :: h5dfill_real_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dfill_real_c(fill_valuer, fill_type_id, space_id, &
- buf, mem_type_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DFILL_REAL_C'::h5dfill_real_c
- !DEC$ENDIF
- REAL, INTENT(IN) :: fill_valuer ! Fill value
- INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
- INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
- REAL, INTENT(IN), DIMENSION(*) :: buf ! Memory buffer to fill in
- INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier
- END FUNCTION h5dfill_real_c
- END INTERFACE
- fill_type_id = H5T_NATIVE_REAL
- mem_type_id = H5T_NATIVE_REAL
-
- hdferr = h5dfill_real_c(fill_valuer, fill_type_id, space_id, &
- buf, mem_type_id)
- END SUBROUTINE h5dfill_real
-
-!----------------------------------------------------------------------
-! Name: h5dfill_char
-!
-! Purpose: Fills dataspace elements with a fill value in a memory buffer.
-! Only INTEGER, CHARACTER, REAL and DOUBLE PRECISION datatypes
-! of the fillvalues and buffers are supported. Buffer and fillvalue
-! are assumed to have the same datatype.
-! Only one-dimesional buffers are supported.
-!
-! Inputs:
-! fill_value - fill value
-! space_id - memory space selection identifier
-! buf - data buffer iin memory ro apply selection to
-! - of k-th dimension of the buf array
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-!
-! Programmer: Elena Pourmal
-! March 12, 2003
-!
-!----------------------------------------------------------------------
-
- SUBROUTINE h5dfill_char(fill_value, space_id, buf, hdferr)
- IMPLICIT NONE
- CHARACTER, INTENT(IN) :: fill_value ! Fill value
- INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
- CHARACTER, INTENT(IN), DIMENSION(*) :: buf ! Memory buffer to fill in
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
- INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier
-
-! INTEGER, EXTERNAL :: h5dfillc_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dfillc_c(fill_value, fill_type_id, space_id, &
- buf, mem_type_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DFILLC_C'::h5dfillc_c
- !DEC$ENDIF
- CHARACTER, INTENT(IN) :: fill_value ! Fill value
- INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
- INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
- CHARACTER, INTENT(IN), DIMENSION(*) :: buf ! Memory buffer to fill in
- INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier
- END FUNCTION h5dfillc_c
- END INTERFACE
- fill_type_id = H5T_NATIVE_CHARACTER
- mem_type_id = H5T_NATIVE_CHARACTER
-
- hdferr = h5dfillc_c(fill_value, fill_type_id, space_id, &
- buf, mem_type_id)
-
- END SUBROUTINE h5dfill_char
-
-!----------------------------------------------------------------------
-! Name: h5dget_space_status_f
-!
-! Purpose: Returns the status of data space allocation.
-!
-! Inputs:
-! dset_id - dataset identifier
-! Outputs:
-! flag - status; may have one of the following values:
-! H5D_SPACE_STS_ERROR_F
-! H5D_SPACE_STS_NOT_ALLOCATED_F
-! H5D_SPACE_STS_PART_ALLOCATED_F
-! H5D_SPACE_STS_ALLOCATED_F
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-!
-! Programmer: Elena Pourmal
-! March 12, 2003
-!
-!----------------------------------------------------------------------
-
- SUBROUTINE h5dget_space_status_f(dset_id, flag, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataspace identifier
- INTEGER, INTENT(IN) :: flag ! Memory buffer to fill in
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5dget_space_status_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dget_space_status_c(dset_id, flag)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DGET_SPACE_STATUS_C'::h5dget_space_status_c
- !DEC$ENDIF
- INTEGER(HID_T) :: dset_id
- INTEGER :: flag
- END FUNCTION h5dget_space_status_c
- END INTERFACE
-
- hdferr = h5dget_space_status_c(dset_id, flag)
- END SUBROUTINE h5dget_space_status_f
-
-!----------------------------------------------------------------------
-! Name: h5dcreate_anon_f
-!
-! Purpose: Creates a dataset in a file without linking it into the file structure
-!
-! Inputs:
-! loc_id - Identifier of the file or group within which to create the dataset.
-! type_id - Identifier of the datatype to use when creating the dataset.
-! space_id - Identifier of the dataspace to use when creating the dataset.
-! Outputs:
-! dset_id - dataset identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! dcpl_id - Dataset creation property list identifier.
-! dapl_id - Dataset access property list identifier.
-!
-! Programmer: M. Scot Breitenfeld
-! February 11, 2008
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5dcreate_anon_f(loc_id, type_id, space_id, dset_id, hdferr, dcpl_id, dapl_id)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier.
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier.
- INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier.
- INTEGER(HID_T), INTENT(OUT) :: dset_id ! Dataset identifier.
- INTEGER, INTENT(OUT) :: hdferr ! Error code.
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: dcpl_id ! Dataset creation property list identifier.
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: dapl_id ! Dataset access property list identifier.
-
- INTEGER(HID_T) :: dcpl_id_default
- INTEGER(HID_T) :: dapl_id_default
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims ! number of strings
+ INTEGER(SIZE_T), INTENT(OUT), DIMENSION(*) :: str_len ! Array to store
+ ! the length of each
+ ! element
+ CHARACTER(LEN=*), INTENT(OUT), &
+ DIMENSION(dims(2)) :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
-!
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
- INTEGER FUNCTION h5dcreate_anon_c(loc_id, type_id, space_id, dcpl_id_default, dapl_id_default, dset_id)
+ INTEGER FUNCTION h5dread_vl_string_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims, str_len)
USE H5GLOBAL
!DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DCREATE_ANON_C'::h5dcreate_anon_c
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_VL_STRING_C'::h5dread_vl_string_c
!DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: loc_id
- INTEGER(HID_T), INTENT(IN) :: type_id
- INTEGER(HID_T), INTENT(IN) :: space_id
- INTEGER(HID_T) :: dcpl_id_default
- INTEGER(HID_T) :: dapl_id_default
- INTEGER(HID_T), INTENT(OUT) :: dset_id
- END FUNCTION h5dcreate_anon_c
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims
+ INTEGER(SIZE_T), INTENT(OUT), DIMENSION(*) :: str_len
+ CHARACTER(LEN=*), DIMENSION(dims(2)) :: buf
+ END FUNCTION h5dread_vl_string_c
END INTERFACE
- dcpl_id_default = H5P_DEFAULT_F
- dapl_id_default = H5P_DEFAULT_F
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
- IF(PRESENT(dcpl_id)) dcpl_id_default = dcpl_id
- IF(PRESENT(dapl_id)) dapl_id_default = dapl_id
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
- hdferr = h5dcreate_anon_c(loc_id, type_id, space_id, dcpl_id_default, dapl_id_default, dset_id)
+ hdferr = h5dread_vl_string_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, &
+ buf, dims, str_len)
+ RETURN
+ END SUBROUTINE h5dread_vl_string
- END SUBROUTINE h5dcreate_anon_f
-
-!----------------------------------------------------------------------
-! Name: h5dget_access_plist_f
!
-! Purpose: Returns a copy of the dataset creation property list.
+!****s* H5D/h5dget_space_f
!
-! Inputs:
-! dset_id - dataset identifier.
-! Outputs:
-! plist_id - the dataset access property list identifier.
-! hdferr: - error code
-! Success: 0
-! Failure: -1
+! NAME
+! h5dget_space_f
!
-! Programmer: M. Scot Breitenfeld
-! April 13, 2009
+! PURPOSE
+! Returns an identifier for a copy of the dataspace for a
+! dataset.
!
-! Modifications:
+! INPUTS
+! dataset_id - dataset identifier
+! OUTPUTS
+! dataspace_id - dataspace identifier
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5dget_access_plist_f(dset_id, plist_id, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! SOURCE
+ SUBROUTINE h5dget_space_f(dataset_id, dataspace_id, hdferr)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(OUT) :: plist_id
- INTEGER, INTENT(OUT) :: hdferr ! Error code.
-
+ INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(OUT) :: dataspace_id ! Dataspace identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
INTERFACE
- INTEGER FUNCTION h5dget_access_plist_c(dset_id, plist_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DGET_ACCESS_PLIST_C'::h5dget_access_plist_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(OUT) :: plist_id
- END FUNCTION h5dget_access_plist_c
- END INTERFACE
-
- hdferr = h5dget_access_plist_c(dset_id, plist_id)
+ INTEGER FUNCTION h5dget_space_c(dataset_id, dataspace_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DGET_SPACE_C'::h5dget_space_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dataset_id
+ INTEGER(HID_T), INTENT(OUT) :: dataspace_id
+ END FUNCTION h5dget_space_c
+ END INTERFACE
- END SUBROUTINE h5dget_access_plist_f
+ hdferr = h5dget_space_c(dataset_id, dataspace_id)
+END SUBROUTINE h5dget_space_f
+
+!****s* H5D/h5dget_access_plist_f
+!
+! NAME
+! h5dget_access_plist_f
+!
+! PURPOSE
+! Returns a copy of the dataset creation property list.
+!
+! INPUTS
+! dset_id - Dataset identifier
+!
+! OUTPUTS
+! plist_id - Dataset access property list identifier
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! April 13, 2009
+!
+! SOURCE
+SUBROUTINE h5dget_access_plist_f(dset_id, plist_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(OUT) :: plist_id
+ INTEGER , INTENT(OUT) :: hdferr
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5dget_access_plist_c(dset_id, plist_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DGET_ACCESS_PLIST_C'::h5dget_access_plist_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(OUT) :: plist_id
+ END FUNCTION h5dget_access_plist_c
+ END INTERFACE
+
+ hdferr = h5dget_access_plist_c(dset_id, plist_id)
+
+END SUBROUTINE h5dget_access_plist_f
END MODULE H5D
diff --git a/fortran/src/H5Dff_F03.f90 b/fortran/src/H5Dff_F03.f90
new file mode 100644
index 0000000..c4c8599
--- /dev/null
+++ b/fortran/src/H5Dff_F03.f90
@@ -0,0 +1,2912 @@
+!****h* ROBODoc/H5D (F03)
+!
+! NAME
+! H5D_PROVISIONAL
+!
+! PURPOSE
+! This file contains Fortran 90 and Fortran 2003 interfaces for H5D functions.
+! It contains the same functions as H5Dff_DEPRECIATE.f90 but includes the
+! Fortran 2003 functions and the interface listings. This file will be compiled
+! instead of H5Dff_DEPRECIATE.f90 if Fortran 2003 functions are enabled.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! NOTES
+! (1) The maximum rank of an array allowed in Fortran is 7, therefore
+! we only provide an interface for arrays up to and including rank 7.
+!
+! (2) Unfortunately we are using a generic interface and one of the factors
+! used in determining the proper routine to select is that of the array
+! rank being passed. Therefore, we can not create just one subroutine for
+! each array type (integer, real, etc...) and use a
+! rank 1 array of assumed size to handle multiple ranks, i.e.
+! (i.e. integer, dimension(*) :: ... )
+! (i.e. real , dimension(*) :: ... ) etc...
+!
+! (3) Could not place the USE ISO_C_BINDING in the module header because it may
+! conflict with the USE ISO_C_BINDING included in the user's program. Moved
+! the statement instead to each subroutine.
+!
+!
+! (4) C_LOC and character strings according to the Fortran 2003 standard:
+!
+! 15.1.2.5 C_LOC(X)
+!
+! Argument. X shall either
+!
+! (A) have interoperable type and type parameters and be
+! (a) a variable that has the TARGET attribute and is interoperable,
+! (b) an allocated allocatable variable that has the TARGET attribute
+! and is not an array of zero size, or
+! (c) an associated scalar pointer, or
+! (B) be a nonpolymorphic scalar, have no length type parameters, and be
+! (a) a nonallocatable, nonpointer variable that has the TARGET attribute,
+! (b) an allocated allocatable variable that has the TARGET attribute, or
+! (c) an associated pointer.
+!
+! - When X is a character, for interoperability the standard is:
+!
+! 15.2.1 Interoperability of intrinsic types
+!
+! ...if the type is character, interoperability also requires that the length type parameter
+! be omitted or be specified by an initialization expression whose value is one.
+!
+! THEREFORE compilers that have not extended the standard require the
+! argument in C_LOC to be of the variant:
+!
+! CHARACTER(LEN=1), TARGET :: chr
+! or
+! CHARACTER, TARGET :: chr
+! (B)
+! *** IMPORTANT ***
+! If you add a new H5D function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
+!
+!*****
+
+MODULE H5D_PROVISIONAL
+ USE H5GLOBAL
+
+ INTERFACE h5dwrite_f
+
+ MODULE PROCEDURE h5dwrite_reference_obj
+ MODULE PROCEDURE h5dwrite_reference_dsetreg
+ MODULE PROCEDURE h5dwrite_integer_scalar
+ MODULE PROCEDURE h5dwrite_integer_1
+ MODULE PROCEDURE h5dwrite_integer_2
+ MODULE PROCEDURE h5dwrite_integer_3
+ MODULE PROCEDURE h5dwrite_integer_4
+ MODULE PROCEDURE h5dwrite_integer_5
+ MODULE PROCEDURE h5dwrite_integer_6
+ MODULE PROCEDURE h5dwrite_integer_7
+ MODULE PROCEDURE h5dwrite_char_scalar
+ MODULE PROCEDURE h5dwrite_char_1
+ MODULE PROCEDURE h5dwrite_char_2
+ MODULE PROCEDURE h5dwrite_char_3
+ MODULE PROCEDURE h5dwrite_char_4
+ MODULE PROCEDURE h5dwrite_char_5
+ MODULE PROCEDURE h5dwrite_char_6
+ MODULE PROCEDURE h5dwrite_char_7
+ MODULE PROCEDURE h5dwrite_real_scalar
+ MODULE PROCEDURE h5dwrite_real_1
+ MODULE PROCEDURE h5dwrite_real_2
+ MODULE PROCEDURE h5dwrite_real_3
+ MODULE PROCEDURE h5dwrite_real_4
+ MODULE PROCEDURE h5dwrite_real_5
+ MODULE PROCEDURE h5dwrite_real_6
+ MODULE PROCEDURE h5dwrite_real_7
+
+ ! This is the preferred way to call h5dwrite
+ ! by passing an address
+ MODULE PROCEDURE h5dwrite_ptr
+
+ END INTERFACE
+
+ INTERFACE h5dread_f
+
+ MODULE PROCEDURE h5dread_reference_obj
+ MODULE PROCEDURE h5dread_reference_dsetreg
+ MODULE PROCEDURE h5dread_integer_scalar
+ MODULE PROCEDURE h5dread_integer_1
+ MODULE PROCEDURE h5dread_integer_2
+ MODULE PROCEDURE h5dread_integer_3
+ MODULE PROCEDURE h5dread_integer_4
+ MODULE PROCEDURE h5dread_integer_5
+ MODULE PROCEDURE h5dread_integer_6
+ MODULE PROCEDURE h5dread_integer_7
+ MODULE PROCEDURE h5dread_char_scalar
+ MODULE PROCEDURE h5dread_char_1
+ MODULE PROCEDURE h5dread_char_2
+ MODULE PROCEDURE h5dread_char_3
+ MODULE PROCEDURE h5dread_char_4
+ MODULE PROCEDURE h5dread_char_5
+ MODULE PROCEDURE h5dread_char_6
+ MODULE PROCEDURE h5dread_char_7
+ MODULE PROCEDURE h5dread_real_scalar
+ MODULE PROCEDURE h5dread_real_1
+ MODULE PROCEDURE h5dread_real_2
+ MODULE PROCEDURE h5dread_real_3
+ MODULE PROCEDURE h5dread_real_4
+ MODULE PROCEDURE h5dread_real_5
+ MODULE PROCEDURE h5dread_real_6
+ MODULE PROCEDURE h5dread_real_7
+
+ ! This is the preferred way to call h5dread
+ ! by passing an address
+ MODULE PROCEDURE h5dread_ptr
+
+ END INTERFACE
+
+! Interface for the function used to pass the C pointer of the buffer
+! to the C H5Dwrite routine
+
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_f_c(dset_id, mem_type_id, &
+ mem_space_id_default , &
+ file_space_id_default, &
+ xfer_prp_default, buf )
+ USE H5GLOBAL
+ USE, INTRINSIC :: ISO_C_BINDING
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_F_C'::h5dwrite_f_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ TYPE(C_PTR), VALUE :: buf
+ END FUNCTION h5dwrite_f_c
+ END INTERFACE
+
+! Interface for the function used to pass the C pointer of the buffer
+! to the C H5Dread routine
+
+ INTERFACE
+ INTEGER FUNCTION h5dread_f_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf)
+ USE H5GLOBAL
+ USE, INTRINSIC :: ISO_C_BINDING
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_F_C'::h5dread_f_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ TYPE(C_PTR), VALUE :: buf
+ END FUNCTION h5dread_f_c
+ END INTERFACE
+
+ INTERFACE h5dfill_f
+ MODULE PROCEDURE h5dfill_integer
+ MODULE PROCEDURE h5dfill_real
+ MODULE PROCEDURE h5dfill_char
+ END INTERFACE
+
+! Interface for the function used to pass the C pointer of the buffer
+! to the C H5Dfill routine
+
+ INTERFACE
+ INTEGER FUNCTION h5dfill_c(f_ptr_fill_value, fill_type_id, space_id, &
+ f_ptr_buf, mem_type_id)
+ USE H5GLOBAL
+ USE, INTRINSIC :: ISO_C_BINDING
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DFILL_C'::h5dfill_c
+ !DEC$ENDIF
+ TYPE(C_PTR), VALUE :: f_ptr_fill_value
+ INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
+ INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
+ TYPE(C_PTR), VALUE :: f_ptr_buf
+ INTEGER(HID_T) :: mem_type_id
+ END FUNCTION h5dfill_c
+ END INTERFACE
+
+CONTAINS
+
+ SUBROUTINE h5dwrite_reference_obj(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: dims ! size of the bufffer buf
+ TYPE(hobj_ref_t_f), DIMENSION(dims(1)), INTENT(IN), TARGET :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf(1))
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+
+ END SUBROUTINE h5dwrite_reference_obj
+
+ SUBROUTINE h5dwrite_reference_dsetreg(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: dims ! size of the bufffer buf
+ TYPE(hdset_reg_ref_t_f), DIMENSION(dims(1)), INTENT(IN), TARGET :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf
+ INTEGER :: i,j
+ TYPE(C_PTR) :: f_ptr
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_ref_reg_c(dset_id, mem_type_id,&
+ mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, ref_buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REF_REG_C'::h5dwrite_ref_reg_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER, DIMENSION(*) :: ref_buf
+ INTEGER(HSIZE_T), DIMENSION(*) :: dims
+ END FUNCTION h5dwrite_ref_reg_c
+ END INTERFACE
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf(1))
+
+ ALLOCATE(ref_buf(REF_REG_BUF_LEN*dims(1)), stat=hdferr)
+ IF (hdferr .NE. 0 ) THEN
+ hdferr = -1
+ RETURN
+ ELSE
+ DO j = 1, dims(1)
+ DO i = 1, REF_REG_BUF_LEN
+ ref_buf(REF_REG_BUF_LEN*(j-1) + i) = buf(j)%ref(i)
+ ENDDO
+ ENDDO
+ ENDIF
+ hdferr = h5dwrite_ref_reg_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, ref_buf, dims)
+ DEALLOCATE(ref_buf)
+
+ END SUBROUTINE h5dwrite_reference_dsetreg
+
+
+ SUBROUTINE h5dwrite_integer_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER, INTENT(IN), TARGET :: buf ! Data buffer
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_integer_scalar
+
+ SUBROUTINE h5dwrite_integer_1(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_integer_1
+
+ SUBROUTINE h5dwrite_integer_2(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)),TARGET :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_integer_2
+
+ SUBROUTINE h5dwrite_integer_3(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_integer_3
+
+ SUBROUTINE h5dwrite_integer_4(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_integer_4
+
+ SUBROUTINE h5dwrite_integer_5(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_integer_5
+
+ SUBROUTINE h5dwrite_integer_6(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_integer_6
+
+ SUBROUTINE h5dwrite_integer_7(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_integer_7
+
+ SUBROUTINE h5dwrite_char_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(*), INTENT(IN), TARGET :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ CALL h5dwrite_char_scalar_fix(dset_id, mem_type_id, buf, LEN(buf), dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+
+ END SUBROUTINE h5dwrite_char_scalar
+
+ SUBROUTINE h5dwrite_char_scalar_fix(dset_id, mem_type_id, buf, buf_len, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(IN) :: buf_len
+ CHARACTER(LEN=buf_len), INTENT(IN), TARGET :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ f_ptr = C_LOC(buf(1:1))
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_char_scalar_fix
+
+ SUBROUTINE h5dwrite_char_1(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(IN), DIMENSION(dims(1)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ f_ptr = C_LOC(buf(1)(1:1))
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_char_1
+
+ SUBROUTINE h5dwrite_char_2(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ f_ptr = C_LOC(buf(1,1)(1:1))
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_char_2
+
+ SUBROUTINE h5dwrite_char_3(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ f_ptr = C_LOC(buf(1,1,1)(1:1))
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_char_3
+
+ SUBROUTINE h5dwrite_char_4(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ f_ptr = C_LOC(buf(1,1,1,1)(1:1))
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_char_4
+
+ SUBROUTINE h5dwrite_char_5(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ f_ptr = C_LOC(buf(1,1,1,1,1)(1:1))
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_char_5
+
+ SUBROUTINE h5dwrite_char_6(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ f_ptr = C_LOC(buf(1,1,1,1,1,1)(1:1))
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_char_6
+
+ SUBROUTINE h5dwrite_char_7(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ f_ptr = C_LOC(buf(1,1,1,1,1,1,1)(1:1))
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_char_7
+
+
+ SUBROUTINE h5dwrite_real_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(IN), TARGET :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_real_scalar
+
+
+ SUBROUTINE h5dwrite_real_1(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_real_1
+
+ SUBROUTINE h5dwrite_real_2(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_real_2
+
+ SUBROUTINE h5dwrite_real_3(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_real_3
+
+ SUBROUTINE h5dwrite_real_4(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_real_4
+
+ SUBROUTINE h5dwrite_real_5(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_real_5
+
+ SUBROUTINE h5dwrite_real_6(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_real_6
+
+ SUBROUTINE h5dwrite_real_7(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_real_7
+
+ SUBROUTINE h5dwrite_double_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(IN), TARGET :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_double_scalar
+
+ SUBROUTINE h5dwrite_double_1(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_double_1
+
+ SUBROUTINE h5dwrite_double_2(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_double_2
+
+ SUBROUTINE h5dwrite_double_3(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_double_3
+
+ SUBROUTINE h5dwrite_double_4(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_double_4
+
+ SUBROUTINE h5dwrite_double_5(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_double_5
+
+ SUBROUTINE h5dwrite_double_6(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf
+ ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_double_6
+
+ SUBROUTINE h5dwrite_double_7(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf
+ ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dwrite_double_7
+
+!
+! NAME
+! h5dread_f
+!
+! PURPOSE
+! Reads raw data from the specified dataset into buf,
+! converting from file datatype and dataspace to memory
+! datatype and dataspace.
+!
+! INPUTS
+! dset_id - dataset identifier
+! mem_type_id - memory type identifier
+! dims - 1-dim array of size 7; dims(k) has the size
+! - of k-th dimension of the buf array
+! OUTPUTS
+! buf - buffer to read data in
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! OPTIONAL PARAMETERS
+! mem_space_id - memory dataspace identifier
+! file_space_id - file dataspace identifier
+! xfer_prp - trasfer property list identifier
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! dims parameter was added to make code portable;
+! n parameter was replaced with dims parameter in
+! the h5dwrite_reference_obj and h5dwrite_reference_dsetreg
+! functions. April 2, 2001
+!
+! NOTES
+! This function is overloaded to read INTEGER,
+! REAL, DOUBLE PRECISION and CHARACTER buffers
+! up to 7 dimensions, and one dimensional buffers
+! of the TYPE(hobj_ref_t_f) and TYPE(hdset_reg_ref_t_f)
+! types.
+!
+ SUBROUTINE h5dread_reference_obj(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ TYPE(hobj_ref_t_f), INTENT(INOUT) , &
+ DIMENSION(dims(1)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf(1))
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_reference_obj
+
+ SUBROUTINE h5dread_reference_dsetreg(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ TYPE(hdset_reg_ref_t_f), INTENT(INOUT), &
+ DIMENSION(dims(1)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf
+ INTEGER :: i,j
+ INTERFACE
+ INTEGER FUNCTION h5dread_ref_reg_c(dset_id, mem_type_id,&
+ mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, ref_buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REF_REG_C'::h5dread_ref_reg_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, DIMENSION(*) :: ref_buf
+ END FUNCTION h5dread_ref_reg_c
+ END INTERFACE
+
+ ALLOCATE(ref_buf(REF_REG_BUF_LEN*dims(1)), stat=hdferr)
+ IF (hdferr .NE. 0) THEN
+ hdferr = -1
+ RETURN
+ ENDIF
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_ref_reg_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, ref_buf, dims)
+
+ DO j = 1, dims(1)
+ DO i = 1, REF_REG_BUF_LEN
+ buf(j)%ref(i) = ref_buf(REF_REG_BUF_LEN*(j-1) + i)
+ ENDDO
+ ENDDO
+ DEALLOCATE(ref_buf)
+
+ END SUBROUTINE h5dread_reference_dsetreg
+
+
+ SUBROUTINE h5dread_integer_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(INOUT) , TARGET :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+
+ END SUBROUTINE h5dread_integer_scalar
+
+ SUBROUTINE h5dread_integer_1(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1)) , TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_integer_1
+
+ SUBROUTINE h5dread_integer_2(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)) , TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_integer_2
+
+ SUBROUTINE h5dread_integer_3(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) , TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_integer_3
+
+ SUBROUTINE h5dread_integer_4(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) , TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_integer_4
+
+ SUBROUTINE h5dread_integer_5(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) , TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_integer_5
+
+ SUBROUTINE h5dread_integer_6(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) , TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_integer_6
+
+ SUBROUTINE h5dread_integer_7(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) , TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_integer_7
+
+ SUBROUTINE h5dread_char_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT) :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ CALL h5dread_char_scalar_fix(dset_id, mem_type_id, buf, LEN(buf), dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+
+ END SUBROUTINE h5dread_char_scalar
+
+ SUBROUTINE h5dread_char_scalar_fix(dset_id, mem_type_id, buf, buf_len, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(IN) :: buf_len
+ CHARACTER(LEN=buf_len), INTENT(INOUT), TARGET :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ f_ptr = C_LOC(buf(1:1))
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_char_scalar_fix
+
+ SUBROUTINE h5dread_char_1(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ f_ptr = C_LOC(buf(1)(1:1))
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_char_1
+
+ SUBROUTINE h5dread_char_2(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ f_ptr = C_LOC(buf(1,1)(1:1))
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_char_2
+
+ SUBROUTINE h5dread_char_3(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ f_ptr = C_LOC(buf(1,1,1)(1:1))
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_char_3
+
+ SUBROUTINE h5dread_char_4(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ f_ptr = C_LOC(buf(1,1,1,1)(1:1))
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_char_4
+
+ SUBROUTINE h5dread_char_5(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ f_ptr = C_LOC(buf(1,1,1,1,1)(1:1))
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_char_5
+
+ SUBROUTINE h5dread_char_6(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ f_ptr = C_LOC(buf(1,1,1,1,1,1)(1:1))
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_char_6
+
+ SUBROUTINE h5dread_char_7(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ f_ptr = C_LOC(buf(1,1,1,1,1,1,1)(1:1))
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_char_7
+
+ SUBROUTINE h5dread_real_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(INOUT) , TARGET :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_real_scalar
+
+ SUBROUTINE h5dread_real_1(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1)) , TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_real_1
+
+ SUBROUTINE h5dread_real_2(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)) , TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_real_2
+
+ SUBROUTINE h5dread_real_3(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) , TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_real_3
+
+ SUBROUTINE h5dread_real_4(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3), dims(4)) , TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_real_4
+
+ SUBROUTINE h5dread_real_5(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) , TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_real_5
+
+ SUBROUTINE h5dread_real_6(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) , TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_real_6
+
+ SUBROUTINE h5dread_real_7(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) , TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_real_7
+
+ SUBROUTINE h5dread_double_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(INOUT) , TARGET :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_double_scalar
+
+ SUBROUTINE h5dread_double_1(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1)) , TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ f_ptr = C_LOC(buf)
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_double_1
+
+ SUBROUTINE h5dread_double_2(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)) , TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ f_ptr = C_LOC(buf)
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_double_2
+
+ SUBROUTINE h5dread_double_3(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) , TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ f_ptr = C_LOC(buf)
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_double_3
+
+ SUBROUTINE h5dread_double_4(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) , TARGET :: buf
+ ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ f_ptr = C_LOC(buf)
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_double_4
+
+ SUBROUTINE h5dread_double_5(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) , TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ f_ptr = C_LOC(buf)
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_double_5
+
+ SUBROUTINE h5dread_double_6(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) , TARGET :: buf
+ ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_double_6
+
+ SUBROUTINE h5dread_double_7(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) , TARGET :: buf
+ ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ TYPE(C_PTR) :: f_ptr
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
+ f_ptr = C_LOC(buf)
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, f_ptr)
+
+ END SUBROUTINE h5dread_double_7
+
+ SUBROUTINE h5dwrite_ptr(dset_id, mem_type_id, buf, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ TYPE(C_PTR), INTENT(INOUT) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf)
+
+ END SUBROUTINE h5dwrite_ptr
+
+ SUBROUTINE h5dread_ptr(dset_id, mem_type_id, buf, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ TYPE(C_PTR), INTENT(INOUT) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf)
+
+ END SUBROUTINE h5dread_ptr
+
+!
+! NAME
+! h5dfill_integer
+!
+! PURPOSE
+! Fills dataspace elements with a fill value in a memory buffer.
+! Only INTEGER, CHARACTER, REAL and DOUBLE PRECISION datatypes
+! of the fillvalues and buffers are supported. Buffer and fillvalue
+! are assumed to have the same datatype.
+! Only one-dimesional buffers are supported.
+!
+! INPUTS
+! fill_value - fill value
+! space_id - memory space selection identifier
+! buf - data buffer iin memory ro apply selection to
+! - of k-th dimension of the buf array
+! OUTPUTS
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! March 12, 2003
+!
+!
+
+ SUBROUTINE h5dfill_integer(fill_value, space_id, buf, hdferr)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER, INTENT(IN), TARGET :: fill_value ! Fill value
+ INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
+ INTEGER, INTENT(IN), DIMENSION(*), TARGET :: buf ! Memory buffer to fill in
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
+ INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier
+
+ TYPE(C_PTR) :: f_ptr_fill_value ! C pointer to fill_value
+ TYPE(C_PTR) :: f_ptr_buf ! C pointer to buf
+
+ f_ptr_fill_value = C_LOC(fill_value)
+ f_ptr_buf = C_LOC(buf(1))
+
+ fill_type_id = H5T_NATIVE_INTEGER
+ mem_type_id = H5T_NATIVE_INTEGER
+
+ hdferr = h5dfill_c(f_ptr_fill_value, fill_type_id, space_id, &
+ f_ptr_buf, mem_type_id)
+
+ END SUBROUTINE h5dfill_integer
+
+!
+! NAME
+! h5dfill_real
+!
+! PURPOSE
+! Fills dataspace elements with a fill value in a memory buffer.
+! Only INTEGER, CHARACTER, REAL and DOUBLE PRECISION datatypes
+! of the fillvalues and buffers are supported. Buffer and fillvalue
+! are assumed to have the same datatype.
+! Only one-dimesional buffers are supported.
+!
+! INPUTS
+! fill_value - fill value
+! space_id - memory space selection identifier
+! buf - data buffer iin memory ro apply selection to
+! - of k-th dimension of the buf array
+! OUTPUTS
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! March 12, 2003
+!
+ SUBROUTINE h5dfill_real(fill_valuer, space_id, buf, hdferr)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ REAL, INTENT(IN), TARGET :: fill_valuer ! Fill value
+ INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
+ REAL, INTENT(IN), DIMENSION(*), TARGET :: buf ! Memory buffer to fill in
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
+ INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier
+
+ TYPE(C_PTR) :: f_ptr_fill_valuer ! C pointer to fill_value
+ TYPE(C_PTR) :: f_ptr_buf ! C pointer to buf
+
+ f_ptr_fill_valuer = C_LOC(fill_valuer)
+ f_ptr_buf = C_LOC(buf(1))
+
+ fill_type_id = H5T_NATIVE_REAL
+ mem_type_id = H5T_NATIVE_REAL
+
+ hdferr = h5dfill_c(f_ptr_fill_valuer, fill_type_id, space_id, &
+ f_ptr_buf, mem_type_id)
+
+ END SUBROUTINE h5dfill_real
+
+!
+! NAME
+! h5dfill_double
+!
+! PURPOSE
+! Fills dataspace elements with a fill value in a memory buffer.
+! Only INTEGER, CHARACTER, REAL and DOUBLE PRECISION datatypes
+! of the fillvalues and buffers are supported. Buffer and fillvalue
+! are assumed to have the same datatype.
+! Only one-dimesional buffers are supported.
+!
+! INPUTS
+! fill_value - fill value
+! space_id - memory space selection identifier
+! buf - data buffer iin memory ro apply selection to
+! - of k-th dimension of the buf array
+! OUTPUTS
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! March 12, 2003
+!
+ SUBROUTINE h5dfill_double(fill_value, space_id, buf, hdferr)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ DOUBLE PRECISION, INTENT(IN), TARGET :: fill_value ! Fill value
+ INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
+ DOUBLE PRECISION, INTENT(IN), DIMENSION(*), TARGET :: buf ! Memory buffer to fill in
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
+ INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier
+
+ TYPE(C_PTR) :: f_ptr_fill_value ! C pointer to fill_value
+ TYPE(C_PTR) :: f_ptr_buf ! C pointer to buf
+
+ f_ptr_fill_value = C_LOC(fill_value)
+ f_ptr_buf = C_LOC(buf(1))
+
+ fill_type_id = H5T_NATIVE_DOUBLE
+ mem_type_id = H5T_NATIVE_DOUBLE
+
+ hdferr = h5dfill_c(f_ptr_fill_value, fill_type_id, space_id, &
+ f_ptr_buf, mem_type_id)
+
+ END SUBROUTINE h5dfill_double
+
+!
+! NAME
+! h5dfill_char
+!
+! PURPOSE
+! Fills dataspace elements with a fill value in a memory buffer.
+! Only INTEGER, CHARACTER, REAL and DOUBLE PRECISION datatypes
+! of the fillvalues and buffers are supported. Buffer and fillvalue
+! are assumed to have the same datatype.
+! Only one-dimesional buffers are supported.
+!
+! INPUTS
+! fill_value - fill value
+! space_id - memory space selection identifier
+! buf - data buffer iin memory ro apply selection to
+! - of k-th dimension of the buf array
+! OUTPUTS
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! March 12, 2003
+!
+ SUBROUTINE h5dfill_char(fill_value, space_id, buf, hdferr)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ CHARACTER, INTENT(IN), TARGET :: fill_value ! Fill value
+ INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
+ CHARACTER, INTENT(IN), DIMENSION(*), TARGET :: buf ! Memory buffer to fill in
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
+ INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier
+
+ TYPE(C_PTR) :: f_ptr_fill_value ! C pointer to fill_value
+ TYPE(C_PTR) :: f_ptr_buf ! C pointer to buf
+
+ f_ptr_fill_value = C_LOC(fill_value)
+ f_ptr_buf = C_LOC(buf(1))
+
+ hdferr = h5dfill_c(f_ptr_fill_value, fill_type_id, space_id, &
+ f_ptr_buf, mem_type_id)
+
+ END SUBROUTINE h5dfill_char
+!
+!****s* H5D/h5dvlen_reclaim
+! NAME
+! h5dvlen_reclaim
+!
+! PURPOSE
+! Reclaims VL datatype memory buffers.
+!
+! INPUTS
+!
+! type_id - Identifier of the datatype.
+! space_id - Identifier of the dataspace.
+! plist_id - Identifier of the property list used to create the buffer.
+! buf - Pointer to the buffer to be reclaimed.
+!
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! January 11, 2011
+!
+! SOURCE
+ SUBROUTINE H5Dvlen_reclaim_f(type_id, space_id, plist_id, buf, hdferr)
+
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Identifier of the datatype.
+ INTEGER(HID_T), INTENT(IN) :: space_id ! Identifier of the dataspace.
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Identifier of the property list used to create the buffer.
+ TYPE(C_PTR), INTENT(INOUT) :: buf ! Pointer to the buffer to be reclaimed.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code.
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION h5dvlen_reclaim_c(type_id, space_id, plist_id, buf)
+ USE H5GLOBAL
+ USE, INTRINSIC :: ISO_C_BINDING
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DVLEN_RECLAIM_C'::h5dvlen_reclaim_c
+ !DEC$ENDIF
+ INTEGER(HID_T) :: type_id
+ INTEGER(HID_T) :: space_id
+ INTEGER(HID_T) :: plist_id
+ TYPE(C_PTR), VALUE :: buf
+ END FUNCTION h5dvlen_reclaim_c
+ END INTERFACE
+
+ hdferr = H5Dvlen_reclaim_c(type_id, space_id, plist_id, buf)
+
+ END SUBROUTINE H5Dvlen_reclaim_f
+
+END MODULE H5D_PROVISIONAL
+
+
diff --git a/fortran/src/H5Dff_F90.f90 b/fortran/src/H5Dff_F90.f90
new file mode 100644
index 0000000..3bb0fc0
--- /dev/null
+++ b/fortran/src/H5Dff_F90.f90
@@ -0,0 +1,3002 @@
+!****h* ROBODoc/H5D (F90)
+!
+! NAME
+!
+! H5D_PROVISIONAL
+!
+! PURPOSE
+!
+! This file contains Fortran 90 interfaces for H5D functions. It contains
+! the same functions as H5Dff_F03.f90 but excludes the Fortran 2003 functions
+! and the interface listings. This file will be compiled instead of H5Dff_F03.f90
+! if Fortran 2003 functions are not enabled.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! NOTES
+! (1) The maximum rank of an array allowed in Fortran is 7, therefore
+! we only provide an interface for arrays up to and including rank 7.
+!
+! (2) Unfortunately we are using a generic interface and one of the factors
+! used in determining the proper routine to select is that of the array
+! rank being passed, therefore we can not create just one subroutine for
+! each array type (integer, real, etc...) of various ranks and then use a
+! rank 1 array of assumed size in the just one subroutine,
+! (i.e. integer, dimension(*) :: ... )
+! (i.e. real , dimension(*) :: ... ) etc...
+!
+! (3)
+! *** IMPORTANT ***
+! If you add a new H5D function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
+!*****
+
+MODULE H5D_PROVISIONAL
+ USE H5GLOBAL
+
+ INTERFACE h5dwrite_f
+
+ MODULE PROCEDURE h5dwrite_reference_obj
+ MODULE PROCEDURE h5dwrite_reference_dsetreg
+ MODULE PROCEDURE h5dwrite_integer_scalar
+ MODULE PROCEDURE h5dwrite_integer_1
+ MODULE PROCEDURE h5dwrite_integer_2
+ MODULE PROCEDURE h5dwrite_integer_3
+ MODULE PROCEDURE h5dwrite_integer_4
+ MODULE PROCEDURE h5dwrite_integer_5
+ MODULE PROCEDURE h5dwrite_integer_6
+ MODULE PROCEDURE h5dwrite_integer_7
+ MODULE PROCEDURE h5dwrite_char_scalar
+ MODULE PROCEDURE h5dwrite_char_1
+ MODULE PROCEDURE h5dwrite_char_2
+ MODULE PROCEDURE h5dwrite_char_3
+ MODULE PROCEDURE h5dwrite_char_4
+ MODULE PROCEDURE h5dwrite_char_5
+ MODULE PROCEDURE h5dwrite_char_6
+ MODULE PROCEDURE h5dwrite_char_7
+ MODULE PROCEDURE h5dwrite_real_scalar
+ MODULE PROCEDURE h5dwrite_real_1
+ MODULE PROCEDURE h5dwrite_real_2
+ MODULE PROCEDURE h5dwrite_real_3
+ MODULE PROCEDURE h5dwrite_real_4
+ MODULE PROCEDURE h5dwrite_real_5
+ MODULE PROCEDURE h5dwrite_real_6
+ MODULE PROCEDURE h5dwrite_real_7
+
+ END INTERFACE
+
+ INTERFACE h5dread_f
+
+ MODULE PROCEDURE h5dread_reference_obj
+ MODULE PROCEDURE h5dread_reference_dsetreg
+ MODULE PROCEDURE h5dread_integer_scalar
+ MODULE PROCEDURE h5dread_integer_1
+ MODULE PROCEDURE h5dread_integer_2
+ MODULE PROCEDURE h5dread_integer_3
+ MODULE PROCEDURE h5dread_integer_4
+ MODULE PROCEDURE h5dread_integer_5
+ MODULE PROCEDURE h5dread_integer_6
+ MODULE PROCEDURE h5dread_integer_7
+ MODULE PROCEDURE h5dread_char_scalar
+ MODULE PROCEDURE h5dread_char_1
+ MODULE PROCEDURE h5dread_char_2
+ MODULE PROCEDURE h5dread_char_3
+ MODULE PROCEDURE h5dread_char_4
+ MODULE PROCEDURE h5dread_char_5
+ MODULE PROCEDURE h5dread_char_6
+ MODULE PROCEDURE h5dread_char_7
+ MODULE PROCEDURE h5dread_real_scalar
+ MODULE PROCEDURE h5dread_real_1
+ MODULE PROCEDURE h5dread_real_2
+ MODULE PROCEDURE h5dread_real_3
+ MODULE PROCEDURE h5dread_real_4
+ MODULE PROCEDURE h5dread_real_5
+ MODULE PROCEDURE h5dread_real_6
+ MODULE PROCEDURE h5dread_real_7
+ END INTERFACE
+
+ INTERFACE h5dfill_f
+ MODULE PROCEDURE h5dfill_integer
+ MODULE PROCEDURE h5dfill_real
+ MODULE PROCEDURE h5dfill_char
+ END INTERFACE
+
+CONTAINS
+
+!****s* H5D/h5dread_f
+!
+! NAME
+! h5dread_f
+!
+! PURPOSE
+! Reads raw data from the specified dataset into buf,
+! converting from file datatype and dataspace to memory
+! datatype and dataspace.
+!
+! INPUTS
+! dset_id - dataset identifier
+! mem_type_id - memory type identifier
+! dims - 1-dim array of size 7; dims(k) has the size
+! of k-th dimension of the buf array
+! OUTPUTS
+! buf - buffer to read data in
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! OPTIONAL PARAMETERS
+! mem_space_id - memory dataspace identifier
+! file_space_id - file dataspace identifier
+! xfer_prp - trasfer property list identifier
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! dims parameter was added to make code portable;
+! n parameter was replaced with dims parameter in
+! the h5dwrite_reference_obj and h5dwrite_reference_dsetreg
+! functions. April 2, 2001
+!
+! NOTES
+! This function is overloaded to read INTEGER,
+! REAL, DOUBLE PRECISION and CHARACTER buffers
+! up to 7 dimensions, and one dimensional buffers
+! of the TYPE(hobj_ref_t_f) and TYPE(hdset_reg_ref_t_f) types.
+!*****
+ SUBROUTINE h5dread_reference_obj(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ TYPE(hobj_ref_t_f), INTENT(INOUT) , &
+ DIMENSION(dims(1)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HADDR_T), ALLOCATABLE, DIMENSION(:) :: ref_buf
+ INTEGER :: j
+
+ INTERFACE
+ INTEGER FUNCTION h5dread_ref_obj_c(dset_id, mem_type_id,&
+ mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, ref_buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REF_OBJ_C'::h5dread_ref_obj_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER(HADDR_T), DIMENSION(*) :: ref_buf
+ END FUNCTION h5dread_ref_obj_c
+ END INTERFACE
+
+ ALLOCATE(ref_buf(dims(1)), stat=hdferr)
+ IF (hdferr .NE. 0) THEN
+ hdferr = -1
+ RETURN
+ ENDIF
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_ref_obj_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, ref_buf, dims)
+ DO j = 1, dims(1)
+ buf(j)%ref = ref_buf(j)
+ ENDDO
+ DEALLOCATE(ref_buf)
+ END SUBROUTINE h5dread_reference_obj
+
+ SUBROUTINE h5dread_reference_dsetreg(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ TYPE(hdset_reg_ref_t_f), INTENT(INOUT), &
+ DIMENSION(dims(1)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf
+ INTEGER :: i,j
+
+ INTERFACE
+ INTEGER FUNCTION h5dread_ref_reg_c(dset_id, mem_type_id,&
+ mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, ref_buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REF_REG_C'::h5dread_ref_reg_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, DIMENSION(*) :: ref_buf
+ END FUNCTION h5dread_ref_reg_c
+ END INTERFACE
+
+ ALLOCATE(ref_buf(REF_REG_BUF_LEN*dims(1)), stat=hdferr)
+ IF (hdferr .NE. 0) THEN
+ hdferr = -1
+ RETURN
+ ENDIF
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_ref_reg_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, ref_buf, dims)
+
+ DO j = 1, dims(1)
+ DO i = 1, REF_REG_BUF_LEN
+ buf(j)%ref(i) = ref_buf(REF_REG_BUF_LEN*(j-1) + i)
+ ENDDO
+ ENDDO
+ DEALLOCATE(ref_buf)
+ END SUBROUTINE h5dread_reference_dsetreg
+
+ SUBROUTINE h5dread_integer_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(INOUT) :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dread_integer_s_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_INTEGER_S_C'::h5dread_integer_s_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(OUT) :: buf
+ END FUNCTION h5dread_integer_s_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_integer_s_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dread_integer_scalar
+
+ SUBROUTINE h5dread_integer_1(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(INOUT), DIMENSION(dims(1)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dread_integer_1_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_INTEGER_1_C'::h5dread_integer_1_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(OUT), DIMENSION(dims(1)) :: buf
+ END FUNCTION h5dread_integer_1_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_integer_1_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dread_integer_1
+
+ SUBROUTINE h5dread_integer_2(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(INOUT), DIMENSION(dims(1),dims(2)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dread_integer_2_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_INTEGER_2_C'::h5dread_integer_2_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(OUT), DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5dread_integer_2_c
+ END INTERFACE
+
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_integer_2_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, &
+ buf, dims)
+
+ END SUBROUTINE h5dread_integer_2
+
+ SUBROUTINE h5dread_integer_3(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ !
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5dread_integer_3_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_INTEGER_3_C'::h5dread_integer_3_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(OUT), DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5dread_integer_3_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_integer_3_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, &
+ buf, dims)
+
+ END SUBROUTINE h5dread_integer_3
+
+ SUBROUTINE h5dread_integer_4(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(INOUT), DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ !
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5dread_integer_4_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_INTEGER_4_C'::h5dread_integer_4_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(OUT), DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5dread_integer_4_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_integer_4_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, &
+ buf, dims)
+
+ END SUBROUTINE h5dread_integer_4
+
+ SUBROUTINE h5dread_integer_5(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(INOUT), DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ !
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5dread_integer_5_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_INTEGER_5_C'::h5dread_integer_5_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5dread_integer_5_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_integer_5_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, &
+ buf, dims)
+
+ END SUBROUTINE h5dread_integer_5
+
+ SUBROUTINE h5dread_integer_6(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+
+ INTERFACE
+ INTEGER FUNCTION h5dread_integer_6_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_INTEGER_6_C'::h5dread_integer_6_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5dread_integer_6_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_integer_6_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, &
+ buf, dims)
+
+ END SUBROUTINE h5dread_integer_6
+
+ SUBROUTINE h5dread_integer_7(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dread_integer_7_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_INTEGER_7_C'::h5dread_integer_7_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5dread_integer_7_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_integer_7_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, &
+ buf, dims)
+
+ END SUBROUTINE h5dread_integer_7
+
+ SUBROUTINE h5dread_char_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT) :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dreadc_s_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREADC_S_C'::h5dreadc_s_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(OUT) :: buf
+ END FUNCTION h5dreadc_s_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dreadc_s_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dread_char_scalar
+
+ SUBROUTINE h5dread_char_1(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dreadc_1_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREADC_1_C'::h5dreadc_1_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1)) :: buf
+ END FUNCTION h5dreadc_1_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dreadc_1_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dread_char_1
+
+ SUBROUTINE h5dread_char_2(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+
+ INTERFACE
+ INTEGER FUNCTION h5dreadc_2_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREADC_2_C'::h5dreadc_2_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5dreadc_2_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dreadc_2_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dread_char_2
+
+ SUBROUTINE h5dread_char_3(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dreadc_3_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREADC_3_C'::h5dreadc_3_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5dreadc_3_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dreadc_3_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dread_char_3
+
+ SUBROUTINE h5dread_char_4(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dreadc_4_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREADC_4_C'::h5dreadc_4_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5dreadc_4_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dreadc_4_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dread_char_4
+
+ SUBROUTINE h5dread_char_5(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dreadc_5_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREADC_5_C'::h5dreadc_5_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5dreadc_5_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dreadc_5_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dread_char_5
+
+ SUBROUTINE h5dread_char_6(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dreadc_6_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREADC_6_C'::h5dreadc_6_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5dreadc_6_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dreadc_6_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dread_char_6
+
+ SUBROUTINE h5dread_char_7(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dreadc_7_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREADC_7_C'::h5dreadc_7_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5dreadc_7_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dreadc_7_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dread_char_7
+
+ SUBROUTINE h5dread_real_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(INOUT) :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dread_real_s_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REAL_S_C'::h5dread_real_s_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(OUT) :: buf
+ END FUNCTION h5dread_real_s_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_real_s_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dread_real_scalar
+
+ SUBROUTINE h5dread_real_1(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ ! INTEGER, EXTERNAL :: h5dread_real_1_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5dread_real_1_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REAL_1_C'::h5dread_real_1_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1)) :: buf
+ END FUNCTION h5dread_real_1_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_real_1_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dread_real_1
+
+ SUBROUTINE h5dread_real_2(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dread_real_2_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REAL_2_C'::h5dread_real_2_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5dread_real_2_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_real_2_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dread_real_2
+
+ SUBROUTINE h5dread_real_3(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dread_real_3_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REAL_3_C'::h5dread_real_3_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5dread_real_3_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_real_3_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dread_real_3
+
+ SUBROUTINE h5dread_real_4(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3), dims(4)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dread_real_4_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REAL_4_C'::h5dread_real_4_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3), dims(4)) :: buf
+ END FUNCTION h5dread_real_4_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_real_4_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dread_real_4
+
+ SUBROUTINE h5dread_real_5(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dread_real_5_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REAL_5_C'::h5dread_real_5_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5dread_real_5_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_real_5_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dread_real_5
+
+ SUBROUTINE h5dread_real_6(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dread_real_6_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REAL_6_C'::h5dread_real_6_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5dread_real_6_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_real_6_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dread_real_6
+
+ SUBROUTINE h5dread_real_7(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dread_real_7_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REAL_7_C'::h5dread_real_7_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5dread_real_7_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_real_7_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dread_real_7
+
+ SUBROUTINE h5dwrite_reference_obj(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: dims ! size of the bufffer buf
+ TYPE(hobj_ref_t_f), DIMENSION(dims(1)), INTENT(IN) :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HADDR_T), ALLOCATABLE, DIMENSION(:) :: ref_buf
+ INTEGER :: j
+
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_ref_obj_c(dset_id, mem_type_id,&
+ mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, ref_buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REF_OBJ_C'::h5dwrite_ref_obj_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HADDR_T), DIMENSION(*) :: ref_buf
+ INTEGER(HSIZE_T), DIMENSION(*) :: dims
+ END FUNCTION h5dwrite_ref_obj_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ ALLOCATE(ref_buf(dims(1)), stat=hdferr)
+ IF (hdferr .NE. 0 ) THEN
+ hdferr = -1
+ RETURN
+ ELSE
+ DO j = 1, dims(1)
+ ref_buf(j) = buf(j)%ref
+ ENDDO
+ ENDIF
+ hdferr = h5dwrite_ref_obj_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, ref_buf, dims(1))
+ DEALLOCATE(ref_buf)
+
+ END SUBROUTINE h5dwrite_reference_obj
+
+ SUBROUTINE h5dwrite_reference_dsetreg(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: dims ! size of the bufffer buf
+ TYPE(hdset_reg_ref_t_f), DIMENSION(dims(1)), INTENT(IN) :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf
+ INTEGER :: i,j
+
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_ref_reg_c(dset_id, mem_type_id,&
+ mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, ref_buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REF_REG_C'::h5dwrite_ref_reg_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER, DIMENSION(*) :: ref_buf
+ INTEGER(HSIZE_T), DIMENSION(*) :: dims
+ END FUNCTION h5dwrite_ref_reg_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ ALLOCATE(ref_buf(REF_REG_BUF_LEN*dims(1)), stat=hdferr)
+ IF (hdferr .NE. 0 ) THEN
+ hdferr = -1
+ RETURN
+ ELSE
+ DO j = 1, dims(1)
+ DO i = 1, REF_REG_BUF_LEN
+ ref_buf(REF_REG_BUF_LEN*(j-1) + i) = buf(j)%ref(i)
+ ENDDO
+ ENDDO
+ ENDIF
+ hdferr = h5dwrite_ref_reg_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, ref_buf, dims)
+ DEALLOCATE(ref_buf)
+
+ END SUBROUTINE h5dwrite_reference_dsetreg
+
+ SUBROUTINE h5dwrite_integer_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER, INTENT(IN) :: buf ! Data buffer
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_integer_s_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_INTEGER_S_C'::h5dwrite_integer_s_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(IN) :: buf
+ END FUNCTION h5dwrite_integer_s_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_integer_s_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dwrite_integer_scalar
+
+ SUBROUTINE h5dwrite_integer_1(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_integer_1_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_INTEGER_1_C'::h5dwrite_integer_1_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1)) :: buf
+ END FUNCTION h5dwrite_integer_1_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_integer_1_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dwrite_integer_1
+
+ SUBROUTINE h5dwrite_integer_2(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_integer_2_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_INTEGER_2_C'::h5dwrite_integer_2_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5dwrite_integer_2_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+ hdferr = h5dwrite_integer_2_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, &
+ buf, dims)
+
+ END SUBROUTINE h5dwrite_integer_2
+
+ SUBROUTINE h5dwrite_integer_3(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_integer_3_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_INTEGER_3_C'::h5dwrite_integer_3_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5dwrite_integer_3_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_integer_3_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, &
+ buf, dims)
+
+ END SUBROUTINE h5dwrite_integer_3
+
+ SUBROUTINE h5dwrite_integer_4(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_integer_4_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_INTEGER_4_C'::h5dwrite_integer_4_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5dwrite_integer_4_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_integer_4_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, &
+ buf, dims)
+
+ END SUBROUTINE h5dwrite_integer_4
+
+ SUBROUTINE h5dwrite_integer_5(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_integer_5_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_INTEGER_5_C'::h5dwrite_integer_5_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5dwrite_integer_5_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_integer_5_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, &
+ buf, dims)
+
+ END SUBROUTINE h5dwrite_integer_5
+
+ SUBROUTINE h5dwrite_integer_6(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_integer_6_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_INTEGER_6_C'::h5dwrite_integer_6_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5dwrite_integer_6_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_integer_6_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, &
+ buf, dims)
+
+ END SUBROUTINE h5dwrite_integer_6
+
+ SUBROUTINE h5dwrite_integer_7(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_integer_7_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_INTEGER_7_C'::h5dwrite_integer_7_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5dwrite_integer_7_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_integer_7_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, &
+ buf, dims)
+
+ END SUBROUTINE h5dwrite_integer_7
+
+
+ SUBROUTINE h5dwrite_char_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(IN) :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwritec_s_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITEC_S_C'::h5dwritec_s_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(IN) :: buf
+ END FUNCTION h5dwritec_s_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwritec_s_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dwrite_char_scalar
+
+ SUBROUTINE h5dwrite_char_1(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwritec_1_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITEC_1_C'::h5dwritec_1_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1)) :: buf
+ END FUNCTION h5dwritec_1_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwritec_1_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dwrite_char_1
+
+ SUBROUTINE h5dwrite_char_2(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwritec_2_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITEC_2_C'::h5dwritec_2_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5dwritec_2_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwritec_2_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dwrite_char_2
+
+ SUBROUTINE h5dwrite_char_3(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwritec_3_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITEC_3_C'::h5dwritec_3_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5dwritec_3_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwritec_3_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dwrite_char_3
+
+ SUBROUTINE h5dwrite_char_4(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwritec_4_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITEC_4_C'::h5dwritec_4_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5dwritec_4_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwritec_4_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dwrite_char_4
+
+ SUBROUTINE h5dwrite_char_5(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwritec_5_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITEC_5_C'::h5dwritec_5_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5dwritec_5_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwritec_5_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dwrite_char_5
+
+ SUBROUTINE h5dwrite_char_6(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwritec_6_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITEC_6_C'::h5dwritec_6_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5dwritec_6_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwritec_6_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dwrite_char_6
+
+ SUBROUTINE h5dwrite_char_7(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwritec_7_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITEC_7_C'::h5dwritec_7_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5dwritec_7_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwritec_7_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dwrite_char_7
+
+ SUBROUTINE h5dwrite_real_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(IN) :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_real_s_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REAL_S_C'::h5dwrite_real_s_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(IN) :: buf
+ END FUNCTION h5dwrite_real_s_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_real_s_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dwrite_real_scalar
+
+ SUBROUTINE h5dwrite_real_1(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_real_1_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REAL_1_C'::h5dwrite_real_1_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1)) :: buf
+ END FUNCTION h5dwrite_real_1_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_real_1_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dwrite_real_1
+
+ SUBROUTINE h5dwrite_real_2(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_real_2_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REAL_2_C'::h5dwrite_real_2_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5dwrite_real_2_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_real_2_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dwrite_real_2
+
+ SUBROUTINE h5dwrite_real_3(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_real_3_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REAL_3_C'::h5dwrite_real_3_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5dwrite_real_3_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_real_3_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dwrite_real_3
+
+ SUBROUTINE h5dwrite_real_4(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_real_4_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REAL_4_C'::h5dwrite_real_4_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5dwrite_real_4_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_real_4_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dwrite_real_4
+
+ SUBROUTINE h5dwrite_real_5(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_real_5_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REAL_5_C'::h5dwrite_real_5_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5dwrite_real_5_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_real_5_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dwrite_real_5
+
+ SUBROUTINE h5dwrite_real_6(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_real_6_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REAL_6_C'::h5dwrite_real_6_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5dwrite_real_6_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_real_6_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dwrite_real_6
+
+ SUBROUTINE h5dwrite_real_7(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_real_7_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REAL_7_C'::h5dwrite_real_7_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5dwrite_real_7_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_real_7_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dwrite_real_7
+
+!
+! NAME
+! h5dfill_integer
+!
+! PURPOSE
+! Fills dataspace elements with a fill value in a memory buffer.
+! Only INTEGER, CHARACTER, REAL and DOUBLE PRECISION datatypes
+! of the fillvalues and buffers are supported. Buffer and fillvalue
+! are assumed to have the same datatype.
+! Only one-dimesional buffers are supported.
+!
+! INPUTS
+! fill_value - fill value
+! space_id - memory space selection identifier
+! buf - data buffer iin memory ro apply selection to
+! - of k-th dimension of the buf array
+! OUTPUTS
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! March 12, 2003
+!
+!
+
+ SUBROUTINE h5dfill_integer(fill_value, space_id, buf, hdferr)
+ IMPLICIT NONE
+ INTEGER, INTENT(IN) :: fill_value ! Fill value
+ INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
+ INTEGER, INTENT(IN), DIMENSION(*) :: buf ! Memory buffer to fill in
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
+ INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier
+
+ ! INTEGER, EXTERNAL :: h5dfill_integer_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5dfill_integer_c(fill_value, fill_type_id, space_id, &
+ buf, mem_type_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DFILL_INTEGER_C'::h5dfill_integer_c
+ !DEC$ENDIF
+ INTEGER, INTENT(IN) :: fill_value ! Fill value
+ INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
+ INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
+ INTEGER, INTENT(IN), DIMENSION(*) :: buf ! Memory buffer to fill in
+ INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier
+ END FUNCTION h5dfill_integer_c
+ END INTERFACE
+ fill_type_id = H5T_NATIVE_INTEGER
+ mem_type_id = H5T_NATIVE_INTEGER
+
+ hdferr = h5dfill_integer_c(fill_value, fill_type_id, space_id, &
+ buf, mem_type_id)
+
+ END SUBROUTINE h5dfill_integer
+
+!
+! NAME
+! h5dfill_real
+!
+! PURPOSE
+! Fills dataspace elements with a fill value in a memory buffer.
+! Only INTEGER, CHARACTER, REAL and DOUBLE PRECISION datatypes
+! of the fillvalues and buffers are supported. Buffer and fillvalue
+! are assumed to have the same datatype.
+! Only one-dimesional buffers are supported.
+!
+! INPUTS
+! fill_value - fill value
+! space_id - memory space selection identifier
+! buf - data buffer iin memory ro apply selection to
+! - of k-th dimension of the buf array
+! OUTPUTS
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! March 12, 2003
+!
+!
+
+ SUBROUTINE h5dfill_real(fill_valuer, space_id, buf, hdferr)
+ IMPLICIT NONE
+ REAL, INTENT(IN) :: fill_valuer ! Fill value
+ INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
+ REAL, INTENT(IN), DIMENSION(*) :: buf ! Memory buffer to fill in
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
+ INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier
+
+ ! INTEGER, EXTERNAL :: h5dfill_real_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5dfill_real_c(fill_valuer, fill_type_id, space_id, &
+ buf, mem_type_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DFILL_REAL_C'::h5dfill_real_c
+ !DEC$ENDIF
+ REAL, INTENT(IN) :: fill_valuer ! Fill value
+ INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
+ INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
+ REAL, INTENT(IN), DIMENSION(*) :: buf ! Memory buffer to fill in
+ INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier
+ END FUNCTION h5dfill_real_c
+ END INTERFACE
+ fill_type_id = H5T_NATIVE_REAL
+ mem_type_id = H5T_NATIVE_REAL
+
+ hdferr = h5dfill_real_c(fill_valuer, fill_type_id, space_id, &
+ buf, mem_type_id)
+ END SUBROUTINE h5dfill_real
+
+!
+! NAME
+! h5dfill_char
+!
+! PURPOSE
+! Fills dataspace elements with a fill value in a memory buffer.
+! Only INTEGER, CHARACTER, REAL and DOUBLE PRECISION datatypes
+! of the fillvalues and buffers are supported. Buffer and fillvalue
+! are assumed to have the same datatype.
+! Only one-dimesional buffers are supported.
+!
+! INPUTS
+! fill_value - fill value
+! space_id - memory space selection identifier
+! buf - data buffer iin memory ro apply selection to
+! - of k-th dimension of the buf array
+! OUTPUTS
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! March 12, 2003
+!
+!
+
+ SUBROUTINE h5dfill_char(fill_value, space_id, buf, hdferr)
+ IMPLICIT NONE
+ CHARACTER, INTENT(IN) :: fill_value ! Fill value
+ INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
+ CHARACTER, INTENT(IN), DIMENSION(*) :: buf ! Memory buffer to fill in
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
+ INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier
+
+ ! INTEGER, EXTERNAL :: h5dfillc_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5dfillc_c(fill_value, fill_type_id, space_id, &
+ buf, mem_type_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DFILLC_C'::h5dfillc_c
+ !DEC$ENDIF
+ CHARACTER, INTENT(IN) :: fill_value ! Fill value
+ INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
+ INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
+ CHARACTER, INTENT(IN), DIMENSION(*) :: buf ! Memory buffer to fill in
+ INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier
+ END FUNCTION h5dfillc_c
+ END INTERFACE
+ fill_type_id = H5T_NATIVE_CHARACTER
+ mem_type_id = H5T_NATIVE_CHARACTER
+
+ hdferr = h5dfillc_c(fill_value, fill_type_id, space_id, &
+ buf, mem_type_id)
+
+ END SUBROUTINE h5dfill_char
+
+
+END MODULE H5D_PROVISIONAL
diff --git a/fortran/src/H5Ef.c b/fortran/src/H5Ef.c
index c6d860c..875b59f 100644
--- a/fortran/src/H5Ef.c
+++ b/fortran/src/H5Ef.c
@@ -1,4 +1,9 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+/****h* H5Ef/H5Ef
+ * PURPOSE
+ * This file contains C stubs for H5E Fortran APIs
+ *
+ * COPYRIGHT
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
@@ -11,53 +16,70 @@
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* This files contains C stubs for H5E Fortran APIs */
-
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ ******
+*/
#include "H5f90.h"
#include "H5Eprivate.h"
-/*----------------------------------------------------------------------------
- * Name: h5eclear_c
- * Purpose: Call H5Eclear to clear the error stack for the current thread
- * Inputs:
- * Outputs:
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Wednesday, March 29, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
-
+/****if* H5Ef/h5eclear_c
+ * NAME
+ * h5eclear_c
+ * PURPOSE
+ * Call H5Eclear to clear the error stack for the current thread
+ * INPUTS
+ *
+ * OUTPUTS
+ *
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
+ * Wednesday, March 29, 2000
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
-nh5eclear_c(void)
+nh5eclear_c(hid_t_f *estack_id )
+/******/
{
- int_f ret_value = 0;
+ int_f ret_value = 0;
- /*
- * Call H5Eclear function.
- */
- if(H5Eclear2(H5E_DEFAULT) < 0)
- HGOTO_DONE(FAIL)
+ /*
+ * Call H5Eclear function.
+ */
+ if(H5Eclear2((hid_t)*estack_id) < 0)
+ HGOTO_DONE(FAIL)
done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5eprint_c1
- * Purpose: Call H5Eprint to print the error stack in a default manner.
- * Inputs: name - file name
- * namelen - length of name
- * Outputs:
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Wednesday, March 29, 2000
- * Modifications: Bug fix: Added call to close the file with the error messages
- * EP 11/26/01
- *---------------------------------------------------------------------------*/
+/****if* H5Ef/h5eprint_c1
+ * NAME
+ * h5eprint_c1
+ * PURPOSE
+ * Call H5Eprint to print the error stack in a default manner.
+ * INPUTS
+ * name - file name
+ * namelen - length of name
+ * OUTPUTS
+ *
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
+ * Wednesday, March 29, 2000
+ * HISTORY
+ * Bug fix: Added call to close the file with the error messages
+ * EP 11/26/01
+ * SOURCE
+*/
int_f
nh5eprint_c1(_fcd name, int_f* namelen)
+/******/
{
FILE *file = NULL;
char *c_name = NULL;
@@ -83,20 +105,27 @@ done:
return ret_value;
}
-
-/*----------------------------------------------------------------------------
- * Name: h5eprint_c2
- * Purpose: Call H5Eprint to print the error stack to stderr
- * in a default manner.
- * Inputs:
- * Outputs:
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Wednesday, March 29, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+/****if* H5Ef/h5eprint_c2
+ * NAME
+ * h5eprint_c2
+ * PURPOSE
+ * Call H5Eprint to print the error stack to stderr
+ * in a default manner.
+ * INPUTS
+ *
+ * OUTPUTS
+ *
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
+ * Wednesday, March 29, 2000
+ *
+ * SOURCE
+*/
int_f
nh5eprint_c2(void)
+/******/
{
int_f ret_value = 0;
@@ -110,19 +139,28 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5eget_major_c
- * Purpose: Call H5Eget_major to get a character string
- * describing an error specified by a major error number.
- * Inputs: error_no - Major error number
- * Outputs: name - character string describing the error
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Wednesday, March 29, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+/****if* H5Ef/h5eget_major_c
+ * NAME
+ * h5eget_major_c
+ * PURPOSE
+ * Call H5Eget_major to get a character string
+ * describing an error specified by a major error number.
+ * INPUTS
+ * error_no - Major error number
+ * OUTPUTS
+ * name - character string describing the error
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
+ * Wednesday, March 29, 2000
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5eget_major_c(int_f* error_no, _fcd name, size_t_f* namelen)
+/******/
{
char *c_name = NULL;
size_t c_namelen = (size_t)*namelen;
@@ -149,19 +187,28 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5eget_minor_c
- * Purpose: Call H5Eget_minor to get a character string
- * describing an error specified by a minor error number.
- * Inputs: error_no - Major error number
- * Outputs: name - character string describing the error
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Wednesday, March 29, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+/****if* H5Ef/h5eget_minor_c
+ * NAME
+ * h5eget_minor_c
+ * PURPOSE
+ * Call H5Eget_minor to get a character string
+ * describing an error specified by a minor error number.
+ * INPUTS
+ * error_no - Major error number
+ * OUTPUTS
+ * name - character string describing the error
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
+ * Wednesday, March 29, 2000
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5eget_minor_c(int_f* error_no, _fcd name, size_t_f* namelen)
+/******/
{
char *c_name = NULL;
size_t c_namelen = (size_t)*namelen;
@@ -188,18 +235,27 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5eset_auto_c
- * Purpose: Call H5Eset_auto to turn automatic error printing on or off.
- * Inputs: printflag - flag to turn automatic error printing on or off.
- * Outputs:
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
- * Friday, November 17, 2000
- * Modifications: major bug fix. Function never disabled printing.
- *---------------------------------------------------------------------------*/
+/****if* H5Ef/h5eset_auto_c
+ * NAME
+ * h5eset_auto_c
+ * PURPOSE
+ * Call H5Eset_auto to turn automatic error printing on or off.
+ * INPUTS
+ * printflag - flag to turn automatic error printing on or off.
+ * OUTPUTS
+ *
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
+ * Friday, November 17, 2000
+ * HISTORY
+ * Major bug fix: Function never disabled printing.
+ * SOURCE
+*/
int_f
nh5eset_auto_c(int_f* printflag)
+/******/
{
herr_t status = -1;
int_f ret_value = 0;
@@ -215,3 +271,199 @@ done:
return ret_value;
}
+
+/****if* H5Ef/h5eset_auto2_c
+ * NAME
+ * h5eset_auto2_c
+ * PURPOSE
+ * Calls H5Eset_auto2
+ * INPUTS
+ * estack_id - Error stack identifier.
+ * func - Function to be called upon an error condition.
+ * client_data - Data passed to the error function.
+ *
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * July 22, 2009
+ * SOURCE
+*/
+/* int_f */
+/* nh5eset_auto2_c(hid_t_f *estack_id, H5E_auto2_t *func, void *client_data) */
+/* /\******\/ */
+/* { */
+/* int ret_val = -1; */
+/* herr_t status = -1; */
+
+/* status = H5Eset_auto2((hid_t)*estack_id, *func, client_data); */
+/* if (status >= 0) ret_val = 0; */
+/* return ret_val; */
+/* } */
+
+int_f
+nh5eset_auto2_c(int_f *printflag, hid_t_f *estack_id, H5E_auto2_t func, void *client_data)
+/******/
+{
+ int ret_val = -1;
+ herr_t status = -1;
+
+ if (*printflag == 1 && *estack_id == -1)
+ status = H5Eset_auto2(H5E_DEFAULT, H5Eprint2, stderr);
+ else if (*printflag == 1)
+ status = H5Eset_auto2((hid_t)*estack_id, func, client_data);
+ else if (*printflag == 0)
+ status = H5Eset_auto2(H5E_DEFAULT, NULL, NULL);
+ if (status >= 0) ret_val = 0;
+
+ return ret_val;
+}
+
+
+int_f
+H5Eget_auto3(void **client_data)
+{
+ int *i;
+
+ i = (int*)client_data;
+
+ *i = 1000;
+ printf(" Buffer In (C) = %d \n", *i);
+
+ return 0;
+
+}
+
+int_f nprocess_buffer(hid_t_f *estack_id, void **buffer)
+{
+ int status;
+ int *i;
+ H5E_auto2_t func_c;
+
+ status = H5Eget_auto2((hid_t)*estack_id, &func_c, buffer);
+/* status = H5Eget_auto3(buffer); */
+
+ i = (int*)buffer;
+
+ printf(" Buffer In (C) = %d \n", *i);
+ return;
+}
+/****if* H5Ef/h5eget_auto_c
+ * NAME
+ * h5eget_auto_c
+ * PURPOSE
+ * Calls H5Eget_auto2
+ * INPUTS
+ * estack_id - Error stack identifier
+ * OUTPUTS
+ * func - The function currently set to be called upon an error condition.
+ * client_data - Data currently set to be passed to the error function.
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * July 10, 2009
+ * NOTE
+ * if func is the default H5Eprint or H5Eprint2 then need to use the Fortran callback function
+ * associated with H5Eprint*.
+ * SOURCE
+*/
+int_f
+nh5eget_auto_c(hid_t_f *estack_id, H5E_auto2_t *func, void **client_data, int_f *ret_func)
+/******/
+{
+ int ret_val = -1;
+ herr_t status = -1;
+ hid_t dataset;
+ H5E_auto2_t func_c;
+ void *client_data_c=NULL;
+ void **data_c;
+ int *i;
+
+/* status = H5Eget_auto3(client_data); */
+/* i = (int*)client_data; */
+
+/* printf(" Buffer In (C3) = %d \n", *i); */
+
+/* return 0; */
+
+/* *ret_func = -1; */
+
+ status = H5Eget_auto2((hid_t)*estack_id, &func_c, &client_data_c);
+
+/* status = H5Eget_auto2((hid_t)*estack_id, &func_c, client_data); */
+
+ i = (int*)*client_data;
+
+/* *i = 1000; */
+
+
+/* i = (int*)client_data_c; */
+/* *i = 100; */
+
+/* *client_data = client_data_c; */
+/* *data_c = client_data_c; */
+
+ printf("aa %d \n",*((int*)client_data_c));
+/* printf("bb %d \n",**((int**)client_data)); */
+/* printf("cc %d \n",**((int**)data_c)); */
+
+/* printf("a %p \n",client_data_c); */
+/* printf("b %p \n",*client_data); */
+/* printf("c %p \n",*data_c); */
+
+/* i = (int*)client_data_c; */
+/* **client_data = *((int*)client_data_c);*/
+
+/* *i = 200; */
+
+/* if(client_data == NULL) */
+/* printf("error \n"); */
+
+/* if(func == NULL) */
+/* printf("error \n"); */
+
+/* #ifdef H5_USE_16_API */
+/* if (func == (H5E_auto_t)H5Eprint) */
+/* *ret_func = 0; */
+/* #else /\* H5_USE_16_API *\/ */
+/* if (func == (H5E_auto2_t)H5Eprint2) */
+/* *ret_func = 0; */
+/* #endif /\* H5_USE_16_API *\/ */
+
+/* #ifdef H5_USE_16_API */
+/* if (func == (H5E_auto_t)H5Eprint) */
+/* *ret_func = 0; */
+/* #else /\* H5_USE_16_API *\/ */
+/* if (func == (H5E_auto2_t)H5Eprint2) */
+/* *ret_func = 0; */ /* printf("%p %p \n",func,(H5E_auto2_t)H5Eprint2); */
+/* #endif /\* H5_USE_16_API *\/ */
+
+/* printf(" ret %d \n", ret_val); */
+ if (status >= 0) ret_val = 0;
+ ret_func = 0;
+ return ret_val;
+}
+
+void*
+nh5eget_auto_c2(hid_t_f *estack_id, H5E_auto2_t *func, int_f *ret_func)
+/******/
+{
+ int ret_val = -1;
+ herr_t status = -1;
+ hid_t dataset;
+ H5E_auto2_t func_c;
+ void *client_data_c=NULL;
+ void **data_c;
+ int *i;
+
+ status = H5Eget_auto2((hid_t)*estack_id, &func_c, &client_data_c);
+
+ printf("a %p \n",client_data_c);
+
+
+ if (status >= 0) ret_val = 0;
+ ret_func = 0;
+ return client_data_c;
+}
+
diff --git a/fortran/src/H5Eff.f90 b/fortran/src/H5Eff.f90
index c33f9c1..2e137df 100644
--- a/fortran/src/H5Eff.f90
+++ b/fortran/src/H5Eff.f90
@@ -1,10 +1,13 @@
-!****h* fortran/src/H5Eff.f90
+!****h* ROBODoc/H5E
!
! NAME
-! H5E
+! MODULE H5E
!
-! FUNCTION
-! This file contains Fortran interfaces for H5E functions.
+! FILE
+! fortran/src/H5Eff.f90
+!
+! PURPOSE
+! This Module contains Fortran interfaces for H5E functions.
!
! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
@@ -23,10 +26,10 @@
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
! NOTES
-! *** IMPORTANT ***
-! If you add a new H5E function you must add the function name to the
-! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
-! This is needed for Windows based operating systems.
+! *** IMPORTANT ***
+! If you add a new H5E function to the module you must add the function name
+! to the Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
!
!*****
@@ -42,76 +45,82 @@ MODULE H5E
CONTAINS
-!----------------------------------------------------------------------
-! Name: h5eclear_f
-!
-! Purpose: Clears the error stack for the current thread.
-!
-! Inputs:
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-!
-!
-!
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
+!****s* H5E/h5eclear_f
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). April 6, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5eclear_f(hdferr)
+! NAME
+! h5eclear_f
+!
+! PURPOSE
+! Clears the error stack for the current thread.
+!
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! estack_id - Error Stack id
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). April 6, 2001
+!
+! Added optional error stack identifier in order to bring
+! the function in line with the h5eclear2 routine.
+! MSB, July 9, 2009
+!
+! SOURCE
+ SUBROUTINE h5eclear_f(hdferr, estack_id)
IMPLICIT NONE
INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: estack_id
+!*****
+ INTEGER(HID_T) :: estack_id_default
-! INTEGER, EXTERNAL :: h5eclear_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
- INTEGER FUNCTION h5eclear_c()
+ INTEGER FUNCTION h5eclear_c(estack_id_default)
USE H5GLOBAL
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5ECLEAR_C'::h5eclear_c
!DEC$ENDIF
+ INTEGER(HID_T) :: estack_id_default
END FUNCTION h5eclear_c
END INTERFACE
- hdferr = h5eclear_c()
+
+ estack_id_default = H5E_DEFAULT_F
+ IF(PRESENT(estack_id)) estack_id_default = estack_id
+
+ hdferr = h5eclear_c(estack_id_default)
END SUBROUTINE h5eclear_f
-!----------------------------------------------------------------------
-! Name: h5h5eprint_f
+!****s* H5E/h5eprint_f
!
-! Purpose: Prints the error stack in a default manner.
+! NAME
+! h5eprint_f
!
-! Inputs:
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! name - name of the file that
-! contains print output
+! PURPOSE
+! Prints the error stack in a default manner.
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). April 6, 2001
+! OPTIONAL PARAMETERS
+! name - name of the file that contains print output
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Comment:
-!----------------------------------------------------------------------
-
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). April 6, 2001
+!
+! SOURCE
SUBROUTINE h5eprint_f(hdferr, name)
CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: name ! File name
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
INTEGER :: namelen
INTERFACE
@@ -141,40 +150,41 @@ CONTAINS
hdferr = h5eprint_c2()
ENDIF
END SUBROUTINE h5eprint_f
-
-!----------------------------------------------------------------------
-! Name: h5eget_major_f
-!
-! Purpose: Returns a character string describing an error specified
-! by a major error number.
-!
-! Inputs:
-! error_no - mojor error number
-! Outputs:
-! name - character string describing the error
-! namelen - number of characters in the name buffer
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). April 6, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
+!****s* H5E/h5eget_major_f
+!
+! NAME
+! h5eget_major_f
+!
+! PURPOSE
+! Returns a character string describing an error specified
+! by a major error number.
+!
+! INPUTS
+! error_no - major error number
+!
+! OUTPUTS
+! name - character string describing the error
+! namelen - number of characters in the name buffer
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). April 6, 2001
+!
+! SOURCE
SUBROUTINE h5eget_major_f(error_no, name, namelen, hdferr)
- INTEGER, INTENT(IN) :: error_no ! Major error number
- CHARACTER(LEN=*), INTENT(OUT) :: name ! Character string describing
- ! the error.
- INTEGER(SIZE_T), INTENT(IN) :: namelen !Anticipated number of characters in name.
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
+ INTEGER, INTENT(IN) :: error_no ! Major error number
+ CHARACTER(LEN=*), INTENT(OUT) :: name ! Character string describing
+ ! the error.
+ INTEGER(SIZE_T), INTENT(IN) :: namelen ! Anticipated number of characters
+ ! in name.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
INTERFACE
INTEGER FUNCTION h5eget_major_c(error_no, name, namelen)
USE H5GLOBAL
@@ -190,41 +200,38 @@ CONTAINS
hdferr = h5eget_major_c(error_no, name, namelen)
END SUBROUTINE h5eget_major_f
-
-!----------------------------------------------------------------------
-! Name: h5eget_minor_f
-!
-! Purpose: Returns a character string describing an error specified
-! by a minor error number.
+!****s* H5E/h5eget_minor_f
!
-! Inputs:
-! error_no - minor error number
-! Outputs:
-! name - character string describing the error
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
+! NAME
+! h5eget_minor_f
!
+! PURPOSE
+! Returns a character string describing an error specified
+! by a minor error number.
!
+! INPUTS
+! error_no - minor error number
!
+! OUTPUTS
+! name - character string describing the error
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). April 6, 2001
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). April 6, 2001
!
-! Comment:
-!----------------------------------------------------------------------
-
+! SOURCE
SUBROUTINE h5eget_minor_f(error_no, name, hdferr)
- INTEGER, INTENT(IN) :: error_no !Major error number
+ INTEGER, INTENT(IN) :: error_no ! Major error number
CHARACTER(LEN=*), INTENT(OUT) :: name ! Character string describing
! the error
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
+!*****
INTERFACE
INTEGER FUNCTION h5eget_minor_c(error_no, name)
USE H5GLOBAL
@@ -239,55 +246,6 @@ CONTAINS
hdferr = h5eget_minor_c(error_no, name)
END SUBROUTINE h5eget_minor_f
-!----------------------------------------------------------------------
-! Name: h5eset_auto_f
-!
-! Purpose: Turns automatic error printing on or off
-!
-! Inputs:
-! printflag - flag to turn automatic error
-! - Possible values are:
-! - 1 (on), 0 (off)
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-!
-!
-!
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). April 6, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5eset_auto_f(printflag, hdferr)
- INTEGER, INTENT(IN) :: printflag !flag to turn automatic error
- !printing on or off
- !possible values are:
- !printon (1)
- !printoff(0)
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTERFACE
- INTEGER FUNCTION h5eset_auto_c(printflag)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ESET_AUTO_C'::h5eset_auto_c
- !DEC$ENDIF
- INTEGER :: printflag
- END FUNCTION h5eset_auto_c
- END INTERFACE
-
- hdferr = h5eset_auto_c(printflag)
- END SUBROUTINE h5eset_auto_f
END MODULE H5E
diff --git a/fortran/src/H5Eff_F03.f90 b/fortran/src/H5Eff_F03.f90
new file mode 100644
index 0000000..e9eeac9
--- /dev/null
+++ b/fortran/src/H5Eff_F03.f90
@@ -0,0 +1,248 @@
+!****h* ROBODoc/H5E (F03)
+!
+! NAME
+! H5L_PROVISIONAL
+!
+! FILE
+! src/fortran/src/H5Eff_F03.f90
+!
+! PURPOSE
+!
+! This file contains Fortran 90 and Fortran 2003 interfaces for H5E functions.
+! It contains the same functions as H5Eff_DEPRECIATE.f90 but includes the
+! Fortran 2003 functions and the interface listings. This file will be compiled
+! instead of H5Eff_DEPRECIATE.f90 if Fortran 2003 functions are enabled.
+!
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! NOTES
+! *** IMPORTANT ***
+! If you add a new H5E function to the module you must add the function name
+! to the Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
+!
+!*****
+
+MODULE H5E_PROVISIONAL
+
+ USE H5GLOBAL
+
+CONTAINS
+
+ INTEGER FUNCTION h5eprint_def() bind(C)
+
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER :: hdferr
+
+ PRINT*,'Inside h5eprint_def'
+! STOP
+
+!!$ CALL h5eprint_f(hdferr)
+!!$ h5eprint_def = hdferr
+
+ END FUNCTION h5eprint_def
+
+!****s* H5E/h5eset_auto2_f
+!
+! NAME
+! h5eset_auto2_f
+!
+! PURPOSE
+! Returns settings for automatic error stack traversal function and its data.
+!
+! INPUTS
+! printflag - Flag to turn automatic error printing on or off;
+! possible values are:
+! printon (1)
+! printoff(0)
+! estack_id - Error stack identifier.
+! func - Function to be called upon an error condition.
+! client_data - Data passed to the error function
+!
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! July 10, 2009
+!
+! SOURCE
+ SUBROUTINE h5eset_auto_f(printflag, hdferr, estack_id, func, client_data)
+ USE ISO_C_BINDING
+ INTEGER , INTENT(IN) :: printflag
+ INTEGER , INTENT(OUT) :: hdferr
+ INTEGER(HID_T), INTENT(IN) , OPTIONAL :: estack_id
+ TYPE(C_FUNPTR), INTENT(IN) , OPTIONAL :: func
+ TYPE(C_PTR) , INTENT(IN) , OPTIONAL :: client_data
+!*****
+ INTEGER(HID_T) :: estack_id_default
+ TYPE(C_FUNPTR) :: func_default
+ TYPE(C_PTR) :: client_data_default
+ INTERFACE
+ INTEGER FUNCTION h5eset_auto2_c(printflag, estack_id, func, client_data)
+ USE ISO_C_BINDING
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ESET_AUTO2_C'::h5eset_auto2_c
+ !DEC$ENDIF
+ INTEGER :: printflag
+ INTEGER(HID_T) :: estack_id
+!!$ TYPE(C_FUNPTR) :: func
+!!$ TYPE(C_PTR), VALUE :: client_data
+ TYPE(C_FUNPTR), VALUE :: func
+ TYPE(C_PTR), VALUE :: client_data
+ END FUNCTION h5eset_auto2_c
+ END INTERFACE
+
+ estack_id_default = -1
+ func_default = C_NULL_FUNPTR
+ client_data_default = C_NULL_PTR
+
+ IF(PRESENT(estack_id)) estack_id_default = estack_id
+ IF(PRESENT(func)) func_default = func
+ IF(PRESENT(client_data)) client_data_default = client_data
+
+ hdferr = h5eset_auto2_c(printflag, estack_id_default, func_default, client_data_default)
+ END SUBROUTINE h5eset_auto_f
+
+!****s* H5E/h5eget_auto_f
+!
+! NAME
+! h5eget_auto_f
+!
+! PURPOSE
+! Returns the settings for the automatic error stack traversal function and its data.
+!
+! INPUTS
+! estack_id - Error stack identifier. H5E_DEFAULT_F indicates the current stack.
+! OUTPUTS
+! func - The function currently set to be called upon an error condition.
+! client_data - Data currently set to be passed to the error function.
+! hdferr - Returns 0 if successful and -1 if fails.
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! July 10, 2009
+!
+! SOURCE
+ SUBROUTINE h5eget_auto_f(estack_id, op, client_data, hdferr)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: estack_id
+!!$ TYPE(C_FUNPTR) :: op_f
+!!$ TYPE(C_PTR) :: client_data_f
+ TYPE(C_FUNPTR) :: op
+ TYPE(C_PTR), VALUE :: client_data
+ INTEGER, INTENT(OUT) :: hdferr
+!*****
+ INTEGER :: ret_func2
+ !INTEGER(C_INT), DIMENSION(:), POINTER :: ptr_data
+ INTEGER, DIMENSION(1:1) :: array_shape
+ TYPE(C_PTR), TARGET :: f_ptr1
+ INTEGER(C_INT) :: ptr_data
+ INTEGER(C_INT) :: i
+ TYPE(C_PTR) :: test
+ INTEGER, POINTER :: a
+
+ INTEGER, TARGET :: j
+ TYPE(C_PTR) :: f_ptr2
+
+ INTERFACE
+ INTEGER FUNCTION h5eget_auto_c(estack_id, op, client_data, ret_func2)
+ USE ISO_C_BINDING
+ USE H5GLOBAL
+ IMPLICIT NONE
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5EGET_AUTO_C'::h5eget_auto_c
+ !DEC$ENDIF
+ INTEGER(HID_T) :: estack_id
+ TYPE(C_FUNPTR) :: op
+ TYPE(C_PTR) :: client_data
+ INTEGER :: ret_func2
+ END FUNCTION h5eget_auto_c
+
+!!$ TYPE(C_PTR) FUNCTION h5eget_auto_c2(estack_id, op, ret_func2)
+!!$ USE ISO_C_BINDING
+!!$ USE H5GLOBAL
+!!$ IMPLICIT NONE
+!!$ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+!!$ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5EGET_AUTO_C'::h5eget_auto_c
+!!$ !DEC$ENDIF
+!!$ INTEGER(HID_T) :: estack_id
+!!$ TYPE(C_FUNPTR) :: op
+!!$ INTEGER :: ret_func2
+!!$ END FUNCTION h5eget_auto_c2
+
+!!$ SUBROUTINE process_buffer(estack_id, buffer)
+!!$ USE, INTRINSIC :: ISO_C_BINDING
+!!$ USE H5GLOBAL
+!!$ INTEGER(HID_T) :: estack_id
+!!$ TYPE(C_PTR) :: buffer
+!!$ END SUBROUTINE process_buffer
+
+ END INTERFACE
+
+! j = -9999
+
+
+ f_ptr2 = c_loc(j)
+! CALL process_buffer(estack_id,f_ptr2)
+
+ hdferr = h5eget_auto_c(estack_id, op, f_ptr2, ret_func2)
+
+!!!!! PRINT*,c_associated(f_ptr2)
+!!$ hdferr = h5eget_auto_c(estack_id, op, client_data, ret_func2)
+
+ PRINT*,'fortran',j
+ stop
+
+! client_data = h5eget_auto_c2(estack_id, op, ret_func2)
+
+! PRINT*,'Is client_data associated',C_associated(client_data)
+! PRINT*,'Is op_data associated',C_associated(op)
+
+! ALLOCATE(i(1:1))
+! CALL c_f_pointer(f_ptr2,a,[1])
+! CALL c_f_pointer(f_ptr2,i)
+! PRINT*,i
+! PRINT*,"Buffer in (F) = ", a(1)
+
+! stop
+
+! ALLOCATE(ptr_data(1:2))
+! ptr_data = 0
+! array_shape(1) = 1
+! CALL C_F_POINTER(client_data, ptr_data, array_shape)
+! CALL C_F_POINTER(f_ptr2, i,(/ 1 /))
+
+! ptr_data => f_ptr1(1)
+
+! PRINT*,'value in fortran',i
+
+
+! Check to see if the user created their own function,
+! otherwise we have to create a fortran version of the default
+
+!!$ IF(ret_func2.EQ.0)THEN
+!!$ op = c_funloc(h5eprint_def)
+!!$ END IF
+
+ END SUBROUTINE h5eget_auto_f
+
+END MODULE H5E_PROVISIONAL
diff --git a/fortran/src/H5Eff_F90.f90 b/fortran/src/H5Eff_F90.f90
new file mode 100644
index 0000000..e698a84
--- /dev/null
+++ b/fortran/src/H5Eff_F90.f90
@@ -0,0 +1,89 @@
+!****h* ROBODoc/H5E (F90)
+!
+! NAME
+! MODULE H5E_PROVISIONAL
+!
+! PURPOSE
+! This file contains Fortran 90 interfaces for H5E functions. It contains
+! the same functions as H5Eff_F03.f90 but excludes the Fortran 2003 functions
+! and the interface listings. This file will be compiled instead of H5Eff_F03.f90
+! if Fortran 2003 functions are not enabled.
+!
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! *** IMPORTANT ***
+! If you add a new H5D function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
+!*****
+
+MODULE H5E_PROVISIONAL
+
+ USE H5GLOBAL
+
+CONTAINS
+
+!****s* H5E/h5eset_auto_f
+!
+! NAME
+! h5eset_auto_f
+!
+! PURPOSE
+! Turns automatic error printing on or off.
+!
+! INPUTS
+! printflag - Flag to turn automatic error printing on or off;
+! possible values are:
+! printon (1)
+! printoff(0)
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). April 6, 2001
+!
+! SOURCE
+ SUBROUTINE h5eset_auto_f(printflag, hdferr)
+ INTEGER, INTENT(IN) :: printflag ! flag to turn automatic error
+ ! printing on or off
+ ! possible values are:
+ ! printon (1)
+ ! printoff(0)
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5eset_auto_c(printflag)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ESET_AUTO_C'::h5eset_auto_c
+ !DEC$ENDIF
+ INTEGER :: printflag
+ END FUNCTION h5eset_auto_c
+ END INTERFACE
+
+ hdferr = h5eset_auto_c(printflag)
+ END SUBROUTINE h5eset_auto_f
+
+
+END MODULE H5E_PROVISIONAL
diff --git a/fortran/src/H5FDmpiof.c b/fortran/src/H5FDmpiof.c
index 2f22b55..89b4180 100644
--- a/fortran/src/H5FDmpiof.c
+++ b/fortran/src/H5FDmpiof.c
@@ -1,4 +1,10 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+/****h* H5FDmpiof/H5FDmpiof
+ *
+ * PURPOSE
+ * This file contains C stubs for Parallel Fortran APIs
+ *
+ * COPYRIGHT
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
@@ -11,9 +17,10 @@
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* This files contains C stubs for Parallel Fortran APIs */
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ ******
+*/
#include "H5f90.h"
#include <mpi.h>
@@ -30,20 +37,28 @@
#define MPI_Info_f2c(info) (MPI_Info)(info)
#endif /*MPI Info*/
-/*----------------------------------------------------------------------------
- * Name: h5pset_fapl_mpio_c
- * Purpose: Call H5Pset_fapl_mpio to set mode for parallel I/O and the user
+/****if* H5FDmpiof/h5pset_fapl_mpio_c
+ * NAME
+ * h5pset_fapl_mpio_c
+ * PURPOSE
+ * Call H5Pset_fapl_mpio to set mode for parallel I/O and the user
* supplied communicator and info object
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* comm - MPI communicator
* info - MPI info object
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, October 26, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_fapl_mpio_c(hid_t_f *prp_id, int_f* comm, int_f* info)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -62,20 +77,27 @@ nh5pset_fapl_mpio_c(hid_t_f *prp_id, int_f* comm, int_f* info)
ret_value = 0;
return ret_value;
}
-
-/*----------------------------------------------------------------------------
- * Name: h5pget_fapl_mpio_c
- * Purpose: Call H5Pget_fapl_mpio to retrieve communicator and info object
- * Inputs: prp_id - property list identifier
+/****if* H5FDmpiof/h5pget_fapl_mpio_c
+ * NAME
+ * h5pget_fapl_mpio_c
+ * PURPOSE
+ * Call H5Pget_fapl_mpio to retrieve communicator and info object
+ * INPUTS
+ * prp_id - property list identifier
* comm - buffer to return MPI communicator
* info - buffer to return MPI info object
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, October 26, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_fapl_mpio_c(hid_t_f *prp_id, int_f* comm, int_f* info)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -94,19 +116,27 @@ nh5pget_fapl_mpio_c(hid_t_f *prp_id, int_f* comm, int_f* info)
ret_value = 0;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_dxpl_mpio_c
- * Purpose: Call H5Pset_dxpl_mpio to set transfer mode of the dataset
+/****if* H5FDmpiof/h5pset_dxpl_mpio_c
+ * NAME
+ * h5pset_dxpl_mpio_c
+ * PURPOSE
+ * Call H5Pset_dxpl_mpio to set transfer mode of the dataset
* trasfer property list
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* data_xfer_mode - transfer mode
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, October 26, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_dxpl_mpio_c(hid_t_f *prp_id, int_f* data_xfer_mode)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -137,19 +167,27 @@ nh5pset_dxpl_mpio_c(hid_t_f *prp_id, int_f* data_xfer_mode)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_dxpl_mpio_c
- * Purpose: Call H5Pget_dxpl_mpio to get transfer mode of the dataset
+/****if* H5FDmpiof/h5pget_dxpl_mpio_c
+ * NAME
+ * h5pget_dxpl_mpio_c
+ * PURPOSE
+ * Call H5Pget_dxpl_mpio to get transfer mode of the dataset
* trasfer property list
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* data_xfer_mode - buffer to retrieve transfer mode
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, June 15, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_dxpl_mpio_c(hid_t_f *prp_id, int_f* data_xfer_mode)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -182,20 +220,28 @@ nh5pget_dxpl_mpio_c(hid_t_f *prp_id, int_f* data_xfer_mode)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_fapl_mpiposix_c
- * Purpose: Call H5Pset_fapl_mpiposix to set mode for parallel I/O and the user
+/****if* H5FDmpiof/h5pset_fapl_mpiposix_c
+ * NAME
+ * h5pset_fapl_mpiposix_c
+ * PURPOSE
+ * Call H5Pset_fapl_mpiposix to set mode for parallel I/O and the user
* supplied communicator
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* comm - MPI communicator
* flag - flag to use GPFS hints
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Tuesday, May 6, 2003
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_fapl_mpiposix_c(hid_t_f *prp_id, int_f* comm, int_f* flag)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -214,19 +260,28 @@ nh5pset_fapl_mpiposix_c(hid_t_f *prp_id, int_f* comm, int_f* flag)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_fapl_mpiposix_c
- * Purpose: Call H5Pget_fapl_mpiposix to retrieve communicator and info object
- * Inputs: prp_id - property list identifier
- * Outputs: comm - buffer to return MPI communicator
+/****if* H5FDmpiof/h5pget_fapl_mpiposix_c
+ * NAME
+ * h5pget_fapl_mpiposix_c
+ * PURPOSE
+ * Call H5Pget_fapl_mpiposix to retrieve communicator and info object
+ * INPUTS
+ * prp_id - property list identifier
+ * OUTPUTS
+ * comm - buffer to return MPI communicator
* flag - flag to use GPFS hints
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Tuesday, May 6, 2003
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_fapl_mpiposix_c(hid_t_f *prp_id, int_f* comm, int_f* flag)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
diff --git a/fortran/src/H5FDmpioff.f90 b/fortran/src/H5FDmpioff.f90
index 787f0d5..ea9283c 100644
--- a/fortran/src/H5FDmpioff.f90
+++ b/fortran/src/H5FDmpioff.f90
@@ -1,3 +1,13 @@
+!****h* ROBODoc/H5FDMPIO
+!
+! NAME
+! MODULE H5FDMPIO
+!
+! PURPOSE
+! This file contains Fortran interfaces for H5P functions needed by
+! parallel MPI programs.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,238 +23,215 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
-!
-! This file contains Fortran90 interfaces for H5P functions needed by || MPI programs.
-!
- MODULE H5FDMPIO
- USE H5GLOBAL
- CONTAINS
-
-!----------------------------------------------------------------------
-! Name: h5pset_fapl_mpio_f
-!
-! Purpose: Stores MPI IO communicator information to the file
-! access property list.
-!
-! Inputs:
-! prp_id - file access property list identifier
-! comm - MPI-2 communicator
-! info - MPI-2 info object
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! November, 2000
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
- SUBROUTINE h5pset_fapl_mpio_f(prp_id, comm, info, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(IN) :: comm ! MPI communicator to be used for file open
- ! as defined in MPI_FILE_OPEN of MPI-2
- INTEGER, INTENT(IN) :: info ! MPI info object to be used for file open
- ! as defined in MPI_FILE_OPEN of MPI-2
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTEGER, EXTERNAL :: h5pset_fapl_mpio_c
- hdferr = h5pset_fapl_mpio_c(prp_id, comm, info)
- END SUBROUTINE h5pset_fapl_mpio_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_fapl_mpio_f
-!
-! Purpose: Returns MPI communicator information.
-!
-! Inputs:
-! prp_id - file access property list identifier
-! Outputs:
-! comm - MPI-2 communicator
-! info - MPI-2 info object
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! November, 2000
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_fapl_mpio_f(prp_id, comm, info, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(OUT) :: comm ! buffer to return communicator
- INTEGER, INTENT(OUT) :: info ! buffer to return info object
- ! as defined in MPI_FILE_OPEN of MPI-2
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTEGER, EXTERNAL :: h5pget_fapl_mpio_c
- hdferr = h5pget_fapl_mpio_c(prp_id, comm, info)
- END SUBROUTINE h5pget_fapl_mpio_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_dxpl_mpio_f
-!
-! Purpose: Sets data transfer mode.
-!
-! Inputs:
-! prp_id - data transfer property list identifier
-! data_xfer_mode - transfer mode
-! Possible values are:
-! H5FD_MPIO_INDEPENDENT_F
-! H5FD_MPIO_COLLECTIVE_F
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! November, 2000
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_dxpl_mpio_f(prp_id, data_xfer_mode, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(IN) :: data_xfer_mode ! Data transfer mode. Possible values are:
- ! H5FD_MPIO_INDEPENDENT_F
- ! H5FD_MPIO_COLLECTIVE_F
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTEGER, EXTERNAL :: h5pset_dxpl_mpio_c
- hdferr = h5pset_dxpl_mpio_c(prp_id, data_xfer_mode)
- END SUBROUTINE h5pset_dxpl_mpio_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_dxpl_mpio_f
-!
-! Purpose: Returns the data transfer mode.
-!
-! Inputs:
-! prp_id - data transfer property list identifier
-! Outputs:
-! data_xfer_mode - transfer mode
-! Possible values are:
-! H5FD_MPIO_INDEPENDENT_F
-! H5FD_MPIO_COLLECTIVE_F
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! November, 2000
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_dxpl_mpio_f(prp_id, data_xfer_mode, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(OUT) :: data_xfer_mode ! Data transfer mode. Possible values are:
- ! H5FD_MPIO_INDEPENDENT_F
- ! H5FD_MPIO_COLLECTIVE_F
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTEGER, EXTERNAL :: h5pget_dxpl_mpio_c
- hdferr = h5pget_dxpl_mpio_c(prp_id, data_xfer_mode)
- END SUBROUTINE h5pget_dxpl_mpio_f
-
-
-!----------------------------------------------------------------------
-! Name: h5pset_fapl_mpiposix_f
-!
-! Purpose: Stores MPI IO communicator information to the file
-! access property list.
-!
-! Inputs:
-! prp_id - file access property list identifier
-! comm - MPI-2 communicator
-! use_gpfs - logical flag to use the GPFS hints
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! May 6, 2003
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
- SUBROUTINE h5pset_fapl_mpiposix_f(prp_id, comm, use_gpfs, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(IN) :: comm ! MPI communicator to be used for file open
- ! as defined in MPI_FILE_OPEN of MPI-2
- LOGICAL, INTENT(IN) :: use_gpfs
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: flag
-
- INTEGER, EXTERNAL :: h5pset_fapl_mpiposix_c
- flag = 0
- if(use_gpfs) flag = 1
- hdferr = h5pset_fapl_mpiposix_c(prp_id, comm, flag)
- END SUBROUTINE h5pset_fapl_mpiposix_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_fapl_mpiposix_f
-!
-! Purpose: Returns MPI communicator information.
-!
-! Inputs:
-! prp_id - file access property list identifier
-! Outputs:
-! comm - MPI-2 communicator
-! use_gpfs - flag to use GPFS hints
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! May 6, 2003
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_fapl_mpiposix_f(prp_id, comm, use_gpfs, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(OUT) :: comm ! buffer to return communicator
- LOGICAL, INTENT(OUT) :: use_gpfs
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: flag
-
- INTEGER, EXTERNAL :: h5pget_fapl_mpiposix_c
- hdferr = h5pget_fapl_mpiposix_c(prp_id, comm, flag)
- use_gpfs = .FALSE.
- if (flag .eq. 1) use_gpfs = .TRUE.
- END SUBROUTINE h5pget_fapl_mpiposix_f
-
- END MODULE H5FDMPIO
+! NOTES
+! *** IMPORTANT ***
+! If you add a new H5P function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
+!
+!*****
+
+MODULE H5FDMPIO
+ USE H5GLOBAL
+CONTAINS
+
+!****s* H5FDMPIO/h5pset_fapl_mpio_f
+!
+! NAME
+! h5pset_fapl_mpio_f
+!
+! PURPOSE
+! Stores MPI IO communicator information to the file
+! access property list.
+!
+! INPUTS
+! prp_id - file access property list identifier
+! comm - MPI-2 communicator
+! info - MPI-2 info object
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! November, 2000
+!
+! SOURCE
+ SUBROUTINE h5pset_fapl_mpio_f(prp_id, comm, info, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: comm ! MPI communicator to be used for file open
+ ! as defined in MPI_FILE_OPEN of MPI-2
+ INTEGER, INTENT(IN) :: info ! MPI info object to be used for file open
+ ! as defined in MPI_FILE_OPEN of MPI-2
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER, EXTERNAL :: h5pset_fapl_mpio_c
+ hdferr = h5pset_fapl_mpio_c(prp_id, comm, info)
+ END SUBROUTINE h5pset_fapl_mpio_f
+
+!****s* H5FDMPIO/h5pget_fapl_mpio_f
+!
+! NAME
+! h5pget_fapl_mpio_f
+!
+! PURPOSE
+! Returns MPI communicator information.
+!
+! INPUTS
+! prp_id - file access property list identifier
+! OUTPUTS
+! comm - MPI-2 communicator
+! info - MPI-2 info object
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! November, 2000
+!
+! SOURCE
+ SUBROUTINE h5pget_fapl_mpio_f(prp_id, comm, info, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: comm ! buffer to return communicator
+ INTEGER, INTENT(OUT) :: info ! buffer to return info object
+ ! as defined in MPI_FILE_OPEN of MPI-2
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER, EXTERNAL :: h5pget_fapl_mpio_c
+ hdferr = h5pget_fapl_mpio_c(prp_id, comm, info)
+ END SUBROUTINE h5pget_fapl_mpio_f
+
+!****s* H5FDMPIO/h5pset_dxpl_mpio_f
+!
+! NAME
+! h5pset_dxpl_mpio_f
+!
+! PURPOSE
+! Sets data transfer mode.
+!
+! INPUTS
+! prp_id - data transfer property list identifier
+! data_xfer_mode - transfer mode; possible values are:
+! H5FD_MPIO_INDEPENDENT_F
+! H5FD_MPIO_COLLECTIVE_F
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! November, 2000
+!
+! SOURCE
+ SUBROUTINE h5pset_dxpl_mpio_f(prp_id, data_xfer_mode, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: data_xfer_mode ! Data transfer mode. Possible values are:
+ ! H5FD_MPIO_INDEPENDENT_F
+ ! H5FD_MPIO_COLLECTIVE_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER, EXTERNAL :: h5pset_dxpl_mpio_c
+ hdferr = h5pset_dxpl_mpio_c(prp_id, data_xfer_mode)
+ END SUBROUTINE h5pset_dxpl_mpio_f
+!****s* H5FDMPIO/h5pget_dxpl_mpio_f
+!
+! NAME
+! h5pget_dxpl_mpio_f
+!
+! PURPOSE
+! Returns the data transfer mode.
+!
+! INPUTS
+! prp_id - data transfer property list identifier
+! OUTPUTS
+! data_xfer_mode- transfer mode; possible values are:
+! H5FD_MPIO_INDEPENDENT_F
+! H5FD_MPIO_COLLECTIVE_F
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! November, 2000
+!
+! SOURCE
+ SUBROUTINE h5pget_dxpl_mpio_f(prp_id, data_xfer_mode, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: data_xfer_mode ! Data transfer mode. Possible values are:
+ ! H5FD_MPIO_INDEPENDENT_F
+ ! H5FD_MPIO_COLLECTIVE_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER, EXTERNAL :: h5pget_dxpl_mpio_c
+ hdferr = h5pget_dxpl_mpio_c(prp_id, data_xfer_mode)
+ END SUBROUTINE h5pget_dxpl_mpio_f
+
+!****s* H5FDMPIO/h5pset_fapl_mpiposix_f
+!
+! NAME
+! h5pset_fapl_mpiposix_f
+!
+! PURPOSE
+! Stores MPI IO communicator information to the file
+! access property list.
+!
+! INPUTS
+! prp_id - file access property list identifier
+! comm - MPI-2 communicator
+! use_gpfs - logical flag to use the GPFS hints
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! May 6, 2003
+!
+! SOURCE
+ SUBROUTINE h5pset_fapl_mpiposix_f(prp_id, comm, use_gpfs, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: comm ! MPI communicator to be used for file open
+ ! as defined in MPI_FILE_OPEN of MPI-2
+ LOGICAL, INTENT(IN) :: use_gpfs
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: flag
+ INTEGER, EXTERNAL :: h5pset_fapl_mpiposix_c
+ flag = 0
+ IF(use_gpfs) flag = 1
+ hdferr = h5pset_fapl_mpiposix_c(prp_id, comm, flag)
+ END SUBROUTINE h5pset_fapl_mpiposix_f
+
+!****s* H5FDMPIO/h5pget_fapl_mpiposix_f
+!
+! NAME
+! h5pget_fapl_mpiposix_f
+!
+! PURPOSE
+! Returns MPI communicator information.
+!
+! INPUTS
+! prp_id - file access property list identifier
+! OUTPUTS
+! comm - MPI-2 communicator
+! use_gpfs - flag to use GPFS hints
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! May 6, 2003
+!
+! SOURCE
+ SUBROUTINE h5pget_fapl_mpiposix_f(prp_id, comm, use_gpfs, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: comm ! Buffer to return communicator
+ LOGICAL, INTENT(OUT) :: use_gpfs
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: flag
+
+ INTEGER, EXTERNAL :: h5pget_fapl_mpiposix_c
+ hdferr = h5pget_fapl_mpiposix_c(prp_id, comm, flag)
+ use_gpfs = .FALSE.
+ IF (flag .EQ. 1) use_gpfs = .TRUE.
+ END SUBROUTINE h5pget_fapl_mpiposix_f
+
+END MODULE H5FDMPIO
diff --git a/fortran/src/H5Ff.c b/fortran/src/H5Ff.c
index 3cfc9e3..1259d4d 100644
--- a/fortran/src/H5Ff.c
+++ b/fortran/src/H5Ff.c
@@ -1,4 +1,9 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+/****h* H5Ff/H5Ff
+ * PURPOSE
+ * This file contains C stubs for H5F Fortran APIs
+ *
+ * COPYRIGHT
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
@@ -11,29 +16,37 @@
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* This files contains C stubs for H5F Fortran APIs */
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ ******
+*/
#include "H5f90.h"
#include "H5Eprivate.h"
-/*----------------------------------------------------------------------------
- * Name: h5fcreate_c
- * Purpose: Call H5Fcreate to create the file
- * Inputs: name - name of the file
+/****if* H5Ff/h5fcreate_c
+ * NAME
+ * h5fcreate_c
+ * PURPOSE
+ * Call H5Fcreate to create the file
+ * INPUTS
+ * name - name of the file
* namelen - name length
* access_flags - file access flags
* crt_pr - identifier of creation property list
* acc_prp - identifier of access property list
- * Outputs: file_id - file identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * file_id - file identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Monday, July 26, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5fcreate_c(_fcd name, int_f *namelen, int_f *access_flags, hid_t_f* crt_prp, hid_t_f *acc_prp, hid_t_f *file_id)
+/******/
{
int ret_value = -1;
char *c_name;
@@ -80,20 +93,26 @@ nh5fcreate_c(_fcd name, int_f *namelen, int_f *access_flags, hid_t_f* crt_prp, h
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5fflush_c
- * Purpose: Call H5Fflush to flush the object
- * Inputs: object_id - identifier of either a file, a dataset,
+/****if* H5Ff/h5fflush_c
+ * NAME
+ * h5fflush_c
+ * PURPOSE
+ * Call H5Fflush to flush the object
+ * INPUTS
+ * object_id - identifier of either a file, a dataset,
* a group, an attribute or a named data type
* scope - integer to specify the flushing action, either
* H5F_SCOPE_GLOBAL or H5F_SCOPE_LOCAL
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Friday, November 5, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5fflush_c (hid_t_f *object_id, int_f *scope)
+/******/
{
int ret_value = -1;
hid_t c_file_id;
@@ -115,21 +134,27 @@ nh5fflush_c (hid_t_f *object_id, int_f *scope)
}
-/*----------------------------------------------------------------------------
- * Name: h5fmount_c
- * Purpose: Call H5Fmount to mount the file
- * Inputs: loc_id - Identifier for file or group
+/****if* H5Ff/h5fmount_c
+ * NAME
+ * h5fmount_c
+ * PURPOSE
+ * Call H5Fmount to mount the file
+ * INPUTS
+ * loc_id - Identifier for file or group
* dsetname - name of dataset
* namelen - dsetname length
* file_id - file identifier for the file to be mounted
* acc_prp - identifier of access property list
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Monday, October 25, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+*/
int_f
nh5fmount_c (hid_t_f *loc_id, _fcd dsetname, int_f *namelen, hid_t_f *file_id, hid_t_f *acc_prp)
+/******/
{
int ret_value = -1;
char *c_name;
@@ -167,19 +192,25 @@ nh5fmount_c (hid_t_f *loc_id, _fcd dsetname, int_f *namelen, hid_t_f *file_id, h
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5funmount_c
- * Purpose: Call H5Funmount to unmount the file
- * Inputs: loc_id - Identifier for file or group
+/****if* H5Ff/h5funmount_c
+ * NAME
+ * h5funmount_c
+ * PURPOSE
+ * Call H5Funmount to unmount the file
+ * INPUTS
+ * loc_id - Identifier for file or group
* dsetname - name of dataset
* namelen - dsetname length
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Monday, October 25, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5funmount_c (hid_t_f *loc_id, _fcd dsetname, int_f *namelen)
+/******/
{
int ret_value = -1;
char *c_name;
@@ -209,21 +240,28 @@ nh5funmount_c (hid_t_f *loc_id, _fcd dsetname, int_f *namelen)
-/*----------------------------------------------------------------------------
- * Name: h5fopen_c
- * Purpose: Call H5Fopen to open the file
- * Inputs: name - name of the file
+/****if* H5Ff/h5fopen_c
+ * NAME
+ * h5fopen_c
+ * PURPOSE
+ * Call H5Fopen to open the file
+ * INPUTS
+ * name - name of the file
* namelen - name length
* access_flags - file access flags
* acc_prp - identifier of access property list
- * Outputs: file_id - file identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * file_id - file identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Tuesday, August 3, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5fopen_c (_fcd name, int_f *namelen, int_f *access_flags, hid_t_f *acc_prp, hid_t_f *file_id)
+/******/
{
int ret_value = -1;
char *c_name;
@@ -265,18 +303,25 @@ nh5fopen_c (_fcd name, int_f *namelen, int_f *access_flags, hid_t_f *acc_prp, hi
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5freopen_c
- * Purpose: Call H5Freopen to open the file
- * Inputs: file_id1 - file identifier
- * Outputs: file_id2 - file identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+/****if* H5Ff/h5freopen_c
+ * NAME
+ * h5freopen_c
+ * PURPOSE
+ * Call H5Freopen to open the file
+ * INPUTS
+ * file_id1 - file identifier
+ * OUTPUTS
+ * file_id2 - file identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Wednesday, November 3, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5freopen_c (hid_t_f *file_id1, hid_t_f *file_id2)
+/******/
{
int ret_value = -1;
hid_t c_file_id1, c_file_id2;
@@ -291,18 +336,25 @@ nh5freopen_c (hid_t_f *file_id1, hid_t_f *file_id2)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5fget_create_plist_c
- * Purpose: Call H5Fget_create_plist to get the file creation property list
- * Inputs: file_id - file identifier
- * Outputs: prop_id - creation property list identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal, Xiangyang Su
+/****if* H5Ff/h5fget_create_plist_c
+ * NAME
+ * h5fget_create_plist_c
+ * PURPOSE
+ * Call H5Fget_create_plist to get the file creation property list
+ * INPUTS
+ * file_id - file identifier
+ * OUTPUTS
+ * prop_id - creation property list identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal, Xiangyang Su
* Wednesday, November 3, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5fget_create_plist_c (hid_t_f *file_id, hid_t_f *prop_id)
+/******/
{
int ret_value = -1;
hid_t c_file_id, c_prop_id;
@@ -317,18 +369,27 @@ nh5fget_create_plist_c (hid_t_f *file_id, hid_t_f *prop_id)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5fget_access_plist_c
- * Purpose: Call H5Fget_access_plist to get the file access property list
- * Inputs: file_id - file identifier
- * Outputs: access_id - access property list identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Ff/h5fget_access_plist_c
+ * NAME
+ * h5fget_access_plist_c
+ * PURPOSE
+ * Call H5Fget_access_plist to get the file access property list
+ * INPUTS
+ * file_id - file identifier
+ * OUTPUTS
+ * access_id - access property list identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Monday, September 30, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5fget_access_plist_c (hid_t_f *file_id, hid_t_f *access_id)
+/******/
{
int ret_value = -1;
hid_t c_file_id, c_access_id;
@@ -343,20 +404,29 @@ nh5fget_access_plist_c (hid_t_f *file_id, hid_t_f *access_id)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5fis_hdf5_c
- * Purpose: Call H5Fis_hdf5 to determone if the file is an HDF5 file
- * Inputs: name - name of the file
+/****if* H5Ff/h5fis_hdf5_c
+ * NAME
+ * h5fis_hdf5_c
+ * PURPOSE
+ * Call H5Fis_hdf5 to determone if the file is an HDF5 file
+ * INPUTS
+ * name - name of the file
* namelen - name length
- * Outputs: flag - 0 if file is not HDF5 file , positive if a file
+ * OUTPUTS
+ * flag - 0 if file is not HDF5 file , positive if a file
* is an HDF5 file, and negative on failure.
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Tuesday, August 3, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5fis_hdf5_c (_fcd name, int_f *namelen, int_f *flag)
+/******/
{
int ret_value = -1;
char *c_name;
@@ -380,18 +450,26 @@ nh5fis_hdf5_c (_fcd name, int_f *namelen, int_f *flag)
HDfree(c_name);
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5fclose_c
- * Purpose: Call H5Fclose to close the file
- * Inputs: file_id - identifier of the file to be closed
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Ff/h5fclose_c
+ * NAME
+ * h5fclose_c
+ * PURPOSE
+ * Call H5Fclose to close the file
+ * INPUTS
+ * file_id - identifier of the file to be closed
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Monday, July 26, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5fclose_c ( hid_t_f *file_id )
+/******/
{
int ret_value = 0;
hid_t c_file_id;
@@ -400,22 +478,30 @@ nh5fclose_c ( hid_t_f *file_id )
if ( H5Fclose(c_file_id) < 0 ) ret_value = -1;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5fget_obj_count_c
- * Purpose: Call H5Fget_obj_count to get number of open objects within a file
- * Inputs: file_id - identifier of the file to be closed
+/****if* H5Ff/h5fget_obj_count_c
+ * NAME
+ * h5fget_obj_count_c
+ * PURPOSE
+ * Call H5Fget_obj_count to get number of open objects within a file
+ * INPUTS
+ * file_id - identifier of the file to be closed
* obj_type - type of the object
- * Returns: obj_count - number of objects
+ * RETURNS
+ * obj_count - number of objects
* 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * AUTHOR
+ * Elena Pourmal
* Monday, September 30, 2002
- * Modifications:
+ * HISTORY
+ *
* Changed type of obj_count to size_t_f
* Thursday, September 25, 2008
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5fget_obj_count_c ( hid_t_f *file_id , int_f *obj_type, size_t_f * obj_count)
+/******/
{
int ret_value = 0;
hid_t c_file_id;
@@ -429,23 +515,32 @@ nh5fget_obj_count_c ( hid_t_f *file_id , int_f *obj_type, size_t_f * obj_count)
*obj_count = (size_t_f)c_obj_count;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5fget_obj_ids_c
- * Purpose: Call H5Fget_obj_count to get number of open objects within a file
- * Inputs: file_id - identifier of the file to be closed
- * obj_type - type of the object
- * Returns: obj_ids - iarray of open objects identifiers
+/****if* H5Ff/h5fget_obj_ids_c
+ * NAME
+ * h5fget_obj_ids_c
+ * PURPOSE
+ * Call H5Fget_obj_count to get number of open objects within a file
+ * INPUTS
+ * file_id - identifier of the file to be closed
+ * obj_type - type of the object
+ * RETURNS
+ * obj_ids - iarray of open objects identifiers
* 0 on success, -1 on failure
- * Programmer: Elena Pourmal
- * Monday, September 30, 2002
- * Modifications:
- * Changed type of max_obj to size_t_f; added parameter for the
- * number of open objects
- * Thursday, September 25, 2008 EIP
- *---------------------------------------------------------------------------*/
+ * AUTHOR
+ * Elena Pourmal
+ * Monday, September 30, 2002
+ * HISTORY
+ *
+ * Changed type of max_obj to size_t_f; added parameter for the
+ * number of open objects
+ * Thursday, September 25, 2008 EIP
+ *
+ * SOURCE
+*/
int_f
-nh5fget_obj_ids_c(hid_t_f *file_id, int_f *obj_type, size_t_f *max_objs,
+nh5fget_obj_ids_c ( hid_t_f *file_id , int_f *obj_type, size_t_f *max_objs,
hid_t_f *obj_ids, size_t_f *num_objs)
+/******/
{
int ret_value = 0;
hid_t c_file_id;
@@ -472,20 +567,25 @@ nh5fget_obj_ids_c(hid_t_f *file_id, int_f *obj_type, size_t_f *max_objs,
return ret_value;
}
-
-/*----------------------------------------------------------------------------
- * Name: h5fget_freespace_c
- * Purpose: Call H5Fget_freespace to get amount of free space within a file
- * Inputs: file_id - identifier of the file to query
- * Returns: free_space - amount of free space in file
+/****if* H5Ff/h5fget_freespace_c
+ * NAME
+ * h5fget_freespace_c
+ * PURPOSE
+ * Call H5Fget_freespace to get amount of free space within a file
+ * INPUTS
+ * file_id - identifier of the file to query
+ * RETURNS
+ * free_space - amount of free space in file
* 0 on success, -1 on failure
- * Programmer: Quincey Koziol
+ * AUTHOR
+ * Quincey Koziol
* Tuesday, October 7, 2003
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5fget_freespace_c ( hid_t_f *file_id , hssize_t_f *free_space)
+/******/
{
int ret_value = 0;
hid_t c_file_id;
@@ -497,20 +597,27 @@ nh5fget_freespace_c ( hid_t_f *file_id , hssize_t_f *free_space)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5fget_name_c
- * Purpose: Call H5Fget_name to get file's name
- * Inputs: obj_id - object identifier
+/****if* H5Ff/h5fget_name_c
+ * NAME
+ * h5fget_name_c
+ * PURPOSE
+ * Call H5Fget_name to get file's name
+ * INPUTS
+ * obj_id - object identifier
* buflen -size of the buffer
- * Outputs: buf - buffer to hold the name
+ * OUTPUTS
+ * buf - buffer to hold the name
* size - size of the file's name
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Tuesday, July 6, 2004
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5fget_name_c(hid_t_f *obj_id, size_t_f *size, _fcd buf, size_t_f *buflen)
+/******/
{
char *c_buf = NULL; /* Buffer to hold C string */
ssize_t size_c = -1;
@@ -539,18 +646,25 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5fget_filesize_c
- * Purpose: Call H5Fget_filesize to get file size
- * Inputs: file_id - file identifier
- * Outputs: size - size of the file
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Ff/h5fget_filesize_c
+ * NAME
+ * h5fget_filesize_c
+ * PURPOSE
+ * Call H5Fget_filesize to get file size
+ * INPUTS
+ * file_id - file identifier
+ * OUTPUTS
+ * size - size of the file
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, July 7, 2004
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5fget_filesize_c(hid_t_f *file_id, hsize_t_f *size)
+/******/
{
hsize_t size_c;
herr_t ret_value=0; /* Return value */
diff --git a/fortran/src/H5Fff.f90 b/fortran/src/H5Fff.f90
index dcd6ff6..0c70ad4 100644
--- a/fortran/src/H5Fff.f90
+++ b/fortran/src/H5Fff.f90
@@ -1,3 +1,15 @@
+!****h* ROBODoc/H5F
+!
+! NAME
+! MODULE H5F
+!
+! FILE
+! H5Fff.f90
+!
+! PURPOSE
+! This file contains Fortran interfaces for H5F functions.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,863 +25,810 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
-!
-! This file contains Fortran90 interfaces for H5F functions.
-!
- MODULE H5F
- USE H5GLOBAL
-
- CONTAINS
-
-!----------------------------------------------------------------------
-! Name: h5fcreate_f
-!
-! Purpose: Creates HDF5 files.
-!
-! Inputs:
-! name - name of the file to create
-! access_flags - File access flags. Allowable values are:
-! H5F_ACC_TRUNC_F
-! H5F_ACC_EXCL_F
-! Outputs:
-! file_id - file identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! creation_prp - file creation property list identifier
-! access_prp - file access property list identifier
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
- SUBROUTINE h5fcreate_f(name, access_flags, file_id, hdferr, &
- creation_prp, access_prp)
- IMPLICIT NONE
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the file
- INTEGER, INTENT(IN) :: access_flags ! File access flags
- INTEGER(HID_T), INTENT(OUT) :: file_id ! File identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: creation_prp
- ! File creation propertly
- ! list identifier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: access_prp
- ! File access property list
- ! identifier
- INTEGER(HID_T) :: creation_prp_default
- INTEGER(HID_T) :: access_prp_default
- INTEGER :: namelen ! Length of the name character string
-
-! INTEGER, EXTERNAL :: h5fcreate_c
-! Interface is needed for MS FORTRAN
-!
- INTERFACE
- INTEGER FUNCTION h5fcreate_c(name, namelen, access_flags, &
- creation_prp_default, access_prp_default, file_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FCREATE_C':: h5fcreate_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: access_flags
- INTEGER(HID_T), INTENT(OUT) :: file_id
- INTEGER(HID_T), INTENT(IN) :: creation_prp_default
- INTEGER(HID_T), INTENT(IN) :: access_prp_default
- INTEGER :: namelen
- END FUNCTION h5fcreate_c
- END INTERFACE
-
- creation_prp_default = H5P_DEFAULT_F
- access_prp_default = H5P_DEFAULT_F
-
- if (present(creation_prp)) creation_prp_default = creation_prp
- if (present(access_prp)) access_prp_default = access_prp
- namelen = LEN_TRIM(name)
-
- hdferr = h5fcreate_c(name, namelen, access_flags, &
- creation_prp_default, access_prp_default, file_id)
-
- END SUBROUTINE h5fcreate_f
-
-!----------------------------------------------------------------------
-! Name: h5fflush_f
-!
-! Purpose: Flushes all buffers associated with a file to disk
-!
-! Inputs:
-! object_id - identifier of object used to identify
-! the file.
-! scope - specifies the scope of the flushing action.
-! Possible values are:
-! H5F_SCOPE_GLOBAL_F
-! H5F_SCOPE_LOCAL_F
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! creation_prp - file creation property list identifier
-! access_prp - file access property list identifier
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
- SUBROUTINE h5fflush_f(object_id, scope, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: object_id !identifier for any object
- !associate with a file,
- !including the file itself,
- !a dataset, a group, an
- !attribute, or a named
- !data type
-
- INTEGER, INTENT(IN) :: scope !scope of the flushing
- !action, possible values
- !are: H5F_SCOPE_GLOBAL_F
- ! which flushes the entire
- !virtual file,
- !and H5F_SCOPE_LOCAL_F
- !which flushes only the
- !specified file.
-
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5fflush_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5fflush_c(object_id, scope)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FFLUSH_C':: h5fflush_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: object_id
- INTEGER, INTENT(IN) :: scope
- END FUNCTION h5fflush_c
- END INTERFACE
-
- hdferr = h5fflush_c(object_id, scope)
-
- END SUBROUTINE h5fflush_f
-
-!----------------------------------------------------------------------
-! Name: h5fmount_f
-!
-! Purpose: Mounts a file.
-!
-! Inputs:
-! loc_id - the identifier for of file or group in
-! which name is defined
-! name - the name of the group onto which the file
-! specified by child_id is to be mounted.
-! child_id - the identifier of the file to be mounted.
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! access_prp - the identifier of the property list to be used
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5fmount_f(loc_id, name, child_id, hdferr, access_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifier for file or group
- ! in which dsetname is defined
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the group
- INTEGER(HID_T), INTENT(IN) :: child_id ! File identifier for the
- ! file to be mounted
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: access_prp
- ! File access property list
- ! identifier
- INTEGER(HID_T) :: access_prp_default
- INTEGER :: namelen ! Length of the name character string
-
-! INTEGER, EXTERNAL :: h5fmount_c
-! Interface is needed for MS FORTRAN
-!
- INTERFACE
- INTEGER FUNCTION h5fmount_c(loc_id, name, namelen, &
- child_id, access_prp_default)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FMOUNT_C':: h5fmount_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER(HID_T), INTENT(IN) :: child_id
- INTEGER(HID_T), INTENT(IN) :: access_prp_default
- INTEGER :: namelen
- END FUNCTION h5fmount_c
- END INTERFACE
-
- access_prp_default = H5P_DEFAULT_F
- if (present(access_prp)) access_prp_default = access_prp
- namelen = LEN(name)
- hdferr = h5fmount_c(loc_id, name, namelen, child_id, access_prp_default)
-
- END SUBROUTINE h5fmount_f
-
-
-!----------------------------------------------------------------------
-! Name: h5funmount_f
-!
-! Purpose: Unmounts a file.
-!
-! Inputs:
-! loc_id - the identifier for of file or group in
-! which name is defined
-! name - the name of the mount point
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5funmount_f(loc_id, name, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifier for file or group
- ! at which the specified file
- ! is to be unmounted
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the mount point
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: namelen ! Length of the name character string
-
-! INTEGER, EXTERNAL :: h5fumount_c
-! Interface is needed for MS FORTRAN
-!
- INTERFACE
- INTEGER FUNCTION h5funmount_c(loc_id, name, namelen)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FUNMOUNT_C':: h5funmount_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER :: namelen
- END FUNCTION h5funmount_c
- END INTERFACE
-
- namelen = LEN(name)
- hdferr = h5funmount_c(loc_id, name, namelen)
-
- END SUBROUTINE h5funmount_f
-
-!----------------------------------------------------------------------
-! Name: h5fopen_f
-!
-! Purpose: Opens HDF5 file.
-!
-! Inputs:
-! name - name of the file to acecss
-! access_flags - File access flags. Allowable values are:
-! H5F_ACC_RDWR_F
-! H5F_ACC_RDONLY_F
-! Outputs:
-! file_id - file identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! access_prp - file access property list identifier
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
- SUBROUTINE h5fopen_f(name, access_flags, file_id, hdferr, &
- access_prp)
- IMPLICIT NONE
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the file
- INTEGER, INTENT(IN) :: access_flags ! File access flags
- INTEGER(HID_T), INTENT(OUT) :: file_id ! File identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: access_prp
- ! File access property list
- ! identifier
- INTEGER(HID_T) :: access_prp_default
- INTEGER :: namelen ! Length of the name character string
-
-! INTEGER, EXTERNAL :: h5fopen_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5fopen_c(name, namelen, access_flags, &
- access_prp_default, file_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FOPEN_C':: h5fopen_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER :: namelen
- INTEGER, INTENT(IN) :: access_flags
- INTEGER(HID_T), INTENT(IN) :: access_prp_default
- INTEGER(HID_T), INTENT(OUT) :: file_id
- END FUNCTION h5fopen_c
- END INTERFACE
-
- access_prp_default = H5P_DEFAULT_F
- if (present(access_prp)) access_prp_default = access_prp
- namelen = LEN(name)
- hdferr = h5fopen_c(name, namelen, access_flags, &
+! NOTES
+! *** IMPORTANT ***
+! If you add a new H5F function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
+!
+!*****
+
+MODULE H5F
+ USE H5GLOBAL
+
+CONTAINS
+!****s* H5F/h5fcreate_f
+!
+! NAME
+! h5fcreate_f
+!
+! PURPOSE
+! Creates HDF5 files.
+!
+! INPUTS
+! name - name of the file to create
+! access_flags - File access flags. Allowable values are:
+! H5F_ACC_TRUNC_F
+! H5F_ACC_EXCL_F
+! OUTPUTS
+! file_id - file identifier
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! OPTIONAL PARAMETERS
+! creation_prp - file creation property list identifier
+! access_prp - file access property list identifier
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! SOURCE
+ SUBROUTINE h5fcreate_f(name, access_flags, file_id, hdferr, &
+ creation_prp, access_prp)
+ IMPLICIT NONE
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the file
+ INTEGER, INTENT(IN) :: access_flags ! File access flags
+ INTEGER(HID_T), INTENT(OUT) :: file_id ! File identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: creation_prp
+ ! File creation propertly
+ ! list identifier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: access_prp
+ ! File access property list
+ ! identifier
+!*****
+ INTEGER(HID_T) :: creation_prp_default
+ INTEGER(HID_T) :: access_prp_default
+ INTEGER :: namelen ! Length of the name character string
+
+ INTERFACE
+ INTEGER FUNCTION h5fcreate_c(name, namelen, access_flags, &
+ creation_prp_default, access_prp_default, file_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FCREATE_C':: h5fcreate_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: access_flags
+ INTEGER(HID_T), INTENT(OUT) :: file_id
+ INTEGER(HID_T), INTENT(IN) :: creation_prp_default
+ INTEGER(HID_T), INTENT(IN) :: access_prp_default
+ INTEGER :: namelen
+ END FUNCTION h5fcreate_c
+ END INTERFACE
+
+ creation_prp_default = H5P_DEFAULT_F
+ access_prp_default = H5P_DEFAULT_F
+
+ IF (PRESENT(creation_prp)) creation_prp_default = creation_prp
+ IF (PRESENT(access_prp)) access_prp_default = access_prp
+ namelen = LEN_TRIM(name)
+ hdferr = h5fcreate_c(name, namelen, access_flags, &
+ creation_prp_default, access_prp_default, file_id)
+
+ END SUBROUTINE h5fcreate_f
+!****s* H5F/h5fflush_f
+!
+! NAME
+! h5fflush_f
+!
+! PURPOSE
+! Flushes all buffers associated WITH a file to disk
+!
+! INPUTS
+! object_id - identifier of object used to identify the file.
+! scope - specifies the scope of the flushing action.
+! Possible values are:
+! H5F_SCOPE_GLOBAL_F
+! H5F_SCOPE_LOCAL_F
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! OPTIONAL PARAMETERS
+! creation_prp - file creation property list identifier
+! access_prp - file access property list identifier
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! SOURCE
+ SUBROUTINE h5fflush_f(object_id, scope, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: object_id !identifier for any object
+ !associate with a file,
+ !including the file itself,
+ !a dataset, a group, an
+ !attribute, or a named
+ !data type
+
+ INTEGER, INTENT(IN) :: scope !scope of the flushing
+ !action, possible values
+ !are: H5F_SCOPE_GLOBAL_F
+ ! which flushes the entire
+ !virtual file,
+ !and H5F_SCOPE_LOCAL_F
+ !which flushes only the
+ !specified file.
+
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5fflush_c(object_id, scope)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FFLUSH_C':: h5fflush_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: object_id
+ INTEGER, INTENT(IN) :: scope
+ END FUNCTION h5fflush_c
+ END INTERFACE
+
+ hdferr = h5fflush_c(object_id, scope)
+
+ END SUBROUTINE h5fflush_f
+!****s* H5F/h5fmount_f
+!
+! NAME
+! h5fmount_f
+!
+! PURPOSE
+! Mounts a file.
+!
+! INPUTS
+! loc_id - the identifier for of file or group in
+! which name is defined
+! name - the name of the group onto which the file
+! specified by child_id is to be mounted.
+! child_id - the identifier of the file to be mounted.
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! access_prp - the identifier of the property list to be used
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! SOURCE
+ SUBROUTINE h5fmount_f(loc_id, name, child_id, hdferr, access_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifier for file or group
+ ! in which dsetname is defined
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the group
+ INTEGER(HID_T), INTENT(IN) :: child_id ! File identifier for the
+ ! file to be mounted
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: access_prp
+ ! File access property list
+ ! identifier
+!*****
+ INTEGER(HID_T) :: access_prp_default
+ INTEGER :: namelen ! Length of the name character string
+
+ INTERFACE
+ INTEGER FUNCTION h5fmount_c(loc_id, name, namelen, &
+ child_id, access_prp_default)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FMOUNT_C':: h5fmount_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER(HID_T), INTENT(IN) :: child_id
+ INTEGER(HID_T), INTENT(IN) :: access_prp_default
+ INTEGER :: namelen
+ END FUNCTION h5fmount_c
+ END INTERFACE
+
+ access_prp_default = H5P_DEFAULT_F
+ IF (PRESENT(access_prp)) access_prp_default = access_prp
+ namelen = LEN_TRIM(name)
+ hdferr = h5fmount_c(loc_id, name, namelen, child_id, access_prp_default)
+
+ END SUBROUTINE h5fmount_f
+
+!****s* H5F/h5funmount_f
+!
+! NAME
+! h5funmount_f
+!
+! PURPOSE
+! Unmounts a file.
+!
+! INPUTS
+! loc_id - the identifier for of file or group in
+! which name is defined
+! name - the name of the mount point
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! SOURCE
+ SUBROUTINE h5funmount_f(loc_id, name, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifier for file or group
+ ! at which the specified file
+ ! is to be unmounted
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the mount point
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: namelen ! Length of the name character string
+
+ INTERFACE
+ INTEGER FUNCTION h5funmount_c(loc_id, name, namelen)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FUNMOUNT_C':: h5funmount_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ END FUNCTION h5funmount_c
+ END INTERFACE
+
+ namelen = LEN_TRIM(name)
+ hdferr = h5funmount_c(loc_id, name, namelen)
+
+ END SUBROUTINE h5funmount_f
+!****s* H5F/h5fopen_f
+!
+! NAME
+! h5fopen_f
+!
+! PURPOSE
+! Opens HDF5 file.
+!
+! INPUTS
+! name - name of the file to acecss
+! access_flags - File access flags. Allowable values are:
+! H5F_ACC_RDWR_F
+! H5F_ACC_RDONLY_F
+! OUTPUTS
+! file_id - file identifier
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! access_prp - file access property list identifier
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! SOURCE
+ SUBROUTINE h5fopen_f(name, access_flags, file_id, hdferr, access_prp)
+ IMPLICIT NONE
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the file
+ INTEGER, INTENT(IN) :: access_flags ! File access flags
+ INTEGER(HID_T), INTENT(OUT) :: file_id ! File identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: access_prp
+ ! File access property list
+ ! identifier
+!*****
+ INTEGER(HID_T) :: access_prp_default
+ INTEGER :: namelen ! Length of the name character string
+
+ INTERFACE
+ INTEGER FUNCTION h5fopen_c(name, namelen, access_flags, &
+ access_prp_default, file_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FOPEN_C':: h5fopen_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER, INTENT(IN) :: access_flags
+ INTEGER(HID_T), INTENT(IN) :: access_prp_default
+ INTEGER(HID_T), INTENT(OUT) :: file_id
+ END FUNCTION h5fopen_c
+ END INTERFACE
+
+ access_prp_default = H5P_DEFAULT_F
+ IF (PRESENT(access_prp)) access_prp_default = access_prp
+ namelen = LEN_TRIM(name)
+ hdferr = h5fopen_c(name, namelen, access_flags, &
access_prp_default, file_id)
-
- END SUBROUTINE h5fopen_f
-
-!----------------------------------------------------------------------
-! Name: h5freopen_f
-!
-! Purpose: Reopens HDF5 file.
-!
-! Inputs:
-! file_id - identifier of a file for which an
-! additional identifier is required
-! Outputs:
-! ret_file_id - new file identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5freopen_f(file_id, ret_file_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
- INTEGER(HID_T), INTENT(OUT) :: ret_file_id ! New File identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5freopen_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5freopen_c(file_id, ret_file_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FREOPEN_C':: h5freopen_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: file_id
- INTEGER(HID_T), INTENT(OUT) :: ret_file_id
- END FUNCTION h5freopen_c
- END INTERFACE
-
- hdferr = h5freopen_c(file_id, ret_file_id)
-
- END SUBROUTINE h5freopen_f
-
-!----------------------------------------------------------------------
-! Name: h5fget_create_plist_f
-!
-! Purpose: Returns a file creation property list identifier.
-!
-! Inputs:
-! file_id - identifier of a file to get
-! get creation property list of
-! Outputs:
-! prop_id - creation property list identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5fget_create_plist_f(file_id, prop_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
- INTEGER(HID_T), INTENT(OUT) :: prop_id ! File creation property
- ! list identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5fget_create_plist_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5fget_create_plist_c(file_id, prop_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
-!DEC$ATTRIBUTES C,reference,decorate,alias:'H5FGET_CREATE_PLIST_C':: h5fget_create_plist_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: file_id
- INTEGER(HID_T), INTENT(OUT) :: prop_id
- END FUNCTION h5fget_create_plist_c
- END INTERFACE
-
- hdferr = h5fget_create_plist_c(file_id, prop_id)
-
- END SUBROUTINE h5fget_create_plist_f
-
-!----------------------------------------------------------------------
-! Name: h5fget_access_plist_f
-!
-! Purpose: Returns a file access property list identifier.
-!
-! Inputs:
-! file_id - identifier of a file to get
-! get creation property list of
-! Outputs:
-! access_id - access property list identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5fget_access_plist_f(file_id, access_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
- INTEGER(HID_T), INTENT(OUT) :: access_id ! File access property
- ! list identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5fget_access_plist_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5fget_access_plist_c(file_id, access_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
-!DEC$ATTRIBUTES C,reference,decorate,alias:'H5FGET_CREATE_PLIST_C':: h5fget_access_plist_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: file_id
- INTEGER(HID_T), INTENT(OUT) :: access_id
- END FUNCTION h5fget_access_plist_c
- END INTERFACE
-
-
- hdferr = h5fget_access_plist_c(file_id, access_id)
-
- END SUBROUTINE h5fget_access_plist_f
-
-!----------------------------------------------------------------------
-! Name: h5fis_hdf5_f
-!
-! Purpose: Determines whether a file is in the HDF5 format.
-!
-! Inputs:
-! name - name of the file to check
-! Outputs:
-! status - indicates if file is and HDF5 file
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5fis_hdf5_f(name, status, hdferr)
- IMPLICIT NONE
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the file
- LOGICAL, INTENT(OUT) :: status ! Indicates if file
- ! is an HDF5 file
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: namelen ! Length of the name character string
- INTEGER :: flag ! "TRUE/FALSE" flag from C routine
- ! to define status value.
-
-! INTEGER, EXTERNAL :: h5fis_hdf5_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5fis_hdf5_c(name, namelen, flag)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FIS_HDF5_C':: h5fis_hdf5_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER :: namelen
- INTEGER :: flag
- END FUNCTION h5fis_hdf5_c
- END INTERFACE
-
- namelen = LEN(name)
- hdferr = h5fis_hdf5_c(name, namelen, flag)
- status = .TRUE.
- if (flag .EQ. 0) status = .FALSE.
-
- END SUBROUTINE h5fis_hdf5_f
-
-!----------------------------------------------------------------------
-! Name: h5fclose_f
-!
-! Purpose: Closes HDF5 file.
-!
-! Inputs:
-! file_id - file identifier
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5fclose_f(file_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5fclose_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5fclose_c(file_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FCLOSE_C':: h5fclose_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: file_id
- END FUNCTION h5fclose_c
- END INTERFACE
-
- hdferr = h5fclose_c(file_id)
-
- END SUBROUTINE h5fclose_f
-
-!----------------------------------------------------------------------
-! Name: h5fget_obj_count_f
-!
-! Purpose: Gets number of the objects open within a file
-!
-! Inputs:
-! file_id - file identifier
-! obj_type - type of the object; possible values are:
-! H5F_OBJ_FILE_F
-! H5F_OBJ_DATASET_F
-! H5F_OBJ_GROUP_F
-! H5F_OBJ_DATATYPE_F
-! H5F_OBJ_ALL_F
-! Outputs:
-! obj_count - number of open objects
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! September 30, 2002
-!
-! Modifications:
-! Changed the type of obj_count to INTEGER(SIZE_T)
-! September 25, 2008 EIP
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5fget_obj_count_f(file_id, obj_type, obj_count, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
- INTEGER, INTENT(IN) :: obj_type ! Object type
- INTEGER(SIZE_T), INTENT(OUT) :: obj_count
- ! Number of open objects
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTERFACE
- INTEGER FUNCTION h5fget_obj_count_c(file_id, obj_type, obj_count)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FGET_OBJ_COUNT_C':: h5fget_obj_count_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: file_id
- INTEGER, INTENT(IN) :: obj_type ! Object type
- INTEGER(SIZE_T), INTENT(OUT) :: obj_count
- ! Number of open objects
- END FUNCTION h5fget_obj_count_c
- END INTERFACE
-
- hdferr = h5fget_obj_count_c(file_id, obj_type, obj_count)
-
- END SUBROUTINE h5fget_obj_count_f
-
-!----------------------------------------------------------------------
-! Name: h5fget_obj_ids_f
-!
-! Purpose: Get list of open objects identifiers within a file
-!
-! Inputs:
-! file_id - file identifier
-! obj_type - type of the object; possible values are:
-! H5F_OBJ_FILE_F
-! H5F_OBJ_DATASET_F
-! H5F_OBJ_GROUP_F
-! H5F_OBJ_DATATYPE_F
-! H5F_OBJ_ALL_F
-! Outputs:
-! obj_ids - array of open object identifiers
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! September 30, 2002
-!
-! Modifications:
-! Added optional parameter num_objs for number of open objects
-! of the specified type and changed type of max_obj to
-! INTEGER(SIZE_T)
-! September 25, 2008 EIP
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5fget_obj_ids_f(file_id, obj_type, max_objs, obj_ids, hdferr, num_objs)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
- INTEGER, INTENT(IN) :: obj_type ! Object type
- INTEGER(SIZE_T), INTENT(IN) :: max_objs ! Maximum # of objects to retrieve
- INTEGER(HID_T), DIMENSION(*), INTENT(INOUT) :: obj_ids
+ END SUBROUTINE h5fopen_f
+!****s* H5F/h5freopen_f
+!
+! NAME
+! h5freopen_f
+!
+! PURPOSE
+! Reopens HDF5 file.
+!
+! INPUTS
+! file_id - identifier of a file for which an
+! additional identifier is required
+! OUTPUTS
+! ret_file_id - new file identifier
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! SOURCE
+ SUBROUTINE h5freopen_f(file_id, ret_file_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
+ INTEGER(HID_T), INTENT(OUT) :: ret_file_id ! New File identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5freopen_c(file_id, ret_file_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FREOPEN_C':: h5freopen_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: file_id
+ INTEGER(HID_T), INTENT(OUT) :: ret_file_id
+ END FUNCTION h5freopen_c
+ END INTERFACE
+
+ hdferr = h5freopen_c(file_id, ret_file_id)
+
+ END SUBROUTINE h5freopen_f
+!****s* H5F/h5fget_create_plist_f
+!
+! NAME
+! h5fget_create_plist_f
+!
+! PURPOSE
+! Returns a file creation property list identifier.
+!
+! INPUTS
+! file_id - identifier of a file to creation property list of
+! OUTPUTS
+! prop_id - creation property list identifier
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! SOURCE
+ SUBROUTINE h5fget_create_plist_f(file_id, prop_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
+ INTEGER(HID_T), INTENT(OUT) :: prop_id ! File creation property
+ ! list identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5fget_create_plist_c(file_id, prop_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FGET_CREATE_PLIST_C':: h5fget_create_plist_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: file_id
+ INTEGER(HID_T), INTENT(OUT) :: prop_id
+ END FUNCTION h5fget_create_plist_c
+ END INTERFACE
+
+ hdferr = h5fget_create_plist_c(file_id, prop_id)
+
+ END SUBROUTINE h5fget_create_plist_f
+!****s* H5F/h5fget_access_plist_f
+!
+! NAME
+! h5fget_access_plist_f
+!
+! PURPOSE
+! Returns a file access property list identifier.
+!
+! INPUTS
+! file_id - identifier of a file to creation property list of
+! OUTPUTS
+! access_id - access property list identifier
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! SOURCE
+ SUBROUTINE h5fget_access_plist_f(file_id, access_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
+ INTEGER(HID_T), INTENT(OUT) :: access_id ! File access property
+ ! list identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5fget_access_plist_c(file_id, access_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FGET_CREATE_PLIST_C':: h5fget_access_plist_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: file_id
+ INTEGER(HID_T), INTENT(OUT) :: access_id
+ END FUNCTION h5fget_access_plist_c
+ END INTERFACE
+
+ hdferr = h5fget_access_plist_c(file_id, access_id)
+
+ END SUBROUTINE h5fget_access_plist_f
+
+!****s* H5F/h5fis_hdf5_f
+!
+! NAME
+! h5fis_hdf5_f
+!
+! PURPOSE
+! Determines whether a file is in the HDF5 format.
+!
+! INPUTS
+! name - name of the file to check
+! OUTPUTS
+! status - indicates if file is and HDF5 file
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! SOURCE
+ SUBROUTINE h5fis_hdf5_f(name, status, hdferr)
+ IMPLICIT NONE
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the file
+ LOGICAL, INTENT(OUT) :: status ! Indicates if file
+ ! is an HDF5 file
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: namelen ! Length of the name character string
+ INTEGER :: flag ! "TRUE/FALSE" flag from C routine
+ ! to define status value.
+
+ INTERFACE
+ INTEGER FUNCTION h5fis_hdf5_c(name, namelen, flag)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FIS_HDF5_C':: h5fis_hdf5_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER :: flag
+ END FUNCTION h5fis_hdf5_c
+ END INTERFACE
+
+ namelen = LEN_TRIM(name)
+ hdferr = h5fis_hdf5_c(name, namelen, flag)
+ status = .TRUE.
+ IF (flag .EQ. 0) status = .FALSE.
+
+ END SUBROUTINE h5fis_hdf5_f
+!****s* H5F/h5fclose_f
+!
+! NAME
+! h5fclose_f
+!
+! PURPOSE
+! Closes HDF5 file.
+!
+! INPUTS
+! file_id - file identifier
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! SOURCE
+ SUBROUTINE h5fclose_f(file_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5fclose_c(file_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FCLOSE_C':: h5fclose_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: file_id
+ END FUNCTION h5fclose_c
+ END INTERFACE
+
+ hdferr = h5fclose_c(file_id)
+
+ END SUBROUTINE h5fclose_f
+
+!****s* H5F/h5fget_obj_count_f
+!
+! NAME
+! h5fget_obj_count_f
+!
+! PURPOSE
+! Gets number of the objects open within a file
+!
+! INPUTS
+! file_id - file identifier
+! obj_type - type of the object; possible values are:
+! H5F_OBJ_FILE_F
+! H5F_OBJ_DATASET_F
+! H5F_OBJ_GROUP_F
+! H5F_OBJ_DATATYPE_F
+! H5F_OBJ_ALL_F
+! OUTPUTS
+! obj_count - number of open objects
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! September 30, 2002
+!
+! HISTORY
+! Changed the type of obj_count to INTEGER(SIZE_T)
+! September 25, 2008 EIP
+!
+! SOURCE
+ SUBROUTINE h5fget_obj_count_f(file_id, obj_type, obj_count, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
+ INTEGER, INTENT(IN) :: obj_type ! Object type
+ INTEGER(SIZE_T), INTENT(OUT) :: obj_count
+ ! Number of open objects
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5fget_obj_count_c(file_id, obj_type, obj_count)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FGET_OBJ_COUNT_C':: h5fget_obj_count_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: file_id
+ INTEGER, INTENT(IN) :: obj_type ! Object type
+ INTEGER(SIZE_T), INTENT(OUT) :: obj_count
+ ! Number of open objects
+ END FUNCTION h5fget_obj_count_c
+ END INTERFACE
+
+ hdferr = h5fget_obj_count_c(file_id, obj_type, obj_count)
+
+ END SUBROUTINE h5fget_obj_count_f
+
+!****s* H5F/h5fget_obj_ids_f
+!
+! NAME
+! h5fget_obj_ids_f
+!
+! PURPOSE
+! Get list of open objects identifiers within a file
+!
+! INPUTS
+! file_id - file identifier
+! obj_type - type of the object; possible values are:
+! H5F_OBJ_FILE_F
+! H5F_OBJ_DATASET_F
+! H5F_OBJ_GROUP_F
+! H5F_OBJ_DATATYPE_F
+! H5F_OBJ_ALL_F
+! OUTPUTS
+! obj_ids - array of open object identifiers
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! OPTIONAL PARAMETERS
+! num_objs - number of open objects
+!
+! AUTHOR
+! Elena Pourmal
+! September 30, 2002
+!
+! HISTORY
+! Added optional parameter num_objs for number of open objects
+! of the specified type and changed type of max_obj to
+! INTEGER(SIZE_T)
+! September 25, 2008 EIP
+!
+! SOURCE
+ SUBROUTINE h5fget_obj_ids_f(file_id, obj_type, max_objs, obj_ids, hdferr, num_objs)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
+ INTEGER, INTENT(IN) :: obj_type ! Object type
+ INTEGER(SIZE_T), INTENT(IN) :: max_objs ! Maximum # of objects to retrieve
+ INTEGER(HID_T), DIMENSION(*), INTENT(INOUT) :: obj_ids
! Array of open objects iidentifiers
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(SIZE_T), INTENT(OUT), OPTIONAL :: num_objs
- INTEGER(SIZE_T) :: c_num_objs
- ! Number of open objects of the specified type
-
- INTERFACE
- INTEGER FUNCTION h5fget_obj_ids_c(file_id, obj_type, max_objs, obj_ids, c_num_objs)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FGET_OBJ_IDS_C':: h5fget_obj_ids_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: file_id
- INTEGER, INTENT(IN) :: obj_type
- INTEGER(SIZE_T), INTENT(IN) :: max_objs
- INTEGER(HID_T), DIMENSION(*), INTENT(INOUT) :: obj_ids
- INTEGER(SIZE_T), INTENT(OUT) :: c_num_objs
- END FUNCTION h5fget_obj_ids_c
- END INTERFACE
-
- hdferr = h5fget_obj_ids_c(file_id, obj_type, max_objs, obj_ids, c_num_objs)
- if (present(num_objs)) num_objs= c_num_objs
-
- END SUBROUTINE h5fget_obj_ids_f
-
-!----------------------------------------------------------------------
-! Name: h5fget_freespace_f
-!
-! Purpose: Get amount of free space within a file
-!
-! Inputs:
-! file_id - file identifier
-! Outputs:
-! free_space - amount of free space in file
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Quincey Koziol
-! October 7, 2003
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5fget_freespace_f(file_id, free_space, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
- INTEGER(HSSIZE_T), INTENT(OUT) :: free_space
- !amount of free space in file
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTERFACE
- INTEGER FUNCTION h5fget_freespace_c(file_id, free_space)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FGET_FREESPACE_C':: h5fget_freespace_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: file_id
- INTEGER(HSSIZE_T), INTENT(OUT) :: free_space
- END FUNCTION h5fget_freespace_c
- END INTERFACE
-
- hdferr = h5fget_freespace_c(file_id, free_space)
-
- END SUBROUTINE h5fget_freespace_f
-
-!----------------------------------------------------------------------
-! Name: h5fget_name_f
-!
-! Purpose: Gets the name of the file from the object identifier
-!
-! Inputs:
-! obj_id - object identifier
-! Inputs/Outputs:
-! buf - buffer to read name in
-! Outputs:
-! size - actual size of the name
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-!
-! Programmer: Elena Pourmal
-! July 6, 2004
-!
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5fget_name_f(obj_id, buf, size, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
- CHARACTER(LEN=*), INTENT(INOUT) :: buf
- ! Buffer to hold file name
- INTEGER(SIZE_T), INTENT(OUT) :: size ! Size of the file name
- INTEGER, INTENT(OUT) :: hdferr ! Error code: 0 on success,
- ! -1 if fail
- INTEGER(SIZE_T) :: buflen
-! INTEGER, EXTERNAL :: h5fget_name_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5fget_name_c(obj_id, size, buf, buflen)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FGET_NAME_C'::h5fget_name_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: obj_id
- INTEGER(SIZE_T), INTENT(OUT) :: size
- INTEGER(SIZE_T) :: buflen
- CHARACTER(LEN=*), INTENT(OUT) :: buf
- END FUNCTION h5fget_name_c
- END INTERFACE
- buflen = LEN(buf)
- hdferr = h5fget_name_c(obj_id, size, buf, buflen)
- END SUBROUTINE h5fget_name_f
-
-!----------------------------------------------------------------------
-! Name: h5fget_filesize_f
-!
-! Purpose: Retrieves the file size of the HDF5 file.
-!
-! Inputs:
-! file_id - file identifier
-! Outputs:
-! size - file size
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-!
-! Programmer: Elena Pourmal
-! July 7, 2004
-!
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5fget_filesize_f(file_id, size, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: file_id ! file identifier
- INTEGER(HSIZE_T), INTENT(OUT) :: size ! Size of the file
- INTEGER, INTENT(OUT) :: hdferr ! Error code: 0 on success,
- ! -1 if fail
-! INTEGER, EXTERNAL :: h5fget_filesize_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5fget_filesize_c(file_id, size)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FGET_FILESIZE_C'::h5fget_filesize_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: file_id
- INTEGER(HSIZE_T), INTENT(OUT) :: size
- END FUNCTION h5fget_filesize_c
- END INTERFACE
- hdferr = h5fget_filesize_c(file_id, size)
- END SUBROUTINE h5fget_filesize_f
-
-
- END MODULE H5F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(SIZE_T), INTENT(OUT), OPTIONAL :: num_objs ! number of open objects
+!*****
+ INTEGER(SIZE_T) :: c_num_objs ! Number of open objects of the specified type
+
+ INTERFACE
+ INTEGER FUNCTION h5fget_obj_ids_c(file_id, obj_type, max_objs, obj_ids, c_num_objs)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FGET_OBJ_IDS_C':: h5fget_obj_ids_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: file_id
+ INTEGER, INTENT(IN) :: obj_type
+ INTEGER(SIZE_T), INTENT(IN) :: max_objs
+ INTEGER(HID_T), DIMENSION(*), INTENT(INOUT) :: obj_ids
+ INTEGER(SIZE_T), INTENT(OUT) :: c_num_objs
+ END FUNCTION h5fget_obj_ids_c
+ END INTERFACE
+
+ hdferr = h5fget_obj_ids_c(file_id, obj_type, max_objs, obj_ids, c_num_objs)
+ IF (PRESENT(num_objs)) num_objs= c_num_objs
+
+ END SUBROUTINE h5fget_obj_ids_f
+!****s* H5F/h5fget_freespace_f
+!
+! NAME
+! h5fget_freespace_f
+!
+! PURPOSE
+! Get amount of free space within a file
+!
+! INPUTS
+! file_id - file identifier
+! OUTPUTS
+! free_space - amount of free space in file
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Quincey Koziol
+! October 7, 2003
+!
+! SOURCE
+ SUBROUTINE h5fget_freespace_f(file_id, free_space, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
+ INTEGER(HSSIZE_T), INTENT(OUT) :: free_space
+ ! amount of free space in file
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5fget_freespace_c(file_id, free_space)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FGET_FREESPACE_C':: h5fget_freespace_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: file_id
+ INTEGER(HSSIZE_T), INTENT(OUT) :: free_space
+ END FUNCTION h5fget_freespace_c
+ END INTERFACE
+
+ hdferr = h5fget_freespace_c(file_id, free_space)
+
+ END SUBROUTINE h5fget_freespace_f
+!****s* H5F/h5fget_name_f
+!
+! NAME
+! h5fget_name_f
+!
+! PURPOSE
+! Gets the name of the file from the object identifier
+!
+! INPUTS
+! obj_id - object identifier
+! OUTPUTS
+! buf - buffer to store the read name
+! size - actual size of the name
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! July 6, 2004
+!
+! SOURCE
+ SUBROUTINE h5fget_name_f(obj_id, buf, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
+ CHARACTER(LEN=*), INTENT(INOUT) :: buf
+ ! Buffer to hold file name
+ INTEGER(SIZE_T), INTENT(OUT) :: size ! Size of the file name
+ INTEGER, INTENT(OUT) :: hdferr ! Error code: 0 on success,
+ ! -1 if fail
+!*****
+ INTEGER(SIZE_T) :: buflen
+
+ INTERFACE
+ INTEGER FUNCTION h5fget_name_c(obj_id, size, buf, buflen)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FGET_NAME_C'::h5fget_name_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: obj_id
+ INTEGER(SIZE_T), INTENT(OUT) :: size
+ INTEGER(SIZE_T) :: buflen
+ CHARACTER(LEN=*), INTENT(OUT) :: buf
+ END FUNCTION h5fget_name_c
+ END INTERFACE
+ buflen = LEN_TRIM(buf)
+ hdferr = h5fget_name_c(obj_id, size, buf, buflen)
+ END SUBROUTINE h5fget_name_f
+!****s* H5F/h5fget_filesize_f
+!
+! NAME
+! h5fget_filesize_f
+!
+! PURPOSE
+! Retrieves the file size of the HDF5 file.
+!
+! INPUTS
+! file_id - file identifier
+! OUTPUTS
+! size - file size
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! July 7, 2004
+!
+! SOURCE
+ SUBROUTINE h5fget_filesize_f(file_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: file_id ! file identifier
+ INTEGER(HSIZE_T), INTENT(OUT) :: size ! Size of the file
+ INTEGER, INTENT(OUT) :: hdferr ! Error code: 0 on success,
+ ! -1 if fail
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5fget_filesize_c(file_id, size)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FGET_FILESIZE_C'::h5fget_filesize_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: file_id
+ INTEGER(HSIZE_T), INTENT(OUT) :: size
+ END FUNCTION h5fget_filesize_c
+ END INTERFACE
+ hdferr = h5fget_filesize_c(file_id, size)
+ END SUBROUTINE h5fget_filesize_f
+
+
+END MODULE H5F
diff --git a/fortran/src/H5Gf.c b/fortran/src/H5Gf.c
index f40b595..5ebb3e7 100644
--- a/fortran/src/H5Gf.c
+++ b/fortran/src/H5Gf.c
@@ -1,4 +1,9 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+/****h* H5Gf/H5Gf
+ * PURPOSE
+ * This file contains C stubs for H5G Fortran APIs
+ *
+ * COPYRIGHT
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
@@ -11,32 +16,42 @@
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* This files contains C stubs for H5G Fortran APIs */
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ ******
+*/
#include "H5f90.h"
#include "H5Eprivate.h"
-/*----------------------------------------------------------------------------
- * Name: h5gcreate_c
- * Purpose: Call H5Gcreate to create a group
- * Inputs: loc_id - file or group identifier
+/****if* H5Gf/h5gcreate_c
+ * NAME
+ * h5gcreate_c
+ * PURPOSE
+ * Call H5Gcreate to create a group
+ * INPUTS
+ * loc_id - file or group identifier
* name - name of the group
* namelen - name length
* size_hint - length of names in the group
- * Outputs: grp_id - group identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * grp_id - group identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, August 5, 1999
- * Modifications:
+ * HISTORY
+ *
* Changed to call H5Gcreate2 because H5Gcreate flip-flops and
* H5Gcreate1 can be compiled out of the library
* QAK - 2007/08/23
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5gcreate_c(hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *size_hint,
hid_t_f *grp_id, hid_t_f *lcpl_id, hid_t_f *gcpl_id, hid_t_f *gapl_id )
+/******/
{
hid_t c_gcpl_id = -1; /* Group creation property list */
char *c_name = NULL;
@@ -81,21 +96,29 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5gopen_c
- * Purpose: Call H5Gopen to open a dataset
- * Inputs: loc_id - file or group identifier
+/****if* H5Gf/h5gopen_c
+ * NAME
+ * h5gopen_c
+ * PURPOSE
+ * Call H5Gopen to open a dataset
+ * INPUTS
+ * loc_id - file or group identifier
* name - name of the group
* namelen - name length
* gapl_id - Group access property list identifier
- * Outputs: grp_id - group identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * grp_id - group identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, August 5, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ *
+ * SOURCE
+*/
int_f
nh5gopen_c(hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *gapl_id, hid_t_f *grp_id)
+/******/
{
char *c_name = NULL;
hid_t c_grp_id;
@@ -123,25 +146,32 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5gget_obj_info_idx_c
- * Purpose: Call H5Gget_obj_info to return name and the type of group
+/****if* H5Gf/h5gget_obj_info_idx_c
+ * NAME
+ * h5gget_obj_info_idx_c
+ * PURPOSE
+ * Call H5Gget_obj_info to return name and the type of group
* member
- * Inputs: loc_id - file or group identifier
+ * INPUTS
+ * loc_id - file or group identifier
* name - name of the group
* namelen - name length
* idx - index of the group member
- * Outputs: obj_name - buffer to store member's name
+ * OUTPUTS
+ * obj_name - buffer to store member's name
* obj_namelen - length of the buffer
* obj_type - type of the object
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, August 5, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5gget_obj_info_idx_c(hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *idx,
_fcd obj_name, int_f *obj_namelen, int_f *obj_type)
+/******/
{
H5O_info_t oinfo;
hid_t c_loc_id = (hid_t)*loc_id;
@@ -199,20 +229,27 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5gn_members_c
- * Purpose: Call H5Gget_info_by_name to find number of objects in the group
- * Inputs: loc_id - file or group identifier
+/****if* H5Gf/h5gn_members_c
+ * NAME
+ * h5gn_members_c
+ * PURPOSE
+ * Call H5Gget_info_by_name to find number of objects in the group
+ * INPUTS
+ * loc_id - file or group identifier
* name - name of the group
* namelen - name length
- * Outputs: nmemebers - number of members
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * nmemebers - number of members
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, August 5, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5gn_members_c(hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *nmembers)
+/******/
{
char *c_name = NULL;
H5G_info_t ginfo;
@@ -237,18 +274,24 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5gclose_c
- * Purpose: Call H5Gclose to close the group
- * Inputs: grp_id - identifier of the group to be closed
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Gf/h5gclose_c
+ * NAME
+ * h5gclose_c
+ * PURPOSE
+ * Call H5Gclose to close the group
+ * INPUTS
+ * grp_id - identifier of the group to be closed
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, August 5, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5gclose_c(hid_t_f *grp_id)
+/******/
{
int ret_value = 0;
@@ -258,25 +301,31 @@ nh5gclose_c(hid_t_f *grp_id)
}
-/*----------------------------------------------------------------------------
- * Name: h5glink_c
- * Purpose: Call H5Glink to link the specified type
- * Inputs: loc_id - identifier of file or group
+/****if* H5Gf/h5glink_c
+ * NAME
+ * h5glink_c
+ * PURPOSE
+ * Call H5Glink to link the specified type
+ * INPUTS
+ * loc_id - identifier of file or group
* link_type - link type
* current_name - name of the existing object for hard link,
* anything for the soft link
* current_namelen - current name lenghth
* new_name - new name for the object
* new_namelen - new_name lenghth
- * Returns: 0 on success, -1 on failure
- * Programmer: Mingshi Chen
- * Friday, August 6, 1999
- * Modifications: Elena Pourmal
- *---------------------------------------------------------------------------*/
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Mingshi Chen
+ * Friday, August 6, 1999
+ * SOURCE
+*/
int_f
nh5glink_c(hid_t_f *loc_id, int_f *link_type, _fcd current_name,
int_f *current_namelen, _fcd new_name, int_f *new_namelen)
+/******/
{
char *c_current_name = NULL, *c_new_name = NULL;
int ret_value = -1;
@@ -317,10 +366,13 @@ DONE:
return ret_value ;
}
-/*----------------------------------------------------------------------------
- * Name: h5glink2_c
- * Purpose: Call H5Glink2 to link the specified type
- * Inputs: cur_loc_id - identifier of file or group
+/****if* H5Gf/h5glink2_c
+ * NAME
+ * h5glink2_c
+ * PURPOSE
+ * Call H5Glink2 to link the specified type
+ * INPUTS
+ * cur_loc_id - identifier of file or group
* cur_name - name of the existing object for hard link releative
* to cur_loc_id location,
* anything for the soft link
@@ -330,15 +382,20 @@ DONE:
* new_name - new name for the object releative to the new_loc_id
* location
* new_namelen - new_name lenghth
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, September 25, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5glink2_c(hid_t_f *cur_loc_id, _fcd cur_name, int_f *cur_namelen,
int_f *link_type, hid_t_f *new_loc_id, _fcd new_name, int_f *new_namelen)
+/******/
{
char *c_cur_name = NULL, *c_new_name = NULL;
int ret_value = -1;
@@ -378,19 +435,25 @@ DONE:
return ret_value ;
}
-/*----------------------------------------------------------------------------
- * Name: h5gunlink_c
- * Purpose: Call H5Gunlink to remove the specified name
- * Inputs: loc_id - identifier of file or group
+/****if* H5Gf/h5gunlink_c
+ * NAME
+ * h5gunlink_c
+ * PURPOSE
+ * Call H5Gunlink to remove the specified name
+ * INPUTS
+ * loc_id - identifier of file or group
* name - name of the object to unlink
- * Returns: 0 on success, -1 on failure
- * Programmer: Mingshi Chen
- * Friday, August 6, 1999
- * Modifications: Elena Pourmal
- *---------------------------------------------------------------------------*/
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Mingshi Chen
+ * Friday, August 6, 1999
+ * SOURCE
+*/
int_f
nh5gunlink_c(hid_t_f *loc_id, _fcd name, int_f *namelen)
+/******/
{
char *c_name = NULL;
int ret_value = -1;
@@ -414,22 +477,28 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5gmove_c
- * Purpose: Call H5Gmove to rename an object within an HDF5 file
- * Inputs: loc_id - identifier of file or group
+/****if* H5Gf/h5gmove_c
+ * NAME
+ * h5gmove_c
+ * PURPOSE
+ * Call H5Gmove to rename an object within an HDF5 file
+ * INPUTS
+ * loc_id - identifier of file or group
* src_name - name of the original object
* src_namelen - original name lenghth
* dst_name - new name for the object
* dst_namelen - new name lenghth
- * Returns: 0 on success, -1 on failure
- * Programmer: Mingshi Chen
- * Friday, August 6, 1999
- * Modifications: Elena Pourmal
- *---------------------------------------------------------------------------*/
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Mingshi Chen
+ * Friday, August 6, 1999
+ * SOURCE
+*/
int_f
nh5gmove_c(hid_t_f *loc_id, _fcd src_name, int_f *src_namelen, _fcd dst_name, int_f*dst_namelen)
+/******/
{
char *c_src_name = NULL, *c_dst_name = NULL;
int ret_value = -1;
@@ -458,23 +527,30 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5gmove2_c
- * Purpose: Call H5Gmove2 to rename an object within an HDF5 file
- * Inputs: src_loc_id - identifier of file or group
+/****if* H5Gf/h5gmove2_c
+ * NAME
+ * h5gmove2_c
+ * PURPOSE
+ * Call H5Gmove2 to rename an object within an HDF5 file
+ * INPUTS
+ * src_loc_id - identifier of file or group
* src_name - name of the original object relative to src_loc_id
* src_namelen - original name lenghth
* dst_loc_id - new location identifier
* dst_name - new name for the object relative to dst_loc_id
* dst_namelen - new name lenghth
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
- * Wednesday, September 25, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
+ * Wednesday, September 25, 2002
+ *
+ * SOURCE
+*/
int_f
nh5gmove2_c(hid_t_f *src_loc_id, _fcd src_name, int_f *src_namelen, hid_t_f *dst_loc_id, _fcd dst_name, int_f*dst_namelen)
+/******/
{
char *c_src_name = NULL, *c_dst_name = NULL;
int ret_value = -1;
@@ -503,23 +579,30 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5gget_linkval_c
- * Purpose: Call H5Gget_linkval to return the name of object
- * Inputs: loc_id - identifier of file or group
+/****if* H5Gf/h5gget_linkval_c
+ * NAME
+ * h5gget_linkval_c
+ * PURPOSE
+ * Call H5Gget_linkval to return the name of object
+ * INPUTS
+ * loc_id - identifier of file or group
* name - name of the object that symbolic link points to
* namelen - the name lenghth
* size - lenghth of retrurned value
- * Outputs: value - name to be returned
- * Returns: 0 on success, -1 on failure
- * Programmer: Mingshi Chen
- * Friday, August 6, 1999
- * Modifications: Elena Pourmal
- *---------------------------------------------------------------------------*/
+ * OUTPUTS
+ * value - name to be returned
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Mingshi Chen
+ * Friday, August 6, 1999
+ * SOURCE
+*/
int_f
nh5gget_linkval_c(hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *size,
_fcd value)
+/******/
{
char *c_name = NULL;
char *c_value = NULL;
@@ -560,23 +643,30 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5gset_comment_c
- * Purpose: Call H5Oset_comment_by_name to set comments for the specified object
- * Inputs: loc_id - identifier of file or group
+/****if* H5Gf/h5gset_comment_c
+ * NAME
+ * h5gset_comment_c
+ * PURPOSE
+ * Call H5Oset_comment_by_name to set comments for the specified object
+ * INPUTS
+ * loc_id - identifier of file or group
* name - name of object whose comment is to be set or reset
* namelen - the name lenghth
* comment - the new comment
* commentlen - new comment lenghth
- * Returns: 0 on success, -1 on failure
- * Programmer: Mingshi Chen
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Mingshi Chen
* Friday, August 6, 1999
- * Modifications: Elena Pourmal
- *---------------------------------------------------------------------------*/
-
+ * HISTORY
+ * Elena Pourmal
+ * SOURCE
+*/
int_f
nh5gset_comment_c(hid_t_f *loc_id, _fcd name, int_f *namelen, _fcd comment,
int_f *commentlen)
+/******/
{
char *c_name = NULL, *c_comment = NULL;
int ret_value = -1;
@@ -604,23 +694,28 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5gget_comment_c
- * Purpose: Call H5Oget_comment_by_name to retrieve comments for the specified object
- * Inputs: loc_id - identifier of file or group
+/****if* H5Gf/h5gget_comment_c
+ * NAME
+ * h5gget_comment_c
+ * PURPOSE
+ * Call H5Oget_comment_by_name to retrieve comments for the specified object
+ * INPUTS
+ * loc_id - identifier of file or group
* name - name of object whose comment is to be set or reset
* namelen - the name lenghth
* bufsize - at most bufsize characters
* comment - the new comment
- * Returns: 0 on success, -1 on failure
- * Programmer: Mingshi Chen
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Mingshi Chen
* Friday, August 6, 1999
- * Modifications: Elena Pourmal
- *---------------------------------------------------------------------------*/
-
+ * SOURCE
+*/
int_f
nh5gget_comment_c(hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *bufsize,
_fcd comment)
+/******/
{
char *c_name = NULL, *c_comment = NULL;
size_t c_bufsize;
@@ -661,22 +756,29 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5gcreate_anon_c
- * Purpose: Call H5Gcreate_anon
- * Inputs:
+/****if* H5Gf/h5gcreate_anon_c
+ * NAME
+ * h5gcreate_anon_c
+ * PURPOSE
+ * Call H5Gcreate_anon
+ * INPUTS
+ *
* loc_id - Location identifier
* gcpl_id - Group creation property list identifier
* gapl_id - Group access property list identifier
*
- * Outputs: grp_id - group identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * February 15, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * OUTPUTS
+ * grp_id - group identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * February 15, 2008
+ * SOURCE
+*/
int_f
nh5gcreate_anon_c(hid_t_f *loc_id, hid_t_f *gcpl_id, hid_t_f *gapl_id, hid_t_f *grp_id)
+/******/
{
int_f ret_value=0; /* Return value */
@@ -688,20 +790,27 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5gget_create_plist_c
- * Purpose: Call H5Gget_create_plist
- * Inputs:
+/****if* H5Gf/h5gget_create_plist_c
+ * NAME
+ * h5gget_create_plist_c
+ * PURPOSE
+ * Call H5Gget_create_plist
+ * INPUTS
+ *
* grp_id - group identifier
*
- * Outputs: gcpl_id - Group creation property list identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * February 15, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * OUTPUTS
+ * gcpl_id - Group creation property list identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * February 15, 2008
+ * SOURCE
+*/
int_f
nh5gget_create_plist_c(hid_t_f *grp_id, hid_t_f *gcpl_id )
+/******/
{
int_f ret_value=0; /* Return value */
@@ -713,11 +822,15 @@ done:
}
-/*----------------------------------------------------------------------------
- * Name: h5gget_info_c
- * Purpose: Call H5Gget_info
- * Inputs: group_id - Group identifier
- * Outputs:
+/****if* H5Gf/h5gget_info_c
+ * NAME
+ * h5gget_info_c
+ * PURPOSE
+ * Call H5Gget_info
+ * INPUTS
+ * group_id - Group identifier
+ * OUTPUTS
+ *
* storage_type - Type of storage for links in group:
* H5G_STORAGE_TYPE_COMPACT: Compact storage
* H5G_STORAGE_TYPE_DENSE: Indexed storage
@@ -727,16 +840,21 @@ done:
* max_corder - Current maximum creation order value for group
* mounted - Whether group has a file mounted on it (0 = false, 1 = true)
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* February 15, 2008
- * Modifications:
+ * HISTORY
+ *
* - Added 'mounted' paramater
- * M.S. Breitenfeld
+ * M. Scot Breitenfeld
* July 16, 2008
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5gget_info_c (hid_t_f *group_id, int_f *storage_type, int_f *nlinks, int_f *max_corder, int_f *mounted )
+/******/
{
int_f ret_value = 0; /* Return value */
@@ -761,10 +879,13 @@ done:
}
-/*----------------------------------------------------------------------------
- * Name: h5gget_info_by_idx_c
- * Purpose: Call H5Gget_info_by_idx
- * Inputs:
+/****if* H5Gf/h5gget_info_by_idx_c
+ * NAME
+ * h5gget_info_by_idx_c
+ * PURPOSE
+ * Call H5Gget_info_by_idx
+ * INPUTS
+ *
* loc_id - File or group identifier
* group_name - Name of group containing group for which information is to be retrieved
* group_namelen - name length
@@ -772,7 +893,8 @@ done:
* order - Order of the count in the index
* n - Position in the index of the group for which information is retrieved
* lapl_id - Link access property list
- * Outputs:
+ * OUTPUTS
+ *
* storage_type - Type of storage for links in group:
* H5G_STORAGE_TYPE_COMPACT: Compact storage
* H5G_STORAGE_TYPE_DENSE: Indexed storage
@@ -782,19 +904,23 @@ done:
* max_corder - Current maximum creation order value for group
* mounted - Whether group has a file mounted on it (0 = false, 1 = true)
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* February 18, 2008
- * Modifications:
+ * HISTORY
+ *
* - Added 'mounted' paramater
- * M.S. Breitenfeld
+ * M. Scot Breitenfeld
* July 16, 2008
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5gget_info_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen,
int_f *index_type, int_f *order, hsize_t_f *n, hid_t_f *lapl_id,
int_f *storage_type, int_f *nlinks, int_f *max_corder, int_f *mounted )
-
+/******/
{
char *c_group_name = NULL; /* Buffer to hold group name C string */
int_f ret_value = 0; /* Return value */
@@ -826,15 +952,19 @@ nh5gget_info_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen,
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5gget_info_by_name_c
- * Purpose: Call H5Gget_info_by_name
- * Inputs:
+/****if* H5Gf/h5gget_info_by_name_c
+ * NAME
+ * h5gget_info_by_name_c
+ * PURPOSE
+ * Call H5Gget_info_by_name
+ * INPUTS
+ *
* loc_id - File or group identifier
* group_name - Name of group containing group for which information is to be retrieved
* group_namelen - name length
* lapl_id - Link access property list
- * Outputs:
+ * OUTPUTS
+ *
* storage_type - Type of storage for links in group:
* H5G_STORAGE_TYPE_COMPACT: Compact storage
* H5G_STORAGE_TYPE_DENSE: Indexed storage
@@ -844,18 +974,22 @@ nh5gget_info_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen,
* max_corder - Current maximum creation order value for group
* mounted - Whether group has a file mounted on it (0 = false, 1 = true)
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* February 18, 2008
- * Modifications:
+ * HISTORY
+ *
* - Added 'mounted' paramater
- * M.S. Breitenfeld
+ * M. Scot Breitenfeld
* July 16, 2008
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5gget_info_by_name_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, hid_t_f *lapl_id,
int_f *storage_type, int_f *nlinks, int_f *max_corder, int_f *mounted)
-
+/******/
{
char *c_group_name = NULL; /* Buffer to hold group name C string */
int_f ret_value = 0; /* Return value */
@@ -885,4 +1019,3 @@ nh5gget_info_by_name_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen
HDfree(c_group_name);
return ret_value;
}
-
diff --git a/fortran/src/H5Gff.f90 b/fortran/src/H5Gff.f90
index 2e769ad..6bcee7c 100644
--- a/fortran/src/H5Gff.f90
+++ b/fortran/src/H5Gff.f90
@@ -1,3 +1,15 @@
+!****h* ROBODoc/H5G
+!
+! NAME
+! MODULE H5G
+!
+! FILE
+! fortran/src/H5Gff.f90
+!
+! PURPOSE
+! This file contains Fortran interfaces for H5G functions.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,55 +25,61 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! NOTES
+! *** IMPORTANT ***
+! If you add a new H5G function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
!
-! This file contains Fortran90 interfaces for H5F functions.
-!
+!*****
+
MODULE H5G
USE H5GLOBAL
-! PRIVATE :: h5gcreate1_f
+! PRIVATE :: h5gcreate1_f
! PRIVATE :: h5gcreate2_f
! INTERFACE h5gcreate_f
-! MODULE PROCEDURE h5gcreate1_f
-! MODULE PROCEDURE h5gcreate2_f
+! MODULE PROCEDURE h5gcreate1_f
+! MODULE PROCEDURE h5gcreate2_f
! END INTERFACE
CONTAINS
-!----------------------------------------------------------------------
-! Name: h5gcreate_f
-!
-! Purpose: Creates a new group.
-!
-! Inputs:
-! loc_id - location identifier
-! name - group name at the specified location
-! Outputs:
-! grp_id - group identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! size_hint - a parameter indicating the number of bytes
-! to reserve for the names that will appear
-! in the group
-! lcpl_id - Property list for link creation
-! gcpl_id - Property list for group creation
-! gapl_id - Property list for group access
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 5, 2001
-!
-! Added additional optional paramaters in 1.8
-! MSB - February 27, 2008
-!
-! Comment:
-!----------------------------------------------------------------------
+!****s* H5G/h5gcreate_f
+!
+! NAME
+! h5gcreate_f
+!
+! PURPOSE
+! Creates a new group.
+!
+! INPUTS
+! loc_id - location identifier
+! name - group name at the specified location
+! OUTPUTS
+! grp_id - group identifier
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! size_hint - a parameter indicating the number of bytes to
+! reserve for the names that will appear in the group
+! lcpl_id - Property list for link creation
+! gcpl_id - Property list for group creation
+! gapl_id - Property list for group access
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 5, 2001
+!
+! Added additional optional paramaters in 1.8
+! MSB - February 27, 2008
+!
+! SOURCE
SUBROUTINE h5gcreate_f(loc_id, name, grp_id, hdferr, size_hint, lcpl_id, gcpl_id, gapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
@@ -80,7 +98,7 @@ CONTAINS
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lcpl_id ! Property list for link creation
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: gcpl_id ! Property list for group creation
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: gapl_id ! Property list for group access
-
+!*****
INTEGER(HID_T) :: lcpl_id_default
INTEGER(HID_T) :: gcpl_id_default
INTEGER(HID_T) :: gapl_id_default
@@ -88,8 +106,6 @@ CONTAINS
INTEGER :: namelen ! Length of the name character string
INTEGER(SIZE_T) :: size_hint_default
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5gcreate_c(loc_id, name, namelen, &
size_hint_default, grp_id, lcpl_id_default, gcpl_id_default, gapl_id_default)
@@ -125,33 +141,37 @@ CONTAINS
END SUBROUTINE h5gcreate_f
-!!$!----------------------------------------------------------------------
-!!$! Name: h5gcreate2_f
!!$!
-!!$! Purpose: Creates a new group.
+!!$!****s* H5G/
!!$!
-!!$! Inputs:
+!!$! NAME
+!!$! h5gcreate2_f
+!!$!
+!!$! PURPOSE
+!!$! Creates a new group.
+!!$!
+!!$! INPUTS
!!$! loc_id - location identifier
!!$! name - group name at the specified location
-!!$! Outputs:
+!!$! OUTPUTS
!!$! grp_id - group identifier
!!$! hdferr: - error code
!!$! Success: 0
!!$! Failure: -1
-!!$! Optional parameters:
+!!$! OPTIONAL PARAMETERS
!!$!
!!$! lcpl_id - Property list for link creation
!!$! gcpl_id - Property list for group creation
!!$! gapl_id - Property list for group access
!!$!
-!!$! Programmer: M.S. BREITENFELD
+!!$! AUTHOR M. Scot Breitenfeld
!!$! February 27, 2008
!!$!
-!!$! Modifications:
+!!$! HISTORY
!!$!
-!!$! Comment: Needed to switch the first 2 arguments to avoid conflect
+!!$! NOTES Needed to switch the first 2 arguments to avoid conflect
!!$! with h5gcreate1_f
-!!$!----------------------------------------------------------------------
+!!$!
!!$
!!$ SUBROUTINE h5gcreate2_f(name, loc_id, grp_id, hdferr, &
!!$ lcpl_id, gcpl_id, gapl_id)
@@ -169,14 +189,16 @@ CONTAINS
!!$ INTEGER(HID_T) :: gcpl_id_default
!!$ INTEGER(HID_T) :: gapl_id_default
!!$
-!!$ INTEGER(SIZE_T) :: OBJECT_NAMELEN_DEFAULT ! Dummy argument to pass to c call
+!!$ INTEGER(SIZE_T) :: OBJECT_NAME
+! LEN_DEFAULT ! Dummy argument to pass to c call
!!$ INTEGER :: namelen ! Length of the name character string
!!$
!!$! MS FORTRAN needs explicit interface for C functions called here.
!!$!
!!$ INTERFACE
!!$ INTEGER FUNCTION h5gcreate_c(loc_id, name, namelen, &
-!!$ OBJECT_NAMELEN_DEFAULT, grp_id, lcpl_id_default, gcpl_id_default, gapl_id_default)
+!!$ OBJECT_NAME
+! LEN_DEFAULT, grp_id, lcpl_id_default, gcpl_id_default, gapl_id_default)
!!$ USE H5GLOBAL
!!$ !DEC$IF DEFINED(HDF5F90_WINDOWS)
!!$ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GCREATE_C'::h5gcreate_c
@@ -185,7 +207,8 @@ CONTAINS
!!$ INTEGER(HID_T), INTENT(IN) :: loc_id
!!$ CHARACTER(LEN=*), INTENT(IN) :: name
!!$ INTEGER :: namelen
-!!$ INTEGER(SIZE_T) :: OBJECT_NAMELEN_DEFAULT
+!!$ INTEGER(SIZE_T) :: OBJECT_NAME
+! LEN_DEFAULT
!!$ INTEGER(HID_T) :: lcpl_id_default
!!$ INTEGER(HID_T) :: gcpl_id_default
!!$ INTEGER(HID_T) :: gapl_id_default
@@ -194,7 +217,9 @@ CONTAINS
!!$ END INTERFACE
!!$
!!$ namelen = LEN(name)
-!!$ OBJECT_NAMELEN_DEFAULT = OBJECT_NAMELEN_DEFAULT_F
+!!$ OBJECT_NAME
+! LEN_DEFAULT = OBJECT_NAME
+! LEN_DEFAULT_F
!!$
!!$ lcpl_id_default = H5P_DEFAULT_F
!!$ IF(PRESENT(lcpl_id)) lcpl_id_default = lcpl_id
@@ -204,40 +229,43 @@ CONTAINS
!!$ IF(PRESENT(gapl_id)) gapl_id_default = gapl_id
!!$
!!$
-!!$ hdferr = h5gcreate_c(loc_id, name, namelen, OBJECT_NAMELEN_DEFAULT, grp_id, &
+!!$ hdferr = h5gcreate_c(loc_id, name, namelen, OBJECT_NAME
+! LEN_DEFAULT, grp_id, &
!!$ lcpl_id_default, gcpl_id_default, gapl_id_default)
!!$
!!$ END SUBROUTINE h5gcreate2_f
-
-!----------------------------------------------------------------------
-! Name: h5gopen_f
!
-! Purpose: Opens an existing group.
+!****s* H5G/h5gopen_f
+!
+! NAME
+! h5gopen_f
!
-! Inputs:
-! loc_id - location identifier
-! name - name of the group to open
-! Outputs:
-! grp_id - group identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! gapl_id - Group access property list identifier
+! PURPOSE
+! Opens an existing group.
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! INPUTS
+! loc_id - location identifier
+! name - name of the group to open
+! OUTPUTS
+! grp_id - group identifier
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! gapl_id - Group access property list identifier
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 5, 2001
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Added 1.8 (optional) parameter gapl_id
-! February, 2008 M.S. Breitenfeld
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 5, 2001
!
-! Comment:
-!----------------------------------------------------------------------
+! Added 1.8 (optional) parameter gapl_id
+! February, 2008 M. Scot Breitenfeld
+!
+! SOURCE
SUBROUTINE h5gopen_f(loc_id, name, grp_id, hdferr, gapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
@@ -245,13 +273,10 @@ CONTAINS
INTEGER(HID_T), INTENT(OUT) :: grp_id ! File identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: gapl_id ! Group access property list identifier
-
+!*****
INTEGER(HID_T) :: gapl_id_default
INTEGER :: namelen ! Length of the name character string
-! INTEGER, EXTERNAL :: h5gopen_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5gopen_c(loc_id, name, namelen, gapl_id_default, grp_id)
USE H5GLOBAL
@@ -274,163 +299,150 @@ CONTAINS
hdferr = h5gopen_c(loc_id, name, namelen, gapl_id_default, grp_id)
END SUBROUTINE h5gopen_f
-
-!----------------------------------------------------------------------
-! Name: h5gclose_f
!
-! Purpose: Closes the specified group.
+!****s* H5G/h5gclose_f
!
-! Inputs:
-! grp_id - group identifier
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5gclose_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Closes the specified group.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 5, 2001
+! INPUTS
+! grp_id - group identifier
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Comment:
-!----------------------------------------------------------------------
- SUBROUTINE h5gclose_f(grp_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: grp_id ! Group identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5gclose_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 5, 2001
!
- INTERFACE
- INTEGER FUNCTION h5gclose_c(grp_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GCLOSE_C'::h5gclose_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: grp_id
- END FUNCTION h5gclose_c
- END INTERFACE
-
- hdferr = h5gclose_c(grp_id)
-
- END SUBROUTINE h5gclose_f
+! SOURCE
+ SUBROUTINE h5gclose_f(grp_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: grp_id ! Group identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5gclose_c(grp_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GCLOSE_C'::h5gclose_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: grp_id
+ END FUNCTION h5gclose_c
+ END INTERFACE
+ hdferr = h5gclose_c(grp_id)
-!----------------------------------------------------------------------
-! Name: h5gget_obj_info_idx_f
+ END SUBROUTINE h5gclose_f
!
-! Purpose: Returns name and type of the group member identified by
-! its index.
+!****s* H5G/h5gget_obj_info_idx_f
!
-! Inputs:
-! loc_id - location identifier
-! name - name of the group at the specified location
-! idx - object index (zero-based)
-! Outputs:
-! obj_name - object name
-! obj_type - object type
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5gget_obj_info_idx_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Returns name and type of the group member identified by
+! its index.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 5, 2001
+! INPUTS
+! loc_id - location identifier
+! name - name of the group at the specified location
+! idx - object index (zero-based)
+! OUTPUTS
+! obj_name - object name
+! obj_type - object type
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Comment:
-!----------------------------------------------------------------------
- SUBROUTINE h5gget_obj_info_idx_f(loc_id, name, idx, &
- obj_name, obj_type, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the group
- INTEGER, INTENT(IN) :: idx ! Index of member object
- CHARACTER(LEN=*), INTENT(OUT) :: obj_name ! Name of the object
- INTEGER, INTENT(OUT) :: obj_type ! Object type
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTEGER :: namelen ! Length of the name character string
- INTEGER :: obj_namelen ! Length of the obj_name character string
-
-! INTEGER, EXTERNAL :: h5gget_obj_info_idx_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 5, 2001
!
- INTERFACE
- INTEGER FUNCTION h5gget_obj_info_idx_c(loc_id, name, &
- namelen, idx, &
- obj_name, obj_namelen, obj_type)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GGET_OBJ_INFO_IDX_C'::h5gget_obj_info_idx_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- !DEC$ATTRIBUTES reference :: obj_name
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER :: namelen
- INTEGER, INTENT(IN) :: idx
- CHARACTER(LEN=*), INTENT(OUT) :: obj_name
- INTEGER :: obj_namelen
- INTEGER, INTENT(OUT) :: obj_type
- END FUNCTION h5gget_obj_info_idx_c
- END INTERFACE
+! SOURCE
+ SUBROUTINE h5gget_obj_info_idx_f(loc_id, name, idx, &
+ obj_name, obj_type, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the group
+ INTEGER, INTENT(IN) :: idx ! Index of member object
+ CHARACTER(LEN=*), INTENT(OUT) :: obj_name ! Name of the object
+ INTEGER, INTENT(OUT) :: obj_type ! Object type
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: namelen ! Length of the name character string
+ INTEGER :: obj_namelen ! Length of the obj_name character string
- namelen = LEN(name)
- obj_namelen = LEN(obj_name)
- hdferr = h5gget_obj_info_idx_c(loc_id, name, namelen, idx, &
- obj_name, obj_namelen, obj_type)
+ INTERFACE
+ INTEGER FUNCTION h5gget_obj_info_idx_c(loc_id, name, &
+ namelen, idx, &
+ obj_name, obj_namelen, obj_type)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GGET_OBJ_INFO_IDX_C'::h5gget_obj_info_idx_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ !DEC$ATTRIBUTES reference :: obj_name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER, INTENT(IN) :: idx
+ CHARACTER(LEN=*), INTENT(OUT) :: obj_name
+ INTEGER :: obj_namelen
+ INTEGER, INTENT(OUT) :: obj_type
+ END FUNCTION h5gget_obj_info_idx_c
+ END INTERFACE
- END SUBROUTINE h5gget_obj_info_idx_f
+ namelen = LEN(name)
+ obj_namelen = LEN(obj_name)
+ hdferr = h5gget_obj_info_idx_c(loc_id, name, namelen, idx, &
+ obj_name, obj_namelen, obj_type)
+ END SUBROUTINE h5gget_obj_info_idx_f
-!----------------------------------------------------------------------
-! Name: h5gn_members_f
!
-! Purpose: Returns the number of group members.
+!****s* H5G/h5gn_members_f
!
-! Inputs:
-! loc_id - location identifier
-! name - name of the group at the specified location
-! Outputs:
-! nmembers - number of group members
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5gn_members_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Returns the number of group members.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 5, 2001
+! INPUTS
+! loc_id - location identifier
+! name - name of the group at the specified location
+! OUTPUTS
+! nmembers - number of group members
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5gn_members_f(loc_id, name, nmembers, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 5, 2001
+!
+! SOURCE
+ SUBROUTINE h5gn_members_f(loc_id, name, nmembers, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the group
INTEGER, INTENT(OUT) :: nmembers ! Number of members in the
! group
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
+!*****
INTEGER :: namelen ! Length of the name character string
-! INTEGER, EXTERNAL :: h5gn_members_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5gn_members_c(loc_id, name, namelen, nmembers)
USE H5GLOBAL
@@ -449,548 +461,516 @@ CONTAINS
hdferr = h5gn_members_c(loc_id, name, namelen, nmembers)
END SUBROUTINE h5gn_members_f
-
-!----------------------------------------------------------------------
-! Name: h5glink_f
-!
-! Purpose: Creates a link of the specified type from new_name
-! to current_name.
-!
-! Inputs:
-! loc_id - location identifier
-! link_type - link type
-! Possible values are:
-! H5G_LINK_HARD_F (0) or
-! H5G_LINK_SOFT_F (1)
-! current_name - name of the existing object if link is a
-! hard link. Can be anything for the soft link.
-! new_name - new name for the object
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 5, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5glink_f(loc_id, link_type, current_name, &
- new_name, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
- INTEGER, INTENT(IN) :: link_type ! link type
+!
+!****s* H5G/h5glink_f
+!
+! NAME
+! h5glink_f
+!
+! PURPOSE
+! Creates a link of the specified type from new_name
+! to current_name.
+!
+! INPUTS
+! loc_id - location identifier
+! link_type - link type; possible values are:
+! H5G_LINK_HARD_F (0)
+! H5G_LINK_SOFT_F (1)
+! current_name - name of the existing object if link is a
+! hard link. Can be anything for the soft link
+! new_name - new name for the object
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 5, 2001
+!
+! SOURCE
+ SUBROUTINE h5glink_f(loc_id, link_type, current_name, &
+ new_name, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
+ INTEGER, INTENT(IN) :: link_type ! link type
! Possible values are:
! H5G_LINK_HARD_F (0) or
! H5G_LINK_SOFT_F (1)
- CHARACTER(LEN=*), INTENT(IN) :: current_name
+ CHARACTER(LEN=*), INTENT(IN) :: current_name
! Current name of an object
- CHARACTER(LEN=*), INTENT(IN) :: new_name ! New name of an object
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTEGER :: current_namelen ! Lenghth of the current_name string
- INTEGER :: new_namelen ! Lenghth of the new_name string
-
-! INTEGER, EXTERNAL :: h5glink_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5glink_c(loc_id, link_type, current_name, &
- current_namelen, new_name, new_namelen)
+ CHARACTER(LEN=*), INTENT(IN) :: new_name ! New name of an object
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GLINK_C'::h5glink_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: current_name
- !DEC$ATTRIBUTES reference :: new_name
- INTEGER(HID_T), INTENT(IN) :: loc_id
- INTEGER, INTENT(IN) :: link_type
- CHARACTER(LEN=*), INTENT(IN) :: current_name
- INTEGER :: current_namelen
- CHARACTER(LEN=*), INTENT(IN) :: new_name
- INTEGER :: new_namelen
- END FUNCTION h5glink_c
- END INTERFACE
+ INTEGER :: current_namelen ! Lenghth of the current_name string
+ INTEGER :: new_namelen ! Lenghth of the new_name string
- current_namelen = LEN(current_name)
- new_namelen = LEN(new_name)
- hdferr = h5glink_c(loc_id, link_type, current_name, &
- current_namelen, new_name, new_namelen)
- END SUBROUTINE h5glink_f
-
-!----------------------------------------------------------------------
-! Name: h5glink2_f
-!
-! Purpose: Creates a link of the specified type from new_name
-! to current_name. current_name and new_name are interpreted
-! releative to current and new location identifiers.
-!
-! Inputs:
-! cur_loc_id - location identifier
-! cur_name - name of the existing object if link is a
-! hard link. Can be anything for the soft link.
-! link_type - link type
-! Possible values are:
-! H5G_LINK_HARD_F (0) or
-! H5G_LINK_SOFT_F (1)
-! new_loc_id - new location identifier
-! new_name - new name for the object
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! September 25, 2002
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5glink2_f(cur_loc_id, cur_name, link_type, new_loc_id, &
- new_name, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: cur_loc_id ! File or group identifier
- CHARACTER(LEN=*), INTENT(IN) :: cur_name
- ! Current name of an object
- INTEGER, INTENT(IN) :: link_type ! link type
- ! Possible values are:
- ! H5G_LINK_HARD_F (0) or
- ! H5G_LINK_SOFT_F (1)
+ INTERFACE
+ INTEGER FUNCTION h5glink_c(loc_id, link_type, current_name, &
+ current_namelen, new_name, new_namelen)
- INTEGER(HID_T), INTENT(IN) :: new_loc_id ! File or group identifier
- CHARACTER(LEN=*), INTENT(IN) :: new_name ! New name of an object
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GLINK_C'::h5glink_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: current_name
+ !DEC$ATTRIBUTES reference :: new_name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ INTEGER, INTENT(IN) :: link_type
+ CHARACTER(LEN=*), INTENT(IN) :: current_name
+ INTEGER :: current_namelen
+ CHARACTER(LEN=*), INTENT(IN) :: new_name
+ INTEGER :: new_namelen
+ END FUNCTION h5glink_c
+ END INTERFACE
- INTEGER :: cur_namelen ! Lenghth of the current_name string
- INTEGER :: new_namelen ! Lenghth of the new_name string
+ current_namelen = LEN(current_name)
+ new_namelen = LEN(new_name)
+ hdferr = h5glink_c(loc_id, link_type, current_name, &
+ current_namelen, new_name, new_namelen)
+ END SUBROUTINE h5glink_f
+
+!
+!****s* H5G/h5glink2_f
+!
+! NAME
+! h5glink2_f
+!
+! PURPOSE
+! Creates a link of the specified type from new_name
+! to current_name. current_name and new_name are interpreted
+! releative to current and new location identifiers.
+!
+! INPUTS
+! cur_loc_id - location identifier
+! cur_name - name of the existing object if link is a
+! hard link. Can be anything for the soft link.
+! link_type - link type; possible values are:
+! H5G_LINK_HARD_F (0)
+! H5G_LINK_SOFT_F (1)
+! new_loc_id - new location identifier
+! new_name - new name for the object
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! September 25, 2002
+!
+! SOURCE
+ SUBROUTINE h5glink2_f(cur_loc_id, cur_name, link_type, new_loc_id, &
+ new_name, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: cur_loc_id ! File or group identifier
+ CHARACTER(LEN=*), INTENT(IN) :: cur_name
+ ! Current name of an object
+ INTEGER, INTENT(IN) :: link_type ! link type
+ ! Possible values are:
+ ! H5G_LINK_HARD_F (0) or
+ ! H5G_LINK_SOFT_F (1)
+
+ INTEGER(HID_T), INTENT(IN) :: new_loc_id ! File or group identifier
+ CHARACTER(LEN=*), INTENT(IN) :: new_name ! New name of an object
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+
+ INTEGER :: cur_namelen ! Lenghth of the current_name string
+ INTEGER :: new_namelen ! Lenghth of the new_name string
- INTERFACE
- INTEGER FUNCTION h5glink2_c(cur_loc_id, cur_name, cur_namelen, &
- link_type, new_loc_id, &
- new_name, new_namelen)
+ INTERFACE
+ INTEGER FUNCTION h5glink2_c(cur_loc_id, cur_name, cur_namelen, &
+ link_type, new_loc_id, &
+ new_name, new_namelen)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GLINK2_C'::h5glink2_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: cur_name
- !DEC$ATTRIBUTES reference :: new_name
- INTEGER(HID_T), INTENT(IN) :: cur_loc_id
- INTEGER(HID_T), INTENT(IN) :: new_loc_id
- INTEGER, INTENT(IN) :: link_type
- CHARACTER(LEN=*), INTENT(IN) :: cur_name
- CHARACTER(LEN=*), INTENT(IN) :: new_name
- INTEGER :: cur_namelen
- INTEGER :: new_namelen
- END FUNCTION h5glink2_c
- END INTERFACE
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GLINK2_C'::h5glink2_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: cur_name
+ !DEC$ATTRIBUTES reference :: new_name
+ INTEGER(HID_T), INTENT(IN) :: cur_loc_id
+ INTEGER(HID_T), INTENT(IN) :: new_loc_id
+ INTEGER, INTENT(IN) :: link_type
+ CHARACTER(LEN=*), INTENT(IN) :: cur_name
+ CHARACTER(LEN=*), INTENT(IN) :: new_name
+ INTEGER :: cur_namelen
+ INTEGER :: new_namelen
+ END FUNCTION h5glink2_c
+ END INTERFACE
- cur_namelen = LEN(cur_name)
- new_namelen = LEN(new_name)
- hdferr = h5glink2_c(cur_loc_id, cur_name, cur_namelen, link_type, &
- new_loc_id, new_name, new_namelen)
- END SUBROUTINE h5glink2_f
+ cur_namelen = LEN(cur_name)
+ new_namelen = LEN(new_name)
+ hdferr = h5glink2_c(cur_loc_id, cur_name, cur_namelen, link_type, &
+ new_loc_id, new_name, new_namelen)
+ END SUBROUTINE h5glink2_f
-!----------------------------------------------------------------------
-! Name: h5gunlink_f
!
-! Purpose: Removes the specified name from the group graph and
-! decrements the link count for the object to which name
-! points
+!****s* H5G/h5gunlink_f
+!
+! NAME
+! h5gunlink_f
+!
+! PURPOSE
+! Removes the specified name from the group graph and
+! decrements the link count for the object to which name
+! points
!
-! Inputs:
-! loc_id - location identifier
-! name - name of the object to unlink
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! INPUTS
+! loc_id - location identifier
+! name - name of the object to unlink
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 5, 2001
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 5, 2001
!
-! Comment:
-!----------------------------------------------------------------------
+! SOURCE
+ SUBROUTINE h5gunlink_f(loc_id, name, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of an object
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: namelen ! Lenghth of the name character string
- SUBROUTINE h5gunlink_f(loc_id, name, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of an object
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTERFACE
+ INTEGER FUNCTION h5gunlink_c(loc_id, name, namelen)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GUNLINK_C'::h5gunlink_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ END FUNCTION h5gunlink_c
+ END INTERFACE
- INTEGER :: namelen ! Lenghth of the name character string
+ namelen = LEN(name)
+ hdferr = h5gunlink_c(loc_id, name, namelen)
+ END SUBROUTINE h5gunlink_f
-! INTEGER, EXTERNAL :: h5gunlink_c
-! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5gunlink_c(loc_id, name, namelen)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GUNLINK_C'::h5gunlink_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER :: namelen
- END FUNCTION h5gunlink_c
- END INTERFACE
-
- namelen = LEN(name)
- hdferr = h5gunlink_c(loc_id, name, namelen)
- END SUBROUTINE h5gunlink_f
-
-!----------------------------------------------------------------------
-! Name: h5gmove_f
+!****s* H5G/h5gmove_f
!
-! Purpose: Renames an object within an HDF5 file.
+! NAME
+! h5gmove_f
!
-! Inputs:
-! loc_id - location identifier
-! name - object's name at specified location
-! new_name - object's new name
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! PURPOSE
+! Renames an object within an HDF5 file.
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! INPUTS
+! loc_id - location identifier
+! name - object's name at specified location
+! new_name - object's new name
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 5, 2001
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5gmove_f(loc_id, name, new_name, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Current name of an object
- CHARACTER(LEN=*), INTENT(IN) :: new_name ! New name of an object
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTEGER :: namelen ! Lenghth of the current_name string
- INTEGER :: new_namelen ! Lenghth of the new_name string
-
-! INTEGER, EXTERNAL :: h5gmove_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 5, 2001
!
- INTERFACE
- INTEGER FUNCTION h5gmove_c(loc_id, name, namelen, new_name, new_namelen)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GMOVE_C'::h5gmove_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- !DEC$ATTRIBUTES reference :: new_name
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER :: namelen
- CHARACTER(LEN=*), INTENT(IN) :: new_name
- INTEGER :: new_namelen
- END FUNCTION h5gmove_c
- END INTERFACE
-
- namelen = LEN(name)
- new_namelen = LEN(new_name)
- hdferr = h5gmove_c(loc_id, name, namelen, new_name, new_namelen)
- END SUBROUTINE h5gmove_f
+! SOURCE
+ SUBROUTINE h5gmove_f(loc_id, name, new_name, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Current name of an object
+ CHARACTER(LEN=*), INTENT(IN) :: new_name ! New name of an object
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: namelen ! Lenghth of the current_name string
+ INTEGER :: new_namelen ! Lenghth of the new_name string
+
+ INTERFACE
+ INTEGER FUNCTION h5gmove_c(loc_id, name, namelen, new_name, new_namelen)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GMOVE_C'::h5gmove_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ !DEC$ATTRIBUTES reference :: new_name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ CHARACTER(LEN=*), INTENT(IN) :: new_name
+ INTEGER :: new_namelen
+ END FUNCTION h5gmove_c
+ END INTERFACE
+
+ namelen = LEN(name)
+ new_namelen = LEN(new_name)
+ hdferr = h5gmove_c(loc_id, name, namelen, new_name, new_namelen)
+ END SUBROUTINE h5gmove_f
+!
+!****s* H5G/h5gmove2_f
+!
+! NAME
+! h5gmove2_f
+!
+! PURPOSE
+! Renames an object within an HDF5 file.
+!
+! INPUTS
+! src_loc_id - original location identifier
+! src_name - object's name at specified original location
+! dst_loc_id - original location identifier
+! dst_name - object's new name
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! September 25, 2002
+!
+! SOURCE
+ SUBROUTINE h5gmove2_f(src_loc_id, src_name, dst_loc_id, dst_name, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: src_loc_id ! File or group identifier
+ CHARACTER(LEN=*), INTENT(IN) :: src_name ! Original name of an object
+ INTEGER(HID_T), INTENT(IN) :: dst_loc_id ! File or group identifier
+ CHARACTER(LEN=*), INTENT(IN) :: dst_name ! New name of an object
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: src_namelen ! Length of the current_name string
+ INTEGER :: dst_namelen ! Lenghth of the new_name string
+
+ INTERFACE
+ INTEGER FUNCTION h5gmove2_c(src_loc_id, src_name, src_namelen, &
+ dst_loc_id, dst_name, dst_namelen)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GMOVE2_C'::h5gmove2_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: src_name
+ !DEC$ATTRIBUTES reference :: dst_name
+ INTEGER(HID_T), INTENT(IN) :: src_loc_id
+ INTEGER(HID_T), INTENT(IN) :: dst_loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: src_name
+ CHARACTER(LEN=*), INTENT(IN) :: dst_name
+ INTEGER :: src_namelen
+ INTEGER :: dst_namelen
+ END FUNCTION h5gmove2_c
+ END INTERFACE
+
+ src_namelen = LEN(src_name)
+ dst_namelen = LEN(dst_name)
+ hdferr = h5gmove2_c(src_loc_id, src_name, src_namelen, dst_loc_id, dst_name, dst_namelen)
+ END SUBROUTINE h5gmove2_f
+!
+!****s* H5G/h5gget_linkval_f
+!
+! NAME
+! h5gget_linkval_f
+!
+! PURPOSE
+! Returns the name of the object that the symbolic link
+! points to.
+!
+! INPUTS
+! loc_id - location identifier
+! name - symbolic link to the object whose name
+! is to be returned.
+! size - maximum number of characters to be returned
+! OUTPUTS
+! buffer - a buffer to hold the name of the object
+! being sought
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 5, 2001
+!
+! SOURCE
+ SUBROUTINE h5gget_linkval_f(loc_id, name, size, buffer, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Current name of an object
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Maximum number of buffer
+ CHARACTER(LEN=size), INTENT(OUT) :: buffer
+ ! Buffer to hold a name of
+ ! the object symbolic link
+ ! points to
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: namelen ! Lenghth of the current_name string
+
+ INTERFACE
+ INTEGER FUNCTION h5gget_linkval_c(loc_id, name, namelen, size, buffer)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GGET_LINKVAL_C'::h5gget_linkval_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ !DEC$ATTRIBUTES reference :: buffer
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ CHARACTER(LEN=*), INTENT(OUT) :: buffer
+ END FUNCTION h5gget_linkval_c
+ END INTERFACE
+
+ namelen = LEN(name)
+ hdferr = h5gget_linkval_c(loc_id, name, namelen, size, buffer)
+ END SUBROUTINE h5gget_linkval_f
-!----------------------------------------------------------------------
-! Name: h5gmove2_f
!
-! Purpose: Renames an object within an HDF5 file.
+!****s* H5G/h5gset_comment_f
!
-! Inputs:
-! src_loc_id - original location identifier
-! src_name - object's name at specified original location
-! dst_loc_id - original location identifier
-! dst_name - object's new name
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5gset_comment_f
!
-! Programmer: Elena Pourmal
-! September 25, 2002
+! PURPOSE
+! Sets comment for specified object.
!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5gmove2_f(src_loc_id, src_name, dst_loc_id, dst_name, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: src_loc_id ! File or group identifier
- CHARACTER(LEN=*), INTENT(IN) :: src_name ! Original name of an object
- INTEGER(HID_T), INTENT(IN) :: dst_loc_id ! File or group identifier
- CHARACTER(LEN=*), INTENT(IN) :: dst_name ! New name of an object
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTEGER :: src_namelen ! Length of the current_name string
- INTEGER :: dst_namelen ! Lenghth of the new_name string
-
-! INTEGER, EXTERNAL :: h5gmove2_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! INPUTS
+! loc_id - location identifier
+! name - name of the object
+! comment - comment to set for the object
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
!
- INTERFACE
- INTEGER FUNCTION h5gmove2_c(src_loc_id, src_name, src_namelen, &
- dst_loc_id, dst_name, dst_namelen)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GMOVE2_C'::h5gmove2_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: src_name
- !DEC$ATTRIBUTES reference :: dst_name
- INTEGER(HID_T), INTENT(IN) :: src_loc_id
- INTEGER(HID_T), INTENT(IN) :: dst_loc_id
- CHARACTER(LEN=*), INTENT(IN) :: src_name
- CHARACTER(LEN=*), INTENT(IN) :: dst_name
- INTEGER :: src_namelen
- INTEGER :: dst_namelen
- END FUNCTION h5gmove2_c
- END INTERFACE
-
- src_namelen = LEN(src_name)
- dst_namelen = LEN(dst_name)
- hdferr = h5gmove2_c(src_loc_id, src_name, src_namelen,&
- dst_loc_id, dst_name, dst_namelen)
- END SUBROUTINE h5gmove2_f
-
-!----------------------------------------------------------------------
-! Name: h5gget_linkval_f
-!
-! Purpose: Returns the name of the object that the symbolic link
-! points to.
-!
-! Inputs:
-! loc_id - location identifier
-! name - symbolic link to the object whose name
-! is to be returned.
-! size - maximum number of characters to be returned
-! Outputs:
-! buffer - a buffer to hold the name of the object
-! being sought
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 5, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5gget_linkval_f(loc_id, name, size, buffer, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Current name of an object
- INTEGER(SIZE_T), INTENT(IN) :: size ! Maximum number of buffer
- CHARACTER(LEN=size), INTENT(OUT) :: buffer
- ! Buffer to hold a name of
- ! the object symbolic link
- ! points to
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTEGER :: namelen ! Lenghth of the current_name string
-
-! INTEGER, EXTERNAL :: h5gget_linkval_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
- INTERFACE
- INTEGER FUNCTION h5gget_linkval_c(loc_id, name, namelen, size, buffer)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GGET_LINKVAL_C'::h5gget_linkval_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- !DEC$ATTRIBUTES reference :: buffer
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER :: namelen
- INTEGER(SIZE_T), INTENT(IN) :: size
- CHARACTER(LEN=*), INTENT(OUT) :: buffer
- END FUNCTION h5gget_linkval_c
- END INTERFACE
-
- namelen = LEN(name)
- hdferr = h5gget_linkval_c(loc_id, name, namelen, size, buffer)
- END SUBROUTINE h5gget_linkval_f
-
-!----------------------------------------------------------------------
-! Name: h5gset_comment_f
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 5, 2001
!
-! Purpose: Sets comment for specified object.
+! SOURCE
+ SUBROUTINE h5gset_comment_f(loc_id, name, comment, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Current name of an object
+ CHARACTER(LEN=*), INTENT(IN) :: comment ! New name of an object
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: namelen ! Lenghth of the current_name string
+ INTEGER :: commentlen ! Lenghth of the comment string
+
+ INTERFACE
+ INTEGER FUNCTION h5gset_comment_c(loc_id, name, namelen, &
+ comment, commentlen)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GSET_COMMENT_C'::h5gset_comment_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ !DEC$ATTRIBUTES reference :: comment
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ CHARACTER(LEN=*), INTENT(IN) :: comment
+ INTEGER :: commentlen
+ END FUNCTION h5gset_comment_c
+ END INTERFACE
+
+ namelen = LEN(name)
+ commentlen = LEN(comment)
+ hdferr = h5gset_comment_c(loc_id, name, namelen, comment, commentlen)
+ END SUBROUTINE h5gset_comment_f
!
-! Inputs:
-! loc_id - location identifier
-! name - name of the object
-! comment - comment to set for the object
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+!****s* H5G/h5gget_comment_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! NAME
+! h5gget_comment_f
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 5, 2001
+! PURPOSE
+! Retrieves comment for specified object.
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5gset_comment_f(loc_id, name, comment, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Current name of an object
- CHARACTER(LEN=*), INTENT(IN) :: comment ! New name of an object
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTEGER :: namelen ! Lenghth of the current_name string
- INTEGER :: commentlen ! Lenghth of the comment string
-
-! INTEGER, EXTERNAL :: h5gset_comment_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! INPUTS
+! loc_id - location identifier
+! name - name of the object at specified location
+! size - size of the buffer required to hold comment
+! OUTPUTS
+! buffer - buffer to hold object's comment
+! hdferr - Returns 0 if successful and -1 if fails
!
- INTERFACE
- INTEGER FUNCTION h5gset_comment_c(loc_id, name, namelen, &
- comment, commentlen)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GSET_COMMENT_C'::h5gset_comment_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- !DEC$ATTRIBUTES reference :: comment
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER :: namelen
- CHARACTER(LEN=*), INTENT(IN) :: comment
- INTEGER :: commentlen
- END FUNCTION h5gset_comment_c
- END INTERFACE
-
- namelen = LEN(name)
- commentlen = LEN(comment)
- hdferr = h5gset_comment_c(loc_id, name, namelen, comment, commentlen)
- END SUBROUTINE h5gset_comment_f
-
-!----------------------------------------------------------------------
-! Name: h5gget_comment_f
-!
-! Purpose: Retrieves comment for specified object.
-!
-! Inputs:
-! loc_id - location identifier
-! name - name of the object at specified location
-! size - size of the buffer required to hold comment
-! Outputs:
-! buffer - buffer to hold object's comment
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 5, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5gget_comment_f(loc_id, name, size, buffer, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Current name of an object
- INTEGER(SIZE_T), INTENT(IN) :: size ! Maximum number of buffer
- CHARACTER(LEN=size), INTENT(OUT) :: buffer
- ! Buffer to hold a comment
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 5, 2001
+!
+! SOURCE
+ SUBROUTINE h5gget_comment_f(loc_id, name, size, buffer, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Current name of an object
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Maximum number of buffer
+ CHARACTER(LEN=size), INTENT(OUT) :: buffer
+ ! Buffer to hold a comment
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: namelen ! Lenghth of the current_name string
- INTEGER :: namelen ! Lenghth of the current_name string
+ INTERFACE
+ INTEGER FUNCTION h5gget_comment_c(loc_id, name, namelen, size, buffer)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GGET_COMMENT_C'::h5gget_comment_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name, buffer
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ CHARACTER(LEN=*), INTENT(OUT) :: buffer
+ END FUNCTION h5gget_comment_c
+ END INTERFACE
-! INTEGER, EXTERNAL :: h5gget_comment_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5gget_comment_c(loc_id, name, namelen, &
- size, buffer)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GGET_COMMENT_C'::h5gget_comment_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name, buffer
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER :: namelen
- INTEGER(SIZE_T), INTENT(IN) :: size
- CHARACTER(LEN=*), INTENT(OUT) :: buffer
- END FUNCTION h5gget_comment_c
- END INTERFACE
+ namelen = LEN(name)
+ hdferr = h5gget_comment_c(loc_id, name, namelen, size, buffer)
- namelen = LEN(name)
- hdferr = h5gget_comment_c(loc_id, name, namelen, size, buffer)
END SUBROUTINE h5gget_comment_f
-
-!----------------------------------------------------------------------
-! Name: H5Gcreate_anon_f
!
-! Purpose: Creates a new empty group without linking it into the file structure.
+!****s* H5G/H5Gcreate_anon_f
!
-! Inputs:
-! loc_id - Location identifier
-! Outputs:
-! grp_id - group identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! gcpl_id - Group creation property list identifier
-! gapl_id - Group access property list identifier
+! NAME
+! H5Gcreate_anon_f
!
-! Programmer: M.S. Breitenfeld
-! February 15, 2008
+! PURPOSE
+! Creates a new empty group without linking it into the file structure.
!
-! Modifications:
+! INPUTS
+! loc_id - Location identifier
+! OUTPUTS
+! grp_id - group identifier
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! gcpl_id - Group creation property list identifier
+! gapl_id - Group access property list identifier
!
-! Comment:
-!----------------------------------------------------------------------
+! AUTHOR
+! M. Scot Breitenfeld
+! February 15, 2008
+!
+! SOURCE
SUBROUTINE h5Gcreate_anon_f(loc_id, grp_id, hdferr, gcpl_id, gapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
@@ -998,7 +978,7 @@ CONTAINS
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: gcpl_id ! Property list for group creation
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: gapl_id ! Property list for group access
-
+!*****
INTEGER(HID_T) :: gcpl_id_default
INTEGER(HID_T) :: gapl_id_default
@@ -1024,36 +1004,31 @@ CONTAINS
hdferr = h5gcreate_anon_c(loc_id, gcpl_id_default, gapl_id_default, grp_id)
END SUBROUTINE h5Gcreate_anon_f
-
-!----------------------------------------------------------------------
-! Name: H5Gget_create_plist_f
!
-! Purpose: Gets a group creation property list identifier.
+!****s* H5G/H5Gget_create_plist_f
!
-! Inputs:
-! grp_id - group identifier
-! Outputs:
-! gcpl_id - Group creation property list identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
+! NAME
+! H5Gget_create_plist_f
!
-! Programmer: M.S. Breitenfeld
-! February 15, 2008
+! PURPOSE
+! Gets a group creation property list identifier.
!
-! Modifications:
+! INPUTS
+! grp_id - group identifier
+! OUTPUTS
+! gcpl_id - Group creation property list identifier
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! M. Scot Breitenfeld
+! February 15, 2008
!
-! Comment:
-!----------------------------------------------------------------------
+! SOURCE
SUBROUTINE h5gget_create_plist_f(grp_id, gcpl_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: grp_id ! Group identifier
INTEGER(HID_T), INTENT(OUT) :: gcpl_id ! Property list for group creation
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5gget_create_plist_c(grp_id, gcpl_id )
USE H5GLOBAL
@@ -1069,56 +1044,59 @@ CONTAINS
END SUBROUTINE h5gget_create_plist_f
-!----------------------------------------------------------------------
-! Name: h5gget_info_f
!
-! Purpose: Retrieves information about a group
+!****s* H5G/h5gget_info_f
!
-! Inputs:
-! group_id - Group identifier
+! NAME
+! h5gget_info_f
!
-! Outputs: NOTE: In C it is defined as a structure: H5G_info_t
+! PURPOSE
+! Retrieves information about a group
!
-! storage_type - Type of storage for links in group
-! H5G_STORAGE_TYPE_COMPACT: Compact storage
-! H5G_STORAGE_TYPE_DENSE: Indexed storage
-! H5G_STORAGE_TYPE_SYMBOL_TABLE: Symbol tables, the original HDF5 structure
-! nlinks - Number of links in group
-! max_corder - Current maximum creation order value for group
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! mounted - Whether group has a file mounted on it
+! INPUTS
+! group_id - Group identifier
!
-! Programmer: M. S. Breitenfeld
-! February 15, 2008
+! OUTPUTS
+! storage_type - Type of storage for links in group
+! H5G_STORAGE_TYPE_COMPACT: Compact storage
+! H5G_STORAGE_TYPE_DENSE: Indexed storage
+! H5G_STORAGE_TYPE_SYMBOL_TABLE: Symbol tables, the original HDF5 structure
+! nlinks - Number of links in group
+! max_corder - Current maximum creation order value for group
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! mounted - Whether group has a file mounted on it
!
-! Modifications:
-! - Added 'mounted' paramater
-! M.S. Breitenfeld
-! July 16, 2008
+! AUTHOR
+! M. Scot Breitenfeld
+! February 15, 2008
!
-!----------------------------------------------------------------------
-
+! NOTES
+! In C the output is defined as a structure: H5G_info_t
+!
+! HISTORY
+!
+! - Added 'mounted' paramater
+! M. Scot Breitenfeld
+! July 16, 2008
+!
+! SOURCE
SUBROUTINE h5gget_info_f(group_id, storage_type, nlinks, max_corder, hdferr, mounted)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: group_id ! Group identifier
- INTEGER, INTENT(OUT) :: storage_type ! Type of storage for links in group:
+ INTEGER, INTENT(OUT) :: storage_type ! Type of storage for links in group:
! H5G_STORAGE_TYPE_COMPACT_F: Compact storage
! H5G_STORAGE_TYPE_DENSE_F: Indexed storage
! H5G_STORAGE_TYPE_SYMBOL_TABLE_F: Symbol tables, the original HDF5 structure
- INTEGER, INTENT(OUT) :: nlinks ! Number of links in group
- INTEGER, INTENT(OUT) :: max_corder ! Current maximum creation order value for group
- INTEGER, INTENT(OUT) :: hdferr ! Error code:
- ! 0 on success and -1 on failure
- LOGICAL, INTENT(OUT), OPTIONAL :: mounted ! Whether group has a file mounted on it
-
+ INTEGER, INTENT(OUT) :: nlinks ! Number of links in group
+ INTEGER, INTENT(OUT) :: max_corder ! Current maximum creation order value for group
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
+ LOGICAL, INTENT(OUT), OPTIONAL :: mounted ! Whether group has a file mounted on it
+!*****
INTEGER :: mounted_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5gget_info_c(group_id, storage_type, nlinks, max_corder, mounted_c)
USE H5GLOBAL
@@ -1144,70 +1122,71 @@ CONTAINS
ENDIF
END SUBROUTINE h5gget_info_f
-
-!----------------------------------------------------------------------
-! Name: h5gget_info_by_idx_f
-!
-! Purpose: Retrieves information about a group, according to the group’s position within an index.
-!
-! Inputs:
-! loc_id - File or group identifier
-! group_name - Name of group containing group for which information is to be retrieved
-! index_type - Index type
-! order - Order of the count in the index
-! n - Position in the index of the group for which information is retrieved
-!
-! Outputs: NOTE: In C the following are defined as a structure: H5G_info_t
-!
-! storage_type - Type of storage for links in group
-! H5G_STORAGE_TYPE_COMPACT: Compact storage
-! H5G_STORAGE_TYPE_DENSE: Indexed storage
-! H5G_STORAGE_TYPE_SYMBOL_TABLE: Symbol tables, the original HDF5 structure
-! nlinks - Number of links in group
-! max_corder - Current maximum creation order value for group
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! lapl_id - Link access property list
-! mounted - Whether group has a file mounted on it
!
-! Programmer: M. S. Breitenfeld
-! February 18, 2008
-!
-! Modifications:
-! - Added 'mounted' paramater
-! M.S. Breitenfeld
-! July 16, 2008
-!
-!----------------------------------------------------------------------
-
+!****s* H5G/h5gget_info_by_idx_f
+!
+! NAME
+! h5gget_info_by_idx_f
+!
+! PURPOSE
+! Retrieves information about a group, according to the group’s position within an index.
+!
+! INPUTS
+! loc_id - File or group identifier
+! group_name - Name of group containing group for which information is to be retrieved
+! index_type - Index type
+! order - Order of the count in the index
+! n - Position in the index of the group for which information is retrieved
+!
+! OUTPUTS
+! storage_type - Type of storage for links in group
+! H5G_STORAGE_TYPE_COMPACT: Compact storage
+! H5G_STORAGE_TYPE_DENSE: Indexed storage
+! H5G_STORAGE_TYPE_SYMBOL_TABLE: Symbol tables, the original HDF5 structure
+! nlinks - Number of links in group
+! max_corder - Current maximum creation order value for group
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! lapl_id - Link access property list
+! mounted - Whether group has a file mounted on it
+!
+! NOTES
+! In C the output is defined as a structure: H5G_info_t
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! February 18, 2008
+!
+! HISTORY
+! Added 'mounted' paramater
+! M. Scot Breitenfeld
+! July 16, 2008
+!
+! SOURCE
SUBROUTINE h5gget_info_by_idx_f(loc_id, group_name, index_type, order, n, &
storage_type, nlinks, max_corder, hdferr, lapl_id, mounted)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
CHARACTER(LEN=*), INTENT(IN) :: group_name ! Name of group containing group for which information is to be retrieved
INTEGER, INTENT(IN) :: index_type ! Index type
INTEGER, INTENT(IN) :: order ! Order of the count in the index
- INTEGER(HSIZE_T), INTENT(IN) :: n ! Position in the index of the group for which information is retrieved
+ INTEGER(HSIZE_T), INTENT(IN) :: n ! Position in the index of the group for which information is retrieved
INTEGER, INTENT(OUT) :: storage_type ! Type of storage for links in group:
- ! H5G_STORAGE_TYPE_COMPACT_F: Compact storage
- ! H5G_STORAGE_TYPE_DENSE_F: Indexed storage
- ! H5G_STORAGE_TYPE_SYMBOL_TABLE_F: Symbol tables, the original HDF5 structure
- INTEGER, INTENT(OUT) :: nlinks ! Number of links in group
- INTEGER, INTENT(OUT) :: max_corder ! Current maximum creation order value for group
- INTEGER, INTENT(OUT) :: hdferr ! Error code:
- ! 0 on success and -1 on failure
+ ! H5G_STORAGE_TYPE_COMPACT_F: Compact storage
+ ! H5G_STORAGE_TYPE_DENSE_F: Indexed storage
+ ! H5G_STORAGE_TYPE_SYMBOL_TABLE_F: Symbol tables, the original HDF5 structure
+ INTEGER, INTENT(OUT) :: nlinks ! Number of links in group
+ INTEGER, INTENT(OUT) :: max_corder ! Current maximum creation order value for group
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
- LOGICAL, INTENT(OUT), OPTIONAL :: mounted ! Whether group has a file mounted on it
-
+ LOGICAL, INTENT(OUT), OPTIONAL :: mounted ! Whether group has a file mounted on it
+!*****
INTEGER :: mounted_c
INTEGER(HID_T) :: lapl_id_default
INTEGER(SIZE_T) :: group_name_len ! length of group name
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5gget_info_by_idx_c(loc_id, group_name, group_name_len, index_type, order, n, lapl_id_default, &
storage_type, nlinks, max_corder, mounted_c)
@@ -1215,7 +1194,7 @@ CONTAINS
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5GGET_INFO_BY_IDX_C'::h5gget_info_by_idx_c
!DEC$ENDIF
-
+
!DEC$ATTRIBUTES reference :: group_name
INTEGER(HID_T), INTENT(IN) :: loc_id
CHARACTER(LEN=*), INTENT(IN) :: group_name
@@ -1251,63 +1230,65 @@ CONTAINS
ENDIF
END SUBROUTINE h5gget_info_by_idx_f
-
-!----------------------------------------------------------------------
-! Name: h5gget_info_by_name_f
!
-! Purpose: Retrieves information about a group.
+!****s* H5G/h5gget_info_by_name_f
!
-! Inputs:
-! loc_id - File or group identifier
-! group_name - Name of group containing group for which information is to be retrieved
+! NAME
+! h5gget_info_by_name_f
!
-! Outputs: NOTE: In C the following are defined as a structure: H5G_info_t
+! PURPOSE
+! Retrieves information about a group.
!
-! storage_type - Type of storage for links in group
-! H5G_STORAGE_TYPE_COMPACT: Compact storage
-! H5G_STORAGE_TYPE_DENSE: Indexed storage
-! H5G_STORAGE_TYPE_SYMBOL_TABLE: Symbol tables, the original HDF5 structure
-! nlinks - Number of links in group
-! max_corder - Current maximum creation order value for group
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! lapl_id - Link access property list
-! mounted - Whether group has a file mounted on it
+! INPUTS
+! loc_id - File or group identifier
+! group_name - Name of group containing group for which information is to be retrieved
!
-! Programmer: M. S. Breitenfeld
-! February 18, 2008
+! OUTPUTS
!
-! Modifications:
-! - Added 'mounted' paramater
-! M.S. Breitenfeld
-! July 16, 2008
-!----------------------------------------------------------------------
-
+! storage_type - Type of storage for links in group
+! H5G_STORAGE_TYPE_COMPACT: Compact storage
+! H5G_STORAGE_TYPE_DENSE: Indexed storage
+! H5G_STORAGE_TYPE_SYMBOL_TABLE: Symbol tables, the original HDF5 structure
+! nlinks - Number of links in group
+! max_corder - Current maximum creation order value for group
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! lapl_id - Link access property list
+! mounted - Whether group has a file mounted on it
+!
+! NOTES
+! In C the output is defined as a structure: H5G_info_t
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! February 18, 2008
+!
+! HISTORY
+! Added 'mounted' paramater
+! M. Scot Breitenfeld
+! July 16, 2008
+! SOURCE
SUBROUTINE h5gget_info_by_name_f(loc_id, group_name, &
storage_type, nlinks, max_corder, hdferr, lapl_id, mounted)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
CHARACTER(LEN=*), INTENT(IN) :: group_name ! Name of group containing group for which information is to be retrieved
- INTEGER, INTENT(OUT) :: storage_type ! Type of storage for links in group:
+ INTEGER, INTENT(OUT) :: storage_type ! Type of storage for links in group:
! H5G_STORAGE_TYPE_COMPACT_F: Compact storage
! H5G_STORAGE_TYPE_DENSE_F: Indexed storage
! H5G_STORAGE_TYPE_SYMBOL_TABLE_F: Symbol tables, the original HDF5 structure
- INTEGER, INTENT(OUT) :: nlinks ! Number of links in group
- INTEGER, INTENT(OUT) :: max_corder ! Current maximum creation order value for group
- INTEGER, INTENT(OUT) :: hdferr ! Error code:
- ! 0 on success and -1 on failure
+ INTEGER, INTENT(OUT) :: nlinks ! Number of links in group
+ INTEGER, INTENT(OUT) :: max_corder ! Current maximum creation order value for group
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
- LOGICAL, INTENT(OUT), OPTIONAL :: mounted ! Whether group has a file mounted on it
-
+ LOGICAL, INTENT(OUT), OPTIONAL :: mounted ! Whether group has a file mounted on it
+!*****
INTEGER :: mounted_c
INTEGER(HID_T) :: lapl_id_default
INTEGER(SIZE_T) :: group_name_len ! length of group name
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5gget_info_by_name_c(loc_id, group_name, group_name_len, lapl_id_default, &
storage_type, nlinks, max_corder, mounted_c)
diff --git a/fortran/src/H5If.c b/fortran/src/H5If.c
index 5f11fde..55868dd 100644
--- a/fortran/src/H5If.c
+++ b/fortran/src/H5If.c
@@ -1,4 +1,9 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+/****h* H5If/H5If
+ * PURPOSE
+ * This file contains C stubs for H5I Fortran APIs
+ *
+ * COPYRIGHT
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
@@ -11,25 +16,34 @@
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* This files contains C stubs for H5I Fortran APIs */
-
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ ******
+*/
#include "H5f90.h"
#include "H5Eprivate.h"
-/*----------------------------------------------------------------------------
- * Name: h5iget_type_c
- * Purpose: Call H5Iget_type to get the type of an object
- * Inputs: obj_id - object identifier
- * Outputs: type - object type
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Thursday, March 24, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+/****if* H5If/h5iget_type_c
+ * NAME
+ * h5iget_type_c
+ * PURPOSE
+ * Call H5Iget_type to get the type of an object
+ * INPUTS
+ * obj_id - object identifier
+ * OUTPUTS
+ * type - object type
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
+ * Thursday, March 24, 2000
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5iget_type_c (hid_t_f *obj_id, int_f *type)
+/******/
{
int ret_value = -1;
hid_t c_obj_id;
@@ -45,23 +59,32 @@ nh5iget_type_c (hid_t_f *obj_id, int_f *type)
ret_value = 0;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5iget_name_c
- * Purpose: Call H5Iget_name to get object's name
- * Inputs: obj_id - object identifier
+/****if* H5If/h5iget_name_c
+ * NAME
+ * h5iget_name_c
+ * PURPOSE
+ * Call H5Iget_name to get object's name
+ * INPUTS
+ * obj_id - object identifier
* buf_size - size of the buffer
- * Outputs: buf - buffer to hold the name
- * Returns: length of the name on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * buf - buffer to hold the name
+ * RETURNS
+ * length of the name on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, March 12, 2003
- * Modifications:
+ * HISTORY
+ *
* Changed the size of c_buf_size to c_buf_size + 1, which
* fixes the problem of truncating the string by 1 if the
* exact size of the string (buf_size) is passed in.
- * M.S. Breitenfeld, April 21, 2008
- *---------------------------------------------------------------------------*/
+ * M. Scot Breitenfeld, April 21, 2008
+ * SOURCE
+*/
int_f
nh5iget_name_c(hid_t_f *obj_id, _fcd buf, size_t_f *buf_size, size_t_f *name_size)
+/******/
{
int ret_value = -1;
hid_t c_obj_id;
@@ -95,18 +118,25 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5iinc_ref_c
- * Purpose: Call H5Iinc_ref to increment object's reference count
- * Inputs: obj_id - object identifier
- * Outputs: ref_count - Reference count of ID
- * Returns: current reference count on success, -1 on failure
- * Programmer: Quincey Koziol
- * Tuesday, December 9, 2003
- * Modifications:
- *---------------------------------------------------------------------------*/
+/****if* H5If/h5iinc_ref_c
+ * NAME
+ * h5iinc_ref_c
+ * PURPOSE
+ * Call H5Iinc_ref to increment object's reference count
+ * INPUTS
+ * obj_id - object identifier
+ * OUTPUTS
+ * ref_count - Reference count of ID
+ * RETURNS
+ * current reference count on success, -1 on failure
+ * AUTHOR
+ * Quincey Koziol
+ * Tuesday, December 9, 2003
+ * SOURCE
+*/
int_f
nh5iinc_ref_c(hid_t_f *obj_id, int_f *ref_count)
+/******/
{
int ret_value;
@@ -124,18 +154,25 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5idec_ref_c
- * Purpose: Call H5Idec_ref to decrement object's reference count
- * Inputs: obj_id - object identifier
- * Outputs: ref_count - Reference count of ID
- * Returns: current reference count on success, -1 on failure
- * Programmer: Quincey Koziol
+/****if* H5If/h5idec_ref_c
+ * NAME
+ * h5idec_ref_c
+ * PURPOSE
+ * Call H5Idec_ref to decrement object's reference count
+ * INPUTS
+ * obj_id - object identifier
+ * OUTPUTS
+ * ref_count - Reference count of ID
+ * RETURNS
+ * current reference count on success, -1 on failure
+ * AUTHOR
+ * Quincey Koziol
* Tuesday, December 9, 2003
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5idec_ref_c(hid_t_f *obj_id, int_f *ref_count)
+/******/
{
int ret_value;
@@ -153,18 +190,26 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5iget_ref_c
- * Purpose: Call H5Iget_ref to retrieve object's reference count
- * Inputs: obj_id - object identifier
- * Outputs: ref_count - Reference count of ID
- * Returns: current reference count on success, -1 on failure
- * Programmer: Quincey Koziol
- * Tuesday, December 9, 2003
- * Modifications:
- *---------------------------------------------------------------------------*/
+/****if* H5If/h5iget_ref_c
+ * NAME
+ * h5iget_ref_c
+ * PURPOSE
+ * Call H5Iget_ref to retrieve object's reference count
+ * INPUTS
+ * obj_id - object identifier
+ * OUTPUTS
+ * ref_count - Reference count of ID
+ * RETURNS
+ * current reference count on success, -1 on failure
+ * AUTHOR
+ * Quincey Koziol
+ * Tuesday, December 9, 2003
+ *
+ * SOURCE
+*/
int_f
nh5iget_ref_c(hid_t_f *obj_id, int_f *ref_count)
+/******/
{
int ret_value;
@@ -182,18 +227,26 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5iget_file_id_c
- * Purpose: Call H5Iget_file_id to obtain file identifier from object identifier
- * Inputs: obj_id - object identifier
- * Outputs: file_id - file identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
- * Tuesday, August 24, 2004
- * Modifications:
- *---------------------------------------------------------------------------*/
+/****if* H5If/h5iget_file_id_c
+ * NAME
+ * h5iget_file_id_c
+ * PURPOSE
+ * Call H5Iget_file_id to obtain file identifier from object identifier
+ * INPUTS
+ * obj_id - object identifier
+ * OUTPUTS
+ * file_id - file identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
+ * Tuesday, August 24, 2004
+ *
+ * SOURCE
+*/
int_f
nh5iget_file_id_c(hid_t_f *obj_id, hid_t_f *file_id)
+/******/
{
int ret_value;
hid_t c_file_id;
diff --git a/fortran/src/H5Iff.f90 b/fortran/src/H5Iff.f90
index a082d5a..86e88b9 100644
--- a/fortran/src/H5Iff.f90
+++ b/fortran/src/H5Iff.f90
@@ -1,352 +1,352 @@
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!
-!
-! This file contains FORTRAN90 interfaces for H5I functions
-!
- MODULE H5I
+!****h* ROBODoc/H5I
+!
+! NAME
+! MODULE H5I
+!
+! FILE
+! fortran/src/H5Iff.f90
+!
+! PURPOSE
+! This file contains Fortran interfaces for H5I functions.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! NOTES
+! *** IMPORTANT ***
+! If you add a new H5I function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
+!
+!*****
- USE H5GLOBAL
+MODULE H5I
- CONTAINS
+ USE H5GLOBAL
-!----------------------------------------------------------------------
-! Name: h5iget_type_f
-!
-! Purpose: Retrieves the type of an object.
-!
-! Inputs: obj_id - object identifier
-! Outputs:
-! type - type of the object, possible values:
-! H5I_FILE_F
-! H5I_GROUP_F
-! H5I_DATATYPE_F
-! H5I_DATASPACE_F
-! H5I_DATASET_F
-! H5I_ATTR_F
-! H5I_BADID_F
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 5, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
- SUBROUTINE h5iget_type_f(obj_id, type, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: obj_id !Object identifier
- INTEGER, INTENT(OUT) :: type !type of an object.
- !possible values are:
- !H5I_FILE_F
- !H5I_GROUP_F
- !H5I_DATATYPE_F
- !H5I_DATASPACE_F
- !H5I_DATASET_F
- !H5I_ATTR_F
- !H5I_BADID_F
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+CONTAINS
-! INTEGER, EXTERNAL :: h5iget_type_c
-! Interface is needed for MS FORTRAN
-!
- INTERFACE
- INTEGER FUNCTION h5iget_type_c(obj_id, type)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IGET_TYPE_C':: h5iget_type_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: obj_id
- INTEGER, INTENT(OUT) :: type
- END FUNCTION h5iget_type_c
- END INTERFACE
- hdferr = h5iget_type_c(obj_id, type)
- END SUBROUTINE h5iget_type_f
+!****s* H5I/h5iget_type_f
+!
+! NAME
+! h5iget_type_f
+!
+! PURPOSE
+! Retrieves the type of an object.
+!
+! INPUTS
+! obj_id - object identifier
+! OUTPUTS
+! type - type of the object, possible values:
+! H5I_FILE_F
+! H5I_GROUP_F
+! H5I_DATATYPE_F
+! H5I_DATASPACE_F
+! H5I_DATASET_F
+! H5I_ATTR_F
+! H5I_BADID_F
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 5, 2001
+!
+! SOURCE
+ SUBROUTINE h5iget_type_f(obj_id, TYPE, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
+ INTEGER, INTENT(OUT) :: TYPE ! type of an object.
+ ! possible values are:
+ ! H5I_FILE_F
+ ! H5I_GROUP_F
+ ! H5I_DATATYPE_F
+ ! H5I_DATASPACE_F
+ ! H5I_DATASET_F
+ ! H5I_ATTR_F
+ ! H5I_BADID_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5iget_type_c(obj_id, TYPE)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IGET_TYPE_C':: h5iget_type_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: obj_id
+ INTEGER, INTENT(OUT) :: TYPE
+ END FUNCTION h5iget_type_c
+ END INTERFACE
+ hdferr = h5iget_type_c(obj_id, TYPE)
+ END SUBROUTINE h5iget_type_f
-!----------------------------------------------------------------------
-! Name: h5iget_name_f
-!
-! Purpose: Gets a name of an object specified by its idetifier.
-!
-! Inputs:
-! obj_id - attribute identifier
-! buf_size - size of a buffer to read name in
-! Outputs:
-! buf - buffer to read name in, name will be truncated if
-! buffer is not big enough
-! name_size - name size
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! March 12, 2003
-!
-! Modifications:
-!
-!----------------------------------------------------------------------
+!****s* H5I/h5iget_name_f
+!
+! NAME
+! h5iget_name_f
+!
+! PURPOSE
+! Gets a name of an object specified by its idetifier.
+!
+! INPUTS
+! obj_id - attribute identifier
+! buf_size - size of a buffer to read name in
+! OUTPUTS
+! buf - buffer to read name in, name will be truncated if
+! buffer is not big enough
+! name_size - name size
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! March 12, 2003
+! SOURCE
+ SUBROUTINE h5iget_name_f(obj_id, buf, buf_size, name_size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
+ INTEGER(SIZE_T), INTENT(IN) :: buf_size ! Buffer size
+ CHARACTER(LEN=*), INTENT(OUT) :: buf ! Buffer to hold object name
+ INTEGER(SIZE_T), INTENT(OUT) :: name_size ! Actual name size
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 if successful,
+ ! -1 if fail
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5iget_name_c(obj_id, buf, buf_size, name_size)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IGET_NAME_C'::h5iget_name_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: obj_id
+ CHARACTER(LEN=*), INTENT(OUT) :: buf
+ INTEGER(SIZE_T), INTENT(IN) :: buf_size
+ INTEGER(SIZE_T), INTENT(OUT) :: name_size
+ END FUNCTION h5iget_name_c
+ END INTERFACE
+ hdferr = h5iget_name_c(obj_id, buf, buf_size, name_size)
+ END SUBROUTINE h5iget_name_f
- SUBROUTINE h5iget_name_f(obj_id, buf, buf_size, name_size, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
- INTEGER(SIZE_T), INTENT(IN) :: buf_size ! Buffer size
- CHARACTER(LEN=*), INTENT(OUT) :: buf ! Buffer to hold object name
- INTEGER(SIZE_T), INTENT(OUT) :: name_size ! Actual name size
- INTEGER, INTENT(OUT) :: hdferr ! Error code:
- ! 0 if successful,
- ! -1 if fail
-! INTEGER, EXTERNAL :: h5iget_name_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5iget_name_c(obj_id, buf, buf_size, name_size)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IGET_NAME_C'::h5iget_name_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: obj_id
- CHARACTER(LEN=*), INTENT(OUT) :: buf
- INTEGER(SIZE_T), INTENT(IN) :: buf_size
- INTEGER(SIZE_T), INTENT(OUT) :: name_size
- END FUNCTION h5iget_name_c
- END INTERFACE
+!****s* H5I/h5iinc_ref_f
+!
+! NAME
+! h5iinc_ref_f
+!
+! PURPOSE
+! Increments the reference count of an ID
+!
+! INPUTS
+! obj_id - object identifier
+! OUTPUTS
+! ref_count - Current reference count of the ID
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Quincey Koziol
+! December 9, 2003
+!
+! SOURCE
+ SUBROUTINE h5iinc_ref_f(obj_id, ref_count, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
+ INTEGER, INTENT(OUT) :: ref_count ! Current reference count of ID
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5iinc_ref_c(obj_id, ref_count)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IINC_REF_C':: h5iinc_ref_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: obj_id
+ INTEGER, INTENT(OUT) :: ref_count
+ END FUNCTION h5iinc_ref_c
+ END INTERFACE
+ hdferr = h5iinc_ref_c(obj_id, ref_count)
+ END SUBROUTINE h5iinc_ref_f
- hdferr = h5iget_name_c(obj_id, buf, buf_size, name_size)
- END SUBROUTINE h5iget_name_f
+!****s* H5I/h5idec_ref_f
+!
+! NAME
+! h5idec_ref_f
+!
+! PURPOSE
+! Decrements the reference count of an ID
+!
+! INPUTS
+! obj_id - Object identifier
+! OUTPUTS
+! ref_count - Current reference count of the ID
+! hdferr: - Error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Quincey Koziol
+! December 9, 2003
+!
+! SOURCE
+ SUBROUTINE h5idec_ref_f(obj_id, ref_count, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
+ INTEGER, INTENT(OUT) :: ref_count ! Current reference count of ID
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5idec_ref_c(obj_id, ref_count)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IDEC_REF_C':: h5idec_ref_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: obj_id
+ INTEGER, INTENT(OUT) :: ref_count
+ END FUNCTION h5idec_ref_c
+ END INTERFACE
+ hdferr = h5idec_ref_c(obj_id, ref_count)
+ END SUBROUTINE h5idec_ref_f
-!----------------------------------------------------------------------
-! Name: h5iinc_ref_f
-!
-! Purpose: Increments the reference count of an ID
-!
-! Inputs: obj_id - object identifier
-! Outputs:
-! ref_count - Current reference count of the ID
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Quincey Koziol
-! December 9, 2003
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
- SUBROUTINE h5iinc_ref_f(obj_id, ref_count, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: obj_id !Object identifier
- INTEGER, INTENT(OUT) :: ref_count !Current reference count of ID
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5iinc_ref_c
-! Interface is needed for MS FORTRAN
-!
- INTERFACE
- INTEGER FUNCTION h5iinc_ref_c(obj_id, ref_count)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IINC_REF_C':: h5iinc_ref_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: obj_id
- INTEGER, INTENT(OUT) :: ref_count
- END FUNCTION h5iinc_ref_c
- END INTERFACE
- hdferr = h5iinc_ref_c(obj_id, ref_count)
- END SUBROUTINE h5iinc_ref_f
-
-!----------------------------------------------------------------------
-! Name: h5idec_ref_f
-!
-! Purpose: Decrements the reference count of an ID
-!
-! Inputs: obj_id - object identifier
-! Outputs:
-! ref_count - Current reference count of the ID
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Quincey Koziol
-! December 9, 2003
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
- SUBROUTINE h5idec_ref_f(obj_id, ref_count, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: obj_id !Object identifier
- INTEGER, INTENT(OUT) :: ref_count !Current reference count of ID
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5idec_ref_c
-! Interface is needed for MS FORTRAN
-!
- INTERFACE
- INTEGER FUNCTION h5idec_ref_c(obj_id, ref_count)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IDEC_REF_C':: h5idec_ref_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: obj_id
- INTEGER, INTENT(OUT) :: ref_count
- END FUNCTION h5idec_ref_c
- END INTERFACE
- hdferr = h5idec_ref_c(obj_id, ref_count)
- END SUBROUTINE h5idec_ref_f
-
-!----------------------------------------------------------------------
-! Name: h5iget_ref_f
-!
-! Purpose: Retrieves the reference count of an ID
-!
-! Inputs: obj_id - object identifier
-! Outputs:
-! ref_count - Current reference count of the ID
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Quincey Koziol
-! December 9, 2003
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
- SUBROUTINE h5iget_ref_f(obj_id, ref_count, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: obj_id !Object identifier
- INTEGER, INTENT(OUT) :: ref_count !Current reference count of ID
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5iget_ref_c
-! Interface is needed for MS FORTRAN
-!
- INTERFACE
- INTEGER FUNCTION h5iget_ref_c(obj_id, ref_count)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IGET_REF_C':: h5iget_ref_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: obj_id
- INTEGER, INTENT(OUT) :: ref_count
- END FUNCTION h5iget_ref_c
- END INTERFACE
- hdferr = h5iget_ref_c(obj_id, ref_count)
- END SUBROUTINE h5iget_ref_f
-
-!----------------------------------------------------------------------
-! Name: h5iget_file_id_f
-!
-! Purpose: Obtains file identifier from the object identifier
-!
-! Inputs: obj_id - object identifier
-! Outputs:
-! file_id - file identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 23, 2004
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
- SUBROUTINE h5iget_file_id_f(obj_id, file_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
- INTEGER(HID_T), INTENT(OUT) :: file_id ! File identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTERFACE
- INTEGER FUNCTION h5iget_file_id_c(obj_id, file_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IGET_FILE_ID_C':: h5iget_file_id_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: obj_id
- INTEGER(HID_T), INTENT(OUT) :: file_id
- END FUNCTION h5iget_file_id_c
- END INTERFACE
- hdferr = h5iget_file_id_c(obj_id, file_id)
- END SUBROUTINE h5iget_file_id_f
-
-!----------------------------------------------------------------------
-! Name: H5Iis_valid_f
-!
-! Purpose: Check if an ID is valid without producing an error message
-!
-! Inputs: id - identifier
-! Outputs:
-! valid - status of id as a valid identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Programmer: M. Scot Breitenfeld
-! April 13, 2009
-!
-! Comment:
-!----------------------------------------------------------------------
- SUBROUTINE h5iis_valid_f(id, valid, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: id ! Identifier
- LOGICAL, INTENT(OUT) :: valid ! Status of id as a valid identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: c_valid ! 0 = .false, 1 = .true.
-
- INTERFACE
- INTEGER FUNCTION h5iis_valid_c(id, c_valid)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IIS_VALID_C':: h5iis_valid_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: id ! Identifier
- INTEGER :: c_valid
- END FUNCTION h5iis_valid_c
- END INTERFACE
-
- hdferr = h5iis_valid_c(id, c_valid)
-
- valid = .FALSE. ! Default
- IF(c_valid.EQ.1) valid = .TRUE.
-
- END SUBROUTINE h5iis_valid_f
-
-
- END MODULE H5I
+!****s* H5I/h5iget_ref_f
+! NAME
+! h5iget_ref_f
+!
+! PURPOSE
+! Retrieves the reference count of an ID
+!
+! INPUTS
+! obj_id - object identifier
+!
+! OUTPUTS
+! ref_count - Current reference count of the ID
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Quincey Koziol
+! December 9, 2003
+!
+! SOURCE
+ SUBROUTINE h5iget_ref_f(obj_id, ref_count, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
+ INTEGER, INTENT(OUT) :: ref_count ! Current reference count of ID
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5iget_ref_c(obj_id, ref_count)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IGET_REF_C':: h5iget_ref_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: obj_id
+ INTEGER, INTENT(OUT) :: ref_count
+ END FUNCTION h5iget_ref_c
+ END INTERFACE
+ hdferr = h5iget_ref_c(obj_id, ref_count)
+ END SUBROUTINE h5iget_ref_f
+!
+!****s* H5I/h5iget_file_id_f
+! NAME
+! h5iget_file_id_f
+!
+! PURPOSE
+! Obtains file identifier from the object identifier
+!
+! INPUTS
+! obj_id - object identifier
+! OUTPUTS
+! file_id - file identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 23, 2004
+! SOURCE
+ SUBROUTINE h5iget_file_id_f(obj_id, file_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
+ INTEGER(HID_T), INTENT(OUT) :: file_id ! File identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5iget_file_id_c(obj_id, file_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IGET_FILE_ID_C':: h5iget_file_id_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: obj_id
+ INTEGER(HID_T), INTENT(OUT) :: file_id
+ END FUNCTION h5iget_file_id_c
+ END INTERFACE
+ hdferr = h5iget_file_id_c(obj_id, file_id)
+ END SUBROUTINE h5iget_file_id_f
+!
+!****s* H5I/h5iis_valid_f
+! NAME
+! h5iget_file_id_f
+!
+! PURPOSE
+! Check if an ID is valid without producing an error message
+!
+! INPUTS
+! id - identifier
+! OUTPUTS
+! valid - status of id as a valid identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! April 13, 2009
+! SOURCE
+ SUBROUTINE h5iis_valid_f(id, valid, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: id ! Identifier
+ LOGICAL, INTENT(OUT) :: valid ! Status of id as a valid identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: c_valid ! 0 = .false, 1 = .true.
+
+ INTERFACE
+ INTEGER FUNCTION h5iis_valid_c(id, c_valid)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IIS_VALID_C':: h5iis_valid_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: id ! Identifier
+ INTEGER :: c_valid
+ END FUNCTION h5iis_valid_c
+ END INTERFACE
+
+ hdferr = h5iis_valid_c(id, c_valid)
+
+ valid = .FALSE. ! Default
+ IF(c_valid.EQ.1) valid = .TRUE.
+
+ END SUBROUTINE h5iis_valid_f
+END MODULE H5I
diff --git a/fortran/src/H5Lf.c b/fortran/src/H5Lf.c
index c971d5e..e5b01ed 100644
--- a/fortran/src/H5Lf.c
+++ b/fortran/src/H5Lf.c
@@ -1,4 +1,9 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+/****h* H5Lf/H5Lf
+ * PURPOSE
+ * This file contains C stubs for H5L Fortran APIs
+ *
+ * COPYRIGHT
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
@@ -11,17 +16,21 @@
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* This files contains C stubs for H5L Fortran APIs */
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ ******
+*/
#include "H5f90.h"
#include "H5Eprivate.h"
-/*----------------------------------------------------------------------------
- * Name: h5lcopy_c
- * Purpose: Call H5Lcopy
- * Inputs:
+/****if* H5Lf/h5lcopy_c
+ * NAME
+ * h5lcopy_c
+ * PURPOSE
+ * Call H5Lcopy
+ * INPUTS
+ *
* src_loc_id - Location identifier of the source link
* src_name - Name of the link to be copied
* src_namelen - length of the name
@@ -33,16 +42,21 @@
* lcpl_id - Link creation property list identifier
* lapl_id - Link access property list identifier
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* January, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5lcopy_c(hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_namelen, hid_t_f *dest_loc_id,
_fcd dest_name, size_t_f *dest_namelen,
hid_t_f *lcpl_id, hid_t_f *lapl_id)
+/******/
{
char *c_src_name = NULL;
char *c_dest_name = NULL;
@@ -72,10 +86,13 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5lcreate_external_c
- * Purpose: Call H5Lcreate_external_c
- * Inputs:
+/****if* H5Lf/h5lcreate_external_c
+ * NAME
+ * h5lcreate_external_c
+ * PURPOSE
+ * Call H5Lcreate_external_c
+ * INPUTS
+ *
* file_name - Name of the file containing the target object. Neither the file nor the target object is
* required to exist. May be the file the link is being created in.
* obj_name - Path within the target file to the target object.
@@ -84,17 +101,19 @@ done:
* lcpl_id - Link creation property list identifier.
* lapl_id - Link access property list identifier.
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * February 29, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * February 29, 2008
+ * SOURCE
+*/
int_f
nh5lcreate_external_c(_fcd file_name, size_t_f *file_namelen, _fcd obj_name, size_t_f *obj_namelen,
hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen,
hid_t_f *lcpl_id, hid_t_f *lapl_id)
-
+/******/
{
char *c_file_name = NULL;
char *c_obj_name = NULL;
@@ -129,24 +148,30 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5ldelete_c
- * Purpose: Call H5Ldelete
- * Inputs:
+/****if* H5Lf/h5ldelete_c
+ * NAME
+ * h5ldelete_c
+ * PURPOSE
+ * Call H5Ldelete
+ * INPUTS
+ *
*
* loc_id - Identifier of the file or group containing the object
* name - Name of the link to delete
* lapl_id - Link access property list identifier
* namelen - length of name
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* January, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5ldelete_c ( hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id )
+/******/
{
char *c_name = NULL;
int_f ret_value = 0;
@@ -170,10 +195,13 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5lcreate_soft_c
- * Purpose: Call H5Lcreate_soft
- * Inputs:
+/****if* H5Lf/h5lcreate_soft_c
+ * NAME
+ * h5lcreate_soft_c
+ * PURPOSE
+ * Call H5Lcreate_soft
+ * INPUTS
+ *
*
* target_path - Path to the target object, which is not required to exist.
* link_loc_id - The file or group identifier for the new link.
@@ -181,17 +209,20 @@ done:
* lcpl_id - Link creation property list identifier.
* lapl_id - Link access property list identifier.
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* February 20, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5lcreate_soft_c(_fcd target_path, size_t_f *target_path_len,
hid_t_f *link_loc_id,
_fcd link_name, size_t_f *link_name_len,
hid_t_f *lcpl_id, hid_t_f *lapl_id )
+/******/
{
char *c_target_path = NULL;
char *c_link_name = NULL;
@@ -220,10 +251,13 @@ nh5lcreate_soft_c(_fcd target_path, size_t_f *target_path_len,
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5lcreate_hard_c
- * Purpose: Call H5Lcreate_hard
- * Inputs:
+/****if* H5Lf/h5lcreate_hard_c
+ * NAME
+ * h5lcreate_hard_c
+ * PURPOSE
+ * Call H5Lcreate_hard
+ * INPUTS
+ *
* obj_loc_id - The file or group identifier for the target object.
* obj_name - Name of the target object, which must already exist.
* obj_namelen - Name length
@@ -233,17 +267,19 @@ nh5lcreate_soft_c(_fcd target_path, size_t_f *target_path_len,
* lcpl_id - Link creation property list identifier.
* lapl_id - Link access property list identifier.
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * February 27, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
-
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * February 27, 2008
+ * SOURCE
+*/
int_f
nh5lcreate_hard_c(hid_t_f *obj_loc_id, _fcd obj_name, size_t_f *obj_namelen,
hid_t_f *link_loc_id,
_fcd link_name, size_t_f *link_namelen,
hid_t_f *lcpl_id, hid_t_f *lapl_id )
+/******/
{
char *c_obj_name = NULL;
char *c_link_name = NULL;
@@ -272,10 +308,13 @@ nh5lcreate_hard_c(hid_t_f *obj_loc_id, _fcd obj_name, size_t_f *obj_namelen,
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5ldelete_by_idx_c
- * Purpose: Calls h5ldelete_by_idx
- * Inputs:
+/****if* H5Lf/h5ldelete_by_idx_c
+ * NAME
+ * h5ldelete_by_idx_c
+ * PURPOSE
+ * Calls h5ldelete_by_idx
+ * INPUTS
+ *
* loc_id - File or group identifier specifying location of subject group
* group_name - Name of subject group
* group_namelen - Name length
@@ -293,15 +332,21 @@ nh5lcreate_hard_c(hid_t_f *obj_loc_id, _fcd obj_name, size_t_f *obj_namelen,
* n - Link for which to retrieve information
* lapl_id - Link access property list
*
- * Outputs: N/A
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * OUTPUTS
+ * N/A
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* February 29, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ * N/A
+ * SOURCE
+*/
int_f
nh5ldelete_by_idx_c (hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen,
int_f *index_field, int_f *order, hsize_t_f *n, hid_t_f *lapl_id)
+/******/
{
char *c_group_name = NULL; /* Buffer to hold C string */
H5_index_t c_index_field;
@@ -329,22 +374,31 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5lexists_c
- * Purpose: Calls H5Lexists
- * Inputs:
+/****if* H5Lf/h5lexists_c
+ * NAME
+ * h5lexists_c
+ * PURPOSE
+ * Calls H5Lexists
+ * INPUTS
+ *
* loc_id - Identifier of the file or group to query.
* name - Link name to check
* lapl_id - Link access property list identifier.
- * Outputs:
+ * OUTPUTS
+ *
* link_exists_c - returns a positive value, for TRUE, or 0 (zero), for FALSE.
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* February 29, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5lexists_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, int_f *link_exists)
+/******/
{
char *c_name = NULL; /* Buffer to hold C string */
int_f ret_value = 0; /* Return value */
@@ -367,15 +421,19 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5lget_info_c
- * Purpose: Call H5Lget_info
- * Inputs:
+/****if* H5Lf/h5lget_info_c
+ * NAME
+ * h5lget_info_c
+ * PURPOSE
+ * Call H5Lget_info
+ * INPUTS
+ *
* link_loc_id - File or group identifier.
* link_name - Name of the link for which information is being sought
* link_namelen - Name length
* lapl_id - Link access property list
- * Outputs:
+ * OUTPUTS
+ *
*
* cset - indicates the character set used for link’s name.
* corder - specifies the link’s creation order position.
@@ -388,20 +446,25 @@ done:
* address - If the link is a hard link, address specifies the file address that the link points to
* val_size - If the link is a symbolic link, val_size will be the length of the link value
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* January, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ * N/A
+ * SOURCE
+*/
int_f
nh5lget_info_c(hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen,
int_f *cset, int_f *corder, int_f *corder_valid, int_f *link_type,
haddr_t_f *address, size_t_f *val_size,
hid_t_f *lapl_id)
+/******/
{
char *c_link_name = NULL; /* Buffer to hold C string */
- H5L_info_t link_buff;
int_f ret_value = 0; /* Return value */
+ H5L_info_t link_buff;
/*
* Convert FORTRAN name to C name
@@ -431,10 +494,13 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5lget_info_by_idx_c
- * Purpose: Call H5Lget_info_by_idx
- * Inputs:
+/****if* H5Lf/h5lget_info_by_idx_c
+ * NAME
+ * h5lget_info_by_idx_c
+ * PURPOSE
+ * Call H5Lget_info_by_idx
+ * INPUTS
+ *
* loc_id - File or group identifier specifying location of subject group
* group_name - Name of subject group
*group_namelen - Name length
@@ -442,43 +508,54 @@ done:
* order - Order within field or index
* n - Link for which to retrieve information
* lapl_id - Link access property list
- * Outputs:
+ * OUTPUTS
+ *
* corder_valid - Indicates whether the the creation order data is valid for this attribute
* corder - Is a positive integer containing the creation order of the attribute
* cset - Indicates the character set used for the attribute’s name
* data_size - indicates the size, in the number of characters, of the attribute
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* January, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ * N/A
+ * SOURCE
+*/
int_f
nh5lget_info_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen,
int_f *index_field, int_f *order, hsize_t_f *n,
int_f *link_type, int_f *corder_valid, int_f *corder, int_f *cset, haddr_t_f *address, size_t_f *val_size, hid_t_f *lapl_id)
+/******/
{
char *c_group_name = NULL; /* Buffer to hold C string */
- H5L_info_t link_buff;
+ H5_index_t c_index_field;
+ H5_iter_order_t c_order;
int_f ret_value = 0; /* Return value */
+ H5L_info_t link_buff;
/*
* Convert FORTRAN name to C name
*/
- if(NULL == (c_group_name = HD5f2cstring(group_name, (size_t)*group_namelen)))
- HGOTO_DONE(FAIL)
+ if((c_group_name = HD5f2cstring(group_name, (size_t)*group_namelen)) == NULL)
+ HGOTO_DONE(FAIL);
+ c_index_field = (H5_index_t)*index_field;
+ c_order = (H5_iter_order_t)*order;
/*
* Call H5Linfo_by_idx function.
*/
- if(H5Lget_info_by_idx((hid_t)*loc_id, c_group_name, (H5_index_t)*index_field, (H5_iter_order_t)*order, (hsize_t)*n,
+ if(H5Lget_info_by_idx((hid_t)*loc_id, c_group_name, c_index_field, c_order, (hsize_t)*n,
&link_buff, (hid_t)*lapl_id) < 0)
- HGOTO_DONE(FAIL)
+ HGOTO_DONE(FAIL);
/* Unpack the structure */
+
*corder_valid = 0;
- if(link_buff.corder_valid > 0)
- *corder_valid = 1;
+ if(link_buff.corder_valid > 0) *corder_valid = 1;
+
*corder = (int_f)link_buff.corder;
*cset = (int_f)link_buff.cset;
*link_type = (int_f)link_buff.type;
@@ -486,27 +563,33 @@ nh5lget_info_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen,
*val_size = (size_t_f)link_buff.u.val_size;
done:
- if(c_group_name)
- HDfree(c_group_name);
-
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: H5Lis_registered_c
- * Purpose: Call H5Lis_registered
- * Inputs:
+/****if* H5Lf/H5Lis_registered_c
+ * NAME
+ * H5Lis_registered_c
+ * PURPOSE
+ * Call H5Lis_registered
+ * INPUTS
+ *
* link_cls_id - User-defined link class identifier
- * Outputs: NONE
+ * OUTPUTS
+ * NONE
*
- * Returns: Returns a positive value if the link class has been registered
+ * RETURNS
+ * Returns a positive value if the link class has been registered
* and zero if it is unregistered. Otherwise returns a negative value
- * Programmer: M.S. Breitenfeld
+ * AUTHOR
+ * M. Scot Breitenfeld
* March 3, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ * N/A
+ * SOURCE
+*/
int_f
nh5lis_registered_c(int_f *link_cls_id)
+/******/
{
int_f ret_value; /* Return value */
@@ -518,28 +601,51 @@ nh5lis_registered_c(int_f *link_cls_id)
return ret_value;
}
+/* { not sure what this is fix -scot- */
+/* int_f ret_value = 0; /\* Return value *\/ */
+/* H5L_type_t c_link_cls_id; /\* User-defined link class identifier *\/ */
+/* htri_t registered; /\* registration status *\/ */
+
-/*----------------------------------------------------------------------------
- * Name: h5lmove_c
- * Purpose: Call H5Lmove
- * Inputs:
+/* c_link_cls_id = (H5L_type_t)*link_cls_id; */
+/* /\* */
+/* * Call H5Lis_registered */
+/* *\/ */
+/* registered = H5Lis_registered(c_link_cls_id); */
+
+/* ret_value = (int_f)registered; */
+
+/* return ret_value; */
+/* } */
+
+
+/****if* H5Lf/h5lmove_c
+ * NAME
+ * h5lmove_c
+ * PURPOSE
+ * Call H5Lmove
+ * INPUTS
+ *
* src_loc_id - Original file or group identifier.
* src_name - Original link name.
* src_namelen - name length
* dest_loc_id - Destination file or group identifier.
* dest_name - NEW link name.
* dest_namelen - name length
- * Outputs:
+ * OUTPUTS
+ *
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* March 3, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5lmove_c(hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_namelen, hid_t_f *dest_loc_id,
_fcd dest_name, size_t_f *dest_namelen, hid_t_f *lcpl_id, hid_t_f *lapl_id)
-
+/******/
{
char *c_src_name = NULL; /* Buffer to hold C string */
char *c_dest_name = NULL; /* Buffer to hold C string */
@@ -569,10 +675,13 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5lget_name_by_idx_c
- * Purpose: Call H5Lget_name_by_idx
- * Inputs:
+/****if* H5Lf/h5lget_name_by_idx_c
+ * NAME
+ * h5lget_name_by_idx_c
+ * PURPOSE
+ * Call H5Lget_name_by_idx
+ * INPUTS
+ *
* loc_id - File or group identifier specifying location of subject group
* group_name - Name of subject group
* index_field - Index or field which determines the order
@@ -580,18 +689,22 @@ done:
* n - Link for which to retrieve information
* size - Maximum number of characters of link value to be returned.
* lapl_id - Link access property list
- * Outputs:
+ * OUTPUTS
+ *
* name - Buffer in which link value is returned
* size - The size of the link name on success
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* March 10, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5lget_name_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen,
int_f *index_field, int_f *order, hsize_t_f *n,
size_t_f *size, _fcd name, hid_t_f *lapl_id)
+/******/
{
char *c_group_name = NULL; /* Buffer to hold C string */
char *c_name = NULL; /* Buffer to hold C string */
@@ -631,34 +744,98 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: H5Lregistered_c
- * Purpose: Call H5Lregistered
- * Inputs:
- *
- * Inputs:
- * version - Version number of this struct
- * class_id - Link class identifier
- * comment - Comment for debugging
- * comment_len - Comment for debugging
- * create_func - Callback during link creation
- * create_func_len - length
- * move_func - Callback after moving link
- * move_func_len - length
- * copy_func - Callback after copying link
- * copy_func_len - length
- * trav_func - The main traversal function
- * trav_func_len - length
- * del_func - Callback for link deletion
- * del_func_len - length
- * query_func - Callback for queries
- * query_func_len - length
- *
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * February 3, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+
+/* /\****if* H5Lf/h5lget_val_c */
+/* * NAME */
+/* * h5lget_val_c */
+/* * PURPOSE */
+/* * Call H5Lget_val */
+/* * INPUTS */
+/* * */
+/* * link_loc_id - File or group identifier. */
+/* * link_name - Name of the link for which valrmation is being sought */
+/* * link_namelen - Name length */
+/* * size - Maximum number of characters of link value to be returned. */
+/* * lapl_id - Link access property list */
+/* * OUTPUTS */
+/* * */
+/* * linkval_buff - The buffer to hold the returned link value. */
+/* * */
+/* * RETURNS */
+/* * 0 on success, -1 on failure */
+/* * AUTHOR */
+/* * M. Scot Breitenfeld */
+/* * March 3, 2008 */
+/* * HISTORY */
+/* * N/A */
+/* * SOURCE */
+/* *\/ */
+/* int_f */
+/* nh5lget_val_c (hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen, */
+/* size_t_f *size, _fcd linkval_buff, */
+/* hid_t_f *lapl_id) */
+/* { */
+/* char *c_link_name = NULL; /\* Buffer to hold C string *\/ */
+/* int_f ret_value = 0; /\* Return value *\/ */
+/* void *c_linkval_buff = NULL; */
+
+/* /\* */
+/* * Convert FORTRAN name to C name */
+/* *\/ */
+/* if((c_link_name = HD5f2cstring(link_name, (size_t)*link_namelen)) == NULL) */
+/* HGOTO_DONE(FAIL); */
+/* /\* */
+/* * Call H5Lval function. */
+/* *\/ */
+/* if(H5Lget_val((hid_t)*link_loc_id, c_link_name, &linkval_buff, (size_t)*size, (hid_t)*lapl_id) < 0) */
+/* HGOTO_DONE(FAIL); */
+/* /\* */
+/* * Convert C name to FORTRAN */
+/* *\/ */
+/* HD5packFstring(c_buf, _fcdtocp(buf), c_bufsize-1); */
+
+
+/* done: */
+/* return ret_value; */
+/* } */
+
+
+/* /\****if* H5Lf/ */
+/* * NAME */
+/* * H5Lregistered_c */
+/* * PURPOSE */
+/* * Call H5Lregistered */
+/* * INPUTS */
+/* * */
+/* * */
+/* * INPUTS */
+/* * */
+/* * version - Version number of this struct */
+/* * class_id - Link class identifier */
+/* * comment - Comment for debugging */
+/* * comment_len - Comment for debugging */
+/* * create_func - Callback during link creation */
+/* * create_func_len - length */
+/* * move_func - Callback after moving link */
+/* * move_func_len - length */
+/* * copy_func - Callback after copying link */
+/* * copy_func_len - length */
+/* * trav_func - The main traversal function */
+/* * trav_func_len - length */
+/* * del_func - Callback for link deletion */
+/* * del_func_len - length */
+/* * query_func - Callback for queries */
+/* * query_func_len - length */
+/* * */
+/* * RETURNS */
+/* * 0 on success, -1 on failure */
+/* * AUTHOR */
+/* * M. Scot Breitenfeld */
+/* * February 3, 2008 */
+/* * HISTORY */
+/* * */
+/* * SOURCE */
+/* *\/ */
/* int_f */
@@ -681,7 +858,7 @@ done:
/* H5L_class_t class_t; */
-/* int ret_value = 0; */
+/* int_f ret_value = 0; */
/* /\* */
/* * Convert FORTRAN name to C name */
@@ -734,27 +911,34 @@ done:
/* return ret_value; */
/* } */
-/*----------------------------------------------------------------------------
- * Name: h5lget_val_c
- * Purpose: Call H5Lget_val_c
- * Inputs:
+/****if* H5Lf/h5lget_val_c
+ * NAME
+ * h5lget_val_c
+ * PURPOSE
+ * Call H5Lget_val
+ * INPUTS
+ *
* link_loc_id - File or group identifier.
* link_name - Link whose value is to be returned.
* link_name_len - length of link_name
* size - Maximum number of characters of link value to be returned.
* lapl_id - List access property list identifier
- * Outputs:
+ * OUTPUTS
+ *
* linkval_buff - The buffer to hold the returned link value.
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* April 11, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5lget_val_c(hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen, size_t_f *size,
void *linkval_buff, hid_t_f *lapl_id)
-{
+/******/
+{
char *c_link_name = NULL; /* Buffer to hold C string */
int_f ret_value = 0; /* Return value */
@@ -777,3 +961,112 @@ done:
return ret_value;
}
+/****if* H5Lf/h5literate_c
+ * NAME
+ * h5literate_c
+ * PURPOSE
+ * Calls H5Literate
+ * INPUTS
+ *
+ * group_id - Identifier specifying subject group
+ * index_type - Type of index which determines the order
+ * order - Order within index
+ * idx - Iteration position at which to start
+ * op - Callback function passing data regarding the link to the calling application
+ * op_data - User-defined pointer to data required by the application for its processing of the link
+ *
+ * OUTPUTS
+ *
+ * idx - Position at which an interrupted iteration may be restarted
+ *
+ * RETURNS
+ * >0 on success, 0< on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * July 8, 2008
+ * SOURCE
+*/
+int_f
+nh5literate_c(hid_t_f *group_id, int_f *index_type, int_f *order, hsize_t_f *idx, H5L_iterate_t op, void *op_data )
+/******/
+{
+ int_f ret_value = -1; /* Return value */
+ herr_t func_ret_value; /* H5Linterate return value */
+ hsize_t idx_c = 0;
+
+ idx_c = (hsize_t)*idx;
+
+ /*
+ * Call H5Linterate
+ */
+
+ func_ret_value = H5Literate( (hid_t)*group_id, (H5_index_t)*index_type, (H5_iter_order_t)*order, &idx_c, op, op_data);
+
+ ret_value = (int_f)func_ret_value;
+ *idx = (hsize_t_f)idx_c;
+
+ return ret_value;
+}
+
+/****if* H5Lf/h5literate_by_name_c
+ * NAME
+ * h5literate_by_name_c
+ * PURPOSE
+ * Call H5Literate_by_name
+ * INPUTS
+ *
+ * loc_id - Identifier specifying subject group
+ * name - Name of subject group
+ * namelen - Name length
+ * index_type - Type of index which determines the order
+ * order - Order within index
+ * idx - Iteration position at which to start
+ * op - Callback function passing data regarding the link to the calling application
+ * op_data - User-defined pointer to data required by the application for its processing of the link
+ * lapl_id - List access property list identifier
+ *
+ * OUTPUTS
+ *
+ * idx - Position at which an interrupted iteration may be restarted
+ *
+ * RETURNS
+ * >0 on success, 0< on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * Augest 18, 2008
+ * SOURCE
+*/
+int_f
+nh5literate_by_name_c(hid_t_f *loc_id, _fcd name, size_t_f *namelen, int_f *index_type, int_f *order, hsize_t_f *idx, H5L_iterate_t op, void *op_data, hid_t_f *lapl_id)
+/******/
+{
+ int_f ret_value = -1; /* Return value */
+ herr_t func_ret_value; /* H5Linterate return value */
+ hsize_t idx_c = 0;
+ char *c_name = NULL; /* Buffer to hold C string */
+
+ /*
+ * Convert FORTRAN name to C name
+ */
+ if((c_name = HD5f2cstring(name, (size_t)*namelen)) == NULL)
+ return ret_value=-1;
+
+ idx_c = (hsize_t)*idx;
+
+ /*
+ * Call H5Linterate
+ */
+
+ func_ret_value = H5Literate_by_name((hid_t)*loc_id, c_name,(H5_index_t)*index_type,(H5_iter_order_t)*order,&idx_c,op,op_data,(hid_t)*lapl_id);
+
+ ret_value = (int_f)func_ret_value;
+ *idx = (hsize_t_f)idx_c;
+
+ if(c_name) HDfree(c_name);
+
+ return ret_value;
+}
+
+
+
+
diff --git a/fortran/src/H5Lff.f90 b/fortran/src/H5Lff.f90
index 8d30c20..8043d74 100644
--- a/fortran/src/H5Lff.f90
+++ b/fortran/src/H5Lff.f90
@@ -1,3 +1,14 @@
+!****h* ROBODoc/H5L
+!
+! NAME
+! MODULE H5L
+!
+! PURPOSE
+! This file contains Fortran interfaces for H5L functions. It includes
+! all the functions that are independent on whether the Fortran 2003 functions
+! are enabled or disabled.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,43 +24,48 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! NOTES
+! *** IMPORTANT ***
+! If you add a new H5L function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
!
-! This file contains Fortran90 interfaces for H5L functions.
-!
+!*****
+
MODULE H5L
USE H5GLOBAL
CONTAINS
-!----------------------------------------------------------------------
-! Name: h5lcopy_f
!
-! Purpose: Copies a link from one location to another.
+!****s* H5L/h5lcopy_f
+!
+! NAME
+! h5lcopy_f
!
-! Inputs:
-! src_loc_id - Location identifier of the source link
-! src_name - Name of the link to be copied
-! dest_loc_id - Location identifier specifying the destination of the copy
-! dest_name - Name to be assigned to the NEW copy
-! loc_id - Identifier of the file or group containing the object
-! name - Name of the link to delete
+! PURPOSE
+! Copies a link from one location to another.
!
-! Outputs:
-! hdferr - error code:
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! lcpl_id - Link creation property list identifier
-! lapl_id - Link access property list identifier
+! INPUTS
+! src_loc_id - Location identifier of the source link
+! src_name - Name of the link to be copied
+! dest_loc_id - Location identifier specifying the destination of the copy
+! dest_name - Name to be assigned to the NEW copy
+! loc_id - Identifier of the file or group containing the object
+! name - Name of the link to delete
!
-! Programmer: M.S. Breitenfeld
-! February 27, 2008
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! lcpl_id - Link creation property list identifier
+! lapl_id - Link access property list identifier
!
-! Modifications:
+! AUTHOR
+! M. Scot Breitenfeld
+! February 27, 2008
!
-! Comment:
-!----------------------------------------------------------------------
+! SOURCE
SUBROUTINE h5lcopy_f(src_loc_id, src_name, dest_loc_id, dest_name, hdferr, &
lcpl_id, lapl_id)
IMPLICIT NONE
@@ -62,16 +78,13 @@ CONTAINS
! 0 on success and -1 on failure
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lcpl_id ! Link creation property list identifier
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list identifier
-
+!*****
INTEGER(HID_T) :: lcpl_id_default
INTEGER(HID_T) :: lapl_id_default
INTEGER(SIZE_T) :: src_namelen
INTEGER(SIZE_T) :: dest_namelen
-
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5lcopy_c(src_loc_id, src_name, src_namelen, dest_loc_id, dest_name, dest_namelen, &
lcpl_id_default, lapl_id_default)
@@ -106,29 +119,29 @@ CONTAINS
END SUBROUTINE h5lcopy_f
-!----------------------------------------------------------------------
-! Name: h5ldelete_f
!
-! Purpose: Removes a link from a group.
+!****s* H5L/h5ldelete_f
!
-! Inputs:
-! loc_id - Identifier of the file or group containing the object
-! name - Name of the link to delete
+! NAME
+! h5ldelete_f
!
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! lapl_id - Link access property list identifier
+! PURPOSE
+! Removes a link from a group.
!
-! Programmer: M.S. Breitenfeld
-! January, 2008
+! INPUTS
+! loc_id - Identifier of the file or group containing the object
+! name - Name of the link to delete
!
-! Modifications:
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! lapl_id - Link access property list identifier
!
-! Comment:
-!----------------------------------------------------------------------
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+!
+! SOURCE
SUBROUTINE h5ldelete_f(loc_id, name, hdferr, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifier of the file or group containing the object
@@ -136,12 +149,10 @@ CONTAINS
INTEGER, INTENT(OUT) :: hdferr ! Error code:
! 0 on success and -1 on failure
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list identifier
+!*****
INTEGER(HID_T) :: lapl_id_default
INTEGER(SIZE_T) :: namelen
-
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5ldelete_c(loc_id, name, namelen, lapl_id_default)
USE H5GLOBAL
@@ -165,48 +176,46 @@ CONTAINS
END SUBROUTINE h5ldelete_f
-!----------------------------------------------------------------------
-! Name: H5Lcreate_soft_f
!
-! Purpose: Creates a soft link to an object.
+!****s* H5L/H5Lcreate_soft_f
!
-! Inputs:
-! target_path - Path to the target object, which is not required to exist.
-! link_loc_id - The file or group identifier for the new link.
-! link_name - The name of the new link.
+! NAME
+! H5Lcreate_soft_f
!
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! lcpl_id - Link creation property list identifier.
-! lapl_id - Link access property list identifier.
+! PURPOSE
+! Creates a soft link to an object.
!
-! Programmer: M.S. Breitenfeld
-! February 20, 2008
+! INPUTS
+! target_path - Path to the target object, which is not required to exist.
+! link_loc_id - The file or group identifier for the new link.
+! link_name - The name of the new link.
!
-! Modifications:
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! lcpl_id - Link creation property list identifier.
+! lapl_id - Link access property list identifier.
!
-! Comment:
-!----------------------------------------------------------------------
+! AUTHOR
+! M. Scot Breitenfeld
+! February 20, 2008
+!
+! SOURCE
SUBROUTINE h5lcreate_soft_f(target_path, link_loc_id, link_name, hdferr, lcpl_id, lapl_id)
IMPLICIT NONE
- CHARACTER(LEN=*), INTENT(IN) :: target_path ! Path to the target object, which is not required to exist.
+ CHARACTER(LEN=*), INTENT(IN) :: target_path ! Path to the target object, which is not required to exist.
INTEGER(HID_T), INTENT(IN) :: link_loc_id ! The file or group identifier for the new link.
- CHARACTER(LEN=*), INTENT(IN) :: link_name ! The name of the new link.
- INTEGER, INTENT(OUT) :: hdferr ! Error code:
- ! 0 on success and -1 on failure
+ CHARACTER(LEN=*), INTENT(IN) :: link_name ! The name of the new link.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lcpl_id ! Link creation property list identifier.
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list identifier.
-
+!*****
INTEGER(HID_T) :: lcpl_id_default
INTEGER(HID_T) :: lapl_id_default
INTEGER(SIZE_T) :: target_path_len
INTEGER(SIZE_T) :: link_name_len
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5lcreate_soft_c(target_path, target_path_len, &
link_loc_id, &
@@ -242,33 +251,33 @@ CONTAINS
END SUBROUTINE h5lcreate_soft_f
-!----------------------------------------------------------------------
-! Name: H5Lcreate_hard_f
!
-! Purpose: Creates a hard link to an object.
+!****s* H5L/H5Lcreate_hard_f
!
-! Inputs:
+! NAME
+! H5Lcreate_hard_f
!
-! obj_loc_id - The file or group identifier for the target object.
-! obj_name - Name of the target object, which must already exist.
-! link_loc_id - The file or group identifier for the new link.
-! link_name - The name of the new link.
+! PURPOSE
+! Creates a hard link to an object.
!
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! lcpl_id - Link creation property list identifier.
-! lapl_id - Link access property list identifier.
+! INPUTS
!
-! Programmer: M.S. Breitenfeld
-! February 27, 2008
+! obj_loc_id - The file or group identifier for the target object.
+! obj_name - Name of the target object, which must already exist.
+! link_loc_id - The file or group identifier for the new link.
+! link_name - The name of the new link.
!
-! Modifications:
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! lcpl_id - Link creation property list identifier.
+! lapl_id - Link access property list identifier.
!
-! Comment:
-!----------------------------------------------------------------------
+! AUTHOR
+! M. Scot Breitenfeld
+! February 27, 2008
+!
+! SOURCE
SUBROUTINE h5lcreate_hard_f(obj_loc_id, obj_name, link_loc_id, link_name, hdferr, lcpl_id, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_loc_id ! The file or group identifier for the target object.
@@ -281,15 +290,13 @@ CONTAINS
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lcpl_id ! Link creation property list identifier.
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list identifier.
-
+!*****
INTEGER(HID_T) :: lcpl_id_default
INTEGER(HID_T) :: lapl_id_default
INTEGER(SIZE_T) :: obj_namelen
INTEGER(SIZE_T) :: link_namelen
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5lcreate_hard_c(obj_loc_id, obj_name, obj_namelen, &
link_loc_id, link_name, link_namelen, lcpl_id_default, lapl_id_default)
@@ -322,37 +329,36 @@ CONTAINS
END SUBROUTINE h5lcreate_hard_f
-!----------------------------------------------------------------------
-! Name: H5Lcreate_external_f
!
-! Purpose: Creates a soft link to an object in a different file.
+!****s* H5L/H5Lcreate_external_f
!
-! Inputs:
+! NAME
+! H5Lcreate_external_f
!
-! file_name - Name of the file containing the target object. Neither the file nor the target object is
-! required to exist. May be the file the link is being created in.
-! obj_name - Path within the target file to the target object.
-! link_loc_id - The file or group identifier for the new link.
-! link_name - The name of the new link.
+! PURPOSE
+! Creates a soft link to an object in a different file.
!
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! lcpl_id - Link creation property list identifier.
-! lapl_id - Link access property list identifier.
+! INPUTS
!
-! Programmer: M.S. Breitenfeld
-! February 27, 2008
+! file_name - Name of the file containing the target object. Neither the file nor the target object is
+! required to exist. May be the file the link is being created in.
+! obj_name - Path within the target file to the target object.
+! link_loc_id - The file or group identifier for the new link.
+! link_name - The name of the new link.
!
-! Modifications:
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! lcpl_id - Link creation property list identifier.
+! lapl_id - Link access property list identifier.
!
-! Comment:
-!----------------------------------------------------------------------
+! AUTHOR
+! M. Scot Breitenfeld
+! February 27, 2008
+! SOURCE
SUBROUTINE h5lcreate_external_f(file_name, obj_name, link_loc_id, link_name, hdferr, lcpl_id, lapl_id)
IMPLICIT NONE
- CHARACTER(LEN=*), INTENT(IN) :: file_name ! Name of the file containing the target object. Neither
+ CHARACTER(LEN=*), INTENT(IN) :: file_name ! Name of the file containing the target object. Neither
! the file nor the target object is required to exist.
! May be the file the link is being created in.
CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of the target object, which must already exist.
@@ -364,7 +370,7 @@ CONTAINS
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lcpl_id ! Link creation property list identifier.
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list identifier.
-
+!*****
INTEGER(HID_T) :: lcpl_id_default
INTEGER(HID_T) :: lapl_id_default
@@ -372,8 +378,6 @@ CONTAINS
INTEGER(SIZE_T) :: obj_namelen
INTEGER(SIZE_T) :: link_namelen
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5lcreate_external_c(file_name, file_namelen, obj_name, obj_namelen, &
link_loc_id, link_name, link_namelen, lcpl_id_default, lapl_id_default)
@@ -408,42 +412,40 @@ CONTAINS
END SUBROUTINE h5lcreate_external_f
-!----------------------------------------------------------------------
-! Name: h5ldelete_by_idx_f
-!
-! Purpose: Removes the nth link in a group.
-! Inputs:
-! loc_id - File or group identifier specifying location of subject group
-! group_name - Name of subject group
-! index_field - Type of index; Possible values are:
-!
-! H5_INDEX_UNKNOWN_F = -1 - Unknown index type
-! H5_INDEX_NAME_F - Index on names
-! H5_INDEX_CRT_ORDER_F - Index on creation order
-! H5_INDEX_N_F - Number of indices defined
-!
-! order - Order within field or index; Possible values are:
-!
-! H5_ITER_UNKNOWN_F - Unknown order
-! H5_ITER_INC_F - Increasing order
-! H5_ITER_DEC_F - Decreasing order
-! H5_ITER_NATIVE_F - No particular order, whatever is fastest
-! H5_ITER_N_F - Number of iteration orders
-!
-! n - Link for which to retrieve information
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! lapl_id - Link access property list
!
-! Programmer: M.S. Breitenfeld
-! February 29, 2008
-!
-! Modifications: N/A
-!
-!----------------------------------------------------------------------
+!****s* H5L/h5ldelete_by_idx_f
+!
+! NAME
+! h5ldelete_by_idx_f
+!
+! PURPOSE
+! Removes the nth link in a group.
+! INPUTS
+! loc_id - File or group identifier specifying location of subject group
+! group_name - Name of subject group
+! index_field - Type of index; Possible values are:
+! H5_INDEX_UNKNOWN_F = -1 - Unknown index type
+! H5_INDEX_NAME_F - Index on names
+! H5_INDEX_CRT_ORDER_F - Index on creation order
+! H5_INDEX_N_F - Number of indices defined
+!
+! order - Order within field or index; Possible values are:
+! H5_ITER_UNKNOWN_F - Unknown order
+! H5_ITER_INC_F - Increasing order
+! H5_ITER_DEC_F - Decreasing order
+! H5_ITER_NATIVE_F - No particular order, whatever is fastest
+! H5_ITER_N_F - Number of iteration orders
+!
+! n - Link for which to retrieve information
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! lapl_id - Link access property list
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! February 29, 2008
+! SOURCE
SUBROUTINE h5ldelete_by_idx_f(loc_id, group_name, index_field, order, n, hdferr, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifer for object to which attribute is attached
@@ -464,12 +466,10 @@ CONTAINS
INTEGER, INTENT(OUT) :: hdferr ! Error code:
! 0 on success and -1 on failure
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
-
+!*****
INTEGER(HID_T) :: lapl_id_default
INTEGER(SIZE_T) :: group_namelen
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5ldelete_by_idx_c(loc_id, group_name, group_namelen, index_field, order, n, lapl_id_default)
USE H5GLOBAL
@@ -495,29 +495,30 @@ CONTAINS
END SUBROUTINE h5ldelete_by_idx_f
-!----------------------------------------------------------------------
-! Name: H5Lexists_f
!
-! Purpose: Check if a link with a particular name exists in a group.
+!****s* H5L/H5Lexists_f
+!
+! NAME
+! H5Lexists_f
!
-! Inputs:
-! loc_id - Identifier of the file or group to query.
-! name - Link name to check
+! PURPOSE
+! Check if a link with a particular name exists in a group.
!
-! Outputs:
-! link_exists - link exists status (.TRUE.,.FALSE.)
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! lapl_id - Link access property list identifier.
+! INPUTS
+! loc_id - Identifier of the file or group to query.
+! name - Link name to check
!
-! Programmer: M. S. Breitenfeld
-! February 29, 2008
+! OUTPUTS
+! link_exists - link exists status (.TRUE.,.FALSE.)
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! lapl_id - Link access property list identifier.
!
-! Modifications: N/A
+! AUTHOR
+! M. Scot Breitenfeld
+! February 29, 2008
!
-!----------------------------------------------------------------------
+! SOURCE
SUBROUTINE h5lexists_f(loc_id, name, link_exists, hdferr, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifier of the file or group to query.
@@ -527,12 +528,11 @@ CONTAINS
! 0 on success and -1 on failure
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id
! Link access property list identifier.
+!*****
INTEGER :: link_exists_c
INTEGER(HID_T) :: lapl_id_default
INTEGER(SIZE_T) :: namelen
-!
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+
INTERFACE
INTEGER FUNCTION h5lexists_c(loc_id, name, namelen, lapl_id_default, link_exists_c)
USE H5GLOBAL
@@ -561,46 +561,50 @@ CONTAINS
END SUBROUTINE h5lexists_f
-!----------------------------------------------------------------------
-! Name: h5lget_info_f
-!
-! Purpose: Returns information about a link.
-!
-! Inputs:
-! link_loc_id - File or group identifier.
-! link_name - Name of the link for which information is being sought
-!
-! Outputs: NOTE: In C these are contained in the structure H5L_info_t
-!
-! cset - indicates the character set used for link’s name.
-! corder - specifies the link’s creation order position.
-!f_corder_valid - indicates whether the value in corder is valid.
-! link_type - specifies the link class:
-! H5L_TYPE_HARD_F - Hard link
-! H5L_TYPE_SOFT_F - Soft link
-! H5L_TYPE_EXTERNAL_F - External link
-! H5L_TYPE_ERROR_F - Error
-! address - If the link is a hard link, address specifies the file address that the link points to
-! val_size - If the link is a symbolic link, val_size will be the length of the link value, e.g.,
-! the length of the name of the pointed-to object with a null terminator.
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! lapl_id - Link access property list
-!
-! Programmer: M. S. Breitenfeld
-! February 29, 2008
-!
-! Modifications:
+!
+!****s* H5L/h5lget_info_f
+!
+! NAME
+! h5lget_info_f
+!
+! PURPOSE
+! Returns information about a link.
+!
+! INPUTS
+! link_loc_id - File or group identifier.
+! link_name - Name of the link for which information is being sought
+!
+! OUTPUTS
+! NOTE: In C these are contained in the structure H5L_info_t
+!
+! cset - indicates the character set used for link’s name.
+! corder - specifies the link’s creation order position.
+! corder_valid - indicates whether the value in corder is valid.
+! link_type - specifies the link class:
+! H5L_TYPE_HARD_F - Hard link
+! H5L_TYPE_SOFT_F - Soft link
+! H5L_TYPE_EXTERNAL_F - External link
+! H5L_TYPE_ERROR_ F - Error
+! address - If the link is a hard link, address specifies the file address that the link points to
+! val_size - If the link is a symbolic link, val_size will be the length of the link value, e.g.,
+! the length of the name of the pointed-to object with a null terminator.
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! OPTIONAL PARAMETERS
+! lapl_id - Link access property list
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! February 29, 2008
+!
+! HISTORY
! Changed the link_type names to match those in C (bug 1720) from,
! H5L_LINK_HARD_F, H5L_LINK_SOFT_F,H5L_LINK_EXTERNAL_F,H5L_LINK_ERROR_F
! to
! H5L_TYPE_HARD_F, H5L_TYPE_SOFT_F,H5L_TYPE_EXTERNAL_F,H5L_TYPE_ERROR_F
! MSB January 8, 2010.
!
-!----------------------------------------------------------------------
-
+! SOURCE
SUBROUTINE h5lget_info_f(link_loc_id, link_name, &
cset, corder, f_corder_valid, link_type, address, val_size, &
hdferr, lapl_id)
@@ -609,7 +613,7 @@ CONTAINS
INTEGER(HID_T), INTENT(IN) :: link_loc_id ! File or group identifier.
CHARACTER(LEN=*), INTENT(IN) :: link_name ! Name of the link for which information is being sought
-! Outputs: NOTE: In C these are contained in the structure H5L_info_t
+! OUTPUTS NOTE: In C these are contained in the structure H5L_info_t
INTEGER, INTENT(OUT) :: cset ! Indicates the character set used for the link’s name.
INTEGER, INTENT(OUT) :: corder ! Specifies the link’s creation order position.
LOGICAL, INTENT(OUT) :: f_corder_valid ! Indicates whether the value in corder is valid.
@@ -618,19 +622,17 @@ CONTAINS
! H5L_TYPE_SOFT_F - Soft link
! H5L_TYPE_EXTERNAL_F - External link
! H5L_TYPE_ERROR _F - Error
- INTEGER(HADDR_T), INTENT(OUT) :: address ! If the link is a hard link, address specifies the file address that the link points to
- INTEGER(SIZE_T), INTENT(OUT) :: val_size ! If the link is a symbolic link, val_size will be the length of the link value, e.g.,
- ! the length of the name of the pointed-to object with a null terminator.
+ INTEGER(HADDR_T), INTENT(OUT) :: address ! If the link is a hard link, address specifies the file address that the link points to
+ INTEGER(SIZE_T), INTENT(OUT) :: val_size ! If the link is a symbolic link, val_size will be the length of the link value, e.g.,
+ ! the length of the name of the pointed-to object with a null terminator.
INTEGER, INTENT(OUT) :: hdferr ! Error code:
! 0 on success and -1 on failure
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
-
+!*****
INTEGER(SIZE_T) :: link_namelen
INTEGER(HID_T) :: lapl_id_default
INTEGER :: corder_valid
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5lget_info_c(link_loc_id, link_name, link_namelen, &
cset, corder, corder_valid, link_type, address, val_size, &
@@ -668,46 +670,51 @@ CONTAINS
END SUBROUTINE h5lget_info_f
-!----------------------------------------------------------------------
-! Name: h5lget_info_by_idx_f
-!
-! Purpose: Retrieves metadata for a link in a group, according to the order within a field or index.
-!
-! Inputs:
-! loc_id - File or group identifier specifying location of subject group
-! group_name - Name of subject group
-! index_field - Index or field which determines the order
-! order - Order within field or index
-! n - Link for which to retrieve information
-!
-! Outputs: NOTE: In C these are defined as a structure: H5L_info_t
-! corder_valid - indicates whether the creation order data is valid for this attribute
-! corder - is a positive integer containing the creation order of the attribute
-! cset - indicates the character set used for the attribute’s name
-! address - If the link is a hard link, address specifies the file address that the link points to
-! val_size - If the link is a symbolic link, val_size will be the length of the link value, e.g.,
-! the length of the name of the pointed-to object with a null terminator.
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! lapl_id - Link access property list
-!
-! Programmer: M.S. Breitenfeld
-! February 29, 2008
-!
-! Modifications:
+!
+!****s* H5L/h5lget_info_by_idx_f
+!
+! NAME
+! h5lget_info_by_idx_f
+!
+! PURPOSE
+! Retrieves metadata for a link in a group, according to the order within a field or index.
+!
+! INPUTS
+! loc_id - File or group identifier specifying location of subject group
+! group_name - Name of subject group
+! index_field - Index or field which determines the order
+! order - Order within field or index
+! n - Link for which to retrieve information
+!
+! OUTPUTS
+! NOTE: In C these are defined as a structure: H5L_info_t
+! corder_valid - Indicates whether the creation order data is valid for this attribute
+! corder - Is a positive integer containing the creation order of the attribute
+! cset - Indicates the character set used for the attribute’s name
+! address - If the link is a hard link, address specifies the file address that the link points to
+! val_size - If the link is a symbolic link, val_size will be the length of the link value, e.g.,
+! the length of the name of the pointed-to object with a null terminator.
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! OPTIONAL PARAMETERS
+! lapl_id - Link access property list
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! February 29, 2008
+!
+! HISTORY
! Changed the link_type names to match those in C (bug 1720) from,
! H5L_LINK_HARD_F, H5L_LINK_SOFT_F,H5L_LINK_EXTERNAL_F,H5L_LINK_ERROR_F
! to
! H5L_TYPE_HARD_F, H5L_TYPE_SOFT_F,H5L_TYPE_EXTERNAL_F,H5L_TYPE_ERROR_F
-! MSB January 8, 2010.
+! MSB January 8, 2010.
!
-!----------------------------------------------------------------------
+! SOURCE
SUBROUTINE h5lget_info_by_idx_f(loc_id, group_name, index_field, order, n, &
link_type, f_corder_valid, corder, cset, address, val_size, hdferr, lapl_id)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier specifying location of subject group
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier specifying location of subject group
CHARACTER(LEN=*), INTENT(IN) :: group_name ! Name of subject group
INTEGER, INTENT(IN) :: index_field ! Index or field which determines the order
! H5_INDEX_UNKNOWN_F - Unknown index type
@@ -725,15 +732,16 @@ CONTAINS
! H5L_TYPE_SOFT_F - Soft link
! H5L_TYPE_EXTERNAL_F - External link
! H5L_TYPE_ERROR _F - Error
- LOGICAL, INTENT(OUT) :: f_corder_valid ! Indicates whether the creation order data is valid for this attribute
- INTEGER, INTENT(OUT) :: corder ! Is a positive integer containing the creation order of the attribute
- INTEGER, INTENT(OUT) :: cset ! Indicates the character set used for the attribute’s name
+ LOGICAL, INTENT(OUT) :: f_corder_valid ! Indicates whether the creation order data is valid for this attribute
+ INTEGER, INTENT(OUT) :: corder ! Is a positive integer containing the creation order of the attribute
+ INTEGER, INTENT(OUT) :: cset ! Indicates the character set used for the attribute’s name
INTEGER(HADDR_T), INTENT(OUT) :: address ! If the link is a hard link, address specifies the file address that the link points to
- INTEGER(SIZE_T), INTENT(OUT) :: val_size ! If the link is a symbolic link, val_size will be the length of the link value, e.g.,
- ! the length of the name of the pointed-to object with a null terminator.
+ INTEGER(SIZE_T), INTENT(OUT) :: val_size ! If the link is a symbolic link, val_size will be the length of the link value, e.g.,
+ ! the length of the name of the pointed-to object with a null terminator.
INTEGER, INTENT(OUT) :: hdferr ! Error code:
! 0 on success and -1 on failure
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
+!*****
INTEGER :: corder_valid
INTEGER(SIZE_T) :: group_namelen
INTEGER(HID_T) :: lapl_id_default
@@ -755,7 +763,7 @@ CONTAINS
INTEGER, INTENT(IN) :: order
INTEGER(HSIZE_T), INTENT(IN) :: n
INTEGER, INTENT(OUT) :: link_type
- INTEGER :: corder_valid
+ INTEGER :: corder_valid
INTEGER, INTENT(OUT) :: corder
INTEGER, INTENT(OUT) :: cset
INTEGER(HADDR_T), INTENT(OUT) :: address
@@ -777,29 +785,30 @@ CONTAINS
END SUBROUTINE h5lget_info_by_idx_f
-!----------------------------------------------------------------------
-! Name: h5lis_registered_f
!
-! Purpose: Determines whether a class of user-defined links is registered.
+!****s* H5L/h5lis_registered_f
!
-! Inputs:
-! link_cls_id - User-defined link class identifier
+! NAME
+! h5lis_registered_f
!
-! Outputs:
-! registered - .TRUE. - if the link class has been registered
-! .FALSE. - if it is unregistered
-! hdferr - Error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! None
+! PURPOSE
+! Determines whether a class of user-defined links is registered.
!
-! Programmer: M.S. Breitenfeld
-! February 29, 2008
+! INPUTS
+! link_cls_id - User-defined link class identifier
!
-! Modifications: N/A
+! OUTPUTS
+! registered - .TRUE. - if the link class has been registered
+! .FALSE. - if it is unregistered
+! hdferr - Error code
+! Success: 0
+! Failure: -1
!
-!----------------------------------------------------------------------
+! AUTHOR
+! M. Scot Breitenfeld
+! February 29, 2008
+!
+! SOURCE
SUBROUTINE h5lis_registered_f(link_cls_id, registered, hdferr)
IMPLICIT NONE
INTEGER, INTENT(IN) :: link_cls_id ! User-defined link class identifier
@@ -807,9 +816,7 @@ CONTAINS
! .FALSE. - if it is unregistered
INTEGER, INTENT(OUT) :: hdferr ! Error code:
! 0 on success and -1 on failure
-!
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5lis_registered_c(link_cls_id)
USE H5GLOBAL
@@ -830,31 +837,34 @@ CONTAINS
END SUBROUTINE h5lis_registered_f
-!----------------------------------------------------------------------
-! Name: h5lmove_f
!
-! Purpose: Renames a link within an HDF5 file.
+!****s* H5L/h5lmove_f
+!
+! NAME
+! h5lmove_f
+!
+! PURPOSE
+! Renames a link within an HDF5 file.
!
-! Inputs:
-! src_loc_id - Original file or group identifier.
-! src_name - Original link name.
-! dest_loc_id - Destination file or group identifier.
-! dest_name - NEW link name.
+! INPUTS
+! src_loc_id - Original file or group identifier.
+! src_name - Original link name.
+! dest_loc_id - Destination file or group identifier.
+! dest_name - NEW link name.
!
-! Outputs:
-! hdferr - Error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! lcpl_id - Link creation property list identifier to be associated WITH the NEW link.
-! lapl_id - Link access property list identifier to be associated WITH the NEW link.
+! OUTPUTS
+! hdferr - Error code:
+! 0 on success and -1 on failure
!
-! Programmer: M.S. Breitenfeld
-! March 3, 2008
+! OPTIONAL PARAMETERS
+! lcpl_id - Link creation property list identifier to be associated WITH the NEW link.
+! lapl_id - Link access property list identifier to be associated WITH the NEW link.
!
-! Modifications: N/A
+! AUTHOR
+! M. Scot Breitenfeld
+! March 3, 2008
!
-!----------------------------------------------------------------------
+! SOURCE
SUBROUTINE h5lmove_f(src_loc_id, src_name, dest_loc_id, dest_name, hdferr, lcpl_id, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: src_loc_id ! Original file or group identifier.
@@ -867,16 +877,13 @@ CONTAINS
! to be associated WITH the NEW link.
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list identifier
! to be associated WITH the NEW link.
-
+!*****
INTEGER(SIZE_T) :: src_namelen
INTEGER(SIZE_T) :: dest_namelen
INTEGER(HID_T) :: lcpl_id_default
INTEGER(HID_T) :: lapl_id_default
-!
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5lmove_c(src_loc_id, src_name, src_namelen, dest_loc_id, &
dest_name, dest_namelen, lcpl_id_default, lapl_id_default)
@@ -886,6 +893,7 @@ CONTAINS
!DEC$ENDIF
!DEC$ATTRIBUTES reference :: src_name, dest_name
INTEGER(HID_T), INTENT(IN) :: src_loc_id
+
CHARACTER(LEN=*), INTENT(IN) :: src_name
INTEGER(SIZE_T) :: src_namelen
INTEGER(HID_T), INTENT(IN) :: dest_loc_id
@@ -911,34 +919,35 @@ CONTAINS
END SUBROUTINE h5lmove_f
-!----------------------------------------------------------------------
-! Name: h5lget_name_by_idx_f
!
-! Purpose: Retrieves name of the nth link in a group, according to the order within a specified field or index.
+!****s* H5L/h5lget_name_by_idx_f
+!
+! NAME
+! h5lget_name_by_idx_f
!
-! Inputs:
-! loc_id - File or group identifier specifying location of subject group
-! group_name - Name of subject group
-! index_field - Index or field which determines the order
-! order - Order within field or index
-! n - Link for which to retrieve information
+! PURPOSE
+! Retrieves name of the nth link in a group, according to the order within a specified field or index.
!
-! Outputs:
-! name - Buffer in which link value is returned
-! hdferr - error code
-! Success: 0
-! Failure: -1
+! INPUTS
+! loc_id - File or group identifier specifying location of subject group
+! group_name - Name of subject group
+! index_field - Index or field which determines the order
+! order - Order within field or index
+! n - Link for which to retrieve information
!
-! Optional parameters:
-! lapl_id - List access property list identifier.
-! size - Maximum number of characters of link value to be returned.
+! OUTPUTS
+! name - Buffer in which link value is returned
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Programmer: M. S. Breitenfeld
-! March 10, 2008
+! OPTIONAL PARAMETERS
+! lapl_id - List access property list identifier.
+! size - Maximum number of characters of link value to be returned.
!
-! Modifications: N/A
+! AUTHOR
+! M. Scot Breitenfeld
+! March 10, 2008
!
-!----------------------------------------------------------------------
+! SOURCE
SUBROUTINE h5lget_name_by_idx_f(loc_id, group_name, index_field, order, n, &
name, hdferr, size, lapl_id)
IMPLICIT NONE
@@ -958,16 +967,13 @@ CONTAINS
CHARACTER(LEN=*), INTENT(OUT) :: name ! Buffer in which link value is returned
INTEGER, INTENT(OUT) :: hdferr ! Error code:
! 0 on success and -1 on failure
-
+!*****
INTEGER(SIZE_T) :: group_namelen
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
INTEGER(HID_T) :: lapl_id_default
INTEGER(SIZE_T), OPTIONAL, INTENT(OUT) :: size ! Indicates the size, in the number of characters, of the link
INTEGER(SIZE_T) :: size_default
-
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5lget_name_by_idx_c(loc_id, group_name, group_namelen, index_field, order, n, &
size_default, name, lapl_id_default)
@@ -977,6 +983,7 @@ CONTAINS
!DEC$ENDIF
!DEC$ATTRIBUTES reference :: group_name, name
INTEGER(HID_T), INTENT(IN) :: loc_id
+
CHARACTER(LEN=*), INTENT(IN) :: group_name
INTEGER(SIZE_T) :: group_namelen
INTEGER, INTENT(IN) :: index_field
@@ -1004,24 +1011,27 @@ CONTAINS
END SUBROUTINE h5lget_name_by_idx_f
-! HAS PROBLEM WITH void pointer in C
-
-!!$!----------------------------------------------------------------------
-!!$! Name: h5lget_val_by_idx_f
+! HAS PROBLEM WITH void pointer in C
!!$!
-!!$! Purpose: Returns the link value of a link, according to the order of
+!!$!****s* H5L/
+!!$!
+!!$! NAME
+!!$! h5lget_val_by_idx_f
+!!$!
+!!$! PURPOSE
+!!$! Returns the link value of a link, according to the order of
!!$! an index. For symbolic links, this is the path to which the
!!$! link points, including the null terminator. For user-defined
!!$! links, it is the link buffer.
-!!$! Inputs:
+!!$! INPUTS
!!$! loc_id - File or group identifier specifying location of subject group
!!$! group_name - Name of subject group
!!$! index_field - Index or field which determines the order
!!$! order - Order within field or index
!!$! n - Link for which to retrieve information
-!!$! size - Maximum number of characters of link value to be returned.
+!!$! size - Maximum number of characters of link value to be returned.
!!$!
-!!$! Outputs: NOTE: In C these are defined as a structure: H5L_info_t
+!!$! OUTPUTS NOTE: In C these are defined as a structure: H5L_info_t
!!$! corder_valid - indicates whether the creation order data is valid for this attribute
!!$! corder - is a positive integer containing the creation order of the attribute
!!$! cset - indicates the character set used for the attribute’s name
@@ -1029,15 +1039,17 @@ CONTAINS
!!$! hdferr - error code
!!$! Success: 0
!!$! Failure: -1
-!!$! Optional parameters:
+!!$! OPTIONAL PARAMETERS
!!$! lapl_id - List access property list identifier.
!!$!
-!!$! Programmer: M. S. Breitenfeld
+!!$! AUTHOR
+!!$! M. Scot Breitenfeld
!!$! March 3, 2008
!!$!
-!!$! Modifications: N/A
+!!$! HISTORY N/A
!!$!
-!!$!----------------------------------------------------------------------
+!!$!
+!!$! SOURCE
!!$ SUBROUTINE h5lget_val_by_idx_f(loc_id, group_name, index_field, order, n, &
!!$ f_corder_valid, corder, cset, data_size, hdferr, lapl_id)
!!$ IMPLICIT NONE
@@ -1065,8 +1077,6 @@ CONTAINS
!!$ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
!!$ INTEGER(HID_T) :: lapl_id_default
!!$
-!!$! MS FORTRAN needs explicit interface for C functions called here.
-!!$!
!!$ INTERFACE
!!$ INTEGER FUNCTION h5lget_val_by_idx_c(loc_id, group_name, group_namelen, index_field, order, n, &
!!$ corder_valid, corder, cset, data_size, lapl_id_default)
@@ -1101,33 +1111,32 @@ CONTAINS
!!$
!!$ END SUBROUTINE h5lget_val_by_idx_f
-
-
-!----------------------------------------------------------------------
-! Name: h5lget_val_f
-!
-! Purpose: Returns the value of a symbolic link.
-!
-! Inputs:
-! link_loc_id - File or group identifier.
-! link_name - Link whose value is to be returned.
-! size - Maximum number of characters of link value to be returned.
-!
-! Outputs:
-! linkval_buff - The buffer to hold the returned link value.
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! lapl_id - List access property list identifier.
-!
-! Programmer: M. S. Breitenfeld
-! March 3, 2008
-!
-! Modifications: N/A
-!
-!----------------------------------------------------------------------
-
+!!$!
+!!$!****s* H5L/h5lget_val_f
+!!$!
+!!$! NAME
+!!$! h5lget_val_f
+!!$!
+!!$! PURPOSE
+!!$! Returns the value of a symbolic link.
+!!$!
+!!$! INPUTS
+!!$! link_loc_id - File or group identifier.
+!!$! link_name - Link whose value is to be returned.
+!!$! size - Maximum number of characters of link value to be returned.
+!!$!
+!!$! OUTPUTS
+!!$! linkval_buff - The buffer to hold the returned link value.
+!!$! hdferr - error code
+!!$! Success: 0
+!!$! Failure: -1
+!!$! OPTIONAL PARAMETERS
+!!$! lapl_id - List access property list identifier.
+!!$!
+!!$! AUTHOR
+!!$! M. Scot Breitenfeld
+!!$! March 3, 2008
+!!$! SOURCE
!!$ SUBROUTINE h5lget_val_f(link_loc_id, link_name, size, linkval_buff, &
!!$ hdferr, lapl_id)
!!$ IMPLICIT NONE
@@ -1179,37 +1188,41 @@ CONTAINS
!!$
!!$ END SUBROUTINE h5lget_val_f
-
-
-!----------------------------------------------------------------------
-! Name: H5Lregistered_f
-!
-! Purpose: Registers user-defined link class or changes behavior of existing class.
-!
-! Inputs: NOTE: In C the following represents struct H5L_class_t:
-! version - Version number of this struct
-! class_id - Link class identifier
-! comment - Comment for debugging
-! create_func - Callback during link creation
-! move_func - Callback after moving link
-! copy_func - Callback after copying link
-! trav_func - The main traversal function
-! del_func - Callback for link deletion
-! query_func - Callback for queries
-!
-! Outputs:
-! hdferr - Error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! None
-!
-! Programmer: M.S. Breitenfeld
-! February 29, 2008
-!
-! Modifications: N/A
-!
-!----------------------------------------------------------------------
+!!$!
+!!$!****s* H5L/H5Lregistered_f
+!!$!
+!!$! NAME
+!!$! H5Lregistered_f
+!!$!
+!!$! PURPOSE
+!!$! Registers user-defined link class or changes behavior of existing class.
+!!$!
+!!$! INPUTS NOTE: In C the following represents struct H5L_class_t:
+!!$! version - Version number of this struct
+!!$! class_id - Link class identifier
+!!$! comment - Comment for debugging
+!!$! create_func - Callback during link creation
+!!$! move_func - Callback after moving link
+!!$! copy_func - Callback after copying link
+!!$! trav_func - The main traversal function
+!!$! del_func - Callback for link deletion
+!!$! query_func - Callback for queries
+!!$!
+!!$! OUTPUTS
+!!$! hdferr - Error code
+!!$! Success: 0
+!!$! Failure: -1
+!!$! OPTIONAL PARAMETERS
+!!$! None
+!!$!
+!!$! AUTHOR
+!!$! M. Scot Breitenfeld
+!!$! February 29, 2008
+!!$!
+!!$! HISTORY N/A
+!!$!
+!!$!
+!!$! SOURCE
!!$ SUBROUTINE H5Lregistered_f(version, class_id, comment, create_func, &
!!$ move_func, copy_func, trav_func, del_func, query_func, hdferr)
!!$ IMPLICIT NONE
@@ -1232,9 +1245,6 @@ CONTAINS
!!$ INTEGER :: del_func_len
!!$ INTEGER :: query_func_len
!!$
-!!$!
-!!$! MS FORTRAN needs explicit interface for C functions called here.
-!!$!
!!$ INTERFACE
!!$ INTEGER FUNCTION H5Lregistered_c(version, class_id, comment, &
!!$ create_func, create_func_len, &
diff --git a/fortran/src/H5Lff_F03.f90 b/fortran/src/H5Lff_F03.f90
new file mode 100644
index 0000000..360dc93
--- /dev/null
+++ b/fortran/src/H5Lff_F03.f90
@@ -0,0 +1,225 @@
+!****h* ROBODoc/H5L (F03)
+!
+! NAME
+! H5L_PROVISIONAL
+!
+! FILE
+! src/fortran/src/H5Lff_F03.f90
+!
+! PURPOSE
+!
+! This file contains Fortran 90 and Fortran 2003 interfaces for H5L functions.
+! It contains the same functions as H5Lff_DEPRECIATE.f90 but includes the
+! Fortran 2003 functions and the interface listings. This file will be compiled
+! instead of H5Lff_DEPRECIATE.f90 if Fortran 2003 functions are enabled.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! NOTES
+! *** IMPORTANT ***
+! If you add a new H5A function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
+!
+!*****
+
+MODULE H5L_PROVISIONAL
+
+ USE H5GLOBAL
+
+CONTAINS
+
+!****s* H5L (F03)/h5literate_f
+!
+! NAME
+! h5literate_f
+!
+! PURPOSE
+! Iterates through links in a group.
+!
+! INPUTS
+! group_id - Identifier specifying subject group
+! index_type - Type of index which determines the order
+! order - Order within index
+! idx - Iteration position at which to start
+! op - Callback function passing data regarding the link to the calling application
+! op_data - User-defined pointer to data required by the application for its processing of the link
+!
+! OUTPUTS
+! idx - Position at which an interrupted iteration may be restarted
+! hdferr - Error code:
+! Success: 0
+! Failure: -1
+! AUTHOR
+! M. Scot Breitenfeld
+! July 8, 2008
+!
+! SOURCE
+ SUBROUTINE h5literate_f(group_id, index_type, order, idx, op, op_data, return_value, hdferr)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: group_id ! Identifier specifying subject group
+ INTEGER, INTENT(IN) :: index_type ! Type of index which determines the order:
+ ! H5_INDEX_NAME_F - Alpha-numeric index on name
+ ! H5_INDEX_CRT_ORDER_F - Index on creation order
+ INTEGER, INTENT(IN) :: order ! Order within index:
+ ! H5_ITER_INC_F - Increasing order
+ ! H5_ITER_DEC_F - Decreasing order
+ ! H5_ITER_NATIVE_F - Fastest available order
+ INTEGER(HSIZE_T), INTENT(INOUT) :: idx ! IN : Iteration position at which to start
+ ! OUT: Position at which an interrupted iteration may be restarted
+
+ TYPE(C_FUNPTR):: op ! Callback function passing data regarding the link to the calling application
+ TYPE(C_PTR) :: op_data ! User-defined pointer to data required by the application for its processing of the link
+
+ INTEGER, INTENT(OUT) :: return_value ! Success: The return value of the first operator that
+ ! returns non-zero, or zero if all members were
+ ! processed with no operator returning non-zero.
+
+ ! Failure: Negative if something goes wrong within the
+ ! library, or the negative value returned by one
+ ! of the operators.
+
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5literate_c(group_id, index_type, order, idx, op, op_data)
+ USE ISO_C_BINDING
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LITERATE_C'::h5literate_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: group_id
+ INTEGER, INTENT(IN) :: index_type
+ INTEGER, INTENT(IN) :: order
+ INTEGER(HSIZE_T), INTENT(INOUT) :: idx
+ TYPE(C_FUNPTR), VALUE :: op
+ TYPE(C_PTR), VALUE :: op_data
+ END FUNCTION h5literate_c
+ END INTERFACE
+
+ return_value = h5literate_c(group_id, index_type, order, idx, op, op_data)
+
+ IF(return_value.GE.0)THEN
+ hdferr = 0
+ ELSE
+ hdferr = -1
+ END IF
+
+ END SUBROUTINE h5literate_f
+
+!****s* H5L (F03)/h5literate_by_name_f
+!
+! NAME
+! h5literate_by_name_f
+!
+! PURPOSE
+! Iterates through links in a group.
+!
+! INPUTS
+! loc_id - File or group identifier specifying location of subject group
+! group_name - Name of subject group
+! index_type - Type of index which determines the order
+! order - Order within index
+! idx - Iteration position at which to start
+! op - Callback function passing data regarding the link to the calling application
+! op_data - User-defined pointer to data required by the application for its processing of the link
+!
+! OUTPUTS
+! idx - Position at which an interrupted iteration may be restarted
+! hdferr - Error code:
+! Success: 0
+! Failure: -1
+! OPTIONAL PARAMETERS
+! lapl_id - Link access property list
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! Augest 18, 2008
+!
+! SOURCE
+ SUBROUTINE h5literate_by_name_f(loc_id, group_name, index_type, order, idx, op, op_data, return_value, hdferr, lapl_id)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifier specifying subject group
+ CHARACTER(LEN=*) :: group_name ! Name of subject group
+ INTEGER, INTENT(IN) :: index_type ! Type of index which determines the order:
+ ! H5_INDEX_NAME_F - Alpha-numeric index on name
+ ! H5_INDEX_CRT_ORDER_F - Index on creation order
+ INTEGER, INTENT(IN) :: order ! Order within index:
+ ! H5_ITER_INC_F - Increasing order
+ ! H5_ITER_DEC_F - Decreasing order
+ ! H5_ITER_NATIVE_F - Fastest available order
+ INTEGER(HSIZE_T), INTENT(INOUT) :: idx ! IN : Iteration position at which to start
+ ! OUT: Position at which an interrupted iteration may be restarted
+
+ TYPE(C_FUNPTR):: op ! Callback function passing data regarding the link to the calling application
+ TYPE(C_PTR) :: op_data ! User-defined pointer to data required by the application for its processing of the link
+
+ INTEGER, INTENT(OUT) :: return_value ! Success: The return value of the first operator that
+ ! returns non-zero, or zero if all members were
+ ! processed with no operator returning non-zero.
+
+ ! Failure: Negative if something goes wrong within the
+ ! library, or the negative value returned by one
+ ! of the operators.
+
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
+
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
+!*****
+ INTEGER(HID_T) :: lapl_id_default
+ INTEGER(SIZE_T) :: namelen
+
+ INTERFACE
+ INTEGER FUNCTION h5literate_by_name_c(loc_id, name, namelen, index_type, order, idx, op, op_data, lapl_id_default)
+ USE ISO_C_BINDING
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LITERATE_BY_NAME_C'::h5literate_by_name_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*) :: name
+ INTEGER(SIZE_T) :: namelen
+ INTEGER, INTENT(IN) :: index_type
+ INTEGER, INTENT(IN) :: order
+ INTEGER(HSIZE_T), INTENT(INOUT) :: idx
+ TYPE(C_FUNPTR), VALUE :: op
+ TYPE(C_PTR), VALUE :: op_data
+ INTEGER(HID_T) :: lapl_id_default
+ END FUNCTION
+! h5literate_by_name_c
+ END INTERFACE
+
+ namelen = LEN(group_name)
+
+ lapl_id_default = H5P_DEFAULT_F
+ IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
+
+ return_value = h5literate_by_name_c(loc_id, group_name, namelen, index_type, order, idx, op, op_data,lapl_id_default)
+
+ IF(return_value.GE.0)THEN
+ hdferr = 0
+ ELSE
+ hdferr = -1
+ END IF
+
+ END SUBROUTINE h5literate_by_name_f
+
+END MODULE H5L_PROVISIONAL
diff --git a/fortran/src/H5Lff_F90.f90 b/fortran/src/H5Lff_F90.f90
new file mode 100644
index 0000000..c802af7
--- /dev/null
+++ b/fortran/src/H5Lff_F90.f90
@@ -0,0 +1,39 @@
+!****h* ROBODoc/H5L (F90)
+!
+! NAME
+! MODULE H5L_PROVISIONAL
+!
+! PURPOSE
+! This file contains Fortran 90 interfaces for H5L functions. It contains
+! the same functions as H5Lff_F03.f90 but excludes the Fortran 2003 functions
+! and the interface listings. This file will be compiled instead of H5Lff_F03.f90
+! if Fortran 2003 functions are not enabled.
+!
+! NOTE
+! Currently contains no functions.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! *** IMPORTANT ***
+! If you add a new H5D function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
+!*****
+
+MODULE H5L_PROVISIONAL
+
+END MODULE H5L_PROVISIONAL
diff --git a/fortran/src/H5Of.c b/fortran/src/H5Of.c
index 56cbfeb..a23f2a7 100644
--- a/fortran/src/H5Of.c
+++ b/fortran/src/H5Of.c
@@ -1,4 +1,9 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+/****h* H5Of/H5Of
+ * PURPOSE
+ * This file contains C stubs for H5O Fortran APIs
+ *
+ * COPYRIGHT
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
@@ -11,32 +16,37 @@
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* This files contains C stubs for H5O Fortran APIs */
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ ******
+*/
#include "H5f90.h"
#include "H5Eprivate.h"
-/*----------------------------------------------------------------------------
- * Name: h5olink_c
- * Purpose: Calls H5Olink
- * Inputs:
+/****if* H5Of/h5olink_c
+ * NAME
+ * h5olink_c
+ * PURPOSE
+ * Calls H5Olink
+ * INPUTS
* object_id - Object to be linked.
* new_loc_id - File or group identifier specifying location at which object is to be linked.
* name - Name of link to be created, relative to new_loc_id.
* namelen - Length of buffer for link to be created.
* lcpl_id - Link creation property list identifier.
* lapl_id - Link access property list identifier.
- * Outputs:
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * April 21, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * April 21, 2008
+ * SOURCE
+*/
int_f
nh5olink_c (hid_t_f *object_id, hid_t_f *new_loc_id, _fcd name, size_t_f *namelen,
hid_t_f *lcpl_id, hid_t_f *lapl_id)
+/******/
{
char *c_name = NULL; /* Buffer to hold C string */
int_f ret_value = 0; /* Return value */
@@ -60,21 +70,28 @@ nh5olink_c (hid_t_f *object_id, hid_t_f *new_loc_id, _fcd name, size_t_f *namele
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5oopen_c
- * Purpose: Calls H5Oopen
- * Inputs: loc_id - File or group identifier
- * name - Attribute access property list
- * namelen - Size of name
- * lapl_id - Link access property list
- * Outputs: obj_id - Dataset identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * April 18, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+/****if* H5Of/h5oopen_c
+ * NAME
+ * h5oopen_c
+ * PURPOSE
+ * Calls H5Oopen
+ * INPUTS
+ * loc_id - File or group identifier
+ * name - Attribute access property list
+ * namelen - Size of name
+ * lapl_id - Link access property list
+ * OUTPUTS
+ * obj_id - Dataset identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * April 18, 2008
+ * SOURCE
+*/
int_f
nh5oopen_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, hid_t_f *obj_id)
+/******/
{
char *c_name = NULL; /* Buffer to hold C string */
int_f ret_value = 0; /* Return value */
@@ -96,20 +113,95 @@ nh5oopen_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, hid
HDfree(c_name);
return ret_value;
}
+/****if* H5Of/h5oclose_c
+ * NAME
+ * h5oclose_c
+ * PURPOSE
+ * Call H5Oclose
+ * INPUTS
+ * object_id - Object identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * December 17, 2008
+ * SOURCE
+*/
+int_f
+nh5oclose_c ( hid_t_f *object_id )
+/******/
+{
+ int_f ret_value=0; /* Return value */
+
+ if (H5Oclose((hid_t)*object_id) < 0)
+ HGOTO_DONE(FAIL);
+
+ done:
+ return ret_value;
+}
+
+/****if* H5Of/h5ovisit_c
+ * NAME
+ * h5ovisit_c
+ * PURPOSE
+ * Calls H5Ovisit
+ * INPUTS
+ * object_id - Identifier specifying subject group
+ * index_type - Type of index which determines the order
+ * order - Order within index
+ * idx - Iteration position at which to start
+ * op - Callback function passing data regarding the link to the calling application
+ * op_data - User-defined pointer to data required by the application for its processing of the link
+ *
+ * OUTPUTS
+ * idx - Position at which an interrupted iteration may be restarted
+ *
+ * RETURNS
+ * >0 on success, 0< on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * November 19, 2008
+ * SOURCE
+*/
+int_f
+nh5ovisit_c(hid_t_f *group_id, int_f *index_type, int_f *order, H5O_iterate_t op, void *op_data )
+/******/
+{
+ int_f ret_value = -1; /* Return value */
+ herr_t func_ret_value; /* H5Linterate return value */
+
+ /*
+ * Call H5Ovisit
+ */
+ func_ret_value = H5Ovisit( (hid_t)*group_id, (H5_index_t)*index_type, (H5_iter_order_t)*order, op, op_data);
+
+ ret_value = (int_f)func_ret_value;
+
+ return ret_value;
+}
-/*----------------------------------------------------------------------------
- * Name: h5oopen_by_addr_c
- * Purpose: Calls H5open_by_addr
- * Inputs: loc_id - File or group identifier
- * addr - Object’s address in the file
- * Outputs: obj_id - Dataset identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: M. Scot Breitenfeld
- * September 14, 2009
- * Modifications:
- *---------------------------------------------------------------------------*/
+/****if* H5Of/h5oopen_by_addr_c
+ * NAME
+ * h5oopen_by_addr_c
+ * PURPOSE
+ * Calls H5open_by_addr
+ * INPUTS
+ * loc_id - File or group identifier
+ * addr - Object’s address in the file
+ *
+ * OUTPUTS
+ * obj_id - Dataset identifier
+ *
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * September 14, 2009
+ * SOURCE
+*/
int_f
nh5oopen_by_addr_c (hid_t_f *loc_id, haddr_t_f *addr, hid_t_f *obj_id)
+/******/
{
int_f ret_value = 0; /* Return value */
@@ -122,3 +214,76 @@ nh5oopen_by_addr_c (hid_t_f *loc_id, haddr_t_f *addr, hid_t_f *obj_id)
done:
return ret_value;
}
+
+/* ***if* H5Of/H5Oget_info_by_name_c
+ * NAME
+ * H5Oget_info_by_name_c
+ * PURPOSE
+ * Calls H5Oget_info_by_name
+ * INPUTS
+ * loc_id - File or group identifier specifying location of group in which object is located.
+ * name - Name of group, relative to loc_id.
+ * namelen - Name length.
+ * lapl_id - Link access property list.
+ * OUTPUTS
+ * corder_valid - Indicates whether the the creation order data is valid for this attribute.
+ * corder - Is a positive integer containing the creation order of the attribute.
+ * cset - Indicates the character set used for the attribute’s name.
+ * data_size - indicates the size, in the number of characters, of the attribute.
+ *
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * December 1, 2008
+ * SOURCE
+*/
+int_f
+nh5oget_info_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id,
+ H5O_info_t *object_info)
+/******/
+{
+ char *c_name = NULL; /* Buffer to hold C string */
+ int_f ret_value = 0; /* Return value */
+ H5O_info_t Oinfo;
+
+ /*
+ * Convert FORTRAN name to C name
+ */
+ if((c_name = HD5f2cstring(name, (size_t)*namelen)) == NULL)
+ HGOTO_DONE(FAIL);
+
+ /*
+ * Call H5Oinfo_by_name function.
+ */
+ if(H5Oget_info_by_name((hid_t)*loc_id, c_name,
+ &Oinfo, (hid_t)*lapl_id) < 0)
+ HGOTO_DONE(FAIL);
+
+ object_info->fileno = Oinfo.fileno;
+ object_info->addr = Oinfo.addr;
+ object_info->type = Oinfo.type;
+ object_info->rc = Oinfo.rc;
+ object_info->atime = Oinfo.atime;
+ object_info->mtime = Oinfo.mtime;
+ object_info->ctime = Oinfo.ctime;
+ object_info->btime = Oinfo.btime;
+ object_info->num_attrs = Oinfo.num_attrs;
+
+
+/* printf("fileno %d %d\n",object_info->fileno, Oinfo.fileno); */
+/* printf("string %d %d\n",object_info.rc, Oinfo.rc); */
+
+/* printf("atime %lld %lld\n",(long long int)object_info.atime, (long long int)Oinfo.atime); */
+/* printf("atime %lld %lld\n",(long long int)object_info.mtime, (long long int)Oinfo.mtime); */
+/* printf("atime %lld %lld\n",(long long int)object_info.ctime, (long long int)Oinfo.ctime); */
+/* printf("atime %lld %lld\n",(long long int)object_info.btime, (long long int)Oinfo.btime); */
+/* printf("string %f %f\n",object_info.addr, Oinfo.addr); */
+/* printf("num_attrs %d %d\n",object_info.num_attrs, Oinfo.num_attrs); */
+/* printf("num_attrs %f %f\n",object_info.hdr.version, Oinfo.hdr.version); */
+
+
+ done:
+ return ret_value;
+}
+
diff --git a/fortran/src/H5Off.f90 b/fortran/src/H5Off.f90
index af965e2..f29671d 100644
--- a/fortran/src/H5Off.f90
+++ b/fortran/src/H5Off.f90
@@ -1,3 +1,18 @@
+!****h* ROBODoc/H5O
+!
+! NAME
+! MODULE H5O
+!
+! FILE
+! fortran/src/H5Off.f90
+!
+! PURPOSE
+! This file contains Fortran interfaces for H5O functions. It includes
+! all the functions that are independent on whether the Fortran 2003 functions
+! are enabled or disabled.
+!
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,39 +28,43 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! NOTES
+! *** IMPORTANT ***
+! If you add a new H5O function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
!
-! This file contains Fortran90 interfaces for H5O functions.
-!
+!*****
+
MODULE H5O
USE H5GLOBAL
CONTAINS
-!----------------------------------------------------------------------
-! Name: h5olink_f
-!
-! Purpose: Creates a hard link to an object in an HDF5 file.
-!
-! Inputs:
-! object_id - Object to be linked.
-! new_loc_id - File or group identifier specifying location at which object is to be linked.
-! new_link_name - Name of link to be created, relative to new_loc_id.
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! lcpl_id - Link creation property list identifier.
-! lapl_id - Link access property list identifier.
-!
-! Programmer: M.S. Breitenfeld
-! April 21, 2008
-!
-! Modifications: N/A
-!
-!----------------------------------------------------------------------
-
+!****s* H5O/h5olink_f
+!
+! NAME
+! h5olink_f
+!
+! PURPOSE
+! Creates a hard link to an object in an HDF5 file.
+! INPUTS
+! object_id - Object to be linked.
+! new_loc_id - File or group identifier specifying location at which object is to be linked.
+! new_link_name - Name of link to be created, relative to new_loc_id.
+! OUTPUTS
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! OPTIONAL PARAMETERS
+! lcpl_id - Link creation property list identifier.
+! lapl_id - Link access property list identifier.
+! AUTHOR
+! M. Scot Breitenfeld
+! April 21, 2008
+!
+! SOURCE
SUBROUTINE h5olink_f(object_id, new_loc_id, new_link_name, hdferr, lcpl_id, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: object_id ! Object to be linked
@@ -57,6 +76,7 @@ CONTAINS
! Failure: -1
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lcpl_id ! Link creation property list identifier.
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link creation property list identifier.
+!*****
INTEGER(HID_T) :: lapl_id_default
INTEGER(HID_T) :: lcpl_id_default
@@ -91,29 +111,28 @@ CONTAINS
END SUBROUTINE h5olink_f
-!----------------------------------------------------------------------
-! Name: h5oopen_f
-!
-! Purpose: Opens an object in an HDF5 file by location identifier and path name.O
-!
-! Inputs:
-! loc_id - File or group identifier
-! name - Path to the object, relative to loc_id.
-! Outputs:
-! obj_id - Object identifier for the opened object
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! lapl_id - Access property list identifier for the link pointing to the object
-!
-! Programmer: M.S. Breitenfeld
-! April 18, 2008
-!
-! Modifications: N/A
-!
-!----------------------------------------------------------------------
-
+!****s* H5O/h5oopen_f
+!
+! NAME
+! h5oopen_f
+! PURPOSE
+! Opens an object in an HDF5 file by location identifier and path name.
+!
+! INPUTS
+! loc_id - File or group identifier
+! name - Path to the object, relative to loc_id.
+! OUTPUTS
+! obj_id - Object identifier for the opened object
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! OPTIONAL PARAMETERS
+! lapl_id - Access property list identifier for the link pointing to the object
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! April 18, 2008
+! SOURCE
SUBROUTINE h5oopen_f(loc_id, name, obj_id, hdferr, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
@@ -123,12 +142,10 @@ CONTAINS
! Success: 0
! Failure: -1
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Attribute access property list
+!*****
INTEGER(HID_T) :: lapl_id_default
-
INTEGER(SIZE_T) :: namelen
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5oopen_c(loc_id, name, namelen, lapl_id_default, obj_id)
USE H5GLOBAL
@@ -152,36 +169,71 @@ CONTAINS
hdferr = h5oopen_c(loc_id, name, namelen, lapl_id_default, obj_id)
END SUBROUTINE h5oopen_f
-
-!----------------------------------------------------------------------
-! Name: h5oopen_by_addr_f
!
-! Purpose: Opens an object using its address within an HDF5 file.
+!****s* H5O/h5oclose_f
+!
+! NAME
+! h5oclose_f
!
-! Inputs:
-! loc_id - File or group identifier
-! addr - Object’s address in the file
-! Outputs:
-! obj_id - Object identifier for the opened object
-! hdferr: - error code
-! Success: 0
-! Failure: -1
+! PURPOSE
+! Closes an object in an HDF5 file.
!
-! Programmer: M. Scot Breitenfeld
-! September 14, 2009
+! INPUTS
+! object_id - Object identifier
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Modifications: N/A
+! AUTHOR
+! M. Scot Breitenfeld
+! December 17, 2008
!
-!----------------------------------------------------------------------
+! SOURCE
+ SUBROUTINE h5oclose_f(object_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: object_id
+ INTEGER, INTENT(OUT) :: hdferr
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5oclose_c(object_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$OBJECTIBUTES C,reference,decorate,alias:'H5OCLOSE_C'::h5oclose_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: object_id
+ END FUNCTION h5oclose_c
+ END INTERFACE
+ hdferr = h5oclose_c(object_id)
+ END SUBROUTINE h5oclose_f
+
+!
+!****s* H5O/h5open_by_addr_f
+! NAME
+! h5oopen_by_addr_f
+!
+! PURPOSE
+! Opens an object using its address within an HDF5 file.
+!
+! INPUTS
+! loc_id - File or group identifier
+! addr - Object’s address in the file
+! OUTPUTS:
+! obj_id - Object identifier for the opened object
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! September 14, 2009
+!
+! SOURCE
SUBROUTINE h5oopen_by_addr_f(loc_id, addr, obj_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
INTEGER(HADDR_T), INTENT(IN) :: addr ! Object’s address in the file
INTEGER(HID_T), INTENT(OUT) :: obj_id ! Object identifier for the opened object
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- ! Success: 0
- ! Failure: -1
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
+!*****
INTERFACE
INTEGER FUNCTION h5oopen_by_addr_c(loc_id, addr, obj_id)
USE H5GLOBAL
@@ -199,3 +251,4 @@ CONTAINS
END SUBROUTINE h5oopen_by_addr_f
END MODULE H5O
+
diff --git a/fortran/src/H5Off_F03.f90 b/fortran/src/H5Off_F03.f90
new file mode 100644
index 0000000..0a72831
--- /dev/null
+++ b/fortran/src/H5Off_F03.f90
@@ -0,0 +1,264 @@
+!****h* ROBODoc/H5O (F03)
+!
+! NAME
+! H5O_PROVISIONAL
+!
+! PURPOSE
+! This file contains Fortran 90 and Fortran 2003 interfaces for H5O functions.
+! It contains the same functions as H5Off_DEPRECIATE.f90 but includes the
+! Fortran 2003 functions and the interface listings. This file will be compiled
+! instead of H5Off_DEPRECIATE.f90 if Fortran 2003 functions are enabled.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! NOTES
+! *** IMPORTANT ***
+! If you add a new H5P function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
+!
+!*****
+
+MODULE H5O_PROVISIONAL
+
+ USE H5GLOBAL
+ USE ISO_C_BINDING
+
+ IMPLICIT NONE
+
+
+ enum, bind(c)
+ enumerator :: H5O_TYPE_UNKNOWN_F = -1
+ enumerator :: H5O_TYPE_GROUP_F, H5O_TYPE_DATASET_F, H5O_TYPE_NAMED_DATATYPE_F, H5O_TYPE_NTYPES_F
+ end enum
+
+
+ TYPE, BIND(C) :: space_t
+ INTEGER(hsize_t) :: total ! Total space for storing object header in file
+ INTEGER(hsize_t) :: meta ! Space within header for object header metadata information
+ INTEGER(hsize_t) :: mesg ! Space within header for actual message information
+ INTEGER(hsize_t) :: free ! Free space within object header
+ END TYPE space_t
+
+ TYPE, BIND(C) :: mesg_t
+ INTEGER(c_int64_t) :: present ! Flags to indicate presence of message type in header
+ INTEGER(c_int64_t) :: shared ! Flags to indicate message type is shared in header
+ END TYPE mesg_t
+
+ TYPE, BIND(C) :: hdr_t
+ INTEGER(c_int) :: version ! Version number of header format in file
+ ! unsigned version
+ INTEGER(c_int) :: nmesgs ! Number of object header messages
+ ! unsigned nmesgs
+ INTEGER(c_int) :: nchunks ! Number of object header chunks
+ ! unsigned nchunks
+ INTEGER(c_int) :: flags ! Object header status flags
+ ! unsigned flags
+ TYPE(space_t) :: space
+ TYPE(mesg_t) :: mesg
+ END TYPE hdr_t
+
+ ! Extra metadata storage for obj & attributes
+ TYPE, BIND(C) :: H5_ih_info_t
+ INTEGER(hsize_t) :: index_size ! btree and/or list
+ INTEGER(hsize_t) :: heap_size
+ END TYPE H5_ih_info_t
+
+ TYPE, BIND(C) :: meta_size_t
+ TYPE(H5_ih_info_t) :: obj ! v1/v2 B-tree & local/fractal heap for groups, B-tree for chunked datasets
+ TYPE(H5_ih_info_t) :: attr ! v2 B-tree & heap for attributes
+ ENDTYPE meta_size_t
+
+
+ TYPE, BIND(C) :: H5O_info_t
+ INTEGER(HADDR_T) :: fileno ! File number that object is located in
+ ! unsigned long
+ INTEGER(HADDR_T) :: addr ! Object address in file
+ INTEGER :: TYPE ! Basic object type (group, dataset, etc.)
+ ! H5O_type_t type
+ INTEGER(c_int) :: rc ! Reference count of object
+ ! unsigned rc
+ INTEGER(c_int) :: atime ! Access time
+ INTEGER(c_int) :: mtime ! Modification time
+ INTEGER(c_int) :: ctime ! Change time
+ INTEGER(c_int) :: btime ! Birth time
+ INTEGER(hsize_t) :: num_attrs ! # of attributes attached to object
+
+ TYPE(hdr_t) :: hdr
+ TYPE(meta_size_t) :: meta_size
+ END TYPE H5O_info_t
+
+CONTAINS
+
+!****s* H5O (F03)/h5ovisit_f
+!
+! NAME
+! h5ovisit_f
+!
+! PURPOSE
+! Recursively visits all objects starting from a specified object.
+!
+! INPUTS
+! group_id - Identifier of the group at which the recursive iteration begins
+! index_type - Type of index; valid values include:
+! H5_INDEX_NAME_F
+! H5_INDEX_CRT_ORDER_F
+! order - Order in which index is traversed; valid values include:
+! H5_ITER_DEC_F
+! H5_ITER_INC_F
+! H5_ITER_NATIVE_F
+! op - Callback function passing data regarding the group to the calling application
+! op_data - User-defined pointer to data required by the application for its processing of the group
+!
+! OUTPUTS
+! idx - returns the return value of the first operator that returns a positive value, or
+! zero if all members were processed with no operator returning non-zero.
+! hdferr - error code:
+! 0 on success and -1 on failure
+! AUTHOR
+! M. Scot Breitenfeld
+! November 19, 2008
+!
+! SOURCE
+ SUBROUTINE h5ovisit_f(group_id, index_type, order, op, op_data, return_value, hdferr)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: group_id
+ INTEGER, INTENT(IN) :: index_type
+ INTEGER, INTENT(IN) :: order
+!!$ INTEGER(HSIZE_T), INTENT(INOUT) :: idx ! IN : Iteration position at which to start
+!!$ ! OUT: Position at which an interrupted iteration may be restarted
+
+ TYPE(C_FUNPTR):: op ! Callback function passing data regarding the link to the calling application
+ TYPE(C_PTR) :: op_data ! User-defined pointer to data required by the application for its processing of the link
+
+ INTEGER, INTENT(OUT) :: return_value ! Success: The return value of the first operator that
+ ! returns non-zero, or zero if all members were
+ ! processed with no operator returning non-zero.
+
+ ! Failure: Negative if something goes wrong within the
+ ! library, or the negative value returned by one
+ ! of the operators.
+
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5ovisit_c(group_id, index_type, order, op, op_data)
+ USE ISO_C_BINDING
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OVISIT_C'::h5ovisit_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: group_id
+ INTEGER, INTENT(IN) :: index_type
+ INTEGER, INTENT(IN) :: order
+ TYPE(C_FUNPTR), VALUE :: op
+ TYPE(C_PTR), VALUE :: op_data
+ END FUNCTION h5ovisit_c
+ END INTERFACE
+
+ return_value = h5ovisit_c(group_id, index_type, order, op, op_data)
+
+ IF(return_value.GE.0)THEN
+ hdferr = 0
+ ELSE
+ hdferr = -1
+ END IF
+
+ END SUBROUTINE h5ovisit_f
+
+
+
+!
+!!$!****s* H5O/h5oget_info_by_name_f
+!
+! NAME
+! h5oget_info_by_name_f
+!
+! PURPOSE
+! Retrieves the metadata for an object, identifying the object by location and relative name.
+!
+! INPUTS
+! loc_id - File or group identifier specifying location of group in which object
+! is located.
+! name - Name of group, relative to loc_id
+!
+! OUTPUTS NOTE: In C it is defined as a structure: H5O_info_t
+! **** NEED TO MAKE THIS DERIVED DATATYPE ****
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! lapl_id - Link access property list
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! December 1, 2008
+!
+! SOURCE
+ SUBROUTINE h5oget_info_by_name_f(loc_id, name, &
+ object_info, hdferr, lapl_id)
+ ! f_corder_valid, corder, cset, data_size, hdferr, lapl_id)
+
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T) , INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ TYPE(C_PTR) :: object_info
+!!$ LOGICAL , INTENT(OUT) :: f_corder_valid
+!!$ INTEGER , INTENT(OUT) :: corder
+!!$ INTEGER , INTENT(OUT) :: cset
+!!$ INTEGER(HSIZE_T), INTENT(OUT) :: data_size
+ INTEGER , INTENT(OUT) :: hdferr
+ INTEGER(HID_T) , INTENT(IN) , OPTIONAL :: lapl_id
+!*****
+ INTEGER :: corder_valid
+ INTEGER(SIZE_T) :: namelen
+ INTEGER(HID_T) :: lapl_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5oget_info_by_name_c(loc_id, name, namelen, lapl_id_default, &
+ object_info)
+ USE H5GLOBAL
+ USE, INTRINSIC :: ISO_C_BINDING
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OGET_INFO_BY_NAME_C'::h5oget_info_by_name_c
+ !DEC$ENDIF
+ INTEGER(HID_T) , INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER(SIZE_T) , INTENT(IN) :: namelen
+ INTEGER(HID_T) , INTENT(IN) :: lapl_id_default
+ TYPE(C_PTR),value :: object_info
+
+ END FUNCTION h5oget_info_by_name_c
+ END INTERFACE
+
+ namelen = LEN(name)
+
+ lapl_id_default = H5P_DEFAULT_F
+ IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
+
+ hdferr = H5Oget_info_by_name_c(loc_id, name, namelen, lapl_id_default, &
+ object_info)
+
+
+!!$ f_corder_valid =.FALSE.
+!!$ IF (corder_valid .EQ. 1) f_corder_valid =.TRUE.
+
+ END SUBROUTINE H5Oget_info_by_name_f
+
+END MODULE H5O_PROVISIONAL
+
diff --git a/fortran/src/H5Off_F90.f90 b/fortran/src/H5Off_F90.f90
new file mode 100644
index 0000000..53553d6
--- /dev/null
+++ b/fortran/src/H5Off_F90.f90
@@ -0,0 +1,39 @@
+!****h* ROBODoc/H5O (F90)
+!
+! NAME
+! MODULE H5O_PROVISIONAL
+!
+! PURPOSE
+! This file contains Fortran 90 interfaces for H5O functions. It contains
+! the same functions as H5Off_F03.f90 but excludes the Fortran 2003 functions
+! and the interface listings. This file will be compiled instead of H5Off_F03.f90
+! if Fortran 2003 functions are not enabled.
+!
+! NOTE
+! Currently contains no functions.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! *** IMPORTANT ***
+! If you add a new H5D function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
+!*****
+
+MODULE H5O_PROVISIONAL
+
+END MODULE H5O_PROVISIONAL
diff --git a/fortran/src/H5Pf.c b/fortran/src/H5Pf.c
index cf5eb7d..6fc8487 100644
--- a/fortran/src/H5Pf.c
+++ b/fortran/src/H5Pf.c
@@ -1,4 +1,9 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+/****h* H5Pf/H5Pf
+ * PURPOSE
+ * This file contains C stubs for H5P Fortran APIs
+ *
+ * COPYRIGHT
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
@@ -11,26 +16,35 @@
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* This files contains C stubs for H5P Fortran APIs */
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ ******
+*/
#include "H5f90.h"
#include "H5Eprivate.h"
-/*----------------------------------------------------------------------------
- * Name: h5pcreate_c
- * Purpose: Call H5Pcreate to create a property list
- * Inputs: cls - property list class identifier
- * Outputs: prp_id - identifier of the created property list
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
- * Wednesday, October 9, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+/****if* H5Pf/h5pcreate_c
+ * NAME
+ * h5pcreate_c
+ * PURPOSE
+ * Call H5Pcreate to create a property list
+ * INPUTS
+ * cls - property list class identifier
+ * OUTPUTS
+ * prp_id - identifier of the created property list
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
+ * Wednesday, October 9, 2002
+ *
+ * SOURCE
+*/
int_f
nh5pcreate_c ( hid_t_f *cls, hid_t_f *prp_id )
+/******/
{
hid_t c_prp_id;
int_f ret_value = 0;
@@ -45,18 +59,25 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pclose_c
- * Purpose: Call H5Pclose to close property lis
- * Inputs: prp_id - identifier of the property list to be closed
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Pf/h5pclose_c
+ * NAME
+ * h5pclose_c
+ * PURPOSE
+ * Call H5Pclose to close property lis
+ * INPUTS
+ * prp_id - identifier of the property list to be closed
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Saturday, August 14, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ *
+ * SOURCE
+*/
int_f
nh5pclose_c ( hid_t_f *prp_id )
+/******/
{
int_f ret_value = 0;
@@ -67,19 +88,26 @@ nh5pclose_c ( hid_t_f *prp_id )
}
-/*----------------------------------------------------------------------------
- * Name: h5pcopy_c
- * Purpose: Call H5Pcopy to copy property list
- * Inputs: prp_id - identifier of the property list to be copied
- * Outputs: new_prp_id - identifier of the new property list
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Pf/h5pcopy_c
+ * NAME
+ * h5pcopy_c
+ * PURPOSE
+ * Call H5Pcopy to copy property list
+ * INPUTS
+ * prp_id - identifier of the property list to be copied
+ * OUTPUTS
+ * new_prp_id - identifier of the new property list
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Saturday, August 14, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
-
+ *
+ * SOURCE
+*/
int_f
nh5pcopy_c ( hid_t_f *prp_id , hid_t_f *new_prp_id)
+/******/
{
hid_t c_new_prp_id;
int_f ret_value = 0;
@@ -94,20 +122,27 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pequal_c
- * Purpose: Call H5Pequal to check if two property lists are equal
- * Inputs: plist1_id - property list identifier
+/****if* H5Pf/h5pequal_c
+ * NAME
+ * h5pequal_c
+ * PURPOSE
+ * Call H5Pequal to check if two property lists are equal
+ * INPUTS
+ * plist1_id - property list identifier
* plist2_id - property list identifier
- * Outputs: c_flag - flag to indicate that lists are eqaul
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * c_flag - flag to indicate that lists are eqaul
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Monday, September 30, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
-
+ *
+ * SOURCE
+*/
int_f
nh5pequal_c ( hid_t_f *plist1_id , hid_t_f *plist2_id, int_f * c_flag)
+/******/
{
htri_t c_c_flag;
int_f ret_value = 0;
@@ -123,25 +158,32 @@ done:
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_class_c
- * Purpose: Call H5Pget_class to determine property list class
- * Inputs: prp_id - identifier of the dataspace
- * Outputs: classtype - class type; possible values are:
+/****if* H5Pf/h5pget_class_c
+ * NAME
+ * h5pget_class_c
+ * PURPOSE
+ * Call H5Pget_class to determine property list class
+ * INPUTS
+ * prp_id - identifier of the dataspace
+ * OUTPUTS
+ * classtype - class type; possible values are:
* H5P_ROOT_F -1
* H5P_FILE_CREATE_F 0
* H5P_FILE_ACCESS_F 1
* H5P_DATASET_CREATE_F 2
* H5P_DATASET_XFER_F 3
* H5P_FILE_MOUNT_F 4
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Saturday, August 14, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5pget_class_c ( hid_t_f *prp_id , int_f *classtype)
+/******/
{
hid_t c_classtype;
int_f ret_value = 0;
@@ -158,20 +200,26 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_preserve_c
- * Purpose: Call H5Pset_preserve to set transfer property for compound
+/****if* H5Pf/h5pset_preserve_c
+ * NAME
+ * h5pset_preserve_c
+ * PURPOSE
+ * Call H5Pset_preserve to set transfer property for compound
* datatype
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* flag - TRUE/FALSE flag
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
- * Thursday, February 17, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
+ * Thursday, February 17, 2000
+ * SOURCE
+*/
int_f
nh5pset_preserve_c ( hid_t_f *prp_id , int_f *flag)
+/******/
{
int ret_value = 0;
hid_t c_prp_id;
@@ -186,20 +234,27 @@ nh5pset_preserve_c ( hid_t_f *prp_id , int_f *flag)
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_preserve_c
- * Purpose: Call H5Pget_preserve to set transfer property for compound
+/****if* H5Pf/h5pget_preserve_c
+ * NAME
+ * h5pget_preserve_c
+ * PURPOSE
+ * Call H5Pget_preserve to set transfer property for compound
* datatype
- * Inputs: prp_id - property list identifier
- * Outputs: flag - TRUE/FALSE flag
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
- * Thursday, February 17, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * INPUTS
+ * prp_id - property list identifier
+ * OUTPUTS
+ * flag - TRUE/FALSE flag
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
+ * Thursday, February 17, 2000
+ * SOURCE
+*/
int_f
nh5pget_preserve_c ( hid_t_f *prp_id , int_f *flag)
+/******/
{
int ret_value = 0;
hid_t c_prp_id;
@@ -212,19 +267,25 @@ nh5pget_preserve_c ( hid_t_f *prp_id , int_f *flag)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_deflate_c
- * Purpose: Call H5Pset_deflate to set deflate level
- * Inputs: prp_id - property list identifier
+/****if* H5Pf/h5pset_deflate_c
+ * NAME
+ * h5pset_deflate_c
+ * PURPOSE
+ * Call H5Pset_deflate to set deflate level
+ * INPUTS
+ * prp_id - property list identifier
* level - level of deflation
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Saturday, August 14, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5pset_deflate_c ( hid_t_f *prp_id , int_f *level)
+/******/
{
int ret_value = 0;
hid_t c_prp_id;
@@ -240,21 +301,27 @@ nh5pset_deflate_c ( hid_t_f *prp_id , int_f *level)
-/*----------------------------------------------------------------------------
- * Name: h5pset_chunk_c
- * Purpose: Call H5Pset_chunk to set the sizes of chunks for a chunked
+/****if* H5Pf/h5pset_chunk_c
+ * NAME
+ * h5pset_chunk_c
+ * PURPOSE
+ * Call H5Pset_chunk to set the sizes of chunks for a chunked
* layout dataset
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* rank - number of dimensions of each chunk
* dims - array of the size of each chunk
- * Returns: 0 on success, -1 on failure
+ * RETURNS
+ * 0 on success, -1 on failure
* Saturday, August 14, 1999
- * Programmer: Elena Pourmal
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * AUTHOR
+ * Elena Pourmal
+ * SOURCE
+*/
int_f
nh5pset_chunk_c ( hid_t_f *prp_id, int_f *rank, hsize_t_f *dims )
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -285,21 +352,27 @@ DONE:
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_chunk_c
- * Purpose: Call H5Pget_chunk to get the sizes of chunks for a chunked
+/****if* H5Pf/h5pget_chunk_c
+ * NAME
+ * h5pget_chunk_c
+ * PURPOSE
+ * Call H5Pget_chunk to get the sizes of chunks for a chunked
* layout dataset for at list max_rank number of dimensions
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* max rank - maximum number of dimensions to return
* dims - array of the size of each chunk
- * Returns: number of chunk's dimnesion on success, -1 on failure
+ * RETURNS
+ * number of chunk's dimnesion on success, -1 on failure
* Saturday, August 14, 1999
- * Programmer: Elena Pourmal
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * AUTHOR
+ * Elena Pourmal
+ * SOURCE
+*/
int_f
nh5pget_chunk_c ( hid_t_f *prp_id, int_f *max_rank, hsize_t_f *dims )
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -327,21 +400,25 @@ nh5pget_chunk_c ( hid_t_f *prp_id, int_f *max_rank, hsize_t_f *dims )
return ret_value;
}
-
-
-/*----------------------------------------------------------------------------
- * Name: h5pset_fill_valuec_c
- * Purpose: Call h5pset_fill_value_c to a character fill value
- * Inputs: prp_id - property list identifier
+/****if* H5Pf/h5pset_fill_valuec_c
+ * NAME
+ * h5pset_fill_valuec_c
+ * PURPOSE
+ * Call h5pset_fill_value_c to a character fill value
+ * INPUTS
+ * prp_id - property list identifier
* type_id - datatype identifier (fill value is of type type_id)
* fillvalue - character value
- * Returns: 0 on success, -1 on failure
+ * RETURNS
+ * 0 on success, -1 on failure
* Saturday, August 14, 1999
- * Programmer: Elena Pourmal
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * AUTHOR
+ * Elena Pourmal
+ * SOURCE
+*/
int_f
nh5pset_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue)
+/******/
{
int ret_value = -1;
@@ -353,19 +430,25 @@ nh5pset_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_fill_value_c
- * Purpose: Call H5Pset_fill_value to set a fillvalue for a dataset
- * Inputs: prp_id - property list identifier
+/****if* H5Pf/h5pset_fill_value_c
+ * NAME
+ * h5pset_fill_value_c
+ * PURPOSE
+ * Call H5Pset_fill_value to set a fillvalue for a dataset
+ * INPUTS
+ * prp_id - property list identifier
* type_id - datatype identifier (fill value is of type type_id)
* fillvalue - fillvalue
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Saturday, August 14, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5pset_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -386,6 +469,7 @@ nh5pset_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue)
int_f
nh5pset_fill_value_integer_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue)
+/******/
{
/*
* Call h5pset_fill_value_c function.
@@ -411,20 +495,27 @@ nh5pset_fill_value_double_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue)
return nh5pset_fill_value_c(prp_id, type_id, fillvalue);
}
-
-/*----------------------------------------------------------------------------
- * Name: h5pget_fill_valuec_c
- * Purpose: Call h5pget_fill_value_c to a character fill value
- * Inputs: prp_id - property list identifier
+/****if* H5Pf/h5pget_fill_valuec_c
+ * NAME
+ * h5pget_fill_valuec_c
+ * PURPOSE
+ * Call h5pget_fill_value_c to a character fill value
+ * INPUTS
+ * prp_id - property list identifier
* type_id - datatype identifier (fill value is of type type_id)
* fillvalue - character value
- * Returns: 0 on success, -1 on failure
+ * RETURNS
+ * 0 on success, -1 on failure
* Saturday, August 14, 1999
- * Programmer: Elena Pourmal
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * AUTHOR
+ * Elena Pourmal
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue)
+/******/
{
int ret_value = -1;
@@ -436,19 +527,25 @@ nh5pget_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_fill_value_c
- * Purpose: Call H5Pget_fill_value to set a fillvalue for a dataset
- * Inputs: prp_id - property list identifier
+/****if* H5Pf/h5pget_fill_value_c
+ * NAME
+ * h5pget_fill_value_c
+ * PURPOSE
+ * Call H5Pget_fill_value to set a fillvalue for a dataset
+ * INPUTS
+ * prp_id - property list identifier
* type_id - datatype identifier (fill value is of type type_id)
* fillvalue - fillvalue
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Saturday, August 14, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5pget_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -494,22 +591,31 @@ nh5pget_fill_value_double_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue)
return nh5pset_fill_value_c(prp_id, type_id, fillvalue);
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_version_c
- * Purpose: Call H5Pget_version to get the version information
+/****if* H5Pf/h5pget_version_c
+ * NAME
+ * h5pget_version_c
+ * PURPOSE
+ * Call H5Pget_version to get the version information
* of various objects for a file creation property list
- * Inputs: prp_id - property list identifier
- * Outputs: boot - array to put boot block version number
+ * INPUTS
+ * prp_id - property list identifier
+ * OUTPUTS
+ * boot - array to put boot block version number
* freelist - array to put global freelist version number
* stab - array to put symbol table version number
* shhdr - array to put shared object header version number
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Wednesday, February 23, 2000
- * Modifications: Removed extra length parameters EP 7/6/00
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ * Removed extra length parameters EP 7/6/00
+ * SOURCE
+*/
int_f
nh5pget_version_c (hid_t_f *prp_id, int_f * boot,int_f * freelist, int_f * stab, int_f *shhdr)
+/******/
{
int ret_value = -1;
#ifndef H5_NO_DEPRECATED_SYMBOLS
@@ -543,19 +649,25 @@ nh5pget_version_c (hid_t_f *prp_id, int_f * boot,int_f * freelist, int_f * stab,
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_userblock_c
- * Purpose: Call H5Pget_userblock to get the size of a user block in
+/****if* H5Pf/h5pget_userblock_c
+ * NAME
+ * h5pget_userblock_c
+ * PURPOSE
+ * Call H5Pget_userblock to get the size of a user block in
* a file creation property list
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* Outputs size - Size of the user-block in bytes
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Wednesday, February 23, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5pget_userblock_c (hid_t_f *prp_id, hsize_t_f * size)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -575,19 +687,25 @@ nh5pget_userblock_c (hid_t_f *prp_id, hsize_t_f * size)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_userblock_c
- * Purpose: Call H5Pset_userblock to set the size of a user block in
+/****if* H5Pf/h5pset_userblock_c
+ * NAME
+ * h5pset_userblock_c
+ * PURPOSE
+ * Call H5Pset_userblock to set the size of a user block in
* a file creation property list
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* size - Size of the user-block in bytes
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Wednesday, February 23, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5pset_userblock_c (hid_t_f *prp_id, hsize_t_f * size)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -606,20 +724,28 @@ nh5pset_userblock_c (hid_t_f *prp_id, hsize_t_f * size)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_sizes_c
- * Purpose: Call H5Pget_sizes to get the size of the offsets
+/****if* H5Pf/h5pget_sizes_c
+ * NAME
+ * h5pget_sizes_c
+ * PURPOSE
+ * Call H5Pget_sizes to get the size of the offsets
* and lengths used in an HDF5 file
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* Outputs sizeof_addr - Size of an object offset in bytes
* sizeof_size - Size of an object length in bytes
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Wednesday, February 23, 2000
- * Modifications: Deleted extra length parameters. EP 6/7/00
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ * Deleted extra length parameters. EP 6/7/00
+ * SOURCE
+*/
int_f
nh5pget_sizes_c (hid_t_f *prp_id, size_t_f * sizeof_addr, size_t_f * sizeof_size)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -641,19 +767,27 @@ nh5pget_sizes_c (hid_t_f *prp_id, size_t_f * sizeof_addr, size_t_f * sizeof_size
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_sizes_c
- * Purpose: Call H5Pset_sizes to set the size of the offsets
- * Inputs: prp_id - property list identifier
+/****if* H5Pf/h5pset_sizes_c
+ * NAME
+ * h5pset_sizes_c
+ * PURPOSE
+ * Call H5Pset_sizes to set the size of the offsets
+ * INPUTS
+ * prp_id - property list identifier
* sizeof_addr - Size of an object offset in bytes
* sizeof_size - Size of an object length in bytes
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Wednesday, February 23, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_sizes_c (hid_t_f *prp_id, size_t_f * sizeof_addr, size_t_f * sizeof_size)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -673,20 +807,26 @@ nh5pset_sizes_c (hid_t_f *prp_id, size_t_f * sizeof_addr, size_t_f * sizeof_size
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_sym_k_c
- * Purpose: Call H5Pset_sym_k to set the size of parameters used
+/****if* H5Pf/h5pset_sym_k_c
+ * NAME
+ * h5pset_sym_k_c
+ * PURPOSE
+ * Call H5Pset_sym_k to set the size of parameters used
* to control the symbol table node
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* ik - Symbol table tree rank
* lk - Symbol table node size
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Friday, February 25, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5pset_sym_k_c (hid_t_f *prp_id, int_f* ik, int_f* lk)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -707,20 +847,29 @@ nh5pset_sym_k_c (hid_t_f *prp_id, int_f* ik, int_f* lk)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_sym_k_c
- * Purpose: Call H5Pget_sym_k to get the size of parameters used
+/****if* H5Pf/h5pget_sym_k_c
+ * NAME
+ * h5pget_sym_k_c
+ * PURPOSE
+ * Call H5Pget_sym_k to get the size of parameters used
* to control the symbol table node
- * Inputs: prp_id - property list identifier
- * Outputs: ik - Symbol table tree rank
+ * INPUTS
+ * prp_id - property list identifier
+ * OUTPUTS
+ * ik - Symbol table tree rank
* lk - Symbol table node size
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Friday, February 25, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_sym_k_c (hid_t_f *prp_id, int_f* ik, int_f* lk)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -740,19 +889,27 @@ nh5pget_sym_k_c (hid_t_f *prp_id, int_f* ik, int_f* lk)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_istore_k_c
- * Purpose: Call H5Pset_istore_k to set the size of the parameter
+/****if* H5Pf/h5pset_istore_k_c
+ * NAME
+ * h5pset_istore_k_c
+ * PURPOSE
+ * Call H5Pset_istore_k to set the size of the parameter
* used to control the B-trees for indexing chunked datasets
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* ik - Symbol table tree rank
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Friday, February 25, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_istore_k_c (hid_t_f *prp_id, int_f* ik)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -771,19 +928,28 @@ nh5pset_istore_k_c (hid_t_f *prp_id, int_f* ik)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_istore_k_c
- * Purpose: Call H5Pget_istore_k to get the size of parameters used
+/****if* H5Pf/h5pget_istore_k_c
+ * NAME
+ * h5pget_istore_k_c
+ * PURPOSE
+ * Call H5Pget_istore_k to get the size of parameters used
* to control the B-trees for indexing chunked datasets
- * Inputs: prp_id - property list identifier
- * Outputs: ik - Symbol table tree rank
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * INPUTS
+ * prp_id - property list identifier
+ * OUTPUTS
+ * ik - Symbol table tree rank
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Friday, February 25, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_istore_k_c (hid_t_f *prp_id, int_f* ik)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -801,18 +967,27 @@ nh5pget_istore_k_c (hid_t_f *prp_id, int_f* ik)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_driver_c
- * Purpose: Call H5Pget_driver to get low-level file driver identifier
- * Inputs: prp_id - property list identifier
- * Outputs: driver - low-level file driver identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+/****if* H5Pf/h5pget_driver_c
+ * NAME
+ * h5pget_driver_c
+ * PURPOSE
+ * Call H5Pget_driver to get low-level file driver identifier
+ * INPUTS
+ * prp_id - property list identifier
+ * OUTPUTS
+ * driver - low-level file driver identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Friday, February 25, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_driver_c (hid_t_f *prp_id, hid_t_f* driver)
+/******/
{
int ret_value = -1;
hid_t c_driver;
@@ -830,18 +1005,26 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_fapl_stdio_c
- * Purpose: Call H5Pset_stdio to set the low level file driver to
+/****if* H5Pf/h5pset_fapl_stdio_c
+ * NAME
+ * h5pset_fapl_stdio_c
+ * PURPOSE
+ * Call H5Pset_stdio to set the low level file driver to
* use the functions declared in the stdio.h
- * Inputs: prp_id - property list identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * INPUTS
+ * prp_id - property list identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* March 7, 2001
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_fapl_stdio_c (hid_t_f *prp_id)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -856,20 +1039,29 @@ nh5pset_fapl_stdio_c (hid_t_f *prp_id)
return ret_value;
}
#ifdef NO_SUCH_F90_FUNCTION
-/*----------------------------------------------------------------------------
- * Name: h5pget_fapl_stdio_c
- * Purpose: Call H5Pget_fapl_stdio to determine whther the low level file driver
+/****if* H5Pf/h5pget_fapl_stdio_c
+ * NAME
+ * h5pget_fapl_stdio_c
+ * PURPOSE
+ * Call H5Pget_fapl_stdio to determine whther the low level file driver
* uses the functions declared in the stdio.h
- * Inputs: prp_id - property list identifier
- * Outputs: io - value indicates whether the file driver uses
+ * INPUTS
+ * prp_id - property list identifier
+ * OUTPUTS
+ * io - value indicates whether the file driver uses
* the functions declared in the stdio.h
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* March 9, 2001
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_fapl_stdio_c (hid_t_f *prp_id, int_f* io)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -887,18 +1079,26 @@ nh5pget_fapl_stdio_c (hid_t_f *prp_id, int_f* io)
#endif /*NO_SUCH_F90_FUNCTION*/
-/*----------------------------------------------------------------------------
- * Name: h5pset_fapl_sec2_c
- * Purpose: Call H5Pset_fapl_sec2 to set the low level file driver to
+/****if* H5Pf/h5pset_fapl_sec2_c
+ * NAME
+ * h5pset_fapl_sec2_c
+ * PURPOSE
+ * Call H5Pset_fapl_sec2 to set the low level file driver to
* use the functions declared in the unistd.h
- * Inputs: prp_id - property list identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * INPUTS
+ * prp_id - property list identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* March 9, 2001
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_fapl_sec2_c (hid_t_f *prp_id)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -914,20 +1114,29 @@ nh5pset_fapl_sec2_c (hid_t_f *prp_id)
}
#ifdef NO_SUCH_F90_FUNCTION
-/*----------------------------------------------------------------------------
- * Name: h5pget_fapl_sec2_c
- * Purpose: Call H5Pget_fapl_stdio to determine whther the low level file driver
+/****if* H5Pf/h5pget_fapl_sec2_c
+ * NAME
+ * h5pget_fapl_sec2_c
+ * PURPOSE
+ * Call H5Pget_fapl_stdio to determine whther the low level file driver
* uses the functions declared in the unistd.h
- * Inputs: prp_id - property list identifier
- * Outputs: sec2 - value indicates whether the file driver uses
+ * INPUTS
+ * prp_id - property list identifier
+ * OUTPUTS
+ * sec2 - value indicates whether the file driver uses
* the functions declared in the unistd.h
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* March 9, 2001
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_fapl_sec2_c (hid_t_f *prp_id, int_f* sec2)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -944,20 +1153,28 @@ nh5pget_fapl_sec2_c (hid_t_f *prp_id, int_f* sec2)
}
#endif /*NO_SUCH_F90_FUNCTION*/
-/*----------------------------------------------------------------------------
- * Name: h5pset_alignment_c
- * Purpose: Call H5Pset_alignment to set alignment properties of
+/****if* H5Pf/h5pset_alignment_c
+ * NAME
+ * h5pset_alignment_c
+ * PURPOSE
+ * Call H5Pset_alignment to set alignment properties of
* a file access property list
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* threshold - Threshold value
* alignment - Alignment value
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Friday, February 25, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_alignment_c (hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -975,20 +1192,28 @@ nh5pset_alignment_c (hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_alignment_c
- * Purpose: Call H5Pget_alignment to get alignment properties of
+/****if* H5Pf/h5pget_alignment_c
+ * NAME
+ * h5pget_alignment_c
+ * PURPOSE
+ * Call H5Pget_alignment to get alignment properties of
* a file access property list
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* threshold - Threshold value
* alignment - Alignment value
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Friday, February 25, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_alignment_c (hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1007,21 +1232,29 @@ nh5pget_alignment_c (hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_fapl_core_c
- * Purpose: Call H5Pset_fapl_core to set the low-level file driver
+/****if* H5Pf/h5pset_fapl_core_c
+ * NAME
+ * h5pset_fapl_core_c
+ * PURPOSE
+ * Call H5Pset_fapl_core to set the low-level file driver
* to use malloc() and free()
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* increment - File block size in bytes
* flag - Boolean flag indicating whether to write the
* file contents to disk when the file is closed.
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* March 9, 2001
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_fapl_core_c (hid_t_f *prp_id, size_t_f* increment, int_f *flag)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1041,19 +1274,27 @@ nh5pset_fapl_core_c (hid_t_f *prp_id, size_t_f* increment, int_f *flag)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_fapl_core_c
- * Purpose: Call H5Pget_fapl_core to determine whether the file access
+/****if* H5Pf/h5pget_fapl_core_c
+ * NAME
+ * h5pget_fapl_core_c
+ * PURPOSE
+ * Call H5Pget_fapl_core to determine whether the file access
* property list is set to the core drive
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* Outputs increment - File block size in bytes
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* March 9, 2001
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_fapl_core_c (hid_t_f *prp_id, size_t_f* increment, int_f *flag)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1073,21 +1314,29 @@ nh5pget_fapl_core_c (hid_t_f *prp_id, size_t_f* increment, int_f *flag)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_fapl_family_c
- * Purpose: Call H5Pset_fapl_family to set the file access properties list
+/****if* H5Pf/h5pset_fapl_family_c
+ * NAME
+ * h5pset_fapl_family_c
+ * PURPOSE
+ * Call H5Pset_fapl_family to set the file access properties list
* to the family driver
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* memb_size - Logical size, in bytes, of each family member.
* memb_plist - Identifier of the file access property list
* for each member of the family
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* March 9, 2001
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_fapl_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist )
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1106,21 +1355,29 @@ nh5pset_fapl_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_fapl_family_c
- * Purpose: Call H5Pget_fapl_family to determine whether the file access
+/****if* H5Pf/h5pget_fapl_family_c
+ * NAME
+ * h5pget_fapl_family_c
+ * PURPOSE
+ * Call H5Pget_fapl_family to determine whether the file access
* property list is set to the family driver
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* memb_size - Logical size, in bytes, of each family member.
* memb_plist - Identifier of the file access property list
* for each member of the family
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* March 9, 2001
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_fapl_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1140,24 +1397,32 @@ nh5pget_fapl_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_cache_c
- * Purpose: Call H5Pset_cache to set he number of elements in
+/****if* H5Pf/h5pset_cache_c
+ * NAME
+ * h5pset_cache_c
+ * PURPOSE
+ * Call H5Pset_cache to set he number of elements in
* the meta data cache and the total number of bytes in
* the raw data chunk cache
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* mdc_nelmts - Number of elements (objects) in the
* meta data cache
* rdcc_nbytes - Total size of the raw data chunk cache, in bytes
* rdcc_w0 - Preemption policy
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Friday, February 25, 2000
- * Modifications: Changed the type of the rdcc_w0 parameter to be real_f EP 7/7/00
+ * HISTORY
+ * Changed the type of the rdcc_w0 parameter to be real_f EP 7/7/00
* instead of double
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5pset_cache_c(hid_t_f *prp_id, int_f* mdc_nelmts, size_t_f* rdcc_nelmts, size_t_f* rdcc_nbytes , real_f* rdcc_w0 )
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1181,26 +1446,35 @@ nh5pset_cache_c(hid_t_f *prp_id, int_f* mdc_nelmts, size_t_f* rdcc_nelmts, size
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_cache_c
- * Purpose: Call H5Pget_cache to get he number of elements in
+/****if* H5Pf/h5pget_cache_c
+ * NAME
+ * h5pget_cache_c
+ * PURPOSE
+ * Call H5Pget_cache to get he number of elements in
* the meta data cache and the total number of bytes in
* the raw data chunk cache
- * Inputs: prp_id - property list identifier
- * Outputs: mdc_nelmts - Number of elements (objects) in the
+ * INPUTS
+ * prp_id - property list identifier
+ * OUTPUTS
+ * mdc_nelmts - Number of elements (objects) in the
* meta data cache
* rdcc_nelmts - Number of elements in the raw data chunk
* rdcc_nbytes - Total size of the raw data chunk cache, in bytes
* rdcc_w0 - Preemption policy
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Friday, February 25, 2000
- * Modifications: Changed type of the rdcc_w0 parameter to be real_f instead of double
+ * HISTORY
+ * Changed type of the rdcc_w0 parameter to be real_f instead of double
* Changed type of the rdcc_nelmts parameter to be int_f.
* EIP October 10, 2003
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5pget_cache_c(hid_t_f *prp_id, int_f* mdc_nelmts, size_t_f* rdcc_nelmts, size_t_f* rdcc_nbytes , real_f* rdcc_w0)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1224,24 +1498,32 @@ nh5pget_cache_c(hid_t_f *prp_id, int_f* mdc_nelmts, size_t_f* rdcc_nelmts, size_
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_fapl_split_c
- * Purpose: Call H5Pset_fapl_split to set he low-level driver to split meta data
+/****if* H5Pf/h5pset_fapl_split_c
+ * NAME
+ * h5pset_fapl_split_c
+ * PURPOSE
+ * Call H5Pset_fapl_split to set he low-level driver to split meta data
* from raw data
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* meta_len - Length of meta_ext
* meta_ext - Name of the extension for the metafile filename.
* meta_plist - Identifier of the meta file access property list
* raw_len - Length of raw _ext
* raw_ext - Name of the extension for the raw file filename.
* raw_plist - Identifier of the raw file access property list
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* March 9, 2001
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_fapl_split_c(hid_t_f *prp_id, int_f* meta_len, _fcd meta_ext, hid_t_f* meta_plist, int_f* raw_len, _fcd raw_ext, hid_t_f * raw_plist)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1277,26 +1559,35 @@ DONE:
#ifdef NO_SUCH_F90_FUNCTION
-/*----------------------------------------------------------------------------
- * Name: h5pget_fapl_split_c
- * Purpose: Call H5Pget_fapl_split to determine whether the file access
+/****if* H5Pf/h5pget_fapl_split_c
+ * NAME
+ * h5pget_fapl_split_c
+ * PURPOSE
+ * Call H5Pget_fapl_split to determine whether the file access
* property list is set to the split driver
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* meta_ext_size - Number of characters of the meta file extension
* to be copied to the meta_ext buffer
* raw_ext_size - Number of characters of the raw file extension
* to be copied to the raw_ext buffer
- *Outputs: meta_ext - Name of the extension for the metafile filename.
+ *OUTPUT
+ * meta_ext - Name of the extension for the metafile filename.
* meta_plist - Identifier of the meta file access property list
* raw_ext - Name of the extension for the raw file filename.
* raw_plist - Identifier of the raw file access property list
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* March 9 , 2001
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_fapl_split_c(hid_t_f *prp_id, size_t_f* meta_ext_size , _fcd meta_ext, hid_t_f* meta_plist, size_t_f* raw_ext_size, _fcd raw_ext, hid_t_f * raw_plist)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1331,20 +1622,28 @@ nh5pget_fapl_split_c(hid_t_f *prp_id, size_t_f* meta_ext_size , _fcd meta_ext, h
}
#endif /*NO_SUCH_F90_FUNCTION*/
-/*----------------------------------------------------------------------------
- * Name: h5pset_gc_references_c
- * Purpose: Call H5Pset_gc_references to set garbage
+/****if* H5Pf/h5pset_gc_references_c
+ * NAME
+ * h5pset_gc_references_c
+ * PURPOSE
+ * Call H5Pset_gc_references to set garbage
* collecting references flag
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* gc_reference - flag for garbage collecting references
* for the file
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Friday, February 25, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_gc_references_c (hid_t_f *prp_id, int_f* gc_references)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1363,20 +1662,28 @@ nh5pset_gc_references_c (hid_t_f *prp_id, int_f* gc_references)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_gc_references_c
- * Purpose: Call H5Pget_gc_references to set garbage
+/****if* H5Pf/h5pget_gc_references_c
+ * NAME
+ * h5pget_gc_references_c
+ * PURPOSE
+ * Call H5Pget_gc_references to set garbage
* collecting references flag
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* Outputs gc_reference - flag for garbage collecting references
* for the file
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Friday, February 25, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_gc_references_c (hid_t_f *prp_id, int_f* gc_references)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1393,19 +1700,27 @@ nh5pget_gc_references_c (hid_t_f *prp_id, int_f* gc_references)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_layout_c
- * Purpose: Call H5Pset_layout to the type of storage used
+/****if* H5Pf/h5pset_layout_c
+ * NAME
+ * h5pset_layout_c
+ * PURPOSE
+ * Call H5Pset_layout to the type of storage used
* store the raw data for a dataset
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* layout - Type of storage layout for raw data.
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Friday, February 25, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_layout_c (hid_t_f *prp_id, int_f* layout)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1423,19 +1738,28 @@ nh5pset_layout_c (hid_t_f *prp_id, int_f* layout)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_layout_c
- * Purpose: Call H5Pget_layout to the type of storage used
+/****if* H5Pf/h5pget_layout_c
+ * NAME
+ * h5pget_layout_c
+ * PURPOSE
+ * Call H5Pget_layout to the type of storage used
* store the raw data for a dataset
- * Inputs: prp_id - property list identifier
- * Outputs: layout - Type of storage layout for raw data.
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * INPUTS
+ * prp_id - property list identifier
+ * OUTPUTS
+ * layout - Type of storage layout for raw data.
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Friday, February 25, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_layout_c (hid_t_f *prp_id, int_f* layout)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1451,22 +1775,30 @@ nh5pget_layout_c (hid_t_f *prp_id, int_f* layout)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_filter_c
- * Purpose: Call H5Pset_filter to add a filter to the filter pipeline.
- * Inputs: prp_id - property list identifier
+/****if* H5Pf/h5pset_filter_c
+ * NAME
+ * h5pset_filter_c
+ * PURPOSE
+ * Call H5Pset_filter to add a filter to the filter pipeline.
+ * INPUTS
+ * prp_id - property list identifier
* filter - Filter to be added to the pipeline.
* flags - Bit vector specifying certain general
* properties of the filter.
* cd_nelmts - Number of elements in cd_values.
* cd_values - Auxiliary data for the filter.
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Wednesday, February 23, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_filter_c (hid_t_f *prp_id, int_f* filter, int_f* flags, size_t_f* cd_nelmts, int_f* cd_values )
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1499,19 +1831,26 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_nfilters_c
- * Purpose: Call H5Pget_nfilters to get the number of filters
- * in the pipeline
- * Inputs: prp_id - property list identifier
- * Outputs: nfilters - number of filters defined in the filter pipline
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Friday, February 25, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+/****if* H5Pf/h5pget_nfilters_c
+ * NAME
+ * h5pget_nfilters_c
+ * PURPOSE
+ * Call H5Pget_nfilters to get the number of filters
+ * in the pipeline
+ * INPUTS
+ * prp_id - property list identifier
+ * OUTPUTS
+ * nfilters - number of filters defined in the filter pipline
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
+ * Friday, February 25, 2000
+ * SOURCE
+*/
int_f
nh5pget_nfilters_c (hid_t_f *prp_id, int_f* nfilters)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1554,9 +1893,10 @@ nh5pget_nfilters_c (hid_t_f *prp_id, int_f* nfilters)
*---------------------------------------------------------------------------*/
int_f
nh5pget_filter_c(hid_t_f *prp_id, int_f* filter_number, int_f* flags, size_t_f* cd_nelmts, int_f* cd_values, size_t_f *namelen, _fcd name, int_f* filter_id)
+/******/
{
unsigned int c_flags;
- size_t c_cd_nelmts;
+ size_t c_cd_nelmts = 0;
H5Z_filter_t c_filter;
unsigned int *c_cd_values = NULL;
char *c_name = NULL;
@@ -1595,23 +1935,31 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_external_c
- * Purpose: Call H5Pset_external to add an external file to the
+/****if* H5Pf/h5pset_external_c
+ * NAME
+ * h5pset_external_c
+ * PURPOSE
+ * Call H5Pset_external to add an external file to the
* list of external files.
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* name - Name of an external file
* namelen - length of name
* offset - Offset, in bytes, from the beginning of the file
* to the location in the file where the data starts.
* bytes - Number of bytes reserved in the file for the data.
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Wednesday, February 23, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_external_c (hid_t_f *prp_id, _fcd name, int_f* namelen, int_f* offset, hsize_t_f*bytes)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1642,19 +1990,28 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_external_count_c
- * Purpose: Call H5Pget_external_count to get the number of external
+/****if* H5Pf/h5pget_external_count_c
+ * NAME
+ * h5pget_external_count_c
+ * PURPOSE
+ * Call H5Pget_external_count to get the number of external
* files for the specified dataset.
- * Inputs: prp_id - property list identifier
- * Outputs: count - number of external files
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * INPUTS
+ * prp_id - property list identifier
+ * OUTPUTS
+ * count - number of external files
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Friday, February 25, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_external_count_c (hid_t_f *prp_id, int_f* count)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1670,23 +2027,32 @@ nh5pget_external_count_c (hid_t_f *prp_id, int_f* count)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_external_c
- * Purpose: Call H5Pget_external to get nformation about an external file.
- * Inputs: prp_id - property list identifier
- * name_size - length of name
- * idx - External file index.
- *Outputs: name - Name of an external file
- * offset - Offset, in bytes, from the beginning of the file
- * to the location in the file where the data starts.
- * bytes - Number of bytes reserved in the file for the data.
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Wednesday, February 23, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+/****if* H5Pf/h5pget_external_c
+ * NAME
+ * h5pget_external_c
+ * PURPOSE
+ * Call H5Pget_external to get nformation about an external file.
+ * INPUTS
+ * prp_id - property list identifier
+ * name_size - length of name
+ * idx - External file index.
+ *OUTPUT
+ * name - Name of an external file
+ * offset - Offset, in bytes, from the beginning of the file
+ * to the location in the file where the data starts.
+ * bytes - Number of bytes reserved in the file for the data.
+ * RETURNS
+ * on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
+ * Wednesday, February 23, 2000
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_external_c(hid_t_f *prp_id, int_f *idx, size_t_f* name_size, _fcd name, int_f* offset, hsize_t_f*bytes)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1727,22 +2093,30 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_btree_ratios_c
- * Purpose: Call H5Pset_btree_ratios to set B-tree split ratios for B-tree split ratios for a dataset transfer property list. a
+/****if* H5Pf/h5pset_btree_ratios_c
+ * NAME
+ * h5pset_btree_ratios_c
+ * PURPOSE
+ * Call H5Pset_btree_ratios to set B-tree split ratios for B-tree split ratios for a dataset transfer property list. a
* dataset transfer property list.
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* left - The B-tree split ratio for left-most nodes.
* middle - The B-tree split ratio for all other nodes
* right - The B-tree split ratio for right-most nodes
* and lone nodes.
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Friday, February 25, 2000
- * Modifications: Changed the type of the last three parameters from double to real_f
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ * Changed the type of the last three parameters from double to real_f
+ * SOURCE
+*/
int_f
nh5pset_btree_ratios_c(hid_t_f *prp_id, real_f* left, real_f* middle, real_f* right)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1764,22 +2138,30 @@ nh5pset_btree_ratios_c(hid_t_f *prp_id, real_f* left, real_f* middle, real_f* ri
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_btree_ratios_c
- * Purpose: Call H5Pget_btree_ratios to Gets B-tree split ratios
+/****if* H5Pf/h5pget_btree_ratios_c
+ * NAME
+ * h5pget_btree_ratios_c
+ * PURPOSE
+ * Call H5Pget_btree_ratios to Gets B-tree split ratios
* for a dataset transfer property list.
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* left - The B-tree split ratio for left-most nodes.
* middle - The B-tree split ratio for all other nodes
* right - The B-tree split ratio for right-most nodes
* and lone nodes.
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Friday, February 25, 2000
- * Modifications: Changed the type of the last three parameters from double to real_f
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ * Changed the type of the last three parameters from double to real_f
+ * SOURCE
+*/
int_f
nh5pget_btree_ratios_c(hid_t_f *prp_id, real_f* left, real_f* middle, real_f* right)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1798,24 +2180,33 @@ nh5pget_btree_ratios_c(hid_t_f *prp_id, real_f* left, real_f* middle, real_f* ri
ret_value = 0;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_fclose_degree_c
- * Purpose: Call H5Pget_fclose_degree to determine file close behavior
- * Inputs: fapl_id - file access identifier
- * Outputs:
+/****if* H5Pf/h5pget_fclose_degree_c
+ * NAME
+ * h5pget_fclose_degree_c
+ * PURPOSE
+ * Call H5Pget_fclose_degree to determine file close behavior
+ * INPUTS
+ * fapl_id - file access identifier
+ * OUTPUTS
+ *
* degree - possible values are:
* H5F_CLOSE_DEFAULT
* H5F_CLOSE_WEAK
* H5F_CLOSE_SEMI
* H5F_CLOSE_STRONG
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, September 26, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_fclose_degree_c ( hid_t_f *fapl_id , int_f *degree)
+/******/
{
int ret_value = -1;
hid_t c_fapl_id;
@@ -1829,23 +2220,31 @@ nh5pget_fclose_degree_c ( hid_t_f *fapl_id , int_f *degree)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_fclose_degree_c
- * Purpose: Call H5Pset_fclose_degree to set file close behavior
- * Inputs: fapl_id - file access identifier
+/****if* H5Pf/h5pset_fclose_degree_c
+ * NAME
+ * h5pset_fclose_degree_c
+ * PURPOSE
+ * Call H5Pset_fclose_degree to set file close behavior
+ * INPUTS
+ * fapl_id - file access identifier
* degree - possible values are:
* H5F_CLOSE_DEFAULT
* H5F_CLOSE_WEAK
* H5F_CLOSE_SEMI
* H5F_CLOSE_STRONG
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, September 26, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_fclose_degree_c ( hid_t_f *fapl_id , int_f *degree)
+/******/
{
int ret_value = -1;
hid_t c_fapl_id;
@@ -1859,20 +2258,29 @@ nh5pset_fclose_degree_c ( hid_t_f *fapl_id , int_f *degree)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_buffer_c
- * Purpose: Call H5Pset_buffer to set size of conversion buffer
- * Inputs: prp_id - t`dataset trasfer property list identifier
+/****if* H5Pf/h5pset_buffer_c
+ * NAME
+ * h5pset_buffer_c
+ * PURPOSE
+ * Call H5Pset_buffer to set size of conversion buffer
+ * INPUTS
+ * prp_id - t`dataset trasfer property list identifier
* size - size of the buffer
- * Outputs: NONE
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * NONE
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, October 2, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_buffer_c ( hid_t_f *prp_id , hsize_t_f *size)
+/******/
{
int ret_value = 0;
hid_t c_prp_id;
@@ -1884,19 +2292,28 @@ nh5pset_buffer_c ( hid_t_f *prp_id , hsize_t_f *size)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_buffer_c
- * Purpose: Call H5Pget_buffer to get size of conversion buffer
- * Inputs: prp_id - t`dataset trasfer property list identifier
- * Outputs: size - size of conversion buffer
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Pf/h5pget_buffer_c
+ * NAME
+ * h5pget_buffer_c
+ * PURPOSE
+ * Call H5Pget_buffer to get size of conversion buffer
+ * INPUTS
+ * prp_id - t`dataset trasfer property list identifier
+ * OUTPUTS
+ * size - size of conversion buffer
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, October 2, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_buffer_c ( hid_t_f *prp_id , hsize_t_f *size)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1909,19 +2326,28 @@ nh5pget_buffer_c ( hid_t_f *prp_id , hsize_t_f *size)
ret_value = 0;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pfill_value_defined_c
- * Purpose: Call H5Pfill_value_defined to check if fill value is defined
- * Inputs: prp_id - dataset creation property list identifier
- * Outputs: flag - fill value status flag
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Pf/h5pfill_value_defined_c
+ * NAME
+ * h5pfill_value_defined_c
+ * PURPOSE
+ * Call H5Pfill_value_defined to check if fill value is defined
+ * INPUTS
+ * prp_id - dataset creation property list identifier
+ * OUTPUTS
+ * flag - fill value status flag
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Friday, October 4, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pfill_value_defined_c ( hid_t_f *prp_id , int_f *flag)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1933,20 +2359,29 @@ nh5pfill_value_defined_c ( hid_t_f *prp_id , int_f *flag)
ret_value = 0;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_alloc_time_c
- * Purpose: Call H5Pget_alloc_time to get space allocation
+/****if* H5Pf/h5pget_alloc_time_c
+ * NAME
+ * h5pget_alloc_time_c
+ * PURPOSE
+ * Call H5Pget_alloc_time to get space allocation
* time for dataset during creation
- * Inputs: prp_id - dataset creation property list identifier
- * Outputs: flag - allocation time flag
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * INPUTS
+ * prp_id - dataset creation property list identifier
+ * OUTPUTS
+ * flag - allocation time flag
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Friday, October 4, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_alloc_time_c ( hid_t_f *prp_id , int_f *flag)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1958,20 +2393,28 @@ nh5pget_alloc_time_c ( hid_t_f *prp_id , int_f *flag)
ret_value = 0;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_alloc_time_c
- * Purpose: Call H5Pset_alloc_time to get space allocation
+/****if* H5Pf/h5pset_alloc_time_c
+ * NAME
+ * h5pset_alloc_time_c
+ * PURPOSE
+ * Call H5Pset_alloc_time to get space allocation
* time for dataset during creation
- * Inputs: prp_id - dataset creation property list identifier
+ * INPUTS
+ * prp_id - dataset creation property list identifier
* flag - allocation time flag
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Friday, October 4, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_alloc_time_c ( hid_t_f *prp_id , int_f *flag)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1983,20 +2426,29 @@ nh5pset_alloc_time_c ( hid_t_f *prp_id , int_f *flag)
ret_value = 0;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_fill_time_c
- * Purpose: Call H5Pget_fill_time to get fill value writing
+/****if* H5Pf/h5pget_fill_time_c
+ * NAME
+ * h5pget_fill_time_c
+ * PURPOSE
+ * Call H5Pget_fill_time to get fill value writing
* time for dataset during creation
- * Inputs: prp_id - dataset creation property list identifier
- * Outputs: flag - fill value writing time flag
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * INPUTS
+ * prp_id - dataset creation property list identifier
+ * OUTPUTS
+ * flag - fill value writing time flag
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Friday, October 4, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_fill_time_c ( hid_t_f *prp_id , int_f *flag)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -2008,20 +2460,28 @@ nh5pget_fill_time_c ( hid_t_f *prp_id , int_f *flag)
ret_value = 0;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_fill_time_c
- * Purpose: Call H5Pset_fill_time to set fill value writing
+/****if* H5Pf/h5pset_fill_time_c
+ * NAME
+ * h5pset_fill_time_c
+ * PURPOSE
+ * Call H5Pset_fill_time to set fill value writing
* time for dataset during creation
- * Inputs: prp_id - dataset creation property list identifier
+ * INPUTS
+ * prp_id - dataset creation property list identifier
* flag - fill value writing time flag
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Friday, October 4, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_fill_time_c ( hid_t_f *prp_id , int_f *flag)
+/******/
{
int ret_value = -1;
hid_t c_prp_id;
@@ -2033,20 +2493,29 @@ nh5pset_fill_time_c ( hid_t_f *prp_id , int_f *flag)
ret_value = 0;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_meta_block_size_c
- * Purpose: Call H5Pset_meta_block_size to set size of metadata block
- * Inputs: prp_id - file access property list identifier
+/****if* H5Pf/h5pset_meta_block_size_c
+ * NAME
+ * h5pset_meta_block_size_c
+ * PURPOSE
+ * Call H5Pset_meta_block_size to set size of metadata block
+ * INPUTS
+ * prp_id - file access property list identifier
* size - size of the metadata block
- * Outputs: NONE
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * NONE
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Monday, October 7, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_meta_block_size_c ( hid_t_f *prp_id , hsize_t_f *size)
+/******/
{
int ret_value = 0;
hid_t c_prp_id;
@@ -2057,20 +2526,29 @@ nh5pset_meta_block_size_c ( hid_t_f *prp_id , hsize_t_f *size)
if ( H5Pset_meta_block_size(c_prp_id, c_size) < 0 ) ret_value = -1;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_meta_block_size_c
- * Purpose: Call H5Pget_meta_block_size to get size of metadata block
- * Inputs: prp_id - file access property list identifier
- * Outputs:
+/****if* H5Pf/h5pget_meta_block_size_c
+ * NAME
+ * h5pget_meta_block_size_c
+ * PURPOSE
+ * Call H5Pget_meta_block_size to get size of metadata block
+ * INPUTS
+ * prp_id - file access property list identifier
+ * OUTPUTS
+ *
* size - size of the metadata block
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Monday, October 7, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_meta_block_size_c ( hid_t_f *prp_id , hsize_t_f *size)
+/******/
{
int ret_value = 0;
hid_t c_prp_id;
@@ -2081,20 +2559,29 @@ nh5pget_meta_block_size_c ( hid_t_f *prp_id , hsize_t_f *size)
*size = (hsize_t_f)c_size;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_sieve_buf_size_c
- * Purpose: Call H5Pset_sieve_buf_size to set size of datasieve buffer
- * Inputs: prp_id - file access property list identifier
+/****if* H5Pf/h5pset_sieve_buf_size_c
+ * NAME
+ * h5pset_sieve_buf_size_c
+ * PURPOSE
+ * Call H5Pset_sieve_buf_size to set size of datasieve buffer
+ * INPUTS
+ * prp_id - file access property list identifier
* size - size of the buffer
- * Outputs: NONE
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * NONE
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Monday, October 7, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_sieve_buf_size_c ( hid_t_f *prp_id , size_t_f *size)
+/******/
{
int ret_value = 0;
hid_t c_prp_id;
@@ -2105,20 +2592,29 @@ nh5pset_sieve_buf_size_c ( hid_t_f *prp_id , size_t_f *size)
if ( H5Pset_sieve_buf_size(c_prp_id, c_size) < 0 ) ret_value = -1;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_sieve_buf_size_c
- * Purpose: Call H5Pget_sieve_buf_size to get size of datasieve buffer
- * Inputs: prp_id - file access property list identifier
- * Outputs:
+/****if* H5Pf/h5pget_sieve_buf_size_c
+ * NAME
+ * h5pget_sieve_buf_size_c
+ * PURPOSE
+ * Call H5Pget_sieve_buf_size to get size of datasieve buffer
+ * INPUTS
+ * prp_id - file access property list identifier
+ * OUTPUTS
+ *
* size - size of the buffer
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Monday, October 7, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_sieve_buf_size_c ( hid_t_f *prp_id , size_t_f *size)
+/******/
{
int ret_value = 0;
hid_t c_prp_id;
@@ -2129,20 +2625,29 @@ nh5pget_sieve_buf_size_c ( hid_t_f *prp_id , size_t_f *size)
*size = (size_t_f)c_size;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_small_data_block_size_c
- * Purpose: Call H5Pset_small_data_block_size to set size of raw small data block
- * Inputs: prp_id - file access property list identifier
+/****if* H5Pf/h5pset_small_data_block_size_c
+ * NAME
+ * h5pset_small_data_block_size_c
+ * PURPOSE
+ * Call H5Pset_small_data_block_size to set size of raw small data block
+ * INPUTS
+ * prp_id - file access property list identifier
* size - size of the block
- * Outputs: NONE
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * NONE
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Monday, October 7, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_small_data_block_size_c ( hid_t_f *prp_id , hsize_t_f *size)
+/******/
{
int ret_value = 0;
hid_t c_prp_id;
@@ -2153,20 +2658,29 @@ nh5pset_small_data_block_size_c ( hid_t_f *prp_id , hsize_t_f *size)
if ( H5Pset_small_data_block_size(c_prp_id, c_size) < 0 ) ret_value = -1;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_small_data_block_size_c
- * Purpose: Call H5Pget_small_data_block_size to get size of raw small data block
- * Inputs: prp_id - file access property list identifier
- * Outputs:
+/****if* H5Pf/h5pget_small_data_block_size_c
+ * NAME
+ * h5pget_small_data_block_size_c
+ * PURPOSE
+ * Call H5Pget_small_data_block_size to get size of raw small data block
+ * INPUTS
+ * prp_id - file access property list identifier
+ * OUTPUTS
+ *
* size - size of the block
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Monday, October 7, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_small_data_block_size_c ( hid_t_f *prp_id , hsize_t_f *size)
+/******/
{
int ret_value = 0;
hid_t c_prp_id;
@@ -2177,20 +2691,29 @@ nh5pget_small_data_block_size_c ( hid_t_f *prp_id , hsize_t_f *size)
*size = (hsize_t_f)c_size;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_hyper_vector_size_c
- * Purpose: Call H5Pset_hyper_vector_size to set size of the hyper vector
- * Inputs: prp_id - dataset transfer property list identifier
+/****if* H5Pf/h5pset_hyper_vector_size_c
+ * NAME
+ * h5pset_hyper_vector_size_c
+ * PURPOSE
+ * Call H5Pset_hyper_vector_size to set size of the hyper vector
+ * INPUTS
+ * prp_id - dataset transfer property list identifier
* size - size of the vector
- * Outputs: NONE
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * NONE
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Monday, October 7, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_hyper_vector_size_c ( hid_t_f *prp_id , size_t_f *size)
+/******/
{
int ret_value = 0;
hid_t c_prp_id;
@@ -2201,20 +2724,29 @@ nh5pset_hyper_vector_size_c ( hid_t_f *prp_id , size_t_f *size)
if ( H5Pset_hyper_vector_size(c_prp_id, c_size) < 0 ) ret_value = -1;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_hyper_vector_size_c
- * Purpose: Call H5Pget_hyper_vector_size to get size of the hyper vector
- * Inputs: prp_id - dataset transfer property list identifier
- * Outputs:
+/****if* H5Pf/h5pget_hyper_vector_size_c
+ * NAME
+ * h5pget_hyper_vector_size_c
+ * PURPOSE
+ * Call H5Pget_hyper_vector_size to get size of the hyper vector
+ * INPUTS
+ * prp_id - dataset transfer property list identifier
+ * OUTPUTS
+ *
* size - size of the vector
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Monday, October 7, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_hyper_vector_size_c ( hid_t_f *prp_id , size_t_f *size)
+/******/
{
int ret_value = 0;
hid_t c_prp_id;
@@ -2225,34 +2757,48 @@ nh5pget_hyper_vector_size_c ( hid_t_f *prp_id , size_t_f *size)
*size = (size_t_f)c_size;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pcreate_class_c
- * Purpose: Call H5Pcreate_class ito create a new property class
- * Inputs: parent - property list class identifier
+
+/****if* H5Pf/h5pcreate_class_c
+ * NAME
+ * h5pcreate_class_c
+ * PURPOSE
+ * Call H5Pcreate_class ito create a new property class
+ * INPUTS
+ * parent - property list class identifier
* name - name of the new class
* name_len - lenght of the "name" buffer
- * Outputs: cls - new class identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
- * October 11, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
-int_f
-nh5pcreate_class_c(hid_t_f *parent, _fcd name, int_f *name_len, hid_t_f *cls)
+ * OUTPUTS
+ * class - new class identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
+ * October 11, 2002
+ *
+ * HISTORY
+ * Added the callback parameters (FORTRAN 2003 compilers only)
+ * M. Scot Breitenfeld, July 3, 2008
+ * SOURCE
+*/
+int_f
+nh5pcreate_class_c(hid_t_f *parent, _fcd name, int_f *name_len, hid_t_f *cls,
+ H5P_cls_create_func_t create, void *create_data,
+ H5P_cls_copy_func_t copy, void *copy_data,
+ H5P_cls_close_func_t close, void *close_data)
+/******/
{
int ret_value = -1;
- hid_t c_parent;
hid_t c_class;
char* c_name;
c_name = (char *)HD5f2cstring(name, (size_t)*name_len);
if (c_name == NULL) goto DONE;
- c_parent = (hid_t)*parent;
/*
* Call H5Pcreate_class function.
*/
- c_class = H5Pcreate_class(c_parent, c_name, NULL, NULL,NULL,NULL,NULL,NULL);
+ c_class = H5Pcreate_class((hid_t)*parent, c_name, create, create_data, copy, copy_data, close, close_data);
+
if (c_class < 0) goto DONE;
*cls = (hid_t_f)c_class;
ret_value = 0;
@@ -2262,21 +2808,30 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pregisterc_c
- * Purpose: Call h5pregister_c to registers a permanent property
- * Inputs: cls - property list class identifier
+
+/****if* H5Pf/h5pregisterc_c
+ * NAME
+ * h5pregisterc_c
+ * PURPOSE
+ * Call h5pregister_c to registers a permanent property
+ * INPUTS
+ * class - property list class identifier
* name - name of the new property
* name_len - length of the "name" buffer
* size - property size
* value - property value of character type
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
- * October 11, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
+ * October 11, 2002
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pregisterc_c(hid_t_f *cls, _fcd name, int_f *name_len, size_t_f *size, _fcd value, int_f UNUSED *value_len)
+/******/
{
int ret_value = -1;
@@ -2287,21 +2842,29 @@ nh5pregisterc_c(hid_t_f *cls, _fcd name, int_f *name_len, size_t_f *size, _fcd v
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pregister_c
- * Purpose: Call H5Pregister2 to registers a permanent property
- * Inputs: cls - property list class identifier
+/****if* H5Pf/h5pregister_c
+ * NAME
+ * h5pregister_c
+ * PURPOSE
+ * Call H5Pregister2 to registers a permanent property
+ * INPUTS
+ * class - property list class identifier
* name - name of the new property
* name_len - length of the "name" buffer
* size - property size
* value - property value
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* October 11, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pregister_c(hid_t_f *cls, _fcd name, int_f *name_len, size_t_f *size, void UNUSED *value)
+/******/
{
char* c_name = NULL;
int_f ret_value = -1;
@@ -2349,21 +2912,29 @@ nh5pregister_double_c(hid_t_f *cls, _fcd name, int_f *name_len, size_t_f *size,
return nh5pregister_c(cls, name, name_len, size, value);
}
-/*----------------------------------------------------------------------------
- * Name: h5pinsertc_c
- * Purpose: Call h5pinsert_c to register a temporary property
- * Inputs: plist - property list identifier
+/****if* H5Pf/h5pinsertc_c
+ * NAME
+ * h5pinsertc_c
+ * PURPOSE
+ * Call h5pinsert_c to register a temporary property
+ * INPUTS
+ * plist - property list identifier
* name - name of the new property
* name_len - length of the "name" buffer
* size - property size
* value - property value of character type
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* October 11, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pinsertc_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, _fcd value, int_f UNUSED *value_len)
+/******/
{
int_f ret_value = -1;
@@ -2374,21 +2945,29 @@ nh5pinsertc_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, _fcd v
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pinsert_c
- * Purpose: Call H5Pinsert2 to iinsert a temporary property
- * Inputs: plist - property list class identifier
+/****if* H5Pf/h5pinsert_c
+ * NAME
+ * h5pinsert_c
+ * PURPOSE
+ * Call H5Pinsert2 to iinsert a temporary property
+ * INPUTS
+ * plist - property list class identifier
* name - name of the new property
* name_len - length of the "name" buffer
* size - property size
* value - property value
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* October 11, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pinsert_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void UNUSED *value)
+/******/
{
char* c_name = NULL;
int_f ret_value = -1;
@@ -2436,20 +3015,28 @@ nh5pinsert_double_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size,
return nh5pinsert_c(plist, name, name_len, size, value);
}
-/*----------------------------------------------------------------------------
- * Name: h5pexist_c
- * Purpose: Call H5Pexist to querie whether a property name exists
+/****if* H5Pf/h5pexist_c
+ * NAME
+ * h5pexist_c
+ * PURPOSE
+ * Call H5Pexist to querie whether a property name exists
* in a property list or class
- * Inputs: plist - property list or property class identifier
+ * INPUTS
+ * plist - property list or property class identifier
* name - name of the new property
* name_len - length of the "name" buffer
- * Returns: nonnegative on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * nonnegative on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* October 11, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pexist_c(hid_t_f *cls, _fcd name, int_f *name_len)
+/******/
{
int_f ret_value = -1;
hid_t c_class;
@@ -2470,19 +3057,27 @@ DONE:
if(c_name != NULL) HDfree(c_name);
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pisa_class_c
- * Purpose: Call H5Pisa_class to querie whether a property is a
+/****if* H5Pf/h5pisa_class_c
+ * NAME
+ * h5pisa_class_c
+ * PURPOSE
+ * Call H5Pisa_class to querie whether a property is a
* member of a class
- * Inputs: plist - property list identifier
+ * INPUTS
+ * plist - property list identifier
* cls - property class identifier
- * Returns: nonnegative on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * nonnegative on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* October 11, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pisa_class_c(hid_t_f *plist, hid_t_f *cls)
+/******/
{
int_f ret_value = -1;
hid_t c_class;
@@ -2499,20 +3094,29 @@ nh5pisa_class_c(hid_t_f *plist, hid_t_f *cls)
ret_value = status;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_size_c
- * Purpose: Call H5Pget_size to querie the size of the property
- * Inputs: plist - property list to query
+/****if* H5Pf/h5pget_size_c
+ * NAME
+ * h5pget_size_c
+ * PURPOSE
+ * Call H5Pget_size to querie the size of the property
+ * INPUTS
+ * plist - property list to query
* name - name of the property
* name_len - length of the "name" buffer
- * Outputs: size - size of the property in bytes
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * size - size of the property in bytes
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* October 11, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_size_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size)
+/******/
{
int_f ret_value = -1;
hid_t c_plist;
@@ -2534,18 +3138,27 @@ DONE:
if(c_name != NULL) HDfree(c_name);
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_nprops_c
- * Purpose: Call H5Pget_nporps to get number of the properties in the list
- * Inputs: plist - property list to query
- * Outputs: nprops - number of properties in the list
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Pf/h5pget_nprops_c
+ * NAME
+ * h5pget_nprops_c
+ * PURPOSE
+ * Call H5Pget_nporps to get number of the properties in the list
+ * INPUTS
+ * plist - property list to query
+ * OUTPUTS
+ * nprops - number of properties in the list
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* October 11, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_nprops_c(hid_t_f *plist, size_t_f *nprops)
+/******/
{
int_f ret_value = -1;
hid_t c_plist;
@@ -2562,19 +3175,28 @@ nh5pget_nprops_c(hid_t_f *plist, size_t_f *nprops)
ret_value = 0;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_class_parent_c
- * Purpose: Call H5Pget_class_parent to get the parent class of
+/****if* H5Pf/h5pget_class_parent_c
+ * NAME
+ * h5pget_class_parent_c
+ * PURPOSE
+ * Call H5Pget_class_parent to get the parent class of
* a genereic property class
- * Inputs: prp_id - property list to query
- * Outputs: parent_id - parent classs identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * INPUTS
+ * prp_id - property list to query
+ * OUTPUTS
+ * parent_id - parent classs identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* October 11, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_class_parent_c(hid_t_f *prp_id, hid_t_f *parent_id)
+/******/
{
int_f ret_value = -1;
hid_t c_prp_id;
@@ -2592,21 +3214,29 @@ nh5pget_class_parent_c(hid_t_f *prp_id, hid_t_f *parent_id)
ret_value = 0;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pcopy_prop_c
- * Purpose: Call H5Pcopy_prop to copy a property from one list or
+/****if* H5Pf/h5pcopy_prop_c
+ * NAME
+ * h5pcopy_prop_c
+ * PURPOSE
+ * Call H5Pcopy_prop to copy a property from one list or
* class to another
- * Inputs: dst_id - identifier of destination property list
+ * INPUTS
+ * dst_id - identifier of destination property list
* src_id - identifier of source property list
* name - name of the property
* name_len - length of the "name" buffer
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* October 11, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pcopy_prop_c(hid_t_f *dst_id, hid_t_f *src_id, _fcd name, int_f *name_len)
+/******/
{
int_f ret_value = -1;
hid_t c_dst_id, c_src_id;
@@ -2627,19 +3257,27 @@ DONE:
if(c_name != NULL) HDfree(c_name);
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5premove_c
- * Purpose: Call H5Premove to remove a property from a list
- * Inputs: plid - identifier of property list
+/****if* H5Pf/h5premove_c
+ * NAME
+ * h5premove_c
+ * PURPOSE
+ * Call H5Premove to remove a property from a list
+ * INPUTS
+ * plid - identifier of property list
* name - name of the property to remove
* name_len - length of the "name" buffer
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* October 11, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5premove_c(hid_t_f *plid, _fcd name, int_f *name_len)
+/******/
{
int_f ret_value = -1;
hid_t c_plid;
@@ -2659,19 +3297,27 @@ DONE:
if(c_name != NULL) HDfree(c_name);
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5punregister_c
- * Purpose: Call H5Punregister to remove a property from a property class
- * Inputs: cls - identifier of property class
+/****if* H5Pf/h5punregister_c
+ * NAME
+ * h5punregister_c
+ * PURPOSE
+ * Call H5Punregister to remove a property from a property class
+ * INPUTS
+ * cls - identifier of property class
* name - name of the property to unregister
* name_len - length of the "name" buffer
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
- * October 11, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
+ * October 11, 2002
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5punregister_c(hid_t_f *cls, _fcd name, int_f *name_len)
+/******/
{
int_f ret_value = -1;
hid_t c_class;
@@ -2691,17 +3337,25 @@ DONE:
if(c_name != NULL) HDfree(c_name);
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pclose_class_c
- * Purpose: Call H5Pclose_class to close property class
- * Inputs: cls - identifier of property class to close
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
- * October 11, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+/****if* H5Pf/h5pclose_class_c
+ * NAME
+ * h5pclose_class_c
+ * PURPOSE
+ * Call H5Pclose_class to close property class
+ * INPUTS
+ * class - identifier of property class to close
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
+ * October 11, 2002
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pclose_class_c(hid_t_f *cls)
+/******/
{
int_f ret_value = -1;
hid_t c_class;
@@ -2714,19 +3368,27 @@ nh5pclose_class_c(hid_t_f *cls)
ret_value = 0;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_class_name_c
- * Purpose: Call H5Pget_class_name to get property class name
- * Inputs: cls - identifier of property class
+/****if* H5Pf/h5pget_class_name_c
+ * NAME
+ * h5pget_class_name_c
+ * PURPOSE
+ * Call H5Pget_class_name to get property class name
+ * INPUTS
+ * cls - identifier of property class
* name - ibuffer to retrieve name in
* name_len - length of the "name" buffer
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
- * October 11, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
+ * October 11, 2002
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_class_name_c(hid_t_f *cls, _fcd name, int_f *name_len)
+/******/
{
int_f ret_value = -1;
char *c_name = NULL; /* Buffer to hold C string */
@@ -2753,21 +3415,28 @@ DONE:
HDfree(c_name);
return ret_value;
}
-
-/*----------------------------------------------------------------------------
- * Name: h5pset_c
- * Purpose: Call h5setc_c to set property with the character string value
- * Inputs: plist - property list identifier
+/****if* H5Pf/h5psetc_c
+ * NAME
+ * h5psetc_c
+ * PURPOSE
+ * Call h5setc_c to set property with the character string value
+ * INPUTS
+ * plist - property list identifier
* name - name of property
* name_len - length of the "name" buffer
* value - property value of character type
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* October 11, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5psetc_c(hid_t_f *plist, _fcd name, int_f *name_len, _fcd value, int_f UNUSED *value_len)
+/******/
{
int_f ret_value = -1;
@@ -2778,33 +3447,39 @@ nh5psetc_c(hid_t_f *plist, _fcd name, int_f *name_len, _fcd value, int_f UNUSED
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_c
- * Purpose: Call H5Pset to set property value
- * Inputs: plist - property list class identifier
+/****if* H5Pf/h5pset_c
+ * NAME
+ * h5pset_c
+ * PURPOSE
+ * Call H5Pset to set property value
+ * INPUTS
+ * plist - property list class identifier
* name - name of the new property
* name_len - length of the "name" buffer
* value - property value
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
- * October 11, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
+ * October 11, 2002
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
-nh5pset_c(hid_t_f *plist, _fcd name, int_f *name_len, void UNUSED *value)
+nh5pset_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value)
+/******/
{
int_f ret_value = -1;
- hid_t c_plist;
char* c_name;
c_name = (char *)HD5f2cstring(name, (size_t)*name_len);
if (c_name == NULL) goto DONE;
- c_plist = (hid_t)*plist;
/*
* Call H5Pset function.
*/
- if( H5Pset(c_plist, c_name, value) <0) goto DONE;
+ if( H5Pset((hid_t)*plist, c_name, value) <0) goto DONE;
ret_value = 0;
DONE:
@@ -2838,20 +3513,28 @@ nh5pset_double_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value)
*/
return nh5pset_c(plist, name, name_len, value);
}
-/*----------------------------------------------------------------------------
- * Name: h5pgetc_c
- * Purpose: Call h5set_c to set property with the character string value
- * Inputs: plist - property list identifier
+/****if* H5Pf/h5pgetc_c
+ * NAME
+ * h5pgetc_c
+ * PURPOSE
+ * Call h5set_c to set property with the character string value
+ * INPUTS
+ * plist - property list identifier
* name - name of property
* name_len - length of the "name" buffer
* Output: value - property value of character type
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* October 11, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pgetc_c(hid_t_f *plist, _fcd name, int_f *name_len, _fcd value, int_f UNUSED *value_len)
+/******/
{
int_f ret_value = -1;
@@ -2862,33 +3545,39 @@ nh5pgetc_c(hid_t_f *plist, _fcd name, int_f *name_len, _fcd value, int_f UNUSED
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_c
- * Purpose: Call H5Pget to set property value
- * Inputs: plist - property list class identifier
+/****if* H5Pf/h5pget_c
+ * NAME
+ * h5pget_c
+ * PURPOSE
+ * Call H5Pget to set property value
+ * INPUTS
+ * plist - property list class identifier
* name - name of the new property
* name_len - length of the "name" buffer
* Output: value - property value
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* October 11, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
-nh5pget_c(hid_t_f *plist, _fcd name, int_f *name_len, void UNUSED *value)
+nh5pget_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value)
+/******/
{
int_f ret_value = -1;
- hid_t c_plist;
char* c_name;
c_name = (char *)HD5f2cstring(name, (size_t)*name_len);
if (c_name == NULL) goto DONE;
- c_plist = (hid_t)*plist;
/*
* Call H5Pset function.
*/
- if( H5Pget(c_plist, c_name, value) <0) goto DONE;
+ if( H5Pget((hid_t)*plist, c_name, value) <0) goto DONE;
ret_value = 0;
DONE:
@@ -2924,19 +3613,27 @@ nh5pget_double_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value)
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_shuffle_c
- * Purpose: Call H5Pset_shuffle
- * Inputs: prp_id - property list identifier
+/****if* H5Pf/h5pset_shuffle_c
+ * NAME
+ * h5pset_shuffle_c
+ * PURPOSE
+ * Call H5Pset_shuffle
+ * INPUTS
+ * prp_id - property list identifier
* type_size - size of the datatype in bytes
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, March 12, 2003
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_shuffle_c ( hid_t_f *prp_id )
+/******/
{
int_f ret_value = 0;
hid_t c_prp_id;
@@ -2947,18 +3644,26 @@ nh5pset_shuffle_c ( hid_t_f *prp_id )
if ( status < 0 ) ret_value = -1;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_fletcher32_c
- * Purpose: Call H5Pset_fletcher32 to enable EDC
- * Inputs: prp_id - dataset creation property list identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Pf/h5pset_fletcher32_c
+ * NAME
+ * h5pset_fletcher32_c
+ * PURPOSE
+ * Call H5Pset_fletcher32 to enable EDC
+ * INPUTS
+ * prp_id - dataset creation property list identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, March 13, 2003
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_fletcher32_c ( hid_t_f *prp_id )
+/******/
{
int_f ret_value = 0;
hid_t c_prp_id;
@@ -2970,19 +3675,27 @@ nh5pset_fletcher32_c ( hid_t_f *prp_id )
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_edc_check_c
- * Purpose: Call H5Pset_edc_check to enable EDC
- * Inputs: prp_id - dataset transfer property list identifier
+/****if* H5Pf/h5pset_edc_check_c
+ * NAME
+ * h5pset_edc_check_c
+ * PURPOSE
+ * Call H5Pset_edc_check to enable EDC
+ * INPUTS
+ * prp_id - dataset transfer property list identifier
* flag - EDC flag
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, March 13, 2003
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_edc_check_c ( hid_t_f *prp_id, int_f *flag )
+/******/
{
int_f ret_value = 0;
hid_t c_prp_id;
@@ -2996,19 +3709,27 @@ nh5pset_edc_check_c ( hid_t_f *prp_id, int_f *flag )
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_edc_check_c
- * Purpose: Call H5Pget_edc_check to query EDC
- * Inputs: prp_id - dataset transfer property list identifier
+/****if* H5Pf/h5pget_edc_check_c
+ * NAME
+ * h5pget_edc_check_c
+ * PURPOSE
+ * Call H5Pget_edc_check to query EDC
+ * INPUTS
+ * prp_id - dataset transfer property list identifier
* Outouts: flag - EDC flag
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, March 13, 2003
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_edc_check_c ( hid_t_f *prp_id, int_f *flag )
+/******/
{
int_f ret_value = 0;
hid_t c_prp_id;
@@ -3020,19 +3741,27 @@ nh5pget_edc_check_c ( hid_t_f *prp_id, int_f *flag )
*flag = (int_f)c_flag;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_family_offset_c
- * Purpose: Call H5Pset_family_offset to set and offset for family driver
- * Inputs: prp_id - property list identifier
+/****if* H5Pf/h5pset_family_offset_c
+ * NAME
+ * h5pset_family_offset_c
+ * PURPOSE
+ * Call H5Pset_family_offset to set and offset for family driver
+ * INPUTS
+ * prp_id - property list identifier
* offset - offset in bytes
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, 19 March 2003
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_family_offset_c ( hid_t_f *prp_id , hsize_t_f *offset)
+/******/
{
int_f ret_value = 0;
hid_t c_prp_id;
@@ -3046,25 +3775,33 @@ nh5pset_family_offset_c ( hid_t_f *prp_id , hsize_t_f *offset)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_fapl_multi_c
- * Purpose: Call H5Pset_fapl_multi to set multi file dirver
- * Inputs: prp_id - file_creation property list identifier
+/****if* H5Pf/h5pset_fapl_multi_c
+ * NAME
+ * h5pset_fapl_multi_c
+ * PURPOSE
+ * Call H5Pset_fapl_multi to set multi file dirver
+ * INPUTS
+ * prp_id - file_creation property list identifier
* mem_map - memory mapping array
* memb_fapl - property list for each memory usage type
* memb_name - array with members names
* len - array with the lenght of each name
* lenmax - lenght of the name a sdeclared in Fortran
* flag - flag allowing partila access when one of the files is missing
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Monday 24, March 2003
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
/*nh5pset_fapl_multi_c ( hid_t_f *prp_id , int_f *memb_map, hid_t_f *memb_fapl, _fcd memb_name, int_f *len, int_f *lenmax, haddr_t_f *memb_addr, int_f *flag) */
nh5pset_fapl_multi_c ( hid_t_f *prp_id , int_f *memb_map, hid_t_f *memb_fapl, _fcd memb_name, int_f *len, int_f *lenmax, real_f *memb_addr, int_f *flag)
+/******/
{
int_f ret_value = -1;
hid_t c_prp_id;
@@ -3126,18 +3863,26 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_fapl_multi_sc
- * Purpose: Call H5Pset_fapl_multi to set multi file dirver
- * Inputs: prp_id - file_creation property list identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Pf/h5pset_fapl_multi_sc
+ * NAME
+ * h5pset_fapl_multi_sc
+ * PURPOSE
+ * Call H5Pset_fapl_multi to set multi file dirver
+ * INPUTS
+ * prp_id - file_creation property list identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* March 31 2003
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_fapl_multi_sc ( hid_t_f *prp_id , int_f *flag)
+/******/
{
int_f ret_value = -1;
hid_t c_prp_id;
@@ -3155,24 +3900,33 @@ nh5pset_fapl_multi_sc ( hid_t_f *prp_id , int_f *flag)
ret_value = 0;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_fapl_multi_c
- * Purpose: Call H5Pget_fapl_multi to set multi file dirver
- * Inputs: prp_id - file_creation property list identifier
+/****if* H5Pf/h5pget_fapl_multi_c
+ * NAME
+ * h5pget_fapl_multi_c
+ * PURPOSE
+ * Call H5Pget_fapl_multi to set multi file dirver
+ * INPUTS
+ * prp_id - file_creation property list identifier
* lenmax - lenght of the name a sdeclared in Fortran
- * Outputs: memb_map - memory mapping array
+ * OUTPUTS
+ * memb_map - memory mapping array
* memb_fapl - property list for each memory usage type
* memb_name - array with members names
* len - array with the lenght of each name
* flag - flag allowing partila access when one of the files is missing
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Monday 24, March 2003
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_fapl_multi_c ( hid_t_f *prp_id , int_f *memb_map, hid_t_f *memb_fapl, _fcd memb_name, int_f *len, int_f *lenmax, real_f *memb_addr, int_f *flag, int_f *maxlen_out)
+/******/
{
int_f ret_value = -1;
hid_t c_prp_id;
@@ -3230,20 +3984,28 @@ HD5packFstring(tmp, _fcdtocp(memb_name), (size_t)(c_lenmax*H5FD_MEM_NTYPES));
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_szip_c
- * Purpose: Call H5Pset_szip to set szip compression
- * Inputs: prp_id - dataset creation property list identifier
+/****if* H5Pf/h5pset_szip_c
+ * NAME
+ * h5pset_szip_c
+ * PURPOSE
+ * Call H5Pset_szip to set szip compression
+ * INPUTS
+ * prp_id - dataset creation property list identifier
* options_mask
* pixels_per_block -szip compression parameters
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* April 8 2003
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_szip_c ( hid_t_f *prp_id , int_f *options_mask, int_f *pixels_per_block)
+/******/
{
int_f ret_value = -1;
hid_t c_prp_id;
@@ -3263,19 +4025,28 @@ nh5pset_szip_c ( hid_t_f *prp_id , int_f *options_mask, int_f *pixels_per_block)
ret_value = 0;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pall_filters_avail_c
- * Purpose: Call H5Pall_filters_avail
- * Inputs: prp_id - dataset creation property list identifier
- * Outputs: status - logical flag
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Pf/h5pall_filters_avail_c
+ * NAME
+ * h5pall_filters_avail_c
+ * PURPOSE
+ * Call H5Pall_filters_avail
+ * INPUTS
+ * prp_id - dataset creation property list identifier
+ * OUTPUTS
+ * status - logical flag
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* April 10 2003
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pall_filters_avail_c ( hid_t_f *prp_id , int_f *status)
+/******/
{
int_f ret_value = -1;
hid_t c_prp_id;
@@ -3295,25 +4066,34 @@ nh5pall_filters_avail_c ( hid_t_f *prp_id , int_f *status)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_filter_by_id_c
- * Purpose: Call H5Pget_filter_by_id2 to get information about a filter
+/****if* H5Pf/h5pget_filter_by_id_c
+ * NAME
+ * h5pget_filter_by_id_c
+ * PURPOSE
+ * Call H5Pget_filter_by_id2 to get information about a filter
* in a pipeline
- * Inputs: prp_id - property list identifier
+ * INPUTS
+ * prp_id - property list identifier
* filter_id - filter id
* namelen - Anticipated number of characters in name.
- *Outputs: flags - Bit vector specifying certain general
+ *OUTPUT
+ * flags - Bit vector specifying certain general
* properties of the filter.
* cd_nelmts - Number of elements in cd_value
* cd_values - Auxiliary data for the filter.
* name - Name of the filter
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena POurmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena POurmal
* April 10, 2003
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_filter_by_id_c(hid_t_f *prp_id, int_f* filter_id, int_f* flags, size_t_f* cd_nelmts, int_f* cd_values, size_t_f *namelen, _fcd name)
+/******/
{
unsigned int c_flags;
size_t c_cd_nelmts = (size_t)*cd_nelmts;
@@ -3353,22 +4133,30 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pmodify_filter_c
- * Purpose: Call H5Pmodify_filter to modify a filter
- * Inputs: prp_id - property list identifier
+/****if* H5Pf/h5pmodify_filter_c
+ * NAME
+ * h5pmodify_filter_c
+ * PURPOSE
+ * Call H5Pmodify_filter to modify a filter
+ * INPUTS
+ * prp_id - property list identifier
* filter - Filter to be modified
* flags - Bit vector specifying certain general
* properties of the filter.
* cd_nelmts - Number of elements in cd_values.
* cd_values - Auxiliary data for the filter.
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* April 10 2003
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pmodify_filter_c (hid_t_f *prp_id, int_f* filter, int_f* flags, size_t_f* cd_nelmts, int_f* cd_values )
+/******/
{
int_f ret_value = -1;
hid_t c_prp_id;
@@ -3401,18 +4189,26 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5premove_filter_c
- * Purpose: Call H5Premove_filter to delete one or more filters
- * Inputs: prp_id - property list identifier
+/****if* H5Pf/h5premove_filter_c
+ * NAME
+ * h5premove_filter_c
+ * PURPOSE
+ * Call H5Premove_filter to delete one or more filters
+ * INPUTS
+ * prp_id - property list identifier
* filter - Filter to be deleted
- * Returns: 0 on success, -1 on failure
- * Programmer: Quincey Koziol
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Quincey Koziol
* January 27 2004
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5premove_filter_c (hid_t_f *prp_id, int_f* filter)
+/******/
{
int_f ret_value = -1;
hid_t c_prp_id;
@@ -3431,20 +4227,28 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_attr_phase_change_c
- * Purpose: Calls H5Pget_attr_phase_change
+/****if* H5Pf/h5pget_attr_phase_change_c
+ * NAME
+ * h5pget_attr_phase_change_c
+ * PURPOSE
+ * Calls H5Pget_attr_phase_change
*
- * Inputs: ocpl_id - Object (dataset or group) creation property list identifier
+ * INPUTS
+ * ocpl_id - Object (dataset or group) creation property list identifier
* Outputs max_compact - Maximum number of attributes to be stored in compact storage
* min_dense - Minimum number of attributes to be stored in dense storage
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* January, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_attr_phase_change_c(hid_t_f *ocpl_id, int_f *max_compact, int_f *min_dense )
+/******/
{
int ret_value = -1;
hid_t c_ocpl_id;
@@ -3464,19 +4268,27 @@ nh5pget_attr_phase_change_c(hid_t_f *ocpl_id, int_f *max_compact, int_f *min_den
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_attr_creation_order_c
- * Purpose: Calls H5Ppset_attr_creation_order
+/****if* H5Pf/h5pset_attr_creation_order_c
+ * NAME
+ * h5pset_attr_creation_order_c
+ * PURPOSE
+ * Calls H5Ppset_attr_creation_order
*
- * Inputs: ocpl_id - Object (dataset or group) creation property list identifier
+ * INPUTS
+ * ocpl_id - Object (dataset or group) creation property list identifier
* Outputs crt_order_flags - Flags specifying whether to track and index attribute creation order
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* January, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_attr_creation_order_c(hid_t_f *ocpl_id, int_f *crt_order_flags )
+/******/
{
int ret_value = -1;
unsigned c_crt_order_flags;
@@ -3493,23 +4305,32 @@ nh5pset_attr_creation_order_c(hid_t_f *ocpl_id, int_f *crt_order_flags )
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_shared_mesg_nindexes_c
- * Purpose: Calls h5pset_shared_mesg_nindexes
+/****if* H5Pf/h5pset_shared_mesg_nindexes_c
+ * NAME
+ * h5pset_shared_mesg_nindexes_c
+ * PURPOSE
+ * Calls h5pset_shared_mesg_nindexes
+ *
+ * INPUTS
*
- * Inputs:
* plist_id - file creation property list
* nindexes - Number of shared object header message indexes
* available in files created WITH this property list
*
- * Outputs:
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * OUTPUTS
+ *
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* January, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_shared_mesg_nindexes_c(hid_t_f *plist_id, int_f *nindexes )
+/******/
{
int ret_value = -1;
hid_t c_plist_id;
@@ -3527,24 +4348,33 @@ nh5pset_shared_mesg_nindexes_c(hid_t_f *plist_id, int_f *nindexes )
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_shared_mesg_index_c
- * Purpose: Calls H5Pset_shared_mesg_index
+/****if* H5Pf/h5pset_shared_mesg_index_c
+ * NAME
+ * h5pset_shared_mesg_index_c
+ * PURPOSE
+ * Calls H5Pset_shared_mesg_index
+ *
+ * INPUTS
*
- * Inputs:
* fcpl_id - File creation property list identifier.
* index_num - Index being configured.
* mesg_type_flags - Types of messages that should be stored in this index.
* min_mesg_size - Minimum message size.
*
- * Outputs:
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * OUTPUTS
+ *
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* January, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_shared_mesg_index_c(hid_t_f *fcpl_id, int_f *index_num, int_f *mesg_type_flags, int_f *min_mesg_size)
+/******/
{
int ret_value = -1;
herr_t ret;
@@ -3558,22 +4388,31 @@ nh5pset_shared_mesg_index_c(hid_t_f *fcpl_id, int_f *index_num, int_f *mesg_type
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_attr_creation_order_c
- * Purpose: Calls H5Pget_attr_creation_order
+/****if* H5Pf/h5pget_attr_creation_order_c
+ * NAME
+ * h5pget_attr_creation_order_c
+ * PURPOSE
+ * Calls H5Pget_attr_creation_order
+ *
+ * INPUTS
*
- * Inputs:
* ocpl_id - Object (group or dataset) creation property list identifier
- * Outputs:
+ * OUTPUTS
+ *
* crt_order_flags - Flags specifying whether to track and index attribute creation order
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* February, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_attr_creation_order_c(hid_t_f *ocpl_id, int_f *crt_order_flags)
+/******/
{
int ret_value = -1;
herr_t ret;
@@ -3591,23 +4430,32 @@ nh5pget_attr_creation_order_c(hid_t_f *ocpl_id, int_f *crt_order_flags)
ret_value = 0;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_libver_bounds_c
- * Purpose: Calls H5Pset_libver_bounds
+/****if* H5Pf/h5pset_libver_bounds_c
+ * NAME
+ * h5pset_libver_bounds_c
+ * PURPOSE
+ * Calls H5Pset_libver_bounds
+ *
+ * INPUTS
*
- * Inputs:
* fapl_id - File access property list identifier
* low - The earliest version of the library that will be used for writing objects.
* high - The latest version of the library that will be used for writing objects.
- * Outputs:
+ * OUTPUTS
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ *
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* February 18, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_libver_bounds_c(hid_t_f *fapl_id, int_f *low, int_f *high )
+/******/
{
int ret_value = -1;
herr_t ret;
@@ -3622,20 +4470,29 @@ nh5pset_libver_bounds_c(hid_t_f *fapl_id, int_f *low, int_f *high )
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_link_creation_order_c
- * Purpose: Calls H5Pset_link_creation_order
+/****if* H5Pf/h5pset_link_creation_order_c
+ * NAME
+ * h5pset_link_creation_order_c
+ * PURPOSE
+ * Calls H5Pset_link_creation_order
*
- * Inputs: gcpl_id - Group creation property list identifier
+ * INPUTS
+ * gcpl_id - Group creation property list identifier
* crt_order_flags - Creation order flag(s)
- * Outputs:
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * OUTPUTS
+ *
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* February 18, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_link_creation_order_c(hid_t_f *gcpl_id, int_f *crt_order_flags )
+/******/
{
int ret_value = -1;
herr_t ret;
@@ -3649,20 +4506,28 @@ nh5pset_link_creation_order_c(hid_t_f *gcpl_id, int_f *crt_order_flags )
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_link_phase_change_c
- * Purpose: Calls H5Pget_link_phase_change
+/****if* H5Pf/h5pget_link_phase_change_c
+ * NAME
+ * h5pget_link_phase_change_c
+ * PURPOSE
+ * Calls H5Pget_link_phase_change
*
- * Inputs: gcpl_id - Group creation property list identifier
+ * INPUTS
+ * gcpl_id - Group creation property list identifier
* Outputs max_compact - Maximum number of attributes to be stored in compact storage
* min_dense - Minimum number of attributes to be stored in dense storage
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* February 20, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_link_phase_change_c(hid_t_f *gcpl_id, int_f *max_compact, int_f *min_dense )
+/******/
{
int ret_value = -1;
unsigned c_max_compact;
@@ -3681,21 +4546,30 @@ nh5pget_link_phase_change_c(hid_t_f *gcpl_id, int_f *max_compact, int_f *min_den
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_obj_track_times_c
- * Purpose: Call H5Pget_obj_track_times
+/****if* H5Pf/h5pget_obj_track_times_c
+ * NAME
+ * h5pget_obj_track_times_c
+ * PURPOSE
+ * Call H5Pget_obj_track_times
+ *
+ * INPUTS
+ * plist_id - property list id
+ * OUTPUTS
*
- * Inputs: plist_id - property list id
- * Outputs:
* flag - TRUE/FALSE flag
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* February 22, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_obj_track_times_c(hid_t_f *plist_id, int_f *flag)
+/******/
{
int ret_value = -1;
hbool_t c_track_times=0;
@@ -3714,20 +4588,28 @@ nh5pget_obj_track_times_c(hid_t_f *plist_id, int_f *flag)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_obj_track_times_c
- * Purpose: Call H5Pset_obj_track_times
+/****if* H5Pf/h5pset_obj_track_times_c
+ * NAME
+ * h5pset_obj_track_times_c
+ * PURPOSE
+ * Call H5Pset_obj_track_times
*
- * Inputs: plist_id - property list id
+ * INPUTS
+ * plist_id - property list id
* flag - TRUE/FALSE flag
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* February 22, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_obj_track_times_c(hid_t_f *plist_id, int_f *flag)
+/******/
{
int ret_value = -1;
hbool_t c_track_times;
@@ -3746,23 +4628,31 @@ nh5pset_obj_track_times_c(hid_t_f *plist_id, int_f *flag)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_create_inter_group_c
- * Purpose: Calls H5Pset_create_intermediate_group
+/****if* H5Pf/h5pset_create_inter_group_c
+ * NAME
+ * h5pset_create_inter_group_c
+ * PURPOSE
+ * Calls H5Pset_create_intermediate_group
+ *
+ * INPUTS
*
- * Inputs:
* lcpl_id - Link creation property list identifier
* crt_intermed_group - crt_intermed_group specifying whether
* to create intermediate groups upon the
* creation of an object
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* February 22, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_create_inter_group_c(hid_t_f *lcpl_id, int_f *crt_intermed_group)
+/******/
{
int ret_value = -1;
herr_t ret;
@@ -3777,22 +4667,31 @@ nh5pset_create_inter_group_c(hid_t_f *lcpl_id, int_f *crt_intermed_group)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_link_creation_order_c
- * Purpose: Calls H5Pget_link_creation_order
+/****if* H5Pf/h5pget_link_creation_order_c
+ * NAME
+ * h5pget_link_creation_order_c
+ * PURPOSE
+ * Calls H5Pget_link_creation_order
+ *
+ * INPUTS
*
- * Inputs:
* gcpl_id - Group creation property list identifier
- * Outputs:
+ * OUTPUTS
+ *
* crt_order_flags - Creation order flag(s)
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* March 3, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_link_creation_order_c(hid_t_f *gcpl_id, int_f *crt_order_flags)
+/******/
{
int ret_value = -1;
herr_t ret;
@@ -3811,24 +4710,33 @@ nh5pget_link_creation_order_c(hid_t_f *gcpl_id, int_f *crt_order_flags)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_char_encoding_c
- * Purpose: Calls H5Pset_char_encoding
+/****if* H5Pf/h5pset_char_encoding_c
+ * NAME
+ * h5pset_char_encoding_c
+ * PURPOSE
+ * Calls H5Pset_char_encoding
+ *
+ * INPUTS
*
- * Inputs:
* plist_id - Property list identifier
* encoding - String encoding character set:
* H5T_CSET_ASCII_F -> US ASCII
* H5T_CSET_UTF8_F -> UTF-8 Unicode encoding
- * Outputs: NONE
+ * OUTPUTS
+ * NONE
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* March 3, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_char_encoding_c(hid_t_f *plist_id, int_f *encoding)
+/******/
{
int ret_value = -1;
herr_t ret;
@@ -3844,24 +4752,33 @@ nh5pset_char_encoding_c(hid_t_f *plist_id, int_f *encoding)
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_char_encoding_c
- * Purpose: Calls H5Pget_char_encoding
+/****if* H5Pf/h5pget_char_encoding_c
+ * NAME
+ * h5pget_char_encoding_c
+ * PURPOSE
+ * Calls H5Pget_char_encoding
+ *
+ * INPUTS
*
- * Inputs:
* plist_id - Property list identifier
- * Outputs:
+ * OUTPUTS
+ *
* encoding - Encoding character set:
* H5T_CSET_ASCII_F -> US ASCII
* H5T_CSET_UTF8_F -> UTF-8 Unicode encoding
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* March 3, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_char_encoding_c(hid_t_f *plist_id, int_f *encoding)
+/******/
{
int ret_value = -1;
H5T_cset_t c_encoding;
@@ -3878,24 +4795,33 @@ nh5pget_char_encoding_c(hid_t_f *plist_id, int_f *encoding)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_copy_object_c
- * Purpose: Calls H5Pset_copy_object
+/****if* H5Pf/h5pset_copy_object_c
+ * NAME
+ * h5pset_copy_object_c
+ * PURPOSE
+ * Calls H5Pset_copy_object
+ *
+ * INPUTS
*
- * Inputs:
* ocp_plist_id - Object copy property list identifier
* copy_options - Copy option(s) to be set
*
- * Outputs:
+ * OUTPUTS
+ *
* NONE
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* March 3, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_copy_object_c(hid_t_f *ocp_plist_id, int_f *copy_options)
+/******/
{
int ret_value = -1;
herr_t ret;
@@ -3909,23 +4835,32 @@ nh5pset_copy_object_c(hid_t_f *ocp_plist_id, int_f *copy_options)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_copy_object_c
- * Purpose: Calls H5Pget_copy_object
+/****if* H5Pf/h5pget_copy_object_c
+ * NAME
+ * h5pget_copy_object_c
+ * PURPOSE
+ * Calls H5Pget_copy_object
+ *
+ * INPUTS
*
- * Inputs:
* ocp_plist_id - Object copy property list identifier
*
- * Outputs:
+ * OUTPUTS
+ *
* copy_options - Copy option(s) to be get
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* March 3, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_copy_object_c(hid_t_f *ocp_plist_id, int_f *copy_options)
+/******/
{
int ret_value = -1;
unsigned c_copy_options;
@@ -3942,26 +4877,34 @@ nh5pget_copy_object_c(hid_t_f *ocp_plist_id, int_f *copy_options)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_data_transform_c
- * Purpose: Calls H5Pget_data_transform
- * Inputs:
+/****if* H5Pf/h5pget_data_transform_c
+ * NAME
+ * h5pget_data_transform_c
+ * PURPOSE
+ * Calls H5Pget_data_transform
+ * INPUTS
+ *
* prp_id - property list identifier to query
* expression_len - buffer size transorm expression
*
* Output:
* expression - buffer to hold transform expression
*
- * Returns:
+ * RETURNS
+ *
* Success: 0
* Failure: -1
*
- * Programmer: M.S. Breitenfeld
+ * AUTHOR
+ * M. Scot Breitenfeld
* March 19, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_data_transform_c(hid_t_f *plist_id, _fcd expression, int_f *expression_len, size_t_f *size)
+/******/
{
char *c_expression = NULL; /* Buffer to hold C string */
size_t c_expression_len;
@@ -3998,26 +4941,34 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_data_transform_c
- * Purpose: Calls H5Pset_data_transform
- * Inputs:
+/****if* H5Pf/h5pset_data_transform_c
+ * NAME
+ * h5pset_data_transform_c
+ * PURPOSE
+ * Calls H5Pset_data_transform
+ * INPUTS
+ *
* prp_id - property list identifier to query
* expression - buffer to hold transform expression
* expression_len - buffer size transorm expression
*
* Output:
*
- * Returns:
+ * RETURNS
+ *
* Success: 0
* Failure: -1
*
- * Programmer: M.S. Breitenfeld
+ * AUTHOR
+ * M. Scot Breitenfeld
* March 19, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_data_transform_c(hid_t_f *plist_id, _fcd expression, int_f *expression_len)
+/******/
{
char* c_expression = NULL; /* Buffer to hold C string */
int_f ret_value = 0; /* Return value */
@@ -4041,24 +4992,32 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_local_heap_size_hint_c
- * Purpose: Calls H5Pget_local_heap_size_hint
- * Inputs:
+/****if* H5Pf/h5pget_local_heap_size_hint_c
+ * NAME
+ * h5pget_local_heap_size_hint_c
+ * PURPOSE
+ * Calls H5Pget_local_heap_size_hint
+ * INPUTS
+ *
* gcpl_id - Group creation property list identifier
*
* Output:
* size_hint - Hint for size of local heap
- * Returns:
+ * RETURNS
+ *
* Success: 0
* Failure: -1
*
- * Programmer: M.S. Breitenfeld
+ * AUTHOR
+ * M. Scot Breitenfeld
* March 21, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_local_heap_size_hint_c(hid_t_f *gcpl_id, size_t_f *size_hint)
+/******/
{
int_f ret_value = -1; /* Return value */
size_t c_size_hint;
@@ -4074,25 +5033,33 @@ nh5pget_local_heap_size_hint_c(hid_t_f *gcpl_id, size_t_f *size_hint)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_est_link_info_c
- * Purpose: Calls H5Pget_est_link_info
- * Inputs:
+/****if* H5Pf/h5pget_est_link_info_c
+ * NAME
+ * h5pget_est_link_info_c
+ * PURPOSE
+ * Calls H5Pget_est_link_info
+ * INPUTS
+ *
* gcpl_id - Group creation property list identifier
*
* Output:
* est_num_entries - Estimated number of links to be inserted into group
* est_name_len - Estimated average length of link names
- * Returns:
+ * RETURNS
+ *
* Success: 0
* Failure: -1
*
- * Programmer: M.S. Breitenfeld
+ * AUTHOR
+ * M. Scot Breitenfeld
* March 21, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_est_link_info_c(hid_t_f *gcpl_id, int_f *est_num_entries, int_f *est_name_len)
+/******/
{
int_f ret_value = -1; /* Return value */
unsigned c_est_num_entries;
@@ -4111,25 +5078,33 @@ nh5pget_est_link_info_c(hid_t_f *gcpl_id, int_f *est_num_entries, int_f *est_nam
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_local_heap_size_hint_c
- * Purpose: Calls H5Pset_local_heap_size_hint
- * Inputs:
+/****if* H5Pf/h5pset_local_heap_size_hint_c
+ * NAME
+ * h5pset_local_heap_size_hint_c
+ * PURPOSE
+ * Calls H5Pset_local_heap_size_hint
+ * INPUTS
+ *
* gcpl_id - Group creation property list identifier
* size_hint - Hint for size of local heap
*
* Output:
*
- * Returns:
+ * RETURNS
+ *
* Success: 0
* Failure: -1
*
- * Programmer: M.S. Breitenfeld
+ * AUTHOR
+ * M. Scot Breitenfeld
* March 21, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_local_heap_size_hint_c(hid_t_f *gcpl_id, size_t_f *size_hint)
+/******/
{
int_f ret_value = -1; /* Return value */
herr_t ret;
@@ -4143,25 +5118,33 @@ nh5pset_local_heap_size_hint_c(hid_t_f *gcpl_id, size_t_f *size_hint)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_est_link_info_c
- * Purpose: Calls H5Pset_est_link_info
- * Inputs:
+/****if* H5Pf/h5pset_est_link_info_c
+ * NAME
+ * h5pset_est_link_info_c
+ * PURPOSE
+ * Calls H5Pset_est_link_info
+ * INPUTS
+ *
* gcpl_id - Group creation property list identifier
* est_num_entries - Estimated number of links to be inserted into group
* est_name_len - Estimated average length of link names
*
* Output:
- * Returns:
+ * RETURNS
+ *
* Success: 0
* Failure: -1
*
- * Programmer: M.S. Breitenfeld
+ * AUTHOR
+ * M. Scot Breitenfeld
* March 21, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_est_link_info_c(hid_t_f *gcpl_id, int_f *est_num_entries, int_f *est_name_len)
+/******/
{
int_f ret_value = -1; /* Return value */
herr_t ret;
@@ -4175,21 +5158,29 @@ nh5pset_est_link_info_c(hid_t_f *gcpl_id, int_f *est_num_entries, int_f *est_nam
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_link_phase_change_c
- * Purpose: Calls H5Pset_link_phase_change
+/****if* H5Pf/h5pset_link_phase_change_c
+ * NAME
+ * h5pset_link_phase_change_c
+ * PURPOSE
+ * Calls H5Pset_link_phase_change
*
- * Inputs: gcpl_id - Group creation property list identifier
+ * INPUTS
+ * gcpl_id - Group creation property list identifier
* max_compact - Maximum number of attributes to be stored in compact storage
* min_dense - Minimum number of attributes to be stored in dense storage
* Outputs
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* March 21, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_link_phase_change_c(hid_t_f *gcpl_id, int_f *max_compact, int_f *min_dense )
+/******/
{
int ret_value = -1;
herr_t ret;
@@ -4204,23 +5195,31 @@ nh5pset_link_phase_change_c(hid_t_f *gcpl_id, int_f *max_compact, int_f *min_den
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_fapl_direct_c
- * Purpose: Calls H5Pset_fapl_direct
+/****if* H5Pf/h5pset_fapl_direct_c
+ * NAME
+ * h5pset_fapl_direct_c
+ * PURPOSE
+ * Calls H5Pset_fapl_direct
+ *
+ * INPUTS
*
- * Inputs:
* fapl_id - File access property list identifier
* alignment - Required memory alignment boundary
* block_size - File system block size
* cbuf_size - Copy buffer size
* Outputs
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* March 21, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_fapl_direct_c(hid_t_f UNUSED *fapl_id, size_t_f UNUSED *alignment, size_t_f UNUSED *block_size, size_t_f UNUSED *cbuf_size)
+/******/
{
int ret_value = -1;
#ifdef H5_HAVE_DIRECT
@@ -4238,23 +5237,32 @@ nh5pset_fapl_direct_c(hid_t_f UNUSED *fapl_id, size_t_f UNUSED *alignment, size_
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_fapl_direct_c
- * Purpose: Calls H5Pget_fapl_direct
+/****if* H5Pf/h5pget_fapl_direct_c
+ * NAME
+ * h5pget_fapl_direct_c
+ * PURPOSE
+ * Calls H5Pget_fapl_direct
+ *
+ * INPUTS
*
- * Inputs:
* fapl_id - File access property list identifier
- * Outputs:
+ * OUTPUTS
+ *
* alignment - Required memory alignment boundary
* block_size - File system block size
* cbuf_size - Copy buffer size
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* March 21, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_fapl_direct_c(hid_t_f UNUSED *fapl_id, size_t_f UNUSED *alignment, size_t_f UNUSED *block_size, size_t_f UNUSED *cbuf_size)
+/******/
{
int ret_value = -1;
#ifdef H5_HAVE_DIRECT
@@ -4278,21 +5286,30 @@ nh5pget_fapl_direct_c(hid_t_f UNUSED *fapl_id, size_t_f UNUSED *alignment, size_
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_attr_phase_change_c
- * Purpose: Calls H5Pset_attr_phase_change
+/****if* H5Pf/h5pset_attr_phase_change_c
+ * NAME
+ * h5pset_attr_phase_change_c
+ * PURPOSE
+ * Calls H5Pset_attr_phase_change
*
- * Inputs: ocpl_id - Object (dataset or group) creation property list identifier
+ * INPUTS
+ * ocpl_id - Object (dataset or group) creation property list identifier
* max_compact - Maximum number of attributes to be stored in compact storage
* min_dense - Minimum number of attributes to be stored in dense storage
- * Outputs:
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * OUTPUTS
+ *
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* March 21, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_attr_phase_change_c(hid_t_f *ocpl_id, int_f *max_compact, int_f *min_dense )
+/******/
{
int ret_value = -1;
herr_t ret;
@@ -4306,19 +5323,28 @@ nh5pset_attr_phase_change_c(hid_t_f *ocpl_id, int_f *max_compact, int_f *min_den
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_nbit_c
- * Purpose: Calls H5Pset_nbit
+/****if* H5Pf/h5pset_nbit_c
+ * NAME
+ * h5pset_nbit_c
+ * PURPOSE
+ * Calls H5Pset_nbit
*
- * Inputs: plist_id - Dataset creation property list identifier
- * Outputs:
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * INPUTS
+ * plist_id - Dataset creation property list identifier
+ * OUTPUTS
+ *
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* March 21, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pset_nbit_c(hid_t_f *plist_id )
+/******/
{
int ret_value = -1;
herr_t ret;
@@ -4331,22 +5357,27 @@ nh5pset_nbit_c(hid_t_f *plist_id )
ret_value = 0;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_scaleoffset_c
- * Purpose: Calls H5Pset_scaleoffset
+/****if* H5Pf/h5pset_scaleoffset_c
+ * NAME
+ * h5pset_scaleoffset_c
+ * PURPOSE
+ * Calls H5Pset_scaleoffset
*
- * Inputs:
- * plist_id - Dataset creation property list identifier
- * scale_type - Flag indicating compression method.
+ * INPUTS
+ * plist_id - Dataset creation property list identifier
+ * scale_type - Flag indicating compression method.
* scale_factor - Parameter related to scale.
- * Outputs:
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * March 21, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ *
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * March 21, 2008
+ * SOURCE
+*/
int_f
nh5pset_scaleoffset_c(hid_t_f *plist_id, int_f *scale_type, int_f *scale_factor )
+/******/
{
int ret_value = -1;
H5Z_SO_scale_type_t c_scale_type;
@@ -4363,21 +5394,25 @@ nh5pset_scaleoffset_c(hid_t_f *plist_id, int_f *scale_type, int_f *scale_factor
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pset_nlinks
- * Purpose: Calls H5Pset_nlinks
+/****if* H5Pf/h5pset_nlinks
+ * NAME
+ * h5pset_nlinks
+ * PURPOSE
+ * Calls H5Pset_nlinks
*
- * Inputs:
- * lapl_id - File access property list identifier
- * nlinks - Maximum number of links to traverse
- * Outputs:
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * March 24, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * INPUTS
+ * lapl_id - File access property list identifier
+ * nlinks - Maximum number of links to traverse
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * March 24, 2008
+ * SOURCE
+*/
int_f
nh5pset_nlinks_c(hid_t_f *lapl_id, size_t_f *nlinks)
+/******/
{
int ret_value = -1;
herr_t ret;
@@ -4391,23 +5426,32 @@ nh5pset_nlinks_c(hid_t_f *lapl_id, size_t_f *nlinks)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_nlinks
- * Purpose: Calls H5Pget_nlinks
+/****if* H5Pf/h5pget_nlinks
+ * NAME
+ * h5pget_nlinks
+ * PURPOSE
+ * Calls H5Pget_nlinks
+ *
+ * INPUTS
*
- * Inputs:
* lapl_id - File access property list identifier
*
- * Outputs:
+ * OUTPUTS
+ *
* nlinks - Maximum number of links to traverse
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* March 24, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_nlinks_c(hid_t_f *lapl_id, size_t_f *nlinks)
+/******/
{
int ret_value = -1;
herr_t ret;
@@ -4423,22 +5467,29 @@ nh5pget_nlinks_c(hid_t_f *lapl_id, size_t_f *nlinks)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5pget_create_inter_group_c
- * Purpose: Calls H5Pget_create_intermediate_group
+/****if* H5Pf/h5pget_create_inter_group_c
+ * NAME
+ * h5pget_create_inter_group_c
+ * PURPOSE
+ * Calls H5Pget_create_intermediate_group
+ *
+ * INPUTS
*
- * Inputs:
* lcpl_id - Link creation property list identifier
* crt_intermed_group - Specifying whether to create intermediate groups upon
* the creation of an object
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* April 4, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
-
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5pget_create_inter_group_c(hid_t_f *lcpl_id, int_f *crt_intermed_group)
+/******/
{
int ret_value = -1;
herr_t ret;
@@ -4466,7 +5517,7 @@ nh5pget_create_inter_group_c(hid_t_f *lcpl_id, int_f *crt_intermed_group)
* rdcc_w0 -
*
* Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * Programmer: M. Scot Breitenfeld
* April 13, 2009
* Modifications:
*---------------------------------------------------------------------------*/
@@ -4497,7 +5548,7 @@ nh5pset_chunk_cache_c(hid_t_f *dapl_id, size_t_f *rdcc_nslots, size_t_f *rdcc_nb
* rdcc_w0 -
*
* Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * Programmer: M. Scot Breitenfeld
* April 13, 2009
* Modifications:
*---------------------------------------------------------------------------*/
diff --git a/fortran/src/H5Pff.f90 b/fortran/src/H5Pff.f90
index 50aad81..a22b2e3 100644
--- a/fortran/src/H5Pff.f90
+++ b/fortran/src/H5Pff.f90
@@ -1,3 +1,14 @@
+!****h* ROBODoc/H5P (F90)
+!
+! NAME
+! H5P_PROVISIONAL
+!
+! PURPOSE
+! This file contains Fortran interfaces for H5P functions. It includes
+! all the functions that are independent on whether the Fortran 2003 functions
+! are enabled or disabled.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,1354 +24,1156 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! NOTES
+! *** IMPORTANT ***
+! If you add a new H5P function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
+!*****
+
+MODULE H5P
+
+ USE H5GLOBAL
+
+ INTERFACE h5pset_fapl_multi_f
+ MODULE PROCEDURE h5pset_fapl_multi_l
+ MODULE PROCEDURE h5pset_fapl_multi_s
+ END INTERFACE
+
+CONTAINS
+
+!****s* H5P/h5pcreate_f
+! NAME
+! h5pcreate_f
+!
+! PURPOSE
+! Creates a new property as an instance of a property
+! list class.
+!
+! INPUTS
+! class - type of the property class to be created.
+! Possible values are:
+! H5P_FILE_CREATE_F
+! H5P_FILE_ACCESS_F
+! H5P_DATASET_CREATE_F
+! H5P_DATASET_XFER_F
+! H5P_FILE_MOUNT_F
+! OUTPUTS
+! prp_id - property list identifier
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pcreate_f(class, prp_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: class ! The type of the property list
+ ! to be created. Possible values are:
+ ! H5P_FILE_CREATE_F
+ ! H5P_FILE_ACCESS_F
+ ! H5P_DATASET_CREATE_F
+ ! H5P_DATASET_XFER_F
+ ! H5P_FILE_MOUNT_F
+ INTEGER(HID_T), INTENT(OUT) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+! INTEGER, EXTERNAL :: h5pcreate_c
+! MS FORTRAN needs explicit interface for C functions called here.
!
-! This file contains Fortran90 interfaces for H5P functions.
-!
- MODULE H5P
-
- USE H5GLOBAL
-
- INTERFACE h5pset_fill_value_f
- MODULE PROCEDURE h5pset_fill_value_integer
- MODULE PROCEDURE h5pset_fill_value_real
- MODULE PROCEDURE h5pset_fill_value_char
- END INTERFACE
-
- INTERFACE h5pget_fill_value_f
- MODULE PROCEDURE h5pget_fill_value_integer
- MODULE PROCEDURE h5pget_fill_value_real
- MODULE PROCEDURE h5pget_fill_value_char
- END INTERFACE
-
- INTERFACE h5pset_f
- MODULE PROCEDURE h5pset_integer
- MODULE PROCEDURE h5pset_real
- MODULE PROCEDURE h5pset_char
- END INTERFACE
-
- INTERFACE h5pget_f
- MODULE PROCEDURE h5pget_integer
- MODULE PROCEDURE h5pget_real
- MODULE PROCEDURE h5pget_char
- END INTERFACE
-
- INTERFACE h5pregister_f
- MODULE PROCEDURE h5pregister_integer
- MODULE PROCEDURE h5pregister_real
- MODULE PROCEDURE h5pregister_char
- END INTERFACE
-
- INTERFACE h5pinsert_f
- MODULE PROCEDURE h5pinsert_integer
- MODULE PROCEDURE h5pinsert_real
- MODULE PROCEDURE h5pinsert_char
- END INTERFACE
-
- INTERFACE h5pset_fapl_multi_f
- MODULE PROCEDURE h5pset_fapl_multi_l
- MODULE PROCEDURE h5pset_fapl_multi_s
- END INTERFACE
-
-
- CONTAINS
-
-!----------------------------------------------------------------------
-! Name: h5pcreate_f
-!
-! Purpose: Creates a new property as an instance of a property
-! list class.
-!
-! Inputs:
-! class - type of the property class to be created.
-! Possible values are:
-! H5P_FILE_CREATE_F
-! H5P_FILE_ACCESS_F
-! H5P_DATASET_CREATE_F
-! H5P_DATASET_XFER_F
-! H5P_FILE_MOUNT_F
-! Outputs:
-! prp_id - property list identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
+ INTERFACE
+ INTEGER FUNCTION h5pcreate_c(class, prp_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PCREATE_C'::h5pcreate_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: class
+ INTEGER(HID_T), INTENT(OUT) :: prp_id
+ END FUNCTION h5pcreate_c
+ END INTERFACE
+
+ hdferr = h5pcreate_c(class, prp_id)
+ END SUBROUTINE h5pcreate_f
+
+!****s* H5P/h5pset_preserve_f
+! NAME
+! h5pset_preserve_f
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
+! PURPOSE
+! Sets the dataset transfer property list status to
+! TRUE or FALSE for initializing compound datatype
+! members during write/read operations.
!
-! Comment:
-!----------------------------------------------------------------------
- SUBROUTINE h5pcreate_f(class, prp_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: class ! The type of the property list
- ! to be created. Possible values
- ! are:
- ! H5P_FILE_CREATE_F
- ! H5P_FILE_ACCESS_F
- ! H5P_DATASET_CREATE_F
- ! H5P_DATASET_XFER_F
- ! H5P_FILE_MOUNT_F
- INTEGER(HID_T), INTENT(OUT) :: prp_id ! Property list identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5pcreate_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! INPUTS
+! prp_id - property list identifier
+! flag - status flag
!
- INTERFACE
- INTEGER FUNCTION h5pcreate_c(class, prp_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PCREATE_C'::h5pcreate_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: class
- INTEGER(HID_T), INTENT(OUT) :: prp_id
- END FUNCTION h5pcreate_c
- END INTERFACE
-
- hdferr = h5pcreate_c(class, prp_id)
- END SUBROUTINE h5pcreate_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_preserve_f
-!
-! Purpose: Sets the dataset transfer property list status to
-! TRUE or FALSE for initializing compound datatype
-! members during write/read operations.
-!
-! Inputs:
-! prp_id - property list identifier
-! flag - status flag
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-! Datatype of the flag parameter is changed from
-! INTEGER to LOGICAL
-! June 4, 2003
+! OPTIONAL PARAMETERS
+! NONE
!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5pset_preserve_f(prp_id, flag, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- LOGICAL, INTENT(IN) :: flag ! TRUE/FALSE flag to set the dataset
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Datatype of the flag parameter is changed from
+! INTEGER to LOGICAL June 4, 2003
+!
+! SOURCE
+ SUBROUTINE h5pset_preserve_f(prp_id, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ LOGICAL, INTENT(IN) :: flag ! TRUE/FALSE flag to set the dataset
! transfer property for partila writing/reading
! compound datatype
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: flag_c
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: flag_c
! INTEGER, EXTERNAL :: h5pset_preserve_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pset_preserve_c(prp_id, flag_c)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_PRESERVE_C'::h5pset_preserve_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER :: flag_c
- END FUNCTION h5pset_preserve_c
- END INTERFACE
- flag_c = 0
- if(flag) flag_c = 1
- hdferr = h5pset_preserve_c(prp_id, flag_c)
- END SUBROUTINE h5pset_preserve_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_preserve_f
-!
-! Purpose: Checks status of the dataset transfer property list.
-!
-! Inputs:
-! prp_id - property list identifier
-! Outputs:
-! flag - status flag
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-! Datatype of the flag parameter is changed from
-! INTEGER to LOGICAL
-! June 4, 2003
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_preserve_f(prp_id, flag, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- LOGICAL, INTENT(OUT) :: flag ! TRUE/FALSE flag. Shows status of the dataset's
+ INTERFACE
+ INTEGER FUNCTION h5pset_preserve_c(prp_id, flag_c)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_PRESERVE_C'::h5pset_preserve_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER :: flag_c
+ END FUNCTION h5pset_preserve_c
+ END INTERFACE
+ flag_c = 0
+ IF(flag) flag_c = 1
+ hdferr = h5pset_preserve_c(prp_id, flag_c)
+ END SUBROUTINE h5pset_preserve_f
+
+!****s* H5P/h5pget_preserve_f
+! NAME
+! h5pget_preserve_f
+!
+! PURPOSE
+! Checks status of the dataset transfer property list.
+!
+! INPUTS
+! prp_id - property list identifier
+!
+! OUTPUTS
+! flag - status flag
+! hdferr - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Datatype of the flag parameter is changed from
+! INTEGER to LOGICAL
+! June 4, 2003
+!
+! SOURCE
+ SUBROUTINE h5pget_preserve_f(prp_id, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ LOGICAL, INTENT(OUT) :: flag ! TRUE/FALSE flag. Shows status of the dataset's
! transfer property for partial writing/reading
! compound datatype
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: flag_c
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: flag_c
! INTEGER, EXTERNAL :: h5pget_preserve_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pget_preserve_c(prp_id, flag_c)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_PRESERVE_C'::h5pget_preserve_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER :: flag_c
- END FUNCTION h5pget_preserve_c
- END INTERFACE
-
- hdferr = h5pget_preserve_c(prp_id, flag_c)
- flag = .FALSE.
- if(flag_c .eq. 1) flag = .TRUE.
- END SUBROUTINE h5pget_preserve_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_class_f
-!
-! Purpose: Returns the property list class for a property list.
-!
-! Inputs:
-! prp_id - property list identifier
-! Outputs:
-! classtype - property list class
-! Possible values are:
-! H5P_ROOT_F
-! H5P_FILE_CREATE_F
-! H5P_FILE_ACCESS_F
-! H5PE_DATASET_CREATE_F
-! H5P_DATASET_XFER_F
-! H5P_FILE_MOUNT_F
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
+ INTERFACE
+ INTEGER FUNCTION h5pget_preserve_c(prp_id, flag_c)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_PRESERVE_C'::h5pget_preserve_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER :: flag_c
+ END FUNCTION h5pget_preserve_c
+ END INTERFACE
+
+ hdferr = h5pget_preserve_c(prp_id, flag_c)
+ flag = .FALSE.
+ IF(flag_c .EQ. 1) flag = .TRUE.
+ END SUBROUTINE h5pget_preserve_f
+
+!****s* H5P/h5pget_class_f
+! NAME
+! h5pget_class_f
+!
+! PURPOSE
+! Returns the property list class for a property list.
+!
+! INPUTS
+!
+! prp_id - property list identifier
+! OUTPUTS
+!
+! classtype - property list class
+! Possible values are:
+! H5P_ROOT_F
+! H5P_FILE_CREATE_F
+! H5P_FILE_ACCESS_F
+! H5PE_DATASET_CREATE_F
+! H5P_DATASET_XFER_F
+! H5P_FILE_MOUNT_F
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pget_class_f(prp_id, classtype, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: classtype ! The type of the property list
+ ! to be created. Possible values are:
+ ! H5P_ROOT_F
+ ! H5P_FILE_CREATE_F
+ ! H5P_FILE_ACCESS_F
+ ! H5PE_DATASET_CREATE_F
+ ! H5P_DATASET_XFER_F
+ ! H5P_FILE_MOUNT_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+! INTEGER, EXTERNAL :: h5pget_class_c
+! MS FORTRAN needs explicit interface for C functions called here.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
+ INTERFACE
+ INTEGER FUNCTION h5pget_class_c(prp_id, classtype)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_CLASS_C'::h5pget_class_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: classtype
+ END FUNCTION h5pget_class_c
+ END INTERFACE
+
+ hdferr = h5pget_class_c(prp_id, classtype)
+ END SUBROUTINE h5pget_class_f
+
+!****s* H5P/h5pcopy_f
+! NAME
+! h5pcopy_f
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_class_f(prp_id, classtype, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(OUT) :: classtype ! The type of the property list
- ! to be created. Possible values
- ! are:
- ! H5P_ROOT_F
- ! H5P_FILE_CREATE_F
- ! H5P_FILE_ACCESS_F
- ! H5PE_DATASET_CREATE_F
- ! H5P_DATASET_XFER_F
- ! H5P_FILE_MOUNT_F
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5pget_class_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! PURPOSE
+! Copies an existing property list to create a new
+! property list
!
- INTERFACE
- INTEGER FUNCTION h5pget_class_c(prp_id, classtype)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_CLASS_C'::h5pget_class_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER, INTENT(OUT) :: classtype
- END FUNCTION h5pget_class_c
- END INTERFACE
-
- hdferr = h5pget_class_c(prp_id, classtype)
- END SUBROUTINE h5pget_class_f
-
-!----------------------------------------------------------------------
-! Name: h5pcopy_f
-!
-! Purpose: Copies an existing property list to create a new
-! property list
-!
-! Inputs:
-! prp_id - property list identifier
-! Outputs:
-! new_prp_id - new property list identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! INPUTS
+! prp_id - property list identifier
+! OUTPUTS
+! new_prp_id - new property list identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5pcopy_f(prp_id, new_prp_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HID_T), INTENT(OUT) :: new_prp_id
- ! Identifier of property list
- ! copy
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pcopy_f(prp_id, new_prp_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(OUT) :: new_prp_id ! Identifier of property list
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pcopy_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pcopy_c(prp_id, new_prp_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PCOPY_C'::h5pcopy_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(HID_T), INTENT(OUT) :: new_prp_id
- END FUNCTION h5pcopy_c
- END INTERFACE
-
- hdferr = h5pcopy_c(prp_id, new_prp_id)
- END SUBROUTINE h5pcopy_f
-
-!----------------------------------------------------------------------
-! Name: h5pclose_f
-!
-! Purpose: Terminates access to a property list.
-!
-! Inputs:
-! prp_id - identifier of the property list to
-! terminate access to.
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5pclose_f(prp_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTERFACE
+ INTEGER FUNCTION h5pcopy_c(prp_id, new_prp_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PCOPY_C'::h5pcopy_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(OUT) :: new_prp_id
+ END FUNCTION h5pcopy_c
+ END INTERFACE
+
+ hdferr = h5pcopy_c(prp_id, new_prp_id)
+ END SUBROUTINE h5pcopy_f
+
+!****s* H5P/h5pclose_f
+! NAME
+! h5pclose_f
+!
+! PURPOSE
+! Terminates access to a property list.
+!
+! INPUTS
+! prp_id - identifier of the property list to
+! terminate access to.
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pclose_f(prp_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pclose_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pclose_c(prp_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PCLOSE_C'::h5pclose_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- END FUNCTION h5pclose_c
- END INTERFACE
-
- hdferr = h5pclose_c(prp_id)
- END SUBROUTINE h5pclose_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_chunk_f
-!
-! Purpose: Sets the size of the chunks used to store
-! a chunked layout dataset.
-!
-! Inputs:
-! prp_id - datatset creation property list identifier
-! ndims - number of dimensions for each chunk
-! dims - array with dimension sizes for each chunk
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5pset_chunk_f(prp_id, ndims, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(IN) :: ndims ! Number of chunk dimensions
- INTEGER(HSIZE_T), DIMENSION(ndims), INTENT(IN) :: dims
- ! Array containing sizes of
- ! chunk dimensions
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTERFACE
+ INTEGER FUNCTION h5pclose_c(prp_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PCLOSE_C'::h5pclose_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ END FUNCTION h5pclose_c
+ END INTERFACE
+
+ hdferr = h5pclose_c(prp_id)
+ END SUBROUTINE h5pclose_f
+
+!****s* H5P/h5pset_chunk_f
+! NAME
+! h5pset_chunk_f
+!
+! PURPOSE
+! Sets the size of the chunks used to store
+! a chunked layout dataset.
+!
+! INPUTS
+! prp_id - datatset creation property list identifier
+! ndims - number of dimensions for each chunk
+! dims - array with dimension sizes for each chunk
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pset_chunk_f(prp_id, ndims, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: ndims ! Number of chunk dimensions
+ INTEGER(HSIZE_T), DIMENSION(ndims), INTENT(IN) :: dims
+ ! Array containing sizes of
+ ! chunk dimensions
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pset_chunk_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pset_chunk_c(prp_id, ndims, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_CHUNK_C'::h5pset_chunk_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER, INTENT(IN) :: ndims
- INTEGER(HSIZE_T), DIMENSION(ndims), INTENT(IN) :: dims
- END FUNCTION h5pset_chunk_c
- END INTERFACE
-
- hdferr = h5pset_chunk_c(prp_id, ndims, dims)
- END SUBROUTINE h5pset_chunk_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_chunk_f
-!
-! Purpose: Retrieves the size of chunks for the raw data of a
-! chunked layout dataset
-!
-! Inputs:
-! prp_id - property list identifier
-! ndims - size of dims array
-! Outputs:
-! dims - array with dimension sizes for each chunk
-! hdferr: - error code
-! Success: number of chunk dimensions
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5pget_chunk_f(prp_id, ndims, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(IN) :: ndims ! Number of chunk dimensions to
- ! to return
- INTEGER(HSIZE_T), DIMENSION(ndims), INTENT(OUT) :: dims
- ! Array containing sizes of
- ! chunk dimensions
- INTEGER, INTENT(OUT) :: hdferr ! Error code; number of
- ! chunk dimensions on success,
- ! -1 on failure
-
+ INTERFACE
+ INTEGER FUNCTION h5pset_chunk_c(prp_id, ndims, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_CHUNK_C'::h5pset_chunk_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: ndims
+ INTEGER(HSIZE_T), DIMENSION(ndims), INTENT(IN) :: dims
+ END FUNCTION h5pset_chunk_c
+ END INTERFACE
+
+ hdferr = h5pset_chunk_c(prp_id, ndims, dims)
+ END SUBROUTINE h5pset_chunk_f
+
+!****s* H5P/h5pget_chunk_f
+! NAME
+! h5pget_chunk_f
+!
+! PURPOSE
+! Retrieves the size of chunks for the raw data of a
+! chunked layout dataset
+!
+! INPUTS
+! prp_id - property list identifier
+! ndims - size of dims array
+! OUTPUTS
+! dims - array with dimension sizes for each chunk
+! hdferr - error code
+! Success: number of chunk dimensions
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pget_chunk_f(prp_id, ndims, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: ndims ! Number of chunk dimensions to
+ ! to return
+ INTEGER(HSIZE_T), DIMENSION(ndims), INTENT(OUT) :: dims
+ ! Array containing sizes of
+ ! chunk dimensions
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! number of chunk dimensions on success,
+ ! -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pget_chunk_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pget_chunk_c(prp_id, ndims, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_CHUNK_C'::h5pget_chunk_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER :: ndims
- INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: dims
- END FUNCTION h5pget_chunk_c
- END INTERFACE
-
- hdferr = h5pget_chunk_c(prp_id, ndims, dims)
- END SUBROUTINE h5pget_chunk_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_deflate_f
-!
-! Purpose: Sets compression method and compression level.
-!
-! Inputs:
-! prp_id - property list identifier
-! level - compression level
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
+ INTERFACE
+ INTEGER FUNCTION h5pget_chunk_c(prp_id, ndims, dims)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_CHUNK_C'::h5pget_chunk_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER :: ndims
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: dims
+ END FUNCTION h5pget_chunk_c
+ END INTERFACE
- SUBROUTINE h5pset_deflate_f(prp_id, level, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(IN) :: level ! Compression level
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ hdferr = h5pget_chunk_c(prp_id, ndims, dims)
+ END SUBROUTINE h5pget_chunk_f
-! INTEGER, EXTERNAL :: h5pset_deflate_c
-! MS FORTRAN needs explicit interface for C functions called here.
+!****s* H5P/h5pset_deflate_f
+! NAME
+! h5pset_deflate_f
+!
+! PURPOSE
+! Sets compression method and compression level.
+!
+! INPUTS
+! prp_id - property list identifier
+! level - compression level
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
!
- INTERFACE
- INTEGER FUNCTION h5pset_deflate_c(prp_id, level)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_DEFLATE_C'::h5pset_deflate_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER, INTENT(IN) :: level
- END FUNCTION h5pset_deflate_c
- END INTERFACE
- hdferr = h5pset_deflate_c(prp_id, level)
-
- END SUBROUTINE h5pset_deflate_f
-
-!----------------------------------------------------------------------
-! Name: h5pset(get)fill_value_f
-!
-! Purpose: Sets(gets) fill value for a dataset creation property list
-!
-! Inputs:
-! prp_id - dataset creation property list identifier
-! type_id - datatype identifier for fill value
-! fillvalue - fill value
-! Outputs:
-! ( type_id - datatype identifier for fill value )
-! ( fillvalue - fill value )
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
+! AUTHOR
+! Elena Pourmal
! August 12, 1999
!
-! Modifications: Explicit Fortran interfaces were added for
+! HISTORY
+! Explicit Fortran interfaces were added for
! called C functions (it is needed for Windows
! port). March 14, 2001
-!
-! Comment: h5pset(get)fill_value_f function is overloaded to support
-! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes.
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5pset_fill_value_integer(prp_id, type_id, fillvalue, &
- hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
- ! of fillvalue datatype
- ! (in memory)
- INTEGER, INTENT(IN) :: fillvalue ! Fillvalue
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+!
+! SOURCE
+ SUBROUTINE h5pset_deflate_f(prp_id, level, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: level ! Compression level
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
-! INTEGER, EXTERNAL :: h5pset_fill_value_integer_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5pset_fill_value_integer_c(prp_id, type_id, fillvalue)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FILL_VALUE_INTEGER_C'::h5pset_fill_value_integer_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(HID_T), INTENT(IN) :: type_id
- INTEGER, INTENT(IN) :: fillvalue
- END FUNCTION h5pset_fill_value_integer_c
- END INTERFACE
-
- hdferr = h5pset_fill_value_integer_c(prp_id, type_id, fillvalue)
- END SUBROUTINE h5pset_fill_value_integer
-
-
- SUBROUTINE h5pget_fill_value_integer(prp_id, type_id, fillvalue, &
- hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
- ! of fillvalue datatype
- ! (in memory)
- INTEGER, INTENT(IN) :: fillvalue ! Fillvalue
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5pget_fill_value_integer_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5pget_fill_value_integer_c(prp_id, type_id, fillvalue)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FILL_VALUE_INTEGER_C'::h5pget_fill_value_integer_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(HID_T), INTENT(IN) :: type_id
- INTEGER :: fillvalue
- END FUNCTION h5pget_fill_value_integer_c
- END INTERFACE
-
- hdferr = h5pget_fill_value_integer_c(prp_id, type_id, fillvalue)
- END SUBROUTINE h5pget_fill_value_integer
-
-
- SUBROUTINE h5pset_fill_value_real(prp_id, type_id, fillvalue, &
- hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
- ! of fillvalue datatype
- ! (in memory)
- REAL, INTENT(IN) :: fillvalue ! Fillvalue
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5pset_fill_value_real_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5pset_fill_value_real_c(prp_id, type_id, fillvalue)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FILL_VALUE_REAL_C'::h5pset_fill_value_real_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(HID_T), INTENT(IN) :: type_id
- REAL, INTENT(IN) :: fillvalue
- END FUNCTION h5pset_fill_value_real_c
- END INTERFACE
-
- hdferr = h5pset_fill_value_real_c(prp_id, type_id, fillvalue)
- END SUBROUTINE h5pset_fill_value_real
-
-
- SUBROUTINE h5pget_fill_value_real(prp_id, type_id, fillvalue, &
- hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
- ! of fillvalue datatype
- ! (in memory)
- REAL, INTENT(IN) :: fillvalue ! Fillvalue
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5pget_fill_value_real_c
+! INTEGER, EXTERNAL :: h5pset_deflate_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pget_fill_value_real_c(prp_id, type_id, fillvalue)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FILL_VALUE_REAL_C'::h5pget_fill_value_real_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(HID_T), INTENT(IN) :: type_id
- REAL :: fillvalue
- END FUNCTION h5pget_fill_value_real_c
- END INTERFACE
-
- hdferr = h5pget_fill_value_real_c(prp_id, type_id, fillvalue)
- END SUBROUTINE h5pget_fill_value_real
-
-
-
- SUBROUTINE h5pset_fill_value_char(prp_id, type_id, fillvalue, &
- hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
- ! of fillvalue datatype
- ! (in memory)
- CHARACTER, INTENT(IN) :: fillvalue ! Fillvalue
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5pset_fill_valuec_c
+ INTERFACE
+ INTEGER FUNCTION h5pset_deflate_c(prp_id, level)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_DEFLATE_C'::h5pset_deflate_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: level
+ END FUNCTION h5pset_deflate_c
+ END INTERFACE
+ hdferr = h5pset_deflate_c(prp_id, level)
+
+ END SUBROUTINE h5pset_deflate_f
+
+!****s* H5P/h5pget_version_f
+! NAME
+! h5pget_version_f
+!
+! PURPOSE
+! Retrieves the version information of various objects
+! for a file creation property list
+!
+! INPUTS
+! prp_id - file createion property list identifier
+! OUTPUTS
+! boot - super block version number
+! freelist - global freelist version number
+! stab - symbol table version number
+! shhdr - shared object header version number
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pget_version_f(prp_id, boot, freelist, &
+ stab, shhdr, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, DIMENSION(:), INTENT(OUT) :: boot ! Array to put boot
+ ! block version number
+ INTEGER, DIMENSION(:), INTENT(OUT) :: freelist ! Array to put global
+ ! Freelist version number
+
+ INTEGER, DIMENSION(:), INTENT(OUT) :: stab ! Array to put symbol
+ ! table version number
+ INTEGER, DIMENSION(:), INTENT(OUT) :: shhdr ! Array to put shared
+ ! object header version number
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+! INTEGER, EXTERNAL :: h5pget_version_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pset_fill_valuec_c(prp_id, type_id, fillvalue)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FILL_VALUEC_C'::h5pset_fill_valuec_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: fillvalue
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(HID_T), INTENT(IN) :: type_id
- CHARACTER, INTENT(IN) :: fillvalue
- END FUNCTION h5pset_fill_valuec_c
- END INTERFACE
-
- hdferr = h5pset_fill_valuec_c(prp_id, type_id, fillvalue)
- END SUBROUTINE h5pset_fill_value_char
-
- SUBROUTINE h5pget_fill_value_char(prp_id, type_id, fillvalue, &
- hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
- ! of fillvalue datatype
- ! (in memory)
- CHARACTER, INTENT(IN) :: fillvalue ! Fillvalue
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5pget_fill_valuec_c
-! MS FORTRAN needs explicit interface for C functions called here.
+ INTERFACE
+ INTEGER FUNCTION h5pget_version_c(prp_id, boot, freelist, stab, shhdr)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_VERSION_C'::h5pget_version_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, DIMENSION(:), INTENT(OUT) :: boot
+ INTEGER, DIMENSION(:), INTENT(OUT) :: freelist
+ INTEGER, DIMENSION(:), INTENT(OUT) :: stab
+ INTEGER, DIMENSION(:), INTENT(OUT) :: shhdr
+ END FUNCTION h5pget_version_c
+ END INTERFACE
+
+ hdferr = h5pget_version_c(prp_id, boot, freelist, stab, shhdr)
+ END SUBROUTINE h5pget_version_f
+
+!****s* H5P/h5pset_userblock_f
+! NAME
+! h5pset_userblock_f
!
- INTERFACE
- INTEGER FUNCTION h5pget_fill_valuec_c(prp_id, type_id, fillvalue)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FILL_VALUEC_C'::h5pget_fill_valuec_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: fillvalue
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(HID_T), INTENT(IN) :: type_id
- CHARACTER :: fillvalue
- END FUNCTION h5pget_fill_valuec_c
- END INTERFACE
-
- hdferr = h5pget_fill_valuec_c(prp_id, type_id, fillvalue)
- END SUBROUTINE h5pget_fill_value_char
-
-!----------------------------------------------------------------------
-! Name: h5pget_version_f
-!
-! Purpose: Retrieves the version information of various objects
-! for a file creation property list
-!
-! Inputs:
-! prp_id - file createion property list identifier
-! Outputs:
-! boot - super block version number
-! freelist - global freelist version number
-! stab - symbol table version number
-! shhdr - shared object header version number
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Sets user block size
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
+! INPUTS
+! prp_id - file creation property list to modify
+! size - size of the user-block in bytes
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_version_f(prp_id, boot, freelist, &
- stab, shhdr, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, DIMENSION(:), INTENT(OUT) :: boot !array to put boot
- !block version number
- INTEGER, DIMENSION(:), INTENT(OUT) :: freelist !array to put global
- !freelist version number
-
- INTEGER, DIMENSION(:), INTENT(OUT) :: stab !array to put symbol
- !table version number
- INTEGER, DIMENSION(:), INTENT(OUT) :: shhdr !array to put shared
- !object header version number
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5pget_version_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
!
- INTERFACE
- INTEGER FUNCTION h5pget_version_c(prp_id, boot, freelist, stab, shhdr)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_VERSION_C'::h5pget_version_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER, DIMENSION(:), INTENT(OUT) :: boot
- INTEGER, DIMENSION(:), INTENT(OUT) :: freelist
- INTEGER, DIMENSION(:), INTENT(OUT) :: stab
- INTEGER, DIMENSION(:), INTENT(OUT) :: shhdr
- END FUNCTION h5pget_version_c
- END INTERFACE
-
- hdferr = h5pget_version_c(prp_id, boot, freelist, stab, shhdr)
- END SUBROUTINE h5pget_version_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_userblock_f
-!
-! Purpose: Sets user block size
-!
-! Inputs:
-! prp_id - file creation property list to modify
-! size - size of the user-block in bytes
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_userblock_f (prp_id, size, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HSIZE_T), INTENT(IN) :: size !Size of the user-block in bytes
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+! SOURCE
+ SUBROUTINE h5pset_userblock_f (prp_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HSIZE_T), INTENT(IN) :: size ! Size of the user-block in bytes
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pset_userblock_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pset_userblock_c(prp_id, size)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_USERBLOCK_C'::h5pset_userblock_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(HSIZE_T), INTENT(IN) :: size
- END FUNCTION h5pset_userblock_c
- END INTERFACE
-
- hdferr = h5pset_userblock_c(prp_id, size)
- END SUBROUTINE h5pset_userblock_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_userblock_f
-!
-! Purpose: Gets user block size.
-!
-! Inputs:
-! prp_id - file creation property list identifier
-! Outputs:
-! block_size - size of the user block in bytes
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5pget_userblock_f(prp_id, block_size, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HSIZE_T), INTENT(OUT) :: block_size !Size of the
- !user-block in bytes
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTERFACE
+ INTEGER FUNCTION h5pset_userblock_c(prp_id, size)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_USERBLOCK_C'::h5pset_userblock_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(IN) :: size
+ END FUNCTION h5pset_userblock_c
+ END INTERFACE
+ hdferr = h5pset_userblock_c(prp_id, size)
+ END SUBROUTINE h5pset_userblock_f
+
+!****s* H5P/h5pget_userblock_f
+! NAME
+! h5pget_userblock_f
+!
+! PURPOSE
+! Gets user block size.
+!
+! INPUTS
+!
+! prp_id - file creation property list identifier
+! OUTPUTS
+!
+! block_size - size of the user block in bytes
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pget_userblock_f(prp_id, block_size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HSIZE_T), INTENT(OUT) :: block_size ! Size of the
+ ! user-block in bytes
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pget_userblock_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pget_userblock_c(prp_id, block_size)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_USERBLOCK_C'::h5pget_userblock_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(HSIZE_T), INTENT(OUT) :: block_size
- END FUNCTION h5pget_userblock_c
- END INTERFACE
- hdferr = h5pget_userblock_c(prp_id, block_size)
- END SUBROUTINE h5pget_userblock_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_sizes_f
-!
-! Purpose: Sets the byte size of the offsets and lengths used
-! to address objects in an HDF5 file.
-!
-! Inputs:
-! prp_id - file creation property list identifier
-! sizeof_addr - size of an object offset in bytes
-! sizeof_size - size of an object length in bytes
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_sizes_f (prp_id, sizeof_addr, sizeof_size, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(SIZE_T), INTENT(IN) :: sizeof_addr !Size of an object
- !offset in bytes
- INTEGER(SIZE_T), INTENT(IN) :: sizeof_size !Size of an object
- !length in bytes
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
+ INTERFACE
+ INTEGER FUNCTION h5pget_userblock_c(prp_id, block_size)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_USERBLOCK_C'::h5pget_userblock_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(OUT) :: block_size
+ END FUNCTION h5pget_userblock_c
+ END INTERFACE
+ hdferr = h5pget_userblock_c(prp_id, block_size)
+ END SUBROUTINE h5pget_userblock_f
+
+!****s* H5P/h5pset_sizes_f
+! NAME
+! h5pset_sizes_f
+!
+! PURPOSE
+! Sets the byte size of the offsets and lengths used
+! to address objects in an HDF5 file.
+!
+! INPUTS
+! prp_id - file creation property list identifier
+! sizeof_addr - size of an object offset in bytes
+! sizeof_size - size of an object length in bytes
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pset_sizes_f (prp_id, sizeof_addr, sizeof_size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(SIZE_T), INTENT(IN) :: sizeof_addr ! Size of an object
+ ! offset in bytes
+ INTEGER(SIZE_T), INTENT(IN) :: sizeof_size ! Size of an object
+ ! length in bytes
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pset_sizes_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pset_sizes_c(prp_id, sizeof_addr, sizeof_size)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_SIZES_C'::h5pset_sizes_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(SIZE_T), INTENT(IN) :: sizeof_addr
- INTEGER(SIZE_T), INTENT(IN) :: sizeof_size
- END FUNCTION h5pset_sizes_c
- END INTERFACE
-
- hdferr = h5pset_sizes_c(prp_id, sizeof_addr, sizeof_size)
- END SUBROUTINE h5pset_sizes_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_sizes_f
-!
-! Purpose: Retrieves the size of the offsets and lengths used
-! in an HDF5 file
-!
-! Inputs:
-! prp_id - file creation property list identifier
-! Outputs:
-! sizeof_addr - size of an object offset in bytes
-! sizeof_size - size of an object length in bytes
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5pget_sizes_f(prp_id, sizeof_addr, sizeof_size, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(SIZE_T), INTENT(OUT) :: sizeof_addr !Size of an object
- !offset in bytes
- INTEGER(SIZE_T), INTENT(OUT) :: sizeof_size !Size of an object
- !length in bytes
-
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
+ INTERFACE
+ INTEGER FUNCTION h5pset_sizes_c(prp_id, sizeof_addr, sizeof_size)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_SIZES_C'::h5pset_sizes_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(SIZE_T), INTENT(IN) :: sizeof_addr
+ INTEGER(SIZE_T), INTENT(IN) :: sizeof_size
+ END FUNCTION h5pset_sizes_c
+ END INTERFACE
+
+ hdferr = h5pset_sizes_c(prp_id, sizeof_addr, sizeof_size)
+ END SUBROUTINE h5pset_sizes_f
+
+!****s* H5P/h5pget_sizes_f
+! NAME
+! h5pget_sizes_f
+!
+! PURPOSE
+! Retrieves the size of the offsets and lengths used
+! in an HDF5 file
+!
+! INPUTS
+! prp_id - file creation property list identifier
+! OUTPUTS
+!
+! sizeof_addr - size of an object offset in bytes
+! sizeof_size - size of an object length in bytes
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pget_sizes_f(prp_id, sizeof_addr, sizeof_size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(SIZE_T), INTENT(OUT) :: sizeof_addr ! Size of an object
+ ! offset in bytes
+ INTEGER(SIZE_T), INTENT(OUT) :: sizeof_size ! Size of an object
+ ! length in bytes
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pget_sizes_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pget_sizes_c(prp_id, sizeof_addr, sizeof_size)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_SIZES_C'::h5pget_sizes_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(SIZE_T), INTENT(OUT) :: sizeof_addr
- INTEGER(SIZE_T), INTENT(OUT) :: sizeof_size
- END FUNCTION h5pget_sizes_c
- END INTERFACE
-
- hdferr = h5pget_sizes_c(prp_id, sizeof_addr, sizeof_size)
- END SUBROUTINE h5pget_sizes_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_sym_k_f
-!
-! Purpose: Sets the size of parameters used to control the
-! symbol table nodes
-!
-! Inputs:
-! prp_id - file creation property list identifier
-! ik - symbol table tree rank
-! lk - symbol table node size
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_sym_k_f (prp_id, ik, lk, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(IN) :: ik ! Symbol table tree rank
- INTEGER, INTENT(IN) :: lk ! Symbol table node size
-
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTERFACE
+ INTEGER FUNCTION h5pget_sizes_c(prp_id, sizeof_addr, sizeof_size)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_SIZES_C'::h5pget_sizes_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(SIZE_T), INTENT(OUT) :: sizeof_addr
+ INTEGER(SIZE_T), INTENT(OUT) :: sizeof_size
+ END FUNCTION h5pget_sizes_c
+ END INTERFACE
+
+ hdferr = h5pget_sizes_c(prp_id, sizeof_addr, sizeof_size)
+ END SUBROUTINE h5pget_sizes_f
+
+!****s* H5P/h5pset_sym_k_f
+! NAME
+! h5pset_sym_k_f
+!
+! PURPOSE
+! Sets the size of parameters used to control the
+!symbol table nodes
+!
+! INPUTS
+!
+! prp_id - file creation property list identifier
+! ik - symbol table tree rank
+! lk - symbol table node size
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pset_sym_k_f (prp_id, ik, lk, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: ik ! Symbol table tree rank
+ INTEGER, INTENT(IN) :: lk ! Symbol table node size
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pset_sym_k_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pset_sym_k_c(prp_id, ik, lk)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_SYM_K_C'::h5pset_sym_k_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER, INTENT(IN) :: ik
- INTEGER, INTENT(IN) :: lk
- END FUNCTION h5pset_sym_k_c
- END INTERFACE
-
- hdferr = h5pset_sym_k_c(prp_id, ik, lk)
- END SUBROUTINE h5pset_sym_k_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_sym_k_f
-!
-! Purpose: Retrieves the size of the symbol table B-tree 1/2 rank
-! and the symbol table leaf node 1/2 size.
-!
-! Inputs:
-! prp_id - file creation property list identifier
-! Outputs:
-! ik - symbol table tree 1/2 rank
-! lk - symbol table node 1/2 size
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5pget_sym_k_f(prp_id, ik, lk, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(OUT) :: ik !Symbol table tree rank
- INTEGER, INTENT(OUT) :: lk !Symbol table node size
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTERFACE
+ INTEGER FUNCTION h5pset_sym_k_c(prp_id, ik, lk)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_SYM_K_C'::h5pset_sym_k_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: ik
+ INTEGER, INTENT(IN) :: lk
+ END FUNCTION h5pset_sym_k_c
+ END INTERFACE
+
+ hdferr = h5pset_sym_k_c(prp_id, ik, lk)
+ END SUBROUTINE h5pset_sym_k_f
+!****s* H5P/h5pget_sym_k_f
+! NAME
+! h5pget_sym_k_f
+!
+! PURPOSE
+! Retrieves the size of the symbol table B-tree 1/2 rank
+! and the symbol table leaf node 1/2 size.
+!
+! INPUTS
+!
+! prp_id - file creation property list identifier
+! OUTPUTS
+!
+! ik - symbol table tree 1/2 rank
+! lk - symbol table node 1/2 size
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pget_sym_k_f(prp_id, ik, lk, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: ik ! Symbol table tree rank
+ INTEGER, INTENT(OUT) :: lk ! Symbol table node size
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pget_sym_k_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pget_sym_k_c(prp_id, ik, lk)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_SYM_K_C'::h5pget_sym_k_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER, INTENT(OUT) :: ik
- INTEGER, INTENT(OUT) :: lk
- END FUNCTION h5pget_sym_k_c
- END INTERFACE
-
- hdferr = h5pget_sym_k_c(prp_id, ik, lk)
- END SUBROUTINE h5pget_sym_k_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_istore_k_f
-!
-! Purpose: Sets the size of the parameter used to control the
-! B-trees for indexing chunked datasets
-!
-! Inputs:
-! prp_id - file creation property list identifier
-! ik - 1/2 rank of chunked storage B-tree
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_istore_k_f (prp_id, ik, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(IN) :: ik ! 1/2 rank of chunked storage B-tree
-
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTERFACE
+ INTEGER FUNCTION h5pget_sym_k_c(prp_id, ik, lk)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_SYM_K_C'::h5pget_sym_k_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: ik
+ INTEGER, INTENT(OUT) :: lk
+ END FUNCTION h5pget_sym_k_c
+ END INTERFACE
+
+ hdferr = h5pget_sym_k_c(prp_id, ik, lk)
+ END SUBROUTINE h5pget_sym_k_f
+!****s* H5P/h5pset_istore_k_f
+! NAME
+! h5pset_istore_k_f
+!
+! PURPOSE
+! Sets the size of the parameter used to control the
+! B-trees for indexing chunked datasets
+!
+! INPUTS
+!
+! prp_id - file creation property list identifier
+! ik - 1/2 rank of chunked storage B-tree
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pset_istore_k_f (prp_id, ik, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: ik ! 1/2 rank of chunked storage B-tree
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pset_istore_k_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pset_istore_k_c(prp_id, ik)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_ISTORE_K_C'::h5pset_istore_k_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER, INTENT(IN) :: ik
- END FUNCTION h5pset_istore_k_c
- END INTERFACE
-
- hdferr = h5pset_istore_k_c(prp_id, ik)
- END SUBROUTINE h5pset_istore_k_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_istore_k_f
-!
-! Purpose: Queries the 1/2 rank of an indexed storage B-tree.
-!
-! Inputs:
-! prp_id - file creation property list identifier
-! Outputs:
-! ik - 1/2 rank of chunked storage B-tree
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5pget_istore_k_f(prp_id, ik, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(OUT) :: ik !1/2 rank of chunked storage B-tree
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTERFACE
+ INTEGER FUNCTION h5pset_istore_k_c(prp_id, ik)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_ISTORE_K_C'::h5pset_istore_k_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: ik
+ END FUNCTION h5pset_istore_k_c
+ END INTERFACE
+
+ hdferr = h5pset_istore_k_c(prp_id, ik)
+ END SUBROUTINE h5pset_istore_k_f
+
+!****s* H5P/h5pget_istore_k_f
+! NAME
+! h5pget_istore_k_f
+!
+! PURPOSE
+! Queries the 1/2 rank of an indexed storage B-tree.
+!
+! INPUTS
+!
+! prp_id - file creation property list identifier
+! OUTPUTS
+!
+! ik - 1/2 rank of chunked storage B-tree
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pget_istore_k_f(prp_id, ik, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: ik ! 1/2 rank of chunked storage B-tree
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pget_istore_k_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pget_istore_k_c(prp_id, ik)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_ISTORE_K_C'::h5pget_istore_k_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER, INTENT(OUT) :: ik
- END FUNCTION h5pget_istore_k_c
- END INTERFACE
-
- hdferr = h5pget_istore_k_c(prp_id, ik)
- END SUBROUTINE h5pget_istore_k_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_driver_f
-!
-! Purpose: Returns low-lever driver identifier.
-!
-! Inputs:
-! prp_id - file access or data transfer property
-! list identifier.
-! Outputs:
-! driver - low-level driver identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_driver_f(prp_id, driver, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HID_T), INTENT(OUT) :: driver !low-level file driver identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
+ INTERFACE
+ INTEGER FUNCTION h5pget_istore_k_c(prp_id, ik)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_ISTORE_K_C'::h5pget_istore_k_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: ik
+ END FUNCTION h5pget_istore_k_c
+ END INTERFACE
+
+ hdferr = h5pget_istore_k_c(prp_id, ik)
+ END SUBROUTINE h5pget_istore_k_f
+
+!****s* H5P/h5pget_driver_f
+! NAME
+! h5pget_driver_f
+!
+! PURPOSE
+! Returns low-lever driver identifier.
+!
+! INPUTS
+!
+! prp_id - file access or data transfer property
+! list identifier.
+! OUTPUTS
+!
+! driver - low-level driver identifier
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pget_driver_f(prp_id, driver, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(OUT) :: driver ! Low-level file driver identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pget_driver_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pget_driver_c(prp_id, driver)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_DRIVER_C'::h5pget_driver_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(HID_T), INTENT(OUT) :: driver
- END FUNCTION h5pget_driver_c
- END INTERFACE
-
- hdferr = h5pget_driver_c(prp_id, driver)
- END SUBROUTINE h5pget_driver_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_fapl_stdio_f
-!
-! Purpose: Sets the standard I/O driver.
-!
-! Inputs:
-! prp_id - file access property list identifier
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_fapl_stdio_f (prp_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
+ INTERFACE
+ INTEGER FUNCTION h5pget_driver_c(prp_id, driver)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_DRIVER_C'::h5pget_driver_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(OUT) :: driver
+ END FUNCTION h5pget_driver_c
+ END INTERFACE
+
+ hdferr = h5pget_driver_c(prp_id, driver)
+ END SUBROUTINE h5pget_driver_f
+
+!****s* H5P/h5pset_fapl_stdio_f
+! NAME
+! h5pset_fapl_stdio_f
+!
+! PURPOSE
+! Sets the standard I/O driver.
+!
+! INPUTS
+!
+! prp_id - file access property list identifier
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pset_fapl_stdio_f (prp_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
! INTEGER, EXTERNAL :: h5pset_fapl_stdio_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pset_fapl_stdio_c(prp_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FAPL_STDIO_C'::h5pset_fapl_stdio_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- END FUNCTION h5pset_fapl_stdio_c
- END INTERFACE
-
- hdferr = h5pset_fapl_stdio_c(prp_id)
- END SUBROUTINE h5pset_fapl_stdio_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_stdio_f
-!
-! Purpose: NOT AVAILABLE
-!
-! Inputs:
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_stdio_c(prp_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FAPL_STDIO_C'::h5pset_fapl_stdio_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ END FUNCTION h5pset_fapl_stdio_c
+ END INTERFACE
+
+ hdferr = h5pset_fapl_stdio_c(prp_id)
+ END SUBROUTINE h5pset_fapl_stdio_f
+
+!****s* H5P/h5pget_stdio_f
+! NAME
+! h5pget_stdio_f
+!
+! PURPOSE
+! NOT AVAILABLE
+!
+! INPUTS
+!
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
! SUBROUTINE h5pget_stdio_f (prp_id, io, hdferr)
!
! IMPLICIT NONE
@@ -1369,637 +1182,672 @@
!access property list is set to
!the stdio driver
! INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pget_stdio_c
! hdferr = h5pget_stdio_c(prp_id, io)
! END SUBROUTINE h5pget_stdio_f
-!----------------------------------------------------------------------
-! Name: h5pset_fapl_sec2_f
-!
-! Purpose: Sets the sec2 driver.
-!
-! Inputs:
-! prp_id - file access property list identifier
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_fapl_sec2_f (prp_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+!****s* H5P/h5pset_fapl_sec2_f
+! NAME
+! h5pset_fapl_sec2_f
+!
+! PURPOSE
+! Sets the sec2 driver.
+!
+! INPUTS
+!
+! prp_id - file access property list identifier
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pset_fapl_sec2_f (prp_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pset_fapl_sec2_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pset_fapl_sec2_c(prp_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FAPL_SEC2_C'::h5pset_fapl_sec2_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- END FUNCTION h5pset_fapl_sec2_c
- END INTERFACE
-
- hdferr = h5pset_fapl_sec2_c(prp_id)
- END SUBROUTINE h5pset_fapl_sec2_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_sec2_f
-!
-! Purpose: NOT AVAILABLE
-!
-! Inputs:
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
-! SUBROUTINE h5pget_sec2_f (prp_id, sec2, hdferr)
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_sec2_c(prp_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FAPL_SEC2_C'::h5pset_fapl_sec2_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ END FUNCTION h5pset_fapl_sec2_c
+ END INTERFACE
+
+ hdferr = h5pset_fapl_sec2_c(prp_id)
+ END SUBROUTINE h5pset_fapl_sec2_f
+
+!****s* H5P/h5pget_sec2_f
+! NAME
+! h5pget_sec2_f
+!
+! PURPOSE
+! NOT AVAILABLE
+!
+! INPUTS
+!
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE! SUBROUTINE h5pget_sec2_f (prp_id, sec2, hdferr)
! IMPLICIT NONE
! INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
! INTEGER, INTENT(OUT) :: sec2 ! value indicates whether the file
!driver uses the functions declared
!in the unistd.h file
! INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pget_sec2_c
! hdferr = h5pget_sec2_c(prp_id, sec2)
! END SUBROUTINE h5pget_sec2_f
-!----------------------------------------------------------------------
-! Name: h5pset_alignment_f
-!
-! Purpose: Sets alignment properties of a file access property list.
-!
-! Inputs:
-! prp_id - file access property list identifier
-! threshold - threshold value
-! alignment - alignment value
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_alignment_f(prp_id, threshold, alignment, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HSIZE_T), INTENT(IN) :: threshold ! Threshold value
- INTEGER(HSIZE_T), INTENT(IN) :: alignment ! alignment value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+!****s* H5P/h5pset_alignment_f
+! NAME
+! h5pset_alignment_f
+!
+! PURPOSE
+! Sets alignment properties of a file access property list.
+!
+! INPUTS
+!
+! prp_id - file access property list identifier
+! threshold - threshold value
+! alignment - alignment value
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pset_alignment_f(prp_id, threshold, alignment, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HSIZE_T), INTENT(IN) :: threshold ! Threshold value
+ INTEGER(HSIZE_T), INTENT(IN) :: alignment ! alignment value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pset_alignment_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pset_alignment_c(prp_id, threshold, alignment)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_ALIGNMENT_C'::h5pset_alignment_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(HSIZE_T), INTENT(IN) :: threshold
- INTEGER(HSIZE_T), INTENT(IN) :: alignment
- END FUNCTION h5pset_alignment_c
- END INTERFACE
-
- hdferr = h5pset_alignment_c(prp_id, threshold, alignment)
- END SUBROUTINE h5pset_alignment_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_alignment_f
-!
-! Purpose: Retrieves the current settings for alignment
-! properties from a file access property list.
-!
-! Inputs:
-! prp_id - file access property list identifier
-! Outputs:
-! threshold - threshold value
-! alignment - alignment value
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_alignment_f(prp_id, threshold, alignment, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HSIZE_T), INTENT(OUT) :: threshold ! Threshold value
- INTEGER(HSIZE_T), INTENT(OUT) :: alignment ! alignment value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
+ INTERFACE
+ INTEGER FUNCTION h5pset_alignment_c(prp_id, threshold, alignment)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_ALIGNMENT_C'::h5pset_alignment_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(IN) :: threshold
+ INTEGER(HSIZE_T), INTENT(IN) :: alignment
+ END FUNCTION h5pset_alignment_c
+ END INTERFACE
+
+ hdferr = h5pset_alignment_c(prp_id, threshold, alignment)
+ END SUBROUTINE h5pset_alignment_f
+
+!****s* H5P/h5pget_alignment_f
+! NAME
+! h5pget_alignment_f
+!
+! PURPOSE
+! Retrieves the current settings for alignment
+! properties from a file access property list.
+!
+! INPUTS
+! prp_id - file access property list identifier
+!
+! OUTPUTS
+! threshold - threshold value
+! alignment - alignment value
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pget_alignment_f(prp_id, threshold, alignment, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HSIZE_T), INTENT(OUT) :: threshold ! Threshold value
+ INTEGER(HSIZE_T), INTENT(OUT) :: alignment ! alignment value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pget_alignment_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pget_alignment_c(prp_id, threshold, alignment)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_ALIGNMENT_C'::h5pget_alignment_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(HSIZE_T), INTENT(OUT) :: threshold
- INTEGER(HSIZE_T), INTENT(OUT) :: alignment
- END FUNCTION h5pget_alignment_c
- END INTERFACE
-
- hdferr = h5pget_alignment_c(prp_id, threshold, alignment)
- END SUBROUTINE h5pget_alignment_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_fapl_core_f
-!
-! Purpose: Modifies the file access property list to use the
-! H5FD_CORE driver.
-!
-! Inputs: prp_id - file access property list identifier
-! increment - size, in bytes, of memory increments
-! backing_store - boolean flag indicating whether to write
-! the file contents to disk when the file is closed.
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_fapl_core_f(prp_id, increment, backing_store, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(SIZE_T), INTENT(IN) :: increment ! File block size in bytes.
- LOGICAL, INTENT(IN) :: backing_store ! flag to indicate that
- ! entire file contents are flushed to a file
- ! with the same name as this core file.
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: backing_store_flag
+ INTERFACE
+ INTEGER FUNCTION h5pget_alignment_c(prp_id, threshold, alignment)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_ALIGNMENT_C'::h5pget_alignment_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(OUT) :: threshold
+ INTEGER(HSIZE_T), INTENT(OUT) :: alignment
+ END FUNCTION h5pget_alignment_c
+ END INTERFACE
+
+ hdferr = h5pget_alignment_c(prp_id, threshold, alignment)
+ END SUBROUTINE h5pget_alignment_f
+
+!****s* H5P/h5pset_fapl_core_f
+! NAME
+! h5pset_fapl_core_f
+!
+! PURPOSE
+! Modifies the file access property list to use the
+! H5FD_CORE driver.
+!
+! INPUTS
+! prp_id - file access property list identifier
+! increment - size, in bytes, of memory increments
+! backing_store - boolean flag indicating whether to write
+! the file contents to disk when the file is closed.
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pset_fapl_core_f(prp_id, increment, backing_store, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(SIZE_T), INTENT(IN) :: increment ! File block size in bytes.
+ LOGICAL, INTENT(IN) :: backing_store ! Flag to indicate that
+ ! entire file contents are flushed to a file
+ ! with the same name as this core file.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: backing_store_flag
! INTEGER, EXTERNAL :: h5pset_fapl_core_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pset_fapl_core_c(prp_id, increment, backing_store_flag)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FAPL_CORE_C'::h5pset_fapl_core_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(SIZE_T), INTENT(IN) :: increment
- INTEGER :: backing_store_flag
- END FUNCTION h5pset_fapl_core_c
- END INTERFACE
- backing_store_flag = 0
- if(backing_store) backing_store_flag = 1
- hdferr = h5pset_fapl_core_c(prp_id, increment, backing_store_flag)
- END SUBROUTINE h5pset_fapl_core_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_fapl_core_f
-!
-! Purpose: Queries core file driver properties.
-!
-! Inputs:
-! prp_id - file access property list identifier
-! Outputs:
-! increment - size, in bytes, of memory increments
-! backing_store - boolean flag indicating whether to write
-! the file contents to disk when the file is closed.
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_fapl_core_f(prp_id, increment, backing_store, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(SIZE_T), INTENT(OUT) :: increment ! File block size in bytes.
- LOGICAL, INTENT(OUT) :: backing_store ! flag to indicate that
- ! entire file contents are flushed to a file
- ! with the same name as this core file.
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: backing_store_flag
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_core_c(prp_id, increment, backing_store_flag)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FAPL_CORE_C'::h5pset_fapl_core_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(SIZE_T), INTENT(IN) :: increment
+ INTEGER :: backing_store_flag
+ END FUNCTION h5pset_fapl_core_c
+ END INTERFACE
+ backing_store_flag = 0
+ IF(backing_store) backing_store_flag = 1
+ hdferr = h5pset_fapl_core_c(prp_id, increment, backing_store_flag)
+ END SUBROUTINE h5pset_fapl_core_f
+
+!****s* H5P/h5pget_fapl_core_f
+! NAME
+! h5pget_fapl_core_f
+!
+! PURPOSE
+! Queries core file driver properties.
+!
+! INPUTS
+! prp_id - file access property list identifier
+! OUTPUTS
+!
+! increment - size, in bytes, of memory increments
+! backing_store - boolean flag indicating whether to write
+! the file contents to disk when the file is closed.
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pget_fapl_core_f(prp_id, increment, backing_store, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(SIZE_T), INTENT(OUT) :: increment ! File block size in bytes.
+ LOGICAL, INTENT(OUT) :: backing_store ! Flag to indicate that
+ ! entire file contents are flushed to a file
+ ! with the same name as this core file.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: backing_store_flag
! INTEGER, EXTERNAL :: h5pget_fapl_core_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pget_fapl_core_c(prp_id, increment, backing_store_flag)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FAPL_CORE_C'::h5pget_fapl_core_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(SIZE_T), INTENT(OUT) :: increment
- INTEGER :: backing_store_flag
- END FUNCTION h5pget_fapl_core_c
- END INTERFACE
-
- hdferr = h5pget_fapl_core_c(prp_id, increment, backing_store_flag)
- backing_store =.FALSE.
- IF (backing_store_flag .EQ. 1) backing_store =.TRUE.
- END SUBROUTINE h5pget_fapl_core_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_fapl_family_f
-!
-! Purpose: Sets the file access property list to use the family driver.
-!
-! Inputs:
-! prp_id - file access property list identifier
-! memb_size - size in bytes of each file member
-! memb_plist - identifier of the file access property
-! list to be used for each family member
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_fapl_family_f(prp_id, memb_size, memb_plist , hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HSIZE_T), INTENT(IN) :: memb_size ! Logical size, in bytes,
- !of each family member
- INTEGER(HID_T), INTENT(IN) :: memb_plist !Identifier of the file
- !access property list for
- !each member of the family
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTERFACE
+ INTEGER FUNCTION h5pget_fapl_core_c(prp_id, increment, backing_store_flag)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FAPL_CORE_C'::h5pget_fapl_core_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(SIZE_T), INTENT(OUT) :: increment
+ INTEGER :: backing_store_flag
+ END FUNCTION h5pget_fapl_core_c
+ END INTERFACE
+
+ hdferr = h5pget_fapl_core_c(prp_id, increment, backing_store_flag)
+ backing_store =.FALSE.
+ IF (backing_store_flag .EQ. 1) backing_store =.TRUE.
+ END SUBROUTINE h5pget_fapl_core_f
+
+!****s* H5P/ h5pset_fapl_family_f
+! NAME
+! h5pset_fapl_family_f
+!
+! PURPOSE
+! Sets the file access property list to use the family driver.
+!
+! INPUTS
+! prp_id - file access property list identifier
+! memb_size - size in bytes of each file member
+! memb_plist - identifier of the file access property
+! list to be used for each family member
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pset_fapl_family_f(prp_id, memb_size, memb_plist , hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HSIZE_T), INTENT(IN) :: memb_size ! Logical size, in bytes,
+ ! of each family member
+ INTEGER(HID_T), INTENT(IN) :: memb_plist ! Identifier of the file
+ ! access property list for
+ ! each member of the family
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pset_fapl_family_f
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pset_fapl_family_c(prp_id, memb_size, memb_plist)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FAPL_FAMILY_C'::h5pset_fapl_family_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(HSIZE_T), INTENT(IN) :: memb_size
- INTEGER(HID_T), INTENT(IN) :: memb_plist
- END FUNCTION h5pset_fapl_family_c
- END INTERFACE
-
- hdferr = h5pset_fapl_family_c(prp_id, memb_size, memb_plist)
- END SUBROUTINE h5pset_fapl_family_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_fapl_family_f
-!
-! Purpose: Returns file access property list information.
-!
-! Inputs:
-! prp_id - file access property list identifier
-! Outputs:
-! memb_size - size in bytes of each file member
-! memb_plist - identifier of the file access property
-! list to be used for each family member
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_family_c(prp_id, memb_size, memb_plist)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FAPL_FAMILY_C'::h5pset_fapl_family_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(IN) :: memb_size
+ INTEGER(HID_T), INTENT(IN) :: memb_plist
+ END FUNCTION h5pset_fapl_family_c
+ END INTERFACE
- SUBROUTINE h5pget_fapl_family_f(prp_id, memb_size, memb_plist , hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HSIZE_T), INTENT(OUT) :: memb_size ! Logical size, in bytes,
- !of each family member
- INTEGER(HID_T), INTENT(OUT) :: memb_plist !Identifier of the file
- !access property list for
- !each member of the family
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ hdferr = h5pset_fapl_family_c(prp_id, memb_size, memb_plist)
+ END SUBROUTINE h5pset_fapl_family_f
+
+!****s* H5P/h5pget_fapl_family_f
+! NAME
+! h5pget_fapl_family_f
+!
+! PURPOSE
+! Returns file access property list information.
+!
+! INPUTS
+! prp_id - file access property list identifier
+! OUTPUTS
+! memb_size - size in bytes of each file member
+! memb_plist - identifier of the file access property
+! list to be used for each family member
+! hdferr - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pget_fapl_family_f(prp_id, memb_size, memb_plist , hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HSIZE_T), INTENT(OUT) :: memb_size ! Logical size, in bytes,
+ ! of each family member
+ INTEGER(HID_T), INTENT(OUT) :: memb_plist ! Identifier of the file
+ ! access property list for
+ ! each member of the family
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pget_fapl_family_f
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pget_fapl_family_c(prp_id, memb_size, memb_plist)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FAPL_FAMILY_C'::h5pget_fapl_family_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(HSIZE_T), INTENT(OUT) :: memb_size
- INTEGER(HID_T), INTENT(OUT) :: memb_plist
- END FUNCTION h5pget_fapl_family_c
- END INTERFACE
-
- hdferr = h5pget_fapl_family_c(prp_id, memb_size, memb_plist)
- END SUBROUTINE h5pget_fapl_family_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_cache_f
-!
-! Purpose: Sets the meta data cache and raw data chunk
-! cache parameters
-!
-! Inputs:
-! prp_id - file access property list identifier
-! mdc_nelmts - number of elements (objects) in the meta
-! data cache
-! rdcc_nelmts - number of elements (objects) in the raw
-! data chunk cache
-! rdcc_nbytes - total size of the raw data chunk cache, in bytes
-! rdcc_w0 - preemption policy (0 or 1)
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_cache_f(prp_id, mdc_nelmts,rdcc_nelmts, rdcc_nbytes, rdcc_w0, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(IN) :: mdc_nelmts !Number of elements (objects)
- ! in the meta data cache
- INTEGER(SIZE_T), INTENT(IN) :: rdcc_nelmts !Number of elements (objects)
- ! in the meta data cache
- INTEGER(SIZE_T), INTENT(IN) :: rdcc_nbytes !Total size of the raw data
- !chunk cache, in bytes
- REAL, INTENT(IN) :: rdcc_w0 !Preemption policy
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTERFACE
+ INTEGER FUNCTION h5pget_fapl_family_c(prp_id, memb_size, memb_plist)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FAPL_FAMILY_C'::h5pget_fapl_family_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(OUT) :: memb_size
+ INTEGER(HID_T), INTENT(OUT) :: memb_plist
+ END FUNCTION h5pget_fapl_family_c
+ END INTERFACE
+
+ hdferr = h5pget_fapl_family_c(prp_id, memb_size, memb_plist)
+ END SUBROUTINE h5pget_fapl_family_f
+
+!****s* H5P/h5pset_cache_f
+! NAME
+! h5pset_cache_f
+!
+! PURPOSE
+! Sets the meta data cache and raw data chunk
+! cache parameters
+!
+! INPUTS
+!
+! prp_id - file access property list identifier
+! mdc_nelmts - number of elements (objects) in the meta
+! data cache
+! rdcc_nelmts - number of elements (objects) in the raw
+! data chunk cache
+! rdcc_nbytes - total size of the raw data chunk cache, in bytes
+! rdcc_w0 - preemption policy (0 or 1)
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pset_cache_f(prp_id, mdc_nelmts,rdcc_nelmts, rdcc_nbytes, rdcc_w0, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: mdc_nelmts ! Number of elements (objects)
+ ! in the meta data cache
+ INTEGER(SIZE_T), INTENT(IN) :: rdcc_nelmts ! Number of elements (objects)
+ ! in the meta data cache
+ INTEGER(SIZE_T), INTENT(IN) :: rdcc_nbytes ! Total size of the raw data
+ ! chunk cache, in bytes
+ REAL, INTENT(IN) :: rdcc_w0 ! Preemption policy
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pset_cache_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pset_cache_c(prp_id,mdc_nelmts,rdcc_nelmts,rdcc_nbytes,rdcc_w0)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_CACHE_C'::h5pset_cache_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER, INTENT(IN) :: mdc_nelmts
- INTEGER(SIZE_T), INTENT(IN) :: rdcc_nelmts
- INTEGER(SIZE_T), INTENT(IN) :: rdcc_nbytes
- REAL, INTENT(IN) :: rdcc_w0
- END FUNCTION h5pset_cache_c
- END INTERFACE
-
- hdferr = h5pset_cache_c(prp_id, mdc_nelmts, rdcc_nelmts, rdcc_nbytes, rdcc_w0 )
- END SUBROUTINE h5pset_cache_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_cache_f
-!
-! Purpose: Queries the meta data cache and raw data chunk cache
-! parameters.
-!
-! Inputs:
-! prp_id - file access property list identifier
-! Outputs:
-! mdc_nelmts - number of elements (objects) in the meta
-! data cache
-! rdcc_nelmts - number of elements (objects) in the raw
-! data chunk cache
-! rdcc_nbytes - total size of the raw data chunk cache, in bytes
-! rdcc_w0 - preemption policy (0 or 1)
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Bug fix: type of the rdcc_nelmts parameter should be INTEGER
-! instead of INTEGER(SIZE_T) October 10, 2003
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_cache_f(prp_id, mdc_nelmts, rdcc_nelmts, rdcc_nbytes, rdcc_w0, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(OUT) :: mdc_nelmts !Number of elements (objects)
- ! in the meta data cache
- INTEGER(SIZE_T), INTENT(OUT) :: rdcc_nelmts !Number of elements (objects)
- ! in the meta data cache
- INTEGER(SIZE_T), INTENT(OUT) :: rdcc_nbytes !Total size of the raw data
- !chunk cache, in bytes
- REAL, INTENT(OUT) :: rdcc_w0 !Preemption policy
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
+ INTERFACE
+ INTEGER FUNCTION h5pset_cache_c(prp_id,mdc_nelmts,rdcc_nelmts,rdcc_nbytes,rdcc_w0)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_CACHE_C'::h5pset_cache_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: mdc_nelmts
+ INTEGER(SIZE_T), INTENT(IN) :: rdcc_nelmts
+ INTEGER(SIZE_T), INTENT(IN) :: rdcc_nbytes
+ REAL, INTENT(IN) :: rdcc_w0
+ END FUNCTION h5pset_cache_c
+ END INTERFACE
+ hdferr = h5pset_cache_c(prp_id, mdc_nelmts, rdcc_nelmts, rdcc_nbytes, rdcc_w0 )
+ END SUBROUTINE h5pset_cache_f
+
+!****s* H5P/h5pget_cache_f
+! NAME
+! h5pget_cache_f
+!
+! PURPOSE
+! Queries the meta data cache and raw data chunk cache
+! parameters.
+!
+! INPUTS
+! prp_id - file access property list identifier
+!
+! OUTPUTS
+! mdc_nelmts - number of elements (objects) in the meta
+! data cache
+! rdcc_nelmts - number of elements (objects) in the raw
+! data chunk cache
+! rdcc_nbytes - total size of the raw data chunk cache, in bytes
+! rdcc_w0 - preemption policy (0 or 1)
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Bug fix: type of the rdcc_nelmts parameter should be INTEGER
+! instead of INTEGER(SIZE_T) October 10, 2003
+!
+! SOURCE
+ SUBROUTINE h5pget_cache_f(prp_id, mdc_nelmts, rdcc_nelmts, rdcc_nbytes, rdcc_w0, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: mdc_nelmts ! Number of elements (objects)
+ ! in the meta data cache
+ INTEGER(SIZE_T), INTENT(OUT) :: rdcc_nelmts ! Number of elements (objects)
+ ! in the meta data cache
+ INTEGER(SIZE_T), INTENT(OUT) :: rdcc_nbytes ! Total size of the raw data
+ ! chunk cache, in bytes
+ REAL, INTENT(OUT) :: rdcc_w0 ! Preemption policy
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pget_cache_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pget_cache_c(prp_id,mdc_nelmts,rdcc_nelmts,rdcc_nbytes,rdcc_w0)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_CACHE_C'::h5pget_cache_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER, INTENT(OUT) :: mdc_nelmts
- INTEGER(SIZE_T), INTENT(OUT) :: rdcc_nelmts
- INTEGER(SIZE_T), INTENT(OUT) :: rdcc_nbytes
- REAL, INTENT(OUT) :: rdcc_w0
- END FUNCTION h5pget_cache_c
- END INTERFACE
-
- hdferr = h5pget_cache_c(prp_id, mdc_nelmts,rdcc_nelmts, rdcc_nbytes, rdcc_w0 )
- END SUBROUTINE h5pget_cache_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_fapl_split_f
-!
-! Purpose: Emulates the old split file driver.
-!
-! Inputs:
-! prp_id - file access property list identifier
-! meta_ext - name of the extension for the metafile
-! filename
-! meta_plist - identifier of the meta file access property
-! list
-! raw_ext - name extension for the raw file filename
-! raw_plist - identifier of the raw file access property list
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_fapl_split_f(prp_id, meta_ext, meta_plist, raw_ext, raw_plist, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: meta_ext !Name of the extension for
- !the metafile filename
- INTEGER(HID_T), INTENT(IN) :: meta_plist ! Identifier of the meta file
- ! access property list
- CHARACTER(LEN=*), INTENT(IN) :: raw_ext !Name extension for the raw file filename
- INTEGER(HID_T), INTENT(IN) :: raw_plist !Identifier of the raw file
- !access property list
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: meta_len, raw_len
+ INTERFACE
+ INTEGER FUNCTION h5pget_cache_c(prp_id,mdc_nelmts,rdcc_nelmts,rdcc_nbytes,rdcc_w0)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_CACHE_C'::h5pget_cache_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: mdc_nelmts
+ INTEGER(SIZE_T), INTENT(OUT) :: rdcc_nelmts
+ INTEGER(SIZE_T), INTENT(OUT) :: rdcc_nbytes
+ REAL, INTENT(OUT) :: rdcc_w0
+ END FUNCTION h5pget_cache_c
+ END INTERFACE
+
+ hdferr = h5pget_cache_c(prp_id, mdc_nelmts,rdcc_nelmts, rdcc_nbytes, rdcc_w0 )
+ END SUBROUTINE h5pget_cache_f
+
+!****s* H5P/h5pset_fapl_split_f
+! NAME
+! h5pset_fapl_split_f
+!
+! PURPOSE
+! Emulates the old split file driver.
+!
+! INPUTS
+!
+! prp_id - file access property list identifier
+! meta_ext - name of the extension for the metafile
+! filename
+! meta_plist - identifier of the meta file access property
+! list
+! raw_ext - name extension for the raw file filename
+! raw_plist - identifier of the raw file access property list
+!
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pset_fapl_split_f(prp_id, meta_ext, meta_plist, raw_ext, raw_plist, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: meta_ext ! Name of the extension for
+ ! the metafile filename
+ INTEGER(HID_T), INTENT(IN) :: meta_plist ! Identifier of the meta file
+ ! access property list
+ CHARACTER(LEN=*), INTENT(IN) :: raw_ext ! Name extension for the raw file filename
+ INTEGER(HID_T), INTENT(IN) :: raw_plist ! Identifier of the raw file
+ ! access property list
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: meta_len, raw_len
! INTEGER, EXTERNAL :: h5pset_fapl_split_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pset_fapl_split_c(prp_id,meta_len,meta_ext,meta_plist,raw_len,raw_ext,raw_plist)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FAPL_SPLIT_C'::h5pset_fapl_split_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: meta_ext
- !DEC$ATTRIBUTES reference :: raw_ext
- INTEGER(HID_T), INTENT(IN) :: prp_id
- CHARACTER(LEN=*), INTENT(IN) :: meta_ext
- INTEGER(HID_T), INTENT(IN) :: meta_plist
- CHARACTER(LEN=*), INTENT(IN) :: raw_ext
- INTEGER(HID_T), INTENT(IN) :: raw_plist
- INTEGER :: meta_len, raw_len
- END FUNCTION h5pset_fapl_split_c
- END INTERFACE
-
- meta_len = LEN(meta_ext)
- raw_len = LEN(raw_ext)
- hdferr = h5pset_fapl_split_c(prp_id,meta_len,meta_ext,meta_plist,raw_len,raw_ext,raw_plist)
- END SUBROUTINE h5pset_fapl_split_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_split_f
-!
-! Purpose: NOT AVAILABLE
-!
-! Inputs:
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_split_c(prp_id,meta_len,meta_ext,meta_plist,raw_len,raw_ext,raw_plist)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FAPL_SPLIT_C'::h5pset_fapl_split_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: meta_ext
+ !DEC$ATTRIBUTES reference :: raw_ext
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(LEN=*), INTENT(IN) :: meta_ext
+ INTEGER(HID_T), INTENT(IN) :: meta_plist
+ CHARACTER(LEN=*), INTENT(IN) :: raw_ext
+ INTEGER(HID_T), INTENT(IN) :: raw_plist
+ INTEGER :: meta_len, raw_len
+ END FUNCTION h5pset_fapl_split_c
+ END INTERFACE
+ meta_len = LEN(meta_ext)
+ raw_len = LEN(raw_ext)
+ hdferr = h5pset_fapl_split_c(prp_id,meta_len,meta_ext,meta_plist,raw_len,raw_ext,raw_plist)
+ END SUBROUTINE h5pset_fapl_split_f
+
+!****s* H5P/h5pget_split_f
+! NAME
+! h5pget_split_f
+!
+! PURPOSE
+! NOT AVAILABLE
+!
+! INPUTS
+!
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
! SUBROUTINE h5pget_split_f(prp_id, meta_ext_size, meta_ext, meta_plist,raw_ext_size,&
! raw_ext, raw_plist, hdferr)
! IMPLICIT NONE
@@ -2019,3480 +1867,2848 @@
! INTEGER(HID_T), INTENT(OUT) :: raw_plist !Identifier of the raw file
!access property list
! INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pget_split_c
! hdferr = h5pget_split_c(prp_id, meta_ext_size, meta_ext, meta_plist, &
! raw_ext_size, raw_ext, raw_plist )
! END SUBROUTINE h5pget_split_f
-!----------------------------------------------------------------------
-! Name: h5pset_gc_references_f
-!
-! Purpose: Sets garbage collecting references flag.
-!
-! Inputs:
-! prp_id - file access property list identifier
-! gc_reference - flag for stting garbage collection on
-! and off (1 or 0)
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5pset_gc_references_f (prp_id, gc_reference, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(IN) :: gc_reference !the flag for garbage collecting
- ! references for the file
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+!****s* H5P/h5pset_gc_references_f
+! NAME
+! h5pset_gc_references_f
+!
+! PURPOSE
+! Sets garbage collecting references flag.
+!
+! INPUTS
+!
+! prp_id - file access property list identifier
+! gc_reference - flag for stting garbage collection on
+! and off (1 or 0)
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pset_gc_references_f (prp_id, gc_reference, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: gc_reference ! The flag for garbage collecting
+ ! references for the file
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pset_gc_references_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pset_gc_references_c(prp_id, gc_reference)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_GC_REFERENCES_C'::h5pset_gc_references_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER, INTENT(IN) :: gc_reference
- END FUNCTION h5pset_gc_references_c
- END INTERFACE
-
- hdferr = h5pset_gc_references_c(prp_id, gc_reference)
- END SUBROUTINE h5pset_gc_references_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_gc_references_f
-!
-! Purpose: Returns garbage collecting references setting.
-!
-! Inputs:
-! prp_id - file access property list identifier
-! Outputs:
-! gc_reference - flag for stting garbage collection on
-! and off (1 or 0)
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
+ INTERFACE
+ INTEGER FUNCTION h5pset_gc_references_c(prp_id, gc_reference)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_GC_REFERENCES_C'::h5pset_gc_references_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: gc_reference
+ END FUNCTION h5pset_gc_references_c
+ END INTERFACE
- SUBROUTINE h5pget_gc_references_f (prp_id, gc_reference, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(OUT) :: gc_reference !the flag for garbage collecting
- ! references for the file
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ hdferr = h5pset_gc_references_c(prp_id, gc_reference)
+ END SUBROUTINE h5pset_gc_references_f
+
+!****s* H5P/h5pget_gc_references_f
+! NAME
+! h5pget_gc_references_f
+!
+! PURPOSE
+! Returns garbage collecting references setting.
+!
+! INPUTS
+!
+! prp_id - file access property list identifier
+! OUTPUTS
+!
+! gc_reference - flag for stting garbage collection on
+! and off (1 or 0)
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pget_gc_references_f(prp_id, gc_reference, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: gc_reference ! The flag for garbage collecting
+ ! references for the file
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pget_gc_references_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pget_gc_references_c(prp_id, gc_reference)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_GC_REFERENCES_C'::h5pget_gc_references_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER, INTENT(OUT) :: gc_reference
- END FUNCTION h5pget_gc_references_c
- END INTERFACE
-
- hdferr = h5pget_gc_references_c(prp_id, gc_reference)
- END SUBROUTINE h5pget_gc_references_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_layout_f
-!
-! Purpose: Sets the type of storage used store the raw data
-! for a dataset.
-!
-! Inputs:
-! prp_id - data creation property list identifier
-! layout - type of storage layout for raw data
-! possible values are:
-! H5D_COMPACT_F
-! H5D_CONTIGUOUS_F
-! H5D_CHUNKED_F
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_layout_f (prp_id, layout, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(IN) :: layout !Type of storage layout for raw data
- !possible values are:
- !H5D_COMPACT_F
- !H5D_CONTIGUOUS_F
- !H5D_CHUNKED_F
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTERFACE
+ INTEGER FUNCTION h5pget_gc_references_c(prp_id, gc_reference)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_GC_REFERENCES_C'::h5pget_gc_references_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: gc_reference
+ END FUNCTION h5pget_gc_references_c
+ END INTERFACE
+
+ hdferr = h5pget_gc_references_c(prp_id, gc_reference)
+ END SUBROUTINE h5pget_gc_references_f
+
+!****s* H5P/h5pset_layout_f
+! NAME
+! h5pset_layout_f
+!
+! PURPOSE
+! Sets the type of storage used store the raw data
+! for a dataset.
+!
+! INPUTS
+!
+! prp_id - data creation property list identifier
+! layout - type of storage layout for raw data
+! possible values are:
+! H5D_COMPACT_F
+! H5D_CONTIGUOUS_F
+! H5D_CHUNKED_F
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pset_layout_f (prp_id, layout, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: layout ! Type of storage layout for raw data
+ ! possible values are:
+ ! H5D_COMPACT_F
+ ! H5D_CONTIGUOUS_F
+ ! H5D_CHUNKED_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pset_layout_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pset_layout_c(prp_id, layout)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_LAYOUT_C'::h5pset_layout_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER, INTENT(IN) :: layout
- END FUNCTION h5pset_layout_c
- END INTERFACE
-
- hdferr = h5pset_layout_c(prp_id, layout)
- END SUBROUTINE h5pset_layout_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_layout_f
-!
-! Purpose: Returns the layout of the raw data for a dataset.
-!
-! Inputs:
-! prp_id - data creation property list identifier
-! Outputs:
-! layout - type of storage layout for raw data
-! possible values are:
-! H5D_COMPACT_F
-! H5D_CONTIGUOUS_F
-! H5D_CHUNKED_F
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_layout_f (prp_id, layout, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(OUT) :: layout !Type of storage layout for raw data
- !possible values are:
- !H5D_COMPACT_F(0)
- !H5D_CONTIGUOUS_F(1)
- !H5D_CHUNKED_F(2)
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTERFACE
+ INTEGER FUNCTION h5pset_layout_c(prp_id, layout)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_LAYOUT_C'::h5pset_layout_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: layout
+ END FUNCTION h5pset_layout_c
+ END INTERFACE
+
+ hdferr = h5pset_layout_c(prp_id, layout)
+ END SUBROUTINE h5pset_layout_f
+
+!****s* H5P/h5pget_layout_f
+! NAME
+! h5pget_layout_f
+!
+! PURPOSE
+! Returns the layout of the raw data for a dataset.
+!
+! INPUTS
+!
+! prp_id - data creation property list identifier
+! OUTPUTS
+!
+! layout - type of storage layout for raw data
+! possible values are:
+! H5D_COMPACT_F
+! H5D_CONTIGUOUS_F
+! H5D_CHUNKED_F
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pget_layout_f (prp_id, layout, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: layout ! Type of storage layout for raw data
+ ! possible values are:
+ ! H5D_COMPACT_F(0)
+ ! H5D_CONTIGUOUS_F(1)
+ ! H5D_CHUNKED_F(2)
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pget_layout_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pget_layout_c(prp_id, layout)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_LAYOUT_C'::h5pget_layout_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER, INTENT(OUT) :: layout
- END FUNCTION h5pget_layout_c
- END INTERFACE
-
- hdferr = h5pget_layout_c(prp_id, layout)
- END SUBROUTINE h5pget_layout_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_filter_f
-!
-! Purpose: Adds a filter to the filter pipeline.
-!
-! Inputs:
-! prp_id - data creation or transfer property list
-! identifier
-! filter - filter to be added to the pipeline
-! flags - bit vector specifying certain general
-! properties of the filter
-! cd_nelmts - number of elements in cd_values
-! cd_values - auxiliary data for the filter
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! February, 2003
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_filter_f(prp_id, filter, flags, cd_nelmts, cd_values, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(IN) :: filter !Filter to be added to the pipeline.
- INTEGER, INTENT(IN) :: flags !Bit vector specifying certain general
- !properties of the filter.
- INTEGER(SIZE_T), INTENT(IN) :: cd_nelmts !Number of elements in cd_values.
- INTEGER, DIMENSION(*), INTENT(IN) :: cd_values !Auxiliary data for the filter.
-
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTERFACE
+ INTEGER FUNCTION h5pget_layout_c(prp_id, layout)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_LAYOUT_C'::h5pget_layout_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: layout
+ END FUNCTION h5pget_layout_c
+ END INTERFACE
+
+ hdferr = h5pget_layout_c(prp_id, layout)
+ END SUBROUTINE h5pget_layout_f
+
+!****s* H5P/h5pset_filter_f
+! NAME
+! h5pset_filter_f
+!
+! PURPOSE
+! Adds a filter to the filter pipeline.
+!
+! INPUTS
+!
+! prp_id - data creation or transfer property list
+! identifier
+! filter - filter to be added to the pipeline
+! flags - bit vector specifying certain general
+! properties of the filter
+! cd_nelmts - number of elements in cd_values
+! cd_values - auxiliary data for the filter
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! February, 2003
+!
+! SOURCE
+ SUBROUTINE h5pset_filter_f(prp_id, filter, flags, cd_nelmts, cd_values, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: filter ! Filter to be added to the pipeline.
+ INTEGER, INTENT(IN) :: flags ! Bit vector specifying certain general
+ ! properties of the filter.
+ INTEGER(SIZE_T), INTENT(IN) :: cd_nelmts ! Number of elements in cd_values.
+ INTEGER, DIMENSION(*), INTENT(IN) :: cd_values ! Auxiliary data for the filter.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pset_filter_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pset_filter_c(prp_id, filter, flags, cd_nelmts, cd_values)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FILTER_C'::h5pset_filter_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER, INTENT(IN) :: filter
- INTEGER, INTENT(IN) :: flags
- INTEGER(SIZE_T), INTENT(IN) :: cd_nelmts
- INTEGER, DIMENSION(*), INTENT(IN) :: cd_values
- END FUNCTION h5pset_filter_c
- END INTERFACE
-
- hdferr = h5pset_filter_c(prp_id, filter, flags, cd_nelmts, cd_values )
- END SUBROUTINE h5pset_filter_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_nfilters_f
-!
-! Purpose: Returns the number of filters in the pipeline.
-!
-! Inputs:
-! prp_id - data creation or transfer property list
-! identifier
-! Outputs:
-! nfilters - number of filters in the pipeline
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_nfilters_f (prp_id, nfilters, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(OUT) :: nfilters !the number of filters in the pipeline
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTERFACE
+ INTEGER FUNCTION h5pset_filter_c(prp_id, filter, flags, cd_nelmts, cd_values)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FILTER_C'::h5pset_filter_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: filter
+ INTEGER, INTENT(IN) :: flags
+ INTEGER(SIZE_T), INTENT(IN) :: cd_nelmts
+ INTEGER, DIMENSION(*), INTENT(IN) :: cd_values
+ END FUNCTION h5pset_filter_c
+ END INTERFACE
+
+ hdferr = h5pset_filter_c(prp_id, filter, flags, cd_nelmts, cd_values )
+ END SUBROUTINE h5pset_filter_f
+
+!****s* H5P/h5pget_nfilters_f
+! NAME
+! h5pget_nfilters_f
+!
+! PURPOSE
+! Returns the number of filters in the pipeline.
+!
+! INPUTS
+!
+! prp_id - data creation or transfer property list
+! identifier
+! OUTPUTS
+!
+! nfilters - number of filters in the pipeline
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pget_nfilters_f (prp_id, nfilters, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: nfilters ! The number of filters in the pipeline
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pget_nfilters_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pget_nfilters_c(prp_id, nfilters)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_NFILTERS_C'::h5pget_nfilters_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER, INTENT(OUT) :: nfilters
- END FUNCTION h5pget_nfilters_c
- END INTERFACE
-
- hdferr = h5pget_nfilters_c(prp_id, nfilters)
- END SUBROUTINE h5pget_nfilters_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_filter_f
-!
-! Purpose: Returns information about a filter in a pipeline
-!
-! Inputs:
-! prp_id - data creation or transfer property list
-! identifier
-! Outputs:
-! identifier
-! filter - filter to be added to the pipeline
-! flags - bit vector specifying certain general
-! properties of the filter
-! cd_nelmts - number of elements in cd_values
-! cd_values - auxiliary data for the filter
-! namelen - number of characters in the name buffer
-! name - buffer to retrieve filter name
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_filter_f(prp_id, filter_number, flags, cd_nelmts, cd_values, namelen, name, filter_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(IN) :: filter_number !Sequence number within the filter
- !pipeline of the filter for which
- !information is sought
- INTEGER, DIMENSION(*), INTENT(OUT) :: cd_values !Auxiliary data for the filter.
- INTEGER, INTENT(OUT) :: flags !Bit vector specifying certain general
- !properties of the filter.
- INTEGER(SIZE_T), INTENT(INOUT) :: cd_nelmts !Number of elements in cd_values.
- INTEGER(SIZE_T), INTENT(IN) :: namelen !Anticipated number of characters in name.
- CHARACTER(LEN=*), INTENT(OUT) :: name !Name of the filter
- INTEGER, INTENT(OUT) :: filter_id ! filter identification number
-
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTERFACE
+ INTEGER FUNCTION h5pget_nfilters_c(prp_id, nfilters)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_NFILTERS_C'::h5pget_nfilters_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: nfilters
+ END FUNCTION h5pget_nfilters_c
+ END INTERFACE
+
+ hdferr = h5pget_nfilters_c(prp_id, nfilters)
+ END SUBROUTINE h5pget_nfilters_f
+
+!****s* H5P/h5pget_filter_f
+! NAME
+! h5pget_filter_f
+!
+! PURPOSE
+! Returns information about a filter in a pipeline
+!
+! INPUTS
+!
+! prp_id - data creation or transfer property list
+! identifier
+! filter_number - sequence number within the filter
+! pipeline of the filter for which
+! information is sought
+! OUTPUTS
+!
+! filter_id - filter identification number
+! flags - bit vector specifying certain general
+! properties of the filter
+! cd_nelmts - number of elements in cd_values
+! cd_values - auxiliary data for the filter
+! namelen - number of characters in the name buffer
+! name - buffer to retrieve filter name
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pget_filter_f(prp_id, filter_number, flags, cd_nelmts, cd_values, namelen, name, filter_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: filter_number ! Sequence number within the filter
+ ! pipeline of the filter for which
+ ! information is sought
+ INTEGER, DIMENSION(*), INTENT(OUT) :: cd_values ! Auxiliary data for the filter.
+ INTEGER, INTENT(OUT) :: flags ! Bit vector specifying certain general
+ ! properties of the filter.
+ INTEGER(SIZE_T), INTENT(INOUT) :: cd_nelmts ! Number of elements in cd_values.
+ INTEGER(SIZE_T), INTENT(IN) :: namelen ! Anticipated number of characters in name.
+ CHARACTER(LEN=*), INTENT(OUT) :: name ! Name of the filter
+ INTEGER, INTENT(OUT) :: filter_id ! Filter identification number
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pget_filter_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pget_filter_c(prp_id, filter_number, flags, cd_nelmts, &
- cd_values, namelen, name, filter_id )
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FILTER_C'::h5pget_filter_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER, INTENT(IN) :: filter_number
- INTEGER, DIMENSION(*), INTENT(OUT) :: cd_values
- INTEGER, INTENT(OUT) :: flags
- INTEGER(SIZE_T), INTENT(INOUT) :: cd_nelmts
- INTEGER(SIZE_T), INTENT(IN) :: namelen
- CHARACTER(LEN=*), INTENT(OUT) :: name
- INTEGER, INTENT(OUT) :: filter_id
- END FUNCTION h5pget_filter_c
- END INTERFACE
-
- hdferr = h5pget_filter_c(prp_id, filter_number, flags, cd_nelmts, &
- cd_values, namelen, name, filter_id )
- END SUBROUTINE h5pget_filter_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_external_f
-!
-! Purpose: Adds an external file to the list of external files.
-!
-! Inputs:
-! prp_id - dataset creation property list identifier
-! name - name of external file
-! offset - offset in bytes from the beginning of the
-! file to the location in the file
-! where the data starts
-! bytes - size of the external file data.
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_external_f(prp_id, name, offset,bytes, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name !Name of an external file
- INTEGER, INTENT(IN) :: offset !Offset, in bytes, from the beginning
- !of the file to the location in the file
- !where the data starts.
- INTEGER(HSIZE_T), INTENT(IN) :: bytes ! Number of bytes reserved in the
- !file for the data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTERFACE
+ INTEGER FUNCTION h5pget_filter_c(prp_id, filter_number, flags, cd_nelmts, &
+ cd_values, namelen, name, filter_id )
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FILTER_C'::h5pget_filter_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: filter_number
+ INTEGER, DIMENSION(*), INTENT(OUT) :: cd_values
+ INTEGER, INTENT(OUT) :: flags
+ INTEGER(SIZE_T), INTENT(INOUT) :: cd_nelmts
+ INTEGER(SIZE_T), INTENT(IN) :: namelen
+ CHARACTER(LEN=*), INTENT(OUT) :: name
+ INTEGER, INTENT(OUT) :: filter_id
+ END FUNCTION h5pget_filter_c
+ END INTERFACE
+
+ hdferr = h5pget_filter_c(prp_id, filter_number, flags, cd_nelmts, &
+ cd_values, namelen, name, filter_id )
+ END SUBROUTINE h5pget_filter_f
+
+!****s* H5P/h5pset_external_f
+! NAME
+! h5pset_external_f
+!
+! PURPOSE
+! Adds an external file to the list of external files.
+!
+! INPUTS
+!
+! prp_id - dataset creation property list identifier
+! name - name of external file
+! offset - offset in bytes from the beginning of the
+! file to the location in the file
+! where the data starts
+! bytes - size of the external file data.
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pset_external_f(prp_id, name, offset,bytes, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of an external file
+ INTEGER, INTENT(IN) :: offset ! Offset, in bytes, from the beginning
+ ! of the file to the location in the file
+ ! where the data starts.
+ INTEGER(HSIZE_T), INTENT(IN) :: bytes ! Number of bytes reserved in the
+ ! file for the data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
- INTEGER :: namelen
+ INTEGER :: namelen
! INTEGER, EXTERNAL :: h5pset_external_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pset_external_c(prp_id, name,namelen, offset, bytes)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_EXTERNAL_C'::h5pset_external_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: prp_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER :: namelen
- INTEGER, INTENT(IN) :: offset
- INTEGER(HSIZE_T), INTENT(IN) :: bytes
- END FUNCTION h5pset_external_c
- END INTERFACE
-
- namelen = LEN(name)
- hdferr = h5pset_external_c(prp_id, name, namelen, offset, bytes)
- END SUBROUTINE h5pset_external_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_external_count_f
-!
-! Purpose: Returns the number of external files for a dataset.
-!
-! Inputs:
-! prp_id - dataset creation property list identifier
-! Outputs:
-! count - number of external files for the
-! specified dataset
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_external_count_f (prp_id, count, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(OUT) :: count !number of external files for the
- !specified dataset
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTERFACE
+ INTEGER FUNCTION h5pset_external_c(prp_id, name,namelen, offset, bytes)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_EXTERNAL_C'::h5pset_external_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER, INTENT(IN) :: offset
+ INTEGER(HSIZE_T), INTENT(IN) :: bytes
+ END FUNCTION h5pset_external_c
+ END INTERFACE
+
+ namelen = LEN(name)
+ hdferr = h5pset_external_c(prp_id, name, namelen, offset, bytes)
+ END SUBROUTINE h5pset_external_f
+
+!****s* H5P/h5pget_external_count_f
+! NAME
+! h5pget_external_count_f
+!
+! PURPOSE
+! Returns the number of external files for a dataset.
+!
+! INPUTS
+!
+! prp_id - dataset creation property list identifier
+! OUTPUTS
+!
+! count - number of external files for the
+! specified dataset
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pget_external_count_f (prp_id, count, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: count ! Number of external files for the
+ ! Specified dataset
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pget_external_count_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pget_external_count_c(prp_id, count)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_EXTERNAL_COUNT_C'::h5pget_external_count_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER, INTENT(OUT) :: count
- END FUNCTION h5pget_external_count_c
- END INTERFACE
-
- hdferr = h5pget_external_count_c(prp_id, count)
- END SUBROUTINE h5pget_external_count_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_external_f
-!
-! Purpose: Returns information about an external file.
-!
-! Inputs:
-! prp_id - dataset creation property list identifier
-! Outputs:
-! idx - external file index
-! name_size - maximum size of name array
-! name - name of the external file
-! name - name of external file
-! offset - offset in bytes from the beginning of the
-! file to the location in the file
-! where the data starts
-! bytes - size of the external file data
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5pget_external_f(prp_id, idx, name_size, name, offset,bytes, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(IN) :: idx !External file index.
- INTEGER(SIZE_T), INTENT(IN) :: name_size !Maximum length of name array
- CHARACTER(LEN=*), INTENT(OUT) :: name !Name of an external file
- INTEGER, INTENT(OUT) :: offset !Offset, in bytes, from the beginning
- !of the file to the location in the file
- !where the data starts.
- INTEGER(HSIZE_T), INTENT(OUT) :: bytes ! Number of bytes reserved in the
- !file for the data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTERFACE
+ INTEGER FUNCTION h5pget_external_count_c(prp_id, count)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_EXTERNAL_COUNT_C'::h5pget_external_count_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: count
+ END FUNCTION h5pget_external_count_c
+ END INTERFACE
+
+ hdferr = h5pget_external_count_c(prp_id, count)
+ END SUBROUTINE h5pget_external_count_f
+
+!****s* H5P/h5pget_external_f
+! NAME
+! h5pget_external_f
+!
+! PURPOSE
+! Returns information about an external file.
+!
+! INPUTS
+!
+! prp_id - dataset creation property list identifier
+! OUTPUTS
+!
+! idx - external file index
+! name_size - maximum size of name array
+! name - name of the external file
+! name - name of external file
+! offset - offset in bytes from the beginning of the
+! file to the location in the file
+! where the data starts
+! bytes - size of the external file data
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pget_external_f(prp_id, idx, name_size, name, offset,bytes, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: idx ! External file index.
+ INTEGER(SIZE_T), INTENT(IN) :: name_size ! Maximum length of name array
+ CHARACTER(LEN=*), INTENT(OUT) :: name ! Name of an external file
+ INTEGER, INTENT(OUT) :: offset ! Offset, in bytes, from the beginning
+ ! of the file to the location in the file
+ ! where the data starts.
+ INTEGER(HSIZE_T), INTENT(OUT) :: bytes ! Number of bytes reserved in the
+ ! file for the data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pget_external_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pget_external_c(prp_id, idx, name_size, name, offset, bytes)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_EXTERNAL_C'::h5pget_external_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER, INTENT(IN) :: idx
- INTEGER(SIZE_T), INTENT(IN) :: name_size
- CHARACTER(LEN=*), INTENT(OUT) :: name
- INTEGER, INTENT(OUT) :: offset
- INTEGER(HSIZE_T), INTENT(OUT) :: bytes
- END FUNCTION h5pget_external_c
- END INTERFACE
-
- hdferr = h5pget_external_c(prp_id, idx, name_size, name, offset, bytes)
- END SUBROUTINE h5pget_external_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_btree_ratios_f
-!
-! Purpose: Sets B-tree split ratios for a dataset transfer
-! property list.
-!
-! Inputs:
-! prp_id - the dataset transfer property list
-! identifier
-! left - the B-tree split ratio for left-most nodes
-! middle - the B-tree split ratio for all other nodes
-! right - the B-tree split ratio for right-most nodes
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_btree_ratios_f(prp_id, left, middle, right, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- REAL, INTENT(IN) :: left !The B-tree split ratio for left-most nodes.
- REAL, INTENT(IN) :: middle !The B-tree split ratio for all other nodes
- REAL, INTENT(IN) :: right !The B-tree split ratio for right-most
- !nodes and lone nodes.
-
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTERFACE
+ INTEGER FUNCTION h5pget_external_c(prp_id, idx, name_size, name, offset, bytes)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_EXTERNAL_C'::h5pget_external_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: idx
+ INTEGER(SIZE_T), INTENT(IN) :: name_size
+ CHARACTER(LEN=*), INTENT(OUT) :: name
+ INTEGER, INTENT(OUT) :: offset
+ INTEGER(HSIZE_T), INTENT(OUT) :: bytes
+ END FUNCTION h5pget_external_c
+ END INTERFACE
+
+ hdferr = h5pget_external_c(prp_id, idx, name_size, name, offset, bytes)
+ END SUBROUTINE h5pget_external_f
+
+!****s* H5P/h5pset_btree_ratios_f
+! NAME
+! h5pset_btree_ratios_f
+!
+! PURPOSE
+! Sets B-tree split ratios for a dataset transfer
+! property list.
+!
+! INPUTS
+!
+! prp_id - the dataset transfer property list
+! identifier
+! left - the B-tree split ratio for left-most nodes
+! middle - the B-tree split ratio for all other nodes
+! right - the B-tree split ratio for right-most nodes
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pset_btree_ratios_f(prp_id, left, middle, right, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ REAL, INTENT(IN) :: left ! The B-tree split ratio for left-most nodes.
+ REAL, INTENT(IN) :: middle ! The B-tree split ratio for all other nodes
+ REAL, INTENT(IN) :: right ! The B-tree split ratio for right-most
+ ! nodes and lone nodes.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pset_btree_ratios_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pset_btree_ratios_c(prp_id, left, middle, right)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_BTREE_RATIOS_C'::h5pset_btree_ratios_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- REAL, INTENT(IN) :: left
- REAL, INTENT(IN) :: middle
- REAL, INTENT(IN) :: right
- END FUNCTION h5pset_btree_ratios_c
- END INTERFACE
-
- hdferr = h5pset_btree_ratios_c(prp_id, left, middle, right)
- END SUBROUTINE h5pset_btree_ratios_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_btree_ratios_f
-!
-! Purpose: Gets B-tree split ratios for a dataset transfer property list
-!
-! Inputs:
-! prp_id - the dataset transfer property list
-! identifier
-! Outputs:
-! left - the B-tree split ratio for left-most nodes
-! middle - the B-tree split ratio for all other nodes
-! right - the B-tree split ratio for right-most nodes
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_btree_ratios_f(prp_id, left, middle, right, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- REAL, INTENT(OUT) :: left !The B-tree split ratio for left-most nodes.
- REAL, INTENT(OUT) :: middle !The B-tree split ratio for all other nodes
- REAL, INTENT(OUT) :: right !The B-tree split ratio for right-most
- !nodes and lone nodes.
-
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTERFACE
+ INTEGER FUNCTION h5pset_btree_ratios_c(prp_id, left, middle, right)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_BTREE_RATIOS_C'::h5pset_btree_ratios_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ REAL, INTENT(IN) :: left
+ REAL, INTENT(IN) :: middle
+ REAL, INTENT(IN) :: right
+ END FUNCTION h5pset_btree_ratios_c
+ END INTERFACE
+
+ hdferr = h5pset_btree_ratios_c(prp_id, left, middle, right)
+ END SUBROUTINE h5pset_btree_ratios_f
+
+!****s* H5P/h5pget_btree_ratios_f
+! NAME
+! h5pget_btree_ratios_f
+!
+! PURPOSE
+! Gets B-tree split ratios for a dataset transfer property list
+!
+! INPUTS
+!
+! prp_id - the dataset transfer property list
+! identifier
+! OUTPUTS
+!
+! left - the B-tree split ratio for left-most nodes
+! middle - the B-tree split ratio for all other nodes
+! right - the B-tree split ratio for right-most nodes
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+ SUBROUTINE h5pget_btree_ratios_f(prp_id, left, middle, right, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ REAL, INTENT(OUT) :: left ! The B-tree split ratio for left-most nodes.
+ REAL, INTENT(OUT) :: middle ! The B-tree split ratio for all other nodes
+ REAL, INTENT(OUT) :: right ! The B-tree split ratio for right-most
+ ! nodes and lone nodes.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pget_btree_ratios_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pget_btree_ratios_c(prp_id, left, middle, right)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_BTREE_RATIOS_C'::h5pget_btree_ratios_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- REAL, INTENT(OUT) :: left
- REAL, INTENT(OUT) :: middle
- REAL, INTENT(OUT) :: right
- END FUNCTION h5pget_btree_ratios_c
- END INTERFACE
-
- hdferr = h5pget_btree_ratios_c(prp_id, left, middle, right)
- END SUBROUTINE h5pget_btree_ratios_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_fclose_degree_f
-!
-! Purpose: Returns the degree for the file close behavior.
-!
-! Inputs:
-! fapl_id - file access property list identifier
-! Outputs:
-! degree - one of the following:
-! Possible values are:
-! H5F_CLOSE_DEFAULT_F
-! H5F_CLOSE_WEAK_F
-! H5F_CLOSE_SEMI_F
-! H5F_CLOSE_STRONG_F
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! September 26, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_fclose_degree_f(fapl_id, degree, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: fapl_id ! File Access Property list identifier
- INTEGER, INTENT(OUT) :: degree ! Possible values
- ! are:
- ! H5F_CLOSE_DEFAULT_F
- ! H5F_CLOSE_WEAK_F
- ! H5F_CLOSE_SEMI_F
- ! H5F_CLOSE_STRONG_F
-
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTERFACE
+ INTEGER FUNCTION h5pget_btree_ratios_c(prp_id, left, middle, right)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_BTREE_RATIOS_C'::h5pget_btree_ratios_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ REAL, INTENT(OUT) :: left
+ REAL, INTENT(OUT) :: middle
+ REAL, INTENT(OUT) :: right
+ END FUNCTION h5pget_btree_ratios_c
+ END INTERFACE
+
+ hdferr = h5pget_btree_ratios_c(prp_id, left, middle, right)
+ END SUBROUTINE h5pget_btree_ratios_f
+
+!****s* H5P/h5pget_fclose_degree_f
+! NAME
+! h5pget_fclose_degree_f
+!
+! PURPOSE
+! Returns the degree for the file close behavior.
+!
+! INPUTS
+!
+! fapl_id - File access property list identifier
+! OUTPUTS
+!
+! degree - Possible values are:
+! H5F_CLOSE_DEFAULT_F
+! H5F_CLOSE_WEAK_F
+! H5F_CLOSE_SEMI_F
+! H5F_CLOSE_STRONG_F
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! September 26, 2002
+!
+! HISTORY
+!
+!
+! SOURCE
+ SUBROUTINE h5pget_fclose_degree_f(fapl_id, degree, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: fapl_id ! File Access Property list identifier
+ INTEGER, INTENT(OUT) :: degree ! Possible values are:
+ ! H5F_CLOSE_DEFAULT_F
+ ! H5F_CLOSE_WEAK_F
+ ! H5F_CLOSE_SEMI_F
+ ! H5F_CLOSE_STRONG_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pget_fclose_degree_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pget_fclose_degree_c(fapl_id, degree)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ INTERFACE
+ INTEGER FUNCTION h5pget_fclose_degree_c(fapl_id, degree)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FCLOSE_DEGREE_C'::h5pget_fclose_degree_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: fapl_id
- INTEGER, INTENT(OUT) :: degree
- END FUNCTION h5pget_fclose_degree_c
- END INTERFACE
-
- hdferr = h5pget_fclose_degree_c(fapl_id, degree)
- END SUBROUTINE h5pget_fclose_degree_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_fclose_degree_f
-!
-! Purpose: Sets the degree for the file close behavior.
-!
-! Inputs:
-! fapl_id - file access property list identifier
-! degree - one of the following:
-! Possible values are:
-! H5F_CLOSE_DEFAULT_F
-! H5F_CLOSE_WEAK_F
-! H5F_CLOSE_SEMI_F
-! H5F_CLOSE_STRONG_F
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! September 26, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_fclose_degree_f(fapl_id, degree, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: fapl_id ! File Access Property list identifier
- INTEGER, INTENT(IN) :: degree ! Possible values
- ! are:
- ! H5F_CLOSE_DEFAULT_F
- ! H5F_CLOSE_WEAK_F
- ! H5F_CLOSE_SEMI_F
- ! H5F_CLOSE_STRONG_F
-
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTERFACE
- INTEGER FUNCTION h5pset_fclose_degree_c(fapl_id, degree)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FCLOSE_DEGREE_C'::h5pset_fclose_degree_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: fapl_id
- INTEGER, INTENT(IN) :: degree
- END FUNCTION h5pset_fclose_degree_c
- END INTERFACE
-
- hdferr = h5pset_fclose_degree_c(fapl_id, degree)
- END SUBROUTINE h5pset_fclose_degree_f
-
-!----------------------------------------------------------------------
-! Name: h5pequal_f
-!
-! Purpose: Checks if two property lists are eqaul
-!
-! Inputs:
-! plist1_id - property list identifier
-! plist2_id - property list identifier
-! Outputs:
-! flag - flag, possible values
-! .TRUE. or .FALSE.
-! hdferr: - error code
-! Success: 0
-! Failure: -1, flag is set to .FALSE.
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! September 30, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pequal_f(plist1_id, plist2_id, flag, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist1_id ! Property list identifier
- INTEGER(HID_T), INTENT(IN) :: plist2_id ! Property list identifier
- LOGICAL, INTENT(OUT) :: flag ! Flag
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: c_flag
-
- INTERFACE
- INTEGER FUNCTION h5pequal_c(plist1_id, plist2_id, c_flag)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PEQUAL_C'::h5pequal_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: plist1_id
- INTEGER(HID_T), INTENT(IN) :: plist2_id
- INTEGER, INTENT(OUT) :: c_flag
- END FUNCTION h5pequal_c
- END INTERFACE
-
- flag = .FALSE.
- hdferr = h5pequal_c(plist1_id, plist2_id, c_flag)
- if (c_flag .GT. 0) flag = .TRUE.
- END SUBROUTINE h5pequal_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_buffer_f
-!
-! Purpose: Sets sixe for conversion buffer
-!
-! Inputs:
-! plist_id - data transfer property list identifier
-! size - buffer size
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 2, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_buffer_f(plist_id, size, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist_id ! Data transfer property list identifier
- INTEGER(HSIZE_T), INTENT(IN) :: size ! Buffer size in bytes;
- ! buffer is allocated and freed by
- ! the library.
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTERFACE
- INTEGER FUNCTION h5pset_buffer_c(plist_id, size)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_BUFFER_C'::h5pset_buffer_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: plist_id
- INTEGER(HSIZE_T), INTENT(IN) :: size
- END FUNCTION h5pset_buffer_c
- END INTERFACE
-
- hdferr = h5pset_buffer_c(plist_id, size)
- END SUBROUTINE h5pset_buffer_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_buffer_f
-!
-! Purpose: Gets size for conversion buffer
-!
-! Inputs:
-! plist_id - data transfer property list identifier
-! Outputs:
-! size - buffer size
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 2, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_buffer_f(plist_id, size, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist_id ! Data transfer property list identifier
- INTEGER(HSIZE_T), INTENT(OUT) :: size ! Buffer size in bytes;
- ! buffer is allocated and freed by
- ! the library.
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTERFACE
- INTEGER FUNCTION h5pget_buffer_c(plist_id, size)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_BUFFER_C'::h5pget_buffer_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: plist_id
- INTEGER(HSIZE_T), INTENT(OUT) :: size
- END FUNCTION h5pget_buffer_c
- END INTERFACE
-
- hdferr = h5pget_buffer_c(plist_id, size)
- END SUBROUTINE h5pget_buffer_f
-
-!----------------------------------------------------------------------
-! Name: h5pfill_value_defined_f
-!
-! Purpose: Check if fill value is defined.
-!
-! Inputs:
-! plist_id - dataset creation property list identifier
-! Outputs:
-! flag - fill value status flag
-! Possible values are:
-! H5D_FILL_VALUE_ERROR_F
-! H5D_FILL_VALUE_UNDEFINED_F
-! H5D_FILL_VALUE_DEFAULT_F
-! H5D_FILL_VALUE_USER_DEFINED_F
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 4, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pfill_value_defined_f(plist_id, flag, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist_id
- INTEGER, INTENT(OUT) :: flag
- INTEGER, INTENT(OUT) :: hdferr
-
- INTERFACE
- INTEGER FUNCTION h5pfill_value_defined_c(plist_id, flag)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PFILL_VALUE_DEFINED_C'::h5pfill_value_defined_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: plist_id
- INTEGER, INTENT(OUT) :: flag
- END FUNCTION h5pfill_value_defined_c
- END INTERFACE
-
- hdferr = h5pfill_value_defined_c(plist_id, flag)
- END SUBROUTINE h5pfill_value_defined_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_alloc_time_f
-!
-! Purpose: Set space allocation time for dataset during creation.
-!
-! Inputs:
-! plist_id - dataset creation property list identifier
-! flag - allocation time flag
-! Possible values are:
-! H5D_ALLOC_TIME_ERROR_F
-! H5D_ALLOC_TIME_DEFAULT_F
-! H5D_ALLOC_TIME_EARLY_F
-! H5D_ALLOC_TIME_LATE_F
-! H5D_ALLOC_TIME_INCR_F
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 4, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_alloc_time_f(plist_id, flag, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist_id
- INTEGER, INTENT(IN) :: flag
- INTEGER, INTENT(OUT) :: hdferr
-
- INTERFACE
- INTEGER FUNCTION h5pset_alloc_time_c(plist_id, flag)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_ALLOC_TIME_C'::h5pset_alloc_time_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: plist_id
- INTEGER, INTENT(IN) :: flag
- END FUNCTION h5pset_alloc_time_c
- END INTERFACE
-
- hdferr = h5pset_alloc_time_c(plist_id, flag)
- END SUBROUTINE h5pset_alloc_time_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_alloc_time_f
-!
-! Purpose: Get space allocation time for dataset during creation.
-!
-! Inputs:
-! plist_id - dataset creation property list identifier
-! Outputs:
-! flag - allocation time flag
-! Possible values are:
-! H5D_ALLOC_TIME_ERROR_F
-! H5D_ALLOC_TIME_DEFAULT_F
-! H5D_ALLOC_TIME_EARLY_F
-! H5D_ALLOC_TIME_LATE_F
-! H5D_ALLOC_TIME_INCR_F
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 4, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_alloc_time_f(plist_id, flag, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist_id
- INTEGER, INTENT(OUT) :: flag
- INTEGER, INTENT(OUT) :: hdferr
-
- INTERFACE
- INTEGER FUNCTION h5pget_alloc_time_c(plist_id, flag)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_ALLOC_TIME_C'::h5pget_alloc_time_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: plist_id
- INTEGER, INTENT(OUT) :: flag
- END FUNCTION h5pget_alloc_time_c
- END INTERFACE
-
- hdferr = h5pget_alloc_time_c(plist_id, flag)
- END SUBROUTINE h5pget_alloc_time_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_fill_time_f
-!
-! Purpose: Set fill value writing time for dataset
-!
-! Inputs:
-! plist_id - dataset creation property list identifier
-! flag - fill time flag
-! Possible values are:
-! H5D_FILL_TIME_ERROR_F
-! H5D_FILL_TIME_ALLOC_F
-! H5D_FILL_TIME_NEVER_F
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 4, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_fill_time_f(plist_id, flag, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist_id
- INTEGER, INTENT(IN) :: flag
- INTEGER, INTENT(OUT) :: hdferr
-
- INTERFACE
- INTEGER FUNCTION h5pset_fill_time_c(plist_id, flag)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FILL_TIME_C'::h5pset_fill_time_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: plist_id
- INTEGER, INTENT(IN) :: flag
- END FUNCTION h5pset_fill_time_c
- END INTERFACE
-
- hdferr = h5pset_fill_time_c(plist_id, flag)
- END SUBROUTINE h5pset_fill_time_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_fill_time_f
-!
-! Purpose: Get fill value writing time for dataset
-!
-! Inputs:
-! plist_id - dataset creation property list identifier
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! flag - fill time flag
-! Possible values are:
-! H5D_FILL_TIME_ERROR_F
-! H5D_FILL_TIME_ALLOC_F
-! H5D_FILL_TIME_NEVER_F
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 4, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_fill_time_f(plist_id, flag, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist_id
- INTEGER, INTENT(OUT) :: flag
- INTEGER, INTENT(OUT) :: hdferr
-
- INTERFACE
- INTEGER FUNCTION h5pget_fill_time_c(plist_id, flag)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FILL_TIME_C'::h5pget_fill_time_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: plist_id
- INTEGER, INTENT(OUT) :: flag
- END FUNCTION h5pget_fill_time_c
- END INTERFACE
-
- hdferr = h5pget_fill_time_c(plist_id, flag)
- END SUBROUTINE h5pget_fill_time_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_meta_block_size_f
-!
-! Purpose: Sets the minimum size of metadata block allocations
-!
-! Inputs:
-! plist_id - file access property list identifier
-! size - metatdata block size
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 7, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_meta_block_size_f(plist_id, size, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist_id ! File access property list identifier
- INTEGER(HSIZE_T), INTENT(IN) :: size ! Block size in bytes;
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTERFACE
- INTEGER FUNCTION h5pset_meta_block_size_c(plist_id, size)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_META_BLOCK_SIZE_C'::h5pset_meta_block_size_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: plist_id
- INTEGER(HSIZE_T), INTENT(IN) :: size
- END FUNCTION h5pset_meta_block_size_c
- END INTERFACE
-
- hdferr = h5pset_meta_block_size_c(plist_id, size)
- END SUBROUTINE h5pset_meta_block_size_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_meta_block_size_f
-!
-! Purpose: Gets the minimum size of metadata block allocations
-!
-! Inputs:
-! plist_id - file access property list identifier
-! Outputs:
-! size - metatdata block size
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 7, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_meta_block_size_f(plist_id, size, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist_id ! File access property list identifier
- INTEGER(HSIZE_T), INTENT(OUT) :: size ! Block size in bytes;
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTERFACE
- INTEGER FUNCTION h5pget_meta_block_size_c(plist_id, size)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_META_BLOCK_SIZE_C'::h5pget_meta_block_size_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: plist_id
- INTEGER(HSIZE_T), INTENT(OUT) :: size
- END FUNCTION h5pget_meta_block_size_c
- END INTERFACE
-
- hdferr = h5pget_meta_block_size_c(plist_id, size)
- END SUBROUTINE h5pget_meta_block_size_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_sieve_buf_size_f
-!
-! Purpose: Sets the maximum size of the data sieve buffer
-!
-! Inputs:
-! plist_id - file access property list identifier
-! size - sieve buffer size
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 7, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_sieve_buf_size_f(plist_id, size, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist_id ! File access property list identifier
- INTEGER(SIZE_T), INTENT(IN) :: size ! Buffer size in bytes;
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTERFACE
- INTEGER FUNCTION h5pset_sieve_buf_size_c(plist_id, size)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_SIEVE_BUF_SIZE_C'::h5pset_sieve_buf_size_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: plist_id
- INTEGER(SIZE_T), INTENT(IN) :: size
- END FUNCTION h5pset_sieve_buf_size_c
- END INTERFACE
-
- hdferr = h5pset_sieve_buf_size_c(plist_id, size)
- END SUBROUTINE h5pset_sieve_buf_size_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_sieve_buf_size_f
-!
-! Purpose: Gets the maximum size of the data sieve buffer
-!
-! Inputs:
-! plist_id - file access property list identifier
-! Outputs:
-! size - sieve buffer size
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 7, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_sieve_buf_size_f(plist_id, size, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist_id ! File access property list identifier
- INTEGER(SIZE_T), INTENT(OUT) :: size ! Buffer size in bytes
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTERFACE
- INTEGER FUNCTION h5pget_sieve_buf_size_c(plist_id, size)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_SIEVE_BUF_SIZE_C'::h5pget_sieve_buf_size_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: plist_id
- INTEGER(SIZE_T), INTENT(OUT) :: size
- END FUNCTION h5pget_sieve_buf_size_c
- END INTERFACE
-
- hdferr = h5pget_sieve_buf_size_c(plist_id, size)
- END SUBROUTINE h5pget_sieve_buf_size_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_small_data_block_size_f
-!
-! Purpose: Sets the minimum size of "small" raw data block
-!
-! Inputs:
-! plist_id - file access property list identifier
-! size - small raw data block size
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 7, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_small_data_block_size_f(plist_id, size, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist_id ! File access property list identifier
- INTEGER(HSIZE_T), INTENT(IN) :: size ! Small raw data block size
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTERFACE
- INTEGER FUNCTION h5pset_small_data_block_size_c(plist_id, size)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_SMALL_DATA_BLOCK_SIZE_C'::h5pset_small_data_block_size_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: plist_id
- INTEGER(HSIZE_T), INTENT(IN) :: size
- END FUNCTION h5pset_small_data_block_size_c
- END INTERFACE
-
- hdferr = h5pset_small_data_block_size_c(plist_id, size)
- END SUBROUTINE h5pset_small_data_block_size_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_small_data_block_size_f
-!
-! Purpose: Gets the minimum size of "small" raw data block
-!
-! Inputs:
-! plist_id - file access property list identifier
-! Outputs:
-! size - small raw data block size
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 7, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_small_data_block_size_f(plist_id, size, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist_id ! File access property list identifier
- INTEGER(HSIZE_T), INTENT(OUT) :: size ! Small raw data block size
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTERFACE
- INTEGER FUNCTION h5pget_small_data_block_size_c(plist_id, size)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_SMALL_DATA_BLOCK_SIZE_C'::h5pget_small_data_block_size_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: plist_id
- INTEGER(HSIZE_T), INTENT(OUT) :: size
- END FUNCTION h5pget_small_data_block_size_c
- END INTERFACE
-
- hdferr = h5pget_small_data_block_size_c(plist_id, size)
- END SUBROUTINE h5pget_small_data_block_size_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_hyper_vector_size_f
-!
-! Purpose: Set the number of "I/O" vectors (vector size)
-!
-! Inputs:
-! plist_id - dataset transfer property list identifier
-! size - vector size
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 7, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_hyper_vector_size_f(plist_id, size, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset transfer property list identifier
- INTEGER(SIZE_T), INTENT(IN) :: size ! Vector size
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTERFACE
- INTEGER FUNCTION h5pset_hyper_vector_size_c(plist_id, size)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_HYPER_VECTOR_SIZE_C'::h5pset_hyper_vector_size_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: plist_id
- INTEGER(SIZE_T), INTENT(IN) :: size
- END FUNCTION h5pset_hyper_vector_size_c
- END INTERFACE
-
- hdferr = h5pset_hyper_vector_size_c(plist_id, size)
- END SUBROUTINE h5pset_hyper_vector_size_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_hyper_vector_size_f
-!
-! Purpose: Get the number of "I/O" vectors (vector size)
-!
-! Inputs:
-! plist_id - dataset transfer property list identifier
-! Outputs:
-! size - vector size
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 7, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_hyper_vector_size_f(plist_id, size, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset transfer property list identifier
- INTEGER(SIZE_T), INTENT(OUT) :: size ! Vector size
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTERFACE
- INTEGER FUNCTION h5pget_hyper_vector_size_c(plist_id, size)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_HYPER_VECTOR_SIZE_C'::h5pget_hyper_vector_size_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: plist_id
- INTEGER(SIZE_T), INTENT(OUT) :: size
- END FUNCTION h5pget_hyper_vector_size_c
- END INTERFACE
-
- hdferr = h5pget_hyper_vector_size_c(plist_id, size)
- END SUBROUTINE h5pget_hyper_vector_size_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_integer
-!
-! Purpose: Sets a property list value
-!
-! Inputs:
-! prp_id - iproperty list identifier to modify
-! name - name of property to modify
-! value - value to set property to
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 9, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_integer(prp_id, name, value, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
- INTEGER, INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5pset_integer_c(prp_id, name, name_len, value)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_INTEGER_C'::h5pset_integer_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: prp_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- INTEGER, INTENT(IN) :: value
- END FUNCTION h5pset_integer_c
- END INTERFACE
-
- name_len = LEN(name)
- hdferr = h5pset_integer_c(prp_id, name , name_len, value)
- END SUBROUTINE h5pset_integer
-
-!----------------------------------------------------------------------
-! Name: h5pset_real
-!
-! Purpose: Sets a property list value
-!
-! Inputs:
-! prp_id - iproperty list identifier to modify
-! name - name of property to modify
-! value - value to set property to
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 9, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_real(prp_id, name, value, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
- REAL, INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5pset_real_c(prp_id, name, name_len, value)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_REAL_C'::h5pset_real_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: prp_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- REAL, INTENT(IN) :: value
- END FUNCTION h5pset_real_c
- END INTERFACE
-
- name_len = LEN(name)
- hdferr = h5pset_real_c(prp_id, name , name_len, value)
- END SUBROUTINE h5pset_real
-
-
-!----------------------------------------------------------------------
-! Name: h5pset_char
-!
-! Purpose: Sets a property list value
-!
-! Inputs:
-! prp_id - iproperty list identifier to modify
-! name - name of property to modify
-! value - value to set property to
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 9, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_char(prp_id, name, value, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
- CHARACTER(LEN=*), INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
- INTEGER :: value_len
-
- INTERFACE
- INTEGER FUNCTION h5psetc_c(prp_id, name, name_len, value, value_len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSETC_C'::h5psetc_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- !DEC$ATTRIBUTES reference :: value
- INTEGER(HID_T), INTENT(IN) :: prp_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- CHARACTER(LEN=*), INTENT(IN) :: value
- INTEGER, INTENT(IN) :: value_len
- END FUNCTION h5psetc_c
- END INTERFACE
-
- name_len = LEN(name)
- value_len = LEN(value)
- hdferr = h5psetc_c(prp_id, name , name_len, value, value_len)
- END SUBROUTINE h5pset_char
-
-!----------------------------------------------------------------------
-! Name: h5pget_integer
-!
-! Purpose: Gets a property list value
-!
-! Inputs:
-! prp_id - iproperty list identifier to modify
-! name - name of property to modify
-! Outputs:
-! value - value of property
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 9, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_integer(prp_id, name, value, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
- INTEGER, INTENT(OUT) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5pget_integer_c(prp_id, name, name_len, value)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_INTEGER_C'::h5pget_integer_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: prp_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- INTEGER, INTENT(OUT) :: value
- END FUNCTION h5pget_integer_c
- END INTERFACE
-
- name_len = LEN(name)
- hdferr = h5pget_integer_c(prp_id, name , name_len, value)
- END SUBROUTINE h5pget_integer
-
-!----------------------------------------------------------------------
-! Name: h5pget_real
-!
-! Purpose: Gets a property list value
-!
-! Inputs:
-! prp_id - iproperty list identifier to modify
-! name - name of property to modify
-! Outputs:
-! value - value of property
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 9, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_real(prp_id, name, value, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
- REAL, INTENT(OUT) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5pget_real_c(prp_id, name, name_len, value)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_REAL_C'::h5pget_real_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: prp_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- REAL, INTENT(OUT) :: value
- END FUNCTION h5pget_real_c
- END INTERFACE
-
- name_len = LEN(name)
- hdferr = h5pget_real_c(prp_id, name , name_len, value)
- END SUBROUTINE h5pget_real
-
-
-!----------------------------------------------------------------------
-! Name: h5pget_char
-!
-! Purpose: Gets a property list value
-!
-! Inputs:
-! prp_id - iproperty list identifier to modify
-! name - name of property to modify
-! Outputs:
-! value - value of property
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 9, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_char(prp_id, name, value, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
- CHARACTER(LEN=*), INTENT(OUT) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
- INTEGER :: value_len
-
- INTERFACE
- INTEGER FUNCTION h5pgetc_c(prp_id, name, name_len, value, value_len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGETC_C'::h5pgetc_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- !DEC$ATTRIBUTES reference :: value
- INTEGER(HID_T), INTENT(IN) :: prp_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- CHARACTER(LEN=*), INTENT(OUT) :: value
- INTEGER, INTENT(IN) :: value_len
- END FUNCTION h5pgetc_c
- END INTERFACE
-
- name_len = LEN(name)
- value_len = LEN(value)
- hdferr = h5pgetc_c(prp_id, name , name_len, value, value_len)
- END SUBROUTINE h5pget_char
-
-!----------------------------------------------------------------------
-! Name: h5pexist_f
-!
-! Purpose: Queries whether a property name exists in a property list or class.
-!
-! Inputs:
-! prp_id - iproperty list identifier to query
-! name - name of property to check for
-! Outputs:
-! flag - logical flag
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 9, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pexist_f(prp_id, name, flag, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
- LOGICAL, INTENT(OUT) :: flag ! .TRUE. if exists, .FALSE.
- ! otherwise
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5pexist_c(prp_id, name, name_len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PEXIST_C'::h5pexist_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: prp_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- END FUNCTION h5pexist_c
- END INTERFACE
- flag = .FALSE.
- name_len = LEN(name)
- hdferr = h5pexist_c(prp_id, name , name_len)
- if (hdferr > 0) then
- flag = .TRUE.
- hdferr = 0
- endif
- END SUBROUTINE h5pexist_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_size_f
-!
-! Purpose: Queries the size of a property value in bytes.
-!
-! Inputs:
-! prp_id - property list identifier to query
-! name - name of property to query
-! Outputs:
-! size - size of property in bytes
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 9, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_size_f(prp_id, name, size, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to query
- INTEGER(SIZE_T), INTENT(OUT) :: size ! Size in bytes
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5pget_size_c(prp_id, name, name_len, size)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_SIZE_C'::h5pget_size_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: prp_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- INTEGER(SIZE_T), INTENT(OUT) :: size
- END FUNCTION h5pget_size_c
- END INTERFACE
- name_len = LEN(name)
- hdferr = h5pget_size_c(prp_id, name , name_len, size)
- END SUBROUTINE h5pget_size_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_npros_f
-!
-! Purpose: Queries number of properties in property list or class
-!
-! Inputs:
-! prp_id - iproperty list identifier to query
-! Outputs:
-! nprops - number of properties in property object
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 9, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_nprops_f(prp_id, nprops, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(SIZE_T), INTENT(OUT) :: nprops ! iNumber of properties
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTERFACE
- INTEGER FUNCTION h5pget_nprops_c(prp_id, nprops)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_NPROPS_C'::h5pget_nprops_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(SIZE_T), INTENT(OUT) :: nprops
- END FUNCTION h5pget_nprops_c
- END INTERFACE
- hdferr = h5pget_nprops_c(prp_id, nprops)
- END SUBROUTINE h5pget_nprops_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_class_name_f
-!
-! Purpose: Queries the name of a class.
-!
-! Inputs:
-! prp_id - property list identifier to query
-! Outputs:
-! name - name of a class
-! size - Actual length of the class name
-! If provided buffer "name" is smaller,
-! than name will be truncated to fit into
-! provided user buffer
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 9, 2002
-!
-! Modifications: Returned the size of name as an argument
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_class_name_f(prp_id, name, size, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(OUT) :: name ! Buffer to retireve class name
-
- INTEGER, INTENT(OUT) :: size ! Actual length of the class name
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5pget_class_name_c(prp_id, name, name_len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_CLASS_NAME_C'::h5pget_class_name_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: prp_id
- CHARACTER(LEN=*), INTENT(INOUT) :: name
- INTEGER, INTENT(IN) :: name_len
- END FUNCTION h5pget_class_name_c
- END INTERFACE
-
- name_len = LEN(name)
- size = h5pget_class_name_c(prp_id, name, name_len)
-
- hdferr = 0
- IF(size.LT.0) hdferr = -1
-
- END SUBROUTINE h5pget_class_name_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_class_parent_f
-!
-! Purpose: Retrieves the parent class of a genric property class.
-!
-! Inputs:
-! prp_id - property list identifier to query
-! Outputs:
-! parent_id - identifier of the parent class
-! hdferr: - error code
-!
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 9, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_class_parent_f(prp_id, parent_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HID_T), INTENT(OUT) :: parent_id ! Parent class property list
- ! identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTERFACE
- INTEGER FUNCTION h5pget_class_parent_c(prp_id, parent_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_CLASS_PARENT_C'::h5pget_class_parent_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(HID_T), INTENT(OUT) :: parent_id
- END FUNCTION h5pget_class_parent_c
- END INTERFACE
- hdferr = h5pget_class_parent_c(prp_id, parent_id)
- END SUBROUTINE h5pget_class_parent_f
-
-!----------------------------------------------------------------------
-! Name: h5pisa_class_f
-!
-! Purpose: Determines whether a property list is a member of a class.
-!
-! Inputs:
-! plist - property list identifier
-! pclass - identifier of the property class
-! Outputs:
-! flag - .TRUE. if a member, .FALSE. otherwise
-! hdferr: - error code
-!
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 9, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pisa_class_f(plist, pclass, flag, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
- INTEGER(HID_T), INTENT(IN) :: pclass ! Class identifier
- LOGICAL, INTENT(OUT) :: flag ! logical flag
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTERFACE
- INTEGER FUNCTION h5pisa_class_c(plist, pclass)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PISA_CLASS_C'::h5pisa_class_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: plist
- INTEGER(HID_T), INTENT(IN) :: pclass
- END FUNCTION h5pisa_class_c
- END INTERFACE
- flag = .FALSE.
- hdferr = h5pisa_class_c(plist, pclass)
- if (hdferr .gt. 0) then
- flag = .TRUE.
- hdferr = 0
- endif
- END SUBROUTINE h5pisa_class_f
-
-!----------------------------------------------------------------------
-! Name: h5pcopy_prop_f
-!
-! Purpose: Copies a property from one list or class to another.
-!
-! Inputs:
-! dst_id - Identifier of the destination property list
-! src_id - Identifier of the source property list
-! name - name of the property to copy
-! Outputs:
-! hdferr: - error code
-!
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 9, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pcopy_prop_f(dst_id, src_id, name, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dst_id ! Destination property list
- ! identifier
- INTEGER(HID_T), INTENT(IN) :: src_id ! Source property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Property name
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5pcopy_prop_c(dst_id, src_id, name, name_len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PCOPY_PROP_C'::h5pcopy_prop_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: dst_id
- INTEGER(HID_T), INTENT(IN) :: src_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- END FUNCTION h5pcopy_prop_c
- END INTERFACE
- name_len = LEN(name)
- hdferr = h5pcopy_prop_c(dst_id, src_id, name , name_len)
- END SUBROUTINE h5pcopy_prop_f
-
-!----------------------------------------------------------------------
-! Name: h5premove_f
-!
-! Purpose: Removes a property from a property list.
-
-!
-! Inputs:
-! plid - Property list identofoer
-! name - name of the property to remove
-! Outputs:
-! hdferr: - error code
-!
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 9, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5premove_f(plid, name, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plid ! property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! name of property to remove
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5premove_c(plid, name, name_len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PREMOVE_C'::h5premove_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: plid
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- END FUNCTION h5premove_c
- END INTERFACE
- name_len = LEN(name)
- hdferr = h5premove_c(plid, name , name_len)
- END SUBROUTINE h5premove_f
-
-!----------------------------------------------------------------------
-! Name: h5punregister_f
-!
-! Purpose: Removes a property from a property list class.
-
-!
-! Inputs:
-! class - Property list class identifier
-! name - name of the property to remove
-! Outputs:
-! hdferr: - error code
-!
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 9, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5punregister_f(class, name, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: class ! property list class identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! name of property to remove
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5punregister_c(class, name, name_len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PUNREGISTER_C'::h5punregister_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: class
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- END FUNCTION h5punregister_c
- END INTERFACE
- name_len = LEN(name)
- hdferr = h5punregister_c(class, name , name_len)
- END SUBROUTINE h5punregister_f
-
-!----------------------------------------------------------------------
-! Name: h5pclose_class_f
-!
-! Purpose: Closes an existing property list class.
-
-!
-! Inputs:
-! class - Property list class identifier
-! Outputs:
-! hdferr: - error code
-!
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 9, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pclose_class_f(class, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: class ! property list class identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTERFACE
- INTEGER FUNCTION h5pclose_class_c(class)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PCLOSE_CLASS_C'::h5pclose_class_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: class
- END FUNCTION h5pclose_class_c
- END INTERFACE
- hdferr = h5pclose_class_c(class)
- END SUBROUTINE h5pclose_class_f
-
-!----------------------------------------------------------------------
-! Name: h5pcreate_class_f
-!
-! Purpose: Create a new property list class
-
-!
-! Inputs:
-! parent - Property list identifier of the parent class
-! Possible values include:
-! H5P_ROOT_F
-! H5P_FILE_CREATE_F
-! H5P_FILE_ACCESS_F
-! H5P_DATASET_CREATE_F
-! H5P_DATASET_XFER_F
-! H5P_FILE_MOUNT_F
-! name - name of the class we are creating
-! Outputs:
-! class - porperty list class identifier
-! hdferr: - error code
-!
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 9, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pcreate_class_f(parent, name, class, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: parent ! parent property list class
- ! identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! name of property tocreate
- INTEGER(HID_T), INTENT(OUT) :: class ! property list class identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5pcreate_class_c(parent, name, name_len,&
- class)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PCREATE_CLASS_C'::h5pcreate_class_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: parent
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- INTEGER(HID_T), INTENT(OUT) :: class
- END FUNCTION h5pcreate_class_c
- END INTERFACE
- name_len = LEN(name)
- hdferr = h5pcreate_class_c(parent, name , name_len, &
- class)
- END SUBROUTINE h5pcreate_class_f
-
-!----------------------------------------------------------------------
-! Name: h5pregister_integer
-!
-! Purpose: Registers a permanent property with a property list class.
-!
-! Inputs:
-! class - property list class to register
-! permanent property within
-! name - name of property to register
-! size - size of property in bytes
-! value - default value for property in newly
-! created property lists
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 10, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pregister_integer(class, name, size, value, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register
- INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
- INTEGER, INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5pregister_integer_c(class, name, name_len, size, value)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PREGISTER_INTEGER_C'::h5pregister_integer_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: class
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- INTEGER(SIZE_T), INTENT(IN) :: size
- INTEGER, INTENT(IN) :: value
- END FUNCTION h5pregister_integer_c
- END INTERFACE
-
- name_len = LEN(name)
- hdferr = h5pregister_integer_c(class, name , name_len, size, value)
- END SUBROUTINE h5pregister_integer
-
-!----------------------------------------------------------------------
-! Name: h5pregister_real
-!
-! Purpose: Registers a permanent property with a property list class.
-!
-! Inputs:
-! class - property list class to register
-! permanent property within
-! name - name of property to register
-! size - size of property in bytes
-! value - default value for property in newly
-! created property lists
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 10, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pregister_real(class, name, size, value, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register
- INTEGER(SIZE_T), INTENT(IN) :: size ! size of the property value
- REAL, INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5pregister_real_c(class, name, name_len, size, value)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PREGISTER_REAL_C'::h5pregister_real_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: class
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- INTEGER(SIZE_T), INTENT(IN) :: size
- REAL, INTENT(IN) :: value
- END FUNCTION h5pregister_real_c
- END INTERFACE
-
- name_len = LEN(name)
- hdferr = h5pregister_real_c(class, name , name_len, size, value)
- END SUBROUTINE h5pregister_real
-
-!----------------------------------------------------------------------
-! Name: h5pregister_char
-!
-! Purpose: Registers a permanent property with a property list class.
-!
-! Inputs:
-! class - property list class to register
-! permanent property within
-! name - name of property to register
-! size - size of property in bytes
-! value - default value for property in newly
-! created property lists
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 10, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pregister_char(class, name, size, value, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register
- INTEGER(SIZE_T), INTENT(IN) :: size ! size of the property value
- CHARACTER(LEN=*), INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
- INTEGER :: value_len
-
- INTERFACE
- INTEGER FUNCTION h5pregisterc_c(class, name, name_len, size, value, &
- value_len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PREGISTERC_C'::h5pregisterc_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- !DEC$ATTRIBUTES reference :: value
- INTEGER(HID_T), INTENT(IN) :: class
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- INTEGER(SIZE_T), INTENT(IN) :: size
- CHARACTER(LEN=*), INTENT(IN) :: value
- INTEGER, INTENT(IN) :: value_len
- END FUNCTION h5pregisterc_c
- END INTERFACE
-
- name_len = LEN(name)
- value_len = LEN(value)
- hdferr = h5pregisterc_c(class, name , name_len, size, value, value_len)
- END SUBROUTINE h5pregister_char
-
-!----------------------------------------------------------------------
-! Name: h5pinsert_integer
-!
-! Purpose: Registers a temporary property with a property list class.
-!
-! Inputs:
-! plist - property list identifier
-! name - name of property to insert
-! size - size of property in bytes
-! value - initial value for the property
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 10, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pinsert_integer(plist, name, size, value, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to insert
- INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
- INTEGER, INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5pinsert_integer_c(plist, name, name_len, size, value)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PINSERT_INTEGER_C'::h5pinsert_integer_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: plist
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- INTEGER(SIZE_T), INTENT(IN) :: size
- INTEGER, INTENT(IN) :: value
- END FUNCTION h5pinsert_integer_c
- END INTERFACE
-
- name_len = LEN(name)
- hdferr = h5pinsert_integer_c(plist, name , name_len, size, value)
- END SUBROUTINE h5pinsert_integer
-
-!----------------------------------------------------------------------
-! Name: h5pinsert_real
-!
-! Purpose: Registers a temporary property with a property list class.
-!
-! Inputs:
-! plist - property list identifier
-! permanent property within
-! name - name of property to insert
-! size - size of property in bytes
-! value - initial value for the property
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 10, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pinsert_real(plist, name, size, value, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to insert
- INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
- REAL, INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5pinsert_real_c(plist, name, name_len, size, value)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PINSERT_REAL_C'::h5pinsert_real_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: plist
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- INTEGER(SIZE_T), INTENT(IN) :: size
- REAL, INTENT(IN) :: value
- END FUNCTION h5pinsert_real_c
- END INTERFACE
-
- name_len = LEN(name)
- hdferr = h5pinsert_real_c(plist, name , name_len, size, value)
- END SUBROUTINE h5pinsert_real
-
-
-!----------------------------------------------------------------------
-! Name: h5pinsert_char
-!
-! Purpose: Registers a temporary property with a property list class.
-!
-! Inputs:
-! plist - property list identifier
-! permanent property within
-! name - name of property to insert
-! size - size of property in bytes
-! value - initial value for the property
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 10, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pinsert_char(plist, name, size, value, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to insert
- INTEGER(SIZE_T), INTENT(IN) :: size ! Size of property value
- CHARACTER(LEN=*), INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
- INTEGER :: value_len
-
- INTERFACE
- INTEGER FUNCTION h5pinsertc_c(plist, name, name_len, size, value, value_len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PINSERTC_C'::h5pinsertc_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- !DEC$ATTRIBUTES reference :: value
- INTEGER(HID_T), INTENT(IN) :: plist
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- INTEGER(SIZE_T), INTENT(IN) :: size
- CHARACTER(LEN=*), INTENT(IN) :: value
- INTEGER, INTENT(IN) :: value_len
- END FUNCTION h5pinsertc_c
- END INTERFACE
-
- name_len = LEN(name)
- value_len = LEN(value)
- hdferr = h5pinsertc_c(plist, name , name_len, size, value, value_len)
- END SUBROUTINE h5pinsert_char
-
-!----------------------------------------------------------------------
-! Name: h5pset_shuffle_f
-!
-! Purpose: Sets shuffling filter
-!
-! Inputs:
-! prp_id - dataset creation property list identifier
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! March 12, 2003
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5pset_shuffle_f(prp_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: fapl_id
+ INTEGER, INTENT(OUT) :: degree
+ END FUNCTION h5pget_fclose_degree_c
+ END INTERFACE
+
+ hdferr = h5pget_fclose_degree_c(fapl_id, degree)
+ END SUBROUTINE h5pget_fclose_degree_f
+
+!****s* H5P/h5pset_fclose_degree_f
+! NAME
+! h5pset_fclose_degree_f
+!
+! PURPOSE
+! Sets the degree for the file close behavior.
+!
+! INPUTS
+!
+! fapl_id - file access property list identifier
+! degree - Possible values are:
+! H5F_CLOSE_DEFAULT_F
+! H5F_CLOSE_WEAK_F
+! H5F_CLOSE_SEMI_F
+! H5F_CLOSE_STRONG_F
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! September 26, 2002
+!
+! SOURCE
+ SUBROUTINE h5pset_fclose_degree_f(fapl_id, degree, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: fapl_id ! File Access Property list identifier
+ INTEGER, INTENT(IN) :: degree ! Possible values are:
+ ! H5F_CLOSE_DEFAULT_F
+ ! H5F_CLOSE_WEAK_F
+ ! H5F_CLOSE_SEMI_F
+ ! H5F_CLOSE_STRONG_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
-! INTEGER, EXTERNAL :: h5pset_shuffle_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5pset_shuffle_c(prp_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_SHUFFLE_C'::h5pset_shuffle_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- END FUNCTION h5pset_shuffle_c
- END INTERFACE
- hdferr = h5pset_shuffle_c(prp_id)
+ INTERFACE
+ INTEGER FUNCTION h5pset_fclose_degree_c(fapl_id, degree)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FCLOSE_DEGREE_C'::h5pset_fclose_degree_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: fapl_id
+ INTEGER, INTENT(IN) :: degree
+ END FUNCTION h5pset_fclose_degree_c
+ END INTERFACE
+
+ hdferr = h5pset_fclose_degree_c(fapl_id, degree)
+ END SUBROUTINE h5pset_fclose_degree_f
+
+!****s* H5P/h5pequal_f
+! NAME
+! h5pequal_f
+!
+! PURPOSE
+! Checks if two property lists are eqaul
+!
+! INPUTS
+!
+! plist1_id - property list identifier
+! plist2_id - property list identifier
+! OUTPUTS
+!
+! flag - flag, possible values
+! .TRUE. or .FALSE.
+! hdferr: - error code
+! Success: 0
+! Failure: -1, flag is set to .FALSE.
+!
+! AUTHOR
+! Elena Pourmal
+! September 30, 2002
+!
+! SOURCE
+ SUBROUTINE h5pequal_f(plist1_id, plist2_id, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist1_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: plist2_id ! Property list identifier
+ LOGICAL, INTENT(OUT) :: flag ! Flag
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: c_flag
+
+ INTERFACE
+ INTEGER FUNCTION h5pequal_c(plist1_id, plist2_id, c_flag)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PEQUAL_C'::h5pequal_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: plist1_id
+ INTEGER(HID_T), INTENT(IN) :: plist2_id
+ INTEGER, INTENT(OUT) :: c_flag
+ END FUNCTION h5pequal_c
+ END INTERFACE
- END SUBROUTINE h5pset_shuffle_f
+ flag = .FALSE.
+ hdferr = h5pequal_c(plist1_id, plist2_id, c_flag)
+ IF (c_flag .GT. 0) flag = .TRUE.
+ END SUBROUTINE h5pequal_f
+
+!****s* H5P/h5pset_buffer_f
+! NAME
+! h5pset_buffer_f
+!
+! PURPOSE
+! Sets sixe for conversion buffer
+!
+! INPUTS
+! plist_id - data transfer property list identifier
+! size - buffer size
+! OUTPUTS
+!
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 2, 2002
+!
+! SOURCE
+ SUBROUTINE h5pset_buffer_f(plist_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Data transfer property list identifier
+ INTEGER(HSIZE_T), INTENT(IN) :: size ! Buffer size in bytes;
+ ! buffer is allocated and freed by
+ ! the library.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
-!----------------------------------------------------------------------
-! Name: h5pset_edc_check_f
-!
-! Purpose: Enables/disables error detecting
+ INTERFACE
+ INTEGER FUNCTION h5pset_buffer_c(plist_id, size)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_BUFFER_C'::h5pset_buffer_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER(HSIZE_T), INTENT(IN) :: size
+ END FUNCTION h5pset_buffer_c
+ END INTERFACE
+
+ hdferr = h5pset_buffer_c(plist_id, size)
+ END SUBROUTINE h5pset_buffer_f
+
+!****s* H5P/h5pget_buffer_f
+! NAME
+! h5pget_buffer_f
!
-! Inputs:
-! prp_id - dataset creation property list identifier
-! flag - EDC flag; possible values:
-! H5Z_DISABLE_EDC_F
-! H5Z_ENABLE_EDC_F
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! PURPOSE
+! Gets size for conversion buffer
!
-! Programmer: Elena Pourmal
-! March 13, 2003
+! INPUTS
+!
+! plist_id - data transfer property list identifier
+! OUTPUTS
+!
+! size - buffer size
+! hdferr - error code
+! Success: 0
+! Failure: -1
!
-! Modifications:
+! AUTHOR
+! Elena Pourmal
+! October 2, 2002
!
-! Comment:
-!----------------------------------------------------------------------
+! SOURCE
+ SUBROUTINE h5pget_buffer_f(plist_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Data transfer property list identifier
+ INTEGER(HSIZE_T), INTENT(OUT) :: size ! Buffer size in bytes;
+ ! buffer is allocated and freed by
+ ! the library.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_buffer_c(plist_id, size)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_BUFFER_C'::h5pget_buffer_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER(HSIZE_T), INTENT(OUT) :: size
+ END FUNCTION h5pget_buffer_c
+ END INTERFACE
+ hdferr = h5pget_buffer_c(plist_id, size)
+ END SUBROUTINE h5pget_buffer_f
+
+!****s* H5P/h5pfill_value_defined_f
+! NAME
+! h5pfill_value_defined_f
+!
+! PURPOSE
+! Check if fill value is defined.
+!
+! INPUTS
+!
+! plist_id - dataset creation property list identifier
+! OUTPUTS
+!
+! flag - fill value status flag
+! Possible values are:
+! H5D_FILL_VALUE_ERROR_F
+! H5D_FILL_VALUE_UNDEFINED_F
+! H5D_FILL_VALUE_DEFAULT_F
+! H5D_FILL_VALUE_USER_DEFINED_F
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 4, 2002
+!
+! SOURCE
+ SUBROUTINE h5pfill_value_defined_f(plist_id, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset creation property list identifier
+ INTEGER, INTENT(OUT) :: flag ! Fill value status flag
+ ! H5D_FILL_VALUE_ERROR_F
+ ! H5D_FILL_VALUE_UNDEFINED_F
+ ! H5D_FILL_VALUE_DEFAULT_F
+ ! H5D_FILL_VALUE_USER_DEFINED_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pfill_value_defined_c(plist_id, flag)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PFILL_VALUE_DEFINED_C'::h5pfill_value_defined_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER, INTENT(OUT) :: flag
+ END FUNCTION h5pfill_value_defined_c
+ END INTERFACE
- SUBROUTINE h5pset_edc_check_f(prp_id, flag, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(IN) :: flag ! Checksum filter flag
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ hdferr = h5pfill_value_defined_c(plist_id, flag)
+ END SUBROUTINE h5pfill_value_defined_f
+
+!****s* H5P/h5pset_alloc_time_f
+! NAME
+! h5pset_alloc_time_f
+!
+! PURPOSE
+! Set space allocation time for dataset during creation.
+!
+! INPUTS
+!
+! plist_id - dataset creation property list identifier
+! flag - allocation time flag:
+! H5D_ALLOC_TIME_ERROR_F
+! H5D_ALLOC_TIME_DEFAULT_F
+! H5D_ALLOC_TIME_EARLY_F
+! H5D_ALLOC_TIME_LATE_F
+! H5D_ALLOC_TIME_INCR_F
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 4, 2002
+!
+! SOURCE
+ SUBROUTINE h5pset_alloc_time_f(plist_id, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset creation property list identifier
+ INTEGER, INTENT(IN) :: flag ! Allocation time flag:
+ ! H5D_ALLOC_TIME_ERROR_F
+ ! H5D_ALLOC_TIME_DEFAULT_F
+ ! H5D_ALLOC_TIME_EARLY_F
+ ! H5D_ALLOC_TIME_LATE_F
+ ! H5D_ALLOC_TIME_INCR_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_alloc_time_c(plist_id, flag)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_ALLOC_TIME_C'::h5pset_alloc_time_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER, INTENT(IN) :: flag
+ END FUNCTION h5pset_alloc_time_c
+ END INTERFACE
+
+ hdferr = h5pset_alloc_time_c(plist_id, flag)
+ END SUBROUTINE h5pset_alloc_time_f
+
+!****s* H5P/h5pget_alloc_time_f
+! NAME
+! h5pget_alloc_time_f
+!
+! PURPOSE
+! Get space allocation time for dataset during creation.
+!
+! INPUTS
+!
+! plist_id - dataset creation property list identifier
+! OUTPUTS
+!
+! flag - allocation time flag:
+! H5D_ALLOC_TIME_ERROR_F
+! H5D_ALLOC_TIME_DEFAULT_F
+! H5D_ALLOC_TIME_EARLY_F
+! H5D_ALLOC_TIME_LATE_F
+! H5D_ALLOC_TIME_INCR_F
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 4, 2002
+!
+! SOURCE
+ SUBROUTINE h5pget_alloc_time_f(plist_id, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset creation property list identifier
+ INTEGER, INTENT(OUT) :: flag ! Allocation time flag:
+ ! H5D_ALLOC_TIME_ERROR_F
+ ! H5D_ALLOC_TIME_DEFAULT_F
+ ! H5D_ALLOC_TIME_EARLY_F
+ ! H5D_ALLOC_TIME_LATE_F
+ ! H5D_ALLOC_TIME_INCR_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
-! INTEGER, EXTERNAL :: h5pset_edc_check_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5pset_edc_check_c(prp_id, flag)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_EDC_CHECK_C'::h5pset_edc_check_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER, INTENT(IN) :: flag
- END FUNCTION h5pset_edc_check_c
- END INTERFACE
- hdferr = h5pset_edc_check_c(prp_id, flag)
-
- END SUBROUTINE h5pset_edc_check_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_edc_check_f
-!
-! Purpose: Queries error detecting
-!
-! Inputs:
-! prp_id - dataset creation property list identifier
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! March 13, 2003
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5pget_edc_check_f(prp_id, flag, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Dataset transfer property list identifier
- INTEGER, INTENT(OUT) :: flag ! Checksum filter flag
- ! May have one of the following values:
- ! H5Z_ERROR_EDC_F
- ! H5Z_DISABLE_EDC_F
- ! H5Z_ENABLE_EDC_F
- ! H5Z_NO_EDC_F
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTERFACE
+ INTEGER FUNCTION h5pget_alloc_time_c(plist_id, flag)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_ALLOC_TIME_C'::h5pget_alloc_time_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER, INTENT(OUT) :: flag
+ END FUNCTION h5pget_alloc_time_c
+ END INTERFACE
+
+ hdferr = h5pget_alloc_time_c(plist_id, flag)
+ END SUBROUTINE h5pget_alloc_time_f
+
+!****s* H5P/h5pset_fill_time_f
+! NAME
+! h5pset_fill_time_f
+!
+! PURPOSE
+! Set fill value writing time for dataset
+!
+! INPUTS
+!
+! plist_id - dataset creation property list identifier
+! flag - fill time flag:
+! H5D_FILL_TIME_ERROR_F
+! H5D_FILL_TIME_ALLOC_F
+! H5D_FILL_TIME_NEVER_F
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 4, 2002
+!
+! SOURCE
+ SUBROUTINE h5pset_fill_time_f(plist_id, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset creation property list identifier
+ INTEGER, INTENT(IN) :: flag ! Fill time flag:
+ ! H5D_FILL_TIME_ERROR_F
+ ! H5D_FILL_TIME_ALLOC_F
+ ! H5D_FILL_TIME_NEVER_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
-! INTEGER, EXTERNAL :: h5pget_edc_check_c
-! MS FORTRAN needs explicit interface for C functions called here.
+ INTERFACE
+ INTEGER FUNCTION h5pset_fill_time_c(plist_id, flag)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FILL_TIME_C'::h5pset_fill_time_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER, INTENT(IN) :: flag
+ END FUNCTION h5pset_fill_time_c
+ END INTERFACE
+
+ hdferr = h5pset_fill_time_c(plist_id, flag)
+ END SUBROUTINE h5pset_fill_time_f
+
+!****s* H5P/h5pget_fill_time_f
+! NAME
+! h5pget_fill_time_f
+!
+! PURPOSE
+! Get fill value writing time for dataset
+!
+! INPUTS
+!
+! plist_id - dataset creation property list identifier
+! OUTPUTS
+!
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! OPTIONAL PARAMETERS
+!
+! flag - fill time flag:
+! H5D_FILL_TIME_ERROR_F
+! H5D_FILL_TIME_ALLOC_F
+! H5D_FILL_TIME_NEVER_F
+! AUTHOR
+! Elena Pourmal
+! October 4, 2002
+!
+! SOURCE
+ SUBROUTINE h5pget_fill_time_f(plist_id, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset creation property list identifier
+ INTEGER, INTENT(OUT) :: flag ! Fill time flag:
+ ! H5D_FILL_TIME_ERROR_F
+ ! H5D_FILL_TIME_ALLOC_F
+ ! H5D_FILL_TIME_NEVER_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_fill_time_c(plist_id, flag)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FILL_TIME_C'::h5pget_fill_time_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER, INTENT(OUT) :: flag
+ END FUNCTION h5pget_fill_time_c
+ END INTERFACE
+
+ hdferr = h5pget_fill_time_c(plist_id, flag)
+ END SUBROUTINE h5pget_fill_time_f
+
+!****s* H5P/ h5pset_meta_block_size_f
+! NAME
+! h5pset_meta_block_size_f
+!
+! PURPOSE
+! Sets the minimum size of metadata block allocations
+!
+! INPUTS
+!
+! plist_id - file access property list identifier
+! size - metatdata block size
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 7, 2002
+!
+! SOURCE
+ SUBROUTINE h5pset_meta_block_size_f(plist_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! File access property list identifier
+ INTEGER(HSIZE_T), INTENT(IN) :: size ! Block size in bytes;
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_meta_block_size_c(plist_id, size)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_META_BLOCK_SIZE_C'::h5pset_meta_block_size_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER(HSIZE_T), INTENT(IN) :: size
+ END FUNCTION h5pset_meta_block_size_c
+ END INTERFACE
+
+ hdferr = h5pset_meta_block_size_c(plist_id, size)
+ END SUBROUTINE h5pset_meta_block_size_f
+
+!****s* H5P/h5pget_meta_block_size_f
+! NAME
+! h5pget_meta_block_size_f
+!
+! PURPOSE
+! Gets the minimum size of metadata block allocations
+!
+! INPUTS
+!
+! plist_id - file access property list identifier
+! OUTPUTS
+!
+! size - metatdata block size
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 7, 2002
+!
+! SOURCE
+ SUBROUTINE h5pget_meta_block_size_f(plist_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! File access property list identifier
+ INTEGER(HSIZE_T), INTENT(OUT) :: size ! Block size in bytes;
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_meta_block_size_c(plist_id, size)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_META_BLOCK_SIZE_C'::h5pget_meta_block_size_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER(HSIZE_T), INTENT(OUT) :: size
+ END FUNCTION h5pget_meta_block_size_c
+ END INTERFACE
+
+ hdferr = h5pget_meta_block_size_c(plist_id, size)
+ END SUBROUTINE h5pget_meta_block_size_f
+
+!****s* H5P/h5pset_sieve_buf_size_f
+! NAME
+! h5pset_sieve_buf_size_f
+!
+! PURPOSE
+! Sets the maximum size of the data sieve buffer
+!
+! INPUTS
+!
+! plist_id - file access property list identifier
+! size - sieve buffer size
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 7, 2002
+!
+! SOURCE
+ SUBROUTINE h5pset_sieve_buf_size_f(plist_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! File access property list identifier
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Buffer size in bytes;
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_sieve_buf_size_c(plist_id, size)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_SIEVE_BUF_SIZE_C'::h5pset_sieve_buf_size_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ END FUNCTION h5pset_sieve_buf_size_c
+ END INTERFACE
+
+ hdferr = h5pset_sieve_buf_size_c(plist_id, size)
+ END SUBROUTINE h5pset_sieve_buf_size_f
+
+!****s* H5P/h5pget_sieve_buf_size_f
+! NAME
+! h5pget_sieve_buf_size_f
+!
+! PURPOSE
+! Gets the maximum size of the data sieve buffer
+!
+! INPUTS
+!
+! plist_id - file access property list identifier
+! OUTPUTS
+!
+! size - sieve buffer size
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 7, 2002
+!
+! SOURCE
+ SUBROUTINE h5pget_sieve_buf_size_f(plist_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! File access property list identifier
+ INTEGER(SIZE_T), INTENT(OUT) :: size ! Buffer size in bytes
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_sieve_buf_size_c(plist_id, size)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_SIEVE_BUF_SIZE_C'::h5pget_sieve_buf_size_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER(SIZE_T), INTENT(OUT) :: size
+ END FUNCTION h5pget_sieve_buf_size_c
+ END INTERFACE
+
+ hdferr = h5pget_sieve_buf_size_c(plist_id, size)
+ END SUBROUTINE h5pget_sieve_buf_size_f
+
+!****s* H5P/h5pset_small_data_block_size_f
+! NAME
+! h5pset_small_data_block_size_f
+!
+! PURPOSE
+! Sets the minimum size of "small" raw data block
+!
+! INPUTS
+!
+! plist_id - file access property list identifier
+! size - small raw data block size
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 7, 2002
+!
+! SOURCE
+ SUBROUTINE h5pset_small_data_block_size_f(plist_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! File access property list identifier
+ INTEGER(HSIZE_T), INTENT(IN) :: size ! Small raw data block size
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_small_data_block_size_c(plist_id, size)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_SMALL_DATA_BLOCK_SIZE_C'::h5pset_small_data_block_size_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER(HSIZE_T), INTENT(IN) :: size
+ END FUNCTION h5pset_small_data_block_size_c
+ END INTERFACE
+
+ hdferr = h5pset_small_data_block_size_c(plist_id, size)
+ END SUBROUTINE h5pset_small_data_block_size_f
+
+!****s* H5P/h5pget_small_data_block_size_f
+! NAME
+! h5pget_small_data_block_size_f
!
- INTERFACE
- INTEGER FUNCTION h5pget_edc_check_c(prp_id, flag)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_EDC_CHECK_C'::h5pget_edc_check_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER, INTENT(OUT) :: flag
- END FUNCTION h5pget_edc_check_c
- END INTERFACE
- hdferr = h5pget_edc_check_c(prp_id, flag)
+! PURPOSE
+! Gets the minimum size of "small" raw data block
+!
+! INPUTS
+!
+! plist_id - file access property list identifier
+! OUTPUTS
+!
+! size - small raw data block size
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 7, 2002
+!
+! SOURCE
+ SUBROUTINE h5pget_small_data_block_size_f(plist_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! File access property list identifier
+ INTEGER(HSIZE_T), INTENT(OUT) :: size ! Small raw data block size
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
- END SUBROUTINE h5pget_edc_check_f
-!----------------------------------------------------------------------
-! Name: h5pset_fletcher32_f
+ INTERFACE
+ INTEGER FUNCTION h5pget_small_data_block_size_c(plist_id, size)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_SMALL_DATA_BLOCK_SIZE_C'::h5pget_small_data_block_size_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER(HSIZE_T), INTENT(OUT) :: size
+ END FUNCTION h5pget_small_data_block_size_c
+ END INTERFACE
+
+ hdferr = h5pget_small_data_block_size_c(plist_id, size)
+ END SUBROUTINE h5pget_small_data_block_size_f
+
+!****s* H5P/h5pset_hyper_vector_size_f
+! NAME
+! h5pset_hyper_vector_size_f
+!
+! PURPOSE
+! Set the number of "I/O" vectors (vector size)
+!
+! INPUTS
+!
+! plist_id - dataset transfer property list identifier
+! size - vector size
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 7, 2002
+!
+! SOURCE
+ SUBROUTINE h5pset_hyper_vector_size_f(plist_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset transfer property list identifier
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Vector size
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_hyper_vector_size_c(plist_id, size)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_HYPER_VECTOR_SIZE_C'::h5pset_hyper_vector_size_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ END FUNCTION h5pset_hyper_vector_size_c
+ END INTERFACE
+
+ hdferr = h5pset_hyper_vector_size_c(plist_id, size)
+ END SUBROUTINE h5pset_hyper_vector_size_f
+
+!****s* H5P/ h5pget_hyper_vector_size_f
+! NAME
+! h5pget_hyper_vector_size_f
+!
+! PURPOSE
+! Get the number of "I/O" vectors (vector size)
+!
+! INPUTS
+!
+! plist_id - dataset transfer property list identifier
+! OUTPUTS
+!
+! size - vector size
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 7, 2002
+!
+! SOURCE
+ SUBROUTINE h5pget_hyper_vector_size_f(plist_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset transfer property list identifier
+ INTEGER(SIZE_T), INTENT(OUT) :: size ! Vector size
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_hyper_vector_size_c(plist_id, size)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_HYPER_VECTOR_SIZE_C'::h5pget_hyper_vector_size_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER(SIZE_T), INTENT(OUT) :: size
+ END FUNCTION h5pget_hyper_vector_size_c
+ END INTERFACE
+
+ hdferr = h5pget_hyper_vector_size_c(plist_id, size)
+ END SUBROUTINE h5pget_hyper_vector_size_f
+
+!****s* H5P/h5pexist_f
+! NAME
+! h5pexist_f
+!
+! PURPOSE
+! Queries whether a property name exists in a property list or class.
+!
+! INPUTS
+!
+! prp_id - property list identifier to query
+! name - name of property to check for
+! OUTPUTS
+!
+! flag - logical flag
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! SOURCE
+ SUBROUTINE h5pexist_f(prp_id, name, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ LOGICAL, INTENT(OUT) :: flag ! .TRUE. if exists, .FALSE. otherwise
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pexist_c(prp_id, name, name_len)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PEXIST_C'::h5pexist_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ END FUNCTION h5pexist_c
+ END INTERFACE
+ flag = .FALSE.
+ name_len = LEN(name)
+ hdferr = h5pexist_c(prp_id, name , name_len)
+ IF (hdferr > 0) THEN
+ flag = .TRUE.
+ hdferr = 0
+ ENDIF
+ END SUBROUTINE h5pexist_f
+
+!****s* H5P/h5pget_size_f
+!
+! NAME
+! h5pget_size_f
+!
+! PURPOSE
+! Queries the size of a property value in bytes.
+!
+! INPUTS
+!
+! prp_id - property list identifier to query
+! name - name of property to query
+! OUTPUTS
+!
+! size - size of property in bytes
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! HISTORY
+!
+!
+! SOURCE
+ SUBROUTINE h5pget_size_f(prp_id, name, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to query
+ INTEGER(SIZE_T), INTENT(OUT) :: size ! Size in bytes
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_size_c(prp_id, name, name_len, size)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_SIZE_C'::h5pget_size_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ INTEGER(SIZE_T), INTENT(OUT) :: size
+ END FUNCTION h5pget_size_c
+ END INTERFACE
+ name_len = LEN(name)
+ hdferr = h5pget_size_c(prp_id, name , name_len, size)
+ END SUBROUTINE h5pget_size_f
+
+!****s* H5P/h5pget_npros_f
+! NAME
+! h5pget_npros_f
+!
+! PURPOSE
+! Queries number of properties in property list or class
+!
+! INPUTS
+!
+! prp_id - iproperty list identifier to query
+! OUTPUTS
+!
+! nprops - number of properties in property object
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! SOURCE
+ SUBROUTINE h5pget_nprops_f(prp_id, nprops, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(SIZE_T), INTENT(OUT) :: nprops ! Number of properties
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_nprops_c(prp_id, nprops)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_NPROPS_C'::h5pget_nprops_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(SIZE_T), INTENT(OUT) :: nprops
+ END FUNCTION h5pget_nprops_c
+ END INTERFACE
+ hdferr = h5pget_nprops_c(prp_id, nprops)
+ END SUBROUTINE h5pget_nprops_f
+
+!****s* H5P/h5pget_class_name_f
+! NAME
+! h5pget_class_name_f
+!
+! PURPOSE
+! Queries the name of a class.
+!
+! INPUTS
+!
+! prp_id - property list identifier to query
+! OUTPUTS
+!
+! name - name of a class
+! size - Actual length of the class name
+! NOTE: If provided buffer "name" is smaller,
+! than name will be truncated to fit into
+! provided user buffer
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! HISTORY
+! Returned the size of name as an argument
+!
+! SOURCE
+ SUBROUTINE h5pget_class_name_f(prp_id, name, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(OUT) :: name ! Buffer to retireve class name
+ INTEGER, INTENT(OUT) :: size ! Actual length of the class name
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_class_name_c(prp_id, name, name_len)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_CLASS_NAME_C'::h5pget_class_name_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(LEN=*), INTENT(INOUT) :: name
+ INTEGER, INTENT(IN) :: name_len
+ END FUNCTION h5pget_class_name_c
+ END INTERFACE
+
+ name_len = LEN(name)
+ size = h5pget_class_name_c(prp_id, name, name_len)
+
+ hdferr = 0
+ IF(size.LT.0) hdferr = -1
+
+ END SUBROUTINE h5pget_class_name_f
+
+!****s* H5P/h5pget_class_parent_f
+! NAME
+! h5pget_class_parent_f
+!
+! PURPOSE
+! Retrieves the parent class of a genric property class.
+!
+! INPUTS
+!
+! prp_id - property list identifier to query
+! OUTPUTS
+!
+! parent_id - identifier of the parent class
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! SOURCE
+ SUBROUTINE h5pget_class_parent_f(prp_id, parent_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(OUT) :: parent_id ! Parent class property list
+ ! identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_class_parent_c(prp_id, parent_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_CLASS_PARENT_C'::h5pget_class_parent_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(OUT) :: parent_id
+ END FUNCTION h5pget_class_parent_c
+ END INTERFACE
+ hdferr = h5pget_class_parent_c(prp_id, parent_id)
+ END SUBROUTINE h5pget_class_parent_f
+
+!****s* H5P/h5pisa_class_f
+! NAME
+! h5pisa_class_f
+!
+! PURPOSE
+! Determines whether a property list is a member of a class.
+!
+! INPUTS
+!
+! plist - property list identifier
+! pclass - identifier of the property class
+! OUTPUTS
+!
+! flag - .TRUE. if a member, .FALSE. otherwise
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! SOURCE
+ SUBROUTINE h5pisa_class_f(plist, pclass, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: pclass ! Class identifier
+ LOGICAL, INTENT(OUT) :: flag ! logical flag
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pisa_class_c(plist, pclass)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PISA_CLASS_C'::h5pisa_class_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: plist
+ INTEGER(HID_T), INTENT(IN) :: pclass
+ END FUNCTION h5pisa_class_c
+ END INTERFACE
+ flag = .FALSE.
+ hdferr = h5pisa_class_c(plist, pclass)
+ IF (hdferr .GT. 0) THEN
+ flag = .TRUE.
+ hdferr = 0
+ ENDIF
+ END SUBROUTINE h5pisa_class_f
+
+!****s* H5P/h5pcopy_prop_f
+! NAME
+! h5pcopy_prop_f
+!
+! PURPOSE
+! Copies a property from one list or class to another.
+!
+! INPUTS
+!
+! dst_id - Identifier of the destination property list
+! src_id - Identifier of the source property list
+! name - name of the property to copy
+! OUTPUTS
+!
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! SOURCE
+ SUBROUTINE h5pcopy_prop_f(dst_id, src_id, name, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dst_id ! Destination property list
+ ! identifier
+ INTEGER(HID_T), INTENT(IN) :: src_id ! Source property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Property name
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pcopy_prop_c(dst_id, src_id, name, name_len)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PCOPY_PROP_C'::h5pcopy_prop_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: dst_id
+ INTEGER(HID_T), INTENT(IN) :: src_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ END FUNCTION h5pcopy_prop_c
+ END INTERFACE
+ name_len = LEN(name)
+ hdferr = h5pcopy_prop_c(dst_id, src_id, name , name_len)
+ END SUBROUTINE h5pcopy_prop_f
+
+!****s* H5P/h5premove_f
+! NAME
+! h5premove_f
+!
+! PURPOSE
+! Removes a property from a property list.
+
+!
+! INPUTS
+!
+! plid - Property list identofoer
+! name - name of the property to remove
+! OUTPUTS
+!
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! SOURCE
+ SUBROUTINE h5premove_f(plid, name, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plid ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to remove
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5premove_c(plid, name, name_len)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PREMOVE_C'::h5premove_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: plid
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ END FUNCTION h5premove_c
+ END INTERFACE
+ name_len = LEN(name)
+ hdferr = h5premove_c(plid, name , name_len)
+ END SUBROUTINE h5premove_f
+
+!****s* H5P/h5punregister_f
+! NAME
+! h5punregister_f
+!
+! PURPOSE
+! Removes a property from a property list class.
+!
+! INPUTS
+!
+! class - Property list class identifier
+! name - name of the property to remove
+! OUTPUTS
+!
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! SOURCE
+ SUBROUTINE h5punregister_f(class, name, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: class ! property list class identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! name of property to remove
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5punregister_c(class, name, name_len)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PUNREGISTER_C'::h5punregister_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: class
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ END FUNCTION h5punregister_c
+ END INTERFACE
+ name_len = LEN(name)
+ hdferr = h5punregister_c(class, name , name_len)
+ END SUBROUTINE h5punregister_f
+
+!****s* H5P/h5pclose_class_f
+! NAME
+! h5pclose_class_f
+!
+! PURPOSE
+! Closes an existing property list class.
+!
+! INPUTS
+!
+! class - Property list class identifier
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! SOURCE
+ SUBROUTINE h5pclose_class_f(class, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pclose_class_c(class)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PCLOSE_CLASS_C'::h5pclose_class_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: class
+ END FUNCTION h5pclose_class_c
+ END INTERFACE
+ hdferr = h5pclose_class_c(class)
+ END SUBROUTINE h5pclose_class_f
+
+!****s* H5P/h5pset_shuffle_f
+! NAME
+! h5pset_shuffle_f
!
-! Purpose: Sets Fletcher32 checksum of EDC for a dataset creation
-! property list.
+! PURPOSE
+! Sets shuffling filter
!
-! Inputs:
-! prp_id - dataset creation property list identifier
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! INPUTS
+! prp_id - dataset creation property list identifier
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
!
-! Programmer: Elena Pourmal
-! March 13, 2003
+! AUTHOR
+! Elena Pourmal
+! March 12, 2003
!
-! Modifications:
+! SOURCE
+ SUBROUTINE h5pset_shuffle_f(prp_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+! INTEGER, EXTERNAL :: h5pset_shuffle_c
+! MS FORTRAN needs explicit interface for C functions called here.
!
-! Comment:
-!----------------------------------------------------------------------
+ INTERFACE
+ INTEGER FUNCTION h5pset_shuffle_c(prp_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_SHUFFLE_C'::h5pset_shuffle_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ END FUNCTION h5pset_shuffle_c
+ END INTERFACE
+ hdferr = h5pset_shuffle_c(prp_id)
+
+ END SUBROUTINE h5pset_shuffle_f
+
+!****s* H5P/h5pset_edc_check_f
+! NAME
+! h5pset_edc_check_f
+!
+! PURPOSE
+! Enables/disables error detecting
+!
+! INPUTS
+!
+! prp_id - dataset creation property list identifier
+! flag - EDC flag; possible values:
+! H5Z_DISABLE_EDC_F
+! H5Z_ENABLE_EDC_F
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! March 13, 2003
+!
+! SOURCE
+ SUBROUTINE h5pset_edc_check_f(prp_id, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: flag ! Checksum filter flag
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+! INTEGER, EXTERNAL :: h5pset_edc_check_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_edc_check_c(prp_id, flag)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_EDC_CHECK_C'::h5pset_edc_check_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: flag
+ END FUNCTION h5pset_edc_check_c
+ END INTERFACE
+ hdferr = h5pset_edc_check_c(prp_id, flag)
+
+ END SUBROUTINE h5pset_edc_check_f
+
+!****s* H5P/h5pget_edc_check_f
+! NAME
+! h5pget_edc_check_f
+!
+! PURPOSE
+! Queries error detecting
+!
+! INPUTS
+!
+! prp_id - dataset creation property list identifier
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! March 13, 2003
+!
+! SOURCE
+ SUBROUTINE h5pget_edc_check_f(prp_id, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Dataset transfer property list identifier
+ INTEGER, INTENT(OUT) :: flag ! Checksum filter flag
+ ! May have one of the following values:
+ ! H5Z_ERROR_EDC_F
+ ! H5Z_DISABLE_EDC_F
+ ! H5Z_ENABLE_EDC_F
+ ! H5Z_NO_EDC_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
- SUBROUTINE h5pset_fletcher32_f(prp_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+! INTEGER, EXTERNAL :: h5pget_edc_check_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_edc_check_c(prp_id, flag)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_EDC_CHECK_C'::h5pget_edc_check_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: flag
+ END FUNCTION h5pget_edc_check_c
+ END INTERFACE
+ hdferr = h5pget_edc_check_c(prp_id, flag)
+
+ END SUBROUTINE h5pget_edc_check_f
+
+!****s* H5P/h5pset_fletcher32_f
+! NAME
+! h5pset_fletcher32_f
+!
+! PURPOSE
+! Sets Fletcher32 checksum of EDC for a dataset creation
+! property list.
+!
+! INPUTS
+!
+! prp_id - dataset creation property list identifier
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! March 13, 2003
+!
+! SOURCE
+ SUBROUTINE h5pset_fletcher32_f(prp_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pset_fletcher32_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pset_fletcher32_c(prp_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FLETCHER32_C'::h5pset_fletcher32_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- END FUNCTION h5pset_fletcher32_c
- END INTERFACE
- hdferr = h5pset_fletcher32_c(prp_id)
+ INTERFACE
+ INTEGER FUNCTION h5pset_fletcher32_c(prp_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FLETCHER32_C'::h5pset_fletcher32_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ END FUNCTION h5pset_fletcher32_c
+ END INTERFACE
+ hdferr = h5pset_fletcher32_c(prp_id)
- END SUBROUTINE h5pset_fletcher32_f
+ END SUBROUTINE h5pset_fletcher32_f
-!----------------------------------------------------------------------
-! Name: h5pset_family_offset_f
+!****s* H5P/ h5pset_family_offset_f
+! NAME
+! h5pset_family_offset_f
!
-! Purpose: Sets offset for family file driver.
+! PURPOSE
+! Sets offset for family file driver.
!
-! Inputs:
-! prp_id - file creation property list identifier
-! offset - file offset
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! INPUTS
+!
+! prp_id - file creation property list identifier
+! offset - file offset
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
!
-! Programmer: Elena Pourmal
-! 19 March 2003
+! AUTHOR
+! Elena Pourmal
+! 19 March 2003
!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5pset_family_offset_f(prp_id, offset, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HSIZE_T), INTENT(IN) :: offset ! Offset in bytes
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+! SOURCE
+ SUBROUTINE h5pset_family_offset_f(prp_id, offset, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HSIZE_T), INTENT(IN) :: offset ! Offset in bytes
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pset_family_offset_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pset_family_offset_c(prp_id, offset)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FAMILY_OFFSET_C'::h5pset_family_offset_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(HSIZE_T), INTENT(IN) :: offset
- END FUNCTION h5pset_family_offset_c
- END INTERFACE
- hdferr = h5pset_family_offset_c(prp_id, offset)
-
- END SUBROUTINE h5pset_family_offset_f
-
-!----------------------------------------------------------------------
-! Name: h5pset_fapl_multi_l
-!
-! Purpose: Sets up use of the multi-file driver.
-!
-! Inputs:
-! prp_id - file creation property list identifier
-! mem_map - mapping array
-! memb_fapl - property list for each memory usage type
-! memb_name - names of member file
-! relax - flag
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! 20 March 2003
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5pset_fapl_multi_l(prp_id, memb_map, memb_fapl, memb_name, memb_addr, relax, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
- INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_map
- INTEGER(HID_T), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_fapl
- CHARACTER(LEN=*), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_name
- !INTEGER(HADDR_T), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_addr
- REAL, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_addr
- LOGICAL, INTENT(IN) :: relax
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1) :: lenm
- INTEGER :: maxlen
- INTEGER :: flag
- INTEGER :: i
+ INTERFACE
+ INTEGER FUNCTION h5pset_family_offset_c(prp_id, offset)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FAMILY_OFFSET_C'::h5pset_family_offset_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(IN) :: offset
+ END FUNCTION h5pset_family_offset_c
+ END INTERFACE
+ hdferr = h5pset_family_offset_c(prp_id, offset)
+
+ END SUBROUTINE h5pset_family_offset_f
+
+!****s* H5P/h5pset_fapl_multi_l
+! NAME
+! h5pset_fapl_multi_l
+!
+! PURPOSE
+! Sets up use of the multi-file driver.
+!
+! INPUTS
+!
+! prp_id - file creation property list identifier
+! mem_map - mapping array
+! memb_fapl - property list for each memory usage type
+! memb_name - names of member file
+! relax - flag
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! 20 March 2003
+!
+! SOURCE
+ SUBROUTINE h5pset_fapl_multi_l(prp_id, memb_map, memb_fapl, memb_name, memb_addr, relax, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
+ INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_map ! Mapping array
+ INTEGER(HID_T), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_fapl ! Property list for each memory usage type
+ CHARACTER(LEN=*), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_name ! Names of member file
+ REAL, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_addr
+ LOGICAL, INTENT(IN) :: relax ! Flag
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1) :: lenm
+ INTEGER :: maxlen
+ INTEGER :: flag
+ INTEGER :: i
! INTEGER, EXTERNAL :: h5pset_fapl_multi_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pset_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, &
- maxlen, memb_addr, flag)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FAPL_MULTI_C'::h5pset_fapl_multi_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: memb_name
- INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
- INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_map
- INTEGER(HID_T), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_fapl
- CHARACTER(LEN=*), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_name
- REAL, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_addr
- !INTEGER(HADDR_T), DIMENSION(H5FD_MEM_NTYPES_F), INTENT(IN) :: memb_addr
- INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1) :: lenm
- INTEGER :: maxlen
- INTEGER, INTENT(IN) :: flag
- END FUNCTION h5pset_fapl_multi_c
- END INTERFACE
- maxlen = LEN(memb_name(1))
- do i=0, H5FD_MEM_NTYPES_F-1
- lenm(i) = LEN_TRIM(memb_name(i))
- enddo
- flag = 0
- if (relax) flag = 1
- hdferr = h5pset_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, maxlen, memb_addr, flag)
-
- END SUBROUTINE h5pset_fapl_multi_l
-!----------------------------------------------------------------------
-! Name: h5pset_fapl_multi_s
-!
-! Purpose: Sets up use of the multi-file driver.
-!
-! Inputs:
-! prp_id - file creation property list identifier
-! relax - flag
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! 31 March 2003
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5pset_fapl_multi_s(prp_id, relax, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
- LOGICAL, INTENT(IN) :: relax
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: flag
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, &
+ maxlen, memb_addr, flag)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FAPL_MULTI_C'::h5pset_fapl_multi_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: memb_name
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
+ INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_map
+ INTEGER(HID_T), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_fapl
+ CHARACTER(LEN=*), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_name
+ REAL, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_addr
+ !INTEGER(HADDR_T), DIMENSION(H5FD_MEM_NTYPES_F), INTENT(IN) :: memb_addr
+ INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1) :: lenm
+ INTEGER :: maxlen
+ INTEGER, INTENT(IN) :: flag
+ END FUNCTION h5pset_fapl_multi_c
+ END INTERFACE
+ maxlen = LEN(memb_name(1))
+ DO i=0, H5FD_MEM_NTYPES_F-1
+ lenm(i) = LEN_TRIM(memb_name(i))
+ ENDDO
+ flag = 0
+ IF (relax) flag = 1
+ hdferr = h5pset_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, maxlen, memb_addr, flag)
+
+ END SUBROUTINE h5pset_fapl_multi_l
+!****s* H5P/h5pset_fapl_multi_s
+! NAME
+! h5pset_fapl_multi_s
+!
+! PURPOSE
+! Sets up use of the multi-file driver.
+!
+! INPUTS
+!
+! prp_id - file creation property list identifier
+! relax - flag
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! 31 March 2003
+!
+! SOURCE
+ SUBROUTINE h5pset_fapl_multi_s(prp_id, relax, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
+ LOGICAL, INTENT(IN) :: relax
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: flag
! INTEGER, EXTERNAL :: h5pset_fapl_multi_sc
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pset_fapl_multi_sc(prp_id,flag)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FAPL_MULTI_SC'::h5pset_fapl_multi_sc
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
- INTEGER, INTENT(IN) :: flag
- END FUNCTION h5pset_fapl_multi_sc
- END INTERFACE
- flag = 0
- if (relax) flag = 1
- hdferr = h5pset_fapl_multi_sc(prp_id, flag)
-
- END SUBROUTINE h5pset_fapl_multi_s
-!----------------------------------------------------------------------
-! Name: h5pget_fapl_multi_f
-!
-! Purpose: Sets up use of the multi-file driver.
-!
-! Inputs:
-! prp_id - file creation property list identifier
-! Outputs:
-! mem_map - mapping array
-! memb_fapl - property list for each memory usage type
-! memb_name - names of member file
-! relax - flag
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! maxlen_out - maximum length for memb_name array element
-!
-! Programmer: Elena Pourmal
-! 24 March 2003
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5pget_fapl_multi_f(prp_id, memb_map, memb_fapl, memb_name, memb_addr, relax, hdferr, maxlen_out)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
- INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_map
- INTEGER(HID_T), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_fapl
- CHARACTER(LEN=*), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_name
- !INTEGER(HADDR_T), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_addr
- REAL, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_addr
- INTEGER, OPTIONAL, INTENT(OUT) :: maxlen_out
- LOGICAL, INTENT(OUT) :: relax
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1) :: lenm
- INTEGER :: maxlen
- INTEGER :: c_maxlen_out
- INTEGER :: flag
- INTEGER :: i
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_multi_sc(prp_id,flag)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FAPL_MULTI_SC'::h5pset_fapl_multi_sc
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
+ INTEGER, INTENT(IN) :: flag
+ END FUNCTION h5pset_fapl_multi_sc
+ END INTERFACE
+ flag = 0
+ IF (relax) flag = 1
+ hdferr = h5pset_fapl_multi_sc(prp_id, flag)
+
+ END SUBROUTINE h5pset_fapl_multi_s
+!****s* H5P/h5pget_fapl_multi_f
+! NAME
+! h5pget_fapl_multi_f
+!
+! PURPOSE
+! Sets up use of the multi-file driver.
+!
+! INPUTS
+!
+! prp_id - file creation property list identifier
+! OUTPUTS
+!
+! mem_map - mapping array
+! memb_fapl - property list for each memory usage type
+! memb_name - names of member file
+! relax - flag
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! OPTIONAL PARAMETERS
+! maxlen_out - maximum length for memb_name array element
+!
+! AUTHOR
+! Elena Pourmal
+! 24 March 2003
+!
+! SOURCE
+ SUBROUTINE h5pget_fapl_multi_f(prp_id, memb_map, memb_fapl, memb_name, memb_addr, relax, hdferr, maxlen_out)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
+ INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_map
+ INTEGER(HID_T), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_fapl
+ CHARACTER(LEN=*), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_name
+ !INTEGER(HADDR_T), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_addr
+ REAL, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_addr
+ INTEGER, OPTIONAL, INTENT(OUT) :: maxlen_out
+ LOGICAL, INTENT(OUT) :: relax
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1) :: lenm
+ INTEGER :: maxlen
+ INTEGER :: c_maxlen_out
+ INTEGER :: flag
+ INTEGER :: i
! INTEGER, EXTERNAL :: h5pget_fapl_multi_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pget_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, &
- maxlen, memb_addr, flag, c_maxlen_out)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FAPL_MULTI_C'::h5pget_fapl_multi_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: memb_name
- INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
- INTEGER, DIMENSION(H5FD_MEM_NTYPES_F), INTENT(OUT) :: memb_map
- INTEGER(HID_T), DIMENSION(H5FD_MEM_NTYPES_F), INTENT(OUT) :: memb_fapl
- CHARACTER(LEN=*), DIMENSION(H5FD_MEM_NTYPES_F), INTENT(OUT) :: memb_name
- REAL, DIMENSION(H5FD_MEM_NTYPES_F), INTENT(OUT) :: memb_addr
- INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1) :: lenm
- INTEGER :: maxlen
- INTEGER :: c_maxlen_out
- INTEGER, INTENT(OUT) :: flag
- END FUNCTION h5pget_fapl_multi_c
- END INTERFACE
- maxlen = LEN(memb_name(0))
- do i=0, H5FD_MEM_NTYPES_F-1
- lenm(i) = LEN_TRIM(memb_name(i))
- enddo
- hdferr = h5pget_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, maxlen, memb_addr, flag, c_maxlen_out)
- relax = .TRUE.
- if(flag .eq. 0) relax = .FALSE.
- if(present(maxlen_out)) maxlen_out = c_maxlen_out
- END SUBROUTINE h5pget_fapl_multi_f
-!----------------------------------------------------------------------
-! Name: h5pset_szip_f
-!
-! Purpose: Sets up use of szip compression
-!
-! Inputs:
-! prp_id - dataset creation property list identifier
-! options_mask
-! pixels_per_block - szip parameters
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! April 10 2003
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5pset_szip_f(prp_id, options_mask, pixels_per_block, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Dataset creation property
- ! list identifier
- INTEGER, INTENT(IN) :: options_mask
- INTEGER, INTENT(IN) :: pixels_per_block
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5pset_szip_c
+ INTERFACE
+ INTEGER FUNCTION h5pget_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, &
+ maxlen, memb_addr, flag, c_maxlen_out)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FAPL_MULTI_C'::h5pget_fapl_multi_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: memb_name
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
+ INTEGER, DIMENSION(H5FD_MEM_NTYPES_F), INTENT(OUT) :: memb_map
+ INTEGER(HID_T), DIMENSION(H5FD_MEM_NTYPES_F), INTENT(OUT) :: memb_fapl
+ CHARACTER(LEN=*), DIMENSION(H5FD_MEM_NTYPES_F), INTENT(OUT) :: memb_name
+ REAL, DIMENSION(H5FD_MEM_NTYPES_F), INTENT(OUT) :: memb_addr
+ INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1) :: lenm
+ INTEGER :: maxlen
+ INTEGER :: c_maxlen_out
+ INTEGER, INTENT(OUT) :: flag
+ END FUNCTION h5pget_fapl_multi_c
+ END INTERFACE
+ maxlen = LEN(memb_name(0))
+ DO i=0, H5FD_MEM_NTYPES_F-1
+ lenm(i) = LEN_TRIM(memb_name(i))
+ ENDDO
+ hdferr = h5pget_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, maxlen, memb_addr, flag, c_maxlen_out)
+ relax = .TRUE.
+ IF(flag .EQ. 0) relax = .FALSE.
+ IF(PRESENT(maxlen_out)) maxlen_out = c_maxlen_out
+ END SUBROUTINE h5pget_fapl_multi_f
+!****s* H5P/h5pset_szip_f
+! NAME
+! h5pset_szip_f
+!
+! PURPOSE
+! Sets up use of szip compression
+!
+! INPUTS
+!
+! prp_id - dataset creation property list identifier
+! options_mask - A bit-mask conveying the desired SZIP options.
+! Current valid values in Fortran are:
+! H5_SZIP_EC_OM_F
+! H5_SZIP_NN_OM_F
+! pixels_per_block - szip parameters
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! April 10 2003
+!
+! SOURCE
+ SUBROUTINE h5pset_szip_f(prp_id, options_mask, pixels_per_block, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Dataset creation property
+ ! list identifier
+ INTEGER, INTENT(IN) :: options_mask ! A bit-mask conveying the desired
+ ! SZIP options
+ ! Current valid values in Fortran are:
+ ! H5_SZIP_EC_OM_F
+ ! H5_SZIP_NN_OM_F
+ INTEGER, INTENT(IN) :: pixels_per_block ! The number of pixels or data elements
+ ! in each data block
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+! INTEGER, EXTERNAL :: h5pset_szip_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pset_szip_c(prp_id, options_mask, pixels_per_block)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_SZIP_C'::h5pset_szip_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
- INTEGER, INTENT(IN) :: options_mask
- INTEGER, INTENT(IN) :: pixels_per_block
- END FUNCTION h5pset_szip_c
- END INTERFACE
- hdferr = h5pset_szip_c(prp_id, options_mask, pixels_per_block)
-
- END SUBROUTINE h5pset_szip_f
-
-!----------------------------------------------------------------------
-! Name: h5pall_filters_avail_f
-!
-! Purpose: Checks if all filters set in the dataset creation
-! property list are available
-!
-! Inputs:
-! prp_id - data creation property list identifier
-! Outputs:
-! flag - .TRUE. if all filters are available
-! .FALSE. otherwise
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! April 10 2003
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5pall_filters_avail_f(prp_id, flag, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Dataset creation property
- ! list identifier
- LOGICAL, INTENT(OUT) :: flag
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: status
+ INTERFACE
+ INTEGER FUNCTION h5pset_szip_c(prp_id, options_mask, pixels_per_block)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_SZIP_C'::h5pset_szip_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
+ INTEGER, INTENT(IN) :: options_mask
+ INTEGER, INTENT(IN) :: pixels_per_block
+ END FUNCTION h5pset_szip_c
+ END INTERFACE
+ hdferr = h5pset_szip_c(prp_id, options_mask, pixels_per_block)
+
+ END SUBROUTINE h5pset_szip_f
+
+!****s* H5P/h5pall_filters_avail_f
+! NAME
+! h5pall_filters_avail_f
+!
+! PURPOSE
+! Checks if all filters set in the dataset creation
+! property list are available
+!
+! INPUTS
+!
+! prp_id - data creation property list identifier
+! OUTPUTS
+!
+! flag - .TRUE. if all filters are available
+! .FALSE. otherwise
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! April 10 2003
+!
+! SOURCE
+ SUBROUTINE h5pall_filters_avail_f(prp_id, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Dataset creation property
+ ! list identifier
+ LOGICAL, INTENT(OUT) :: flag ! .TRUE. if all filters are available
+ ! .FALSE. otherwise
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: status
! INTEGER, EXTERNAL :: h5pall_filters_avail_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pall_filters_avail_c(prp_id, status)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PALL_FILTERS_AVAIL_C'::h5pall_filters_avail_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
- INTEGER, INTENT(OUT) :: status
- END FUNCTION h5pall_filters_avail_c
- END INTERFACE
- flag = .TRUE.
- hdferr = h5pall_filters_avail_c(prp_id, status)
- if (status .eq. 0 ) flag = .FALSE.
-
- END SUBROUTINE h5pall_filters_avail_f
-
-!----------------------------------------------------------------------
-! Name: h5pget_filter_by_id_f
-!
-! Purpose: Returns information about a filter in a pipeline
-!
-! Inputs:
-! prp_id - data creation or transfer property list
-! identifier
-! Outputs:
-! filter_id - filter identifier
-! flags - bit vector specifying certain general
-! properties of the filter
-! cd_nelmts - number of elements in cd_values
-! cd_values - auxiliary data for the filter
-! namelen - number of characters in the name buffer
-! name - buffer to retrieve filter name
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! April 10 2003
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_filter_by_id_f(prp_id, filter_id, flags, cd_nelmts, cd_values, namelen, name, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
-
- INTEGER, INTENT(IN) :: filter_id ! Filter identifier
- INTEGER(SIZE_T), INTENT(INOUT) :: cd_nelmts !Number of elements in cd_values.
- INTEGER, DIMENSION(*), INTENT(OUT) :: cd_values !Auxiliary data for the filter.
- INTEGER, INTENT(OUT) :: flags !Bit vector specifying certain general
- !properties of the filter.
- INTEGER(SIZE_T), INTENT(IN) :: namelen !Anticipated number of characters in name.
- CHARACTER(LEN=*), INTENT(OUT) :: name !Name of the filter
-
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTERFACE
+ INTEGER FUNCTION h5pall_filters_avail_c(prp_id, status)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PALL_FILTERS_AVAIL_C'::h5pall_filters_avail_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
+ INTEGER, INTENT(OUT) :: status
+ END FUNCTION h5pall_filters_avail_c
+ END INTERFACE
+ flag = .TRUE.
+ hdferr = h5pall_filters_avail_c(prp_id, status)
+ IF (status .EQ. 0 ) flag = .FALSE.
+
+ END SUBROUTINE h5pall_filters_avail_f
+
+!****s* H5P/h5pget_filter_by_id_f
+! NAME
+! h5pget_filter_by_id_f
+!
+! PURPOSE
+! Returns information about a filter in a pipeline
+!
+! INPUTS
+!
+! prp_id - data creation or transfer property list
+! identifier
+! OUTPUTS
+!
+! filter_id - filter identifier
+! flags - bit vector specifying certain general
+! properties of the filter
+! cd_nelmts - number of elements in cd_values
+! cd_values - auxiliary data for the filter
+! namelen - number of characters in the name buffer
+! name - buffer to retrieve filter name
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! April 10 2003
+!
+! SOURCE
+ SUBROUTINE h5pget_filter_by_id_f(prp_id, filter_id, flags, cd_nelmts, cd_values, namelen, name, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: filter_id ! Filter identifier
+ INTEGER(SIZE_T), INTENT(INOUT) :: cd_nelmts ! Number of elements in cd_values.
+ INTEGER, DIMENSION(*), INTENT(OUT) :: cd_values ! Auxiliary data for the filter.
+ INTEGER, INTENT(OUT) :: flags ! Bit vector specifying certain general
+ ! properties of the filter.
+ INTEGER(SIZE_T), INTENT(IN) :: namelen ! Anticipated number of characters in name.
+ CHARACTER(LEN=*), INTENT(OUT) :: name ! Name of the filter
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pget_filter_by_id_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pget_filter_by_id_c(prp_id, filter_id, flags, cd_nelmts, &
- cd_values, namelen, name)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FILTER_BY_ID_C'::h5pget_filter_by_id_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER, INTENT(IN) :: filter_id
- INTEGER, DIMENSION(*), INTENT(OUT) :: cd_values
- INTEGER, INTENT(OUT) :: flags
- INTEGER(SIZE_T), INTENT(INOUT) :: cd_nelmts
- INTEGER(SIZE_T), INTENT(IN) :: namelen
- CHARACTER(LEN=*), INTENT(OUT) :: name
- END FUNCTION h5pget_filter_by_id_c
- END INTERFACE
-
- hdferr = h5pget_filter_by_id_c(prp_id, filter_id, flags, cd_nelmts, &
- cd_values, namelen, name)
- END SUBROUTINE h5pget_filter_by_id_f
-
-!----------------------------------------------------------------------
-! Name: h5pmodify_filter_f
-!
-! Purpose: Adds a filter to the filter pipeline.
-!
-! Inputs:
-! prp_id - data creation or transfer property list
-! identifier
-! filter - filter to be modified
-! flags - bit vector specifying certain general
-! properties of the filter
-! cd_nelmts - number of elements in cd_values
-! cd_values - auxiliary data for the filter
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! April 10 2003
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pmodify_filter_f(prp_id, filter, flags, cd_nelmts, cd_values, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(IN) :: filter !Filter to be modified
- INTEGER, INTENT(IN) :: flags !Bit vector specifying certain general
- !properties of the filter.
- INTEGER(SIZE_T), INTENT(IN) :: cd_nelmts !Number of elements in cd_values.
- INTEGER, DIMENSION(*), INTENT(IN) :: cd_values !Auxiliary data for the filter.
-
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTERFACE
+ INTEGER FUNCTION h5pget_filter_by_id_c(prp_id, filter_id, flags, cd_nelmts, &
+ cd_values, namelen, name)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FILTER_BY_ID_C'::h5pget_filter_by_id_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: filter_id
+ INTEGER, DIMENSION(*), INTENT(OUT) :: cd_values
+ INTEGER, INTENT(OUT) :: flags
+ INTEGER(SIZE_T), INTENT(INOUT) :: cd_nelmts
+ INTEGER(SIZE_T), INTENT(IN) :: namelen
+ CHARACTER(LEN=*), INTENT(OUT) :: name
+ END FUNCTION h5pget_filter_by_id_c
+ END INTERFACE
+
+ hdferr = h5pget_filter_by_id_c(prp_id, filter_id, flags, cd_nelmts, &
+ cd_values, namelen, name)
+ END SUBROUTINE h5pget_filter_by_id_f
+
+!****s* H5P/h5pmodify_filter_f
+! NAME
+! h5pmodify_filter_f
+!
+! PURPOSE
+! Adds a filter to the filter pipeline.
+!
+! INPUTS
+!
+! prp_id - data creation or transfer property list
+! identifier
+! filter - filter to be modified
+! flags - bit vector specifying certain general
+! properties of the filter
+! cd_nelmts - number of elements in cd_values
+! cd_values - auxiliary data for the filter
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! April 10 2003
+!
+! SOURCE
+ SUBROUTINE h5pmodify_filter_f(prp_id, filter, flags, cd_nelmts, cd_values, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: filter ! Filter to be modified
+ INTEGER, INTENT(IN) :: flags ! Bit vector specifying certain general
+ ! properties of the filter
+ INTEGER(SIZE_T), INTENT(IN) :: cd_nelmts ! Number of elements in cd_values
+ INTEGER, DIMENSION(*), INTENT(IN) :: cd_values ! Auxiliary data for the filter
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5pmodify_filter_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5pmodify_filter_c(prp_id, filter, flags, cd_nelmts, cd_values)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PMODIFY_FILTER_C'::h5pmodify_filter_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER, INTENT(IN) :: filter
- INTEGER, INTENT(IN) :: flags
- INTEGER(SIZE_T), INTENT(IN) :: cd_nelmts
- INTEGER, DIMENSION(*), INTENT(IN) :: cd_values
- END FUNCTION h5pmodify_filter_c
- END INTERFACE
-
- hdferr = h5pmodify_filter_c(prp_id, filter, flags, cd_nelmts, cd_values )
- END SUBROUTINE h5pmodify_filter_f
-
-!----------------------------------------------------------------------
-! Name: h5premove_filter_f
-!
-! Purpose: Delete one or more filters from the filter pipeline.
-!
-! Inputs:
-! prp_id - data creation or transfer property list
-! identifier
-! filter - filter to be removed
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Quincey Koziol
-! January 27 2004
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5premove_filter_f(prp_id, filter, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Dataset creation property list
- ! identifier
- INTEGER, INTENT(IN) :: filter ! Filter to be removed
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTERFACE
+ INTEGER FUNCTION h5pmodify_filter_c(prp_id, filter, flags, cd_nelmts, cd_values)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PMODIFY_FILTER_C'::h5pmodify_filter_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: filter
+ INTEGER, INTENT(IN) :: flags
+ INTEGER(SIZE_T), INTENT(IN) :: cd_nelmts
+ INTEGER, DIMENSION(*), INTENT(IN) :: cd_values
+ END FUNCTION h5pmodify_filter_c
+ END INTERFACE
+
+ hdferr = h5pmodify_filter_c(prp_id, filter, flags, cd_nelmts, cd_values )
+ END SUBROUTINE h5pmodify_filter_f
+
+!****s* H5P/h5premove_filter_f
+! NAME
+! h5premove_filter_f
+!
+! PURPOSE
+! Delete one or more filters from the filter pipeline.
+!
+! INPUTS
+!
+! prp_id - data creation or transfer property list
+! identifier
+! filter - filter to be removed
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Quincey Koziol
+! January 27 2004
+!
+! SOURCE
+ SUBROUTINE h5premove_filter_f(prp_id, filter, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Dataset creation property list
+ ! identifier
+ INTEGER, INTENT(IN) :: filter ! Filter to be removed
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! INTEGER, EXTERNAL :: h5premove_filter_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5premove_filter_c(prp_id, filter)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PREMOVE_FILTER_C'::h5premove_filter_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER, INTENT(IN) :: filter
- END FUNCTION h5premove_filter_c
- END INTERFACE
-
- hdferr = h5premove_filter_c(prp_id, filter)
- END SUBROUTINE h5premove_filter_f
-
-!----------------------------------------------------------------------
-! Name: H5Pget_attr_phase_change_f
-!
-! Purpose: Retrieves attribute storage phase change thresholds
-!
-! Inputs:
-! ocpl_id - Object (dataset or group) creation property list identifier
-! Outputs:
-! max_compact - Maximum number of attributes to be stored in compact storage
-! (Default: 8)
-! min_dense - Minimum number of attributes to be stored in dense storage
-! (Default: 6)
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: M.S. Breitenfeld
-! January, 2008
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
+ INTERFACE
+ INTEGER FUNCTION h5premove_filter_c(prp_id, filter)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PREMOVE_FILTER_C'::h5premove_filter_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: filter
+ END FUNCTION h5premove_filter_c
+ END INTERFACE
+
+ hdferr = h5premove_filter_c(prp_id, filter)
+ END SUBROUTINE h5premove_filter_f
+
+!****s* H5P/H5Pget_attr_phase_change_f
+! NAME
+! H5Pget_attr_phase_change_f
+!
+! PURPOSE
+! Retrieves attribute storage phase change thresholds
+!
+! INPUTS
+!
+! ocpl_id - Object (dataset or group) creation property list identifier
+! OUTPUTS
+!
+! max_compact - Maximum number of attributes to be stored in compact storage
+! (Default: 8)
+! min_dense - Minimum number of attributes to be stored in dense storage
+! (Default: 6)
+! hdferr - Error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+!
+! SOURCE
SUBROUTINE h5pget_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: ocpl_id ! Object (dataset or group) creation property list identifier
- INTEGER, INTENT(OUT) :: max_compact ! Maximum number of attributes to be stored in compact storage
- !(Default: 8)
- INTEGER, INTENT(OUT) :: min_dense ! Minimum number of attributes to be stored in dense storage
- ! (Default: 6)
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER, INTENT(OUT) :: max_compact ! Maximum number of attributes to be stored in compact storage
+ ! (Default: 8)
+ INTEGER, INTENT(OUT) :: min_dense ! Minimum number of attributes to be stored in dense storage
+ ! (Default: 6)
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
!
! MS FORTRAN needs explicit interface for C functions called here.
!
@@ -5512,35 +4728,35 @@
hdferr = h5pget_attr_phase_change_c(ocpl_id, max_compact, min_dense)
END SUBROUTINE h5pget_attr_phase_change_f
-!----------------------------------------------------------------------
-! Name: H5Pset_attr_creation_order_f
+!****s* H5P/H5Pset_attr_creation_order_f
+! NAME
+! H5Pset_attr_creation_order_f
!
-! Purpose: Sets tracking and indexing of attribute creation order
+! PURPOSE
+! Sets tracking and indexing of attribute creation order
!
-! Inputs:
-! ocpl_id - Object creation property list identifier
-! crt_order_flags - Flags specifying whether to track and index attribute creation order
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! INPUTS
+!
+! ocpl_id - Object creation property list identifier
+! crt_order_flags - Flags specifying whether to track and index attribute creation order
+! OUTPUTS
!
-! Programmer: M.S. Breitenfeld
-! January, 2008
+! hdferr - Error code
+! Success: 0
+! Failure: -1
!
-! Modifications:
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
!
-! Comment:
-!----------------------------------------------------------------------
-
+! SOURCE
SUBROUTINE h5pset_attr_creation_order_f(ocpl_id, crt_order_flags , hdferr)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: ocpl_id ! Object (dataset or group) creation property list identifier
+ INTEGER(HID_T), INTENT(IN) :: ocpl_id ! Object (dataset or group) creation property list identifier
INTEGER, INTENT(IN) :: crt_order_flags ! Flags specifying whether to track and index attribute creation order
-
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
!
! MS FORTRAN needs explicit interface for C functions called here.
!
@@ -5559,36 +4775,36 @@
hdferr = H5Pset_attr_creation_order_c(ocpl_id, crt_order_flags)
END SUBROUTINE h5pset_attr_creation_order_f
-
-!----------------------------------------------------------------------
-! Name: H5Pset_shared_mesg_nindexes_f
+!****s* H5P/H5Pset_shared_mesg_nindexes_f
+! NAME
+! H5Pset_shared_mesg_nindexes_f
!
-! Purpose: Sets number of shared object header message indexes
+! PURPOSE
+! Sets number of shared object header message indexes
!
-! Inputs:
-! plist_id - file creation property list
-! nindexes - Number of shared object header message indexes to be available in files created with this property list
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! INPUTS
+!
+! plist_id - file creation property list
+! nindexes - Number of shared object header message indexes to be available in files created with this property list
+! OUTPUTS
!
-! Programmer: M.S. Breitenfeld
-! January, 2008
+! hdferr - error code
+! Success: 0
+! Failure: -1
!
-! Modifications:
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
!
-! Comment:
-!----------------------------------------------------------------------
-
+! SOURCE
SUBROUTINE h5pset_shared_mesg_nindexes_f( plist_id, nindexes, hdferr)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist_id ! file creation property list
- INTEGER, INTENT(IN) :: nindexes ! Number of shared object header message indexes
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! File creation property list
+ INTEGER, INTENT(IN) :: nindexes ! Number of shared object header message indexes
! available in files created WITH this property list
INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
!
! MS FORTRAN needs explicit interface for C functions called here.
!
@@ -5598,7 +4814,7 @@
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_SHARED_MESG_NINDEXES_C'::h5pset_shared_mesg_nindexes_c
!DEC$ENDIF
-
+
INTEGER(HID_T), INTENT(IN) :: plist_id
INTEGER, INTENT(IN) :: nindexes
@@ -5609,39 +4825,40 @@
END SUBROUTINE h5pset_shared_mesg_nindexes_f
-!----------------------------------------------------------------------
-! Name: H5Pset_shared_mesg_index_f
+!****s* H5P/H5Pset_shared_mesg_index_f
+! NAME
+! H5Pset_shared_mesg_index_f
!
-! Purpose: Configures the specified shared object header message index
+! PURPOSE
+! Configures the specified shared object header message index
!
-! Inputs:
-! fcpl_id - File creation property list identifier.
-! index_num - Index being configured.
-! mesg_type_flags - Types of messages that should be stored in this index.
-! min_mesg_size - Minimum message size.
+! INPUTS
+!
+! fcpl_id - File creation property list identifier.
+! index_num - Index being configured.
+! mesg_type_flags - Types of messages that should be stored in this index.
+! min_mesg_size - Minimum message size.
!
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! OUTPUTS
!
-! Programmer: M.S. Breitenfeld
-! January, 2008
+! hdferr - error code
+! Success: 0
+! Failure: -1
!
-! Modifications:
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
!
-! Comment:
-!----------------------------------------------------------------------
-
+! SOURCE
SUBROUTINE h5pset_shared_mesg_index_f(fcpl_id, index_num, mesg_type_flags, min_mesg_size, hdferr)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: fcpl_id ! file creation property list
- INTEGER, INTENT(IN) :: index_num ! Index being configured.
+ INTEGER(HID_T), INTENT(IN) :: fcpl_id ! file creation property list
+ INTEGER, INTENT(IN) :: index_num ! Index being configured.
INTEGER, INTENT(IN) :: mesg_type_flags ! Types of messages that should be stored in this index.
- INTEGER, INTENT(IN) :: min_mesg_size ! Minimum message size.
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER, INTENT(IN) :: min_mesg_size ! Minimum message size.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
!
! MS FORTRAN needs explicit interface for C functions called here.
!
@@ -5652,8 +4869,8 @@
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_SHARED_MESG_INDEX_C'::h5pset_shared_mesg_index_c
!DEC$ENDIF
-
- INTEGER(HID_T), INTENT(IN) :: fcpl_id
+
+ INTEGER(HID_T), INTENT(IN) :: fcpl_id
INTEGER, INTENT(IN) :: index_num
INTEGER, INTENT(IN) :: mesg_type_flags
INTEGER, INTENT(IN) :: min_mesg_size
@@ -5665,35 +4882,36 @@
END SUBROUTINE h5pset_shared_mesg_index_f
-!----------------------------------------------------------------------
-! Name: H5Pget_attr_creation_order_f
+!****s* H5P/H5Pget_attr_creation_order_f
+! NAME
+! H5Pget_attr_creation_order_f
!
-! Purpose: Retrieves tracking and indexing settings for attribute creation order
+! PURPOSE
+! Retrieves tracking and indexing settings for attribute creation order
!
-! Inputs:
-! ocpl_id - Object (group or dataset) creation property list identifier
+! INPUTS
!
-! Outputs:
-! crt_order_flags - Flags specifying whether to track and index attribute creation order
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! ocpl_id - Object (group or dataset) creation property list identifier
!
-! Programmer: M.S. Breitenfeld
-! February, 2008
+! OUTPUTS
!
-! Modifications:
+! crt_order_flags - Flags specifying whether to track and index attribute creation order
+! hdferr - Error code
+! Success: 0
+! Failure: -1
!
-! Comment:
-!----------------------------------------------------------------------
-
+! AUTHOR
+! M. Scot Breitenfeld
+! February, 2008
+!
+! SOURCE
SUBROUTINE h5pget_attr_creation_order_f(ocpl_id, crt_order_flags, hdferr)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: ocpl_id ! Object (group or dataset) creation property list identifier
- INTEGER, INTENT(OUT) :: crt_order_flags ! Flags specifying whether to track and index attribute creation order
+ INTEGER(HID_T), INTENT(IN) :: ocpl_id ! Object (group or dataset) creation property list identifier
+ INTEGER, INTENT(OUT) :: crt_order_flags ! Flags specifying whether to track and index attribute creation order
INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
!
! MS FORTRAN needs explicit interface for C functions called here.
!
@@ -5714,42 +4932,43 @@
END SUBROUTINE h5pget_attr_creation_order_f
-!----------------------------------------------------------------------
-! Name: H5Pset_libver_bounds_f
+!****s* H5P/H5Pset_libver_bounds_f
+! NAME
+! H5Pset_libver_bounds_f
!
-! Purpose: Sets bounds on library versions, and indirectly format versions, to be used when creating objects.
+! PURPOSE
+! Sets bounds on library versions, and indirectly format versions, to be used when creating objects.
!
-! Inputs:
-! fapl_id - File access property list identifier
-! low - The earliest version of the library that will be used for writing objects.
-! high - The latest version of the library that will be used for writing objects.
+! INPUTS
!
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! fapl_id - File access property list identifier
+! low - The earliest version of the library that will be used for writing objects.
+! high - The latest version of the library that will be used for writing objects.
!
-! Programmer: M.S. Breitenfeld
-! February 18, 2008
+! OUTPUTS
!
-! Modifications:
+! hdferr - error code
+! Success: 0
+! Failure: -1
!
-! Comment:
-!----------------------------------------------------------------------
-
+! AUTHOR
+! M. Scot Breitenfeld
+! February 18, 2008
+!
+! SOURCE
SUBROUTINE h5pset_libver_bounds_f(fapl_id, low, high, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: fapl_id ! File access property list identifier
- INTEGER, INTENT(IN) :: low ! The earliest version of the library that will be used for writing objects.
- ! Currently, low must be one of two pre-defined values:
- ! HDF_LIBVER_EARLIEST_F
- ! HDF_LIBVER_LATEST_F
- INTEGER, INTENT(IN) :: high ! The latest version of the library that will be used for writing objects.
- ! Currently, low must set to the pre-defined value:
- ! HDF_LIBVER_LATEST_F
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER, INTENT(IN) :: low ! The earliest version of the library that will be used for writing objects.
+ ! Currently, low must be one of two pre-defined values:
+ ! HDF_LIBVER_EARLIEST_F
+ ! HDF_LIBVER_LATEST_F
+ INTEGER, INTENT(IN) :: high ! The latest version of the library that will be used for writing objects.
+ ! Currently, low must set to the pre-defined value:
+ ! HDF_LIBVER_LATEST_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
!
! MS FORTRAN needs explicit interface for C functions called here.
!
@@ -5771,35 +4990,36 @@
END SUBROUTINE h5pset_libver_bounds_f
-!----------------------------------------------------------------------
-! Name: H5Pset_link_creation_order_f
+!****s* H5P/H5Pset_link_creation_order_f
+! NAME
+! H5Pset_link_creation_order_f
!
-! Purpose: Sets creation order tracking and indexing for links in a group.
+! PURPOSE
+! Sets creation order tracking and indexing for links in a group.
!
-! Inputs:
-! gcpl_id - Group creation property list identifier
-! crt_order_flags - Creation order flag(s)
+! INPUTS
!
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! gcpl_id - Group creation property list identifier
+! crt_order_flags - Creation order flag(s)
!
-! Programmer: M.S. Breitenfeld
-! February 18, 2008
+! OUTPUTS
!
-! Modifications:
+! hdferr - Error code
+! Success: 0
+! Failure: -1
!
-! Comment:
-!----------------------------------------------------------------------
-
+! AUTHOR
+! M. Scot Breitenfeld
+! February 18, 2008
+!
+! SOURCE
SUBROUTINE h5pset_link_creation_order_f(gcpl_id, crt_order_flags, hdferr)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: gcpl_id ! File access property list identifier
+ INTEGER(HID_T), INTENT(IN) :: gcpl_id ! File access property list identifier
INTEGER, INTENT(IN) :: crt_order_flags ! Creation order flag(s)
INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
!
! MS FORTRAN needs explicit interface for C functions called here.
!
@@ -5820,36 +5040,37 @@
END SUBROUTINE h5pset_link_creation_order_f
-!----------------------------------------------------------------------
-! Name: H5Pget_link_phase_change_f
-!
-! Purpose: Queries the settings for conversion between compact and dense groups.
-!
-! Inputs:
-! gcpl_id - Group creation property list identifier
-! Outputs:
-! max_compact - Maximum number of attributes to be stored in compact storage
-! min_dense - Minimum number of attributes to be stored in dense storage
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: M.S. Breitenfeld
-! February 20, 2008
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
+!****s* H5P/H5Pget_link_phase_change_f
+! NAME
+! H5Pget_link_phase_change_f
+!
+! PURPOSE
+! Queries the settings for conversion between compact and dense groups.
+!
+! INPUTS
+!
+! gcpl_id - Group creation property list identifier
+! OUTPUTS
+!
+! max_compact - Maximum number of attributes to be stored in compact storage
+! min_dense - Minimum number of attributes to be stored in dense storage
+! hdferr - Error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! February 20, 2008
+!
+! SOURCE
SUBROUTINE h5pget_link_phase_change_f(gcpl_id, max_compact, min_dense, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: gcpl_id ! Group creation property list identifier
- INTEGER, INTENT(OUT) :: max_compact ! Maximum number of attributes to be stored in compact storage
- INTEGER, INTENT(OUT) :: min_dense ! Minimum number of attributes to be stored in dense storage
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER, INTENT(OUT) :: max_compact ! Maximum number of attributes to be stored in compact storage
+ INTEGER, INTENT(OUT) :: min_dense ! Minimum number of attributes to be stored in dense storage
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
!
! MS FORTRAN needs explicit interface for C functions called here.
!
@@ -5869,36 +5090,37 @@
hdferr = h5pget_link_phase_change_c(gcpl_id, max_compact, min_dense)
END SUBROUTINE h5pget_link_phase_change_f
-!----------------------------------------------------------------------
-! Name: H5Pget_obj_track_times_f
+!****s* H5P/H5Pget_obj_track_times_f
+! NAME
+! H5Pget_obj_track_times_f
!
-! Purpose: Returns whether times are tracked for an object.
+! PURPOSE
+! Returns whether times are tracked for an object.
!
-! Inputs:
-! plist_id - property list id
-! flag - object timestamp setting
-! .TRUE.,.FALSE.
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! INPUTS
+!
+! plist_id - property list id
+! flag - object timestamp setting
+! .TRUE.,.FALSE.
+! OUTPUTS
!
-! Programmer: M.S. Breitenfeld
-! February 22, 2008
+! hdferr - error code
+! Success: 0
+! Failure: -1
!
-! Modifications:
+! AUTHOR
+! M. Scot Breitenfeld
+! February 22, 2008
!
-! Comment:
-!----------------------------------------------------------------------
-
+! SOURCE
SUBROUTINE h5pget_obj_track_times_f(plist_id, flag, hdferr)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset creation property
- ! list identifier
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset creation property
+ ! list identifier
LOGICAL, INTENT(OUT) :: flag ! Object timestamp setting
INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
INTEGER :: status
!
! MS FORTRAN needs explicit interface for C functions called here.
@@ -5909,7 +5131,7 @@
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_OBJ_TRACK_TIMES_C'::h5pget_obj_track_times_c
!DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: plist_id ! File creation property list identifier
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! File creation property list identifier
INTEGER, INTENT(OUT) :: status
END FUNCTION h5pget_obj_track_times_c
END INTERFACE
@@ -5919,50 +5141,52 @@
END SUBROUTINE h5pget_obj_track_times_f
-!----------------------------------------------------------------------
-! Name: H5Pset_obj_track_times_f
-!
-! Purpose: Set whether the birth, access, modification & change times for
-! an object are stored.
-!
-! Birth time is the time the object was created. Access time is
-! the last time that metadata or raw data was read from this
-! object. Modification time is the last time the data for
-! this object was changed (either writing raw data to a dataset
-! or inserting/modifying/deleting a link in a group). Change
-! time is the last time the metadata for this object was written
-! (adding/modifying/deleting an attribute on an object, extending
-! the size of a dataset, etc).
-!
-! If these times are not tracked, they will be reported as
-! 12:00 AM UDT, Jan. 1, 1970 (i.e. 0 seconds past the UNIX
-! epoch) when queried.
-!
-! Inputs:
-! plist_id - property list id
-! flag - object timestamp setting
-! .TRUE.,.FALSE.
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: M.S. Breitenfeld
-! February 22, 2008
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
+!****s* H5P/H5Pset_obj_track_times_f
+! NAME
+! H5Pset_obj_track_times_f
+!
+! PURPOSE
+! Set whether the birth, access, modification & change times for
+! an object are stored.
+!
+! Birth time is the time the object was created. Access time is
+! the last time that metadata or raw data was read from this
+! object. Modification time is the last time the data for
+! this object was changed (either writing raw data to a dataset
+! or inserting/modifying/deleting a link in a group). Change
+! time is the last time the metadata for this object was written
+! (adding/modifying/deleting an attribute on an object, extending
+! the size of a dataset, etc).
+!
+! If these times are not tracked, they will be reported as
+! 12:00 AM UDT, Jan. 1, 1970 (i.e. 0 seconds past the UNIX
+! epoch) when queried.
+!
+! INPUTS
+!
+! plist_id - property list id
+! flag - object timestamp setting
+! .TRUE.,.FALSE.
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! February 22, 2008
+!
+!
+! SOURCE
SUBROUTINE h5pset_obj_track_times_f(plist_id, flag, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset creation property
! list identifier
LOGICAL, INTENT(IN) :: flag ! Object timestamp setting
INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
INTEGER :: status
!
! MS FORTRAN needs explicit interface for C functions called here.
@@ -5973,7 +5197,7 @@
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_OBJ_TRACK_TIMES_C'::h5pset_obj_track_times_c
!DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: plist_id ! File creation property list identifier
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! File creation property list identifier
INTEGER, INTENT(IN) :: status
END FUNCTION h5pset_obj_track_times_c
END INTERFACE
@@ -5985,38 +5209,41 @@
END SUBROUTINE h5pset_obj_track_times_f
-!----------------------------------------------------------------------
-! Name: H5Pset_create_inter_group_f
+!****s* H5P/H5Pset_create_inter_group_f
+! NAME
+! H5Pset_create_inter_group_f
!
-! Purpose: Specifies in property list whether to create missing intermediate groups.
+! PURPOSE
+! Specifies in property list whether to create missing intermediate groups.
!
-! Inputs:
-! lcpl_id - Link creation property list identifier
-! crt_intermed_group - crt_intermed_group specifying whether
-! to create intermediate groups upon the creation
-! of an object
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! INPUTS
+!
+! lcpl_id - Link creation property list identifier
+! crt_intermed_group - crt_intermed_group specifying whether
+! to create intermediate groups upon the creation
+! of an object
+! OUTPUTS
!
-! Programmer: M.S. Breitenfeld
-! February 22, 2008
+! hdferr - Error code
+! Success: 0
+! Failure: -1
!
-! Modifications:
+! AUTHOR
+! M. Scot Breitenfeld
+! February 22, 2008
!
-! Comment: The long subroutine name (>31) on older f90 compilers causes problems
+! HISTORY
+! The long subroutine name (>31) on older f90 compilers causes problems
! so had to shorten the name
-!--------------------------------------------------------------------------------------
-
+! SOURCE
SUBROUTINE h5pset_create_inter_group_f(lcpl_id, crt_intermed_group, hdferr)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: lcpl_id ! Link creation property list identifier
+ INTEGER(HID_T), INTENT(IN) :: lcpl_id ! Link creation property list identifier
INTEGER, INTENT(IN) :: crt_intermed_group ! specifying whether to create intermediate groups
! upon the creation of an object
INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
!
! MS FORTRAN needs explicit interface for C functions called here.
!
@@ -6035,35 +5262,36 @@
END SUBROUTINE h5pset_create_inter_group_f
-!----------------------------------------------------------------------
-! Name: H5Pget_link_creation_order_f
+!****s* H5P/H5Pget_link_creation_order_f
+! NAME
+! H5Pget_link_creation_order_f
!
-! Purpose: Queries whether link creation order is tracked and/or indexed in a group.
+! PURPOSE
+! Queries whether link creation order is tracked and/or indexed in a group.
!
-! Inputs:
-! gcpl_id - Group creation property list identifier
+! INPUTS
!
-! Outputs:
-! crt_order_flags - Creation order flag(s)
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! gcpl_id - Group creation property list identifier
!
-! Programmer: M.S. Breitenfeld
-! March 3, 2008
+! OUTPUTS
!
-! Modifications:
+! crt_order_flags - Creation order flag(s)
+! hdferr - Error code
+! Success: 0
+! Failure: -1
!
-! Comment:
-!----------------------------------------------------------------------
-
+! AUTHOR
+! M. Scot Breitenfeld
+! March 3, 2008
+!
+! SOURCE
SUBROUTINE h5pget_link_creation_order_f(gcpl_id, crt_order_flags, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: gcpl_id ! Group creation property list identifier
INTEGER, INTENT(OUT) :: crt_order_flags ! Creation order flag(s)
INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
!
! MS FORTRAN needs explicit interface for C functions called here.
!
@@ -6084,40 +5312,39 @@
END SUBROUTINE h5pget_link_creation_order_f
-!----------------------------------------------------------------------
-! Name: H5Pset_char_encoding
+!****s* H5P/H5Pset_char_encoding_f
+! NAME
+! H5Pset_char_encoding_f
!
-! Purpose: Sets the character encoding used to encode a string.
+! PURPOSE
+! Sets the character encoding used to encode a string.
!
-! Inputs:
-! plist_id - Property list identifier
-! encoding - Valid values for encoding are:
-! H5T_CSET_ASCII_F -> US ASCII
-! H5T_CSET_UTF8_F -> UTF-8 Unicode encoding
+! INPUTS
!
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! plist_id - Property list identifier
+! encoding - Valid values for encoding are:
+! H5T_CSET_ASCII_F -> US ASCII
+! H5T_CSET_UTF8_F -> UTF-8 Unicode encoding
!
-! Programmer: M.S. Breitenfeld
-! March 3, 2008
+! OUTPUTS
+! hdferr - Error code
+! Success: 0
+! Failure: -1
!
-! Modifications:
+! AUTHOR
+! M. Scot Breitenfeld
+! March 3, 2008
!
-! Comment:
-!----------------------------------------------------------------------
-
+! SOURCE
SUBROUTINE h5pset_char_encoding_f(plist_id, encoding, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: plist_id ! Property list identifier
-
- INTEGER, INTENT(IN) :: encoding ! String encoding character set:
-! H5T_CSET_ASCII_F -> US ASCII
-! H5T_CSET_UTF8_F -> UTF-8 Unicode encoding
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER, INTENT(IN) :: encoding ! String encoding character set:
+ ! H5T_CSET_ASCII_F -> US ASCII
+ ! H5T_CSET_UTF8_F -> UTF-8 Unicode encoding
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
!
! MS FORTRAN needs explicit interface for C functions called here.
!
@@ -6138,40 +5365,41 @@
END SUBROUTINE h5pset_char_encoding_f
-!----------------------------------------------------------------------
-! Name: H5Pget_char_encoding
+!****s* H5P/H5Pget_char_encoding_f
+! NAME
+! H5Pget_char_encoding_f
!
-! Purpose: Retrieves the character encoding used to create a string
+! PURPOSE
+! Retrieves the character encoding used to create a string
!
-! Inputs:
-! plist_id - Property list identifier
+! INPUTS
!
-! Outputs:
-! encoding - Valid values for encoding are:
-! H5T_CSET_ASCII_F -> US ASCII
-! H5T_CSET_UTF8_F -> UTF-8 Unicode encoding
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! plist_id - Property list identifier
!
-! Programmer: M.S. Breitenfeld
-! March 3, 2008
+! OUTPUTS
!
-! Modifications:
+! encoding - Valid values for encoding are:
+! H5T_CSET_ASCII_F -> US ASCII
+! H5T_CSET_UTF8_F -> UTF-8 Unicode encoding
+! hdferr - Error code
+! Success: 0
+! Failure: -1
!
-! Comment:
-!----------------------------------------------------------------------
-
+! AUTHOR
+! M. Scot Breitenfeld
+! March 3, 2008
+!
+! SOURCE
SUBROUTINE h5pget_char_encoding_f(plist_id, encoding, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: plist_id ! Property list identifier
- INTEGER, INTENT(OUT) :: encoding ! Valid values for encoding are:
-! H5T_CSET_ASCII_F -> US ASCII
-! H5T_CSET_UTF8_F -> UTF-8 Unicode encoding
+ INTEGER, INTENT(OUT) :: encoding ! Valid values for encoding are:
+ ! H5T_CSET_ASCII_F -> US ASCII
+ ! H5T_CSET_UTF8_F -> UTF-8 Unicode encoding
INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
!
! MS FORTRAN needs explicit interface for C functions called here.
!
@@ -6192,29 +5420,31 @@
END SUBROUTINE h5pget_char_encoding_f
-!----------------------------------------------------------------------
-! Name: h5pset_copy_object_f
+!****s* H5P/h5pset_copy_object_f
+! NAME
+! h5pset_copy_object_f
!
-! Purpose: Sets properties to be used when an object is copied.
+! PURPOSE
+! Sets properties to be used when an object is copied.
!
-! Inputs:
-! ocp_plist_id - Object copy property list identifier
-! copy_options - Copy option(s) to be set
-! Outputs:
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! INPUTS
+!
+! ocp_plist_id - Object copy property list identifier
+! copy_options - Copy option(s) to be set
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
!
-! Programmer: M.S. Breitenfeld
-! March 3, 2008
+! AUTHOR
+! M. Scot Breitenfeld
+! March 3, 2008
!
-! Modifications:
+! HISTORY
!
-! Comment:
-!----------------------------------------------------------------------
-
+!
+! SOURCE
SUBROUTINE h5pset_copy_object_f(ocp_plist_id, copy_options, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: ocp_plist_id ! Object copy property list identifier
@@ -6226,6 +5456,7 @@
! H5O_COPY_WITHOUT_ATTR_FLAG_F
INTEGER, INTENT(OUT) :: hdferr ! Error code
! 0 on success and -1 on failure
+!*****
! MS FORTRAN needs explicit interface for C functions called here.
!
@@ -6242,39 +5473,43 @@
hdferr = h5pset_copy_object_c(ocp_plist_id, copy_options)
END SUBROUTINE h5pset_copy_object_f
-!----------------------------------------------------------------------
-! Name: h5pget_copy_object_f
+!****s* H5P/h5pget_copy_object_f
+! NAME
+! h5pget_copy_object_f
!
-! Purpose: Retrieves the properties to be used when an object is copied.
+! PURPOSE
+! Retrieves the properties to be used when an object is copied.
!
-! Inputs:
-! ocp_plist_id - Object copy property list identifier
-! Outputs:
-! copy_options - Copy option(s) to be get
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! INPUTS
+!
+! ocp_plist_id - Object copy property list identifier
+! OUTPUTS
+!
+! copy_options - Copy option(s) to be get
+! hdferr - Error code
+! Success: 0
+! Failure: -1
!
-! Programmer: M.S. Breitenfeld
-! March 3, 2008
+! AUTHOR
+! M. Scot Breitenfeld
+! March 3, 2008
!
-! Modifications:
+! HISTORY
!
-! Comment:
-!----------------------------------------------------------------------
-
+!
+! SOURCE
SUBROUTINE h5pget_copy_object_f(ocp_plist_id, copy_options, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: ocp_plist_id ! Object copy property list identifier
- INTEGER, INTENT(OUT) :: copy_options ! valid copy options returned are:
- ! H5O_COPY_SHALLOW_HIERARCHY_F
- ! H5O_COPY_EXPAND_SOFT_LINK_F
- ! H5O_COPY_EXPAND_EXT_LINK_F
- ! H5O_COPY_EXPAND_REFERENCE_F
- ! H5O_COPY_WITHOUT_ATTR_FLAG_F
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER, INTENT(OUT) :: copy_options ! Valid copy options returned are:
+ ! H5O_COPY_SHALLOW_HIERARCHY_F
+ ! H5O_COPY_EXPAND_SOFT_LINK_F
+ ! H5O_COPY_EXPAND_EXT_LINK_F
+ ! H5O_COPY_EXPAND_REFERENCE_F
+ ! H5O_COPY_WITHOUT_ATTR_FLAG_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! MS FORTRAN needs explicit interface for C functions called here.
!
@@ -6291,41 +5526,43 @@
hdferr = h5pget_copy_object_c(ocp_plist_id, copy_options)
END SUBROUTINE h5pget_copy_object_f
-!----------------------------------------------------------------------
-! Name: h5pget_data_transform_f
-!
-! Purpose: Retrieves a data transform expression.
-!
-! Inputs:
-! plist_id - Identifier of the property list or class
-! Outputs:
-! expression - buffer to hold transform expression
-! hdferr - error code
-! Success: Actual lenght of the expression
-! If provided buffer "expression" is
-! smaller, than expression will be
-! truncated to fit into
-! provided user buffer
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: M.S. Breitenfeld
-! March 19, 2008
-!
-! Modifications:
-!
-! Comment: Should hdferr return just 0 or 1 and add another arguement for the size?
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_data_transform_f(plist_id, expression, hdferr, size)
+!****s* H5P/h5pget_data_transform_f
+! NAME
+! h5pget_data_transform_f
+!
+! PURPOSE
+! Retrieves a data transform expression.
+!
+! INPUTS
+!
+! plist_id - Identifier of the property list or class
+! OUTPUTS
+!
+! expression - buffer to hold transform expression
+! hdferr - Error code
+! Success: Actual lenght of the expression
+! If provided buffer "expression" is
+! smaller, than expression will be
+! truncated to fit into
+! provided user buffer
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! March 19, 2008
+!
+! HISTORY
+!
+! Should hdferr return just 0 or 1 and add another arguement for the size?
+! SOURCE
+SUBROUTINE h5pget_data_transform_f(plist_id, expression, hdferr, size)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist_id ! Identifier of the property list or class
- CHARACTER(LEN=*), INTENT(OUT) :: expression ! Buffer to hold transform expression
-
- INTEGER(SIZE_T), INTENT(OUT), OPTIONAL :: size ! registered size of the transform expression
-
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Identifier of the property list or class
+ CHARACTER(LEN=*), INTENT(OUT) :: expression ! Buffer to hold transform expression
+ INTEGER(SIZE_T), INTENT(OUT), OPTIONAL :: size ! Registered size of the transform expression
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
INTEGER :: expression_len
INTEGER(SIZE_T) :: size_default
@@ -6339,8 +5576,8 @@
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_DATA_TRANSFORM_C'::h5pget_data_transform_c
!DEC$ENDIF
!DEC$ATTRIBUTES reference :: expression
- INTEGER(HID_T), INTENT(IN) :: plist_id
- CHARACTER(LEN=*), INTENT(OUT) :: expression
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ CHARACTER(LEN=*), INTENT(OUT) :: expression
INTEGER(SIZE_T) :: size_default
INTEGER :: expression_len
END FUNCTION h5pget_data_transform_c
@@ -6355,34 +5592,35 @@
END SUBROUTINE h5pget_data_transform_f
-!----------------------------------------------------------------------
-! Name: h5pset_data_transform_f
-!
-! Purpose: Sets a data transform expression.
+!****s* H5P/h5pset_data_transform_f
+! NAME
+! h5pset_data_transform_f
!
-! Inputs:
-! plist_id - Identifier of the property list or class
-! expression - buffer to hold transform expression
-! Outputs:
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! PURPOSE
+! Sets a data transform expression.
!
-! Programmer: M.S. Breitenfeld
-! March 19, 2008
+! INPUTS
+!
+! plist_id - Identifier of the property list or class
+! expression - Buffer to hold transform expression
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
!
-! Modifications:
+! AUTHOR
+! M. Scot Breitenfeld
+! March 19, 2008
!
-! Comment:
-!----------------------------------------------------------------------
-
+! SOURCE
SUBROUTINE h5pset_data_transform_f(plist_id, expression, hdferr)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist_id ! Identifier of the property list or class
- CHARACTER(LEN=*), INTENT(IN) :: expression ! Buffer to hold transform expression
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Identifier of the property list or class
+ CHARACTER(LEN=*), INTENT(IN) :: expression ! Buffer to hold transform expression
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
INTEGER :: expression_len
! MS FORTRAN needs explicit interface for C functions called here.
@@ -6394,7 +5632,7 @@
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_DATA_TRANSFORM_C'::h5pset_data_transform_c
!DEC$ENDIF
!DEC$ATTRIBUTES reference :: expression
- INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER(HID_T), INTENT(IN) :: plist_id
CHARACTER(LEN=*), INTENT(IN) :: expression
INTEGER :: expression_len
END FUNCTION h5pset_data_transform_c
@@ -6405,34 +5643,35 @@
END SUBROUTINE h5pset_data_transform_f
-!----------------------------------------------------------------------
-! Name: H5Pget_local_heap_size_hint_f
+!****s* H5P/H5Pget_local_heap_size_hint_f
+! NAME
+! H5Pget_local_heap_size_hint_f
!
-! Purpose: Queries the local heap size hint for original-style groups.
+! PURPOSE
+! Queries the local heap size hint for original-style groups.
!
-! Inputs:
-! gcpl_id - Group creation property list identifier
-! Outputs:
-! size_hint - Hint for size of local heap
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! INPUTS
+!
+! gcpl_id - Group creation property list identifier
+! OUTPUTS
!
-! Programmer: M.S. Breitenfeld
-! March 21, 2008
+! size_hint - Hint for size of local heap
+! hdferr - Error code
+! Success: 0
+! Failure: -1
!
-! Modifications:
+! AUTHOR
+! M. Scot Breitenfeld
+! March 21, 2008
!
-! Comment:
-!----------------------------------------------------------------------
-
+! SOURCE
SUBROUTINE h5pget_local_heap_size_hint_f(gcpl_id, size_hint, hdferr)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: gcpl_id ! Group creation property list identifier
+ INTEGER(HID_T), INTENT(IN) :: gcpl_id ! Group creation property list identifier
INTEGER(SIZE_T), INTENT(OUT) :: size_hint ! Hint for size of local heap
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! MS FORTRAN needs explicit interface for C functions called here.
!
@@ -6451,36 +5690,40 @@
END SUBROUTINE h5pget_local_heap_size_hint_f
-!----------------------------------------------------------------------
-! Name: H5Pget_est_link_info_f
+!****s* H5P/H5Pget_est_link_info_f
+! NAME
+! H5Pget_est_link_info_f
!
-! Purpose: Queries data required to estimate required local heap or object header size.
+! PURPOSE
+! Queries data required to estimate required local heap or object header size.
!
-! Inputs:
-! gcpl_id - Group creation property list identifier
-! Outputs:
-! est_num_entries - Estimated number of links to be inserted into group
-! est_name_len - Estimated average length of link names
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! INPUTS
+!
+! gcpl_id - Group creation property list identifier
+! OUTPUTS
+!
+! est_num_entries - Estimated number of links to be inserted into group
+! est_name_len - Estimated average length of link names
+! hdferr - Error code
+! Success: 0
+! Failure: -1
!
-! Programmer: M.S. Breitenfeld
-! March 21, 2008
+! AUTHOR
+! M. Scot Breitenfeld
+! March 21, 2008
!
-! Modifications:
+! HISTORY
!
-! Comment:
-!----------------------------------------------------------------------
-
+!
+! SOURCE
SUBROUTINE h5pget_est_link_info_f(gcpl_id, est_num_entries, est_name_len, hdferr)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: gcpl_id ! Group creation property list identifier
+ INTEGER(HID_T), INTENT(IN) :: gcpl_id ! Group creation property list identifier
INTEGER, INTENT(OUT) :: est_num_entries ! Estimated number of links to be inserted into group
INTEGER, INTENT(OUT) :: est_name_len ! Estimated average length of link names
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! MS FORTRAN needs explicit interface for C functions called here.
!
@@ -6490,7 +5733,7 @@
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_EST_LINK_INFO_C'::h5pget_est_link_info_c
!DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: gcpl_id
+ INTEGER(HID_T), INTENT(IN) :: gcpl_id
INTEGER, INTENT(OUT) :: est_num_entries
INTEGER, INTENT(OUT) :: est_name_len
END FUNCTION h5pget_est_link_info_c
@@ -6500,34 +5743,35 @@
END SUBROUTINE h5pget_est_link_info_f
-!----------------------------------------------------------------------
-! Name: H5Pset_local_heap_size_hint_f
+!****s* H5P/H5Pset_local_heap_size_hint_f
+! NAME
+! H5Pset_local_heap_size_hint_f
!
-! Purpose: Sets the local heap size hint for original-style groups.
+! PURPOSE
+! Sets the local heap size hint for original-style groups.
!
-! Inputs:
-! gcpl_id - Group creation property list identifier
-! size_hint - Hint for size of local heap
-! Outputs:
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! INPUTS
+!
+! gcpl_id - Group creation property list identifier
+! size_hint - Hint for size of local heap
+! OUTPUTS
!
-! Programmer: M.S. Breitenfeld
-! March 21, 2008
+! hdferr - Error code
+! Success: 0
+! Failure: -1
!
-! Modifications:
+! AUTHOR
+! M. Scot Breitenfeld
+! March 21, 2008
!
-! Comment:
-!----------------------------------------------------------------------
-
+! SOURCE
SUBROUTINE h5pset_local_heap_size_hint_f(gcpl_id, size_hint, hdferr)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: gcpl_id ! Group creation property list identifier
+ INTEGER(HID_T), INTENT(IN) :: gcpl_id ! Group creation property list identifier
INTEGER(SIZE_T), INTENT(IN) :: size_hint ! Hint for size of local heap
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! MS FORTRAN needs explicit interface for C functions called here.
!
@@ -6546,36 +5790,37 @@
END SUBROUTINE h5pset_local_heap_size_hint_f
-!----------------------------------------------------------------------
-! Name: h5pset_est_link_info_f
+!****s* H5P/h5pset_est_link_info_f
+! NAME
+! h5pset_est_link_info_f
!
-! Purpose: Sets estimated number of links and length of link names in a group.
+! PURPOSE
+! Sets estimated number of links and length of link names in a group.
!
-! Inputs:
-! gcpl_id - Group creation property list identifier
-! est_num_entries - Estimated number of links to be inserted into group
-! est_name_len - Estimated average length of link names
-! Outputs:
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! INPUTS
+!
+! gcpl_id - Group creation property list identifier
+! est_num_entries - Estimated number of links to be inserted into group
+! est_name_len - Estimated average length of link names
+! OUTPUTS
!
-! Programmer: M.S. Breitenfeld
-! March 21, 2008
+! hdferr - Error code
+! Success: 0
+! Failure: -1
!
-! Modifications:
+! AUTHOR
+! M. Scot Breitenfeld
+! March 21, 2008
!
-! Comment:
-!----------------------------------------------------------------------
-
+! SOURCE
SUBROUTINE h5pset_est_link_info_f(gcpl_id, est_num_entries, est_name_len, hdferr)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: gcpl_id ! Group creation property list identifier
+ INTEGER(HID_T), INTENT(IN) :: gcpl_id ! Group creation property list identifier
INTEGER, INTENT(IN) :: est_num_entries ! Estimated number of links to be inserted into group
INTEGER, INTENT(IN) :: est_name_len ! Estimated average length of link names
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! MS FORTRAN needs explicit interface for C functions called here.
!
@@ -6585,7 +5830,7 @@
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_EST_LINK_INFO_C'::h5pset_est_link_info_c
!DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: gcpl_id
+ INTEGER(HID_T), INTENT(IN) :: gcpl_id
INTEGER, INTENT(IN) :: est_num_entries
INTEGER, INTENT(IN) :: est_name_len
END FUNCTION h5pset_est_link_info_c
@@ -6595,36 +5840,37 @@
END SUBROUTINE h5pset_est_link_info_f
-!----------------------------------------------------------------------
-! Name: h5pset_link_phase_change_f
+!****s* H5P/h5pset_link_phase_change_f
+! NAME
+! h5pset_link_phase_change_f
!
-! Purpose: Sets the parameters for conversion between compact and dense groups.
+! PURPOSE
+! Sets the parameters for conversion between compact and dense groups.
!
-! Inputs:
-! gcpl_id - Group creation property list identifier
-! max_compact - Maximum number of attributes to be stored in compact storage
-! min_dense - Minimum number of attributes to be stored in dense storage
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! INPUTS
+!
+! gcpl_id - Group creation property list identifier
+! max_compact - Maximum number of attributes to be stored in compact storage
+! min_dense - Minimum number of attributes to be stored in dense storage
+! OUTPUTS
!
-! Programmer: M.S. Breitenfeld
-! March 21, 2008
+! hdferr - error code
+! Success: 0
+! Failure: -1
!
-! Modifications:
+! AUTHOR
+! M. Scot Breitenfeld
+! March 21, 2008
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_link_phase_change_f(gcpl_id, max_compact, min_dense, hdferr)
+! SOURCE
+SUBROUTINE h5pset_link_phase_change_f(gcpl_id, max_compact, min_dense, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: gcpl_id ! Group creation property list identifier
- INTEGER, INTENT(IN) :: max_compact ! Maximum number of attributes to be stored in compact storage
- INTEGER, INTENT(IN) :: min_dense ! Minimum number of attributes to be stored in dense storage
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER, INTENT(IN) :: max_compact ! Maximum number of attributes to be stored in compact storage
+ INTEGER, INTENT(IN) :: min_dense ! Minimum number of attributes to be stored in dense storage
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
!
! MS FORTRAN needs explicit interface for C functions called here.
!
@@ -6644,38 +5890,39 @@
hdferr = h5pset_link_phase_change_c(gcpl_id, max_compact, min_dense)
END SUBROUTINE h5pset_link_phase_change_f
-!----------------------------------------------------------------------
-! Name: h5pset_fapl_direct_f
-!
-! Purpose: Sets up use of the direct I/O driver.
-!
-! Inputs:
-! fapl_id - File access property list identifier
-! alignment - Required memory alignment boundary
-! block_size - File system block size
-! cbuf_size - Copy buffer size
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: M.S. Breitenfeld
-! March 21, 2008
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_fapl_direct_f(fapl_id, alignment, block_size, cbuf_size, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: fapl_id ! File access property list identifier
- INTEGER(SIZE_T), INTENT(IN) :: alignment ! Required memory alignment boundary!
- INTEGER(SIZE_T), INTENT(IN) :: block_size ! File system block size
- INTEGER(SIZE_T), INTENT(IN) :: cbuf_size ! Copy buffer size
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+!****s* H5P/h5pset_fapl_direct_f
+! NAME
+! h5pset_fapl_direct_f
+!
+! PURPOSE
+! Sets up use of the direct I/O driver.
+!
+! INPUTS
+!
+! fapl_id - File access property list identifier
+! alignment - Required memory alignment boundary
+! block_size - File system block size
+! cbuf_size - Copy buffer size
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! March 21, 2008
+!
+! SOURCE
+SUBROUTINE h5pset_fapl_direct_f(fapl_id, alignment, block_size, cbuf_size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: fapl_id ! File access property list identifier
+ INTEGER(SIZE_T), INTENT(IN) :: alignment ! Required memory alignment boundary!
+ INTEGER(SIZE_T), INTENT(IN) :: block_size ! File system block size
+ INTEGER(SIZE_T), INTENT(IN) :: cbuf_size ! Copy buffer size
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
!
! MS FORTRAN needs explicit interface for C functions called here.
!
@@ -6685,7 +5932,7 @@
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FAPL_DIRECT_C'::h5pset_fapl_direct_c
!DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: fapl_id
+ INTEGER(HID_T), INTENT(IN) :: fapl_id
INTEGER(SIZE_T), INTENT(IN) :: alignment
INTEGER(SIZE_T), INTENT(IN) :: block_size
INTEGER(SIZE_T), INTENT(IN) :: cbuf_size
@@ -6695,38 +5942,39 @@
hdferr = H5Pset_fapl_direct_c(fapl_id, alignment, block_size, cbuf_size)
END SUBROUTINE h5pset_fapl_direct_f
-!----------------------------------------------------------------------
-! Name: h5pget_fapl_direct_f
+!****s* H5P/h5pget_fapl_direct_f
+! NAME
+! h5pget_fapl_direct_f
!
-! Purpose: Gets up use of the direct I/O driver.
+! PURPOSE
+! Gets up use of the direct I/O driver.
!
-! Inputs:
-! fapl_id - File access property list identifier
-! Outputs:
-! alignment - Required memory alignment boundary
-! block_size - File system block size
-! cbuf_size - Copy buffer size
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! INPUTS
+!
+! fapl_id - File access property list identifier
+! OUTPUTS
!
-! Programmer: M.S. Breitenfeld
-! March 21, 2008
+! alignment - Required memory alignment boundary
+! block_size - File system block size
+! cbuf_size - Copy buffer size
+! hdferr - error code
+! Success: 0
+! Failure: -1
!
-! Modifications:
+! AUTHOR
+! M. Scot Breitenfeld
+! March 21, 2008
!
-! Comment:
-!----------------------------------------------------------------------
-
+! SOURCE
SUBROUTINE h5pget_fapl_direct_f(fapl_id, alignment, block_size, cbuf_size, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: fapl_id ! File access property list identifier
- INTEGER(SIZE_T), INTENT(OUT) :: alignment ! Required memory alignment boundary!
- INTEGER(SIZE_T), INTENT(OUT) :: block_size ! File system block size
- INTEGER(SIZE_T), INTENT(OUT) :: cbuf_size ! Copy buffer size
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: fapl_id ! File access property list identifier
+ INTEGER(SIZE_T), INTENT(OUT) :: alignment ! Required memory alignment boundary!
+ INTEGER(SIZE_T), INTENT(OUT) :: block_size ! File system block size
+ INTEGER(SIZE_T), INTENT(OUT) :: cbuf_size ! Copy buffer size
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
!
! MS FORTRAN needs explicit interface for C functions called here.
!
@@ -6736,7 +5984,7 @@
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FAPL_DIRECT_C'::h5pget_fapl_direct_c
!DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: fapl_id
+ INTEGER(HID_T), INTENT(IN) :: fapl_id
INTEGER(SIZE_T), INTENT(OUT) :: alignment
INTEGER(SIZE_T), INTENT(OUT) :: block_size
INTEGER(SIZE_T), INTENT(OUT) :: cbuf_size
@@ -6746,40 +5994,41 @@
hdferr = H5Pget_fapl_direct_c(fapl_id, alignment, block_size, cbuf_size)
END SUBROUTINE h5pget_fapl_direct_f
-!----------------------------------------------------------------------
-! Name: H5Pset_attr_phase_change_f
-!
-! Purpose: Sets attribute storage phase change thresholds.
-!
-! Inputs:
-! ocpl_id - Object (dataset or group) creation property list identifier
-! Outputs:
-! max_compact - Maximum number of attributes to be stored in compact storage
-! (Default: 8)
-! min_dense - Minimum number of attributes to be stored in dense storage
-! (Default: 6)
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: M.S. Breitenfeld
-! January, 2008
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr)
+!****s* H5P/H5Pset_attr_phase_change_f
+! NAME
+! H5Pset_attr_phase_change_f
+!
+! PURPOSE
+! Sets attribute storage phase change thresholds.
+!
+! INPUTS
+!
+! ocpl_id - Object (dataset or group) creation property list identifier
+! OUTPUTS
+!
+! max_compact - Maximum number of attributes to be stored in compact storage
+! (Default: 8)
+! min_dense - Minimum number of attributes to be stored in dense storage
+! (Default: 6)
+! hdferr - Error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+!
+! SOURCE
+SUBROUTINE h5pset_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: ocpl_id ! Object (dataset or group) creation property list identifier
- INTEGER, INTENT(IN) :: max_compact ! Maximum number of attributes to be stored in compact storage
- !(Default: 8)
- INTEGER, INTENT(IN) :: min_dense ! Minimum number of attributes to be stored in dense storage
- ! (Default: 6)
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER, INTENT(IN) :: max_compact ! Maximum number of attributes to be stored in compact storage
+ !(Default: 8)
+ INTEGER, INTENT(IN) :: min_dense ! Minimum number of attributes to be stored in dense storage
+ ! (Default: 6)
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
!
! MS FORTRAN needs explicit interface for C functions called here.
!
@@ -6801,33 +6050,36 @@
END SUBROUTINE h5pset_attr_phase_change_f
-!----------------------------------------------------------------------
-! Name: H5Pset_nbit_f
+!****s* H5P/H5Pset_nbit_f
+! NAME
+! H5Pset_nbit_f
!
-! Purpose: Sets up the use of the N-Bit filter.
+! PURPOSE
+! Sets up the use of the N-Bit filter.
!
-! Inputs:
-! plist_id - Dataset creation property list identifier.
-! Outputs:
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! INPUTS
+!
+! plist_id - Dataset creation property list identifier.
+! OUTPUTS
!
-! Programmer: M.S. Breitenfeld
-! March 21, 2008
+! hdferr - Error code
+! Success: 0
+! Failure: -1
!
-! Modifications:
+! AUTHOR
+! M. Scot Breitenfeld
+! March 21, 2008
!
-! Comment:
-!----------------------------------------------------------------------
-
+! HISTORY
+!
+!
+! SOURCE
SUBROUTINE h5pset_nbit_f(plist_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset creation property list identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! MS FORTRAN needs explicit interface for C functions called here.
!
INTERFACE
@@ -6844,37 +6096,40 @@
END SUBROUTINE h5pset_nbit_f
-!----------------------------------------------------------------------
-! Name: h5pset_scaleoffset_f
+!****s* H5P/h5pset_scaleoffset_f
+! NAME
+! h5pset_scaleoffset_f
!
-! Purpose: Sets up the use of the Scale-Offset filter.
+! PURPOSE
+! Sets up the use of the Scale-Offset filter.
!
-! Inputs:
-! plist_id - Dataset creation property list identifier.
-! scale_type - Flag indicating compression method.
-! scale_factor - Parameter related to scale.
-! Outputs:
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! INPUTS
+!
+! plist_id - Dataset creation property list identifier.
+! scale_type - Flag indicating compression method.
+! scale_factor - Parameter related to scale.
+! OUTPUTS
!
-! Programmer: M.S. Breitenfeld
-! March 21, 2008
+! hdferr - Error code
+! Success: 0
+! Failure: -1
!
-! Modifications:
+! AUTHOR
+! M. Scot Breitenfeld
+! March 21, 2008
!
-! Comment:
-!----------------------------------------------------------------------
-
+! HISTORY
+!
+!
+! SOURCE
SUBROUTINE h5pset_scaleoffset_f(plist_id, scale_type, scale_factor, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset creation property list identifier
- INTEGER, INTENT(IN) :: scale_type ! Flag indicating compression method.
- INTEGER, INTENT(IN) :: scale_factor ! parameter related to scale.
+ INTEGER, INTENT(IN) :: scale_type ! Flag indicating compression method.
+ INTEGER, INTENT(IN) :: scale_factor ! Parameter related to scale.
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
+ ! 0 on success and -1 on failure
+!*****
! MS FORTRAN needs explicit interface for C functions called here.
!
INTERFACE
@@ -6893,35 +6148,39 @@
END SUBROUTINE h5pset_scaleoffset_f
-!----------------------------------------------------------------------
-! Name: h5pset_nlinks_f
+!****s* H5P/h5pset_nlinks_f
+! NAME
+! h5pset_nlinks_f
!
-! Purpose: Sets maximum number of soft or user-defined link traversals.
+! PURPOSE
+! Sets maximum number of soft or user-defined link traversals.
!
-! Inputs:
-! lapl_id - File access property list identifier
-! nlinks - Maximum number of links to traverse
+! INPUTS
+!
+! lapl_id - File access property list identifier
+! nlinks - Maximum number of links to traverse
!
-! Outputs:
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! OUTPUTS
!
-! Programmer: M.S. Breitenfeld
-! March 24, 2008
+! hdferr - Error code
+! Success: 0
+! Failure: -1
!
-! Modifications:
+! AUTHOR
+! M. Scot Breitenfeld
+! March 24, 2008
!
-! Comment:
-!----------------------------------------------------------------------
-
+! HISTORY
+!
+!
+! SOURCE
SUBROUTINE h5pset_nlinks_f(lapl_id, nlinks, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: lapl_id ! File access property list identifier
INTEGER(SIZE_T), INTENT(IN) :: nlinks ! Maximum number of links to traverse
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! MS FORTRAN needs explicit interface for C functions called here.
!
@@ -6940,36 +6199,36 @@
END SUBROUTINE h5pset_nlinks_f
-!----------------------------------------------------------------------
-! Name: h5pget_nlinks_f
+!****s* H5P/h5pget_nlinks_f
+! NAME
+! h5pget_nlinks_f
!
-! Purpose: Gets maximum number of soft or user-defined link traversals.
+! PURPOSE
+! Gets maximum number of soft or user-defined link traversals.
!
-! Inputs:
-! lapl_id - File access property list identifier
-! nlinks - Maximum number of links to traverse
+! INPUTS
+!
+! lapl_id - File access property list identifier
+! nlinks - Maximum number of links to traverse
!
-! Outputs:
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! OUTPUTS
!
-! Programmer: M.S. Breitenfeld
-! March 24, 2008
+! hdferr - error code
+! Success: 0
+! Failure: -1
!
-! Modifications:
+! AUTHOR
+! M. Scot Breitenfeld
+! March 24, 2008
!
-! Comment:
-!----------------------------------------------------------------------
-
+! SOURCE
SUBROUTINE h5pget_nlinks_f(lapl_id, nlinks, hdferr)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: lapl_id ! File access property list identifier
+ INTEGER(HID_T), INTENT(IN) :: lapl_id ! File access property list identifier
INTEGER(SIZE_T), INTENT(OUT) :: nlinks ! Maximum number of links to traverse
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
! MS FORTRAN needs explicit interface for C functions called here.
!
INTERFACE
@@ -6987,38 +6246,41 @@
END SUBROUTINE h5pget_nlinks_f
-!----------------------------------------------------------------------
-! Name: H5Pget_create_inter_group_f
-!
-! Purpose: Determines whether property is set to enable creating missing intermediate groups.
-!
-! Inputs:
-! lcpl_id - Link creation property list identifier
-! crt_intermed_group - Specifying whether to create intermediate groups upon
-! the creation of an object
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: M.S. Breitenfeld
-! April 4, 2008
-!
-! Modifications:
-!
-! Comment: The long subroutine name (>31) on older f90 compilers causes problems
-! so had to shorten the name
-!--------------------------------------------------------------------------------------
-
+!****s* H5P/H5Pget_create_inter_group_f
+! NAME
+! H5Pget_create_inter_group_f
+!
+! PURPOSE
+! Determines whether property is set to enable creating missing intermediate groups.
+!
+! INPUTS
+!
+! lcpl_id - Link creation property list identifier
+! crt_intermed_group - Specifying whether to create intermediate groups upon
+! the creation of an object
+! OUTPUTS
+!
+! hdferr - Error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! April 4, 2008
+!
+! HISTORY
+!
+! The long subroutine name (>31) on older f90 compilers causes problems
+! so the name was shortened
+! SOURCE
SUBROUTINE h5pget_create_inter_group_f(lcpl_id, crt_intermed_group, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: lcpl_id ! Link creation property list identifier
INTEGER, INTENT(IN) :: crt_intermed_group ! Flag specifying whether to create intermediate groups
! upon creation of an object
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
INTERFACE
INTEGER FUNCTION h5pget_create_inter_group_c(lcpl_id, crt_intermed_group)
USE H5GLOBAL
@@ -7034,56 +6296,59 @@
END SUBROUTINE h5pget_create_inter_group_f
-!----------------------------------------------------------------------
-! Name: H5Pset_chunk_cache_f
-!
-! Purpose: Set the number of objects in the meta data cache and the
-! maximum number of chunks and bytes in the raw data chunk cache.
-! Once set, these values will override the values in the file access
-! property list. Each of these values can be individually unset
-! (or not set at all) by passing the macros:
-! H5D_CHUNK_CACHE_NSLOTS_DFLT_F,
-! H5D_CHUNK_CACHE_NBYTES_DFLT_F, and/or
-! H5D_CHUNK_CACHE_W0_DFLT_F
-! as appropriate.
-!
-! The RDCC_W0 value should be between 0 and 1 inclusive and
-! indicates how much chunks that have been fully read or fully
-! written are favored for preemption. A value of zero means
-! fully read or written chunks are treated no differently than
-! other chunks (the preemption is strictly LRU) while a value
-! of one means fully read chunks are always preempted before
-! other chunks.
-!
-! Inputs:
-! dapl_id - Dataset access property list identifier.
-! rdcc_nslots - The number of chunk slots in the raw data chunk cache for this dataset.
-! rdcc_nbytes - The total size of the raw data chunk cache for this dataset.
-! rdcc_w0 - The chunk preemption policy for this dataset.
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: M.S. Breitenfeld
-! April 13, 2009
-!
-! Modifications:
-!--------------------------------------------------------------------------------------
-
+!****s* H5P/H5Pset_chunk_cache_f
+! NAME
+! H5Pset_chunk_cache_f
+!
+! PURPOSE
+! Set the number of objects in the meta data cache and the
+! maximum number of chunks and bytes in the raw data chunk cache.
+! Once set, these values will override the values in the file access
+! property list. Each of these values can be individually unset
+! (or not set at all) by passing the macros:
+! H5D_CHUNK_CACHE_NSLOTS_DFLT_F,
+! H5D_CHUNK_CACHE_NBYTES_DFLT_F, and/or
+! H5D_CHUNK_CACHE_W0_DFLT_F
+! as appropriate.
+!
+! The RDCC_W0 value should be between 0 and 1 inclusive and
+! indicates how much chunks that have been fully read or fully
+! written are favored for preemption. A value of zero means
+! fully read or written chunks are treated no differently than
+! other chunks (the preemption is strictly LRU) while a value
+! of one means fully read chunks are always preempted before
+! other chunks.
+!
+! INPUTS
+!
+! dapl_id - Dataset access property list identifier.
+! rdcc_nslots - The number of chunk slots in the raw data chunk cache for this dataset.
+! rdcc_nbytes - The total size of the raw data chunk cache for this dataset.
+! rdcc_w0 - The chunk preemption policy for this dataset.
+! OUTPUTS
+!
+! hdferr - Error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! April 13, 2009
+!
+! HISTORY
+!
+! SOURCE
SUBROUTINE h5pset_chunk_cache_f(dapl_id, rdcc_nslots, rdcc_nbytes, rdcc_w0, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dapl_id ! Dataset access property list identifier.
- INTEGER(SIZE_T), INTENT(IN) :: rdcc_nslots ! The number of chunk slots in the raw data
+ INTEGER(SIZE_T), INTENT(IN) :: rdcc_nslots ! The number of chunk slots in the raw data
! chunk cache for this dataset.
- INTEGER(SIZE_T), INTENT(IN) :: rdcc_nbytes ! The total size of the raw data chunk cache
+ INTEGER(SIZE_T), INTENT(IN) :: rdcc_nbytes ! The total size of the raw data chunk cache
! for this dataset.
REAL, INTENT(IN) :: rdcc_w0 ! The chunk preemption policy for this dataset.
INTEGER, INTENT(OUT) :: hdferr ! Error code
! 0 on success and -1 on failure
-
+!*****
INTERFACE
INTEGER FUNCTION h5pset_chunk_cache_c(dapl_id, rdcc_nslots, rdcc_nbytes, rdcc_w0)
@@ -7102,43 +6367,47 @@
END SUBROUTINE h5pset_chunk_cache_f
-!----------------------------------------------------------------------
-! Name: H5Pget_chunk_cache_f
-!
-! Purpose: Retrieves the maximum possible number of elements in the meta
-! data cache and the maximum possible number of elements and
-! bytes and the RDCC_W0 value in the raw data chunk cache. Any
-! (or all) arguments may be null pointers in which case the
-! corresponding datum is not returned. If these properties have
-! not been set on this property list, the default values for a
-! file access property list are returned.
-!
-! Inputs:
-! dapl_id - Dataset access property list identifier.
-! Outputs:
-! rdcc_nslots - Number of chunk slots in the raw data chunk cache hash table.
-! rdcc_nbytes - Total size of the raw data chunk cache, in bytes.
-! rdcc_w0 - Preemption policy.
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: M.S. Breitenfeld
-! April 13, 2009
-!
-! Modifications:
-!--------------------------------------------------------------------------------------
-
+!****s* H5P/H5Pget_chunk_cache_f
+! NAME
+! H5Pget_chunk_cache_f
+!
+! PURPOSE
+! Retrieves the maximum possible number of elements in the meta
+! data cache and the maximum possible number of elements and
+! bytes and the RDCC_W0 value in the raw data chunk cache. Any
+! (or all) arguments may be null pointers in which case the
+! corresponding datum is not returned. If these properties have
+! not been set on this property list, the default values for a
+! file access property list are returned.
+!
+! INPUTS
+!
+! dapl_id - Dataset access property list identifier.
+! OUTPUTS
+!
+! rdcc_nslots - Number of chunk slots in the raw data chunk cache hash table.
+! rdcc_nbytes - Total size of the raw data chunk cache, in bytes.
+! rdcc_w0 - Preemption policy.
+! hdferr - Error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! April 13, 2009
+!
+! HISTORY
+!
+! SOURCE
SUBROUTINE h5pget_chunk_cache_f(dapl_id, rdcc_nslots, rdcc_nbytes, rdcc_w0, hdferr)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dapl_id ! Dataset access property list identifier.
+ INTEGER(HID_T), INTENT(IN) :: dapl_id ! Dataset access property list identifier.
INTEGER(SIZE_T), INTENT(OUT) :: rdcc_nslots ! Number of chunk slots in the raw data chunk cache hash table.
- INTEGER(SIZE_T), INTENT(OUT) :: rdcc_nbytes ! Total size of the raw data chunk cache, in bytes.
- REAL, INTENT(OUT) :: rdcc_w0 ! Preemption policy.
- INTEGER, INTENT(OUT) :: hdferr ! error code
-
+ INTEGER(SIZE_T), INTENT(OUT) :: rdcc_nbytes ! Total size of the raw data chunk cache, in bytes.
+ REAL, INTENT(OUT) :: rdcc_w0 ! Preemption policy.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
+!*****
INTERFACE
INTEGER FUNCTION h5pget_chunk_cache_c(dapl_id, rdcc_nslots, rdcc_nbytes, rdcc_w0)
USE H5GLOBAL
diff --git a/fortran/src/H5Pff_F03.f90 b/fortran/src/H5Pff_F03.f90
new file mode 100644
index 0000000..1970feb
--- /dev/null
+++ b/fortran/src/H5Pff_F03.f90
@@ -0,0 +1,1353 @@
+!****h* ROBODoc/H5P (F03)
+!
+! NAME
+! H5P_PROVISIONAL
+!
+! PURPOSE
+! This file contains Fortran 90 and Fortran 2003 interfaces for H5P functions.
+! It contains the same functions as H5Pff_DEPRECIATE.f90 but includes the
+! Fortran 2003 functions and the interface listings. This file will be compiled
+! instead of H5Pff_DEPRECIATE.f90 if Fortran 2003 functions are enabled.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! NOTES
+! *** IMPORTANT ***
+! If you add a new H5P function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
+!
+!*****
+
+MODULE H5P_PROVISIONAL
+
+ USE H5GLOBAL
+
+ INTERFACE h5pset_fill_value_f
+ MODULE PROCEDURE h5pset_fill_value_integer
+ MODULE PROCEDURE h5pset_fill_value_real
+ MODULE PROCEDURE h5pset_fill_value_char
+
+ ! Recommended procedure:
+ MODULE PROCEDURE h5pset_fill_value_ptr
+
+ END INTERFACE
+
+ INTERFACE h5pget_fill_value_f
+ MODULE PROCEDURE h5pget_fill_value_integer
+ MODULE PROCEDURE h5pget_fill_value_real
+ MODULE PROCEDURE h5pget_fill_value_char
+
+ ! Recommended procedure:
+ MODULE PROCEDURE h5pget_fill_value_ptr
+
+ END INTERFACE
+
+ INTERFACE h5pset_f
+ MODULE PROCEDURE h5pset_integer
+ MODULE PROCEDURE h5pset_real
+ MODULE PROCEDURE h5pset_char
+ ! Recommended procedure:
+ MODULE PROCEDURE h5pset_ptr
+
+ END INTERFACE
+
+ INTERFACE h5pget_f
+ MODULE PROCEDURE h5pget_integer
+ MODULE PROCEDURE h5pget_real
+ MODULE PROCEDURE h5pget_char
+ ! Recommended procedure:
+ MODULE PROCEDURE h5pget_ptr
+ END INTERFACE
+
+ INTERFACE h5pregister_f
+ MODULE PROCEDURE h5pregister_integer
+ MODULE PROCEDURE h5pregister_real
+ MODULE PROCEDURE h5pregister_char
+ ! Recommended procedure:
+ MODULE PROCEDURE h5pregister_ptr
+ END INTERFACE
+
+ INTERFACE h5pinsert_f
+ MODULE PROCEDURE h5pinsert_integer
+ MODULE PROCEDURE h5pinsert_real
+ MODULE PROCEDURE h5pinsert_char
+ ! Recommended procedure:
+ MODULE PROCEDURE h5pinsert_ptr
+ END INTERFACE
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_fill_value_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ USE, INTRINSIC :: ISO_C_BINDING
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FILL_VALUE_C'::h5pget_fill_value_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ TYPE(C_PTR), VALUE :: fillvalue ! Fillvalue
+ END FUNCTION h5pget_fill_value_c
+ END INTERFACE
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_fill_value_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ USE, INTRINSIC :: ISO_C_BINDING
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FILL_VALUE_C'::h5pset_fill_value_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ TYPE(C_PTR), VALUE :: fillvalue ! Fillvalue
+ END FUNCTION h5pset_fill_value_c
+ END INTERFACE
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_c(prp_id, name, name_len, value)
+ USE H5GLOBAL
+ USE, INTRINSIC :: ISO_C_BINDING
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_C'::h5pset_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ INTEGER :: name_len
+ TYPE(C_PTR), VALUE :: value ! Property value
+ END FUNCTION h5pset_c
+ END INTERFACE
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_c(prp_id, name, name_len, value)
+ USE ISO_C_BINDING
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_C'::h5pget_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ INTEGER :: name_len
+ TYPE(C_PTR), VALUE :: value ! Property value
+ END FUNCTION h5pget_c
+ END INTERFACE
+
+ INTERFACE
+ INTEGER FUNCTION h5pregister_c(class, name, name_len, size, value)
+ USE iso_c_binding
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PREGISTER_C'::h5pregister_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: class
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ TYPE(C_PTR), INTENT(IN), VALUE :: value
+ END FUNCTION h5pregister_c
+ END INTERFACE
+
+ INTERFACE
+ INTEGER FUNCTION h5pinsert_c(plist, name, name_len, size, value)
+ USE iso_c_binding
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PINSERT_C'::h5pinsert_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: plist
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ TYPE(c_ptr), INTENT(IN), value :: value
+ END FUNCTION h5pinsert_c
+ END INTERFACE
+
+CONTAINS
+
+!
+!****s* H5P (F03)/h5pset(get)fill_value_f
+!
+! NAME
+! h5pset(get)fill_value_f
+!
+! PURPOSE
+! Sets(gets) fill value for a dataset creation property list
+!
+! INPUTS
+! prp_id - dataset creation property list identifier
+! type_id - datatype identifier for fill value
+! fillvalue - fill value
+! OUTPUTS
+! type_id - datatype identifier for fill value
+! fillvalue - fill value
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+!
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Added the recommended way of passing fillvalue
+! and that is by passing the C address, all other
+! ways are obsolete and should be avoided. June, 2008 MSB
+!
+! NOTES
+! h5pset(get)fill_value_f function is overloaded to support
+! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes.
+!
+! SOURCE
+ SUBROUTINE h5pset_fill_value_integer(prp_id, type_id, fillvalue, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ INTEGER, INTENT(IN), TARGET :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ TYPE(C_PTR) :: f_ptr ! C address
+
+ f_ptr = C_LOC(fillvalue)
+
+ hdferr = h5pset_fill_value_c(prp_id, type_id, f_ptr)
+
+ END SUBROUTINE h5pset_fill_value_integer
+
+ SUBROUTINE h5pget_fill_value_integer(prp_id, type_id, fillvalue, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ INTEGER, INTENT(OUT), TARGET :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr ! C address
+
+ f_ptr = C_LOC(fillvalue)
+
+ hdferr = h5pget_fill_value_c(prp_id, type_id, f_ptr)
+
+ END SUBROUTINE h5pget_fill_value_integer
+
+
+ SUBROUTINE h5pset_fill_value_real(prp_id, type_id, fillvalue, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ REAL, INTENT(IN), TARGET :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr ! C address
+
+ f_ptr = C_LOC(fillvalue)
+
+ hdferr = h5pset_fill_value_c(prp_id, type_id, f_ptr)
+
+ END SUBROUTINE h5pset_fill_value_real
+
+
+ SUBROUTINE h5pget_fill_value_real(prp_id, type_id, fillvalue, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ REAL, INTENT(OUT), TARGET :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr ! C address
+
+ f_ptr = C_LOC(fillvalue)
+
+ hdferr = h5pget_fill_value_c(prp_id, type_id, f_ptr)
+
+ END SUBROUTINE h5pget_fill_value_real
+
+
+ SUBROUTINE h5pset_fill_value_double(prp_id, type_id, fillvalue, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ DOUBLE PRECISION, INTENT(IN), TARGET :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr ! C address
+
+ f_ptr = C_LOC(fillvalue)
+
+ hdferr = h5pset_fill_value_c(prp_id, type_id, f_ptr)
+ END SUBROUTINE h5pset_fill_value_double
+
+
+ SUBROUTINE h5pget_fill_value_double(prp_id, type_id, fillvalue, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ DOUBLE PRECISION, INTENT(OUT), TARGET :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr ! C address
+
+ f_ptr = C_LOC(fillvalue)
+
+ hdferr = h5pget_fill_value_c(prp_id, type_id, f_ptr)
+ END SUBROUTINE h5pget_fill_value_double
+
+ SUBROUTINE h5pset_fill_value_char(prp_id, type_id, fillvalue, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ CHARACTER, INTENT(IN), TARGET :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr ! C address
+
+ f_ptr = C_LOC(fillvalue)
+
+ hdferr = h5pset_fill_value_c(prp_id, type_id, f_ptr)
+
+ END SUBROUTINE h5pset_fill_value_char
+
+ SUBROUTINE h5pget_fill_value_char(prp_id, type_id, fillvalue, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ CHARACTER, INTENT(OUT) :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ INTEGER :: i
+ CHARACTER(LEN=1), ALLOCATABLE, DIMENSION(:), TARGET :: chr
+ INTEGER :: chr_len
+
+ TYPE(C_PTR) :: f_ptr ! C address
+ ! To resolve Issue #1 outlined in the preamble of this file we
+ ! need to pack the character string into an array.
+
+ chr_len = LEN(fillvalue)
+ ALLOCATE(chr(1:chr_len), STAT=hdferr)
+ IF (hdferr .NE. 0) THEN
+ hdferr = -1
+ RETURN
+ ENDIF
+
+ f_ptr = C_LOC(chr)
+
+ hdferr = h5pget_fill_value_c(prp_id, type_id, f_ptr)
+
+ DO i = 1, chr_len
+ fillvalue(i:i) = chr(i)
+ ENDDO
+ DEALLOCATE(chr)
+
+
+ END SUBROUTINE h5pget_fill_value_char
+
+ SUBROUTINE h5pset_fill_value_ptr(prp_id, type_id, fillvalue, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ TYPE(C_PTR), VALUE :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ hdferr = h5pset_fill_value_c(prp_id, type_id, fillvalue)
+
+ END SUBROUTINE h5pset_fill_value_ptr
+
+ SUBROUTINE h5pget_fill_value_ptr(prp_id, type_id, fillvalue, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ TYPE(C_PTR), INTENT(OUT) :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ hdferr = h5pget_fill_value_c(prp_id, type_id, fillvalue)
+
+ END SUBROUTINE h5pget_fill_value_ptr
+
+!
+!****s* H5P (F03)/h5pset_integer
+!
+! NAME
+! h5pset_integer
+!
+! PURPOSE
+! Sets a property list value
+!
+! INPUTS
+! prp_id - iproperty list identifier to modify
+! name - name of property to modify
+! value - value to set property to
+! OUTPUTS
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+! SOURCE
+ SUBROUTINE h5pset_integer(prp_id, name, value, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ INTEGER, INTENT(IN), TARGET :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(value)
+
+ name_len = LEN(name)
+ hdferr = h5pget_c(prp_id, name, name_len, f_ptr)
+
+ END SUBROUTINE h5pset_integer
+
+!
+!****s* H5P (F03)/h5pset_real
+!
+! NAME
+! h5pset_real
+!
+! PURPOSE
+! Sets a property list value
+!
+! INPUTS
+! prp_id - iproperty list identifier to modify
+! name - name of property to modify
+! value - value to set property to
+! OUTPUTS
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+! SOURCE
+ SUBROUTINE h5pset_real(prp_id, name, value, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ REAL, INTENT(IN), TARGET :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(value)
+
+ name_len = LEN(name)
+ hdferr = h5pget_c(prp_id, name, name_len, f_ptr)
+
+ END SUBROUTINE h5pset_real
+
+!
+!****s* H5P (F03)/h5pset_double
+!
+! NAME
+! h5pset_double
+!
+! PURPOSE
+! Sets a property list value
+!
+! INPUTS
+! prp_id - iproperty list identifier to modify
+! name - name of property to modify
+! value - value to set property to
+! OUTPUTS
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+!
+! Elena Pourmal
+! October 9, 2002
+! SOURCE
+ SUBROUTINE h5pset_double(prp_id, name, value, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ DOUBLE PRECISION, INTENT(IN), TARGET :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(value)
+
+ name_len = LEN(name)
+ hdferr = h5pget_c(prp_id, name, name_len, f_ptr)
+
+ END SUBROUTINE h5pset_double
+
+!
+!****s* H5P (F03)/h5pset_char
+!
+! NAME
+! h5pset_char
+!
+! PURPOSE
+! Sets a property list value
+!
+! INPUTS
+! prp_id - iproperty list identifier to modify
+! name - name of property to modify
+! value - value to set property to
+! OUTPUTS
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! OPTIONAL PARAMETERS
+! NONE
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+! SOURCE
+ SUBROUTINE h5pset_char(prp_id, name, value, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ CHARACTER(LEN=*), INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+
+ INTEGER :: i
+ CHARACTER(LEN=1), ALLOCATABLE, DIMENSION(:), TARGET :: chr
+ INTEGER :: chr_len
+
+ TYPE(C_PTR) :: f_ptr
+ ! To resolve Issue #1 outlined in the preamble of this file we
+ ! need to pack the character string into an array.
+
+ chr_len = LEN(value)
+ ALLOCATE(chr(1:chr_len), STAT=hdferr)
+ IF (hdferr .NE. 0) THEN
+ hdferr = -1
+ RETURN
+ ENDIF
+
+ DO i = 1, chr_len
+ chr(i) = value(i:i)
+ ENDDO
+
+ f_ptr = C_LOC(chr)
+
+ name_len = LEN(name)
+ hdferr = h5pget_c(prp_id, name, name_len, f_ptr)
+
+ DEALLOCATE(chr)
+
+ END SUBROUTINE h5pset_char
+
+!
+!****s* H5P (F03)/h5pget_integer
+!
+! NAME
+! h5pget_integer
+!
+! PURPOSE
+! Gets a property list value
+!
+! INPUTS
+! prp_id - iproperty list identifier to modify
+! name - name of property to modify
+! OUTPUTS
+! value - value of property
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+! SOURCE
+ SUBROUTINE h5pget_integer(prp_id, name, value, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ INTEGER, INTENT(OUT), TARGET :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(value)
+
+ name_len = LEN(name)
+ hdferr = h5pget_c(prp_id, name, name_len, f_ptr)
+
+ END SUBROUTINE h5pget_integer
+
+!
+!****s* H5P (F03)/h5pget_real
+!
+! NAME
+! h5pget_real
+!
+! PURPOSE
+! Gets a property list value
+!
+! INPUTS
+! prp_id - iproperty list identifier to modify
+! name - name of property to modify
+! OUTPUTS
+! value - value of property
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+! SOURCE
+ SUBROUTINE h5pget_real(prp_id, name, value, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ REAL, INTENT(OUT), TARGET :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(value)
+
+ name_len = LEN(name)
+ hdferr = h5pget_c(prp_id, name, name_len, f_ptr)
+ END SUBROUTINE h5pget_real
+
+!
+!****s* H5P (F03)/ h5pget_double
+!
+! NAME
+! h5pget_double
+!
+! PURPOSE
+! Gets a property list value
+!
+! INPUTS
+! prp_id - iproperty list identifier to modify
+! name - name of property to modify
+! OUTPUTS
+! value - value of property
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! SOURCE
+ SUBROUTINE h5pget_double(prp_id, name, value, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ DOUBLE PRECISION, INTENT(OUT), TARGET :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(value)
+
+ name_len = LEN(name)
+ hdferr = h5pget_c(prp_id, name, name_len, f_ptr)
+
+ END SUBROUTINE h5pget_double
+
+!
+!****s* H5P (F03)/h5pget_char
+!
+! NAME
+! h5pget_char
+!
+! PURPOSE
+! Gets a property list value
+!
+! INPUTS
+! prp_id - iproperty list identifier to modify
+! name - name of property to modify
+! OUTPUTS
+! value - value of property
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+!
+! Elena Pourmal
+! October 9, 2002
+! SOURCE
+ SUBROUTINE h5pget_char(prp_id, name, value, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ CHARACTER(LEN=*), INTENT(OUT) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+
+ INTEGER :: i
+ CHARACTER(LEN=1), ALLOCATABLE, DIMENSION(:), TARGET :: chr
+ INTEGER :: chr_len
+ TYPE(C_PTR) :: f_ptr
+
+ chr_len = LEN(value)
+ ALLOCATE(chr(1:chr_len), STAT=hdferr)
+ IF (hdferr .NE. 0) THEN
+ hdferr = -1
+ RETURN
+ ENDIF
+ f_ptr = C_LOC(chr)
+
+ name_len = LEN(name)
+ hdferr = h5pget_c(prp_id, name, name_len, f_ptr)
+
+ DO i = 1, chr_len
+ value(i:i) = chr(i)
+ ENDDO
+
+ DEALLOCATE(chr)
+
+ END SUBROUTINE h5pget_char
+
+ SUBROUTINE h5pset_ptr(prp_id, name, value, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ TYPE(C_PTR), INTENT(OUT) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+
+ name_len = LEN(name)
+ hdferr = h5pset_c(prp_id, name, name_len, value)
+
+ END SUBROUTINE h5pset_ptr
+
+ SUBROUTINE h5pget_ptr(prp_id, name, value, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ TYPE(C_PTR), INTENT(OUT) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+
+ name_len = LEN(name)
+ hdferr = h5pget_c(prp_id, name, name_len, value)
+
+ END SUBROUTINE h5pget_ptr
+
+
+!
+!****s* H5P (F03)/h5pregister_integer
+!
+! NAME
+! h5pregister_integer
+!
+! PURPOSE
+! Registers a permanent property with a property list class.
+!
+! INPUTS
+! class - property list class to register
+! permanent property within
+! name - name of property to register
+! size - size of property in bytes
+! value - default value for property in newly
+! created property lists
+! OUTPUTS
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! October 10, 2002
+!
+! SOURCE
+ SUBROUTINE h5pregister_integer(class, name, size, value, hdferr)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
+ INTEGER, INTENT(IN), TARGET :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(value)
+
+ name_len = LEN(name)
+ hdferr = h5pregister_c(class, name, name_len, size, f_ptr)
+
+ END SUBROUTINE h5pregister_integer
+
+!
+!****s* H5P (F03)/h5pregister_real
+!
+! NAME
+! h5pregister_real
+!
+! PURPOSE
+! Registers a permanent property with a property list class.
+!
+! INPUTS
+! class - property list class to register
+! permanent property within
+! name - name of property to register
+! size - size of property in bytes
+! value - default value for property in newly
+! created property lists
+! OUTPUTS
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! October 10, 2002
+! SOURCE
+ SUBROUTINE h5pregister_real(class, name, size, value, hdferr)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register
+ INTEGER(SIZE_T), INTENT(IN) :: size ! size of the property value
+ REAL, INTENT(IN), TARGET :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(value)
+
+ name_len = LEN(name)
+ hdferr = h5pregister_c(class, name, name_len, size, f_ptr)
+
+ END SUBROUTINE h5pregister_real
+
+!
+!****s* H5P (F03)/h5pregister_double
+!
+! NAME
+! h5pregister_double
+!
+! PURPOSE
+! Registers a permanent property with a property list class.
+!
+! INPUTS
+! class - property list class to register
+! permanent property within
+! name - name of property to register
+! size - size of property in bytes
+! value - default value for property in newly
+! created property lists
+! OUTPUTS
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+!
+! Elena Pourmal
+! October 10, 2002
+! SOURCE
+ SUBROUTINE h5pregister_double(class, name, size, value, hdferr)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register
+ INTEGER(SIZE_T), INTENT(IN) :: size ! size of the property value
+ DOUBLE PRECISION, INTENT(IN), TARGET :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(value)
+
+ name_len = LEN(name)
+ hdferr = h5pregister_c(class, name, name_len, size, f_ptr)
+ END SUBROUTINE h5pregister_double
+
+!
+!****s* H5P (F03)/h5pregister_char
+!
+! NAME
+! h5pregister_char
+!
+! PURPOSE
+! Registers a permanent property with a property list class.
+!
+! INPUTS
+! class - property list class to register
+! permanent property within
+! name - name of property to register
+! size - size of property in bytes
+! value - default value for property in newly
+! created property lists
+! OUTPUTS
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! October 10, 2002
+!
+! SOURCE
+ SUBROUTINE h5pregister_char(class, name, size, value, hdferr)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register
+ INTEGER(SIZE_T), INTENT(IN) :: size ! size of the property value
+ CHARACTER(LEN=*), INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+
+ INTEGER :: i
+ CHARACTER(LEN=1), ALLOCATABLE, DIMENSION(:), TARGET :: chr
+ INTEGER :: chr_len
+
+ TYPE(C_PTR) :: f_ptr
+ ! To resolve Issue #1 outlined in the preamble of this file we
+ ! need to pack the character string into an array.
+
+ chr_len = LEN(value)
+ ALLOCATE(chr(1:chr_len), STAT=hdferr)
+ IF (hdferr .NE. 0) THEN
+ hdferr = -1
+ RETURN
+ ENDIF
+
+ DO i = 1, chr_len
+ chr(i) = value(i:i)
+ ENDDO
+
+ f_ptr = C_LOC(chr)
+
+ name_len = LEN(name)
+ hdferr = h5pregister_c(class, name, name_len, size, f_ptr)
+ DEALLOCATE(chr)
+ END SUBROUTINE h5pregister_char
+
+!
+!****s* H5P (F03)/h5pregister_ptr
+!
+! NAME
+! h5pregister_ptr
+!
+! PURPOSE
+! Registers a permanent property with a property list class.
+!
+! INPUTS
+! class - property list class to register
+! permanent property within
+! name - name of property to register
+! size - size of property in bytes
+! value - default value for property in newly
+! created property lists
+! OUTPUTS
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! M. Scot Breitenfeld
+! June 24, 2008
+! SOURCE
+ SUBROUTINE h5pregister_ptr(class, name, size, value, hdferr)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
+ TYPE(C_PTR), INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+
+ name_len = LEN(name)
+ hdferr = h5pregister_c(class, name, name_len, size, value)
+ END SUBROUTINE h5pregister_ptr
+
+!
+!****s* H5P (F03)/h5pinsert_integer
+!
+! NAME
+! h5pinsert_integer
+!
+! PURPOSE
+! Registers a temporary property with a property list class.
+!
+! INPUTS
+! plist - property list identifier
+! name - name of property to insert
+! size - size of property in bytes
+! value - initial value for the property
+! OUTPUTS
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! October 10, 2002
+!
+! SOURCE
+ SUBROUTINE h5pinsert_integer(plist, name, size, value, hdferr)
+ USE iso_c_binding
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to insert
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
+ INTEGER, INTENT(IN), TARGET :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+ TYPE(c_ptr) :: f_ptr
+
+ f_ptr = c_loc(value)
+
+ name_len = LEN(name)
+ hdferr = h5pinsert_c(plist, name , name_len, size, f_ptr)
+ END SUBROUTINE h5pinsert_integer
+
+!
+!****s* H5P (F03)/h5pinsert_real
+!
+! NAME
+! h5pinsert_real
+!
+! PURPOSE
+! Registers a temporary property with a property list class.
+!
+! INPUTS
+! plist - property list identifier
+! permanent property within
+! name - name of property to insert
+! size - size of property in bytes
+! value - initial value for the property
+! OUTPUTS
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! October 10, 2002
+! SOURCE
+ SUBROUTINE h5pinsert_real(plist, name, size, value, hdferr)
+ USE iso_c_binding
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to insert
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
+ REAL, INTENT(IN), TARGET :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+ TYPE(c_ptr) :: f_ptr
+
+ f_ptr = c_loc(value)
+
+ name_len = LEN(name)
+ hdferr = h5pinsert_c(plist, name , name_len, size, f_ptr)
+
+ END SUBROUTINE h5pinsert_real
+
+!
+!****s* H5P (F03)/h5pinsert_double
+!
+! NAME
+! h5pinsert_double
+!
+! PURPOSE
+! Registers a temporary property with a property list class.
+!
+! INPUTS
+! plist - property list identifier
+! permanent property within
+! name - name of property to insert
+! size - size of property in bytes
+! value - initial value for the property
+! OUTPUTS
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! OPTIONAL PARAMETERS
+! NONE
+!
+! AUTHOR
+!
+! Elena Pourmal
+! October 10, 2002
+! SOURCE
+ SUBROUTINE h5pinsert_double(plist, name, size, value, hdferr)
+ USE iso_c_binding
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to insert
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
+ DOUBLE PRECISION, INTENT(IN), TARGET :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+ TYPE(c_ptr) :: f_ptr
+
+ f_ptr = c_loc(value)
+
+ name_len = LEN(name)
+ hdferr = h5pinsert_c(plist, name , name_len, size, f_ptr)
+
+ END SUBROUTINE h5pinsert_double
+
+!
+!****s* H5P (F03)/h5pinsert_char
+!
+! NAME
+! h5pinsert_char
+!
+! PURPOSE
+! Registers a temporary property with a property list class.
+!
+! INPUTS
+! plist - property list identifier
+! permanent property within
+! name - name of property to insert
+! size - size of property in bytes
+! value - initial value for the property
+! OUTPUTS
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! October 10, 2002
+! SOURCE
+ SUBROUTINE h5pinsert_char(plist, name, size, value, hdferr)
+ USE iso_c_binding
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to insert
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Size of property value
+ CHARACTER(LEN=*), INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+
+ INTEGER :: i
+ CHARACTER(LEN=1), ALLOCATABLE, DIMENSION(:), TARGET :: chr
+ INTEGER :: chr_len
+
+ TYPE(c_ptr) :: f_ptr
+ ! To resolve Issue #1 outlined in the preamble of this file we
+ ! need to pack the character string into an array.
+
+ chr_len = LEN(value)
+ ALLOCATE(chr(1:chr_len), STAT=hdferr)
+ IF (hdferr .NE. 0) THEN
+ hdferr = -1
+ RETURN
+ ENDIF
+
+ DO i = 1, chr_len
+ chr(i) = value(i:i)
+ ENDDO
+
+ f_ptr = C_LOC(chr)
+
+ name_len = LEN(name)
+ hdferr = h5pinsert_c(plist, name , name_len, size, f_ptr)
+
+ DEALLOCATE(chr)
+
+ END SUBROUTINE h5pinsert_char
+
+!
+!****s* H5P (F03)/h5pinsert_ptr
+!
+! NAME
+! h5pinsert_ptr
+!
+! PURPOSE
+! Registers a temporary property with a property list class.
+!
+! INPUTS
+! plist - property list identifier
+! permanent property within
+! name - name of property to insert
+! size - size of property in bytes
+! value - initial value for the property
+! OUTPUTS
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! M. Scot Breitenfeld
+! June 24, 2008
+! SOURCE
+ SUBROUTINE h5pinsert_ptr(plist, name, size, value, hdferr)
+ USE iso_c_binding
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to insert
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Size of property value
+ TYPE(c_ptr), INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+
+ name_len = LEN(name)
+ hdferr = h5pinsert_c(plist, name , name_len, size, value)
+ END SUBROUTINE h5pinsert_ptr
+
+!
+!****s* H5P (F03)/h5pcreate_class_f
+!
+! NAME
+! h5pcreate_class_f
+!
+! PURPOSE
+! Create a new property list class
+!
+! INPUTS
+! parent - Property list identifier of the parent class
+! Possible values include:
+! H5P_ROOT_F
+! H5P_FILE_CREATE_F
+! H5P_FILE_ACCESS_F
+! H5P_DATASET_CREATE_F
+! H5P_DATASET_XFER_F
+! H5P_FILE_MOUNT_F
+! name - name of the class we are creating
+! OUTPUTS
+! class - porperty list class identifier
+! hdferr: - error code
+!
+! Success: 0
+! Failure: -1
+! OPTIONAL PARAMETERS
+! H5P_cls_create_func_t (create) - Callback routine called when a property list is created
+! create_data - User pointer to any class creation information needed
+! H5P_cls_copy_func_t (copy) - Callback routine called when a property list is copied
+! copy_data - User pointer to any class copy information needed
+! H5P_cls_close_func_t (close) - Callback routine called when a property list is being closed
+! close_data - User pointer to any class close information needed
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! HISTORY
+! Added callback arguments
+! M. Scot Breitenfeld, July 3, 2008
+!
+! SOURCE
+ SUBROUTINE h5pcreate_class_f(parent, name, class, hdferr, create, create_data, copy, copy_data, close, close_data)
+ USE iso_c_binding
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: parent ! parent property list class identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! name of property tocreate
+ INTEGER(HID_T), INTENT(OUT) :: class ! property list class identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR), OPTIONAL :: create_data, copy_data, close_data
+ TYPE(C_FUNPTR), OPTIONAL :: create, copy, close
+!*****
+ INTEGER :: name_len
+ TYPE(C_PTR) :: create_data_default, copy_data_default, close_data_default
+ TYPE(C_FUNPTR) :: create_default, copy_default, close_default
+ INTERFACE
+ INTEGER FUNCTION h5pcreate_class_c(parent, name, name_len, class, &
+ create, create_data, &
+ copy, copy_data, &
+ close, close_data)
+
+ USE iso_c_binding
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDCLOSEF90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PCREATE_CLASS_C'::h5pcreate_class_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: parent
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ INTEGER(HID_T), INTENT(OUT) :: class
+ TYPE(C_PTR), VALUE :: create_data, copy_data, close_data
+ TYPE(C_FUNPTR), VALUE :: create, copy, close
+ END FUNCTION h5pcreate_class_c
+ END INTERFACE
+ name_len = LEN(name)
+
+ create_default = c_null_funptr !fix:scot
+ create_data_default = c_null_ptr
+ copy_default = c_null_funptr !fix:scot
+ copy_data_default = c_null_ptr
+ close_default = c_null_funptr !fix:scot
+ close_data_default = c_null_ptr
+
+ IF(PRESENT(create)) create_default = create
+ IF(PRESENT(create_data)) create_data_default = create_data
+ IF(PRESENT(copy)) copy_default = copy
+ IF(PRESENT(copy_data)) copy_data_default = copy_data
+ IF(PRESENT(close)) close_default = close
+ IF(PRESENT(close_data)) close_data_default = close_data
+
+ hdferr = h5pcreate_class_c(parent, name , name_len, class, &
+ create_default, create_data_default, &
+ copy_default, copy_data_default, &
+ close_default, close_data_default)
+
+
+ END SUBROUTINE h5pcreate_class_f
+
+END MODULE H5P_PROVISIONAL
+
diff --git a/fortran/src/H5Pff_F90.f90 b/fortran/src/H5Pff_F90.f90
new file mode 100644
index 0000000..a50c35f
--- /dev/null
+++ b/fortran/src/H5Pff_F90.f90
@@ -0,0 +1,1203 @@
+!****h* ROBODoc/H5P (_F90)
+!
+! NAME
+! H5P_PROVISIONAL
+!
+! PURPOSE
+!
+! This file contains Fortran 90 interfaces for H5P functions. It contains
+! the same functions as H5Pff_F03.f90 but excludes the Fortran 2003 functions
+! and the interface listings. This file will be compiled instead of H5Pff_F03.f90
+! if Fortran 2003 functions are not enabled.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! NOTES
+! *** IMPORTANT ***
+! If you add a new H5P function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
+!*****
+
+MODULE H5P_PROVISIONAL
+
+ USE H5GLOBAL
+
+ INTERFACE h5pset_fill_value_f
+ MODULE PROCEDURE h5pset_fill_value_integer
+ MODULE PROCEDURE h5pset_fill_value_real
+ MODULE PROCEDURE h5pset_fill_value_char
+ END INTERFACE
+
+ INTERFACE h5pget_fill_value_f
+ MODULE PROCEDURE h5pget_fill_value_integer
+ MODULE PROCEDURE h5pget_fill_value_real
+ MODULE PROCEDURE h5pget_fill_value_char
+ END INTERFACE
+
+ INTERFACE h5pset_f
+ MODULE PROCEDURE h5pset_integer
+ MODULE PROCEDURE h5pset_real
+ MODULE PROCEDURE h5pset_char
+ END INTERFACE
+
+ INTERFACE h5pget_f
+ MODULE PROCEDURE h5pget_integer
+ MODULE PROCEDURE h5pget_real
+ MODULE PROCEDURE h5pget_char
+ END INTERFACE
+
+ INTERFACE h5pregister_f
+ MODULE PROCEDURE h5pregister_integer
+ MODULE PROCEDURE h5pregister_real
+ MODULE PROCEDURE h5pregister_char
+ END INTERFACE
+
+ INTERFACE h5pinsert_f
+ MODULE PROCEDURE h5pinsert_integer
+ MODULE PROCEDURE h5pinsert_real
+ MODULE PROCEDURE h5pinsert_char
+ END INTERFACE
+
+CONTAINS
+!
+!****s* H5P (F90)/h5pset(get)fill_value_f
+!
+! NAME
+! h5pset(get)fill_value_f
+!
+! PURPOSE
+! Sets(gets) fill value for a dataset creation property list
+!
+! INPUTS
+! prp_id - dataset creation property list identifier
+! type_id - datatype identifier for fill value
+! fillvalue - fill value
+! OUTPUTS
+! type_id - datatype identifier for fill value
+! fillvalue - fill value
+! hdferr - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! NOTES
+! h5pset(get)fill_value_f function is overloaded to support
+! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes.
+!
+! SOURCE
+ SUBROUTINE h5pset_fill_value_integer(prp_id, type_id, fillvalue, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ INTEGER, INTENT(IN) :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_fill_value_integer_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FILL_VALUE_INTEGER_C'::h5pset_fill_value_integer_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(IN) :: fillvalue
+ END FUNCTION h5pset_fill_value_integer_c
+ END INTERFACE
+
+ hdferr = h5pset_fill_value_integer_c(prp_id, type_id, fillvalue)
+ END SUBROUTINE h5pset_fill_value_integer
+
+
+ SUBROUTINE h5pget_fill_value_integer(prp_id, type_id, fillvalue, &
+ hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ INTEGER, INTENT(IN) :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_fill_value_integer_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FILL_VALUE_INTEGER_C'::h5pget_fill_value_integer_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER :: fillvalue
+ END FUNCTION h5pget_fill_value_integer_c
+ END INTERFACE
+
+ hdferr = h5pget_fill_value_integer_c(prp_id, type_id, fillvalue)
+ END SUBROUTINE h5pget_fill_value_integer
+
+
+ SUBROUTINE h5pset_fill_value_real(prp_id, type_id, fillvalue, &
+ hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ REAL, INTENT(IN) :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_fill_value_real_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FILL_VALUE_REAL_C'::h5pset_fill_value_real_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ REAL, INTENT(IN) :: fillvalue
+ END FUNCTION h5pset_fill_value_real_c
+ END INTERFACE
+
+ hdferr = h5pset_fill_value_real_c(prp_id, type_id, fillvalue)
+ END SUBROUTINE h5pset_fill_value_real
+
+
+ SUBROUTINE h5pget_fill_value_real(prp_id, type_id, fillvalue, &
+ hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ REAL, INTENT(IN) :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_fill_value_real_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FILL_VALUE_REAL_C'::h5pget_fill_value_real_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ REAL :: fillvalue
+ END FUNCTION h5pget_fill_value_real_c
+ END INTERFACE
+
+ hdferr = h5pget_fill_value_real_c(prp_id, type_id, fillvalue)
+ END SUBROUTINE h5pget_fill_value_real
+
+
+ SUBROUTINE h5pset_fill_value_double(prp_id, type_id, fillvalue, &
+ hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ DOUBLE PRECISION, INTENT(IN) :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_fill_value_double_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FILL_VALUE_DOUBLE_C'::h5pset_fill_value_double_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ DOUBLE PRECISION, INTENT(IN) :: fillvalue
+ END FUNCTION h5pset_fill_value_double_c
+ END INTERFACE
+
+ hdferr = h5pset_fill_value_double_c(prp_id, type_id, fillvalue)
+ END SUBROUTINE h5pset_fill_value_double
+
+
+ SUBROUTINE h5pget_fill_value_double(prp_id, type_id, fillvalue, &
+ hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ DOUBLE PRECISION, INTENT(IN) :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_fill_value_double_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FILL_VALUE_DOUBLE_C'::h5pget_fill_value_double_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ DOUBLE PRECISION :: fillvalue
+ END FUNCTION h5pget_fill_value_double_c
+ END INTERFACE
+
+ hdferr = h5pget_fill_value_double_c(prp_id, type_id, fillvalue)
+ END SUBROUTINE h5pget_fill_value_double
+
+ SUBROUTINE h5pset_fill_value_char(prp_id, type_id, fillvalue, &
+ hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ CHARACTER, INTENT(IN) :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_fill_valuec_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FILL_VALUEC_C'::h5pset_fill_valuec_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: fillvalue
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ CHARACTER, INTENT(IN) :: fillvalue
+ END FUNCTION h5pset_fill_valuec_c
+ END INTERFACE
+
+ hdferr = h5pset_fill_valuec_c(prp_id, type_id, fillvalue)
+ END SUBROUTINE h5pset_fill_value_char
+
+ SUBROUTINE h5pget_fill_value_char(prp_id, type_id, fillvalue, &
+ hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ CHARACTER, INTENT(IN) :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_fill_valuec_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FILL_VALUEC_C'::h5pget_fill_valuec_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: fillvalue
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ CHARACTER :: fillvalue
+ END FUNCTION h5pget_fill_valuec_c
+ END INTERFACE
+
+ hdferr = h5pget_fill_valuec_c(prp_id, type_id, fillvalue)
+ END SUBROUTINE h5pget_fill_value_char
+!
+!****s* H5P (F90)/h5pset_integer
+!
+! NAME
+! h5pset_integer
+!
+! PURPOSE
+! Sets a property list value
+!
+! INPUTS
+! prp_id - iproperty list identifier to modify
+! name - name of property to modify
+! value - value to set property to
+! OUTPUTS
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! SOURCE
+ SUBROUTINE h5pset_integer(prp_id, name, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ INTEGER, INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_integer_c(prp_id, name, name_len, value)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_INTEGER_C'::h5pset_integer_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ INTEGER, INTENT(IN) :: value
+ END FUNCTION h5pset_integer_c
+ END INTERFACE
+
+ name_len = LEN(name)
+ hdferr = h5pset_integer_c(prp_id, name , name_len, value)
+ END SUBROUTINE h5pset_integer
+
+!
+!****s* H5P (F90)/h5pset_real
+!
+! NAME
+! h5pset_real
+!
+! PURPOSE
+! Sets a property list value
+!
+! INPUTS
+! prp_id - iproperty list identifier to modify
+! name - name of property to modify
+! value - value to set property to
+! OUTPUTS
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! SOURCE
+ SUBROUTINE h5pset_real(prp_id, name, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ REAL, INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_real_c(prp_id, name, name_len, value)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_REAL_C'::h5pset_real_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ REAL, INTENT(IN) :: value
+ END FUNCTION h5pset_real_c
+ END INTERFACE
+
+ name_len = LEN(name)
+ hdferr = h5pset_real_c(prp_id, name , name_len, value)
+ END SUBROUTINE h5pset_real
+
+!
+!****s* H5P (F90)/h5pset_double
+!
+! NAME
+! h5pset_double
+!
+! PURPOSE
+! Sets a property list value
+!
+! INPUTS
+! prp_id - iproperty list identifier to modify
+! name - name of property to modify
+! value - value to set property to
+! OUTPUTS
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+! SOURCE
+ SUBROUTINE h5pset_double(prp_id, name, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ DOUBLE PRECISION, INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_double_c(prp_id, name, name_len, value)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_DOUBLE_C'::h5pset_double_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ DOUBLE PRECISION, INTENT(IN) :: value
+ END FUNCTION h5pset_double_c
+ END INTERFACE
+
+ name_len = LEN(name)
+ hdferr = h5pset_double_c(prp_id, name , name_len, value)
+ END SUBROUTINE h5pset_double
+
+!****s* H5P (F90)/h5pset_char
+!
+! NAME
+! h5pset_char
+!
+! PURPOSE
+! Sets a property list value
+!
+! INPUTS
+! prp_id - iproperty list identifier to modify
+! name - name of property to modify
+! value - value to set property to
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+! OPTIONAL PARAMETERS
+! NONE
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+! SOURCE
+ SUBROUTINE h5pset_char(prp_id, name, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ CHARACTER(LEN=*), INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+ INTEGER :: value_len
+
+ INTERFACE
+ INTEGER FUNCTION h5psetc_c(prp_id, name, name_len, value, value_len)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSETC_C'::h5psetc_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ !DEC$ATTRIBUTES reference :: value
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ CHARACTER(LEN=*), INTENT(IN) :: value
+ INTEGER, INTENT(IN) :: value_len
+ END FUNCTION h5psetc_c
+ END INTERFACE
+
+ name_len = LEN(name)
+ value_len = LEN(value)
+ hdferr = h5psetc_c(prp_id, name , name_len, value, value_len)
+ END SUBROUTINE h5pset_char
+
+!****s* H5P (F90)/h5pget_integer
+!
+! NAME
+! h5pget_integer
+!
+! PURPOSE
+! Gets a property list value
+!
+! INPUTS
+! prp_id - iproperty list identifier to modify
+! name - name of property to modify
+! OUTPUTS
+! value - value of property
+! hdferr - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! SOURCE
+ SUBROUTINE h5pget_integer(prp_id, name, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ INTEGER, INTENT(OUT) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_integer_c(prp_id, name, name_len, value)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_INTEGER_C'::h5pget_integer_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ INTEGER, INTENT(OUT) :: value
+ END FUNCTION h5pget_integer_c
+ END INTERFACE
+
+ name_len = LEN(name)
+ hdferr = h5pget_integer_c(prp_id, name , name_len, value)
+ END SUBROUTINE h5pget_integer
+
+!
+!****s* H5P (F90)/h5pget_real
+!
+! NAME
+! h5pget_real
+!
+! PURPOSE
+! Gets a property list value
+!
+! INPUTS
+! prp_id - iproperty list identifier to modify
+! name - name of property to modify
+! OUTPUTS
+! value - value of property
+! hdferr - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+! SOURCE
+ SUBROUTINE h5pget_real(prp_id, name, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ REAL, INTENT(OUT) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_real_c(prp_id, name, name_len, value)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_REAL_C'::h5pget_real_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ REAL, INTENT(OUT) :: value
+ END FUNCTION h5pget_real_c
+ END INTERFACE
+
+ name_len = LEN(name)
+ hdferr = h5pget_real_c(prp_id, name , name_len, value)
+ END SUBROUTINE h5pget_real
+
+!****s* H5P (F90)/h5pget_double
+!
+! NAME
+! h5pget_double
+!
+! PURPOSE
+! Gets a property list value
+!
+! INPUTS
+! prp_id - iproperty list identifier to modify
+! name - name of property to modify
+! OUTPUTS
+! value - value of property
+! hdferr - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! SOURCE
+ SUBROUTINE h5pget_double(prp_id, name, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ DOUBLE PRECISION, INTENT(OUT) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_double_c(prp_id, name, name_len, value)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_DOUBLE_C'::h5pget_double_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ DOUBLE PRECISION, INTENT(OUT) :: value
+ END FUNCTION h5pget_double_c
+ END INTERFACE
+
+ name_len = LEN(name)
+ hdferr = h5pget_double_c(prp_id, name , name_len, value)
+ END SUBROUTINE h5pget_double
+
+!
+!****s* H5P (F90)/h5pget_char
+!
+! NAME
+! h5pget_char
+!
+! PURPOSE
+! Gets a property list value
+!
+! INPUTS
+! prp_id - iproperty list identifier to modify
+! name - name of property to modify
+! OUTPUTS
+! value - value of property
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! SOURCE
+ SUBROUTINE h5pget_char(prp_id, name, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ CHARACTER(LEN=*), INTENT(OUT) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+ INTEGER :: value_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pgetc_c(prp_id, name, name_len, value, value_len)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGETC_C'::h5pgetc_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ !DEC$ATTRIBUTES reference :: value
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ CHARACTER(LEN=*), INTENT(OUT) :: value
+ INTEGER, INTENT(IN) :: value_len
+ END FUNCTION h5pgetc_c
+ END INTERFACE
+
+ name_len = LEN(name)
+ value_len = LEN(value)
+ hdferr = h5pgetc_c(prp_id, name , name_len, value, value_len)
+ END SUBROUTINE h5pget_char
+
+!
+!****s* H5P (F90)/h5pregister_integer
+!
+! NAME
+! h5pregister_integer
+!
+! PURPOSE
+! Registers a permanent property with a property list class.
+!
+! INPUTS
+! class - property list class to register
+! permanent property within
+! name - name of property to register
+! size - size of property in bytes
+! value - default value for property in newly
+! created property lists
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 10, 2002
+!
+! SOURCE
+ SUBROUTINE h5pregister_integer(class, name, size, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
+ INTEGER, INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pregister_integer_c(class, name, name_len, size, value)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PREGISTER_INTEGER_C'::h5pregister_integer_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: class
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ INTEGER, INTENT(IN) :: value
+ END FUNCTION h5pregister_integer_c
+ END INTERFACE
+
+ name_len = LEN(name)
+ hdferr = h5pregister_integer_c(class, name , name_len, size, value)
+ END SUBROUTINE h5pregister_integer
+
+!****s* H5P (F90)/h5pregister_real
+!
+! NAME
+!
+! h5pregister_real
+!
+! PURPOSE Registers a permanent property with a property list class.
+!
+! INPUTS
+! class - property list class to register
+! permanent property within
+! name - name of property to register
+! size - size of property in bytes
+! value - default value for property in newly
+! created property lists
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 10, 2002
+! SOURCE
+ SUBROUTINE h5pregister_real(class, name, size, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register
+ INTEGER(SIZE_T), INTENT(IN) :: size ! size of the property value
+ REAL, INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pregister_real_c(class, name, name_len, size, value)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PREGISTER_REAL_C'::h5pregister_real_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: class
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ REAL, INTENT(IN) :: value
+ END FUNCTION h5pregister_real_c
+ END INTERFACE
+
+ name_len = LEN(name)
+ hdferr = h5pregister_real_c(class, name , name_len, size, value)
+ END SUBROUTINE h5pregister_real
+
+!
+!****s* H5P (F90)/h5pregister_double
+!
+! NAME
+! h5pregister_double
+!
+! PURPOSE
+! Registers a permanent property with a property list class.
+!
+! INPUTS
+! class - property list class to register
+! permanent property within
+! name - name of property to register
+! size - size of property in bytes
+! value - default value for property in newly
+! created property lists
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! October 10, 2002
+!
+! SOURCE
+ SUBROUTINE h5pregister_double(class, name, size, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
+ DOUBLE PRECISION, INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pregister_double_c(class, name, name_len, size, value)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PREGISTER_DOUBLE_C'::h5pregister_double_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: class
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ DOUBLE PRECISION, INTENT(IN) :: value
+ END FUNCTION h5pregister_double_c
+ END INTERFACE
+
+ name_len = LEN(name)
+ hdferr = h5pregister_double_c(class, name , name_len, size, value)
+ END SUBROUTINE h5pregister_double
+
+!
+!****s* H5P (F90)/h5pregister_char
+!
+! NAME
+! h5pregister_char
+!
+! PURPOSE
+! Registers a permanent property with a property list class.
+!
+! INPUTS
+! class - property list class to register
+! permanent property within
+! name - name of property to register
+! size - size of property in bytes
+! value - default value for property in newly
+! created property lists
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! October 10, 2002
+! SOURCE
+ SUBROUTINE h5pregister_char(class, name, size, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register
+ INTEGER(SIZE_T), INTENT(IN) :: size ! size of the property value
+ CHARACTER(LEN=*), INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+ INTEGER :: value_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pregisterc_c(class, name, name_len, size, value, &
+ value_len)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PREGISTERC_C'::h5pregisterc_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ !DEC$ATTRIBUTES reference :: value
+ INTEGER(HID_T), INTENT(IN) :: class
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ CHARACTER(LEN=*), INTENT(IN) :: value
+ INTEGER, INTENT(IN) :: value_len
+ END FUNCTION h5pregisterc_c
+ END INTERFACE
+
+ name_len = LEN(name)
+ value_len = LEN(value)
+ hdferr = h5pregisterc_c(class, name , name_len, size, value, value_len)
+ END SUBROUTINE h5pregister_char
+!
+!****s* H5P (F90)/h5pinsert_integer
+!
+! NAME
+! h5pinsert_integer
+!
+! PURPOSE
+! Registers a temporary property with a property list class.
+!
+! INPUTS
+! plist - property list identifier
+! name - name of property to insert
+! size - size of property in bytes
+! value - initial value for the property
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! October 10, 2002
+! SOURCE
+ SUBROUTINE h5pinsert_integer(plist, name, size, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to insert
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
+ INTEGER, INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pinsert_integer_c(plist, name, name_len, size, value)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PINSERT_INTEGER_C'::h5pinsert_integer_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: plist
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ INTEGER, INTENT(IN) :: value
+ END FUNCTION h5pinsert_integer_c
+ END INTERFACE
+
+ name_len = LEN(name)
+ hdferr = h5pinsert_integer_c(plist, name , name_len, size, value)
+ END SUBROUTINE h5pinsert_integer
+
+!
+!****s* H5P (F90)/h5pinsert_real
+!
+! NAME
+! h5pinsert_real
+!
+! PURPOSE
+! Registers a temporary property with a property list class.
+!
+! INPUTS
+! plist - property list identifier
+! permanent property within
+! name - name of property to insert
+! size - size of property in bytes
+! value - initial value for the property
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! October 10, 2002
+! SOURCE
+ SUBROUTINE h5pinsert_real(plist, name, size, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to insert
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
+ REAL, INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pinsert_real_c(plist, name, name_len, size, value)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PINSERT_REAL_C'::h5pinsert_real_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: plist
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ REAL, INTENT(IN) :: value
+ END FUNCTION h5pinsert_real_c
+ END INTERFACE
+
+ name_len = LEN(name)
+ hdferr = h5pinsert_real_c(plist, name , name_len, size, value)
+ END SUBROUTINE h5pinsert_real
+
+!****s* H5P (F90)/h5pinsert_double
+!
+! NAME
+!
+! h5pinsert_double
+!
+! PURPOSE
+! Registers a temporary property with a property list class.
+!
+! INPUTS
+! plist - property list identifier
+! permanent property within
+! name - name of property to insert
+! size - size of property in bytes
+! value - initial value for the property
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! October 10, 2002
+! SOURCE
+ SUBROUTINE h5pinsert_double(plist, name, size, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to insert
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
+ DOUBLE PRECISION, INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pinsert_double_c(plist, name, name_len, size, value)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PINSERT_DOUBLE_C'::h5pinsert_double_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: plist
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ DOUBLE PRECISION, INTENT(IN) :: value
+ END FUNCTION h5pinsert_double_c
+ END INTERFACE
+
+ name_len = LEN(name)
+ hdferr = h5pinsert_double_c(plist, name , name_len, size, value)
+ END SUBROUTINE h5pinsert_double
+
+!
+!****s* H5P (F90)/h5pinsert_char
+!
+! NAME
+! h5pinsert_char
+!
+! PURPOSE
+! Registers a temporary property with a property list class.
+!
+! INPUTS
+! plist - property list identifier
+! permanent property within
+! name - name of property to insert
+! size - size of property in bytes
+! value - initial value for the property
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! October 10, 2002
+! SOURCE
+SUBROUTINE h5pinsert_char(plist, name, size, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to insert
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Size of property value
+ CHARACTER(LEN=*), INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+ INTEGER :: value_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pinsertc_c(plist, name, name_len, size, value, value_len)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PINSERTC_C'::h5pinsertc_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ !DEC$ATTRIBUTES reference :: value
+ INTEGER(HID_T), INTENT(IN) :: plist
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ CHARACTER(LEN=*), INTENT(IN) :: value
+ INTEGER, INTENT(IN) :: value_len
+ END FUNCTION h5pinsertc_c
+ END INTERFACE
+
+ name_len = LEN(name)
+ value_len = LEN(value)
+ hdferr = h5pinsertc_c(plist, name , name_len, size, value, value_len)
+ END SUBROUTINE h5pinsert_char
+
+!
+!****s* H5P (F90)/h5pcreate_class_f
+!
+! NAME
+! h5pcreate_class_f
+!
+! PURPOSE
+! Create a new property list class
+!
+! INPUTS
+! parent - Property list identifier of the parent class
+! Possible values include:
+! H5P_ROOT_F
+! H5P_FILE_CREATE_F
+! H5P_FILE_ACCESS_F
+! H5P_DATASET_CREATE_F
+! H5P_DATASET_XFER_F
+! H5P_FILE_MOUNT_F
+! name - name of the class we are creating
+! OUTPUTS
+! class - property list class identifier
+! hdferr - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! SOURCE
+ SUBROUTINE h5pcreate_class_f(parent, name, class, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: parent ! parent property list class
+ ! identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! name of property tocreate
+ INTEGER(HID_T), INTENT(OUT) :: class ! property list class identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pcreate_class_c(parent, name, name_len,&
+ class)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PCREATE_CLASS_C'::h5pcreate_class_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: parent
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ INTEGER(HID_T), INTENT(OUT) :: class
+ END FUNCTION h5pcreate_class_c
+ END INTERFACE
+
+ name_len = LEN(name)
+ hdferr = h5pcreate_class_c(parent, name, name_len, class)
+
+ END SUBROUTINE h5pcreate_class_f
+
+END MODULE H5P_PROVISIONAL
+
diff --git a/fortran/src/H5Rf.c b/fortran/src/H5Rf.c
index 0988918..86e0e61 100644
--- a/fortran/src/H5Rf.c
+++ b/fortran/src/H5Rf.c
@@ -1,4 +1,9 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+/****h* H5Rf/H5Rf
+ * PURPOSE
+ * This file contains C stubs for H5R Fortran APIs
+ *
+ * COPYRIGHT
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
@@ -11,26 +16,35 @@
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* This files contains C stubs for H5R Fortran APIs */
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ ******
+*/
#include "H5f90.h"
#include "H5Eprivate.h"
-/*----------------------------------------------------------------------------
- * Name: h5rcreate_object_c
- * Purpose: Call H5Rcreate to create a reference to an object
- * Inputs: loc_id - file or group identifier
- * name - name of the dataset
- * namelen - name length
- * Outputs: ref - reference to the object
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
- * Wednesday, December 1, 1999
- *---------------------------------------------------------------------------*/
+/****if* H5Rf/h5rcreate_object_c
+ * NAME
+ * h5rcreate_object_c
+ * PURPOSE
+ * Call H5Rcreate to create a reference to an object
+ * INPUTS
+ * loc_id - file or group identifier
+ * name - name of the dataset
+ * namelen - name length
+ * OUTPUTS
+ * ref - reference to the object
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
+ * Wednesday, December 1, 1999
+ * SOURCE
+*/
int_f
nh5rcreate_object_c(haddr_t_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen)
+/******/
{
char *c_name = NULL;
hobj_ref_t ref_c;
@@ -57,21 +71,31 @@ done:
return ret_value;
} /* nh5rcreate_object_c() */
-/*----------------------------------------------------------------------------
- * Name: h5rcreate_region_c
- * Purpose: Call H5Rcreate to create a reference to dataset region
+/****if* H5Rf/h5rcreate_region_c
+ * NAME
+ * h5rcreate_region_c
+ * PURPOSE
+ * Call H5Rcreate to create a reference to dataset region
* region
- * Inputs: loc_id - file or group identifier
+ * INPUTS
+ * loc_id - file or group identifier
* name - name of the dataset
* namelen - name length
* space_id - dataset space identifier
- * Outputs: ref - reference to the dataset region
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
- * Wednesday, December 1, 1999
- *---------------------------------------------------------------------------*/
+ * OUTPUTS
+ * ref - reference to the dataset region
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
+ * Wednesday, December 1, 1999
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5rcreate_region_c(int_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *space_id)
+/******/
{
char *c_name = NULL;
hdset_reg_ref_t ref_c;
@@ -98,18 +122,73 @@ done:
return ret_value;
} /* end nh5rcreate_region_c() */
-/*----------------------------------------------------------------------------
- * Name: h5rdereference_region_c
- * Purpose: Call H5Rdereference to dereference to dataset region
- * Inputs: dset_id - dataset identifier
+/****if* H5Rf/h5rcreate_ptr_c
+ * NAME
+ * h5rcreate_ptr_c
+ * PURPOSE
+ * Call H5Rcreate to create a reference to dataset region
+ * INPUTS
+ * loc_id - file or group identifier
+ * name - name of the dataset
+ * namelen - name length
+ * space_id - dataset space identifier
+ * OUTPUTS
+ * ref - reference to the dataset region
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * June 20, 2008
+ *
+ * SOURCE
+*/
+int_f
+nh5rcreate_ptr_c (void *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *ref_type, hid_t_f *space_id)
+/******/
+{
+ int ret_value = -1;
+ char *c_name;
+ size_t c_namelen;
+
+ /*
+ * Convert FORTRAN name to C name
+ */
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(name, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+ /*
+ * Call H5Rcreate function.
+ */
+ if(H5Rcreate(ref, (hid_t)*loc_id, c_name, (H5R_type_t)*ref_type, (hid_t)*space_id) >= 0)
+ ret_value = 0;
+
+ HDfree(c_name);
+ return ret_value;
+}
+
+/****if* H5Rf/h5rdereference_region_c
+ * NAME
+ * h5rdereference_region_c
+ * PURPOSE
+ * Call H5Rdereference to dereference to dataset region
+ * INPUTS
+ * dset_id - dataset identifier
* ref - reference to the dataset region
- * Outputs: obj_id - dereferenced dataset identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
- * Wednesday, December 1, 1999
- *---------------------------------------------------------------------------*/
+ * OUTPUTS
+ * obj_id - dereferenced dataset identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
+ * Wednesday, December 1, 1999
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5rdereference_region_c(hid_t_f *dset_id, int_f *ref, hid_t_f *obj_id)
+/******/
{
hdset_reg_ref_t ref_c;
hid_t c_obj_id;
@@ -131,18 +210,28 @@ done:
return ret_value;
} /* end nh5rdereference_region_c() */
-/*----------------------------------------------------------------------------
- * Name: h5rdereference_object_c
- * Purpose: Call H5Rdereference to dereference an object
- * Inputs: dset_id - dataset identifier
+/****if* H5Rf/h5rdereference_object_c
+ * NAME
+ * h5rdereference_object_c
+ * PURPOSE
+ * Call H5Rdereference to dereference an object
+ * INPUTS
+ * dset_id - dataset identifier
* ref - reference to an object
- * Outputs: obj_id - dereferenced object identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
- * Wednesday, December 1, 1999
- *---------------------------------------------------------------------------*/
+ * OUTPUTS
+ * obj_id - dereferenced object identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
+ * Wednesday, December 1, 1999
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5rdereference_object_c(hid_t_f *dset_id, haddr_t_f *ref, hid_t_f *obj_id)
+/******/
{
hid_t c_obj_id;
hobj_ref_t ref_c = (hobj_ref_t)*ref;
@@ -161,18 +250,66 @@ done:
return ret_value;
} /* end nh5rdereference_object_c() */
-/*----------------------------------------------------------------------------
- * Name: h5rget_region_region_object_c
- * Purpose: Call H5Rget_region to dereference dataspace region
- * Inputs: dset_id - dataset identifier
- * ref - reference to the dataset region
- * Outputs: space_id - dereferenced dataset dataspace identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
- * Wednesday, December 1, 1999
- *---------------------------------------------------------------------------*/
+/****if* H5Rf/h5rdereference_ptr_c
+ * NAME
+ * h5rdereference_ptr_c
+ * PURPOSE
+ * Call H5Rdereference
+ * INPUTS
+ * obj_id - Valid identifier for the file containing the
+ * referenced object or any object in that file.
+ * ref_typ - The reference type of ref.
+ * ref - Object reference
+ * OUTPUTS
+ * ref_obj_id - Identifier of referenced object
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * June 20, 2008
+ * HISTORY
+ *
+ * SOURCE
+*/
+int_f
+nh5rdereference_ptr_c (hid_t_f *obj_id, int_f *ref_type, void *ref, hid_t_f *ref_obj_id)
+/******/
+{
+ int ret_value = -1;
+ hid_t c_ref_obj_id;
+
+ /*
+ * Call H5Rdereference function.
+ */
+ c_ref_obj_id = H5Rdereference2((hid_t)*obj_id, H5P_DEFAULT, (H5R_type_t)*ref_type, ref);
+ if(c_ref_obj_id < 0) return ret_value;
+ *ref_obj_id = (hid_t_f)c_ref_obj_id;
+ ret_value = 0;
+ return ret_value;
+}
+
+/****if* H5Rf/h5rget_region_region_object_c
+ * NAME
+ * h5rget_region_region_object_c
+ * PURPOSE
+ * Call H5Rget_region to dereference dataspace region
+ * INPUTS
+ * dset_id - dataset identifier
+ * ref - reference to the dataset region
+ * OUTPUTS
+ * space_id - dereferenced dataset dataspace identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
+ * Wednesday, December 1, 1999
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5rget_region_region_c(hid_t_f *dset_id, int_f *ref, hid_t_f *space_id)
+/******/
{
hid_t c_space_id;
hdset_reg_ref_t ref_c;
@@ -194,19 +331,29 @@ done:
return ret_value;
} /* end nh5rget_region_region_c() */
-/*----------------------------------------------------------------------------
- * Name: h5rget_object_type_obj_c
- * Purpose: Call H5Rget_object_type to retrieve the type of the object reference points
+/****if* H5Rf/h5rget_object_type_obj_c
+ * NAME
+ * h5rget_object_type_obj_c
+ * PURPOSE
+ * Call H5Rget_object_type to retrieve the type of the object reference points
* to
- * Inputs: dset_id - dataset identifier
+ * INPUTS
+ * dset_id - dataset identifier
* ref - reference to the dataset region
- * Outputs: obj_type - type of dereferenced object
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
- * Wednesday, December 1, 1999
- *---------------------------------------------------------------------------*/
+ * OUTPUTS
+ * obj_type - type of dereferenced object
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
+ * Wednesday, December 1, 1999
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5rget_object_type_obj_c(hid_t_f *dset_id, haddr_t_f *ref, int_f *obj_type)
+/******/
{
H5O_type_t c_obj_type;
hobj_ref_t ref_c = (hobj_ref_t)*ref;
@@ -225,22 +372,32 @@ done:
return ret_value;
} /* end nh5rget_object_type_obj_c() */
-/*----------------------------------------------------------------------------
- * Name: h5rget_name_object_c
- * Purpose: Call H5Rget_name for an object
- * Inputs:
+/****if* H5Rf/h5rget_name_object_c
+ * NAME
+ * h5rget_name_object_c
+ * PURPOSE
+ * Call H5Rget_name for an object
+ * INPUTS
+ *
* loc_id - Identifier for the dataset containing the reference or for the group that dataset is in.
* ref - An object or dataset region reference.
*
- * Outputs: name - A name associated with the referenced object or dataset region.
+ * OUTPUTS
+ * name - A name associated with the referenced object or dataset region.
* size - The size of the name buffer.
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * March 31, 2008
- *---------------------------------------------------------------------------*/
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * March 31, 2008
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5rget_name_object_c(hid_t_f *loc_id, haddr_t_f *ref, _fcd name, size_t_f *name_len, size_t_f *size_default)
+/******/
{
hobj_ref_t ref_c = (hobj_ref_t)*ref;
ssize_t c_size;
@@ -273,22 +430,32 @@ done:
return ret_value;
} /* end nh5rget_name_object_c() */
-/*----------------------------------------------------------------------------
- * Name: h5rget_name_region_c
- * Purpose: Call H5Rget_name for a dataset region
- * Inputs:
+/****if* H5Rf/h5rget_name_region_c
+ * NAME
+ * h5rget_name_region_c
+ * PURPOSE
+ * Call H5Rget_name for a dataset region
+ * INPUTS
+ *
* loc_id - Identifier for the dataset containing the reference or for the group that dataset is in.
* ref - An object or dataset region reference.
*
- * Outputs: name - A name associated with the referenced object or dataset region.
+ * OUTPUTS
+ * name - A name associated with the referenced object or dataset region.
* size - The size of the name buffer.
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * March 31, 2008
- *---------------------------------------------------------------------------*/
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * March 31, 2008
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5rget_name_region_c(hid_t_f *loc_id, int_f *ref, _fcd name, size_t_f *name_len, size_t_f *size_default)
+/******/
{
hdset_reg_ref_t ref_c;
ssize_t c_size;
@@ -321,5 +488,108 @@ done:
if(c_buf)
HDfree(c_buf);
return ret_value;
-} /* end nh5rget_name_region_c() */
+}
+
+/****if* H5Rf/h5rget_name_ptr_c
+ * NAME
+ * h5rget_name_ptr_c
+ * PURPOSE
+ * Call H5Rget_name
+ * INPUTS
+ *
+ * loc_id - Identifier for the dataset containing the reference or for the group that dataset is in.
+ * ref_type - Type of reference.
+ * ref - An object or dataset region reference.
+ *
+ * OUTPUTS
+ * name - A name associated with the referenced object or dataset region.
+ * size - The size of the name buffer.
+ *
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * June 20, 2008
+ * HISTORY
+ *
+ * SOURCE
+*/
+int_f
+nh5rget_name_ptr_c (hid_t_f *loc_id, int_f *ref_type, void *ref, _fcd name, size_t_f *name_len, size_t_f *size_default)
+/******/
+{
+ int_f ret_value = -1;
+ ssize_t c_size;
+ size_t c_bufsize;
+ char *c_buf= NULL; /* Buffer to hold C string */
+
+ c_bufsize = (size_t)*name_len+1;
+ /*
+ * Allocate buffer to hold name of an attribute
+ */
+ if ((c_buf = HDmalloc(c_bufsize)) == NULL)
+ return ret_value;
+
+ /*
+ * Call H5Rget_name function.
+ */
+ if((c_size=H5Rget_name((hid_t)*loc_id, (H5R_type_t)*ref_type, ref, c_buf, c_bufsize)) < 0){
+ if(c_buf) HDfree(c_buf);
+ return ret_value;
+ }
+ /*
+ * Convert C name to FORTRAN and place it in the given buffer
+ */
+ HD5packFstring(c_buf, _fcdtocp(name), c_bufsize-1);
+
+ *size_default = (size_t_f)c_size;
+ ret_value = 0;
+ if(c_buf) HDfree(c_buf);
+
+ return ret_value;
+}
+
+/****if* H5Rf/h5rget_obj_type_c
+ * NAME
+ * h5rget_obj_type_c
+ * PURPOSE
+ * Call H5Rget_obj_type
+ * INPUTS
+ * loc_id - Identifier for the dataset containing the reference or
+ * for the group that dataset is in.
+ * ref_type - Type of reference to query.
+ * ref - Reference to query.
+ *
+ * OUTPUTS
+ * obj_type - Type of referenced object.
+ * H5G_UNKNOWN_F (-1)
+ * H5G_LINK_F 0
+ * H5G_GROUP_F 1
+ * H5G_DATASET_F 2
+ * H5G_TYPE_F 3
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * December 17, 2008
+ *
+ * SOURCE
+*/
+int_f
+nh5rget_obj_type_c (hid_t_f *loc_id, int_f *ref_type, void *ref, int_f *obj_type)
+/******/
+{
+ int_f ret_value = -1;
+ H5O_type_t obj_type_c;
+
+ /*
+ * Call H5Rget_obj_type function.
+ */
+ if((H5Rget_obj_type2((hid_t)*loc_id, (H5R_type_t)*ref_type, ref, &obj_type_c)) < 0)
+ return ret_value;
+
+ *obj_type = (int_f)obj_type_c;
+ ret_value = 0;
+ return ret_value;
+}
diff --git a/fortran/src/H5Rff.f90 b/fortran/src/H5Rff.f90
index 6c557e3..35a3ed6 100644
--- a/fortran/src/H5Rff.f90
+++ b/fortran/src/H5Rff.f90
@@ -1,3 +1,18 @@
+!****h* ROBODoc/H5R
+!
+! NAME
+! MODULE H5R
+!
+! FILE
+! fortran/src/H5Rff.f90
+!
+! PURPOSE
+! This file contains Fortran interfaces for H5R functions. It includes
+! all the functions that are independent on whether the Fortran 2003 functions
+! are enabled or disabled.
+!
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,565 +28,164 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! NOTES
+! *** IMPORTANT ***
+! If you add a new H5R function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
!
-! This file contains Fortran90 interfaces for H5R functions.
-!
- MODULE H5R
- USE H5GLOBAL
-
-! If you change the value of these parameters, do not forget to change corresponding
-! values in the H5f90.h file.
-! INTEGER, PARAMETER :: REF_OBJ_BUF_LEN = 2
-! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
-!
-! TYPE hobj_ref_t_f
-! INTEGER ref(REF_OBJ_BUF_LEN)
-! END TYPE
-!
-! TYPE hdset_reg_ref_t_f
-! INTEGER ref(REF_REG_BUF_LEN)
-! END TYPE
-!
- INTERFACE h5rcreate_f
-
- MODULE PROCEDURE h5rcreate_object_f
- MODULE PROCEDURE h5rcreate_region_f
-
- END INTERFACE
-
- INTERFACE h5rdereference_f
-
- MODULE PROCEDURE h5rdereference_object_f
- MODULE PROCEDURE h5rdereference_region_f
-
- END INTERFACE
-
- INTERFACE h5rget_region_f
-
- MODULE PROCEDURE h5rget_region_region_f
-
- END INTERFACE
-
- INTERFACE h5rget_object_type_f
-
- MODULE PROCEDURE h5rget_object_type_obj_f
-
- END INTERFACE
-
- INTERFACE h5rget_name_f
-
- MODULE PROCEDURE h5rget_name_object_f
- MODULE PROCEDURE h5rget_name_region_f
-
- END INTERFACE
-
- CONTAINS
-
-!----------------------------------------------------------------------
-! Name: h5rcreate_object_f
-!
-! Purpose: Creates reference to the object
-!
-! Inputs:
-! loc_id - location identifier
-! name - name of the object at the specified location
-! Outputs:
-! ref - reference to the specified object
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! Comment: This is a module procedure for the h5rcreate_f
-! subroutine.
-!----------------------------------------------------------------------
-
- SUBROUTINE h5rcreate_object_f(loc_id, name, ref, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! Location identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the object at location specified
- ! by loc_id identifier
- TYPE(hobj_ref_t_f), INTENT(OUT) :: ref ! Object reference
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTEGER :: namelen ! Name length
- INTEGER(HADDR_T) :: ref_f ! Local buffer to pass reference
-
-! INTEGER, EXTERNAL :: h5fcreate_object_c
-! Interface is needed for MS FORTRAN
-!
- INTERFACE
- INTEGER FUNCTION h5rcreate_object_c(ref_f, loc_id, name, namelen)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RCREATE_OBJECT_C':: h5rcreate_object_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HADDR_T) :: ref_f
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER :: namelen
- END FUNCTION h5rcreate_object_c
- END INTERFACE
-
- namelen = LEN(name)
- ref_f = 0
- hdferr = h5rcreate_object_c(ref_f, loc_id, name, namelen )
- ref%ref = ref_f
-
- END SUBROUTINE h5rcreate_object_f
-
-!----------------------------------------------------------------------
-! Name: h5rcreate_region_f
-!
-! Purpose: Creates r eference to the dataset region
-!
-! Inputs:
-! loc_id - location identifier
-! name - name of the dataset at the specified location
-! space_id - dataspace identifier that describes selected region
-! Outputs:
-! ref - reference to the dataset region
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! Comment: This is a module procedure for the h5rcreate_f
-! subroutine.
-!----------------------------------------------------------------------
-
- SUBROUTINE h5rcreate_region_f(loc_id, name, space_id, ref, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! Location identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the dataset at location specified
- ! by loc_id identifier
- INTEGER(HID_T), INTENT(IN) :: space_id ! Dataset's dataspace identifier
- TYPE(hdset_reg_ref_t_f), INTENT(OUT) :: ref ! Dataset region reference
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTEGER :: namelen ! Name length
- INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference
+!*****
-! INTEGER, EXTERNAL :: h5fcreate_region_c
-! Interface is needed for MS FORTRAN
-!
- INTERFACE
- INTEGER FUNCTION h5rcreate_region_c(ref_f, loc_id, name, namelen, space_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RCREATE_REGION_C':: h5rcreate_region_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
-! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
- INTEGER :: ref_f(REF_REG_BUF_LEN)
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER :: namelen
- INTEGER(HID_T), INTENT(IN) :: space_id
- END FUNCTION h5rcreate_region_c
- END INTERFACE
-
- namelen = LEN(name)
- ref_f = 0
- hdferr = h5rcreate_region_c(ref_f, loc_id, name, namelen, space_id )
- ref%ref = ref_f
+MODULE H5R
+ USE H5GLOBAL
- END SUBROUTINE h5rcreate_region_f
+ ! If you change the value of these parameters, do not forget to change corresponding
+ ! values in the H5f90.h file.
+ ! INTEGER, PARAMETER :: REF_OBJ_BUF_LEN = 2
+ ! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
+ !
+ ! TYPE hobj_ref_t_f
+ ! INTEGER ref(REF_OBJ_BUF_LEN)
+ ! END TYPE
+ !
+ ! TYPE hdset_reg_ref_t_f
+ ! INTEGER ref(REF_REG_BUF_LEN)
+ ! END TYPE
+ !
-!----------------------------------------------------------------------
-! Name: h5rdereference_object_f
-!
-! Purpose: Opens the HDF5 object referenced
-!
-! Inputs:
-! dset_id - identifier of the dataset containing
-! reference
-! ref - reference to open
-! Outputs:
-! obj_id - object_identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! Comment: This is a module procedure for the h5rdereference_f
-! subroutine.
-!----------------------------------------------------------------------
+ INTERFACE h5rget_region_f
+ MODULE PROCEDURE h5rget_region_region_f
- SUBROUTINE h5rdereference_object_f(dset_id, ref, obj_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- TYPE(hobj_ref_t_f), INTENT(IN) :: ref ! Object reference
- INTEGER(HID_T), INTENT(OUT) :: obj_id ! Object identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ END INTERFACE
- INTEGER(HADDR_T) :: ref_f ! Local buffer to pass reference
+ INTERFACE h5rget_object_type_f
-! INTEGER, EXTERNAL :: h5h5rdereference_object_c
-! Interface is needed for MS FORTRAN
-!
- INTERFACE
- INTEGER FUNCTION h5rdereference_object_c(dset_id, ref_f, obj_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RDEREFERENCE_OBJECT_C':: h5rdereference_object_c
- !DEC$ENDIF
-! INTEGER, PARAMETER :: REF_OBJ_BUF_LEN = 2
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HADDR_T) :: ref_f
- INTEGER(HID_T), INTENT(OUT) :: obj_id
- END FUNCTION h5rdereference_object_c
- END INTERFACE
+ MODULE PROCEDURE h5rget_object_type_obj_f
- ref_f = ref%ref
- hdferr = h5rdereference_object_c(dset_id, ref_f, obj_id )
+ END INTERFACE
- END SUBROUTINE h5rdereference_object_f
+CONTAINS
-!----------------------------------------------------------------------
-! Name: h5rdereference_region_f
+!****s* H5R/h5rget_region_region_f
!
-! Purpose: Opens the dataset region
+! NAME
+! h5rget_region_region_f
!
-! Inputs:
-! dset_id - identifier of the dataset containing
-! reference to teh regions
-! ref - reference to open
-! Outputs:
-! obj_id - dataspace identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! PURPOSE
+! Retrieves a dataspace with the specified region selected
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! INPUTS
+! dset_id - identifier of the dataset containing
+! reference to the regions
+! ref - reference to open
+! OUTPUTS
+! space_id - dataspace identifier
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
!
-! Comment: This is a module procedure for the h5rdereference_f
-! subroutine.
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5rdereference_region_f(dset_id, ref, obj_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- TYPE(hdset_reg_ref_t_f), INTENT(IN) :: ref ! Object reference
- INTEGER(HID_T), INTENT(OUT) :: obj_id ! Dataspace identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference
-
-! INTEGER, EXTERNAL :: h5rdereference_region_c
-! Interface is needed for MS FORTRAN
+! NOTES
+! This is a module procedure for the h5rget_region_f subroutine.
!
- INTERFACE
- INTEGER FUNCTION h5rdereference_region_c(dset_id, ref_f, obj_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RDEREFERENCE_REGION_C':: h5rdereference_region_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
-! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
- INTEGER :: ref_f(REF_REG_BUF_LEN)
- INTEGER(HID_T), INTENT(OUT) :: obj_id
- END FUNCTION h5rdereference_region_c
- END INTERFACE
-
- ref_f = ref%ref
- hdferr = h5rdereference_region_c(dset_id, ref_f, obj_id )
-
- END SUBROUTINE h5rdereference_region_f
-
-!----------------------------------------------------------------------
-! Name: h5rget_region_region_f
-!
-! Purpose: Retrieves a dataspace with the specified region selected
-!
-! Inputs:
-! dset_id - identifier of the dataset containing
-! reference to the regions
-! ref - reference to open
-! Outputs:
-! space_id - dataspace identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! Comment: This is a module procedure for the h5rget_region_f
-! subroutine.
-!----------------------------------------------------------------------
-
-
-
- SUBROUTINE h5rget_region_region_f(dset_id, ref, space_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- TYPE(hdset_reg_ref_t_f), INTENT(IN) :: ref ! Dataset region reference
- INTEGER(HID_T), INTENT(OUT) :: space_id ! Space identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference
-
-! INTEGER, EXTERNAL :: h5rget_region_region_c
-! Interface is needed for MS FORTRAN
-!
- INTERFACE
- INTEGER FUNCTION h5rget_region_region_c(dset_id, ref_f, space_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RGET_REGION_REGION_C':: h5rget_region_region_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
-! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
- INTEGER :: ref_f(REF_REG_BUF_LEN)
- INTEGER(HID_T), INTENT(OUT) :: space_id
- END FUNCTION h5rget_region_region_c
- END INTERFACE
-
- ref_f = ref%ref
- hdferr = h5rget_region_region_c(dset_id, ref_f, space_id )
-
- END SUBROUTINE h5rget_region_region_f
-
-!----------------------------------------------------------------------
-! Name: h5rget_object_type_obj_f
-!
-! Purpose: Retrieves the type of object that an object reference points to.
-!
-! Inputs:
-! dset_id - identifier of the dataset containing
-! reference to the objects
-! ref - reference to open
-! Outputs:
-! obj_type - object_type, possible values:
-! H5G_UNKNOWN_F (-1)
-! H5G_GROUP_F 0
-! H5G_DATASET_F 1
-! H5G_TYPE_F 2
-! H5G_LINK_F 3
-!
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! Comment: This is a module procedure for the h5rget_object_type_f
-! subroutine.
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5rget_object_type_obj_f(dset_id, ref, obj_type, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- TYPE(hobj_ref_t_f), INTENT(IN) :: ref ! Object reference
- INTEGER, INTENT(OUT) :: obj_type ! Object type
- ! H5G_UNKNOWN_F (-1)
- ! H5G_GROUP_F 0
- ! H5G_DATASET_F 1
- ! H5G_TYPE_F 2
- ! H5G_LINK_F 3
-
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HADDR_T) :: ref_f ! Local buffer to pass reference
-
-! INTEGER, EXTERNAL :: h5rget_object_type_obj_c
-! Interface is needed for MS FORTRAN
-!
- INTERFACE
- INTEGER FUNCTION h5rget_object_type_obj_c(dset_id, ref_f, obj_type)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RGET_OBJECT_TYPE_OBJ_C':: h5rget_object_type_obj_c
- !DEC$ENDIF
-! INTEGER, PARAMETER :: REF_OBJ_BUF_LEN = 2
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HADDR_T) :: ref_f
- INTEGER, INTENT(OUT) :: obj_type
- END FUNCTION h5rget_object_type_obj_c
- END INTERFACE
-
- ref_f = ref%ref
- hdferr = h5rget_object_type_obj_c(dset_id, ref_f, obj_type )
-
- END SUBROUTINE h5rget_object_type_obj_f
-
-!----------------------------------------------------------------------
-! Name: h5rget_name_object_f
-!
-! Purpose: Retrieves a name of a referenced object.
-!
-! Inputs:
-! loc_id - Identifier for the dataset containing the reference or for the group that dataset is in.
-! ref - An object or dataset region reference.
-!
-! Outputs:
-! name - A name associated with the referenced object or dataset region.
-!
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! size - The size of the name buffer.
-!
-! Programmer: M.S. Breitenfeld
-! March 28, 2008
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5rget_name_object_f(loc_id, ref, name, hdferr, size)
+! SOURCE
+ SUBROUTINE h5rget_region_region_f(dset_id, ref, space_id, hdferr)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifier for the dataset containing the reference
- ! or for the group that dataset is in.
- TYPE(hobj_ref_t_f), INTENT(IN) :: ref ! Object reference
- INTEGER(SIZE_T), OPTIONAL, INTENT(OUT) :: size ! The size of the name buffer,
- ! returning 0 (zero) if no name is associated with the identifier
- CHARACTER(LEN=*), INTENT(OUT) :: name ! A name associated with the referenced object or dataset region.
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HADDR_T) :: ref_f ! Local buffer to pass reference
-
- INTEGER(SIZE_T) :: size_default
- INTEGER(SIZE_T) :: name_len
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ TYPE(hdset_reg_ref_t_f), INTENT(IN) :: ref ! Dataset region reference
+ INTEGER(HID_T), INTENT(OUT) :: space_id ! Space identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference
INTERFACE
- INTEGER FUNCTION h5rget_name_object_c(loc_id, ref_f, name, name_len, size_default)
+ INTEGER FUNCTION h5rget_region_region_c(dset_id, ref_f, space_id)
USE H5GLOBAL
!DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RGET_NAME_OBJECT_C':: h5rget_name_object_c
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RGET_REGION_REGION_C':: h5rget_region_region_c
!DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: loc_id
- INTEGER(SIZE_T) :: size_default
- CHARACTER(LEN=*), INTENT(OUT) :: name
- INTEGER(HADDR_T) :: ref_f
-
- INTEGER(SIZE_T) :: name_len
- END FUNCTION h5rget_name_object_c
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ ! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
+ INTEGER :: ref_f(REF_REG_BUF_LEN)
+ INTEGER(HID_T), INTENT(OUT) :: space_id
+ END FUNCTION h5rget_region_region_c
END INTERFACE
- name_len=LEN(name)
-
ref_f = ref%ref
- hdferr = h5rget_name_object_c(loc_id, ref_f, name, name_len, size_default)
-
- IF(PRESENT(size)) size = size_default
-
- END SUBROUTINE h5rget_name_object_f
-
-!----------------------------------------------------------------------
-! Name: h5rget_name_region_f
-!
-! Purpose: Retrieves a name of a dataset region.
-!
-! Inputs:
-! loc_id - Identifier for the dataset containing the reference or for the group that dataset is in.
-! ref - An object or dataset region reference.
-!
-! Outputs:
-! name - A name associated with the referenced object or dataset region.
-!
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! size - The size of the name buffer.
-!
-! Programmer: M.S. Breitenfeld
-! March 28, 2008
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5rget_name_region_f(loc_id, ref, name, hdferr, size)
+ hdferr = h5rget_region_region_c(dset_id, ref_f, space_id )
+
+ END SUBROUTINE h5rget_region_region_f
+
+!****s* H5R/h5rget_object_type_obj_f
+!
+! NAME
+! h5rget_object_type_obj_f
+!
+! PURPOSE
+! Retrieves the type of object that an object reference points to.
+!
+! INPUTS
+! dset_id - identifier of the dataset containing
+! reference to the objects
+! ref - reference to open
+! OUTPUTS
+! obj_type - object_type, possible values:
+! H5G_UNKNOWN_F (-1)
+! H5G_GROUP_F 0
+! H5G_DATASET_F 1
+! H5G_TYPE_F 2
+! H5G_LINK_F 3
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! NOTES
+! This is a module procedure for the h5rget_object_type_f
+! subroutine.
+! SOURCE
+ SUBROUTINE h5rget_object_type_obj_f(dset_id, ref, obj_type, hdferr)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifier for the dataset containing the reference
- ! or for the group that dataset is in.
- TYPE(hdset_reg_ref_t_f), INTENT(IN) :: ref ! Object reference
- INTEGER(SIZE_T), OPTIONAL, INTENT(OUT) :: size ! The size of the name buffer,
- ! returning 0 (zero) if no name is associated with the identifier
- CHARACTER(LEN=*), INTENT(OUT) :: name ! A name associated with the referenced object or dataset region.
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference
- INTEGER(SIZE_T) :: size_default
- INTEGER(SIZE_T) :: name_len
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ TYPE(hobj_ref_t_f), INTENT(IN) :: ref ! Object reference
+ INTEGER, INTENT(OUT) :: obj_type ! Object type
+ ! H5G_UNKNOWN_F (-1)
+ ! H5G_GROUP_F 0
+ ! H5G_DATASET_F 1
+ ! H5G_TYPE_F 2
+ ! H5G_LINK_F 3
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER(HADDR_T) :: ref_f ! Local buffer to pass reference
INTERFACE
- INTEGER FUNCTION h5rget_name_region_c(loc_id, ref_f, name, name_len, size_default)
+ INTEGER FUNCTION h5rget_object_type_obj_c(dset_id, ref_f, obj_type)
USE H5GLOBAL
!DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RGET_NAME_REGION_C':: h5rget_name_region_c
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RGET_OBJECT_TYPE_OBJ_C':: h5rget_object_type_obj_c
!DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: loc_id
- INTEGER(SIZE_T) :: size_default
- CHARACTER(LEN=*), INTENT(OUT) :: name
- INTEGER :: ref_f(REF_REG_BUF_LEN)
-
- INTEGER(SIZE_T) :: name_len
- END FUNCTION h5rget_name_region_c
+ ! INTEGER, PARAMETER :: REF_OBJ_BUF_LEN = 2
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HADDR_T) :: ref_f
+ INTEGER, INTENT(OUT) :: obj_type
+ END FUNCTION h5rget_object_type_obj_c
END INTERFACE
- name_len=LEN(name)
-
ref_f = ref%ref
- hdferr = h5rget_name_region_c(loc_id, ref_f, name, name_len, size_default)
-
- IF(PRESENT(size)) size = size_default
+ hdferr = h5rget_object_type_obj_c(dset_id, ref_f, obj_type )
- END SUBROUTINE h5rget_name_region_f
+ END SUBROUTINE h5rget_object_type_obj_f
END MODULE H5R
diff --git a/fortran/src/H5Rff_F03.f90 b/fortran/src/H5Rff_F03.f90
new file mode 100644
index 0000000..cc31ab4
--- /dev/null
+++ b/fortran/src/H5Rff_F03.f90
@@ -0,0 +1,655 @@
+!****h* ROBODoc/H5R (F03)
+!
+! NAME
+! MODULE H5R_PROVISIONAL
+!
+! FILE
+! fortran/src/H5Rff_F03.f90
+!
+! PURPOSE
+! This file contains Fortran 90 and Fortran 2003 interfaces for H5R functions.
+! It contains the same functions as H5Rff_DEPRECIATE.f90 but includes the
+! Fortran 2003 functions and the interface listings. This file will be compiled
+! instead of H5Rff_DEPRECIATE.f90 if Fortran 2003 functions are enabled.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! NOTES
+! *** IMPORTANT ***
+! If you add a new H5R function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
+!
+!*****
+MODULE H5R_PROVISIONAL
+ USE H5GLOBAL
+
+ ! If you change the value of these parameters, do not forget to change corresponding
+ ! values in the H5f90.h file.
+ ! INTEGER, PARAMETER :: REF_OBJ_BUF_LEN = 2
+ ! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
+ !
+ ! TYPE hobj_ref_t_f
+ ! INTEGER ref(REF_OBJ_BUF_LEN)
+ ! END TYPE
+ !
+ ! TYPE hdset_reg_ref_t_f
+ ! INTEGER ref(REF_REG_BUF_LEN)
+ ! END TYPE
+ !
+ INTERFACE h5rcreate_f
+
+ MODULE PROCEDURE h5rcreate_object_f ! obsolete
+ MODULE PROCEDURE h5rcreate_region_f ! obsolete
+ MODULE PROCEDURE h5rcreate_ptr_f ! F2003
+
+ END INTERFACE
+
+ INTERFACE h5rdereference_f
+
+ MODULE PROCEDURE h5rdereference_object_f ! obsolete
+ MODULE PROCEDURE h5rdereference_region_f ! obsolete
+ MODULE PROCEDURE h5rdereference_ptr_f ! F2003
+
+ END INTERFACE
+
+ INTERFACE h5rget_name_f
+
+ MODULE PROCEDURE h5rget_name_object_f ! obsolete
+ MODULE PROCEDURE h5rget_name_region_f ! obsolete
+ MODULE PROCEDURE h5rget_name_ptr_f ! F2003
+
+ END INTERFACE
+
+ INTERFACE
+ INTEGER FUNCTION h5rget_name_ptr_c(loc_id, ref_type, ref, name, name_len, size_default)
+ USE, INTRINSIC :: ISO_C_BINDING
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RGET_NAME_PTR_C':: h5rget_name_ptr_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ INTEGER, INTENT(IN) :: ref_type
+ TYPE(C_PTR), INTENT(IN), VALUE :: ref
+ CHARACTER(LEN=*), INTENT(OUT) :: name
+ INTEGER(SIZE_T) :: name_len
+ INTEGER(SIZE_T) :: size_default
+ END FUNCTION h5rget_name_ptr_c
+ END INTERFACE
+
+ INTERFACE
+ INTEGER FUNCTION h5rdereference_ptr_c(obj_id, ref_type, ref, ref_obj_id)
+ USE H5GLOBAL
+ USE, INTRINSIC :: ISO_C_BINDING
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RDEREFERENCE_PTR_C':: h5rdereference_ptr_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: obj_id
+ INTEGER, INTENT(IN) :: ref_type
+ TYPE(C_PTR), INTENT(IN), VALUE :: ref
+ INTEGER(HID_T), INTENT(OUT) :: ref_obj_id
+ END FUNCTION h5rdereference_ptr_c
+ END INTERFACE
+
+ INTERFACE
+ INTEGER FUNCTION h5rcreate_ptr_c(ref, loc_id, name, namelen, ref_type, space_id)
+ USE, INTRINSIC :: ISO_C_BINDING
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RCREATE_PTR_C':: h5rcreate_ptr_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ TYPE(C_PTR), VALUE :: ref
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER, INTENT(IN) :: ref_type
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ END FUNCTION h5rcreate_ptr_c
+ END INTERFACE
+
+CONTAINS
+
+!****s* H5R (F03)/h5rcreate_object_f
+!
+! NAME
+! h5rcreate_object_f
+!
+! PURPOSE
+! Creates reference to the object
+!
+! INPUTS
+! loc_id - location identifier
+! name - name of the object at the specified location
+! OUTPUTS
+! ref - reference to the specified object
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! NOTES
+! This is a module procedure for the h5rcreate_f subroutine.
+!
+! SOURCE
+ SUBROUTINE h5rcreate_object_f(loc_id, name, ref, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Location identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the object at location specified
+ ! by loc_id identifier
+ TYPE(hobj_ref_t_f), INTENT(INOUT), TARGET :: ref ! Object reference
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: namelen ! Name length
+
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(ref)
+
+ namelen = LEN(name)
+
+ hdferr = h5rcreate_ptr_c(f_ptr, loc_id, name, namelen, INT(0), INT(-1,HID_T))
+
+ END SUBROUTINE h5rcreate_object_f
+
+!****s* H5R (F03)/h5rcreate_region_f
+!
+! NAME
+! h5rcreate_region_f
+!
+! PURPOSE
+! Creates reference to the dataset region
+!
+! INPUTS
+! loc_id - location identifier
+! name - name of the dataset at the specified location
+! space_id - dataspace identifier that describes selected region
+! OUTPUTS
+! ref - reference to the dataset region
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! NOTES
+! This is a module procedure for the h5rcreate_f subroutine.
+!
+! SOURCE
+ SUBROUTINE h5rcreate_region_f(loc_id, name, space_id, ref, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Location identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the dataset at location specified
+ ! by loc_id identifier
+ INTEGER(HID_T), INTENT(IN) :: space_id ! Dataset's dataspace identifier
+ TYPE(hdset_reg_ref_t_f), INTENT(INOUT), TARGET :: ref ! Dataset region reference
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: namelen ! Name length
+ INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference
+
+ TYPE(C_PTR) :: f_ptr
+
+! !$ INTERFACE
+! !$ INTEGER FUNCTION h5rcreate_region_c(ref_f, loc_id, name, namelen, space_id)
+! !$ USE H5GLOBAL
+! !$ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+! !$ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RCREATE_REGION_C':: h5rcreate_region_c
+! !$ !DEC$ENDIF
+! !$ !DEC$ATTRIBUTES reference :: name
+! !$ ! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
+! !$ INTEGER :: ref_f(REF_REG_BUF_LEN)
+! !$ INTEGER(HID_T), INTENT(IN) :: loc_id
+! !$ CHARACTER(LEN=*), INTENT(IN) :: name
+! !$ INTEGER :: namelen
+! !$ INTEGER(HID_T), INTENT(IN) :: space_id
+! !$ END FUNCTION h5rcreate_region_c
+! !$ END INTERFACE
+
+ f_ptr = C_LOC(ref)
+
+ namelen = LEN(name)
+ hdferr = h5rcreate_ptr_c(f_ptr, loc_id, name, namelen, 1, space_id)
+
+! !$ ref_f = 0
+! !$ hdferr = h5rcreate_region_c(ref_f, loc_id, name, namelen, space_id )
+! !$ ref%ref = ref_f
+
+ END SUBROUTINE h5rcreate_region_f
+
+!****s* H5R (F03)/h5rcreate_ptr_f
+!
+! NAME
+! h5rcreate_ptr_f
+!
+! PURPOSE
+! Creates a reference.
+!
+! INPUTS
+! loc_id - location identifier
+! name - name of the dataset at the specified location
+! ref_type - type of reference:
+! H5R_OBJECT
+! H5T_STD_REF_DSETREG
+! OUTPUTS
+! ref - reference created by the function call.
+! hdferr - error code
+! Success: 0
+! Failure: -1
+! OPTIONAL
+! space_id - dataspace identifier that describes selected region
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! June 20, 2008
+!
+! NOTES
+! This is a module procedure for the h5rcreate_f
+! subroutine where the output is a pointer.
+!
+! SOURCE
+ SUBROUTINE h5rcreate_ptr_f(loc_id, name, ref_type, ref, hdferr, space_id)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Location identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the dataset at location specified
+ ! by loc_id identifier
+ INTEGER, INTENT(IN) :: ref_type ! type of reference
+ TYPE(C_PTR), INTENT(INOUT) :: ref ! Reference created by the function call
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: space_id ! Dataset's dataspace identifier
+!*****
+ INTEGER :: namelen ! Name length
+ INTEGER(HID_T) :: space_id_c
+
+ namelen = LEN(name)
+ space_id_c = -1
+ IF(PRESENT(space_id)) space_id_c = space_id
+ hdferr = h5rcreate_ptr_c(ref, loc_id, name, namelen, ref_type, space_id_c)
+
+ END SUBROUTINE h5rcreate_ptr_f
+!****s* H5R (F03)/h5rdereference_object_f
+!
+! NAME
+! h5rdereference_object_f
+!
+! PURPOSE
+! Opens the HDF5 object referenced
+!
+! INPUTS
+! dset_id - identifier of the dataset containing
+! reference
+! ref - reference to open
+! OUTPUTS
+! obj_id - object_identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! NOTES
+! This is a module procedure for the h5rdereference_f subroutine.
+!
+! SOURCE
+ SUBROUTINE h5rdereference_object_f(obj_id, ref, ref_obj_id, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: obj_id ! Dataset identifier
+ TYPE(hobj_ref_t_f), INTENT(IN), TARGET :: ref ! Object reference
+ INTEGER(HID_T), INTENT(OUT) :: ref_obj_id ! Object identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER(HADDR_T) :: ref_f ! Local buffer to pass reference
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(ref)
+ hdferr = h5rdereference_ptr_c(obj_id, 0, f_ptr, ref_obj_id)
+
+ END SUBROUTINE h5rdereference_object_f
+!****s* H5R (F03)/h5rdereference_region_f
+!
+! NAME
+! h5rdereference_region_f
+!
+! PURPOSE
+! Opens the dataset region
+!
+! INPUTS
+! dset_id - identifier of the dataset containing
+! reference to teh regions
+! ref - reference to open
+! OUTPUTS
+! obj_id - dataspace identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! NOTES
+! This is a module procedure for the h5rdereference_f subroutine.
+!
+! SOURCE
+ SUBROUTINE h5rdereference_region_f(obj_id, ref, ref_obj_id, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: obj_id ! Dataset identifier
+ TYPE(hdset_reg_ref_t_f), INTENT(IN), TARGET :: ref ! Object reference
+ INTEGER(HID_T), INTENT(OUT) :: ref_obj_id ! Dataspace identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(ref)
+ hdferr = h5rdereference_ptr_c(obj_id, 1, f_ptr, ref_obj_id)
+
+ END SUBROUTINE h5rdereference_region_f
+
+!****s* H5R (F03)/h5rdereference_ptr_f
+!
+! NAME
+! h5rdereference_ptr_f
+!
+! PURPOSE
+! Opens the HDF5 object referenced.
+!
+! INPUTS
+! obj_id - valid identifier for the file containing the
+! referenced object or any object in that file.
+! ref_type - the reference type of ref.
+! ref - Reference to open.
+! OUTPUTS
+! ref_obj_id - identifier of referenced object
+! hdferr - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! M. Scot Breitenfeld
+! June 20, 2008
+!
+! NOTES
+! This is a module procedure for the h5rdereference_f
+! subroutine using pointers.
+!
+! SOURCE
+ SUBROUTINE h5rdereference_ptr_f(obj_id, ref_type, ref, ref_obj_id, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: obj_id ! Valid identifier for the file containing the
+ ! referenced object or any object in that file.
+ INTEGER, INTENT(IN) :: ref_type ! The reference type of ref.
+ TYPE(C_PTR), INTENT(IN) :: ref ! Object reference
+ INTEGER(HID_T), INTENT(OUT) :: ref_obj_id
+ ! Identifier of referenced object
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ hdferr = h5rdereference_ptr_c(obj_id, ref_type, ref, ref_obj_id)
+
+ END SUBROUTINE h5rdereference_ptr_f
+!
+!****s* H5R (F03)/h5rget_name_object_f
+!
+! NAME
+! h5rget_name_object_f
+!
+! PURPOSE
+! Retrieves a name of a referenced object.
+!
+! INPUTS
+! loc_id - Identifier for the dataset containing the reference or for the group that dataset is in.
+! ref - An object or dataset region reference.
+!
+! OUTPUTS
+! name - A name associated with the referenced object or dataset region.
+!
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! OPTIONAL PARAMETERS
+! size - The size of the name buffer.
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! March 28, 2008
+!
+! SOURCES
+ SUBROUTINE h5rget_name_object_f(loc_id, ref, name, hdferr, size)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifier for the dataset containing the reference
+ ! or for the group that dataset is in.
+ TYPE(hobj_ref_t_f), INTENT(IN), TARGET :: ref ! Object reference
+ INTEGER(SIZE_T), OPTIONAL, INTENT(OUT) :: size ! The size of the name buffer,
+ ! returning 0 (zero) if no name is associated
+ ! with the identifier
+ CHARACTER(LEN=*), INTENT(OUT) :: name ! A name associated with the referenced object or dataset region.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER(HADDR_T) :: ref_f ! Local buffer to pass reference
+
+ INTEGER(SIZE_T) :: size_default
+ INTEGER(SIZE_T) :: name_len
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(ref)
+
+ name_len=LEN(name)
+
+ hdferr = h5rget_name_ptr_c(loc_id, 0, f_ptr, name, name_len, size_default)
+
+
+ IF(PRESENT(size)) size = size_default
+
+ END SUBROUTINE h5rget_name_object_f
+!****s* H5R (F03)/h5rget_name_region_f
+!
+! NAME
+! h5rget_name_region_f
+!
+! PURPOSE
+! Retrieves a name of a dataset region.
+!
+! INPUTS
+! loc_id - Identifier for the dataset containing the reference or
+! for the group that dataset is in.
+! ref - An object or dataset region reference.
+!
+! OUTPUTS
+! name - A name associated with the referenced object or dataset region.
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! OPTIONAL PARAMETERS
+! size - The size of the name buffer.
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! March 28, 2008
+!
+! SOURCE
+ SUBROUTINE h5rget_name_region_f(loc_id, ref, name, hdferr, size)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifier for the dataset containing the reference
+ ! or for the group that dataset is in.
+ TYPE(hdset_reg_ref_t_f), INTENT(IN), TARGET :: ref ! Object reference
+ INTEGER(SIZE_T), OPTIONAL, INTENT(OUT) :: size ! The size of the name buffer,
+ ! returning 0 (zero) if no name is associated with the identifier
+ CHARACTER(LEN=*), INTENT(OUT) :: name ! A name associated with the referenced object or dataset region.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference
+ INTEGER(SIZE_T) :: size_default
+ INTEGER(SIZE_T) :: name_len
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(ref)
+
+ name_len=LEN(name)
+
+ hdferr = h5rget_name_ptr_c(loc_id, 1, f_ptr, name, name_len, size_default)
+
+ IF(PRESENT(size)) size = size_default
+
+ END SUBROUTINE h5rget_name_region_f
+
+ !****s* H5R (F03)/h5rget_name_ptr_f
+ !
+ ! NAME
+ ! h5rget_name_ptr_f
+ !
+ ! PURPOSE
+ ! Retrieves a name of a referenced object.
+ !
+ ! INPUTS
+ ! loc_id - Identifier for the dataset containing the reference or
+ ! for the group that dataset is in.
+ ! ref_type - Type of reference.
+ ! ref - An object or dataset region reference.
+ !
+ ! OUTPUTS
+ ! name - A name associated with the referenced object or dataset ptr.
+ !
+ ! hdferr - error code
+ ! Success: 0
+ ! Failure: -1
+ !
+ ! OPTIONAL PARAMETERS
+ ! size - The size of the name buffer.
+ !
+ ! AUTHOR
+ ! M. Scot Breitenfeld
+ ! March 28, 2008
+ !
+ ! SOURCE
+ SUBROUTINE h5rget_name_ptr_f(loc_id, ref_type, ref, name, hdferr, size)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifier for the dataset containing the reference
+ ! or for the group that dataset is in.
+ INTEGER, INTENT(IN) :: ref_type ! Type of reference.
+ TYPE(C_PTR), INTENT(IN) :: ref ! An object or dataset region reference.
+ CHARACTER(LEN=*), INTENT(OUT) :: name ! A name associated with the referenced object or dataset ptr.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(SIZE_T), OPTIONAL, INTENT(OUT) :: size ! The size of the name buffer,
+ ! returning 0 (zero) if no name is associated
+ ! with the identifier
+!*****
+ INTEGER(SIZE_T) :: size_default
+ INTEGER(SIZE_T) :: name_len
+
+ name_len=LEN(name)
+
+ hdferr = h5rget_name_ptr_c(loc_id, ref_type, ref, name, name_len, size_default)
+
+ IF(PRESENT(size)) size = size_default
+
+ END SUBROUTINE h5rget_name_ptr_f
+
+ !****s* H5R (F03)/h5rget_obj_type_f
+ !
+ ! NAME
+ ! h5rget_obj_type_f
+ !
+ ! PURPOSE
+ ! Retrieves the type of object that an object reference points to.
+ !
+ ! INPUTS
+ ! loc_id - Identifier for the dataset containing the reference or
+ ! for the group that dataset is in.
+ ! ref_type - Type of reference to query.
+ ! ref - Reference to query.
+ !
+ ! OUTPUTS
+ ! obj_type - Type of referenced object.
+ ! H5G_UNKNOWN_F (-1)
+ ! H5G_LINK_F 0
+ ! H5G_GROUP_F 1
+ ! H5G_DATASET_F 2
+ ! H5G_TYPE_F 3
+ !
+ ! hdferr - error code
+ ! Success: 0
+ ! Failure: -1
+ !
+ ! AUTHOR
+ ! M. Scot Breitenfeld
+ ! Decemeber 17, 2008
+ !
+ ! SOURCE
+ SUBROUTINE h5rget_obj_type_f(loc_id, ref_type, ref, obj_type, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ INTEGER, INTENT(IN) :: ref_type
+ TYPE(C_PTR), INTENT(IN) :: ref
+ INTEGER, INTENT(OUT) :: obj_type
+ INTEGER, INTENT(OUT) :: hdferr
+ !*****
+
+ INTERFACE
+ INTEGER FUNCTION h5rget_obj_type_c(loc_id, ref_type, ref, obj_type)
+ USE, INTRINSIC :: ISO_C_BINDING
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RGET_OBJ_TYPE_C':: h5rget_obj_type_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ INTEGER, INTENT(IN) :: ref_type
+ TYPE(C_PTR), VALUE :: ref
+ INTEGER :: obj_type
+ END FUNCTION h5rget_obj_type_c
+ END INTERFACE
+
+ hdferr = h5rget_obj_type_c(loc_id, ref_type, ref, obj_type)
+
+ END SUBROUTINE h5rget_obj_type_f
+
+END MODULE H5R_PROVISIONAL
diff --git a/fortran/src/H5Rff_F90.f90 b/fortran/src/H5Rff_F90.f90
new file mode 100644
index 0000000..3f02825
--- /dev/null
+++ b/fortran/src/H5Rff_F90.f90
@@ -0,0 +1,449 @@
+!****h* ROBODoc/H5R (F90)
+!
+! NAME
+! MODULE H5R_PROVISIONAL
+!
+! FILE
+! fortran/src/H5Rff_F90.f90
+!
+! PURPOSE
+! This file contains Fortran 90 interfaces for H5R functions. It contains
+! the same functions as H5Rff_F03.f90 but excludes the Fortran 2003 functions
+! and the interface listings. This file will be compiled instead of H5Rff_F03.f90
+! if Fortran 2003 functions are not enabled.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! NOTES
+! *** IMPORTANT ***
+! If you add a new H5R function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
+!*****
+
+MODULE H5R_PROVISIONAL
+ USE H5GLOBAL
+
+! If you change the value of these parameters, do not forget to change corresponding
+! values in the H5f90.h file.
+! INTEGER, PARAMETER :: REF_OBJ_BUF_LEN = 2
+! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
+!
+! TYPE hobj_ref_t_f
+! INTEGER ref(REF_OBJ_BUF_LEN)
+! END TYPE
+!
+! TYPE hdset_reg_ref_t_f
+! INTEGER ref(REF_REG_BUF_LEN)
+! END TYPE
+!
+ INTERFACE h5rcreate_f
+
+ MODULE PROCEDURE h5rcreate_object_f
+ MODULE PROCEDURE h5rcreate_region_f
+
+ END INTERFACE
+
+ INTERFACE h5rdereference_f
+
+ MODULE PROCEDURE h5rdereference_object_f
+ MODULE PROCEDURE h5rdereference_region_f
+
+ END INTERFACE
+
+ INTERFACE h5rget_name_f
+
+ MODULE PROCEDURE h5rget_name_object_f
+ MODULE PROCEDURE h5rget_name_region_f
+
+ END INTERFACE
+
+CONTAINS
+
+!****s* H5R (F90)/h5rcreate_object_f
+!
+! NAME
+! h5rcreate_object_f
+!
+! PURPOSE
+! Creates reference to the object
+!
+! INPUTS
+! loc_id - location identifier
+! name - name of the object at the specified location
+! OUTPUTS
+! ref - reference to the specified object
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! NOTES
+! This is a module procedure for the h5rcreate_f subroutine.
+!
+! SOURCE
+ SUBROUTINE h5rcreate_object_f(loc_id, name, ref, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Location identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the object at location specified
+ ! by loc_id identifier
+ TYPE(hobj_ref_t_f), INTENT(OUT) :: ref ! Object reference
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: namelen ! Name length
+ INTEGER(HADDR_T) :: ref_f ! Local buffer to pass reference
+
+ INTERFACE
+ INTEGER FUNCTION h5rcreate_object_c(ref_f, loc_id, name, namelen)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RCREATE_OBJECT_C':: h5rcreate_object_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HADDR_T) :: ref_f
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ END FUNCTION h5rcreate_object_c
+ END INTERFACE
+
+ namelen = LEN(name)
+ ref_f = 0
+ hdferr = h5rcreate_object_c(ref_f, loc_id, name, namelen )
+ ref%ref = ref_f
+
+ END SUBROUTINE h5rcreate_object_f
+
+!****s* H5R (F90)/h5rcreate_region_f
+!
+! NAME
+! h5rcreate_region_f
+!
+! PURPOSE
+! Creates reference to the dataset region
+!
+! INPUTS
+! loc_id - location identifier
+! name - name of the dataset at the specified location
+! space_id - dataspace identifier that describes selected region
+! OUTPUTS
+! ref - reference to the dataset region
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! NOTES
+! This is a module procedure for the h5rcreate_f subroutine.
+!
+! SOURCE
+ SUBROUTINE h5rcreate_region_f(loc_id, name, space_id, ref, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Location identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the dataset at location specified
+ ! by loc_id identifier
+ INTEGER(HID_T), INTENT(IN) :: space_id ! Dataset's dataspace identifier
+ TYPE(hdset_reg_ref_t_f), INTENT(OUT) :: ref ! Dataset region reference
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: namelen ! Name length
+ INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference
+
+ INTERFACE
+ INTEGER FUNCTION h5rcreate_region_c(ref_f, loc_id, name, namelen, space_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RCREATE_REGION_C':: h5rcreate_region_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ ! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
+ INTEGER :: ref_f(REF_REG_BUF_LEN)
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ END FUNCTION h5rcreate_region_c
+ END INTERFACE
+
+ namelen = LEN(name)
+ ref_f = 0
+ hdferr = h5rcreate_region_c(ref_f, loc_id, name, namelen, space_id )
+ ref%ref = ref_f
+
+ END SUBROUTINE h5rcreate_region_f
+!****s* H5R (F90)/h5rdereference_object_f
+!
+! NAME
+! h5rdereference_object_f
+!
+! PURPOSE
+! Opens the HDF5 object referenced
+!
+! INPUTS
+! dset_id - identifier of the dataset containing reference
+! ref - reference to open
+! OUTPUTS
+! obj_id - object_identifier
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! NOTES
+! This is a module procedure for the h5rdereference_f subroutine.
+!
+! SOURCE
+ SUBROUTINE h5rdereference_object_f(dset_id, ref, obj_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ TYPE(hobj_ref_t_f), INTENT(IN) :: ref ! Object reference
+ INTEGER(HID_T), INTENT(OUT) :: obj_id ! Object identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER(HADDR_T) :: ref_f ! Local buffer to pass reference
+
+ INTERFACE
+ INTEGER FUNCTION h5rdereference_object_c(dset_id, ref_f, obj_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RDEREFERENCE_OBJECT_C':: h5rdereference_object_c
+ !DEC$ENDIF
+ ! INTEGER, PARAMETER :: REF_OBJ_BUF_LEN = 2
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HADDR_T) :: ref_f
+ INTEGER(HID_T), INTENT(OUT) :: obj_id
+ END FUNCTION h5rdereference_object_c
+ END INTERFACE
+
+ ref_f = ref%ref
+ hdferr = h5rdereference_object_c(dset_id, ref_f, obj_id )
+
+ END SUBROUTINE h5rdereference_object_f
+!****s* H5R (F90)/h5rdereference_region_f
+!
+! NAME
+! h5rdereference_region_f
+!
+! PURPOSE
+! Opens the dataset region
+!
+! INPUTS
+! dset_id - identifier of the dataset containing
+! reference to teh regions
+! ref - reference to open
+! OUTPUTS
+! obj_id - dataspace identifier
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! NOTES
+! This is a module procedure for the h5rdereference_f subroutine.
+!
+! SOURCE
+ SUBROUTINE h5rdereference_region_f(dset_id, ref, obj_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ TYPE(hdset_reg_ref_t_f), INTENT(IN) :: ref ! Object reference
+ INTEGER(HID_T), INTENT(OUT) :: obj_id ! Dataspace identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference
+
+ INTERFACE
+ INTEGER FUNCTION h5rdereference_region_c(dset_id, ref_f, obj_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RDEREFERENCE_REGION_C':: h5rdereference_region_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
+ INTEGER :: ref_f(REF_REG_BUF_LEN)
+ INTEGER(HID_T), INTENT(OUT) :: obj_id
+ END FUNCTION h5rdereference_region_c
+ END INTERFACE
+
+ ref_f = ref%ref
+ hdferr = h5rdereference_region_c(dset_id, ref_f, obj_id )
+
+ END SUBROUTINE h5rdereference_region_f
+!****s* H5R (F90)/h5rget_name_object_f
+!
+! NAME
+! h5rget_name_object_f
+!
+! PURPOSE
+! Retrieves a name of a referenced object.
+!
+! INPUTS
+! loc_id - Identifier for the dataset containing the reference or for the group that dataset is in.
+! ref - An object or dataset region reference.
+!
+! OUTPUTS
+! name - A name associated with the referenced object or dataset region.
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! OPTIONAL PARAMETERS
+! size - The size of the name buffer.
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! March 28, 2008
+!
+! SOURCES
+ SUBROUTINE h5rget_name_object_f(loc_id, ref, name, hdferr, size)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifier for the dataset containing the reference
+ ! or for the group that dataset is in.
+ TYPE(hobj_ref_t_f), INTENT(IN) :: ref ! Object reference
+ INTEGER(SIZE_T), OPTIONAL, INTENT(OUT) :: size ! The size of the name buffer,
+ ! returning 0 (zero) if no name is associated with the identifier
+ CHARACTER(LEN=*), INTENT(OUT) :: name ! A name associated with the referenced object or dataset region.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER(HADDR_T) :: ref_f ! Local buffer to pass reference
+
+ INTEGER(SIZE_T) :: size_default
+ INTEGER(SIZE_T) :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5rget_name_object_c(loc_id, ref_f, name, name_len, size_default)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RGET_NAME_OBJECT_C':: h5rget_name_object_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ INTEGER(SIZE_T) :: size_default
+ CHARACTER(LEN=*), INTENT(OUT) :: name
+ INTEGER(HADDR_T) :: ref_f
+
+ INTEGER(SIZE_T) :: name_len
+ END FUNCTION h5rget_name_object_c
+ END INTERFACE
+
+ name_len=LEN(name)
+
+ ref_f = ref%ref
+ hdferr = h5rget_name_object_c(loc_id, ref_f, name, name_len, size_default)
+
+ IF(PRESENT(size)) size = size_default
+
+ END SUBROUTINE h5rget_name_object_f
+
+!****s* H5R (F90)/h5rget_name_region_f
+!
+! NAME
+! h5rget_name_region_f
+!
+! PURPOSE
+! Retrieves a name of a dataset region.
+!
+! INPUTS
+! loc_id - Identifier for the dataset containing the reference or
+! for the group that dataset is in.
+! ref - An object or dataset region reference.
+!
+! OUTPUTS
+! name - A name associated with the referenced object or dataset region.
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! OPTIONAL PARAMETERS
+! size - The size of the name buffer.
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! March 28, 2008
+!
+! SOURCE
+ SUBROUTINE h5rget_name_region_f(loc_id, ref, name, hdferr, size)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifier for the dataset containing the reference
+ ! or for the group that dataset is in.
+ TYPE(hdset_reg_ref_t_f), INTENT(IN) :: ref ! Object reference
+ INTEGER(SIZE_T), OPTIONAL, INTENT(OUT) :: size ! The size of the name buffer,
+ ! returning 0 (zero) if no name is associated
+ ! with the identifier
+ CHARACTER(LEN=*), INTENT(OUT) :: name ! A name associated with the referenced object or dataset region.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference
+ INTEGER(SIZE_T) :: size_default
+ INTEGER(SIZE_T) :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5rget_name_region_c(loc_id, ref_f, name, name_len, size_default)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RGET_NAME_REGION_C':: h5rget_name_region_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ INTEGER(SIZE_T) :: size_default
+ CHARACTER(LEN=*), INTENT(OUT) :: name
+ INTEGER :: ref_f(REF_REG_BUF_LEN)
+
+ INTEGER(SIZE_T) :: name_len
+ END FUNCTION h5rget_name_region_c
+ END INTERFACE
+
+ name_len=LEN(name)
+
+ ref_f = ref%ref
+ hdferr = h5rget_name_region_c(loc_id, ref_f, name, name_len, size_default)
+
+ IF(PRESENT(size)) size = size_default
+
+ END SUBROUTINE h5rget_name_region_f
+
+END MODULE H5R_PROVISIONAL
diff --git a/fortran/src/H5Sf.c b/fortran/src/H5Sf.c
index e161618..2cfb1eb 100644
--- a/fortran/src/H5Sf.c
+++ b/fortran/src/H5Sf.c
@@ -1,4 +1,9 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+/****h* H5Sf/H5Sf
+ * PURPOSE
+ * This file contains C stubs for H5S Fortran APIs
+ *
+ * COPYRIGHT
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
@@ -11,26 +16,38 @@
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ ******
+*/
#include "H5f90.h"
#include "H5Eprivate.h"
-/*----------------------------------------------------------------------------
- * Name: h5screate_simple_c
- * Purpose: Call H5Screate_simple to create a dataspace
- * Inputs: rank - number of dimensions of dataspace
+/****if* H5Sf/h5screate_simple_c
+ * NAME
+ * h5screate_simple_c
+ * PURPOSE
+ * Call H5Screate_simple to create a dataspace
+ * INPUTS
+ * rank - number of dimensions of dataspace
* dims - array of the size of each dimension
maxdims - an array of the maximum size of each dimension
- * Outputs: space_id - identifier of the created dataspace
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * space_id - identifier of the created dataspace
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, August 4, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5screate_simple_c ( int_f *rank, hsize_t_f *dims, hsize_t_f *maxdims, hid_t_f *space_id )
+/******/
{
hsize_t c_dims[H5S_MAX_RANK];
hsize_t c_maxdims[H5S_MAX_RANK];
@@ -56,18 +73,26 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5sclose_c
- * Purpose: Call H5Sclose to close the dataspace
- * Inputs: space_id - identifier of the dataspace to be closed
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Sf/h5sclose_c
+ * NAME
+ * h5sclose_c
+ * PURPOSE
+ * Call H5Sclose to close the dataspace
+ * INPUTS
+ * space_id - identifier of the dataspace to be closed
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, August 4, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5sclose_c ( hid_t_f *space_id )
+/******/
{
int ret_value = 0;
hid_t c_space_id;
@@ -77,20 +102,28 @@ nh5sclose_c ( hid_t_f *space_id )
return ret_value;
}
-
-/*----------------------------------------------------------------------------
- * Name: h5screate_c
- * Purpose: Call H5Screate to create a dataspace
- * Inputs: classtype - type of the dataspace class
- * Outputs: space_id - identifier of the created dataspace
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Sf/h5screate_c
+ * NAME
+ * h5screate_c
+ * PURPOSE
+ * Call H5Screate to create a dataspace
+ * INPUTS
+ * classtype - type of the dataspace class
+ * OUTPUTS
+ * space_id - identifier of the created dataspace
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Tuesday, August 10, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5screate_c ( int_f *classtype, hid_t_f *space_id )
+/******/
{
H5S_class_t c_classtype;
int ret_value = 0;
@@ -103,19 +136,28 @@ nh5screate_c ( int_f *classtype, hid_t_f *space_id )
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5scopy_c
- * Purpose: Call H5Scopy to copy dataspace
- * Inputs: space_id - identifier of the dataspace to be copied
- * Outputs: new_space_id - identifier of the new datspace
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Sf/h5scopy_c
+ * NAME
+ * h5scopy_c
+ * PURPOSE
+ * Call H5Scopy to copy dataspace
+ * INPUTS
+ * space_id - identifier of the dataspace to be copied
+ * OUTPUTS
+ * new_space_id - identifier of the new datspace
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Tuesday, August 10, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5scopy_c( hid_t_f *space_id , hid_t_f *new_space_id)
+/******/
{
int ret_value = 0;
hid_t c_new_space_id;
@@ -129,22 +171,31 @@ nh5scopy_c( hid_t_f *space_id , hid_t_f *new_space_id)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5sget_select_hyper_nblocks_c
- * Purpose: Call H5SH5Sget_select_hyper_nblocks to
+/****if* H5Sf/h5sget_select_hyper_nblocks_c
+ * NAME
+ * h5sget_select_hyper_nblocks_c
+ * PURPOSE
+ * Call H5SH5Sget_select_hyper_nblocks to
* get the the number of hyperslab blocks in
* the current dataspace selection if successful
- * Inputs: space_id - identifier of the dataspace
- * Outputs: num_blocks - number of hyperslab blocks in
+ * INPUTS
+ * space_id - identifier of the dataspace
+ * OUTPUTS
+ * num_blocks - number of hyperslab blocks in
* the current dataspace selection
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Friday, November 12, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5sget_select_hyper_nblocks_c( hid_t_f *space_id , hssize_t_f * num_blocks)
+/******/
{
int ret_value = 0;
hid_t c_space_id;
@@ -158,22 +209,31 @@ nh5sget_select_hyper_nblocks_c( hid_t_f *space_id , hssize_t_f * num_blocks)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5sget_select_elem_npoints_c
- * Purpose: Call H5Sget_select_elem_npoints to
+/****if* H5Sf/h5sget_select_elem_npoints_c
+ * NAME
+ * h5sget_select_elem_npoints_c
+ * PURPOSE
+ * Call H5Sget_select_elem_npoints to
* get the the number of element points in
* the current dataspace selection if successful
- * Inputs: space_id - identifier of the dataspace
- * Outputs: num_points - number of element points in
+ * INPUTS
+ * space_id - identifier of the dataspace
+ * OUTPUTS
+ * num_points - number of element points in
* the current dataspace selection
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Monday, November 15, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5sget_select_elem_npoints_c( hid_t_f *space_id , hssize_t_f * num_points)
+/******/
{
int ret_value = 0;
hid_t c_space_id;
@@ -187,31 +247,40 @@ nh5sget_select_elem_npoints_c( hid_t_f *space_id , hssize_t_f * num_points)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5sget_select_hyper_blocklist_c
- * Purpose: Call H5Sget_select_hyper_blocklist to
+/****if* H5Sf/h5sget_select_hyper_blocklist_c
+ * NAME
+ * h5sget_select_hyper_blocklist_c
+ * PURPOSE
+ * Call H5Sget_select_hyper_blocklist to
* get a list of the hyperslab blocks currently selected
* Starting with the startblock-th block in the
* list of blocks, num_blocks blocks are put into the user's
* buffer. If the user's buffer fills up before numblocks
* blocks are inserted, the buffer
* will contain only as many blocks as fit.
- * Inputs: space_id - identifier of the dataspace
+ * INPUTS
+ * space_id - identifier of the dataspace
* startblock - Hyperslab block to start with
* num_blocks - number of hyperslab blocks in
* the current dataspace selection
- * Outputs: buf - List of hyperslab blocks selected
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * OUTPUTS
+ * buf - List of hyperslab blocks selected
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Monday, November 15, 1999
- * Modifications:
+ * HISTORY
+ *
* Transpose dimension arrays because of C-FORTRAN storage order
- * M.S. Breitenfeld
- *---------------------------------------------------------------------------*/
+ * M. Scot Breitenfeld
+ * SOURCE
+*/
int_f
nh5sget_select_hyper_blocklist_c( hid_t_f *space_id ,hsize_t_f * startblock,
hsize_t_f * num_blocks, hsize_t_f * buf)
+/******/
{
int ret_value = -1;
hid_t c_space_id;
@@ -256,25 +325,34 @@ nh5sget_select_hyper_blocklist_c( hid_t_f *space_id ,hsize_t_f * startblock,
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5sget_select_bounds_c
- * Purpose: Call H5Sget_select_bounds to retrieve the coordinates
+/****if* H5Sf/h5sget_select_bounds_c
+ * NAME
+ * h5sget_select_bounds_c
+ * PURPOSE
+ * Call H5Sget_select_bounds to retrieve the coordinates
* of the bounding box containing the current selection
* and places them into user-supplied buffers
- * Inputs: space_id - identifier of the dataspace
- * Outputs: start - Starting coordinates of the bounding box
+ * INPUTS
+ * space_id - identifier of the dataspace
+ * OUTPUTS
+ * start - Starting coordinates of the bounding box
* end - Ending coordinates of the bounding box,
* i.e., the coordinates of the diagonally opposite corne
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Wednesday, November 17, 1999
- * Modifications: swapped array bounds to account for C and Fortran reversed
+ * HISTORY
+ * swapped array bounds to account for C and Fortran reversed
* matrix notation.
- * M.S. Breitenfeld
- *---------------------------------------------------------------------------*/
+ * M. Scot Breitenfeld
+ * SOURCE
+*/
int_f
nh5sget_select_bounds_c( hid_t_f *space_id , hsize_t_f * start, hsize_t_f * end)
+/******/
{
hid_t c_space_id;
hsize_t c_start[H5S_MAX_RANK];
@@ -299,9 +377,11 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5sget_select_elem_pointlist_c
- * Purpose: Call H5Sget_select_elem_pointlist
+/****if* H5Sf/h5sget_select_elem_pointlist_c
+ * NAME
+ * h5sget_select_elem_pointlist_c
+ * PURPOSE
+ * Call H5Sget_select_elem_pointlist
* get a list of element points in the
* current dataspace selectin.
* Starting with the startpoint-th point in the
@@ -309,19 +389,26 @@ done:
* buffer. If the user's buffer fills up before numpoints
* points are inserted, the buffer
* will contain only as many points as fit.
- * Inputs: space_id - identifier of the dataspace
+ * INPUTS
+ * space_id - identifier of the dataspace
* startpoint - Element point to start with
* numpoints - Number of element points to get
- * Outputs: buf - List of element points selected
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * OUTPUTS
+ * buf - List of element points selected
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Wednesday, November 17, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5sget_select_elem_pointlist_c( hid_t_f *space_id ,hsize_t_f * startpoint,
hsize_t_f * numpoints, hsize_t_f * buf)
+/******/
{
int ret_value = -1;
hid_t c_space_id;
@@ -368,18 +455,26 @@ nh5sget_select_elem_pointlist_c( hid_t_f *space_id ,hsize_t_f * startpoint,
-/*----------------------------------------------------------------------------
- * Name: h5sselect_all_c
- * Purpose: Call H5Sselect_all to select entire dataspace
- * Inputs: space_id - identifier of the dataspace
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Sf/h5sselect_all_c
+ * NAME
+ * h5sselect_all_c
+ * PURPOSE
+ * Call H5Sselect_all to select entire dataspace
+ * INPUTS
+ * space_id - identifier of the dataspace
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Tuesday, August 10, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5sselect_all_c ( hid_t_f *space_id )
+/******/
{
int ret_value = 0;
hid_t c_space_id;
@@ -389,18 +484,26 @@ nh5sselect_all_c ( hid_t_f *space_id )
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5sselect_none_c
- * Purpose: Call H5Sselect_none to reset the selection region
- * Inputs: space_id - identifier of the dataspace
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Sf/h5sselect_none_c
+ * NAME
+ * h5sselect_none_c
+ * PURPOSE
+ * Call H5Sselect_none to reset the selection region
+ * INPUTS
+ * space_id - identifier of the dataspace
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Tuesday, August 10, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5sselect_none_c ( hid_t_f *space_id )
+/******/
{
int ret_value = 0;
hid_t c_space_id;
@@ -410,21 +513,30 @@ nh5sselect_none_c ( hid_t_f *space_id )
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5sselect_valid_c
- * Purpose: Call H5Sselect_valid to verify that selection
+/****if* H5Sf/h5sselect_valid_c
+ * NAME
+ * h5sselect_valid_c
+ * PURPOSE
+ * Call H5Sselect_valid to verify that selection
* is within dataspace extent.
- * Inputs: space_id - identifier of the dataspace
- * Outputs: flag - 0 if not valid selection, 1 if is valid selection,
+ * INPUTS
+ * space_id - identifier of the dataspace
+ * OUTPUTS
+ * flag - 0 if not valid selection, 1 if is valid selection,
* and negative on failure.
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Tuesday, August 10, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5sselect_valid_c ( hid_t_f *space_id , int_f *flag )
+/******/
{
int ret_value = 0;
hid_t c_space_id;
@@ -437,20 +549,29 @@ nh5sselect_valid_c ( hid_t_f *space_id , int_f *flag )
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5sget_simple_extent_npoints_c
- * Purpose: Call H5Sget_simple_extent_npoints to determine the number
+/****if* H5Sf/h5sget_simple_extent_npoints_c
+ * NAME
+ * h5sget_simple_extent_npoints_c
+ * PURPOSE
+ * Call H5Sget_simple_extent_npoints to determine the number
* of elements in a dataspace
- * Inputs: space_id - identifier of the dataspace
- * Outputs: npoints - number of points in a dataspace
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * INPUTS
+ * space_id - identifier of the dataspace
+ * OUTPUTS
+ * npoints - number of points in a dataspace
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, August 11, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5sget_simple_extent_npoints_c ( hid_t_f *space_id , hsize_t_f *npoints )
+/******/
{
int ret_value = 0;
hid_t c_space_id;
@@ -463,20 +584,29 @@ nh5sget_simple_extent_npoints_c ( hid_t_f *space_id , hsize_t_f *npoints )
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5sget_select_npoints_c
- * Purpose: Call H5Sget_select_npoints to determine the number
+/****if* H5Sf/h5sget_select_npoints_c
+ * NAME
+ * h5sget_select_npoints_c
+ * PURPOSE
+ * Call H5Sget_select_npoints to determine the number
* of elements in a dataspace selection
- * Inputs: space_id - identifier of the dataspace
- * Outputs: npoints - number of points in a dataspace selection
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * INPUTS
+ * space_id - identifier of the dataspace
+ * OUTPUTS
+ * npoints - number of points in a dataspace selection
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, August 11, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5sget_select_npoints_c ( hid_t_f *space_id , hssize_t_f *npoints )
+/******/
{
int ret_value = 0;
hssize_t c_npoints;
@@ -489,20 +619,29 @@ nh5sget_select_npoints_c ( hid_t_f *space_id , hssize_t_f *npoints )
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5sget_simple_extent_ndims_c
- * Purpose: Call H5Sget_simple_extent_ndims to determine the number
+/****if* H5Sf/h5sget_simple_extent_ndims_c
+ * NAME
+ * h5sget_simple_extent_ndims_c
+ * PURPOSE
+ * Call H5Sget_simple_extent_ndims to determine the number
* dimensions
- * Inputs: space_id - identifier of the dataspace
- * Outputs: rank - number of dataspace dimensions
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * INPUTS
+ * space_id - identifier of the dataspace
+ * OUTPUTS
+ * rank - number of dataspace dimensions
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, August 11, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5sget_simple_extent_ndims_c ( hid_t_f *space_id , int_f *ndims )
+/******/
{
int ret_value = 0;
hid_t c_space_id;
@@ -515,21 +654,30 @@ nh5sget_simple_extent_ndims_c ( hid_t_f *space_id , int_f *ndims )
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5sget_simple_extent_type_c
- * Purpose: Call H5Sget_simple_extent_type to determine the class type
+/****if* H5Sf/h5sget_simple_extent_type_c
+ * NAME
+ * h5sget_simple_extent_type_c
+ * PURPOSE
+ * Call H5Sget_simple_extent_type to determine the class type
* of a dataspace
- * Inputs: space_id - identifier of the dataspace
- * Outputs: classtype - class type; possible values are:
+ * INPUTS
+ * space_id - identifier of the dataspace
+ * OUTPUTS
+ * classtype - class type; possible values are:
* H5S_SCALAR_F (0), H5S_SIMPLE_F (1), H5S_NULL_F (2)
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, August 11, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5sget_simple_extent_type_c ( hid_t_f *space_id , int_f *classtype)
+/******/
{
int ret_value = 0;
hid_t c_space_id;
@@ -547,20 +695,28 @@ nh5sget_simple_extent_type_c ( hid_t_f *space_id , int_f *classtype)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5soffset_simple_c
- * Purpose: Call H5Soffset_simple to set the offset of a simple
+/****if* H5Sf/h5soffset_simple_c
+ * NAME
+ * h5soffset_simple_c
+ * PURPOSE
+ * Call H5Soffset_simple to set the offset of a simple
* dataspace
- * Inputs: space_id - identifier of the dataspace
+ * INPUTS
+ * space_id - identifier of the dataspace
* offset - offset array
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, August 11, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5soffset_simple_c ( hid_t_f *space_id , hssize_t_f *offset)
+/******/
{
hid_t c_space_id;
int rank;
@@ -586,22 +742,30 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5sset_extent_simple_c
- * Purpose: Call H5Sset_extent_simple to set or reset size of
+/****if* H5Sf/h5sset_extent_simple_c
+ * NAME
+ * h5sset_extent_simple_c
+ * PURPOSE
+ * Call H5Sset_extent_simple to set or reset size of
* existing dataspace
- * Inputs: space_id - identifier of the dataspace
+ * INPUTS
+ * space_id - identifier of the dataspace
* rank - dataspace rank
* current_size - array with the new dimension sizes
* maximum_size - aray with maximum sizes of dimensions
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, August 11, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5sset_extent_simple_c ( hid_t_f *space_id , int_f *rank, hsize_t_f *current_size, hsize_t_f *maximum_size)
+/******/
{
hsize_t c_current_size[H5S_MAX_RANK];
hsize_t c_maximum_size[H5S_MAX_RANK];
@@ -623,21 +787,31 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5sget_simple_extent_dims_c
- * Purpose: Call H5Sget_simple_extent_dims to retrieve sizes of an
+
+/****if* H5Sf/h5sget_simple_extent_dims_c
+ * NAME
+ * h5sget_simple_extent_dims_c
+ * PURPOSE
+ * Call H5Sget_simple_extent_dims to retrieve sizes of an
* existing dataspace
- * Inputs: space_id - identifier of the dataspace
- * Outputs: dims - array with the dimension sizes
+ * INPUTS
+ * space_id - identifier of the dataspace
+ * OUTPUTS
+ * dims - array with the dimension sizes
* maxdims - aray with maximum sizes of dimensions
- * Returns: number of dataspace dimensions (rank) on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * number of dataspace dimensions (rank) on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, August 11, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5sget_simple_extent_dims_c ( hid_t_f *space_id , hsize_t_f *dims, hsize_t_f *maxdims)
+/******/
{
hid_t c_space_id;
hsize_t c_dims[H5S_MAX_RANK];
@@ -668,21 +842,30 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5sis_simple_c
- * Purpose: Call H5Sis_simple to detrmine if the dataspace
+/****if* H5Sf/h5sis_simple_c
+ * NAME
+ * h5sis_simple_c
+ * PURPOSE
+ * Call H5Sis_simple to detrmine if the dataspace
* is simple.
- * Inputs: space_id - identifier of the dataspace
- * Outputs: flag - 0 if not simple, 1 if is simple,
+ * INPUTS
+ * space_id - identifier of the dataspace
+ * OUTPUTS
+ * flag - 0 if not simple, 1 if is simple,
* and negative on failure.
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, August 11, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5sis_simple_c ( hid_t_f *space_id , int_f *flag )
+/******/
{
int ret_value = 0;
hid_t c_space_id;
@@ -696,19 +879,27 @@ nh5sis_simple_c ( hid_t_f *space_id , int_f *flag )
}
-/*----------------------------------------------------------------------------
- * Name: h5sextent_copy_c
- * Purpose: Call H5Sextent_copy to copy an extent of dataspace
- * Inputs: dest_space_id - identifier of the destination dataspace
+/****if* H5Sf/h5sextent_copy_c
+ * NAME
+ * h5sextent_copy_c
+ * PURPOSE
+ * Call H5Sextent_copy to copy an extent of dataspace
+ * INPUTS
+ * dest_space_id - identifier of the destination dataspace
* source_space_id - identifier of the source dataspace
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, August 11, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5sextent_copy_c ( hid_t_f *dest_space_id , hid_t_f *source_space_id)
+/******/
{
int ret_value = 0;
hid_t c_dest_space_id, c_source_space_id;
@@ -721,18 +912,26 @@ nh5sextent_copy_c ( hid_t_f *dest_space_id , hid_t_f *source_space_id)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5sset_extent_none_c
- * Purpose: Call H5Sset_extent_none to remove extent from a dataspace
- * Inputs: space_id - dataspace identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Sf/h5sset_extent_none_c
+ * NAME
+ * h5sset_extent_none_c
+ * PURPOSE
+ * Call H5Sset_extent_none to remove extent from a dataspace
+ * INPUTS
+ * space_id - dataspace identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, August 11, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5sset_extent_none_c ( hid_t_f *space_id )
+/******/
{
int ret_value = 0;
hid_t c_space_id;
@@ -744,10 +943,13 @@ nh5sset_extent_none_c ( hid_t_f *space_id )
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5sselect_hyperslab_c
- * Purpose: Call H5Sselect_hyperslab to select a hyperslab
- * Inputs: space_id - identifier of the dataspace
+/****if* H5Sf/h5sselect_hyperslab_c
+ * NAME
+ * h5sselect_hyperslab_c
+ * PURPOSE
+ * Call H5Sselect_hyperslab to select a hyperslab
+ * INPUTS
+ * space_id - identifier of the dataspace
* operator - defines how the new selection is combined
* with the previous one; current values are
* H5S_SELECT_SET_F (0) and H5S_SELECT_OR_F (1)
@@ -755,14 +957,19 @@ nh5sset_extent_none_c ( hid_t_f *space_id )
* count - number of blocks included in the hyperslab
* stride - hyperslab stride (interval between blocks)
* block - size of block in the hyperslab
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, August 11, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5sselect_hyperslab_c ( hid_t_f *space_id , int_f *op, hsize_t_f *start, hsize_t_f *count, hsize_t_f *stride, hsize_t_f *block)
+/******/
{
hsize_t c_start[H5S_MAX_RANK];
hsize_t c_count[H5S_MAX_RANK];
@@ -795,25 +1002,35 @@ done:
return ret_value;
}
+
#ifdef NEW_HYPERSLAB_API
-/*----------------------------------------------------------------------------
- * Name: h5scombine_hyperslab_c
- * Purpose: Call H5Scombine_hyperslab
- * Inputs: space_id - identifier of the dataspace
+/****if* H5Sf/h5scombine_hyperslab_c
+ * NAME
+ * h5scombine_hyperslab_c
+ * PURPOSE
+ * Call H5Scombine_hyperslab
+ * INPUTS
+ * space_id - identifier of the dataspace
* operator - defines how the new selection is combined
* start - offset of start of hyperslab
* count - number of blocks included in the hyperslab
* stride - hyperslab stride (interval between blocks)
* block - size of block in the hyperslab
- * Outputs: hyper_id - identifier for the new dataspace
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * hyper_id - identifier for the new dataspace
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Monday, October 7, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5scombine_hyperslab_c ( hid_t_f *space_id , int_f *op, hsize_t_f *start, hsize_t_f *count, hsize_t_f *stride, hsize_t_f *block, hid_t_f *hyper_id)
+/******/
{
int ret_value = -1;
hid_t c_space_id;
@@ -869,21 +1086,30 @@ DONE:
if(c_block != NULL) HDfree(c_block);
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5scombine_select_c
- * Purpose: Call H5Scombine_ select
- * Inputs: space1_id - identifier of the first dataspace
+/****if* H5Sf/h5scombine_select_c
+ * NAME
+ * h5scombine_select_c
+ * PURPOSE
+ * Call H5Scombine_ select
+ * INPUTS
+ * space1_id - identifier of the first dataspace
* operator - defines how the new selection is combined
* space2_id - identifier of the second dataspace
- * Outputs: ds_id - identifier for the new dataspace
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * ds_id - identifier for the new dataspace
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Monday, October 7, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5scombine_select_c ( hid_t_f *space1_id , int_f *op, hid_t_f *space2_id, hid_t_f *ds_id)
+/******/
{
int ret_value = -1;
hid_t c_space1_id;
@@ -901,20 +1127,28 @@ nh5scombine_select_c ( hid_t_f *space1_id , int_f *op, hid_t_f *space2_id, hid_t
ret_value = 0;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5sselect_select_c
- * Purpose: Call H5Sselect_ select
- * Inputs: space1_id - identifier of the first dataspace to modify
+/****if* H5Sf/h5sselect_select_c
+ * NAME
+ * h5sselect_select_c
+ * PURPOSE
+ * Call H5Sselect_ select
+ * INPUTS
+ * space1_id - identifier of the first dataspace to modify
* operator - defines how the new selection is combined
* space2_id - identifier of the second dataspace
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Monday, October 7, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5sselect_select_c ( hid_t_f *space1_id , int_f *op, hid_t_f *space2_id)
+/******/
{
int ret_value = -1;
hid_t c_space1_id;
@@ -930,19 +1164,27 @@ nh5sselect_select_c ( hid_t_f *space1_id , int_f *op, hid_t_f *space2_id)
return ret_value;
}
#endif /*NEW_HYPERSLAB_API*/
-/*----------------------------------------------------------------------------
- * Name: h5sget_select_type_c
- * Purpose: Call H5Sget_select_type
- * Inputs: space_id - identifier of the dataspace
- * Outputs: type - type of selection
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Sf/h5sget_select_type_c
+ * NAME
+ * h5sget_select_type_c
+ * PURPOSE
+ * Call H5Sget_select_type
+ * INPUTS
+ * space_id - identifier of the dataspace
+ * OUTPUTS
+ * type - type of selection
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Monday, October 7, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
-
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5sget_select_type_c ( hid_t_f *space_id , int_f *type)
+/******/
{
int ret_value = -1;
hid_t c_space_id;
@@ -957,23 +1199,31 @@ nh5sget_select_type_c ( hid_t_f *space_id , int_f *type)
}
-/*----------------------------------------------------------------------------
- * Name: h5sselect_elements_c
- * Purpose: Call H5Sselect_elements to select elements of a dataspace
- * Inputs: space_id - identifier of the dataspace
+/****if* H5Sf/h5sselect_elements_c
+ * NAME
+ * h5sselect_elements_c
+ * PURPOSE
+ * Call H5Sselect_elements to select elements of a dataspace
+ * INPUTS
+ * space_id - identifier of the dataspace
* operator - defines how the new selection is combined
* with the previous one; current values are
* H5S_SELECT_SET_F (0)
* nelements - number of elements in the selection
* coord - arrays with the elements coordinates
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, August 11, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5sselect_elements_c ( hid_t_f *space_id , int_f *op, size_t_f *nelements, hsize_t_f *coord)
+/******/
{
int ret_value = -1;
hid_t c_space_id;
@@ -1004,22 +1254,31 @@ nh5sselect_elements_c ( hid_t_f *space_id , int_f *op, size_t_f *nelements, hsi
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5sdecode_c
- * Purpose: Call H5Sdecode
- * Inputs:
+/****if* H5Sf/h5sdecode_c
+ * NAME
+ * h5sdecode_c
+ * PURPOSE
+ * Call H5Sdecode
+ * INPUTS
+ *
* buf - Buffer for the data space object to be decoded.
- * Outputs:
+ * OUTPUTS
+ *
* obj_id - Object_id (non-negative)
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* March 26, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5sdecode_c ( _fcd buf, hid_t_f *obj_id )
+/******/
{
int ret_value = -1;
unsigned char *c_buf = NULL; /* Buffer to hold C string */
@@ -1041,21 +1300,29 @@ nh5sdecode_c ( _fcd buf, hid_t_f *obj_id )
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5sencode_c
- * Purpose: Call H5Sencode
- * Inputs:
+/****if* H5Sf/h5sencode_c
+ * NAME
+ * h5sencode_c
+ * PURPOSE
+ * Call H5Sencode
+ * INPUTS
+ *
* obj_id - Identifier of the object to be encoded.
* buf - Buffer for the object to be encoded into.
* nalloc - The size of the allocated buffer.
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* March 26, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5sencode_c (_fcd buf, hid_t_f *obj_id, size_t_f *nalloc )
+/******/
{
int ret_value = -1;
unsigned char *c_buf = NULL; /* Buffer to hold C string */
@@ -1102,22 +1369,31 @@ nh5sencode_c (_fcd buf, hid_t_f *obj_id, size_t_f *nalloc )
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5sextent_equal_c
- * Purpose: Call H5Sextent_equal
- * Inputs:
+/****if* H5Sf/h5sextent_equal_c
+ * NAME
+ * h5sextent_equal_c
+ * PURPOSE
+ * Call H5Sextent_equal
+ * INPUTS
+ *
* space1_id - First dataspace identifier.
* space2_id - Second dataspace identifier.
- * Outputs:
+ * OUTPUTS
+ *
* equal - TRUE if equal, FALSE if unequal.
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
* April 4, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5sextent_equal_c ( hid_t_f * space1_id, hid_t_f *space2_id, hid_t_f *c_equal)
+/******/
{
int ret_value = -1;
diff --git a/fortran/src/H5Sff.f90 b/fortran/src/H5Sff.f90
index 06bebef..9ef8ca8 100644
--- a/fortran/src/H5Sff.f90
+++ b/fortran/src/H5Sff.f90
@@ -1,3 +1,18 @@
+!****h* ROBODoc/H5S
+!
+! NAME
+! MODULE H5S
+!
+! FILE
+! fortran/src/H5Sff.f90
+!
+! PURPOSE
+! This file contains Fortran interfaces for H5S functions. It includes
+! all the functions that are independent on whether the Fortran 2003 functions
+! are enabled or disabled.
+!
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,44 +28,50 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! NOTES
+! *** IMPORTANT ***
+! If you add a new H5S function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
!
-! This file contains Fortran90 interfaces for H5S functions.
-!
- MODULE H5S
- USE H5GLOBAL
+!*****
- CONTAINS
+MODULE H5S
+ USE H5GLOBAL
-!----------------------------------------------------------------------
-! Name: h5screate_simple_f
+CONTAINS
+
+!
+!****s* H5S/h5screate_simple_f
!
-! Purpose: Creates a new simple data space and opens it for access .
+! NAME
+! h5screate_simple_f
!
-! Inputs:
-! rank - number of dimensions
-! dims - an array of the size of each dimension
-! Outputs:
-! space_id - dataspace identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! maxdims - an array of the maximum size of each
-! dimension
+! PURPOSE
+! Creates a new simple data space and opens it for access .
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! INPUTS
+! rank - number of dimensions
+! dims - an array of the size of each dimension
+! OUTPUTS
+! space_id - dataspace identifier
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! maxdims - an array of the maximum size of each dimension
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 6, 2001
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Comment:
-!----------------------------------------------------------------------
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+! SOURCE
SUBROUTINE h5screate_simple_f(rank, dims, space_id, hdferr, maxdims)
IMPLICIT NONE
- INTEGER, INTENT(IN) :: rank ! Number of dataspace dimensions
+ INTEGER, INTENT(IN) :: rank ! Number of dataspace dimensions
INTEGER(HSIZE_T), INTENT(IN) :: dims(rank)
! Array with the dimension
! sizes
@@ -59,11 +80,9 @@
INTEGER(HSIZE_T), OPTIONAL, INTENT(IN) :: maxdims(rank)
! Array with the maximum
! dimension sizes
+!*****
INTEGER(HSIZE_T), ALLOCATABLE, DIMENSION(:) :: f_maxdims
-! INTEGER, EXTERNAL :: h5screate_simple_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5screate_simple_c(rank, dims, maxdims, space_id)
USE H5GLOBAL
@@ -92,38 +111,34 @@
END SUBROUTINE h5screate_simple_f
-!----------------------------------------------------------------------
-! Name: h5sclose_f
!
-! Purpose: Releases and terminates access to a dataspace.
+!****s* H5S/h5sclose_f
!
-! Inputs:
-! space_id - identifier of dataspace to release
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5sclose_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Releases and terminates access to a dataspace.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 6, 2001
+! INPUTS
+! space_id - identifier of dataspace to release
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Comment:
-!----------------------------------------------------------------------
-
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! SOURCE
SUBROUTINE h5sclose_f(space_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5sclose_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5sclose_c(space_id)
USE H5GLOBAL
@@ -138,31 +153,34 @@
END SUBROUTINE h5sclose_f
-!----------------------------------------------------------------------
-! Name: h5screate_f
!
-! Purpose: Creates a new dataspace of a specified type.
+!****s* H5S/h5screate_f
+!
+! NAME
+! h5screate_f
+!
+! PURPOSE
+! Creates a new dataspace of a specified type.
!
-! Inputs:
-! classtype - the type of the dataspace to be created
-! Outputs:
-! space_id - dataspace identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! INPUTS
+! classtype - the type of the dataspace to be created
+! OUTPUTS
+! space_id - dataspace identifier
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 6, 2001
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! NOTES
!
-! Comment:
-!----------------------------------------------------------------------
+! SOURCE
SUBROUTINE h5screate_f(classtype, space_id, hdferr)
IMPLICIT NONE
INTEGER, INTENT(IN) :: classtype ! The type of the dataspace
@@ -173,10 +191,7 @@
! H5S_NULL_F(2)
INTEGER(HID_T), INTENT(OUT) :: space_id ! Dataspace identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5screate_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5screate_c(classtype, space_id)
USE H5GLOBAL
@@ -192,41 +207,41 @@
END SUBROUTINE h5screate_f
-!----------------------------------------------------------------------
-! Name: h5scopy_f
!
-! Purpose: Creates an exact copy of a dataspace.
+!****s* H5S/h5scopy_f
+!
+! NAME
+! h5scopy_f
!
-! Inputs:
-! space_id - dataspace identifier
-! Outputs:
-! new_space_id - identifier of dataspace's copy
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! PURPOSE
+! Creates an exact copy of a dataspace.
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! INPUTS
+! space_id - dataspace identifier
+! OUTPUTS
+! new_space_id - identifier of dataspace's copy
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 6, 2001
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! NOTES
!
-! Comment:
-!----------------------------------------------------------------------
+! SOURCE
SUBROUTINE h5scopy_f(space_id, new_space_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER(HID_T), INTENT(OUT) :: new_space_id
! Identifier of dataspace's copy
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5scopy_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5scopy_c(space_id, new_space_id)
USE H5GLOBAL
@@ -242,31 +257,31 @@
END SUBROUTINE h5scopy_f
-!----------------------------------------------------------------------
-! Name: h5sget_select_hyper_nblocks_f
!
-! Purpose: Get number of hyperslab blocks.
+!****s* H5S/h5sget_select_hyper_nblocks_f
!
-! Inputs:
-! space_id - dataspace identifier
-! Outputs:
-! num_blocks - number of hyperslab blocks in the current
-! hyperslab selection
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5sget_select_hyper_nblocks_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Get number of hyperslab blocks.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 6, 2001
+! INPUTS
+! space_id - dataspace identifier
+! OUTPUTS
+! num_blocks - number of hyperslab blocks in the current
+! hyperslab selection
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Comment:
-!----------------------------------------------------------------------
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! SOURCE
SUBROUTINE h5sget_select_hyper_nblocks_f(space_id, num_blocks, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
@@ -275,15 +290,12 @@
!in the current dataspace
!selection
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5sget_select_hyper_nblocks_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5sget_select_hyper_nblocks_c (space_id, num_blocks)
USE H5GLOBAL
!DEC$IF DEFINED(HDF5F90_WINDOWS)
-!DEC$ATTRIBUTES C,reference,decorate,alias:'H5SGET_SELECT_HYPER_NBLOCKS_C'::h5sget_select_hyper_nblocks_c
+! DEC$ ATTRIBUTES C,reference,decorate,alias:'H5SGET_SELECT_HYPER_NBLOCKS_C'::h5sget_select_hyper_nblocks_c
!DEC$ENDIF
INTEGER(HID_T), INTENT(IN) :: space_id
INTEGER(HSSIZE_T), INTENT(OUT) :: num_blocks
@@ -294,33 +306,32 @@
END SUBROUTINE h5sget_select_hyper_nblocks_f
-!----------------------------------------------------------------------
-! Name: h5sget_select_hyper_blocklist_f
!
-! Purpose: Gets the list of hyperslab blocks currently selected.
+!****s* H5S/h5sget_select_hyper_blocklist_f
!
-! Inputs:
-! space_id - dataspace identifier
-! startblock - hyperslab block to start with
-! num_blocks - number of blocks to get
-! Outputs:
-! buf - buffer to hold block list
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5sget_select_hyper_blocklist_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Gets the list of hyperslab blocks currently selected.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 6, 2001
+! INPUTS
+! space_id - dataspace identifier
+! startblock - hyperslab block to start with
+! num_blocks - number of blocks to get
+! OUTPUTS
+! buf - buffer to hold block list
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+! SOURCE
SUBROUTINE h5sget_select_hyper_blocklist_f(space_id, startblock, &
num_blocks, buf, hdferr)
IMPLICIT NONE
@@ -334,11 +345,8 @@
INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: buf
!List of hyperslab blocks selected
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
-
-! INTEGER, EXTERNAL :: h5sget_select_hyper_blocklist_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5sget_select_hyper_blocklist_c(space_id, startblock, &
num_blocks, buf )
@@ -359,33 +367,34 @@
END SUBROUTINE h5sget_select_hyper_blocklist_f
-!----------------------------------------------------------------------
-! Name: h5sget_select_bounds_f
!
-! Purpose: Gets the bounding box containing the current selection.
+!****s* H5S/h5sget_select_bounds_f
!
-! Inputs:
-! space_id - dataspace identifier
+! NAME
+! h5sget_select_bounds_f
!
-! Outputs:
-! start - starting coordinates of bounding box
-! end - ending coordinates of bounding box
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! PURPOSE
+! Gets the bounding box containing the current selection.
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! INPUTS
+! space_id - dataspace identifier
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 6, 2001
+! OUTPUTS
+! start - starting coordinates of bounding box
+! end - ending coordinates of bounding box
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! NONE
!
-! Comment:
-!----------------------------------------------------------------------
-
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+! SOURCE
SUBROUTINE h5sget_select_bounds_f(space_id, start, END, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
@@ -396,7 +405,7 @@
!i.e., the coordinates of the diagonally
!opposite corner
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
+!*****
INTERFACE
INTEGER FUNCTION h5sget_select_bounds_c(space_id, start, END)
USE H5GLOBAL
@@ -413,31 +422,31 @@
END SUBROUTINE h5sget_select_bounds_f
-!----------------------------------------------------------------------
-! Name: h5sget_select_elem_npoints_f
!
-! Purpose: Gets the number of element points in the current selection
+!****s* H5S/h5sget_select_elem_npoints_f
+!
+! NAME
+! h5sget_select_elem_npoints_f
!
-! Inputs:
-! space_id - dataspace identifier
-! Outputs:
-! num_points - number of element points in the current
-! dataspace selection
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! PURPOSE
+! Gets the number of element points in the current selection
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! INPUTS
+! space_id - dataspace identifier
+! OUTPUTS
+! num_points - number of element points in the current
+! dataspace selection
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 6, 2001
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
!
-! Comment:
-!----------------------------------------------------------------------
+! SOURCE
SUBROUTINE h5sget_select_elem_npoints_f(space_id, num_points, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
@@ -446,15 +455,12 @@
!in the current dataspace
!selection
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5sget_select_elem_npoints_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5sget_select_elem_npoints_c (space_id, num_points)
USE H5GLOBAL
!DEC$IF DEFINED(HDF5F90_WINDOWS)
-!DEC$ATTRIBUTES C,reference,decorate,alias:'H5SGET_SELECT_ELEM_NPOINTS_C'::h5sget_select_elem_npoints_c
+! DEC$ ATTRIBUTES C,reference,decorate,alias:'H5SGET_SELECT_ELEM_NPOINTS_C'::h5sget_select_elem_npoints_c
!DEC$ENDIF
INTEGER(HID_T), INTENT(IN) :: space_id
INTEGER(HSSIZE_T), INTENT(OUT) :: num_points
@@ -465,33 +471,32 @@
END SUBROUTINE h5sget_select_elem_npoints_f
-!----------------------------------------------------------------------
-! Name: h5sget_select_elem_pointlist_f
!
-! Purpose: Gets the list of element points currently selected.
+!****s* H5S/h5sget_select_elem_pointlist_f
!
-! Inputs:
-! space_id - dataspace identifier
-! startpoint - element point to start with
-! num_points - number of elemnt points to get
-! Outputs:
-! buf - buffer with element points selected
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5sget_select_elem_pointlist_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Gets the list of element points currently selected.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 6, 2001
+! INPUTS
+! space_id - dataspace identifier
+! startpoint - element point to start with
+! num_points - number of elemnt points to get
+! OUTPUTS
+! buf - buffer with element points selected
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Comment:
-!----------------------------------------------------------------------
-
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! SOURCE
SUBROUTINE h5sget_select_elem_pointlist_f(space_id, startpoint, &
num_points, buf, hdferr)
IMPLICIT NONE
@@ -503,13 +508,13 @@
INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: buf
!List of element points selected
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
+!*****
INTERFACE
INTEGER FUNCTION h5sget_select_elem_pointlist_c(space_id, startpoint, &
num_points, buf )
USE H5GLOBAL
!DEC$IF DEFINED(HDF5F90_WINDOWS)
-!DEC$ATTRIBUTES C,reference,decorate,alias:'H5SGET_SELECT_ELEM_POINTLIST_C'::h5sget_select_elem_pointlist_c
+! DEC$ ATTRIBUTES C,reference,decorate,alias:'H5SGET_SELECT_ELEM_POINTLIST_C'::h5sget_select_elem_pointlist_c
!DEC$ENDIF
INTEGER(HID_T), INTENT(IN) :: space_id
INTEGER(HSIZE_T), INTENT(IN) :: startpoint
@@ -523,52 +528,48 @@
END SUBROUTINE h5sget_select_elem_pointlist_f
-!----------------------------------------------------------------------
-! Name: h5sselect_elements_f
-!
-! Purpose: Selects elements to be included in the selection for
-! a dataspace
-!
-! Inputs:
-! space_id - dataspace identifier
-! operator - flag, valid values are:
-! H5S_SELECT_SET_F (0)
-! H5S_SELECT_OR_F (1)
-! rank - number of dataspace dimensions
-! num_elements - number of elements to be selected
-! coord - 2D (rank x num_elements) array with the
-! elements coordinates
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 6, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
+!
+!****s* H5S/h5sselect_elements_f
+!
+! NAME
+! h5sselect_elements_f
+!
+! PURPOSE
+! Selects elements to be included in the selection for
+! a dataspace
+!
+! INPUTS
+! space_id - dataspace identifier
+! operator - flag, valid values are:
+! H5S_SELECT_SET_F
+! H5S_SELECT_APPEND_F
+! H5S_SELECT_PREPEND_F
+! rank - number of dataspace dimensions
+! num_elements - number of elements to be selected
+! coord - 2D (rank x num_elements) array with the
+! elements coordinates ( 1-based); in C the
+! array is stored in 2D as (num_element x rank)
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+! SOURCE
SUBROUTINE h5sselect_elements_f(space_id, OPERATOR, rank, &
num_elements, coord, hdferr)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
- INTEGER, INTENT(IN) :: OPERATOR ! Flag, valid values are:
- ! H5S_SELECT_SET_F (0)
- ! H5S_SELECT_OR_F (1)
- INTEGER, INTENT(IN) :: rank ! Number of dataspace dimensions
- INTEGER(SIZE_T), INTENT(IN) :: num_elements ! Number of elements to be
- ! selected
- INTEGER(HSIZE_T), DIMENSION(rank,num_elements), INTENT(IN) :: coord
- ! Array with the coordinates
- ! of the selected elements
- ! coord(rank, num_elements)
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER, INTENT(IN) :: OPERATOR
+ INTEGER, INTENT(IN) :: rank
+ INTEGER(SIZE_T), INTENT(IN) :: num_elements
+ INTEGER(HSIZE_T), INTENT(IN) , DIMENSION(rank,num_elements) :: coord
+ INTEGER, INTENT(OUT) :: hdferr
+!*****
INTEGER(HSIZE_T), ALLOCATABLE, DIMENSION(:,:) :: c_coord
INTEGER :: error, i
@@ -596,43 +597,49 @@
ENDDO
hdferr = h5sselect_elements_c(space_id, OPERATOR, num_elements, c_coord)
+! ALLOCATE(c_coord(num_elements,rank), stat = error)
+! IF (error.NE. 0) THEN
+! hdferr = -1
+! RETURN
+! ENDIF
+!
+! c_coord = TRANSPOSE(coord)
+! hdferr = h5sselect_elements_c(space_id, OPERATOR, INT(rank,size_t), c_coord)
+
+
DEALLOCATE(c_coord)
END SUBROUTINE h5sselect_elements_f
-!----------------------------------------------------------------------
-! Name: h5sselect_all_f
!
-! Purpose: Selects the entire dataspace.
+!****s* H5S/h5sselect_all_f
!
-! Inputs:
-! space_id - identifier for the dataspace in which
-! selection being made
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5sselect_all_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Selects the entire dataspace.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 6, 2001
+! INPUTS
+! space_id - Identifier for the dataspace in which
+! selection being made
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Comment:
-!----------------------------------------------------------------------
-
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! SOURCE
SUBROUTINE h5sselect_all_f(space_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5sselect_all_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5sselect_all_c(space_id)
USE H5GLOBAL
@@ -647,39 +654,36 @@
END SUBROUTINE h5sselect_all_f
-!----------------------------------------------------------------------
-! Name: h5sselect_none_f
!
-! Purpose: Resets the selection region to include no elements.
+!****s* H5S/h5sselect_none_f
!
-! Inputs:
-! space_id - the identifier for the dataspace in which
-! the selection is being reset.
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5sselect_none_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Resets the selection region to include no elements.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 6, 2001
+! INPUTS
+! space_id - the identifier for the dataspace in which
+! the selection is being reset.
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! SOURCE
SUBROUTINE h5sselect_none_f(space_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5sselect_none_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5sselect_none_c(space_id)
USE H5GLOBAL
@@ -694,31 +698,32 @@
END SUBROUTINE h5sselect_none_f
-!----------------------------------------------------------------------
-! Name: h5sselect_valid_f
!
-! Purpose: Verifies that the selection is within the extent of
-! the dataspace.
+!****s* H5S/h5sselect_valid_f
+!
+! NAME
+! h5sselect_valid_f
!
-! Inputs:
-! space_id - identifier for the dataspace for which
-! selection is verified
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! PURPOSE
+! Verifies that the selection is within the extent of
+! the dataspace.
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! INPUTS
+! space_id - identifier for the dataspace for which
+! selection is verified
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 6, 2001
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Comment:
-!----------------------------------------------------------------------
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! SOURCE
SUBROUTINE h5sselect_valid_f(space_id, status, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
@@ -726,11 +731,9 @@
! contained within the extent,
! FALSE otherwise.
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
INTEGER :: flag ! "TRUE/FALSE/ERROR" flag from C routine
-! INTEGER, EXTERNAL :: h5sselect_valid_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5sselect_valid_c(space_id, flag)
USE H5GLOBAL
@@ -748,41 +751,38 @@
END SUBROUTINE h5sselect_valid_f
-!----------------------------------------------------------------------
-! Name: h5sget_simple_extent_npoints_f
!
-! Purpose: Determines the number of elements in a dataspace.
+!****s* H5S/h5sget_simple_extent_npoints_f
!
-! Inputs:
-! space_id - dataspace identifier
-! Outputs:
-! npoints - number of elements in the dataspace
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5sget_simple_extent_npoints_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Determines the number of elements in a dataspace.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 6, 2001
+! INPUTS
+! space_id - dataspace identifier
+! OUTPUTS
+! npoints - number of elements in the dataspace
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! SOURCE
SUBROUTINE h5sget_simple_extent_npoints_f(space_id, npoints, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER(HSIZE_T), INTENT(OUT) :: npoints ! Number of elements in
! dataspace
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5sget_simple_extent_npoints_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5sget_simple_extent_npoints_c( space_id, npoints)
USE H5GLOBAL
@@ -798,41 +798,36 @@
END SUBROUTINE h5sget_simple_extent_npoints_f
-!----------------------------------------------------------------------
-! Name: h5sget_select_npoints_f
!
-! Purpose: Determines the number of elements in a dataspace selection.
+!****s* H5S/h5sget_select_npoints_f
!
-! Inputs:
-! space_id - dataspace identifier
-! Outputs:
-! npoints - number of points in the dataspace selection
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5sget_select_npoints_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Determines the number of elements in a dataspace selection.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 6, 2001
+! INPUTS
+! space_id - dataspace identifier
+! OUTPUTS
+! npoints - number of points in the dataspace selection
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Comment:
-!----------------------------------------------------------------------
-
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+! SOURCE
SUBROUTINE h5sget_select_npoints_f(space_id, npoints, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER(HSSIZE_T), INTENT(OUT) :: npoints ! Number of elements in the
! selection
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5sget_select_npoints_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5sget_select_npoints_c(space_id, npoints)
USE H5GLOBAL
@@ -848,40 +843,36 @@
END SUBROUTINE h5sget_select_npoints_f
-!----------------------------------------------------------------------
-! Name: h5sget_simple_extent_ndims_f
!
-! Purpose: Determines the dimensionality of a dataspace
+!****s* H5S/h5sget_simple_extent_ndims_f
!
-! Inputs:
-! space_id - dataspace identifier
-! Outputs:
-! rank - number of dataspace dimensions
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5sget_simple_extent_ndims_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Determines the dimensionality of a dataspace
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 6, 2001
+! INPUTS
+! space_id - dataspace identifier
+! OUTPUTS
+! rank - number of dataspace dimensions
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Comment:
-!----------------------------------------------------------------------
-
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! SOURCE
SUBROUTINE h5sget_simple_extent_ndims_f(space_id, rank, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER, INTENT(OUT) :: rank ! Number of dimensions
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5sget_simple_extent_ndims_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5sget_simple_extent_ndims_c(space_id, rank)
USE H5GLOBAL
@@ -896,34 +887,32 @@
hdferr = h5sget_simple_extent_ndims_c(space_id, rank)
END SUBROUTINE h5sget_simple_extent_ndims_f
-
-!----------------------------------------------------------------------
-! Name: h5sget_simple_extent_dims_f
!
-! Purpose: Retrieves dataspace dimension size and maximum size.
+!****s* H5S/h5sget_simple_extent_dims_f
!
-! Inputs:
-! space_id - dataspace identifier
-! Outputs:
-! dims - array to store size of each dimension
-! maxdims - array to store maximum size of each
-! dimension
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5sget_simple_extent_dims_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Retrieves dataspace dimension size and maximum size.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 6, 2001
+! INPUTS
+! space_id - dataspace identifier
+! OUTPUTS
+! dims - array to store size of each dimension
+! maxdims - array to store maximum size of each
+! dimension
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Comment:
-!----------------------------------------------------------------------
-
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! SOURCE
SUBROUTINE h5sget_simple_extent_dims_f(space_id, dims, maxdims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
@@ -935,10 +924,7 @@
INTEGER, INTENT(OUT) :: hdferr ! Error code: -1 on failure,
! number of dimensions on
! on success
-
-! INTEGER, EXTERNAL :: h5sget_simple_extent_dims_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5sget_simple_extent_dims_c(space_id, dims, maxdims)
USE H5GLOBAL
@@ -955,35 +941,34 @@
END SUBROUTINE h5sget_simple_extent_dims_f
-!----------------------------------------------------------------------
-! Name: h5sget_simple_extent_type_f
!
-! Purpose: Determine the current class of a dataspace
+!****s* H5S/h5sget_simple_extent_type_f
!
-! Inputs:
-! space_id - dataspace identifier
-! Outputs:
-! classtype - class type, possible values are:
-! H5S_NO_CLASS_F (-1)
-! H5S_SCALAR_F (0)
-! H5S_SIMPLE_F (1)
-! H5S_NULL_F (2)
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5sget_simple_extent_type_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Determine the current class of a dataspace
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 6, 2001
+! INPUTS
+! space_id - dataspace identifier
+! OUTPUTS
+! classtype - class type, possible values are:
+! H5S_NO_CLASS_F (-1)
+! H5S_SCALAR_F (0)
+! H5S_SIMPLE_F (1)
+! H5S_NULL_F (2)
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Comment:
-!----------------------------------------------------------------------
-
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! SOURCE
SUBROUTINE h5sget_simple_extent_type_f(space_id, classtype, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
@@ -994,10 +979,7 @@
! H5S_SIMPLE_F (1)
! H5S_NULL_F (2)
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5sget_simple_extent_type_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5sget_simple_extent_type_c(space_id, classtype)
USE H5GLOBAL
@@ -1012,35 +994,33 @@
hdferr = h5sget_simple_extent_type_c(space_id, classtype)
END SUBROUTINE h5sget_simple_extent_type_f
-
-!----------------------------------------------------------------------
-! Name: h5sset_extent_simple_f
!
-! Purpose: Sets or resets the size of an existing dataspace.
+!****s* H5S/h5sset_extent_simple_f
!
-! Inputs:
-! space_id - dataspace identifier
-! rank - dataspace number of dimensions
-! current_size - array with the new sizes of dimensions
-! maximum_size - array with the new maximum sizes of
-! dimensions
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5sset_extent_simple_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Sets or resets the size of an existing dataspace.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 6, 2001
+! INPUTS
+! space_id - dataspace identifier
+! rank - dataspace number of dimensions
+! current_size - array with the new sizes of dimensions
+! maximum_size - array with the new maximum sizes of
+! dimensions
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Comment:
-!----------------------------------------------------------------------
-
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! SOURCE
SUBROUTINE h5sset_extent_simple_f(space_id, rank, current_size, &
maximum_size, hdferr)
IMPLICIT NONE
@@ -1054,10 +1034,7 @@
! sizes of dimensions
! sizes
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5sset_extent_simple_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5sset_extent_simple_c(space_id, rank, &
current_size, maximum_size)
@@ -1076,33 +1053,31 @@
maximum_size)
END SUBROUTINE h5sset_extent_simple_f
-
-!----------------------------------------------------------------------
-! Name: h5sis_simple_f
!
-! Purpose: Determines whether a dataspace is a simple dataspace.
+!****s* H5S/h5sis_simple_f
!
-! Inputs:
-! space_id - dataspace identifier
-! Outputs:
-! status - flag to indicate if dataspace
-! is simple or not
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5sis_simple_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Determines whether a dataspace is a simple dataspace.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 6, 2001
+! INPUTS
+! space_id - dataspace identifier
+! OUTPUTS
+! status - flag to indicate if dataspace
+! is simple or not
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Comment:
-!----------------------------------------------------------------------
-
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! SOURCE
SUBROUTINE h5sis_simple_f(space_id, status, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
@@ -1110,11 +1085,9 @@
! is simple or not ( TRUE or
! FALSE)
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
INTEGER :: flag ! "TRUE/FALSE/ERROR from C"
-! INTEGER, EXTERNAL :: h5sis_simple_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5sis_simple_c(space_id, flag)
USE H5GLOBAL
@@ -1132,31 +1105,34 @@
END SUBROUTINE h5sis_simple_f
-!----------------------------------------------------------------------
-! Name: h5soffset_simple_f
!
-! Purpose: Sets the offset of a simple dataspace.
+!****s* H5S/h5soffset_simple_f
!
-! Inputs:
-! space_id - dataspace identifier
-! offset - the offset at which to position the
-! selection
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5soffset_simple_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Sets the offset of a simple dataspace.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 6, 2001
+! INPUTS
+! space_id - dataspace identifier
+! offset - the offset at which to position the
+! selection
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! NONE
!
-! Comment:
-!----------------------------------------------------------------------
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! SOURCE
SUBROUTINE h5soffset_simple_f(space_id, offset, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
@@ -1164,10 +1140,7 @@
! The offset at which to position
! the selection
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5soffset_simple_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5soffset_simple_c(space_id, offset)
USE H5GLOBAL
@@ -1183,33 +1156,38 @@
END SUBROUTINE h5soffset_simple_f
-!----------------------------------------------------------------------
-! Name: h5sextent_copy_f
!
-! Purpose: Copies the extent of a dataspace.
+!****s* H5S/h5sextent_copy_f
+!
+! NAME
+! h5sextent_copy_f
+!
+! PURPOSE
+! Copies the extent of a dataspace.
+!
+! INPUTS
+! dest_space_id - the identifier for the dataspace to which
+! the extent is copied
+! source_space_id - the identifier for the dataspace from
+! which the extent is copied
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! NONE
!
-! Inputs:
-! dest_space_id - the identifier for the dataspace to which
-! the extent is copied
-! source_space_id - the identifier for the dataspace from
-! which the extent is copied
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 6, 2001
+! NOTES
!
-! Comment:
-!----------------------------------------------------------------------
+! SOURCE
SUBROUTINE h5sextent_copy_f(dest_space_id, source_space_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dest_space_id ! Identifier of destination
@@ -1217,10 +1195,7 @@
INTEGER(HID_T), INTENT(IN) :: source_space_id ! Identifier of source
! dataspace
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5sextent_copy_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5sextent_copy_c(dest_space_id, source_space_id)
USE H5GLOBAL
@@ -1236,37 +1211,34 @@
END SUBROUTINE h5sextent_copy_f
-!----------------------------------------------------------------------
-! Name: h5sset_extent_none_f
!
-! Purpose: Removes the extent from a dataspace.
+!****s* H5S/h5sset_extent_none_f
!
-! Inputs:
-! space_id - dataspace identifier
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5sset_extent_none_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Removes the extent from a dataspace.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 6, 2001
+! INPUTS
+! space_id - dataspace identifier
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Comment:
-!----------------------------------------------------------------------
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! SOURCE
SUBROUTINE h5sset_extent_none_f(space_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5sset_extent_none_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5sset_extent_none_c(space_id)
USE H5GLOBAL
@@ -1281,38 +1253,40 @@
END SUBROUTINE h5sset_extent_none_f
-!----------------------------------------------------------------------
-! Name: h5sselect_hyperslab_f
-!
-! Purpose: Selects a hyperslab region to add to the current selected
-! region
-!
-! Inputs:
-! space_id - dataspace identifier
-! operator - flag, valid values are:
-! H5S_SELECT_SET_F (0)
-! H5S_SELECT_OR_F (1)
-! start - array with hyperslab offsets
-! count - number of blocks included in the
-! hyperslab
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! stride - array with hyperslab strides
-! block - array with hyperslab block sizes
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 6, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
+!
+!****s* H5S/h5sselect_hyperslab_f
+!
+! NAME
+! h5sselect_hyperslab_f
+!
+! PURPOSE
+! Selects a hyperslab region to add to the current selected
+! region
+!
+! INPUTS
+! space_id - dataspace identifier
+! operator - flag, valid values are:
+! H5S_SELECT_SET_F (0)
+! H5S_SELECT_OR_F (1)
+! start - array with hyperslab offsets
+! count - number of blocks included in the
+! hyperslab
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! stride - array with hyperslab strides
+! block - array with hyperslab block sizes
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! SOURCE
SUBROUTINE h5sselect_hyperslab_f(space_id, operator, start, count, &
hdferr, stride, block)
IMPLICIT NONE
@@ -1332,14 +1306,12 @@
! in each direction
INTEGER(HSIZE_T), DIMENSION(:), OPTIONAL, INTENT(IN) :: block
! Sizes of element block
+!*****
INTEGER(HSIZE_T), DIMENSION(:), ALLOCATABLE :: def_block
INTEGER(HSIZE_T), DIMENSION(:), ALLOCATABLE :: def_stride
INTEGER :: rank
INTEGER :: error1, error2
-! INTEGER, EXTERNAL :: h5sselect_hyperslab_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5sselect_hyperslab_c(space_id, operator, &
start, count, stride, block)
@@ -1408,49 +1380,56 @@
deallocate(def_stride)
END SUBROUTINE h5sselect_hyperslab_f
-!----------------------------------------------------------------------
-! Name: h5scombine_hyperslab_f
-!
-! Purpose: Combine a hyperslab selection with the current
-! selection for a dataspace
-!
-! Inputs:
-! space_id - dataspace of selection to use
-! operator - flag, valid values are:
-! H5S_SELECT_NOOP_F
-! H5S_SELECT_SET_F
-! H5S_SELECT_OR_F
-! H5S_SELECT_AND_F
-! H5S_SELECT_XOR_F
-! H5S_SELECT_NOTB_F
-! H5S_SELECT_NOTA_F
-! H5S_SELECT_APPEND_F
-! H5S_SELECT_PREPEND_F
-! start - array with hyperslab offsets
-! count - number of blocks included in the
-! hyperslab
-! Outputs:
-! hyper_id - identifier for the new hyperslab
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! stride - array with hyperslab strides
-! block - array with hyperslab block sizes
-!
-! Programmer: Elena Pourmal
-! October 7, 2002
-!
-! Modifications:
-!
-! Comment: Commented out until 1.6 ? 10/08/2002
-!----------------------------------------------------------------------
-
-! SUBROUTINE h5scombine_hyperslab_f(space_id, operator, start, count, &
-! hyper_id, hdferr, stride, block)
-! IMPLICIT NONE
-! INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
-! INTEGER, INTENT(IN) :: operator ! Flag, valid values are:
+! !$!
+! !$!****s* H5S/h5scombine_hyperslab_f
+! !$!
+! !$! NAME
+! !$! h5scombine_hyperslab_f
+! !$!
+! !$! PURPOSE
+! !$! Combine a hyperslab selection with the current
+! !$! selection for a dataspace
+! !$!
+! !$! INPUTS
+! !$! space_id - dataspace of selection to use
+! !$! operator - flag, valid values are:
+! !$! H5S_SELECT_NOOP_F
+! !$! H5S_SELECT_SET_F
+! !$! H5S_SELECT_OR_F
+! !$! H5S_SELECT_AND_F
+! !$! H5S_SELECT_XOR_F
+! !$! H5S_SELECT_NOTB_F
+! !$! H5S_SELECT_NOTA_F
+! !$! H5S_SELECT_APPEND_F
+! !$! H5S_SELECT_PREPEND_F
+! !$! start - array with hyperslab offsets
+! !$! count - number of blocks included in the
+! !$! hyperslab
+! !$! OUTPUTS
+! !$! hyper_id - identifier for the new hyperslab
+! !$! hdferr: - error code
+! !$! Success: 0
+! !$! Failure: -1
+! !$! OPTIONAL PARAMETERS
+! !$! stride - array with hyperslab strides
+! !$! block - array with hyperslab block sizes
+! !$!
+! !$! AUTHOR
+! !$! Elena Pourmal
+! !$! October 7, 2002
+! !$!
+! !$! HISTORY
+! !$!
+! !$!
+! !$! NOTES
+! !$! Commented out until 1.6 ? 10/08/2002
+! !$!
+! !$! SOURCE
+! SUBROUTINE h5scombine_hyperslab_f(space_id, operator, start, count, &
+! hyper_id, hdferr, stride, block)
+! IMPLICIT NONE
+! INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
+! INTEGER, INTENT(IN) :: operator ! Flag, valid values are:
! H5S_SELECT_NOOP_F
! H5S_SELECT_SET_F
! H5S_SELECT_OR_F
@@ -1461,133 +1440,140 @@
! H5S_SELECT_APPEND_F
! H5S_SELECT_PREPEND_F
!
-! INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: start
+! INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: start
! Starting coordinates of the hyperslab
-! INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: count
+! INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: count
! Number of blocks to select
! from dataspace
-! INTEGER(HID_T), INTENT(OUT) :: hyper_id ! New hyperslab identifier
-! INTEGER, INTENT(OUT) :: hdferr ! Error code
-! INTEGER(HSIZE_T), DIMENSION(:), OPTIONAL, INTENT(IN) :: stride
+! INTEGER(HID_T), INTENT(OUT) :: hyper_id ! New hyperslab identifier
+! INTEGER, INTENT(OUT) :: hdferr ! Error code
+! INTEGER(HSIZE_T), DIMENSION(:), OPTIONAL, INTENT(IN) :: stride
! Array of how many elements to move
! in each direction
-! INTEGER(HSIZE_T), DIMENSION(:), OPTIONAL, INTENT(IN) :: block
+! INTEGER(HSIZE_T), DIMENSION(:), OPTIONAL, INTENT(IN) :: block
! Sizes of element block
-! INTEGER(HSIZE_T), DIMENSION(:), ALLOCATABLE :: def_block
-! INTEGER(HSIZE_T), DIMENSION(:), ALLOCATABLE :: def_stride
-! INTEGER :: rank
-! INTEGER :: error1, error2
-
-! INTERFACE
-! INTEGER FUNCTION h5scombine_hyperslab_c(space_id, operator, &
-! start, count, stride, block, hyper_id)
-! USE H5GLOBAL
-! !DEC$IF DEFINED(HDF5F90_WINDOWS)
-! !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SCOMBINE_HYPERSLAB_C'::h5scombine_hyperslab_c
-! !DEC$ENDIF
-! INTEGER(HID_T), INTENT(IN) :: space_id
-! INTEGER, INTENT(IN) :: operator
-! INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: start
-! INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: count
-! INTEGER(HSIZE_T), DIMENSION(*), OPTIONAL, INTENT(IN) :: stride
-! INTEGER(HSIZE_T), DIMENSION(*), OPTIONAL, INTENT(IN) :: block
-! INTEGER(HID_T), INTENT(OUT) :: hyper_id
-! END FUNCTION h5scombine_hyperslab_c
-! END INTERFACE
-
-! if (present(stride).and. present(block)) then
-! hdferr = h5scombine_hyperslab_c(space_id, operator, start, count, &
-! stride, block, hyper_id)
-! return
-! endif
+! INTEGER(HSIZE_T), DIMENSION(:), ALLOCATABLE :: def_block
+! INTEGER(HSIZE_T), DIMENSION(:), ALLOCATABLE :: def_stride
+! INTEGER :: rank
+! INTEGER :: error1, error2
+
+! INTERFACE
+! INTEGER FUNCTION h5scombine_hyperslab_c(space_id, operator, &
+! start, count, stride, block, hyper_id)
+! USE H5GLOBAL
+! !DEC$IF DEFINED(HDF5F90_WINDOWS)
+! !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SCOMBINE_HYPERSLAB_C'::h5scombine_hyperslab_c
+! !DEC$ENDIF
+! INTEGER(HID_T), INTENT(IN) :: space_id
+! INTEGER, INTENT(IN) :: operator
+! INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: start
+! INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: count
+! INTEGER(HSIZE_T), DIMENSION(*), OPTIONAL, INTENT(IN) :: stride
+! INTEGER(HSIZE_T), DIMENSION(*), OPTIONAL, INTENT(IN) :: block
+! INTEGER(HID_T), INTENT(OUT) :: hyper_id
+! END FUNCTION h5scombine_hyperslab_c
+! END INTERFACE
+
+! if (present(stride).and. present(block)) then
+! hdferr = h5scombine_hyperslab_c(space_id, operator, start, count, &
+! stride, block, hyper_id)
+! return
+! endif
! Case of optional parameters.
!
! Find the rank of the dataspace to allocate memery for
! default stride and block arrays.
!
-! CALL h5sget_simple_extent_ndims_f(space_id, rank, hdferr)
-! if( hdferr .EQ. -1) return
+! CALL h5sget_simple_extent_ndims_f(space_id, rank, hdferr)
+! if( hdferr .EQ. -1) return
!
-! if (present(stride).and. .not.present(block)) then
-! allocate(def_block(rank), stat=error1)
-! if (error1.NE.0) then
-! hdferr = -1
-! return
-! endif
-! def_block = 1
-! hdferr = h5scombine_hyperslab_c(space_id, operator, start, count, &
-! stride, def_block, hyper_id)
-! deallocate(def_block)
-! return
-! endif
-
-! if (.not.present(stride).and. present(block)) then
-! allocate(def_stride(rank), stat=error2)
-! if (error2.NE.0) then
-! hdferr = -1
-! return
-! endif
-! def_stride = 1
-! hdferr = h5scombine_hyperslab_c(space_id, operator, start, count, &
-! def_stride, block, hyper_id)
-! deallocate(def_stride)
-! return
-! endif
-! allocate(def_block(rank), stat=error1)
-! allocate(def_stride(rank), stat=error2)
-! if ((error1.NE.0) .OR. (error2.NE.0)) then
-! hdferr = -1
-! return
-! endif
-! def_block = 1
-! def_stride = 1
-! hdferr = h5scombine_hyperslab_c(space_id, operator, start, count, &
-! def_stride, def_block, hyper_id)
-! deallocate(def_block)
-! deallocate(def_stride)
-
-! END SUBROUTINE h5scombine_hyperslab_f
-
-!----------------------------------------------------------------------
-! Name: h5scombine_select_f
-!
-! Purpose: Combine two hyperslab selections with an operation
-! and return a dataspace with resulting selection.
-!
-! Inputs:
-! space1_id - dataspace of selection to use
-! operator - flag, valid values are:
-! H5S_SELECT_NOOP_F
-! H5S_SELECT_SET_F
-! H5S_SELECT_OR_F
-! H5S_SELECT_AND_F
-! H5S_SELECT_XOR_F
-! H5S_SELECT_NOTB_F
-! H5S_SELECT_NOTA_F
-! H5S_SELECT_APPEND_F
-! H5S_SELECT_PREPEND_F
-! space2_id - dataspace of selection to use
-! Outputs:
-! ds_id - idataspace identifier with the new selection
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters: - NONE
-!
-! Programmer: Elena Pourmal
-! October 7, 2002
-!
-! Modifications:
-!
-! Comment: commented out until 1.6 release(?) 10/08/2002
-!----------------------------------------------------------------------
-
-! SUBROUTINE h5scombine_select_f(space1_id, operator, space2_id, &
-! ds_id, hdferr)
-! IMPLICIT NONE
-! INTEGER(HID_T), INTENT(IN) :: space1_id ! First dataspace identifier
-! INTEGER(HID_T), INTENT(IN) :: space2_id ! Second dataspace identifier
-! INTEGER, INTENT(IN) :: operator ! Flag, valid values are:
+! if (present(stride).and. .not.present(block)) then
+! allocate(def_block(rank), stat=error1)
+! if (error1.NE.0) then
+! hdferr = -1
+! return
+! endif
+! def_block = 1
+! hdferr = h5scombine_hyperslab_c(space_id, operator, start, count, &
+! stride, def_block, hyper_id)
+! deallocate(def_block)
+! return
+! endif
+
+! if (.not.present(stride).and. present(block)) then
+! allocate(def_stride(rank), stat=error2)
+! if (error2.NE.0) then
+! hdferr = -1
+! return
+! endif
+! def_stride = 1
+! hdferr = h5scombine_hyperslab_c(space_id, operator, start, count, &
+! def_stride, block, hyper_id)
+! deallocate(def_stride)
+! return
+! endif
+! allocate(def_block(rank), stat=error1)
+! allocate(def_stride(rank), stat=error2)
+! if ((error1.NE.0) .OR. (error2.NE.0)) then
+! hdferr = -1
+! return
+! endif
+! def_block = 1
+! def_stride = 1
+! hdferr = h5scombine_hyperslab_c(space_id, operator, start, count, &
+! def_stride, def_block, hyper_id)
+! deallocate(def_block)
+! deallocate(def_stride)
+
+! END SUBROUTINE h5scombine_hyperslab_f
+
+! !$!
+! !$!****s* H5S/
+! !$!
+! !$! NAME
+! !$! h5scombine_select_f
+! !$!
+! !$! PURPOSE
+! !$! Combine two hyperslab selections with an operation
+! !$! and return a dataspace with resulting selection.
+! !$!
+! !$! INPUTS
+! !$! space1_id - dataspace of selection to use
+! !$! operator - flag, valid values are:
+! !$! H5S_SELECT_NOOP_F
+! !$! H5S_SELECT_SET_F
+! !$! H5S_SELECT_OR_F
+! !$! H5S_SELECT_AND_F
+! !$! H5S_SELECT_XOR_F
+! !$! H5S_SELECT_NOTB_F
+! !$! H5S_SELECT_NOTA_F
+! !$! H5S_SELECT_APPEND_F
+! !$! H5S_SELECT_PREPEND_F
+! !$! space2_id - dataspace of selection to use
+! !$! OUTPUTS
+! !$! ds_id - idataspace identifier with the new selection
+! !$! hdferr: - error code
+! !$! Success: 0
+! !$! Failure: -1
+! !$! OPTIONAL PARAMETERS - NONE
+! !$!
+! !$! AUTHOR
+! !$! Elena Pourmal
+! !$! October 7, 2002
+! !$!
+! !$! HISTORY
+! !$!
+! !$!
+! !$! NOTES commented out until 1.6 release(?) 10/08/2002
+! !$!
+
+! ! SOURCE
+! !$ SUBROUTINE h5scombine_select_f(space1_id, operator, space2_id, &
+! ds_id, hdferr)
+! IMPLICIT NONE
+! INTEGER(HID_T), INTENT(IN) :: space1_id ! First dataspace identifier
+! INTEGER(HID_T), INTENT(IN) :: space2_id ! Second dataspace identifier
+! INTEGER, INTENT(IN) :: operator ! Flag, valid values are:
! H5S_SELECT_NOOP_F
! H5S_SELECT_SET_F
! H5S_SELECT_OR_F
@@ -1598,70 +1584,77 @@
! H5S_SELECT_APPEND_F
! H5S_SELECT_PREPEND_F
!
-! INTEGER(HID_T), INTENT(OUT) :: ds_id ! New dataspace identifier
-! INTEGER, INTENT(OUT) :: hdferr ! Error code
-!
-! INTERFACE
-! INTEGER FUNCTION h5scombine_select_c(space1_id, operator, &
-! space2_id, ds_id)
-! USE H5GLOBAL
-! !DEC$IF DEFINED(HDF5F90_WINDOWS)
-! !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SCOMBINE_SELECT_C'::h5scombine_select_c
-! !DEC$ENDIF
-! INTEGER(HID_T), INTENT(IN) :: space1_id
-! INTEGER(HID_T), INTENT(IN) :: space2_id
-! INTEGER, INTENT(IN) :: operator
-! INTEGER(HID_T), INTENT(OUT) :: ds_id
-! END FUNCTION h5scombine_select_c
-! END INTERFACE
-
-! hdferr = h5scombine_select_c(space1_id, operator, space2_id, &
-! ds_id)
-! return
-
-! END SUBROUTINE h5scombine_select_f
-
-!----------------------------------------------------------------------
-! Name: h5sselect_select_f
-!
-! Purpose: Refine a hyperslab selection with an operation
-! using second hyperslab
-!
-! Inputs:
-! space1_id - dataspace of selection to modify
-! operator - flag, valid values are:
-! H5S_SELECT_NOOP_F
-! H5S_SELECT_SET_F
-! H5S_SELECT_OR_F
-! H5S_SELECT_AND_F
-! H5S_SELECT_XOR_F
-! H5S_SELECT_NOTB_F
-! H5S_SELECT_NOTA_F
-! H5S_SELECT_APPEND_F
-! H5S_SELECT_PREPEND_F
-! space2_id - dataspace of selection to use
-!
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters: - NONE
-!
-! Programmer: Elena Pourmal
-! October 7, 2002
-!
-! Modifications:
-!
-! Comment:Commented out until 1.6 release(?) 10/08/2002 EIP
-!----------------------------------------------------------------------
-
-! SUBROUTINE h5sselect_select_f(space1_id, operator, space2_id, &
-! hdferr)
-! IMPLICIT NONE
-! INTEGER(HID_T), INTENT(INOUT) :: space1_id ! Dataspace identifier to
+! INTEGER(HID_T), INTENT(OUT) :: ds_id ! New dataspace identifier
+! INTEGER, INTENT(OUT) :: hdferr ! Error code
+!
+! INTERFACE
+! INTEGER FUNCTION h5scombine_select_c(space1_id, operator, &
+! space2_id, ds_id)
+! USE H5GLOBAL
+! !DEC$IF DEFINED(HDF5F90_WINDOWS)
+! !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SCOMBINE_SELECT_C'::h5scombine_select_c
+! !DEC$ENDIF
+! INTEGER(HID_T), INTENT(IN) :: space1_id
+! INTEGER(HID_T), INTENT(IN) :: space2_id
+! INTEGER, INTENT(IN) :: operator
+! INTEGER(HID_T), INTENT(OUT) :: ds_id
+! END FUNCTION h5scombine_select_c
+! END INTERFACE
+
+! hdferr = h5scombine_select_c(space1_id, operator, space2_id, &
+! ds_id)
+! return
+
+! END SUBROUTINE h5scombine_select_f
+
+! !$!
+! !$!****s* H5S/
+! !$!
+! !$! NAME
+! !$! h5sselect_select_f
+! !$!
+! !$! PURPOSE
+! !$! Refine a hyperslab selection with an operation
+! !$! using second hyperslab
+! !$!
+! !$! INPUTS
+! !$! space1_id - dataspace of selection to modify
+! !$! operator - flag, valid values are:
+! !$! H5S_SELECT_NOOP_F
+! !$! H5S_SELECT_SET_F
+! !$! H5S_SELECT_OR_F
+! !$! H5S_SELECT_AND_F
+! !$! H5S_SELECT_XOR_F
+! !$! H5S_SELECT_NOTB_F
+! !$! H5S_SELECT_NOTA_F
+! !$! H5S_SELECT_APPEND_F
+! !$! H5S_SELECT_PREPEND_F
+! !$! space2_id - dataspace of selection to use
+! !$!
+! !$! OUTPUTS
+! !$! hdferr: - error code
+! !$! Success: 0
+! !$! Failure: -1
+! !$! OPTIONAL PARAMETERS - NONE
+! !$!
+! !$! AUTHOR
+! !$! Elena Pourmal
+! !$! October 7, 2002
+! !$!
+! !$! HISTORY
+! !$!
+! !$!
+! !$! NOTESCommented out until 1.6 release(?) 10/08/2002 EIP
+! !$!
+
+! ! SOURCE
+! SUBROUTINE h5sselect_select_f(space1_id, operator, space2_id, &
+! hdferr)
+! IMPLICIT NONE
+! INTEGER(HID_T), INTENT(INOUT) :: space1_id ! Dataspace identifier to
! modify
-! INTEGER(HID_T), INTENT(IN) :: space2_id ! Second dataspace identifier
-! INTEGER, INTENT(IN) :: operator ! Flag, valid values are:
+! INTEGER(HID_T), INTENT(IN) :: space2_id ! Second dataspace identifier
+! INTEGER, INTENT(IN) :: operator ! Flag, valid values are:
! H5S_SELECT_NOOP_F
! H5S_SELECT_SET_F
! H5S_SELECT_OR_F
@@ -1672,53 +1665,50 @@
! H5S_SELECT_APPEND_F
! H5S_SELECT_PREPEND_F
!
-! INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTERFACE
-! INTEGER FUNCTION h5sselect_select_c(space1_id, operator, &
-! space2_id)
-! USE H5GLOBAL
-! !DEC$IF DEFINED(HDF5F90_WINDOWS)
-! !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SSELECT_SELECT_C'::h5sselect_select_c
-! !DEC$ENDIF
-! INTEGER(HID_T), INTENT(INOUT) :: space1_id
-! INTEGER(HID_T), INTENT(IN) :: space2_id
-! INTEGER, INTENT(IN) :: operator
-! END FUNCTION h5sselect_select_c
-! END INTERFACE
-
-! hdferr = h5sselect_select_c(space1_id, operator, space2_id)
-! return
-
-! END SUBROUTINE h5sselect_select_f
-
-!----------------------------------------------------------------------
-! Name: h5sget_select_type_f
-!
-! Purpose: Retrieve the type of selection
-!
-! Inputs:
-! space_id - dataspace iidentifier with selection
-! Outputs:
-! type - flag, valid values are:
-! H5S_SEL_ERROR_F
-! H5S_SEL_NONE_F
-! H5S_SEL_POINTS_F
-! H5S_SEL_HYPERSLABS_F
-! H5S_SEL_ALL_F
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters: - NONE
-!
-! Programmer: Elena Pourmal
-! October 7, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
+! INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+! INTERFACE
+! INTEGER FUNCTION h5sselect_select_c(space1_id, operator, &
+! space2_id)
+! USE H5GLOBAL
+! !DEC$IF DEFINED(HDF5F90_WINDOWS)
+! !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SSELECT_SELECT_C'::h5sselect_select_c
+! !DEC$ENDIF
+! INTEGER(HID_T), INTENT(INOUT) :: space1_id
+! INTEGER(HID_T), INTENT(IN) :: space2_id
+! INTEGER, INTENT(IN) :: operator
+! END FUNCTION h5sselect_select_c
+! END INTERFACE
+
+! hdferr = h5sselect_select_c(space1_id, operator, space2_id)
+! return
+
+! END SUBROUTINE h5sselect_select_f
+
+!
+!****s* H5S/h5sget_select_type_f
+!
+! NAME
+! h5sget_select_type_f
+!
+! PURPOSE
+! Retrieve the type of selection
+!
+! INPUTS
+! space_id - dataspace iidentifier with selection
+! OUTPUTS
+! type - flag, valid values are:
+! H5S_SEL_ERROR_F
+! H5S_SEL_NONE_F
+! H5S_SEL_POINTS_F
+! H5S_SEL_HYPERSLABS_F
+! H5S_SEL_ALL_F
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! October 7, 2002
+!
+! SOURCE
SUBROUTINE h5sget_select_type_f(space_id, type, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(INOUT) :: space_id ! Dataspace identifier to
@@ -1729,7 +1719,7 @@
! H5S_SEL_HYPERSLABS_F
! H5S_SEL_ALL_F
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
+!*****
INTERFACE
INTEGER FUNCTION h5sget_select_type_c(space_id, type)
USE H5GLOBAL
@@ -1746,35 +1736,31 @@
END SUBROUTINE h5sget_select_type_f
-!----------------------------------------------------------------------
-! Name: H5Sdecode_f
-!
-! Purpose: Decode a binary object description of data space and return a new object handle.
!
-! Inputs:
-! buf - Buffer for the data space object to be decoded.
-! obj_id - Object ID
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
+!****s* H5S/H5Sdecode_f
!
-! Optional parameters: - NONE
+! NAME
+! H5Sdecode_f
!
-! Programmer: M.S. Breitenfeld
-! March 26, 2008
+! PURPOSE
+! Decode a binary object description of data space and return a new object handle.
!
-! Modifications:
+! INPUTS
+! buf - Buffer for the data space object to be decoded.
+! obj_id - Object ID
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
+! AUTHOR
+! M. Scot Breitenfeld
+! March 26, 2008
+! SOURCE
SUBROUTINE h5sdecode_f(buf, obj_id, hdferr)
IMPLICIT NONE
CHARACTER(LEN=*), INTENT(IN) :: buf ! Buffer for the data space object to be decoded.
INTEGER(HID_T), INTENT(OUT) :: obj_id ! Object ID
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
+!*****
INTERFACE
INTEGER FUNCTION h5sdecode_c(buf, obj_id)
USE H5GLOBAL
@@ -1791,38 +1777,34 @@
END SUBROUTINE h5sdecode_f
-!----------------------------------------------------------------------
-! Name: H5Sencode_f
!
-! Purpose: Encode a data space object description into a binary buffer.
+!****s* H5S/H5Sencode_f
!
-! Inputs:
-! obj_id - Identifier of the object to be encoded.
-! buf - Buffer for the object to be encoded into.
-! nalloc - The size of the allocated buffer.
-! Outputs:
-! nalloc - The size of the buffer needed.
-! hdferr: - error code
-! Success: 0
-! Failure: -1
+! NAME
+! H5Sencode_f
!
-! Optional parameters: - NONE
+! PURPOSE
+! Encode a data space object description into a binary buffer.
!
-! Programmer: M.S. Breitenfeld
-! March 26, 2008
+! INPUTS
+! obj_id - Identifier of the object to be encoded.
+! buf - Buffer for the object to be encoded into.
+! nalloc - The size of the allocated buffer.
+! OUTPUTS
+! nalloc - The size of the buffer needed.
+! hdferr - Returns 0 if successful and -1 if fails.
!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
+! AUTHOR
+! M. Scot Breitenfeld
+! March 26, 2008
+! SOURCE
SUBROUTINE h5sencode_f(obj_id, buf, nalloc, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id ! Identifier of the object to be encoded.
CHARACTER(LEN=*), INTENT(OUT) :: buf ! Buffer for the object to be encoded into.
INTEGER(SIZE_T), INTENT(INOUT) :: nalloc ! The size of the allocated buffer.
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
+!*****
INTERFACE
INTEGER FUNCTION h5sencode_c(buf, obj_id, nalloc)
@@ -1841,38 +1823,32 @@
END SUBROUTINE h5sencode_f
-
-!----------------------------------------------------------------------
-! Name: h5sextent_equal_f
+!****s* H5S/h5sextent_equal_f
!
-! Purpose: Determines whether two dataspace extents are equal.
+! NAME
+! h5sextent_equal_f
!
-! Inputs:
-! space1_id - First dataspace identifier.
-! space2_id - Second dataspace identifier.
-! Outputs:
-! Equal - .TRUE. if equal, .FALSE. if unequal.
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! PURPOSE
+! Determines whether two dataspace extents are equal.
!
-! Programmer: M.S. Breitenfeld
-! April 2, 2008
+! INPUTS
+! space1_id - First dataspace identifier.
+! space2_id - Second dataspace identifier.
+! OUTPUTS
+! Equal - .TRUE. if equal, .FALSE. if unequal.
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! M. Scot Breitenfeld
+! April 2, 2008
!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
+! SOURCE
SUBROUTINE h5sextent_equal_f(space1_id, space2_id, equal, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space1_id ! First dataspace identifier.
INTEGER(HID_T), INTENT(IN) :: space2_id ! Second dataspace identifier.
LOGICAL, INTENT(OUT) :: Equal ! .TRUE. if equal, .FALSE. if unequal.
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
+!*****
INTEGER(HID_T) :: c_equal
INTERFACE
diff --git a/fortran/src/H5Tf.c b/fortran/src/H5Tf.c
index 37cfca0..c8ff6e0 100644
--- a/fortran/src/H5Tf.c
+++ b/fortran/src/H5Tf.c
@@ -1,4 +1,9 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+/****h* H5Tf/H5Tf
+ * PURPOSE
+ * This file contains C stubs for H5T Fortran APIs
+ *
+ * COPYRIGHT
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
@@ -11,28 +16,38 @@
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* This files contains C stubs for H5T Fortran APIs */
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ ******
+*/
#include "H5f90.h"
-/*----------------------------------------------------------------------------
- * Name: h5topen_c
- * Purpose: Call H5Topen2 to open a datatype
- * Inputs: loc_id - file or group identifier
+/****if* H5Tf/h5topen_c
+ * NAME
+ * h5topen_c
+ * PURPOSE
+ * Call H5Topen2 to open a datatype
+ * INPUTS
+ * loc_id - file or group identifier
* name - name of the datatype within file or group
* namelen - name length
* tapl_id - datatype access property list identifier
- * Outputs: type_id - dataset identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * type_id - dataset identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Saturday, August 14, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5topen_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *type_id, hid_t_f *tapl_id)
+/******/
{
char *c_name = NULL;
hid_t c_type_id;
@@ -61,26 +76,34 @@ done:
}
-/*----------------------------------------------------------------------------
- * Name: h5tcommit_c
- * Purpose: Call H5Tcommit2 to commit a datatype
- * Inputs: loc_id - file or group identifier
+/****if* H5Tf/h5tcommit_c
+ * NAME
+ * h5tcommit_c
+ * PURPOSE
+ * Call H5Tcommit2 to commit a datatype
+ * INPUTS
+ * loc_id - file or group identifier
* name - name of the datatype within file or group
* namelen - name length
* type_id - dataset identifier
* lcpl_id - Link creation property list
* tcpl_id - Datatype creation property list
* tapl_id - Datatype access property list
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Saturday, August 14, 1999
- * Modifications:
+ * HISTORY
+ *
* - Added passing optional parameters for version 1.8
- * M.S. Breitenfeld
- *---------------------------------------------------------------------------*/
+ * M. Scot Breitenfeld
+ * SOURCE
+*/
int_f
nh5tcommit_c(hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *type_id,
hid_t_f *lcpl_id, hid_t_f *tcpl_id, hid_t_f *tapl_id)
+/******/
{
char *c_name = NULL;
int ret_value = -1;
@@ -101,18 +124,26 @@ done:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tclose_c
- * Purpose: Call H5Tclose to close the datatype
- * Inputs: type_id - identifier of the datatype to be closed
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Tf/h5tclose_c
+ * NAME
+ * h5tclose_c
+ * PURPOSE
+ * Call H5Tclose to close the datatype
+ * INPUTS
+ * type_id - identifier of the datatype to be closed
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Saturday, August 14, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tclose_c ( hid_t_f *type_id )
+/******/
{
int ret_value = 0;
hid_t c_type_id;
@@ -123,19 +154,28 @@ nh5tclose_c ( hid_t_f *type_id )
}
-/*----------------------------------------------------------------------------
- * Name: h5tcopy_c
- * Purpose: Call H5Tcopy to copy a datatype
- * Inputs: type_id - identifier of the datatype to be copied
- * Outputs: new_type_id - identifier of the new datatype
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Tf/h5tcopy_c
+ * NAME
+ * h5tcopy_c
+ * PURPOSE
+ * Call H5Tcopy to copy a datatype
+ * INPUTS
+ * type_id - identifier of the datatype to be copied
+ * OUTPUTS
+ * new_type_id - identifier of the new datatype
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Saturday, August 14, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tcopy_c ( hid_t_f *type_id , hid_t_f *new_type_id)
+/******/
{
int ret_value = 0;
hid_t c_type_id;
@@ -148,20 +188,29 @@ nh5tcopy_c ( hid_t_f *type_id , hid_t_f *new_type_id)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tequal_c
- * Purpose: Call H5Tequal to copy a datatype
- * Inputs: type1_id - datatype identifier
+/****if* H5Tf/h5tequal_c
+ * NAME
+ * h5tequal_c
+ * PURPOSE
+ * Call H5Tequal to copy a datatype
+ * INPUTS
+ * type1_id - datatype identifier
* type2_id - datatype identifier
- * Outputs: c_flag - flag; indicates if two datatypes are equal or not.
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * c_flag - flag; indicates if two datatypes are equal or not.
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Tuesday, February 22, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tequal_c ( hid_t_f *type1_id , hid_t_f *type2_id, int_f *c_flag)
+/******/
{
int ret_value = -1;
hid_t c_type1_id, c_type2_id;
@@ -177,11 +226,15 @@ nh5tequal_c ( hid_t_f *type1_id , hid_t_f *type2_id, int_f *c_flag)
}
-/*----------------------------------------------------------------------------
- * Name: h5tget_class_c
- * Purpose: Call H5Tget_class to determine the datatype class
- * Inputs: type_id - identifier of the dataspace
- * Outputs: classtype - class type; possible values are:
+/****if* H5Tf/h5tget_class_c
+ * NAME
+ * h5tget_class_c
+ * PURPOSE
+ * Call H5Tget_class to determine the datatype class
+ * INPUTS
+ * type_id - identifier of the dataspace
+ * OUTPUTS
+ * classtype - class type; possible values are:
* H5T_NO_CLASS_F (-1)
* H5T_INTEGER_F (0)
* H5T_FLOAT_F (1)
@@ -192,14 +245,19 @@ nh5tequal_c ( hid_t_f *type1_id , hid_t_f *type2_id, int_f *c_flag)
* H5T_COMPOUNDF (6)
* H5T_REFERENCE_F (7)
* H5T_ENUMF (8)
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Saturday, August 14, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tget_class_c ( hid_t_f *type_id , int_f *classtype)
+/******/
{
int ret_value = 0;
hid_t c_type_id;
@@ -228,22 +286,31 @@ nh5tget_class_c ( hid_t_f *type_id , int_f *classtype)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tget_order_c
- * Purpose: Call H5Tget_order to determine byte order
- * Inputs: type_id - identifier of the dataspace
- * Outputs: order; possible values are:
+/****if* H5Tf/h5tget_order_c
+ * NAME
+ * h5tget_order_c
+ * PURPOSE
+ * Call H5Tget_order to determine byte order
+ * INPUTS
+ * type_id - identifier of the dataspace
+ * OUTPUTS
+ * order; possible values are:
* H5T_ORDER_LE_F (0)
* H5T_ORDER_BE_F (1)
* H5T_ORDER_VAX_F (2)
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Saturday, August 14, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tget_order_c ( hid_t_f *type_id , int_f *order)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -263,22 +330,30 @@ nh5tget_order_c ( hid_t_f *type_id , int_f *order)
}
-/*----------------------------------------------------------------------------
- * Name: h5tset_order_c
- * Purpose: Call H5Tset_order to set byte order
- * Inputs: type_id - identifier of the dataspace
+/****if* H5Tf/h5tset_order_c
+ * NAME
+ * h5tset_order_c
+ * PURPOSE
+ * Call H5Tset_order to set byte order
+ * INPUTS
+ * type_id - identifier of the dataspace
* order; possible values are:
* H5T_ORDER_LE_F (0)
* H5T_ORDER_BE_F (1)
* H5T_ORDER_VAX_F (2)
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Saturday, August 14, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tset_order_c ( hid_t_f *type_id , int_f *order)
+/******/
{
int ret_value = 0;
hid_t c_type_id;
@@ -296,19 +371,28 @@ nh5tset_order_c ( hid_t_f *type_id , int_f *order)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tget_size_c
- * Purpose: Call H5Tget_size to get size of the datatype
- * Inputs: type_id - identifier of the dataspace
- * Outputs: size (in bytes)
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Tf/h5tget_size_c
+ * NAME
+ * h5tget_size_c
+ * PURPOSE
+ * Call H5Tget_size to get size of the datatype
+ * INPUTS
+ * type_id - identifier of the dataspace
+ * OUTPUTS
+ * size (in bytes)
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Saturday, August 14, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tget_size_c ( hid_t_f *type_id , size_t_f *size)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -322,19 +406,28 @@ nh5tget_size_c ( hid_t_f *type_id , size_t_f *size)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tset_size_c
- * Purpose: Call H5Tget_size to get size of the datatype
- * Inputs: type_id - identifier of the dataspace
- * Outputs: size (in bytes)
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Tf/h5tset_size_c
+ * NAME
+ * h5tset_size_c
+ * PURPOSE
+ * Call H5Tget_size to get size of the datatype
+ * INPUTS
+ * type_id - identifier of the dataspace
+ * OUTPUTS
+ * size (in bytes)
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Saturday, August 14, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tset_size_c ( hid_t_f *type_id , size_t_f *size)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -349,19 +442,28 @@ nh5tset_size_c ( hid_t_f *type_id , size_t_f *size)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tget_precision_c
- * Purpose: Call H5Tget_precision to get precision of the datatype
- * Inputs: type_id - identifier of the dataspace
- * Outputs: precision - number of significant bits
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
+/****if* H5Tf/h5tget_precision_c
+ * NAME
+ * h5tget_precision_c
+ * PURPOSE
+ * Call H5Tget_precision to get precision of the datatype
+ * INPUTS
+ * type_id - identifier of the dataspace
+ * OUTPUTS
+ * precision - number of significant bits
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
* Tuesday, January 25, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tget_precision_c ( hid_t_f *type_id , size_t_f *precision)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -375,19 +477,27 @@ nh5tget_precision_c ( hid_t_f *type_id , size_t_f *precision)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tset_precision_c
- * Purpose: Call H5Tset_precision to set precision of the datatype
- * Inputs: type_id - identifier of the dataspace
+/****if* H5Tf/h5tset_precision_c
+ * NAME
+ * h5tset_precision_c
+ * PURPOSE
+ * Call H5Tset_precision to set precision of the datatype
+ * INPUTS
+ * type_id - identifier of the dataspace
* precision - number of significant bits
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
* Tuesday, January 25, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tset_precision_c ( hid_t_f *type_id , size_t_f *precision)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -402,20 +512,29 @@ nh5tset_precision_c ( hid_t_f *type_id , size_t_f *precision)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tget_offset_c
- * Purpose: Call H5Tget_offset to get bit offset of the first
+/****if* H5Tf/h5tget_offset_c
+ * NAME
+ * h5tget_offset_c
+ * PURPOSE
+ * Call H5Tget_offset to get bit offset of the first
* significant bit of the datatype
- * Inputs: type_id - identifier of the dataspace
- * Outputs: offset - bit offset of the first significant bit
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
+ * INPUTS
+ * type_id - identifier of the dataspace
+ * OUTPUTS
+ * offset - bit offset of the first significant bit
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
* Tuesday, January 25, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tget_offset_c ( hid_t_f *type_id , size_t_f *offset)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -430,20 +549,28 @@ nh5tget_offset_c ( hid_t_f *type_id , size_t_f *offset)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tset_offset_c
- * Purpose: Call H5Tset_offset to set bit offset of the first
+/****if* H5Tf/h5tset_offset_c
+ * NAME
+ * h5tset_offset_c
+ * PURPOSE
+ * Call H5Tset_offset to set bit offset of the first
* significant bit of the datatype
- * Inputs: type_id - identifier of the dataspace
+ * INPUTS
+ * type_id - identifier of the dataspace
* offset - bit offset of the first significant bit
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
* Tuesday, January 25, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tset_offset_c ( hid_t_f *type_id , size_t_f *offset)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -458,22 +585,31 @@ nh5tset_offset_c ( hid_t_f *type_id , size_t_f *offset)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tget_pad_c
- * Purpose: Call H5Tget_pad to get the padding type of the least and
+/****if* H5Tf/h5tget_pad_c
+ * NAME
+ * h5tget_pad_c
+ * PURPOSE
+ * Call H5Tget_pad to get the padding type of the least and
* most-significant bit padding
*
- * Inputs: type_id - identifier of the dataspace
- * Outputs: lsbpad - padding type of the least significant bit
+ * INPUTS
+ * type_id - identifier of the dataspace
+ * OUTPUTS
+ * lsbpad - padding type of the least significant bit
* msbpad - padding type of the least significant bit
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
* Wednesday, January 26, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tget_pad_c ( hid_t_f *type_id , int_f * lsbpad, int_f * msbpad)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -490,23 +626,32 @@ nh5tget_pad_c ( hid_t_f *type_id , int_f * lsbpad, int_f * msbpad)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tset_pad_c
- * Inputs: type_id - identifier of the dataspace
- * Purpose: Call H5Tset_pad to set the padding type of the least and
+/****if* H5Tf/h5tset_pad_c
+ * NAME
+ * h5tset_pad_c
+ * INPUTS
+ * type_id - identifier of the dataspace
+ * PURPOSE
+ * Call H5Tset_pad to set the padding type of the least and
* most-significant bit padding
*
- * Inputs: type_id - identifier of the dataspace
+ * INPUTS
+ * type_id - identifier of the dataspace
* lsbpad - padding type of the least significant bit
* msbpad - padding type of the least significant bit
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
* Wednesday, January 26, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tset_pad_c ( hid_t_f *type_id, int_f * lsbpad, int_f* msbpad )
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -522,19 +667,28 @@ nh5tset_pad_c ( hid_t_f *type_id, int_f * lsbpad, int_f* msbpad )
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tget_sign_c
- * Purpose: Call H5Tget_sign to get sign type for an integer type
- * Inputs: type_id - identifier of the dataspace
- * Outputs: sign - sign type for an integer type
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
+/****if* H5Tf/h5tget_sign_c
+ * NAME
+ * h5tget_sign_c
+ * PURPOSE
+ * Call H5Tget_sign to get sign type for an integer type
+ * INPUTS
+ * type_id - identifier of the dataspace
+ * OUTPUTS
+ * sign - sign type for an integer type
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
* Wednesday, January 26, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tget_sign_c ( hid_t_f *type_id , int_f *sign)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -548,19 +702,27 @@ nh5tget_sign_c ( hid_t_f *type_id , int_f *sign)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tset_sign_c
- * Purpose: Call H5Tset_sign to set sign type for an integer type
- * Inputs: type_id - identifier of the dataspace
+/****if* H5Tf/h5tset_sign_c
+ * NAME
+ * h5tset_sign_c
+ * PURPOSE
+ * Call H5Tset_sign to set sign type for an integer type
+ * INPUTS
+ * type_id - identifier of the dataspace
* sign - sign type for an integer typ
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
* Wednesday, January 26, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tset_sign_c ( hid_t_f *type_id , int_f* sign)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -576,23 +738,32 @@ nh5tset_sign_c ( hid_t_f *type_id , int_f* sign)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tget_fields_c
- * Purpose: Call H5Tget_fields to get floating point datatype
+/****if* H5Tf/h5tget_fields_c
+ * NAME
+ * h5tget_fields_c
+ * PURPOSE
+ * Call H5Tget_fields to get floating point datatype
* bit field information
- * Inputs: type_id - identifier of the dataspace
- * Outputs: epos - exponent bit-position
+ * INPUTS
+ * type_id - identifier of the dataspace
+ * OUTPUTS
+ * epos - exponent bit-position
* esize - size of exponent in bits
* mpos - mantissa bit-position
* msize - size of mantissa in bits
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
* Thursday, January 27, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tget_fields_c ( hid_t_f *type_id , size_t_f *spos, size_t_f *epos, size_t_f* esize, size_t_f* mpos, size_t_f* msize)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -611,23 +782,31 @@ nh5tget_fields_c ( hid_t_f *type_id , size_t_f *spos, size_t_f *epos, size_t_f*
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tset_fields_c
- * Purpose: Call H5Tset_fields to set floating point datatype
+/****if* H5Tf/h5tset_fields_c
+ * NAME
+ * h5tset_fields_c
+ * PURPOSE
+ * Call H5Tset_fields to set floating point datatype
* bit field information
- * Inputs: type_id - identifier of the dataspace
+ * INPUTS
+ * type_id - identifier of the dataspace
* epos - exponent bit-position
* esize - size of exponent in bits
* mpos - mantissa bit-position
* msize - size of mantissa in bits
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
* Wednesday, January 26, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tset_fields_c ( hid_t_f *type_id, size_t_f *spos, size_t_f *epos, size_t_f* esize, size_t_f* mpos, size_t_f* msize)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -647,20 +826,29 @@ nh5tset_fields_c ( hid_t_f *type_id, size_t_f *spos, size_t_f *epos, size_t_f* e
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tget_ebias_c
- * Purpose: Call H5Tget_ebias to get exponent bias of a
+/****if* H5Tf/h5tget_ebias_c
+ * NAME
+ * h5tget_ebias_c
+ * PURPOSE
+ * Call H5Tget_ebias to get exponent bias of a
* floating-point type of the datatype
- * Inputs: type_id - identifier of the dataspace
- * Outputs: ebias - exponent bias of a floating-point type of the datatype
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * INPUTS
+ * type_id - identifier of the dataspace
+ * OUTPUTS
+ * ebias - exponent bias of a floating-point type of the datatype
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Friday, January 27, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tget_ebias_c ( hid_t_f *type_id , size_t_f *ebias)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -675,20 +863,28 @@ nh5tget_ebias_c ( hid_t_f *type_id , size_t_f *ebias)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tset_ebias_c
- * Purpose: Call H5Tset_ebias to set exponent bias of a
+/****if* H5Tf/h5tset_ebias_c
+ * NAME
+ * h5tset_ebias_c
+ * PURPOSE
+ * Call H5Tset_ebias to set exponent bias of a
* floating-point type of the datatype
- * Inputs: type_id - identifier of the dataspace
+ * INPUTS
+ * type_id - identifier of the dataspace
* ebias - exponent bias of a floating-point type of the datatyp
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Friday, January 27, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tset_ebias_c ( hid_t_f *type_id , size_t_f *ebias)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -704,20 +900,29 @@ nh5tset_ebias_c ( hid_t_f *type_id , size_t_f *ebias)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tget_norm_c
- * Purpose: Call H5Tget_norm to get mantissa normalization
+/****if* H5Tf/h5tget_norm_c
+ * NAME
+ * h5tget_norm_c
+ * PURPOSE
+ * Call H5Tget_norm to get mantissa normalization
* of a floating-point datatype
- * Inputs: type_id - identifier of the dataspace
- * Outputs: norm - mantissa normalization of a floating-point type
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * INPUTS
+ * type_id - identifier of the dataspace
+ * OUTPUTS
+ * norm - mantissa normalization of a floating-point type
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Friday, January 27, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tget_norm_c ( hid_t_f *type_id , int_f *norm)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -732,20 +937,28 @@ nh5tget_norm_c ( hid_t_f *type_id , int_f *norm)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tset_norm_c
- * Purpose: Call H5Tset_norm to set mantissa normalization of
+/****if* H5Tf/h5tset_norm_c
+ * NAME
+ * h5tset_norm_c
+ * PURPOSE
+ * Call H5Tset_norm to set mantissa normalization of
* floating-point type of the datatype
- * Inputs: type_id - identifier of the dataspace
+ * INPUTS
+ * type_id - identifier of the dataspace
* norm - mantissa normalization of a floating-point type
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Friday, January 27, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tset_norm_c ( hid_t_f *type_id , int_f *norm)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -761,22 +974,31 @@ nh5tset_norm_c ( hid_t_f *type_id , int_f *norm)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tget_inpad_c
- * Purpose: Call H5Tget_inpad to get the padding type for
+/****if* H5Tf/h5tget_inpad_c
+ * NAME
+ * h5tget_inpad_c
+ * PURPOSE
+ * Call H5Tget_inpad to get the padding type for
* unused bits in floating-point datatypes
*
- * Inputs: type_id - identifier of the dataspace
- * Outputs: padtype - padding type for
+ * INPUTS
+ * type_id - identifier of the dataspace
+ * OUTPUTS
+ * padtype - padding type for
* unused bits in floating-point datatype
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
* Wednesday, January 26, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tget_inpad_c ( hid_t_f *type_id , int_f * padtype)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -791,23 +1013,32 @@ nh5tget_inpad_c ( hid_t_f *type_id , int_f * padtype)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tset_inpad_c
- * Inputs: type_id - identifier of the dataspace
- * Purpose: Call H5Tset_inpad to set the padding type
+/****if* H5Tf/h5tset_inpad_c
+ * NAME
+ * h5tset_inpad_c
+ * INPUTS
+ * type_id - identifier of the dataspace
+ * PURPOSE
+ * Call H5Tset_inpad to set the padding type
* unused bits in floating-point datatype
*
- * Inputs: type_id - identifier of the dataspace
+ * INPUTS
+ * type_id - identifier of the dataspace
* padtype - padding type for unused bits
* in floating-point datatypes
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
* Wednesday, January 26, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tset_inpad_c ( hid_t_f *type_id, int_f * padtype)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -823,21 +1054,30 @@ nh5tset_inpad_c ( hid_t_f *type_id, int_f * padtype)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tget_cset_c
- * Purpose: Call H5Tget_cset to get character set
+/****if* H5Tf/h5tget_cset_c
+ * NAME
+ * h5tget_cset_c
+ * PURPOSE
+ * Call H5Tget_cset to get character set
* type of a string datatype
*
- * Inputs: type_id - identifier of the dataspace
- * Outputs: cset - character set type of a string datatype
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
+ * INPUTS
+ * type_id - identifier of the dataspace
+ * OUTPUTS
+ * cset - character set type of a string datatype
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
* Wednesday, January 26, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tget_cset_c ( hid_t_f *type_id , int_f * cset)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -852,22 +1092,31 @@ nh5tget_cset_c ( hid_t_f *type_id , int_f * cset)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tset_cset_c
- * Inputs: type_id - identifier of the dataspace
- * Purpose: Call H5Tset_cset to set character set
+/****if* H5Tf/h5tset_cset_c
+ * NAME
+ * h5tset_cset_c
+ * INPUTS
+ * type_id - identifier of the dataspace
+ * PURPOSE
+ * Call H5Tset_cset to set character set
* type of a string datatype
*
- * Inputs: type_id - identifier of the dataspace
+ * INPUTS
+ * type_id - identifier of the dataspace
* cset - character set type of a string datatype
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
* Wednesday, January 26, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tset_cset_c ( hid_t_f *type_id, int_f * cset)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -883,20 +1132,28 @@ nh5tset_cset_c ( hid_t_f *type_id, int_f * cset)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tget_strpad_c
- * Purpose: Call H5Tget_strpad to get string padding method
+/****if* H5Tf/h5tget_strpad_c
+ * NAME
+ * h5tget_strpad_c
+ * PURPOSE
+ * Call H5Tget_strpad to get string padding method
* for a string datatype
- * Inputs: type_id - identifier of the dataspace
- * Outputs: strpad - string padding method for a string datatype
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
+ * INPUTS
+ * type_id - identifier of the dataspace
+ * OUTPUTS
+ * strpad - string padding method for a string datatype
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
* Wednesday, January 26, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
-
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tget_strpad_c ( hid_t_f *type_id , int_f * strpad)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -911,22 +1168,31 @@ nh5tget_strpad_c ( hid_t_f *type_id , int_f * strpad)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tset_strpad_c
- * Inputs: type_id - identifier of the dataspace
- * Purpose: Call H5Tset_strpad to set string padding method
+/****if* H5Tf/h5tset_strpad_c
+ * NAME
+ * h5tset_strpad_c
+ * INPUTS
+ * type_id - identifier of the dataspace
+ * PURPOSE
+ * Call H5Tset_strpad to set string padding method
* for a string datatype
*
- * Inputs: type_id - identifier of the dataspace
+ * INPUTS
+ * type_id - identifier of the dataspace
* strpad - string padding method for a string datatype
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
* Wednesday, January 26, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tset_strpad_c ( hid_t_f *type_id, int_f * strpad)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -942,20 +1208,29 @@ nh5tset_strpad_c ( hid_t_f *type_id, int_f * strpad)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tget_nmembers_c
- * Purpose: Call H5Tget_nmembers to get number of fields
+/****if* H5Tf/h5tget_nmembers_c
+ * NAME
+ * h5tget_nmembers_c
+ * PURPOSE
+ * Call H5Tget_nmembers to get number of fields
* in a compound datatype
- * Inputs: type_id - identifier of the dataspace
- * Outputs: num_members - number of fields in a compound datatype
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
+ * INPUTS
+ * type_id - identifier of the dataspace
+ * OUTPUTS
+ * num_members - number of fields in a compound datatype
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
* Thursday, February 3, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tget_nmembers_c ( hid_t_f *type_id , int_f * num_members)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -968,21 +1243,30 @@ nh5tget_nmembers_c ( hid_t_f *type_id , int_f * num_members)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tget_member_name_c
- * Purpose: Call H5Tget_member_name to get name
+/****if* H5Tf/h5tget_member_name_c
+ * NAME
+ * h5tget_member_name_c
+ * PURPOSE
+ * Call H5Tget_member_name to get name
* of a compound datatype
- * Inputs: type_id - identifier of the dataspace
- * Outputs: member_name - name of a field of a compound datatype
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
+ * INPUTS
+ * type_id - identifier of the dataspace
+ * OUTPUTS
+ * member_name - name of a field of a compound datatype
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
* Thursday, February 3, 2000
- * Modifications: Elena Pourmal
+ * HISTORY
+ * Elena Pourmal
* Added namelen parameter to return length of the name to Fortran user
- *---------------------------------------------------------------------------*/
+ * SOURCE
+*/
int_f
nh5tget_member_name_c ( hid_t_f *type_id ,int_f* idx, _fcd member_name, int_f *namelen)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -1000,21 +1284,30 @@ nh5tget_member_name_c ( hid_t_f *type_id ,int_f* idx, _fcd member_name, int_f *n
ret_value = 0;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tget_member_index_c
- * Purpose: Call H5Tget_member_index to get an index of
+/****if* H5Tf/h5tget_member_index_c
+ * NAME
+ * h5tget_member_index_c
+ * PURPOSE
+ * Call H5Tget_member_index to get an index of
* the specified datatype filed or member.
- * Inputs: type_id - datatype identifier
+ * INPUTS
+ * type_id - datatype identifier
* name - name of the datatype within file or group
* namelen - name length
- * Outputs: index - 0-based index
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * OUTPUTS
+ * index - 0-based index
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, September 26, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tget_member_index_c (hid_t_f *type_id, _fcd name, int_f *namelen, int_f *idx)
+/******/
{
int ret_value = -1;
char *c_name;
@@ -1044,23 +1337,32 @@ DONE:
}
-/*----------------------------------------------------------------------------
- * Name: h5tget_member_offset_c
- * Purpose: Call H5Tget_member_offset to get byte offset of the
+/****if* H5Tf/h5tget_member_offset_c
+ * NAME
+ * h5tget_member_offset_c
+ * PURPOSE
+ * Call H5Tget_member_offset to get byte offset of the
* beginning of a field within a compound datatype with
* respect to the beginning of the compound data type datum
- * Inputs: type_id - identifier of the dataspace
+ * INPUTS
+ * type_id - identifier of the dataspace
* member_no - Number of the field whose offset is requested
- * Outputs: offset - byte offset of the the beginning of the field of
+ * OUTPUTS
+ * offset - byte offset of the the beginning of the field of
* a compound datatype
- * Returns: always 0
- * Programmer: XIANGYANG SU
+ * RETURNS
+ * always 0
+ * AUTHOR
+ * XIANGYANG SU
* Thursday, February 3, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tget_member_offset_c ( hid_t_f *type_id ,int_f* member_no, size_t_f * offset)
+/******/
{
int ret_value = -1;
size_t c_offset;
@@ -1075,20 +1377,29 @@ nh5tget_member_offset_c ( hid_t_f *type_id ,int_f* member_no, size_t_f * offset)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tget_array_dims_c
- * Purpose: Call H5Tget_array_dims2 to get
+/****if* H5Tf/h5tget_array_dims_c
+ * NAME
+ * h5tget_array_dims_c
+ * PURPOSE
+ * Call H5Tget_array_dims2 to get
* dimensions of array datatype
- * Inputs: type_id - identifier of the array datatype
- * Outputs: dims - dimensions(sizes of dimensions) of the array
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * INPUTS
+ * type_id - identifier of the array datatype
+ * OUTPUTS
+ * dims - dimensions(sizes of dimensions) of the array
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, November 16, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tget_array_dims_c ( hid_t_f *type_id , hsize_t_f * dims)
+/******/
{
hsize_t c_dims[H5S_MAX_RANK];
int rank, i;
@@ -1109,20 +1420,29 @@ DONE:
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tget_array_ndims_c
- * Purpose: Call H5Tget_array_ndims to get number
+/****if* H5Tf/h5tget_array_ndims_c
+ * NAME
+ * h5tget_array_ndims_c
+ * PURPOSE
+ * Call H5Tget_array_ndims to get number
* of dimensions of array datatype
- * Inputs: type_id - identifier of the array datatype
- * Outputs: ndims - number of dimensions of the array
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * INPUTS
+ * type_id - identifier of the array datatype
+ * OUTPUTS
+ * ndims - number of dimensions of the array
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, November 16, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tget_array_ndims_c ( hid_t_f *type_id , int_f * ndims)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -1137,20 +1457,29 @@ nh5tget_array_ndims_c ( hid_t_f *type_id , int_f * ndims)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tget_super_c
- * Purpose: Call H5Tget_super to get base datatype from which
+/****if* H5Tf/h5tget_super_c
+ * NAME
+ * h5tget_super_c
+ * PURPOSE
+ * Call H5Tget_super to get base datatype from which
* datatype was derived
- * Inputs: type_id - identifier of the array datatype
- * Outputs: base_type_id - base datatype identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * INPUTS
+ * type_id - identifier of the array datatype
+ * OUTPUTS
+ * base_type_id - base datatype identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, November 16, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tget_super_c ( hid_t_f *type_id , hid_t_f *base_type_id)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -1166,21 +1495,30 @@ nh5tget_super_c ( hid_t_f *type_id , hid_t_f *base_type_id)
}
-/*----------------------------------------------------------------------------
- * Name: h5tget_member_type_c
- * Purpose: Call H5Tget_member_type to get the identifier of a copy of
+/****if* H5Tf/h5tget_member_type_c
+ * NAME
+ * h5tget_member_type_c
+ * PURPOSE
+ * Call H5Tget_member_type to get the identifier of a copy of
* the datatype of the field
- * Inputs: type_id - identifier of the datatype
+ * INPUTS
+ * type_id - identifier of the datatype
* field_idx - Field index (0-based) of the field type to retrieve
- * Outputs: datatype - identifier of a copy of the datatype of the field
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
+ * OUTPUTS
+ * datatype - identifier of a copy of the datatype of the field
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
* Thursday, February 3, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tget_member_type_c ( hid_t_f *type_id ,int_f* field_idx, hid_t_f * datatype)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -1196,19 +1534,27 @@ nh5tget_member_type_c ( hid_t_f *type_id ,int_f* field_idx, hid_t_f * datatype)
}
-/*----------------------------------------------------------------------------
- * Name: h5tcreate_c
- * Purpose: Call H5Tcreate to create a datatype
- * Inputs: cls - class type
- * size - size of the class memeber
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
- * Thursday, February 17, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+/****if* H5Tf/h5tcreate_c
+ * NAME
+ * h5tcreate_c
+ * PURPOSE
+ * Call H5Tcreate to create a datatype
+ * INPUTS
+ * cls - class type
+ * size - size of the class memeber
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
+ * Thursday, February 17, 2000
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tcreate_c(int_f *cls, size_t_f *size, hid_t_f *type_id)
+/******/
{
int ret_value = -1;
H5T_class_t c_class;
@@ -1224,22 +1570,30 @@ nh5tcreate_c(int_f *cls, size_t_f *size, hid_t_f *type_id)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tinsert_c
- * Purpose: Call H5Tinsert to adds another member to the compound datatype
- * Inputs: type_id - identifier of the datatype
+/****if* H5Tf/h5tinsert_c
+ * NAME
+ * h5tinsert_c
+ * PURPOSE
+ * Call H5Tinsert to adds another member to the compound datatype
+ * INPUTS
+ * type_id - identifier of the datatype
* name - Name of the field to insert
* namelen - length of the name
* offset - Offset in memory structure of the field to insert
* field_id - datatype identifier of the new member
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
* Thursday, February 3, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tinsert_c(hid_t_f *type_id, _fcd name, int_f* namelen, size_t_f *offset, hid_t_f * field_id)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -1264,20 +1618,28 @@ nh5tinsert_c(hid_t_f *type_id, _fcd name, int_f* namelen, size_t_f *offset, hid_
}
-/*----------------------------------------------------------------------------
- * Name: h5tpack_c
- * Purpose: Call H5Tpack tor ecursively remove padding from
+/****if* H5Tf/h5tpack_c
+ * NAME
+ * h5tpack_c
+ * PURPOSE
+ * Call H5Tpack tor ecursively remove padding from
* within a compound datatype to make it more efficient
* (space-wise) to store that data
- * Inputs: type_id - identifier of the datatype
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
+ * INPUTS
+ * type_id - identifier of the datatype
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
* Thursday, February 3, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tpack_c(hid_t_f * type_id)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -1291,20 +1653,28 @@ nh5tpack_c(hid_t_f * type_id)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tarray_create_c
- * Purpose: Call H5Tarray_create2 to create array datatype
- * Inputs: base_id - identifier of array base datatype
+/****if* H5Tf/h5tarray_create_c
+ * NAME
+ * h5tarray_create_c
+ * PURPOSE
+ * Call H5Tarray_create2 to create array datatype
+ * INPUTS
+ * base_id - identifier of array base datatype
* rank - array's rank
* dims - Size of new member array
* type_id - identifier of the array datatype
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Thursday, November 16, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tarray_create_c(hid_t_f * base_id, int_f *rank, hsize_t_f* dims, hid_t_f* type_id)
+/******/
{
hsize_t c_dims[H5S_MAX_RANK];
hid_t c_type_id;
@@ -1329,20 +1699,29 @@ DONE:
}
-/*----------------------------------------------------------------------------
- * Name: h5tenum_create_c
- * Purpose: Call H5Tenum_create to create a new enumeration datatype
- * Inputs: parent_id - Datatype identifier for the base datatype
- * Outputs: new_type_id - datatype identifier for the new
+/****if* H5Tf/h5tenum_create_c
+ * NAME
+ * h5tenum_create_c
+ * PURPOSE
+ * Call H5Tenum_create to create a new enumeration datatype
+ * INPUTS
+ * parent_id - Datatype identifier for the base datatype
+ * OUTPUTS
+ * new_type_id - datatype identifier for the new
* enumeration datatype
- * Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Xiangyang Su
* Tuesday, February 15, 1999
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tenum_create_c ( hid_t_f *parent_id , hid_t_f *new_type_id)
+/******/
{
int ret_value = 0;
hid_t c_parent_id;
@@ -1356,21 +1735,29 @@ nh5tenum_create_c ( hid_t_f *parent_id , hid_t_f *new_type_id)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tenum_insert_c
- * Purpose: Call H5Tenum_insert to insert a new enumeration datatype member.
- * Inputs: type_id - identifier of the datatype
+/****if* H5Tf/h5tenum_insert_c
+ * NAME
+ * h5tenum_insert_c
+ * PURPOSE
+ * Call H5Tenum_insert to insert a new enumeration datatype member.
+ * INPUTS
+ * type_id - identifier of the datatype
* name - Name of the new member
* namelen - length of the name
* value - value of the new member
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
* Thursday, February 3, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tenum_insert_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -1394,22 +1781,30 @@ nh5tenum_insert_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value)
}
-/*----------------------------------------------------------------------------
- * Name: h5tenum_nameof_c
- * Purpose: Call H5Tenum_nameof to find the symbol name that corresponds to
+/****if* H5Tf/h5tenum_nameof_c
+ * NAME
+ * h5tenum_nameof_c
+ * PURPOSE
+ * Call H5Tenum_nameof to find the symbol name that corresponds to
* the specified value of the enumeration datatype type
- * Inputs: type_id - identifier of the datatype
+ * INPUTS
+ * type_id - identifier of the datatype
* namelen - length of the name
* value - value of the enumeration datatype
* Output: name - Name of the enumeration datatype
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
* Thursday, February 3, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tenum_nameof_c(hid_t_f *type_id, int_f* value, _fcd name, size_t_f* namelen)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -1430,22 +1825,30 @@ nh5tenum_nameof_c(hid_t_f *type_id, int_f* value, _fcd name, size_t_f* namelen)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tenum_valueof_c
- * Purpose: Call H5Tenum_valueof to find the value of that corresponds to
+/****if* H5Tf/h5tenum_valueof_c
+ * NAME
+ * h5tenum_valueof_c
+ * PURPOSE
+ * Call H5Tenum_valueof to find the value of that corresponds to
* the specified name of the enumeration datatype type
- * Inputs: type_id - identifier of the datatype
+ * INPUTS
+ * type_id - identifier of the datatype
* name - Name of the enumeration datatype
* namelen - length of name
* Output: value - value of the enumeration datatype
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
* Thursday, February 3, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tenum_valueof_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -1466,21 +1869,29 @@ nh5tenum_valueof_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value)
}
-/*----------------------------------------------------------------------------
- * Name: h5tget_member_value_c
- * Purpose: Call H5Tget_member_value to get the value of an
+/****if* H5Tf/h5tget_member_value_c
+ * NAME
+ * h5tget_member_value_c
+ * PURPOSE
+ * Call H5Tget_member_value to get the value of an
* enumeration datatype member
- * Inputs: type_id - identifier of the datatype
+ * INPUTS
+ * type_id - identifier of the datatype
* member_no - Number of the enumeration datatype member.
* Output: value - value of the enumeration datatype
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
* Thursday, February 3, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tget_member_value_c(hid_t_f *type_id, int_f* member_no, int_f* value)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -1498,21 +1909,30 @@ nh5tget_member_value_c(hid_t_f *type_id, int_f* member_no, int_f* value)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tset_tag_c
- * Inputs: type_id - identifier of the dataspace
- * Purpose: Call H5Tset_tag to set an opaque datatype tag
- * Inputs: type_id - identifier of the dataspace
+/****if* H5Tf/h5tset_tag_c
+ * NAME
+ * h5tset_tag_c
+ * INPUTS
+ * type_id - identifier of the dataspace
+ * PURPOSE
+ * Call H5Tset_tag to set an opaque datatype tag
+ * INPUTS
+ * type_id - identifier of the dataspace
* tag - Unique ASCII string with which the opaque
* datatype is to be tagged
* namelen - length of tag
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
* Wednesday, January 26, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tset_tag_c(hid_t_f* type_id, _fcd tag, int_f* namelen)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -1532,20 +1952,29 @@ nh5tset_tag_c(hid_t_f* type_id, _fcd tag, int_f* namelen)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tget_tag_c
- * Purpose: Call H5Tset_tag to set an opaque datatype tag
- * Inputs: type_id - identifier of the datatype
- * Outputs: tag - Unique ASCII string with which the opaque
+/****if* H5Tf/h5tget_tag_c
+ * NAME
+ * h5tget_tag_c
+ * PURPOSE
+ * Call H5Tset_tag to set an opaque datatype tag
+ * INPUTS
+ * type_id - identifier of the datatype
+ * OUTPUTS
+ * tag - Unique ASCII string with which the opaque
* datatype is to be tagged
- * taglen - length of tag
- * Returns: 0 on success, -1 on failure
- * Programmer: XIANGYANG SU
- * Wednesday, January 26, 2000
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * taglen - length of tag
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * XIANGYANG SU
+ * Wednesday, January 26, 2000
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
-nh5tget_tag_c(hid_t_f* type_id, _fcd tag, int_f* taglen)
+nh5tget_tag_c(hid_t_f* type_id, _fcd tag, size_t_f* tag_size, int_f* taglen)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -1555,24 +1984,33 @@ nh5tget_tag_c(hid_t_f* type_id, _fcd tag, int_f* taglen)
c_tag = H5Tget_tag(c_type_id);
if (c_tag == NULL ) return ret_value;
- HD5packFstring(c_tag, _fcdtocp(tag), strlen(c_tag));
+ HD5packFstring(c_tag, _fcdtocp(tag), (size_t)*tag_size);
*taglen = (int_f)HDstrlen(c_tag);
HDfree(c_tag);
ret_value = 0;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tvlen_create_c
- * Purpose: Call H5Tvlen_create to create VL dtatype
- * Inputs: type_id - identifier of the base datatype
- * Outputs: vltype_id - identifier of the VL datatype
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Tf/h5tvlen_create_c
+ * NAME
+ * h5tvlen_create_c
+ * PURPOSE
+ * Call H5Tvlen_create to create VL dtatype
+ * INPUTS
+ * type_id - identifier of the base datatype
+ * OUTPUTS
+ * vltype_id - identifier of the VL datatype
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, October 23, 2002
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tvlen_create_c(hid_t_f* type_id, hid_t_f *vltype_id)
+/******/
{
int ret_value = -1;
hid_t c_type_id;
@@ -1585,21 +2023,30 @@ nh5tvlen_create_c(hid_t_f* type_id, hid_t_f *vltype_id)
ret_value = 0;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tis_variable_str_c
- * Purpose: Call H5Tis_variable_str to detrmine if the datatype
+/****if* H5Tf/h5tis_variable_str_c
+ * NAME
+ * h5tis_variable_str_c
+ * PURPOSE
+ * Call H5Tis_variable_str to detrmine if the datatype
* is a variable string.
- * Inputs: type_id - identifier of the dataspace
- * Outputs: flag - 0 if not VL str, 1 if is not
+ * INPUTS
+ * type_id - identifier of the dataspace
+ * OUTPUTS
+ * flag - 0 if not VL str, 1 if is not
* and negative on failure.
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, March 12 , 2003
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tis_variable_str_c ( hid_t_f *type_id , int_f *flag )
+/******/
{
int ret_value = 0;
hid_t c_type_id;
@@ -1611,22 +2058,31 @@ nh5tis_variable_str_c ( hid_t_f *type_id , int_f *flag )
if ( status < 0 ) ret_value = -1;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tget_member_class_c
- * Purpose: Call H5Tget_member_class to detrmine ithe class of the compound
+/****if* H5Tf/h5tget_member_class_c
+ * NAME
+ * h5tget_member_class_c
+ * PURPOSE
+ * Call H5Tget_member_class to detrmine ithe class of the compound
* datatype member
- * Inputs: type_id - identifier of the dataspace
+ * INPUTS
+ * type_id - identifier of the dataspace
* member_no - member's index
- * Outputs: cls - member's class
- * and negative on failure.
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
- * Wednesday, April 6, 2005
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * OUTPUTS
+ * class - member's class
+ * and negative on failure.
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
+ * Wednesday, April 6, 2005
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tget_member_class_c ( hid_t_f *type_id , int_f *member_no, int_f *cls )
+/******/
{
int ret_value = 0;
hid_t c_type_id;
@@ -1642,21 +2098,29 @@ nh5tget_member_class_c ( hid_t_f *type_id , int_f *member_no, int_f *cls )
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tcommit_anon_c
- * Purpose: Call H5Tcommit_anon
- * Inputs: loc_id - file or group identifier
+/****if* H5Tf/h5tcommit_anon_c
+ * NAME
+ * h5tcommit_anon_c
+ * PURPOSE
+ * Call H5Tcommit_anon
+ * INPUTS
+ * loc_id - file or group identifier
* dtype_id - dataset identifier
* tcpl_id - Datatype creation property list
* tapl_id - Datatype access property list
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * February 25, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * February 25, 2008
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tcommit_anon_c(hid_t_f *loc_id, hid_t_f *dtype_id,
hid_t_f *tcpl_id, hid_t_f *tapl_id)
+/******/
{
int ret_value = -1;
@@ -1670,19 +2134,26 @@ nh5tcommit_anon_c(hid_t_f *loc_id, hid_t_f *dtype_id,
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tcommitted_c
- * Purpose: Call H5Tcommitted
+/****if* H5Tf/h5tcommitted_c
+ * NAME
+ * h5tcommitted_c
+ * PURPOSE
+ * Call H5Tcommitted
* dtype_id - dataset identifier
- * Returns: a positive value, for TRUE, if the datatype has been committed,
+ * RETURNS
+ * a positive value, for TRUE, if the datatype has been committed,
* or 0 (zero), for FALSE, if the datatype has not been committed.
* Otherwise returns a negative value.
- * Programmer: M.S. Breitenfeld
- * February 25, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * February 25, 2008
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tcommitted_c(hid_t_f *dtype_id)
+/******/
{
int_f ret_value;
@@ -1694,22 +2165,31 @@ nh5tcommitted_c(hid_t_f *dtype_id)
}
-/*----------------------------------------------------------------------------
- * Name: h5tdecode_c
- * Purpose: Call H5Tdecode
- * Inputs:
+/****if* H5Tf/h5tdecode_c
+ * NAME
+ * h5tdecode_c
+ * PURPOSE
+ * Call H5Tdecode
+ * INPUTS
+ *
* buf - Buffer for the data space object to be decoded.
- * Outputs:
+ * OUTPUTS
+ *
* obj_id - Object_id (non-negative)
*
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * April 9, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * April 9, 2008
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tdecode_c ( _fcd buf, hid_t_f *obj_id )
+/******/
{
int ret_value = -1;
unsigned char *c_buf = NULL; /* Buffer to hold C string */
@@ -1731,21 +2211,29 @@ nh5tdecode_c ( _fcd buf, hid_t_f *obj_id )
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tencode_c
- * Purpose: Call H5Tencode
- * Inputs:
+/****if* H5Tf/h5tencode_c
+ * NAME
+ * h5tencode_c
+ * PURPOSE
+ * Call H5Tencode
+ * INPUTS
+ *
* obj_id - Identifier of the object to be encoded.
* buf - Buffer for the object to be encoded into.
* nalloc - The size of the allocated buffer.
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * April 9, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * April 9, 2008
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tencode_c (_fcd buf, hid_t_f *obj_id, size_t_f *nalloc )
+/******/
{
int ret_value = -1;
unsigned char *c_buf = NULL; /* Buffer to hold C string */
@@ -1793,19 +2281,28 @@ nh5tencode_c (_fcd buf, hid_t_f *obj_id, size_t_f *nalloc )
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tget_create_plist_c
- * Purpose: Call H5Tget_create_plist
- * Inputs: dtype_id - Datatype identifier
- * Outputs: dtpl_id - Datatype property list identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * April 9, 2008
- * Modifications: N/A
- *---------------------------------------------------------------------------*/
+/****if* H5Tf/h5tget_create_plist_c
+ * NAME
+ * h5tget_create_plist_c
+ * PURPOSE
+ * Call H5Tget_create_plist
+ * INPUTS
+ * dtype_id - Datatype identifier
+ * OUTPUTS
+ * dtpl_id - Datatype property list identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * April 9, 2008
+ * HISTORY
+ * N/A
+ * SOURCE
+*/
int_f
nh5tget_create_plist_c ( hid_t_f *dtype_id, hid_t_f *dtpl_id)
+/******/
{
int_f ret_value=-1; /* Return value */
@@ -1816,21 +2313,30 @@ nh5tget_create_plist_c ( hid_t_f *dtype_id, hid_t_f *dtpl_id)
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tcompiler_conv_c
- * Purpose: Call H5Tcompiler_conv
- * Inputs:
+/****if* H5Tf/h5tcompiler_conv_c
+ * NAME
+ * h5tcompiler_conv_c
+ * PURPOSE
+ * Call H5Tcompiler_conv
+ * INPUTS
+ *
* src_id - Identifier for the source datatype.
* dst_id - Identifier for the destination datatype.
- * Outputs: c_flag - flag; TRUE for compiler conversion, FALSE for library conversion
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * April 9, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * OUTPUTS
+ * c_flag - flag; TRUE for compiler conversion, FALSE for library conversion
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M.Scot Breitenfeld
+ * April 9, 2008
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tcompiler_conv_c ( hid_t_f *src_id, hid_t_f *dst_id, int_f *c_flag)
+/******/
{
int ret_value = -1;
htri_t status;
@@ -1841,21 +2347,30 @@ nh5tcompiler_conv_c ( hid_t_f *src_id, hid_t_f *dst_id, int_f *c_flag)
ret_value = 0;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5tget_native_type_c
- * Purpose: Call H5Tget_native_type
- * Inputs:
+/****if* H5Tf/h5tget_native_type_c
+ * NAME
+ * h5tget_native_type_c
+ * PURPOSE
+ * Call H5Tget_native_type
+ * INPUTS
+ *
* dtype_id - Datatype identifier for the dataset datatype.
* direction - Direction of search.
- * Outputs: native_dtype_id - The native datatype identifier for the specified dataset datatype
- * Returns: 0 on success, -1 on failure
- * Programmer: M.S. Breitenfeld
- * June 18, 2008
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * OUTPUTS
+ * native_dtype_id - The native datatype identifier for the specified dataset datatype
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * June 18, 2008
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5tget_native_type_c(hid_t_f *dtype_id, int_f *direction, hid_t_f *native_dtype_id)
+/******/
{
int ret_value = -1;
hid_t status;
@@ -1867,3 +2382,41 @@ nh5tget_native_type_c(hid_t_f *dtype_id, int_f *direction, hid_t_f *native_dtype
return ret_value;
}
+/****if* H5Tf/h5tconvert_c
+ * NAME
+ * h5tconvert_c
+ * PURPOSE
+ * Call H5Tconvert
+ * INPUTS
+ *
+ * src_id - Identifier for the source datatype.
+ * dst_id - Identifier for the destination datatype.
+ * nelmts - Size of array buf.
+ * buf - Array containing pre-conversion values.
+ * background - Optional background buffer.
+ * plist_id - Dataset transfer property list identifier.
+ *
+ * OUTPUTS
+ * buf - Array containing post-conversion values.
+ *
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * December 8, 2008
+ *
+ * SOURCE
+*/
+int_f
+nh5tconvert_c(hid_t_f *src_id, hid_t_f *dst_id, size_t_f *nelmts, void *buf, void *background, hid_t_f *plist_id)
+/******/
+{
+ int ret_value = -1;
+ hid_t status;
+
+ status = H5Tconvert( (hid_t)*src_id, (hid_t)*dst_id, (size_t)*nelmts, buf, background, (hid_t)*plist_id );
+ if ( status < 0 ) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+
diff --git a/fortran/src/H5Tff.f90 b/fortran/src/H5Tff.f90
index c6c96d0..f5369d0 100644
--- a/fortran/src/H5Tff.f90
+++ b/fortran/src/H5Tff.f90
@@ -1,3 +1,15 @@
+!****h* ROBODoc/H5T
+!
+! NAME
+! MODULE H5T
+!
+! PURPOSE
+! This file contains Fortran interfaces for H5T functions. It includes
+! all the functions that are independent on whether the Fortran 2003 functions
+! are enabled or disabled.
+!
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,44 +25,51 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! NOTES
+! *** IMPORTANT ***
+! If you add a new H5T function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
!
-! This file contains FORTRAN90 interfaces for H5T functions
-!
+!*****
+
MODULE H5T
USE H5GLOBAL
CONTAINS
-!----------------------------------------------------------------------
-! Name: h5topen_f
!
-! Purpose: Opens named datatype.
+!****s* H5T/h5topen_f
!
-! Inputs:
-! loc_id - location identifier
-! name - a datatype name
-! Outputs:
-! type_id - datatype identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! tapl_id - datatype access property list identifier.
+! NAME
+! h5topen_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Opens named datatype.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! loc_id - location identifier
+! name - a datatype name
+! OUTPUTS
+! type_id - datatype identifier
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! tapl_id - datatype access property list identifier.
!
-! Added optional parameter 'tapl_id' for compatability
-! with H5Topen2. April 9, 2009.
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Comment:
-!----------------------------------------------------------------------
-
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Added optional parameter 'tapl_id' for compatability
+! with H5Topen2. April 9, 2009.
+!
+! SOURCE
SUBROUTINE h5topen_f(loc_id, name, type_id, hdferr, tapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
@@ -58,12 +77,10 @@ CONTAINS
INTEGER(HID_T), INTENT(OUT) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: tapl_id ! datatype access property list identifier
-
+!*****
INTEGER :: namelen ! Name length
INTEGER(HID_T) :: tapl_id_default
-!
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+
INTERFACE
INTEGER FUNCTION h5topen_c(loc_id, name, namelen, type_id, tapl_id_default)
USE H5GLOBAL
@@ -86,42 +103,41 @@ CONTAINS
hdferr = h5topen_c(loc_id, name, namelen, type_id, tapl_id_default)
END SUBROUTINE h5topen_f
-
-!----------------------------------------------------------------------
-! Name: h5tcommit_f
!
-! Purpose: Commits a transient datatype to a file, creating a
-! new named datatype.
+!****s* H5T/h5tcommit_f
!
-! Inputs:
-! loc_id - location identifier
-! name - name of the datatype to be stored
-! at the specified location
-! type_id - identifier of a datatype to be stored
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! lcpl_id - Link creation property list
-! tcpl_id - Datatype creation property list
-! tapl_id - Datatype access property list
+! NAME
+! h5tcommit_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Commits a transient datatype to a file, creating a
+! new named datatype.
!
-! Modifications: - Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! loc_id - location identifier
+! name - name of the datatype to be stored
+! at the specified location
+! type_id - identifier of a datatype to be stored
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! lcpl_id - Link creation property list
+! tcpl_id - Datatype creation property list
+! tapl_id - Datatype access property list
!
-! - Added optional parameters introduced in version 1.8
-! M.S. Breitenfeld
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
+! HISTORY
+! - Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
!
+! - Added optional parameters introduced in version 1.8
+! M. Scot Breitenfeld
!
-! Comment:
-!----------------------------------------------------------------------
-
+! SOURCE
SUBROUTINE h5tcommit_f(loc_id, name, type_id, hdferr, &
lcpl_id, tcpl_id, tapl_id )
IMPLICIT NONE
@@ -133,7 +149,7 @@ CONTAINS
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lcpl_id ! Link creation property list
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: tcpl_id ! Datatype creation property list
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: tapl_id ! Datatype access property list
-
+!*****
INTEGER :: namelen ! Name length
@@ -141,8 +157,6 @@ CONTAINS
INTEGER(HID_T) :: tcpl_id_default
INTEGER(HID_T) :: tapl_id_default
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5tcommit_c(loc_id, name, namelen, type_id, &
lcpl_id_default, tcpl_id_default, tapl_id_default )
@@ -175,43 +189,37 @@ CONTAINS
lcpl_id_default, tcpl_id_default, tapl_id_default )
END SUBROUTINE h5tcommit_f
-
-!----------------------------------------------------------------------
-! Name: h5tcopy_f
!
-! Purpose: iCreates a copy of exisiting datatype.
+!****s* H5T/h5tcopy_f
!
-! Inputs:
-! type_id - datatype identifier
-! Outputs:
-! new_type_id - identifier of datatype's copy
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tcopy_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Creates a copy of exisiting datatype.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - datatype identifier
+! OUTPUTS
+! new_type_id - identifier of datatype's copy
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5tcopy_f(type_id, new_type_id, hdferr)
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! SOURCE
+ SUBROUTINE h5tcopy_f(type_id, new_type_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(HID_T), INTENT(OUT) :: new_type_id
! Identifier of datatype's copy
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5tcopy_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5tcopy_c(type_id, new_type_id)
USE H5GLOBAL
@@ -225,46 +233,41 @@ CONTAINS
hdferr = h5tcopy_c(type_id, new_type_id)
END SUBROUTINE h5tcopy_f
-
-!----------------------------------------------------------------------
-! Name: h5tequal_f
-!
-! Purpose: Determines whether two datatype identifiers refer
-! to the same datatype.
!
-! Inputs:
-! type1_id - datatype identifier
-! type2_id - datatype identifier
-! Outputs:
-! flag - TRUE/FALSE flag to indicate
-! if two datatypes are equal
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tequal_f(type1_id, type2_id, flag, hdferr)
+!****s* H5T/h5tequal_f
+!
+! NAME
+! h5tequal_f
+!
+! PURPOSE
+! Determines whether two datatype identifiers refer
+! to the same datatype.
+!
+! INPUTS
+! type1_id - datatype identifier
+! type2_id - datatype identifier
+! OUTPUTS
+! flag - TRUE/FALSE flag to indicate
+! if two datatypes are equal
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tequal_f(type1_id, type2_id, flag, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type1_id ! Datatype identifier
INTEGER(HID_T), INTENT(IN) :: type2_id ! Datatype identifier
LOGICAL, INTENT(OUT) :: flag ! TRUE/FALSE flag to indicate if two
! datatypes are equal
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
INTEGER :: c_flag
-
-! INTEGER, EXTERNAL :: h5tequal_c
-! MS FORTRAN needs explicit interface for C functions called here
INTERFACE
INTEGER FUNCTION h5tequal_c(type1_id, type2_id, c_flag)
USE H5GLOBAL
@@ -281,40 +284,35 @@ CONTAINS
hdferr = h5tequal_c(type1_id, type2_id, c_flag)
if(c_flag .gt. 0) flag = .TRUE.
END SUBROUTINE h5tequal_f
-
-!----------------------------------------------------------------------
-! Name: h5tclose_f
!
-! Purpose: Releases a datatype.
+!****s* H5T/h5tclose_f
!
-! Inputs:
-! type_id - datatype identifier
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tclose_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Releases a datatype.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - datatype identifier
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5tclose_f(type_id, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! SOURCE
+ SUBROUTINE h5tclose_f(type_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5tclose_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5tclose_c(type_id)
USE H5GLOBAL
@@ -327,44 +325,42 @@ CONTAINS
hdferr = h5tclose_c(type_id)
END SUBROUTINE h5tclose_f
-
-!----------------------------------------------------------------------
-! Name: h5tget_class_f
-!
-! Purpose: Returns the datatype class identifier.
-!
-! Inputs:
-! type_id - datatype identifier
-! Outputs:
-! class - class, possible values are:
-! H5T_NO_CLASS_F (-1)
-! H5T_INTEGER_F (0)
-! H5T_FLOAT_F (1)
-! H5T_TIME_F (2)
-! H5T_STRING_F (3)
-! H5T_BITFIELD_F (4)
-! H5T_OPAQUE_F (5)
-! H5T_COMPOUND_F (6)
-! H5T_REFERENCE_F (7)
-! H5T_ENUM_F (8)
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5tget_class_f(type_id, class, hdferr)
+!
+!****s* H5T/h5tget_class_f
+!
+! NAME
+! h5tget_class_f
+!
+! PURPOSE
+! Returns the datatype class identifier.
+!
+! INPUTS
+! type_id - datatype identifier
+! OUTPUTS
+! class - class, possible values are:
+! H5T_NO_CLASS_F (-1)
+! H5T_INTEGER_F (0)
+! H5T_FLOAT_F (1)
+! H5T_TIME_F (2)
+! H5T_STRING_F (3)
+! H5T_BITFIELD_F (4)
+! H5T_OPAQUE_F (5)
+! H5T_COMPOUND_F (6)
+! H5T_REFERENCE_F (7)
+! H5T_ENUM_F (8)
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! SOURCE
+ SUBROUTINE h5tget_class_f(type_id, class, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: class
@@ -380,10 +376,7 @@ CONTAINS
! H5T_REFERENCE_F (7)
! H5T_ENUM_F (8)
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5tget_class_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5tget_class_c(type_id, class)
USE H5GLOBAL
@@ -397,42 +390,37 @@ CONTAINS
hdferr = h5tget_class_c(type_id, class)
END SUBROUTINE h5tget_class_f
-
-!----------------------------------------------------------------------
-! Name: h5tget_size_f
!
-! Purpose: Returns the size of a datatype.
+!****s* H5T/h5tget_size_f
!
-! Inputs:
-! type_id - datatype identifier
-! Outputs:
-! size - datatype size
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tget_size_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Returns the size of a datatype.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - datatype identifier
+! OUTPUTS
+! size - datatype size
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5tget_size_f(type_id, size, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! SOURCE
+ SUBROUTINE h5tget_size_f(type_id, size, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(SIZE_T), INTENT(OUT) :: size ! Datatype size
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5tget_size_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5tget_size_c(type_id, size)
USE H5GLOBAL
@@ -447,41 +435,38 @@ CONTAINS
hdferr = h5tget_size_c(type_id, size)
END SUBROUTINE h5tget_size_f
-!----------------------------------------------------------------------
-! Name: h5tset_size_f
!
-! Purpose: Sets the total size for an atomic datatype.
+!****s* H5T/h5tset_size_f
!
-! Inputs:
-! type_id - datatype identifier
-! size - size of the datatype
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tset_size_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Sets the total size for an atomic datatype.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - datatype identifier
+! size - size of the datatype
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5tset_size_f(type_id, size, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+!
+! SOURCE
+ SUBROUTINE h5tset_size_f(type_id, size, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(SIZE_T), INTENT(IN) :: size ! Datatype size
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5tset_size_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5tset_size_c(type_id, size)
USE H5GLOBAL
@@ -496,155 +481,139 @@ CONTAINS
hdferr = h5tset_size_c(type_id, size)
END SUBROUTINE h5tset_size_f
-!----------------------------------------------------------------------
-! Name: h5tget_order_f
!
-! Purpose: Returns the byte order of an atomic datatype.
+!****s* H5T/h5tget_order_f
!
-! Inputs:
-! type_id - datatype identifier
-! Outputs:
-! order - byte order for the datatype, possible
-! values are:
-! H5T_ORDER_LE_F
-! H5T_ORDER_BE_F
-! H5T_ORDER_VAX_F (not implemented yet)
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tget_order_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Returns the byte order of an atomic datatype.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - datatype identifier
+! OUTPUTS
+! order - byte order for the datatype, possible
+! values are:
+! H5T_ORDER_LE_F
+! H5T_ORDER_BE_F
+! H5T_ORDER_VAX_F (not implemented yet)
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5tget_order_f(type_id, order, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
- INTEGER, INTENT(OUT) :: order
- ! Datatype byte order, bossible values are:
- ! H5T_ORDER_LE_F
- ! H5T_ORDER_BE_F
- ! H5T_ORDER_VAX_F
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5tget_order_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
!
- INTERFACE
- INTEGER FUNCTION h5tget_order_c(type_id, order)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_ORDER_C'::h5tget_order_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: type_id
- INTEGER, INTENT(OUT) :: order
- END FUNCTION h5tget_order_c
- END INTERFACE
-
- hdferr = h5tget_order_c(type_id, order)
- END SUBROUTINE h5tget_order_f
+! SOURCE
+ SUBROUTINE h5tget_order_f(type_id, order, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
+ INTEGER, INTENT(OUT) :: order
+ ! Datatype byte order, possible values are:
+ ! H5T_ORDER_LE_F
+ ! H5T_ORDER_BE_F
+ ! H5T_ORDER_VAX_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5tget_order_c(type_id, order)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_ORDER_C'::h5tget_order_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(OUT) :: order
+ END FUNCTION h5tget_order_c
+ END INTERFACE
+
+ hdferr = h5tget_order_c(type_id, order)
+ END SUBROUTINE h5tget_order_f
+!
+!****s* H5T/h5tset_order_f
+!
+! NAME
+! h5tset_order_f
+!
+! PURPOSE
+! Sets the byte ordering of an atomic datatype.
+!
+! INPUTS
+! type_id - datatype identifier
+! order - datatype byte order Possible values are:
+! H5T_ORDER_LE_F
+! H5T_ORDER_BE_F
+! H5T_ORDER_VAX_F (not implemented yet)
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! SOURCE
+ SUBROUTINE h5tset_order_f(type_id, order, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
+ INTEGER, INTENT(IN) :: order ! Datatype byte order, possible values
+ ! are:
+ ! H5T_ORDER_LE_F
+ ! H5T_ORDER_BE_F
+ ! H5T_ORDER_VAX_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5tset_order_c(type_id, order)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TSET_ORDER_C'::h5tset_order_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(IN) :: order
+ END FUNCTION h5tset_order_c
+ END INTERFACE
+
+ hdferr = h5tset_order_c(type_id, order)
+ END SUBROUTINE h5tset_order_f
-!----------------------------------------------------------------------
-! Name: h5tset_order_f
!
-! Purpose: Sets the byte ordering of an atomic datatype.
+!****s* H5T/h5tget_precision_f
!
-! Inputs:
-! type_id - datatype identifier
-! order - datatype byte order
-! Possible values are:
-! H5T_ORDER_LE_F
-! H5T_ORDER_BE_F
-! H5T_ORDER_VAX_F (not implemented yet)
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tget_precision_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Returns the precision of an atomic datatype.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5tset_order_f(type_id, order, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
- INTEGER, INTENT(IN) :: order ! Datatype byte order, bossible values
- ! are:
- ! H5T_ORDER_LE_F
- ! H5T_ORDER_BE_F
- ! H5T_ORDER_VAX_F
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5tset_order_c
-! MS FORTRAN needs explicit interface for C functions called here.
+! INPUTS
+! type_id - datatype identifier
+! OUTPUTS
+! precision - precision of the datatype
+! hdferr - Returns 0 if successful and -1 if fails
!
- INTERFACE
- INTEGER FUNCTION h5tset_order_c(type_id, order)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TSET_ORDER_C'::h5tset_order_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: type_id
- INTEGER, INTENT(IN) :: order
- END FUNCTION h5tset_order_c
- END INTERFACE
-
- hdferr = h5tset_order_c(type_id, order)
- END SUBROUTINE h5tset_order_f
-
-!----------------------------------------------------------------------
-! Name: h5tget_precision_f
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Purpose: Returns the precision of an atomic datatype.
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
!
-! Inputs:
-! type_id - datatype identifier
-! Outputs:
-! precision - precision of the datatype
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5tget_precision_f(type_id, precision, hdferr)
+! SOURCE
+ SUBROUTINE h5tget_precision_f(type_id, precision, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(SIZE_T), INTENT(OUT) :: precision ! Datatype precision
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5tget_precision_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5tget_precision_c (type_id, precision)
USE H5GLOBAL
@@ -659,40 +628,37 @@ CONTAINS
hdferr = h5tget_precision_c(type_id, precision)
END SUBROUTINE h5tget_precision_f
-!----------------------------------------------------------------------
-! Name: h5tset_precision_f
!
-! Purpose: Sets the precision of an atomic datatype.
+!****s* H5T/h5tset_precision_f
!
-! Inputs:
-! type_id - datatype identifier
-! precision - datatype precision
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tset_precision_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Sets the precision of an atomic datatype.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - datatype identifier
+! precision - datatype precision
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tset_precision_f(type_id, precision, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! SOURCE
+ SUBROUTINE h5tset_precision_f(type_id, precision, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(SIZE_T), INTENT(IN) :: precision ! Datatype precision
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5tset_precision_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5tset_precision_c (type_id, precision)
USE H5GLOBAL
@@ -707,41 +673,37 @@ CONTAINS
hdferr = h5tset_precision_c(type_id, precision)
END SUBROUTINE h5tset_precision_f
-!----------------------------------------------------------------------
-! Name: h5tget_offset_f
!
-! Purpose: Retrieves the bit offset of the first significant bit.
+!****s* H5T/h5tget_offset_f
!
-! Inputs:
-! type_id - datatype identifier
-! Outputs:
-! offset - offset value
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tget_offset_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Retrieves the bit offset of the first significant bit.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - datatype identifier
+! OUTPUTS
+! offset - offset value
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tget_offset_f(type_id, offset, hdferr)
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! SOURCE
+ SUBROUTINE h5tget_offset_f(type_id, offset, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(SIZE_T), INTENT(OUT) :: offset ! Datatype bit offset of the
! first significant bit
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5tget_offset_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5tget_offset_c(type_id, offset)
USE H5GLOBAL
@@ -756,41 +718,37 @@ CONTAINS
hdferr = h5tget_offset_c(type_id, offset)
END SUBROUTINE h5tget_offset_f
-!----------------------------------------------------------------------
-! Name: h5tset_offset_f
!
-! Purpose: Sets the bit offset of the first significant bit.
+!****s* H5T/h5tset_offset_f
!
-! Inputs:
-! type_id - datatype identifier
-! offset - offset value
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tset_offset_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Sets the bit offset of the first significant bit.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - datatype identifier
+! offset - offset value
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tset_offset_f(type_id, offset, hdferr)
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! SOURCE
+ SUBROUTINE h5tset_offset_f(type_id, offset, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(SIZE_T), INTENT(IN) :: offset ! Datatype bit offset of the
! first significant bit
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5tset_offset_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5tset_offset_c(type_id, offset)
USE H5GLOBAL
@@ -805,40 +763,40 @@ CONTAINS
hdferr = h5tset_offset_c(type_id, offset)
END SUBROUTINE h5tset_offset_f
-!----------------------------------------------------------------------
-! Name: h5tget_pad_f
-!
-! Purpose: Retrieves the padding type of the least and
-! most-significant bit padding.
-!
-! Inputs:
-! type_id - datatype identifier
-! Outputs:
-! lsbpad - least-significant bit padding type
-! msbpad - most-significant bit padding type
-! Possible values of padding type are:
-! H5T_PAD_ERROR_F = -1
-! H5T_PAD_ZERO_F = 0
-! H5T_PAD_ONE_F = 1
-! H5T_PAD_BACKGROUND_F = 2
-! H5T_PAD_NPAD_F = 3
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tget_pad_f(type_id, lsbpad, msbpad, hdferr)
+!
+!****s* H5T/h5tget_pad_f
+!
+! NAME
+! h5tget_pad_f
+!
+! PURPOSE
+! Retrieves the padding type of the least and
+! most -significant bit padding.
+!
+! INPUTS
+! type_id - datatype identifier
+! OUTPUTS
+! lsbpad - least-significant bit padding type
+! msbpad - most-significant bit padding type
+! Possible values of padding type are:
+! H5T_PAD_ERROR_F = -1
+! H5T_PAD_ZERO_F = 0
+! H5T_PAD_ONE_F = 1
+! H5T_PAD_BACKGROUND_F = 2
+! H5T_PAD_NPAD_F = 3
+! hdferr - Returns 0 if successful and -1 if fails
+
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tget_pad_f(type_id, lsbpad, msbpad, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: lsbpad ! padding type of the
@@ -853,10 +811,7 @@ CONTAINS
! H5T_PAD_NPAD_F = 3
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5tget_pad_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5tget_pad_c(type_id, lsbpad, msbpad)
USE H5GLOBAL
@@ -872,39 +827,38 @@ CONTAINS
hdferr = h5tget_pad_c(type_id, lsbpad, msbpad)
END SUBROUTINE h5tget_pad_f
-!----------------------------------------------------------------------
-! Name: h5tset_pad_f
-!
-! Purpose: Sets the least and most-significant bits padding types.
-!
-! Inputs:
-! type_id - datatype identifier
-! lsbpad - least-significant bit padding type
-! msbpad - most-significant bit padding type
-! Possible values of padding type are:
-! H5T_PAD_ERROR_F = -1
-! H5T_PAD_ZERO_F = 0
-! H5T_PAD_ONE_F = 1
-! H5T_PAD_BACKGROUND_F = 2
-! H5T_PAD_NPAD_F = 3
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tset_pad_f(type_id, lsbpad, msbpad, hdferr)
+!
+!****s* H5T/h5tset_pad_f
+!
+! NAME
+! h5tset_pad_f
+!
+! PURPOSE
+! Sets the least and most-significant bits padding types.
+!
+! INPUTS
+! type_id - datatype identifier
+! lsbpad - least-significant bit padding type
+! msbpad - most-significant bit padding type
+! Possible values of padding type are:
+! H5T_PAD_ERROR_F = -1
+! H5T_PAD_ZERO_F = 0
+! H5T_PAD_ONE_F = 1
+! H5T_PAD_BACKGROUND_F = 2
+! H5T_PAD_NPAD_F = 3
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tset_pad_f(type_id, lsbpad, msbpad, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: lsbpad ! padding type of the
@@ -918,10 +872,7 @@ CONTAINS
! H5T_PAD_ERROR_F = -1
! H5T_PAD_NPAD_F = 3
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5sget_pad_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5tset_pad_c(type_id, lsbpad, msbpad)
USE H5GLOBAL
@@ -937,37 +888,37 @@ CONTAINS
hdferr = h5tset_pad_c(type_id, lsbpad, msbpad)
END SUBROUTINE h5tset_pad_f
-!----------------------------------------------------------------------
-! Name: h5tget_sign_f
-!
-! Purpose: Retrieves the sign type for an integer type.
-!
-! Inputs:
-! type_id - datatype identifier
-! Outputs:
-! sign - sign type
-! Possible values are:
-! Unsigned integer type H5T_SGN_NONE_F = 0
-! Two's complement signed integer type
-! H5T_SGN_2_F = 1
-! or error value: H5T_SGN_ERROR_F=-1
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tget_sign_f(type_id, sign, hdferr)
+!
+!****s* H5T/h5tget_sign_f
+!
+! NAME
+! h5tget_sign_f
+!
+! PURPOSE
+! Retrieves the sign type for an integer type.
+!
+! INPUTS
+! type_id - datatype identifier
+! OUTPUTS
+! sign - sign type
+! Possible values are:
+! - Unsigned integer type
+! H5T_SGN_NONE_F = 0
+! - Two's complement signed integer type
+! H5T_SGN_2_F = 1
+! - error value: H5T_SGN_ERROR_F=-1
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tget_sign_f(type_id, sign, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: sign ! sign type for an integer type
@@ -977,10 +928,8 @@ CONTAINS
!H5T_SGN_2_F = 1
!or error value: H5T_SGN_ERROR_F=-1
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
-! INTEGER, EXTERNAL :: h5tget_sign_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5tget_sign_c(type_id, sign)
USE H5GLOBAL
@@ -995,37 +944,37 @@ CONTAINS
hdferr = h5tget_sign_c(type_id, sign)
END SUBROUTINE h5tget_sign_f
-!----------------------------------------------------------------------
-! Name: h5tset_sign_f
-!
-! Purpose: Sets the sign proprety for an integer type.
-!
-! Inputs:
-! type_id - datatype identifier
-! sign - sign type
-! Possible values are:
-! Unsigned integer type H5T_SGN_NONE_F = 0
-! Two's complement signed integer type
-! H5T_SGN_2_F = 1
-! or error value: H5T_SGN_ERROR_F=-1
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tset_sign_f(type_id, sign, hdferr)
+!
+!****s* H5T/h5tset_sign_f
+!
+! NAME
+! h5tset_sign_f
+!
+! PURPOSE
+! Sets the sign proprety for an integer type.
+!
+! INPUTS
+! type_id - datatype identifier
+! sign - sign type
+! Possible values are:
+! - Unsigned integer type
+! H5T_SGN_NONE_F = 0
+! - Two's complement signed integer type
+! H5T_SGN_2_F = 1
+! - error value: H5T_SGN_ERROR_F=-1
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tset_sign_f(type_id, sign, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: sign !sign type for an integer type
@@ -1035,10 +984,8 @@ CONTAINS
!H5T_SGN_2_F = 1
!or error value: H5T_SGN_ERROR_F=-1
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
-! INTEGER, EXTERNAL :: h5tset_sign_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5tset_sign_c(type_id, sign)
USE H5GLOBAL
@@ -1053,36 +1000,35 @@ CONTAINS
hdferr = h5tset_sign_c(type_id, sign)
END SUBROUTINE h5tset_sign_f
-!----------------------------------------------------------------------
-! Name: h5tget_fields_f
!
-! Purpose: Retrieves floating point datatype bit field information.
+!****s* H5T/h5tget_fields_f
!
-! Inputs:
-! type_id - datatype identifier
-! Outputs:
-! spos - sign bit-position
-! epos - exponent bit-position
-! esize - size of exponent in bits
-! mpos - mantissa position
-! msize - size of mantissa in bits
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tget_fields_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Retrieves floating point datatype bit field information.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - datatype identifier
+! OUTPUTS
+! spos - sign bit-position
+! epos - exponent bit-position
+! esize - size of exponent in bits
+! mpos - mantissa position
+! msize - size of mantissa in bits
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tget_fields_f(type_id, spos, epos, esize, mpos, msize, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tget_fields_f(type_id, spos, epos, esize, mpos, msize, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(SIZE_T), INTENT(OUT) :: spos ! sign bit-position
@@ -1091,10 +1037,8 @@ CONTAINS
INTEGER(SIZE_T), INTENT(OUT) :: mpos ! mantissa bit-position
INTEGER(SIZE_T), INTENT(OUT) :: msize ! size of mantissa in bits
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
-! INTEGER, EXTERNAL :: h5tget_fields_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5tget_fields_c(type_id, spos, epos, esize, mpos, msize)
USE H5GLOBAL
@@ -1113,37 +1057,35 @@ CONTAINS
hdferr = h5tget_fields_c(type_id, spos, epos, esize, mpos, msize)
END SUBROUTINE h5tget_fields_f
-!----------------------------------------------------------------------
-! Name: h5tset_fields_f
-!
-! Purpose: Sets locations and sizes of floating point bit fields.
-!
-! Inputs:
-! type_id - datatype identifier
-! spos - sign bit-position
-! epos - exponent bit-position
-! esize - size of exponent in bits
-! mpos - mantissa position
-! msize - size of mantissa in bits
-! hdferr: - error code
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tset_fields_f(type_id, spos, epos, esize, mpos, msize, hdferr)
+!
+!****s* H5T/h5tset_fields_f
+!
+! NAME
+! h5tset_fields_f
+!
+! PURPOSE
+! Sets locations and sizes of floating point bit fields.
+!
+! INPUTS
+! type_id - datatype identifier
+! spos - sign bit-position
+! epos - exponent bit-position
+! esize - size of exponent in bits
+! mpos - mantissa position
+! msize - size of mantissa in bits
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tset_fields_f(type_id, spos, epos, esize, mpos, msize, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(SIZE_T), INTENT(IN) :: spos ! sign bit-position
@@ -1152,10 +1094,8 @@ CONTAINS
INTEGER(SIZE_T), INTENT(IN) :: mpos ! mantissa bit-position
INTEGER(SIZE_T), INTENT(IN) :: msize ! size of mantissa in bits
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
-! INTEGER, EXTERNAL :: h5tset_fields_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5tset_fields_c(type_id, spos, epos, esize, mpos, msize)
USE H5GLOBAL
@@ -1174,40 +1114,37 @@ CONTAINS
hdferr = h5tset_fields_c(type_id, spos, epos, esize, mpos, msize)
END SUBROUTINE h5tset_fields_f
-!----------------------------------------------------------------------
-! Name: h5tget_ebias_f
!
-! Purpose: Retrieves the exponent bias of a floating-point type.
+!****s* H5T/h5tget_ebias_f
!
-! Inputs:
-! type_id - datatype identifier
-! Outputs:
-! ebias - datatype exponent bias
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tget_ebias_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Retrieves the exponent bias of a floating-point type.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - datatype identifier
+! OUTPUTS
+! ebias - datatype exponent bias
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tget_ebias_f(type_id, ebias, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tget_ebias_f(type_id, ebias, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(SIZE_T), INTENT(OUT) :: ebias ! Datatype exponent bias of a floating-point type
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
-! INTEGER, EXTERNAL :: h5tget_ebias_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5tget_ebias_c(type_id, ebias)
USE H5GLOBAL
@@ -1222,41 +1159,37 @@ CONTAINS
hdferr = h5tget_ebias_c(type_id, ebias)
END SUBROUTINE h5tget_ebias_f
-!----------------------------------------------------------------------
-! Name: h5tset_ebias_f
!
-! Purpose: Sets the exponent bias of a floating-point type.
+!****s* H5T/h5tset_ebias_f
!
-! Inputs:
-! type_id - datatype identifier
-! ebias - datatype exponent bias
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tset_ebias_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Sets the exponent bias of a floating-point type.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - datatype identifier
+! ebias - datatype exponent bias
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5tset_ebias_f(type_id, ebias, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tset_ebias_f(type_id, ebias, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(SIZE_T), INTENT(IN) :: ebias !Datatype exponent bias of a floating-point type
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
-! INTEGER, EXTERNAL :: h5tset_ebias_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5tset_ebias_c(type_id, ebias)
USE H5GLOBAL
@@ -1271,36 +1204,35 @@ CONTAINS
hdferr = h5tset_ebias_c(type_id, ebias)
END SUBROUTINE h5tset_ebias_f
-!----------------------------------------------------------------------
-! Name: h5tget_norm_f
!
-! Purpose: Retrieves mantissa normalization of a floating-point
-! datatype.
+!****s* H5T/h5tget_norm_f
!
-! Inputs:
-! type_id - datatype identifier
-! Outputs:
-! norm - normalization types, valid values are:
-! H5T_NORM_IMPLIED_F(0)
-! H5T_NORM_MSBSET_F(1)
-! H5T_NORM_NONE_F(2)
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tget_norm_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Retrieves mantissa normalization of a floating-point
+! datatype.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - datatype identifier
+! OUTPUTS
+! norm - normalization types, valid values are:
+! H5T_NORM_IMPLIED_F(0)
+! H5T_NORM_MSBSET_F(1)
+! H5T_NORM_NONE_F(2)
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tget_norm_f(type_id, norm, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tget_norm_f(type_id, norm, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: norm !mantissa normalization of a floating-point datatype
@@ -1310,10 +1242,8 @@ CONTAINS
!mantissa is always 1, H5T_NORM_NONE_F(2)
!Mantissa is not normalize
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
-! INTEGER, EXTERNAL :: h5tget_norm_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5tget_norm_c(type_id, norm)
USE H5GLOBAL
@@ -1328,36 +1258,35 @@ CONTAINS
hdferr = h5tget_norm_c(type_id, norm)
END SUBROUTINE h5tget_norm_f
-!----------------------------------------------------------------------
-! Name: h5tset_norm_f
!
-! Purpose: Sets the mantissa normalization of a floating-point datatype.
+!****s* H5T/h5tset_norm_f
!
-! Inputs:
-! type_id - datatype identifier
-! norm - normalization types, valid values are:
-! H5T_NORM_IMPLIED_F(0)
-! H5T_NORM_MSBSET_F(1)
-! H5T_NORM_NONE_F(2)
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tset_norm_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Sets the mantissa normalization of a floating-point datatype.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - datatype identifier
+! norm - normalization types, valid values are:
+! H5T_NORM_IMPLIED_F(0)
+! H5T_NORM_MSBSET_F(1)
+! H5T_NORM_NONE_F(2)
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5tset_norm_f(type_id, norm, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! SOURCE
+ SUBROUTINE h5tset_norm_f(type_id, norm, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: norm !mantissa normalization of a floating-point datatype
@@ -1367,10 +1296,7 @@ CONTAINS
!mantissa is always 1, H5T_NORM_NONE_F(2)
!Mantissa is not normalize
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5tset_norm_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5tset_norm_c(type_id, norm)
USE H5GLOBAL
@@ -1385,37 +1311,36 @@ CONTAINS
hdferr = h5tset_norm_c(type_id, norm)
END SUBROUTINE h5tset_norm_f
-!----------------------------------------------------------------------
-! Name: h5tget_inpad_f
-!
-! Purpose: Retrieves the internal padding type for unused bits
-! in floating-point datatypes.
-!
-! Inputs:
-! type_id - datatype identifier
-! Outputs:
-! padtype - padding type for unused bits
-! Possible values of padding type are:
-! H5T_PAD_ZERO_F = 0
-! H5T_PAD_ONE_F = 1
-! H5T_PAD_BACKGROUND_F = 2
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tget_inpad_f(type_id, padtype, hdferr)
+!
+!****s* H5T/h5tget_inpad_f
+!
+! NAME
+! h5tget_inpad_f
+!
+! PURPOSE
+! Retrieves the internal padding type for unused bits
+! in floating-point datatypes.
+!
+! INPUTS
+! type_id - datatype identifier
+! OUTPUTS
+! padtype - padding type for unused bits
+! Possible values of padding type are:
+! H5T_PAD_ZERO_F = 0
+! H5T_PAD_ONE_F = 1
+! H5T_PAD_BACKGROUND_F = 2
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tget_inpad_f(type_id, padtype, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: padtype ! padding type for unused bits
@@ -1426,10 +1351,7 @@ CONTAINS
! H5T__PAD_BACKGROUND_F = 2
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5tget_inpad_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5tget_inpad_c(type_id, padtype)
USE H5GLOBAL
@@ -1444,36 +1366,35 @@ CONTAINS
hdferr = h5tget_inpad_c(type_id, padtype)
END SUBROUTINE h5tget_inpad_f
-!----------------------------------------------------------------------
-! Name: h5tset_inpad_f
!
-! Purpose: Fills unused internal floating point bits.
+!****s* H5T/h5tset_inpad_f
!
-! Inputs:
-! type_id - datatype identifier
-! padtype - padding type for unused bits
-! Possible values of padding type are:
-! H5T_PAD_ZERO_F = 0
-! H5T_PAD_ONE_F = 1
-! H5T_PAD_BACKGROUND_F = 2
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tset_inpad_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Fills unused internal floating point bits.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - datatype identifier
+! padtype - padding type for unused bits
+! Possible values of padding type are:
+! H5T_PAD_ZERO_F = 0
+! H5T_PAD_ONE_F = 1
+! H5T_PAD_BACKGROUND_F = 2
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tset_inpad_f(type_id, padtype, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tset_inpad_f(type_id, padtype, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: padtype ! padding type for unused bits
@@ -1483,10 +1404,7 @@ CONTAINS
! H5T__PAD_ONE_F = 1
! H5T__PAD_BACKGROUND_F = 2
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5tset_inpad_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5tset_inpad_c(type_id, padtype)
USE H5GLOBAL
@@ -1501,46 +1419,42 @@ CONTAINS
hdferr = h5tset_inpad_c(type_id, padtype)
END SUBROUTINE h5tset_inpad_f
-!----------------------------------------------------------------------
-! Name: h5tget_cset_f
!
-! Purpose: Retrieves the character set type of a string datatype.
+!****s* H5T/h5tget_cset_f
!
-! Inputs:
-! type_id - datatype identifier
-! Outputs:
-! cset - character set type of a string datatype
-! Possible values are:
-! H5T_CSET_ASCII_F = 0
-! H5T_CSET_UTF8_F
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tget_cset_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Retrieves the character set type of a string datatype.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - Datatype identifier
+! OUTPUTS
+! cset - Character set type of a string datatype
+! Possible values are:
+! H5T_CSET_ASCII_F = 0
+! H5T_CSET_UTF8_F
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tget_cset_f(type_id, cset, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tget_cset_f(type_id, cset, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
- INTEGER, INTENT(OUT) :: cset ! character set type of a string datatype
- ! Possible values are:
- ! H5T_CSET_ASCII_F = 0
- ! H5T_CSET_UTF8_F
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5tget_cset_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+ INTEGER, INTENT(OUT) :: cset ! character set type of a string datatype
+ ! Possible values are:
+ ! H5T_CSET_ASCII_F = 0
+ ! H5T_CSET_UTF8_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
INTERFACE
INTEGER FUNCTION h5tget_cset_c(type_id, cset)
USE H5GLOBAL
@@ -1555,47 +1469,42 @@ CONTAINS
hdferr = h5tget_cset_c(type_id, cset)
END SUBROUTINE h5tget_cset_f
-!----------------------------------------------------------------------
-! Name: h5tset_cset_f
!
-! Purpose: Sets character set to be used.
+!****s* H5T/h5tset_cset_f
!
-! Inputs:
-! type_id - datatype identifier
-! cset - character set type of a string datatype
-! Possible values are:
-! H5T_CSET_ASCII_F = 0
-! H5T_CSET_UTF8_F
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tset_cset_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Sets character set to be used.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - datatype identifier
+! cset - character set type of a string datatype
+! Possible values are:
+! H5T_CSET_ASCII_F = 0
+! H5T_CSET_UTF8_F
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tset_cset_f(type_id, cset, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tset_cset_f(type_id, cset, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: cset !character set type of a string datatype
- !Possible values are:
- ! H5T_CSET_ASCII_F = 0
- ! H5T_CSET_UTF8_F
-
+ ! Possible values of padding type are:
+ ! H5T_CSET_ASCII_F = 0
+ ! H5T_CSET_UTF8_F
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5tset_cset_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5tset_cset_c(type_id, cset)
USE H5GLOBAL
@@ -1610,45 +1519,41 @@ CONTAINS
hdferr = h5tset_cset_c(type_id, cset)
END SUBROUTINE h5tset_cset_f
-!----------------------------------------------------------------------
-! Name: h5tget_strpad_f
-!
-! Purpose: Retrieves the storage mechanism for a string datatype.
-!
-! Inputs:
-! type_id - datatype identifier
-! Outputs:
-! strpad - storage method for a string datatype
-! Possible values are:
-! H5T_STR_NULLTERM_F,
-! H5T_STR_NULLPAD_F,
-! H5T_STR_SPACEPAD_F
-! H5T_STR_ERROR_F
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tget_strpad_f(type_id, strpad, hdferr)
+!
+!****s* H5T/h5tget_strpad_f
+!
+! NAME
+! h5tget_strpad_f
+!
+! PURPOSE
+! Retrieves the storage mechanism for a string datatype.
+!
+! INPUTS
+! type_id - datatype identifier
+! OUTPUTS
+! strpad - storage method for a string datatype
+! Possible values are:
+! H5T_STR_NULLTERM_F,
+! H5T_STR_NULLPAD_F,
+! H5T_STR_SPACEPAD_F
+! H5T_STR_ERROR_F
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tget_strpad_f(type_id, strpad, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: strpad
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5tget_strpad_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5tget_strpad_c(type_id, strpad)
USE H5GLOBAL
@@ -1663,45 +1568,41 @@ CONTAINS
hdferr = h5tget_strpad_c(type_id, strpad)
END SUBROUTINE h5tget_strpad_f
-!----------------------------------------------------------------------
-! Name: h5tset_strpad_f
-!
-! Purpose: Defines the storage mechanism for character strings.
-!
-! Inputs:
-! type_id - datatype identifier
-! strpad - storage method for a string datatype
-! Possible values are:
-! H5T_STR_NULLTERM_F,
-! H5T_STR_NULLPAD_F,
-! H5T_STR_SPACEPAD_F
-! H5T_STR_ERROR_F
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tset_strpad_f(type_id, strpad, hdferr)
+!
+!****s* H5T/h5tset_strpad_f
+!
+! NAME
+! h5tset_strpad_f
+!
+! PURPOSE
+! Defines the storage mechanism for character strings.
+!
+! INPUTS
+! type_id - datatype identifier
+! strpad - storage method for a string datatype
+! Possible values are:
+! H5T_STR_NULLTERM_F,
+! H5T_STR_NULLPAD_F,
+! H5T_STR_SPACEPAD_F
+! H5T_STR_ERROR_F
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tset_strpad_f(type_id, strpad, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: strpad ! string padding method for a string datatype
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5tset_strpad_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5tset_strpad_c(type_id, strpad)
USE H5GLOBAL
@@ -1716,41 +1617,38 @@ CONTAINS
hdferr = h5tset_strpad_c(type_id, strpad)
END SUBROUTINE h5tset_strpad_f
-!----------------------------------------------------------------------
-! Name: h5tget_nmembers_f
!
-! Purpose: Retrieves the number of fields in a compound datatype.
+!****s* H5T/h5tget_nmembers_f
!
-! Inputs:
-! type_id - datatype identifier
-! Outputs:
-! num_members - number of members
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tget_nmembers_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Retrieves the number of fields in a compound datatype.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - datatype identifier
+! OUTPUTS
+! num_members - number of members
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5tget_nmembers_f(type_id, num_members, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! SOURCE
+ SUBROUTINE h5tget_nmembers_f(type_id, num_members, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: num_members !number of fields in a compound datatype
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
-! INTEGER, EXTERNAL :: h5tget_nmembers_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5tget_nmembers_c(type_id, num_members)
USE H5GLOBAL
@@ -1765,34 +1663,33 @@ CONTAINS
hdferr = h5tget_nmembers_c(type_id, num_members)
END SUBROUTINE h5tget_nmembers_f
-!----------------------------------------------------------------------
-! Name: h5tget_member_name_f
!
-! Purpose: Retrieves the name of a field of a compound datatype.
+!****s* H5T/h5tget_member_name_f
!
-! Inputs:
-! type_id - datatype identifier
-! index - filed index (0-based)
-! Outputs:
-! member_name - buffer to hold member's name
-! namelen - name length
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tget_member_name_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Retrieves the name of a field of a compound datatype.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - datatype identifier
+! index - filed index (0-based)
+! OUTPUTS
+! member_name - buffer to hold member's name
+! namelen - name length
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tget_member_name_f(type_id, index, member_name, namelen, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tget_member_name_f(type_id, index, member_name, namelen, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: index !Field index (0-based) of the field name to retrieve
@@ -1800,10 +1697,7 @@ CONTAINS
!a compound datatype
INTEGER, INTENT(OUT) :: namelen ! Length of the name
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5tget_member_name_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5tget_member_name_c(type_id, index, member_name, namelen)
USE H5GLOBAL
@@ -1821,43 +1715,39 @@ CONTAINS
hdferr = h5tget_member_name_c(type_id, index, member_name, namelen)
END SUBROUTINE h5tget_member_name_f
-!----------------------------------------------------------------------
-! Name: h5tget_member_offset_f
!
-! Purpose: Retrieves the offset of a field of a compound datatype.
+!****s* H5T/h5tget_member_offset_f
!
-! Inputs:
-! type_id - datatype identifier
-! member_no - number of the field
-! Outputs:
-! offset - byte offset of the requested field
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tget_member_offset_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Retrieves the offset of a field of a compound datatype.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - datatype identifier
+! member_no - number of the field
+! OUTPUTS
+! offset - byte offset of the requested field
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tget_member_offset_f(type_id, member_no, offset, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tget_member_offset_f(type_id, member_no, offset, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: member_no !Number of the field
!whose offset is requested
INTEGER(SIZE_T), INTENT(OUT) :: offset !byte offset of the beginning of the field
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5tget_member_offset_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5tget_member_offset_c(type_id, member_no, offset )
USE H5GLOBAL
@@ -1872,37 +1762,35 @@ CONTAINS
hdferr = h5tget_member_offset_c(type_id, member_no, offset )
END SUBROUTINE h5tget_member_offset_f
-!----------------------------------------------------------------------
-! Name: h5tget_member_index_f
!
-! Purpose: Retrieves the index of a compound or enumeration datatype member.
+!****s* H5T/h5tget_member_index_f
!
-! Inputs:
-! type_id - datatype identifier
-! name - name of the field or member whose index to
-! to be retrieved from the datatype.
-! Outputs:
-! index - 0-based index of the filed or member (0 to N-1)
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tget_member_index_f
!
-! Programmer: Elena Pourmal
-! September 26, 2002
+! PURPOSE
+! Retrieves the index of a compound or enumeration datatype member.
!
-! Modifications:
+! INPUTS
+! type_id - datatype identifier
+! name - name of the field or member whose index to
+! to be retrieved from the datatype.
+! OUTPUTS
+! index - 0-based index of the filed or member (0 to N-1)
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tget_member_index_f(type_id, name, index, hdferr)
+! AUTHOR
+! Elena Pourmal
+! September 26, 2002
+!
+! SOURCE
+ SUBROUTINE h5tget_member_index_f(type_id, name, index, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Field or member name
INTEGER, INTENT(OUT) :: index ! Field or member index
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
INTEGER :: namelen ! Name length
INTERFACE
@@ -1924,83 +1812,82 @@ CONTAINS
END SUBROUTINE h5tget_member_index_f
-!----------------------------------------------------------------------
-! Name: h5tget_member_dim_f
-!
-! Purpose: This function is not supported in hdf5-1.4.*
-!
-! Inputs:
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
-! SUBROUTINE h5tget_member_dims_f(type_id, field_idx,dims, field_dims, perm, hdferr)
-!
-! IMPLICIT NONE
-! INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
-! INTEGER, INTENT(IN) :: field_idx !Field index (0-based) of
-! !field_dims, perm)
-! INTEGER, INTENT(OUT) :: dims !number of dimensions of the field
-!
-! INTEGER(SIZE_T),DIMENSION(*), INTENT(OUT) :: field_dims !buffer to store the
-! !dimensions of the field
-! INTEGER, DIMENSION(*), INTENT(OUT) :: perm !buffer to store the
-! !permutation vector of the field
-! INTEGER, INTENT(OUT) :: hdferr ! Error code
-! INTEGER, EXTERNAL :: h5tget_member_dims_c
-! hdferr = h5tget_member_dims_c(type_id, field_idx, dims, field_dims, perm)
-!
-! END SUBROUTINE h5tget_member_dims_f
-
-!----------------------------------------------------------------------
-! Name: h5tget_array_dims_f
-!
-! Purpose: Returns sizes of array dimensions.
-!
-! Inputs:
-! type_id - array datatype identifier
-! Outputs:
-! dims - buffer to store array datatype
-! dimensions
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tget_array_dims_f(type_id, dims, hdferr)
+! !$!
+! !$!****s* H5T/h5tget_member_dim_f
+! !$!
+! !$! NAME
+! !$! h5tget_member_dim_f
+! !$!
+! !$! PURPOSE
+! !$! This function is not supported in hdf5-1.4.*
+! !$!
+! !$! INPUTS
+! !$! OUTPUTS
+! !$! hdferr: - error code
+! !$! Success: 0
+! !$! Failure: -1
+! !$!
+! !$! AUTHOR
+! !$! Elena Pourmal
+! !$! August 12, 1999
+! !$!
+! !$! HISTORY
+! !$! Explicit Fortran interfaces were added for
+! !$! called C functions (it is needed for Windows
+! !$! port). March 7, 2001
+! !$!
+! !$! SOURCE
+! !$! SUBROUTINE h5tget_member_dims_f(type_id, field_idx,dims, field_dims, perm, hdferr)
+! !$!
+! !$! IMPLICIT NONE
+! !$! INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
+! !$! INTEGER, INTENT(IN) :: field_idx !Field index (0-based) of
+! !$! !field_dims, perm)
+! !$! INTEGER, INTENT(OUT) :: dims !number of dimensions of the field
+! !$!
+! !$! INTEGER(SIZE_T),DIMENSION(*), INTENT(OUT) :: field_dims !buffer to store the
+! !$! !dimensions of the field
+! !$! INTEGER, DIMENSION(*), INTENT(OUT) :: perm !buffer to store the
+! !$! !permutation vector of the field
+! !$! INTEGER, INTENT(OUT) :: hdferr ! Error code
+! !$!*****!
+! !$! INTEGER, EXTERNAL :: h5tget_member_dims_c
+! !$! hdferr = h5tget_member_dims_c(type_id, field_idx, dims, field_dims, perm)
+! !$!
+! !$! END SUBROUTINE h5tget_member_dims_f
+
+
+!****s* H5T/h5tget_array_dims_f
+!
+! NAME
+! h5tget_array_dims_f
+!
+! PURPOSE
+! Returns sizes of array dimensions.
+!
+! INPUTS
+! type_id - array datatype identifier
+! OUTPUTS
+! dims - buffer to store array datatype dimensions
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tget_array_dims_f(type_id, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Array datatype identifier
INTEGER(HSIZE_T),DIMENSION(*), INTENT(OUT) :: dims !buffer to store array datatype
! dimensions
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
-! INTEGER, EXTERNAL :: h5tget_array_dims_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5tget_array_dims_c(type_id, dims)
USE H5GLOBAL
@@ -2016,40 +1903,36 @@ CONTAINS
END SUBROUTINE h5tget_array_dims_f
-!----------------------------------------------------------------------
-! Name: h5tget_array_ndims_f
!
-! Purpose: Returns the rank of an array datatype.
+!****s* H5T/h5tget_array_ndims_f
!
-! Inputs:
-! type_id - array datatype identifier
-! Outputs:
-! ndims - number of array dimensions
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tget_array_ndims_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Returns the rank of an array datatype.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - array datatype identifier
+! OUTPUTS
+! ndims - number of array dimensions
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tget_array_ndims_f(type_id, ndims, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tget_array_ndims_f(type_id, ndims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Array datatype identifier
INTEGER, INTENT(OUT) :: ndims ! number of array dimensions
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5tget_array_ndims_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5tget_array_ndims_c(type_id, ndims)
USE H5GLOBAL
@@ -2065,41 +1948,37 @@ CONTAINS
END SUBROUTINE h5tget_array_ndims_f
-!----------------------------------------------------------------------
-! Name: h5tget_super_f
!
-! Purpose: Returns the base datatype from which a datatype is derived.
+!****s* H5T/h5tget_super_f
!
-! Inputs:
-! type_id - datatype identifier
-! Outputs:
-! base_type_id - identifier of the base type
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tget_super_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Returns the base datatype from which a datatype is derived.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - datatype identifier
+! OUTPUTS
+! base_type_id - identifier of the base type
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tget_super_f(type_id, base_type_id, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tget_super_f(type_id, base_type_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! datatype identifier
INTEGER(HID_T), INTENT(OUT) :: base_type_id ! identifier of the datatype
! from which datatype (type_id) was derived
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5tget_super_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5tget_super_c(type_id, base_type_id)
USE H5GLOBAL
@@ -2115,44 +1994,40 @@ CONTAINS
END SUBROUTINE h5tget_super_f
-!----------------------------------------------------------------------
-! Name: h5tget_member_type_f
!
-! Purpose: Returns the datatype of the specified member.
+!****s* H5T/h5tget_member_type_f
!
-! Inputs:
-! type_id - compound datatype identifier
-! field_idx - field index (0-based)
+! NAME
+! h5tget_member_type_f
!
-! Outputs:
-! datatype - idnetifier of the member's datatype
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! PURPOSE
+! Returns the datatype of the specified member.
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! INPUTS
+! type_id - compound datatype identifier
+! field_idx - field index (0-based)
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! OUTPUTS
+! datatype - idnetifier of the member's datatype
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tget_member_type_f(type_id, field_idx, datatype, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tget_member_type_f(type_id, field_idx, datatype, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: field_idx !Field index (0-based) of the field type to retrieve
INTEGER(HID_T), INTENT(OUT) :: datatype !identifier of a copy of
!the datatype of the field
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5tget_member_type_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5tget_member_type_c(type_id, field_idx , datatype)
USE H5GLOBAL
@@ -2168,37 +2043,35 @@ CONTAINS
hdferr = h5tget_member_type_c(type_id, field_idx , datatype)
END SUBROUTINE h5tget_member_type_f
-!----------------------------------------------------------------------
-! Name: h5tcreate_f
!
-! Purpose: Creates a new dataype
+!****s* H5T/h5tcreate_f
!
-! Inputs:
-! class - datatype class, possible values are:
-! H5T_COMPOUND_F
-! H5T_ENUM_F
-! H5T_OPAQUE_F
-! size - datattype size
-! Outputs:
-! type_id - datatype identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tcreate_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Creates a new dataype
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! class - datatype class, possible values are:
+! H5T_COMPOUND_F
+! H5T_ENUM_F
+! H5T_OPAQUE_F
+! size - datattype size
+! OUTPUTS
+! type_id - datatype identifier
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
-
- SUBROUTINE h5tcreate_f(class, size, type_id, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tcreate_f(class, size, type_id, hdferr)
IMPLICIT NONE
INTEGER, INTENT(IN) :: class ! Datatype class can be one of
! H5T_COMPOUND_F
@@ -2207,10 +2080,7 @@ CONTAINS
INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the datatype
INTEGER(HID_T), INTENT(OUT) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5tcreate_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5tcreate_c(class, size, type_id)
USE H5GLOBAL
@@ -2226,35 +2096,34 @@ CONTAINS
hdferr = h5tcreate_c(class, size, type_id)
END SUBROUTINE h5tcreate_f
-!----------------------------------------------------------------------
-! Name: h5tinsert_f
!
-! Purpose: Adds a new member to a compound datatype.
+!****s* H5T/h5tinsert_f
!
-! Inputs:
-! type_id - compound dattype identifier
-! name - name of the field to insert
-! offset - start of the member in an instance of
-! the compound datatype
-! field_id - datatype identifier of the field to insert
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tinsert_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Adds a new member to a compound datatype.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - compound dattype identifier
+! name - name of the field to insert
+! offset - start of the member in an instance of
+! the compound datatype
+! field_id - datatype identifier of the field to insert
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tinsert_f(type_id, name, offset, field_id, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tinsert_f(type_id, name, offset, field_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
CHARACTER(LEN=*), INTENT(IN) :: name !Name of the field to insert
@@ -2263,11 +2132,9 @@ CONTAINS
INTEGER(HID_T), INTENT(IN) :: field_id !datatype identifier of the new member
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
INTEGER :: namelen
-! INTEGER, EXTERNAL :: h5tinsert_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5tinsert_c(type_id, name, namelen, offset, field_id)
USE H5GLOBAL
@@ -2287,38 +2154,35 @@ CONTAINS
hdferr = h5tinsert_c(type_id, name, namelen, offset, field_id )
END SUBROUTINE h5tinsert_f
-!----------------------------------------------------------------------
-! Name: h5tpack_f
!
-! Purpose: Recursively removes padding from within a compound datatype.
+!****s* H5T/h5tpack_f
!
-! Inputs:
-! type_id - compound datatype identifier
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tpack_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Recursively removes padding from within a compound datatype.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - compound datatype identifier
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tpack_f(type_id, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tpack_f(type_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
-! INTEGER, EXTERNAL :: h5tpack_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5tpack_c(type_id)
USE H5GLOBAL
@@ -2332,95 +2196,91 @@ CONTAINS
hdferr = h5tpack_c(type_id)
END SUBROUTINE h5tpack_f
-!----------------------------------------------------------------------
-! Name: h5tinsert_array_f
-!
-! Purpose: This function is not available on hdf5-1.4.*
-!
-! Inputs:
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
-! SUBROUTINE h5tinsert_array_f(parent_id,name,offset, ndims, dims, member_id, hdferr, perm)
-! IMPLICIT NONE
-! INTEGER(HID_T), INTENT(IN) :: parent_id ! identifier of the parent compound datatype
-! CHARACTER(LEN=*), INTENT(IN) :: name !Name of the new member
-! INTEGER(SIZE_T), INTENT(IN) :: offset !Offset to start of new member
-! !within compound datatype
-! INTEGER, INTENT(IN) :: ndims !Dimensionality of new member.
-! !Valid values are 0 (zero) through 4 (four)
-! INTEGER(SIZE_T), DIMENSION(*), INTENT(IN) :: dims !Size of new member array
-! INTEGER(HID_T), INTENT(IN) :: member_id ! identifier of the datatype of the new member
-! INTEGER, INTENT(OUT) :: hdferr ! Error code
-!
-! INTEGER, DIMENSION(*), OPTIONAL, INTENT(IN) :: perm
-! !Pointer to buffer to store
-! !the permutation vector of the field
-! INTEGER :: namelen, sizeofperm
-! INTEGER, EXTERNAL :: h5tinsert_array_c, h5tinsert_array_c2
-! namelen = LEN(name)
-! if (present(perm)) then
-! hdferr = h5tinsert_array_c(parent_id, name, namelen, offset, ndims,dims, member_id, perm)
-! else
-! hdferr = h5tinsert_array_c2(parent_id, name, namelen, offset, ndims,dims, member_id)
-! end if
-!
-! END SUBROUTINE h5tinsert_array_f
-
-!----------------------------------------------------------------------
-! Name: h5tarray_create_f
-!
-! Purpose: Creates an array datatype object.
-!
-! Inputs:
-! base_id - datatype identifier for the array
-! base datatype
-! rank - rank of the array
-! dims - array dimension sizes
-! Outputs:
-! type_id - array datatype identifier
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! August 12, 1999
-!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tarray_create_f(base_id, rank, dims, type_id, hdferr)
+! !$!
+! !$!****s* H5T/h5tinsert_array_f
+! !$!
+! !$! NAME
+! !$! h5tinsert_array_f
+! !$!
+! !$! PURPOSE
+! !$! This function is not available on hdf5-1.4.*
+! !$!
+! !$! INPUTS
+! !$! OUTPUTS
+! !$! hdferr: - error code
+! !$! Success: 0
+! !$! Failure: -1
+! !$!
+! !$! AUTHOR
+! !$! Elena Pourmal
+! !$! August 12, 1999
+! !$!
+! !$! HISTORY
+! !$! Explicit Fortran interfaces were added for
+! !$! called C functions (it is needed for Windows
+! !$! port). March 7, 2001
+! !$! SOURCE
+! SUBROUTINE h5tinsert_array_f(parent_id,name,offset, ndims, dims, member_id, hdferr, perm)
+! IMPLICIT NONE
+! INTEGER(HID_T), INTENT(IN) :: parent_id ! identifier of the parent compound datatype
+! CHARACTER(LEN=*), INTENT(IN) :: name !Name of the new member
+! INTEGER(SIZE_T), INTENT(IN) :: offset !Offset to start of new member
+! !within compound datatype
+! INTEGER, INTENT(IN) :: ndims !Dimensionality of new member.
+! !Valid values are 0 (zero) through 4 (four)
+! INTEGER(SIZE_T), DIMENSION(*), INTENT(IN) :: dims !Size of new member array
+! INTEGER(HID_T), INTENT(IN) :: member_id ! identifier of the datatype of the new member
+! INTEGER, INTENT(OUT) :: hdferr ! Error code
+! !*****!
+! INTEGER, DIMENSION(*), OPTIONAL, INTENT(IN) :: perm
+! !Pointer to buffer to store
+! !the permutation vector of the field
+! INTEGER :: namelen, sizeofperm
+! INTEGER, EXTERNAL :: h5tinsert_array_c, h5tinsert_array_c2
+! namelen = LEN(name)
+! if (present(perm)) then
+! hdferr = h5tinsert_array_c(parent_id, name, namelen, offset, ndims,dims, member_id, perm)
+! else
+! hdferr = h5tinsert_array_c2(parent_id, name, namelen, offset, ndims,dims, member_id)
+! end if
+!
+! END SUBROUTINE h5tinsert_array_f
+
+!
+!****s* H5T/h5tarray_create_f
+!
+! NAME
+! h5tarray_create_f
+!
+! PURPOSE
+! Creates an array datatype object.
+!
+! INPUTS
+! base_id - datatype identifier for the array
+! base datatype
+! rank - rank of the array
+! dims - array dimension sizes
+! OUTPUTS
+! type_id - array datatype identifier
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tarray_create_f(base_id, rank, dims, type_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: base_id ! identifier of array base datatype
INTEGER, INTENT(IN) :: rank ! Rank of the array
INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: dims !Sizes of each array dimension
INTEGER(HID_T), INTENT(OUT) :: type_id ! identifier of the array datatype
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-
-! INTEGER, EXTERNAL :: h5tarray_create_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5tarray_create_c(base_id, rank, dims, type_id)
USE H5GLOBAL
@@ -2438,33 +2298,31 @@ CONTAINS
END SUBROUTINE h5tarray_create_f
-!----------------------------------------------------------------------
-! Name: h5tenum_create_f
!
-! Purpose: Creates a new enumeration datatype.
+!****s* H5T/h5tenum_create_f
!
-! Inputs:
-! parent_id - datatype identifier for base datatype
-! Outputs:
-! new_type_id - datatype identifier for the enumeration
-! datatype
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tenum_create_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Creates a new enumeration datatype.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! parent_id - datatype identifier for base datatype
+! OUTPUTS
+! new_type_id - datatype identifier for the enumeration datatype
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tenum_create_f(parent_id, new_type_id, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tenum_create_f(parent_id, new_type_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: parent_id ! Datatype identifier for
! the base datatype
@@ -2472,10 +2330,8 @@ CONTAINS
!datatype identifier for the
! new enumeration datatype
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
-! INTEGER, EXTERNAL :: h5tenum_create_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5tenum_create_c(parent_id, new_type_id)
USE H5GLOBAL
@@ -2490,41 +2346,38 @@ CONTAINS
hdferr = h5tenum_create_c(parent_id, new_type_id)
END SUBROUTINE h5tenum_create_f
-!----------------------------------------------------------------------
-! Name: h5tenaum_insert_f
!
-! Purpose: Inserts a new enumeration datatype member.
+!****s* H5T/h5tenaum_insert_f
!
-! Inputs:
-! type_id - datatype identifier
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tenaum_insert_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Inserts a new enumeration datatype member.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - datatype identifier
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tenum_insert_f(type_id, name, value, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tenum_insert_f(type_id, name, value, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
CHARACTER(LEN=*), INTENT(IN) :: name !Name of the new member
INTEGER, INTENT(IN) :: value !value of the new member
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
INTEGER :: namelen
-! INTEGER, EXTERNAL :: h5tenum_insert_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5tenum_insert_c(type_id, name, namelen, value)
USE H5GLOBAL
@@ -2543,45 +2396,48 @@ CONTAINS
hdferr = h5tenum_insert_c(type_id, name, namelen, value)
END SUBROUTINE h5tenum_insert_f
-!----------------------------------------------------------------------
-! Name: h5tenum_nameof_f
!
-! Purpose: Returns the symbol name corresponding to a specified
-! member of an enumeration datatype.
+!****s* H5T/h5tenum_nameof_f
!
-! Inputs:
-! type_id - datatype identifier
-! value - value of the enumeration datatype
-! namelen - name buffer size
-! Outputs:
-! name - buffer to hold symbol name
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tenum_nameof_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Returns the symbol name corresponding to a specified
+! member of an enumeration datatype.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - datatype identifier
+! value - value of the enumeration datatype
+! namelen - name buffer size
+! OUTPUTS
+! name - buffer to hold symbol name
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tenum_nameof_f(type_id, value, namelen, name, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! NOTE
+! According to the standard: Because an INTENT(OUT) variable is considered undefined
+! on entry to the procedure, any default initialization specified for its type will
+! be applied. So we need to blank out the "name" to be portable and eliminate any
+! characters the "name' may contain upon entry, depending on compiler implementation.
+! SOURCE
+ SUBROUTINE h5tenum_nameof_f(type_id, value, namelen, name, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
CHARACTER(LEN=*), INTENT(OUT) :: name !Name of the enumeration datatype.
INTEGER(SIZE_T), INTENT(IN) :: namelen !length of the name
INTEGER, INTENT(IN) :: value !value of the enumeration datatype.
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
-! INTEGER, EXTERNAL :: h5tenum_nameof_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5tenum_nameof_c(type_id, value, name, namelen)
USE H5GLOBAL
@@ -2596,47 +2452,47 @@ CONTAINS
END FUNCTION h5tenum_nameof_c
END INTERFACE
+ name(1:LEN(name)) = ' '
+
hdferr = h5tenum_nameof_c(type_id, value, name, namelen)
END SUBROUTINE h5tenum_nameof_f
-!----------------------------------------------------------------------
-! Name: h5tenum_valuof_f
!
-! Purpose: Returns the value corresponding to a specified
-! member of an enumeration datatype.
+!****s* H5T/h5tenum_valuof_f
!
-! Inputs:
-! type_id - datatype identifier
-! name - symbol name
-! Outputs:
-! value - value of the enumeration datatype
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tenum_valuof_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Returns the value corresponding to a specified
+! member of an enumeration datatype.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - datatype identifier
+! name - symbol name
+! OUTPUTS
+! value - value of the enumeration datatype
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tenum_valueof_f(type_id, name, value, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! SOURCE
+ SUBROUTINE h5tenum_valueof_f(type_id, name, value, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
CHARACTER(LEN=*), INTENT(IN) :: name !Name of the enumeration datatype.
INTEGER, INTENT(OUT) :: value !value of the enumeration datatype.
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
INTEGER :: namelen
-! INTEGER, EXTERNAL :: h5tenum_valueof_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5tenum_valueof_c(type_id, name, namelen, value)
USE H5GLOBAL
@@ -2655,42 +2511,39 @@ CONTAINS
hdferr = h5tenum_valueof_c(type_id, name, namelen, value)
END SUBROUTINE h5tenum_valueof_f
-!----------------------------------------------------------------------
-! Name: h5tget_member_value_f
!
-! Purpose: Returns the value of an enumeration datatype member.
+!****s* H5T/h5tget_member_value_f
!
-! Inputs:
-! type_id - datatype identifier
-! member_no - number of the enumeration datatype member
-! Outputs:
-! value - value of the enumeration datatype
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tget_member_value_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Returns the value of an enumeration datatype member.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - datatype identifier
+! member_no - number of the enumeration datatype member
+! OUTPUTS
+! value - value of the enumeration datatype
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tget_member_value_f(type_id, member_no, value, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tget_member_value_f(type_id, member_no, value, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: member_no !Number of the enumeration datatype member
INTEGER, INTENT(OUT) :: value !value of the enumeration datatype.
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
-! INTEGER, EXTERNAL :: h5tget_member_value_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5tget_member_value_c(type_id, member_no, value)
USE H5GLOBAL
@@ -2706,43 +2559,40 @@ CONTAINS
hdferr = h5tget_member_value_c(type_id, member_no, value)
END SUBROUTINE h5tget_member_value_f
-!----------------------------------------------------------------------
-! Name: h5tset_tag_f
!
-! Purpose: Tags an opaque datatype.
+!****s* H5T/h5tset_tag_f
!
-! Inputs:
-! type_id - identifier for opaque datatype
-! tag - unique ASCII string with which the opaque
-! datatype is to be tagged.
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tset_tag_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Tags an opaque datatype.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - identifier for opaque datatype
+! tag - unique ASCII string with which the opaque
+! datatype is to be tagged.
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tset_tag_f(type_id, tag, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tset_tag_f(type_id, tag, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
CHARACTER(LEN=*), INTENT(IN) :: tag !Unique ASCII string with which
!the opaque datatype is to be tagged
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
INTEGER :: taglen
-! INTEGER, EXTERNAL :: h5tset_tag_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5tset_tag_c(type_id, tag, taglen)
USE H5GLOBAL
@@ -2760,45 +2610,42 @@ CONTAINS
hdferr = h5tset_tag_c(type_id, tag, taglen)
END SUBROUTINE h5tset_tag_f
-!----------------------------------------------------------------------
-! Name: h5tget_tag_f
!
-! Purpose: Gets the tag associated with an opaque datatype.
+!****s* H5T/h5tget_tag_f
!
-! Inputs:
-! type_id - identifier for opaque datatype
-! Outputs:
-! tag - unique ASCII string associated with opaque
-! datatype
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tget_tag_f
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! PURPOSE
+! Gets the tag associated with an opaque datatype.
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
+! INPUTS
+! type_id - identifier for opaque datatype
+! OUTPUTS
+! tag - unique ASCII string associated with opaque
+! datatype
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tget_tag_f(type_id, tag,taglen, hdferr)
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tget_tag_f(type_id, tag,taglen, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
- CHARACTER(LEN=*), INTENT(OUT) :: tag !Unique ASCII string with which
- !the opaque datatype is to be tagged
- INTEGER, INTENT(OUT) :: taglen !length of tag
+ CHARACTER(LEN=*), INTENT(OUT) :: tag ! Unique ASCII string with which
+ ! the opaque datatype is to be tagged
+ INTEGER, INTENT(OUT) :: taglen ! Length of tag
+ INTEGER(SIZE_T) :: tag_size ! Declared character length of tab
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5tget_tag_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
- INTEGER FUNCTION h5tget_tag_c(type_id, tag, taglen)
+ INTEGER FUNCTION h5tget_tag_c(type_id, tag, tag_size, taglen)
USE H5GLOBAL
!DEC$IF DEFINED(HDF5F90_WINDOWS)
!DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_TAG_C'::h5tget_tag_c
@@ -2806,42 +2653,45 @@ CONTAINS
!DEC$ATTRIBUTES reference :: tag
INTEGER(HID_T), INTENT(IN) :: type_id
CHARACTER(LEN=*), INTENT(OUT) :: tag
+ INTEGER(SIZE_T), INTENT(IN) :: tag_size
INTEGER, INTENT(OUT) :: taglen
END FUNCTION h5tget_tag_c
END INTERFACE
- hdferr = h5tget_tag_c(type_id, tag, taglen)
+ tag_size = LEN(tag)
+
+ hdferr = h5tget_tag_c(type_id, tag, tag_size, taglen )
END SUBROUTINE h5tget_tag_f
-!----------------------------------------------------------------------
-! Name: h5tvlen_create_f
!
-! Purpose: Creates a new variable-length datatype.
+!****s* H5T/h5tvlen_create_f
!
-! Inputs:
-! type_id - identifier iof base datatype
-! Outputs:
-! vltype_id - identifier for VL datatype
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tvlen_create_f
!
-! Programmer: Elena Pourmal
-! Wednesday, October 23, 2002
+! PURPOSE
+! Creates a new variable-length datatype.
!
-! Modifications:
+! INPUTS
+! type_id - identifier iof base datatype
+! OUTPUTS
+! vltype_id - identifier for VL datatype
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment: Only basic Fortran base datatypes are supported
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tvlen_create_f(type_id, vltype_id, hdferr)
+! AUTHOR
+! Elena Pourmal
+! Wednesday, October 23, 2002
+!
+! NOTES
+! Only basic Fortran base datatypes are supported
+!
+! SOURCE
+ SUBROUTINE h5tvlen_create_f(type_id, vltype_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(HID_T), INTENT(OUT) :: vltype_id ! VL datatype identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
+!*****
INTERFACE
INTEGER FUNCTION h5tvlen_create_c(type_id, vltype_id)
USE H5GLOBAL
@@ -2856,42 +2706,37 @@ CONTAINS
hdferr = h5tvlen_create_c(type_id, vltype_id)
END SUBROUTINE h5tvlen_create_f
-!----------------------------------------------------------------------
-! Name: h5tis_variable_str_f
!
-! Purpose: Determines whether a dattype is a variable string.
+!****s* H5T/h5tis_variable_str_f
!
-! Inputs:
-! type_id - - datartpe identifier
-! Outputs:
-! status - flag to indicate if datatype
-! is a variable string
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tis_variable_str_f
!
-! Programmer: Elena Pourmal
-! March 12, 2003
+! PURPOSE
+! Determines whether a dattype is a variable string.
!
-! Modifications:
+! INPUTS
+! type_id - datartpe identifier
+! OUTPUTS
+! status - flag to indicate if datatype
+! is a variable string
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tis_variable_str_f(type_id, status, hdferr)
+! AUTHOR
+! Elena Pourmal
+! March 12, 2003
+!
+! SOURCE
+ SUBROUTINE h5tis_variable_str_f(type_id, status, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
LOGICAL, INTENT(OUT) :: status ! Flag, idicates if datatype
! is a variable string or not ( TRUE or
! FALSE)
INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
INTEGER :: flag ! "TRUE/FALSE/ERROR from C"
-! INTEGER, EXTERNAL :: h5tis_variable_str_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5tis_variable_str_c(type_id, flag)
USE H5GLOBAL
@@ -2909,52 +2754,47 @@ CONTAINS
END SUBROUTINE h5tis_variable_str_f
-!----------------------------------------------------------------------
-! Name: h5tget_member_class_f
-!
-! Purpose: Returns datatype class of compound datatype member.
-!
-! Inputs:
-! type_id - - datartpe identifier
-! member_no - index of compound datatype member
-! Outputs:
-! class - class type for compound dadtype member
-! Can be one of the follwoing classes:
-! H5T_NO_CLASS_F (error)
-! H5T_INTEGER_F
-! H5T_FLOAT_F
-! H5T_TIME_F
-! H5T_STRING_F
-! H5T_BITFIELD_F
-! H5T_OPAQUE_F
-! H5T_COMPOUND_F
-! H5T_REFERENCE_F
-! H5T_ENUM_F
-! H5T_VLEN_F
-! H5T_ARRAY_F
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! April 6, 2005
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5tget_member_class_f(type_id, member_no, class, hdferr)
+!
+!****s* H5T/h5tget_member_class_f
+!
+! NAME
+! h5tget_member_class_f
+!
+! PURPOSE
+! Returns datatype class of compound datatype member.
+!
+! INPUTS
+! type_id - datartpe identifier
+! member_no - index of compound datatype member
+! OUTPUTS
+! class - class type for compound dadtype member
+! Valid classes:
+! H5T_NO_CLASS_F (error)
+! H5T_INTEGER_F
+! H5T_FLOAT_F
+! H5T_TIME_F
+! H5T_STRING_F
+! H5T_BITFIELD_F
+! H5T_OPAQUE_F
+! H5T_COMPOUND_F
+! H5T_REFERENCE_F
+! H5T_ENUM_F
+! H5T_VLEN_F
+! H5T_ARRAY_F
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! April 6, 2005
+!
+! SOURCE
+ SUBROUTINE h5tget_member_class_f(type_id, member_no, class, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: member_no ! Member number
INTEGER, INTENT(OUT) :: class ! Member class
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5tget_member_class_c(type_id, member_no, class)
USE H5GLOBAL
@@ -2971,36 +2811,35 @@ CONTAINS
END SUBROUTINE h5tget_member_class_f
-!----------------------------------------------------------------------
-! Name: h5tcommit_anon_f
!
-! Purpose: Commits a transient datatype to a file,
-! creating a new named datatype,
-! but does not link it into the file structure.
+!****s* H5T/h5tcommit_anon_f
!
-! Inputs:
-! loc_id - A file or group identifier specifying the file
-! in which the new named datatype is to be created.
-! dtype_id - A datatype identifier.
+! NAME
+! h5tcommit_anon_f
!
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! tcpl_id - A datatype creation property list identifier.
-! (H5P_DEFAULT_F for the default property list.)
-! tapl_id - A datatype access property list identifier.
-! should always be passed as the value H5P_DEFAULT_F.
+! PURPOSE
+! Commits a transient datatype to a file,
+! creating a new named datatype,
+! but does not link it into the file structure.
!
-! Programmer: M.S. Breitenfeld
-! February 25, 2008
+! INPUTS
+! loc_id - A file or group identifier specifying the file
+! in which the new named datatype is to be created.
+! dtype_id - A datatype identifier.
!
-! Modifications:
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! tcpl_id - A datatype creation property list identifier.
+! (H5P_DEFAULT_F for the default property list.)
+! tapl_id - A datatype access property list identifier.
+! should always be passed as the value H5P_DEFAULT_F.
!
-! Comment:
-!----------------------------------------------------------------------
-
+! AUTHOR
+! M. Scot Breitenfeld
+! February 25, 2008
+!
+! SOURCE
SUBROUTINE h5tcommit_anon_f(loc_id, dtype_id, hdferr, tcpl_id, tapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! A file or group identifier specifying
@@ -3013,11 +2852,10 @@ CONTAINS
! (H5P_DEFAULT_F for the default property list.)
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: tapl_id ! A datatype access property list identifier.
! should always be passed as the value H5P_DEFAULT_F.
+!*****
INTEGER(HID_T) :: tcpl_id_default
INTEGER(HID_T) :: tapl_id_default
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5tcommit_anon_c(loc_id, dtype_id, &
tcpl_id_default, tapl_id_default)
@@ -3043,41 +2881,36 @@ CONTAINS
END SUBROUTINE h5tcommit_anon_f
-!----------------------------------------------------------------------
-! Name: h5tcommitted_f
!
-! Purpose: Determines whether a datatype is a named type or a transient type.
+!****s* H5T/h5tcommitted_f
!
-! Inputs:
-! dtype_id - A datatype identifier.
+! NAME
+! h5tcommitted_f
!
-! Outputs:
-! committed - .TRUE., if the datatype has been committed
-! .FALSE., if the datatype has not been committed.
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters: None
+! PURPOSE
+! Determines whether a datatype is a named type or a transient type.
!
-! Programmer: M.S. Breitenfeld
-! February 25, 2008
+! INPUTS
+! dtype_id - A datatype identifier.
!
-! Modifications:
+! OUTPUTS
+! committed - .TRUE., if the datatype has been committed
+! .FALSE., if the datatype has not been committed.
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! M. Scot Breitenfeld
+! February 25, 2008
!
-! Comment:
-!----------------------------------------------------------------------
-
+! SOURCE
SUBROUTINE h5tcommitted_f(dtype_id, committed, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dtype_id ! A datatype identifier
LOGICAL, INTENT(OUT) :: committed ! .TRUE., if the datatype has been committed
!.FALSE., if the datatype has not been committed.
INTEGER, INTENT(OUT) :: hdferr ! Error code:
-! Success: 0
-! Failure: -1
-
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+! Success: 0
+! Failure: -1
+!*****
INTERFACE
INTEGER FUNCTION h5tcommitted_c(dtype_id)
USE H5GLOBAL
@@ -3103,34 +2936,31 @@ CONTAINS
END SUBROUTINE h5tcommitted_f
-!----------------------------------------------------------------------
-! Name: H5Tdecode_f
!
-! Purpose: Decode a binary object description of data type and return a new object handle.
-! Inputs:
-! buf - Buffer for the data space object to be decoded.
-! obj_id - Object ID
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
+!****s* H5T/H5Tdecode_f
!
-! Optional parameters: - NONE
+! NAME
+! H5Tdecode_f
!
-! Programmer: M.S. Breitenfeld
-! April 9, 2008
+! PURPOSE
+! Decode a binary object description of data type and return a new object handle.
+! INPUTS
+! buf - Buffer for the data space object to be decoded.
+! obj_id - Object ID
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
!
-! Modifications:
+! AUTHOR
+! M. Scot Breitenfeld
+! April 9, 2008
!
-! Comment:
-!----------------------------------------------------------------------
-
+! SOURCE
SUBROUTINE h5tdecode_f(buf, obj_id, hdferr)
IMPLICIT NONE
CHARACTER(LEN=*), INTENT(IN) :: buf ! Buffer for the data space object to be decoded.
INTEGER(HID_T), INTENT(OUT) :: obj_id ! Object ID
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
+!*****
INTERFACE
INTEGER FUNCTION h5tdecode_c(buf, obj_id)
USE H5GLOBAL
@@ -3147,38 +2977,34 @@ CONTAINS
END SUBROUTINE h5tdecode_f
-!----------------------------------------------------------------------
-! Name: H5Tencode_f
-!
-! Purpose: Encode a data type object description into a binary buffer.
!
-! Inputs:
-! obj_id - Identifier of the object to be encoded.
-! buf - Buffer for the object to be encoded into.
-! nalloc - The size of the allocated buffer.
-! Outputs:
-! nalloc - The size of the buffer needed.
-! hdferr: - error code
-! Success: 0
-! Failure: -1
+!****s* H5T/H5Tencode_f
!
-! Optional parameters: - NONE
+! NAME
+! H5Tencode_f
!
-! Programmer: M.S. Breitenfeld
-! April 9, 2008
+! PURPOSE
+! Encode a data type object description into a binary buffer.
!
-! Modifications:
+! INPUTS
+! obj_id - Identifier of the object to be encoded.
+! buf - Buffer for the object to be encoded into.
+! nalloc - The size of the allocated buffer.
+! OUTPUTS
+! nalloc - The size of the buffer needed.
+! hdferr - Returns 0 if successful and -1 if fails.
!
-! Comment:
-!----------------------------------------------------------------------
-
+! AUTHOR
+! M. Scot Breitenfeld
+! April 9, 2008
+! SOURCE
SUBROUTINE h5tencode_f(obj_id, buf, nalloc, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id ! Identifier of the object to be encoded.
CHARACTER(LEN=*), INTENT(OUT) :: buf ! Buffer for the object to be encoded into.
INTEGER(SIZE_T), INTENT(INOUT) :: nalloc ! The size of the allocated buffer.
INTEGER, INTENT(OUT) :: hdferr ! Error code
-
+!*****
INTERFACE
INTEGER FUNCTION h5tencode_c(buf, obj_id, nalloc)
@@ -3197,37 +3023,33 @@ CONTAINS
END SUBROUTINE h5tencode_f
-!----------------------------------------------------------------------
-! Name: h5tget_create_plist_f
!
-! Purpose: Returns a copy of a datatype creation property list.
+!****s* H5T/h5tget_create_plist_f
!
-! Inputs:
-! dtype_id - Datatype identifier
-! Outputs:
-! dtpl_id - Datatype property list identifier
-! hdferr: - Error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tget_create_plist_f
!
-! Programmer: M.S. Breitenfeld
-! April 9, 2008
+! PURPOSE
+! Returns a copy of a datatype creation property list.
!
-! Modifications: N/A
+! INPUTS
+! dtype_id - Datatype identifier
+! OUTPUTS
+! dtpl_id - Datatype property list identifier
+! hdferr - Returns 0 if successful and -1 if fails
!
-!----------------------------------------------------------------------
-
+! AUTHOR
+! M. Scot Breitenfeld
+! April 9, 2008
+!
+! SOURCE
SUBROUTINE h5tget_create_plist_f(dtype_id, dtpl_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dtype_id ! Datatype identifier
INTEGER(HID_T), INTENT(OUT) :: dtpl_id ! Datatype property list identifier.
INTEGER, INTENT(OUT) :: hdferr ! Error code:
! 0 on success and -1 on failure
-
-! MS FORTRAN needs explicit interface for C functions called here.
-!
+!*****
INTERFACE
INTEGER FUNCTION h5tget_create_plist_c(dtype_id, dtpl_id)
USE H5GLOBAL
@@ -3242,29 +3064,26 @@ CONTAINS
hdferr = h5tget_create_plist_c(dtype_id, dtpl_id)
END SUBROUTINE h5tget_create_plist_f
-!----------------------------------------------------------------------
-! Name: h5tcompiler_conv_f
!
-! Purpose: Check whether the library’s default conversion is hard conversion.R
+!****s* H5T/h5tcompiler_conv_f
!
-! Inputs:
-! src_id - Identifier for the source datatype.
-! dst_id - Identifier for the destination datatype.
-! Outputs:
-! flag - TRUE for compiler conversion, FALSE for library conversion
-! hdferr: - Error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! NAME
+! h5tcompiler_conv_f
!
-! Programmer: M.S. Breitenfeld
-! April 9, 2008
+! PURPOSE
+! Check whether the library’s default conversion is hard conversion.R
!
-! Modifications: N/A
+! INPUTS
+! src_id - Identifier for the source datatype.
+! dst_id - Identifier for the destination datatype.
+! OUTPUTS
+! flag - TRUE for compiler conversion, FALSE for library conversion
+! hdferr - Returns 0 if successful and -1 if fails
!
-!----------------------------------------------------------------------
-
+! AUTHOR
+! M. Scot Breitenfeld
+! April 9, 2008
+! SOURCE
SUBROUTINE h5tcompiler_conv_f( src_id, dst_id, flag, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: src_id ! Identifier for the source datatype.
@@ -3272,6 +3091,7 @@ CONTAINS
LOGICAL, INTENT(OUT) :: flag ! .TRUE. for compiler conversion, .FALSE. for library conversion
INTEGER, INTENT(OUT) :: hdferr ! Error code:
! 0 on success and -1 on failure
+!*****
INTEGER :: c_flag
INTERFACE
@@ -3293,35 +3113,31 @@ CONTAINS
END SUBROUTINE h5tcompiler_conv_f
-!----------------------------------------------------------------------
-! Name: h5tget_native_type_f
!
-! Purpose: Returns the native datatype of a specified datatype.
+!****s* H5T/h5tget_native_type_f
!
-! Inputs:
-! dtype_id - Datatype identifier for the dataset datatype.
-! *
-! direction - Direction of search:
-! H5T_DIR_DEFAULT = 0, /*default direction is inscendent */
-! H5T_DIR_ASCEND = 1, /*in inscendent order */
-! H5T_DIR_DESCEND = 2 /*in descendent order */
-! * NOTE: In C it is defined as a structure: H5T_direction_t
+! NAME
+! h5tget_native_type_f
!
-! Outputs:
-! native_dtype_id - The native datatype identifier for the specified dataset datatype
-! hdferr: - Error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! PURPOSE
+! Returns the native datatype of a specified datatype.
!
-! Programmer: M.S. Breitenfeld
-! June 18, 2008
+! INPUTS
+! dtype_id - Datatype identifier for the dataset datatype.
+!
+! direction - Direction of search:
+! H5T_DIR_DEFAULT = 0, /*default direction is inscendent */
+! H5T_DIR_ASCEND = 1, /*in inscendent order */
+! H5T_DIR_DESCEND = 2 /*in descendent order */
+! * NOTE: In C it is defined as a structure: H5T_direction_t
!
-! Modifications: N/A
-!
-!----------------------------------------------------------------------
-
+! OUTPUTS
+! native_dtype_id - The native datatype identifier for the specified dataset datatype
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! M. Scot Breitenfeld
+! June 18, 2008
+! SOURCE
SUBROUTINE h5tget_native_type_f(dtype_id, direction, native_dtype_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dtype_id ! Datatype identifier
@@ -3331,6 +3147,7 @@ CONTAINS
INTEGER(HID_T), INTENT(OUT) :: native_dtype_id ! The native datatype identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code:
! 0 on success and -1 on failure
+!*****
INTERFACE
INTEGER FUNCTION h5tget_native_type_c(dtype_id, direction, native_dtype_id)
USE H5GLOBAL
diff --git a/fortran/src/H5Tff_F03.f90 b/fortran/src/H5Tff_F03.f90
new file mode 100644
index 0000000..925a5a8
--- /dev/null
+++ b/fortran/src/H5Tff_F03.f90
@@ -0,0 +1,114 @@
+!****h* ROBODoc/H5T (F03)
+!
+! NAME
+! H5T_PROVISIONAL
+!
+! PURPOSE
+! This file contains Fortran 90 and Fortran 2003 interfaces for H5T functions.
+! It contains the same functions as H5Tff_DEPRECIATE.f90 but includes the
+! Fortran 2003 functions and the interface listings. This file will be compiled
+! instead of H5Tff_DEPRECIATE.f90 if Fortran 2003 functions are enabled.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! NOTES
+! *** IMPORTANT ***
+! If you add a new H5T function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
+!
+!*****
+
+MODULE H5T_PROVISIONAL
+
+ USE H5GLOBAL
+ USE ISO_C_BINDING
+
+ TYPE hvl_t
+ INTEGER(size_t) :: len ! Length of VL data (in base type units)
+ TYPE(C_PTR) :: p ! Pointer to VL data
+ END TYPE hvl_t
+
+CONTAINS
+
+!****s* H5T (F03)/H5Tconvert_f
+!
+! NAME
+! H5Tconvert_f
+!
+! PURPOSE
+! Converts data from between specified datatypes.
+!
+! INPUTS
+! src_id - Identifier for the source datatype.
+! dst_id - Identifier for the destination datatype.
+! nelmts - Size of array buf.
+! buf - Array containing pre-conversion values.
+! background - Optional background buffer.
+! plist_id - Dataset transfer property list identifier.
+!
+! OUTPUTS
+! buf - Array containing post-conversion values.
+! hdferr - error code:
+! 0 on success and -1 on failure
+! AUTHOR
+! M. Scot Breitenfeld
+! Decemember 8, 2008
+!
+! SOURCE
+ SUBROUTINE h5tconvert_f(src_id, dst_id, nelmts, buf, hdferr, background, plist_id)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T) , INTENT(IN) :: src_id
+ INTEGER(HID_T) , INTENT(IN) :: dst_id
+ INTEGER(SIZE_T), INTENT(IN) :: nelmts
+ TYPE(C_PTR) , INTENT(INOUT) :: buf
+ INTEGER , INTENT(OUT) :: hdferr
+ TYPE(C_PTR) , INTENT(INOUT), OPTIONAL :: background
+ INTEGER(HID_T) , INTENT(IN) , OPTIONAL :: plist_id
+!*****
+ INTEGER(HID_T) :: plist_id_default
+ TYPE(C_PTR) :: background_default
+
+ INTERFACE
+ INTEGER FUNCTION h5tconvert_c(src_id, dst_id, nelmts, buf, background, plist_id)
+ USE ISO_C_BINDING
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TCONVERT_C'::H5Tconvert_c
+ !DEC$ENDIF
+ INTEGER(HID_T) , INTENT(IN) :: src_id
+ INTEGER(HID_T) , INTENT(IN) :: dst_id
+ INTEGER(SIZE_T), INTENT(IN) :: nelmts
+ TYPE(C_PTR) , VALUE :: buf
+ TYPE(C_PTR) , VALUE :: background
+ INTEGER(HID_T) , INTENT(IN) :: plist_id
+ END FUNCTION h5tconvert_c
+ END INTERFACE
+
+ plist_id_default = H5P_DEFAULT_F
+ IF(PRESENT(plist_id)) plist_id_default = plist_id
+
+ background_default = C_NULL_PTR
+ IF(PRESENT(background)) background_default = background
+
+ hdferr = H5Tconvert_c(src_id, dst_id, nelmts, buf, background_default, plist_id_default)
+
+ END SUBROUTINE h5tconvert_f
+
+END MODULE H5T_PROVISIONAL
+
diff --git a/fortran/src/H5Tff_F90.f90 b/fortran/src/H5Tff_F90.f90
new file mode 100644
index 0000000..021773d
--- /dev/null
+++ b/fortran/src/H5Tff_F90.f90
@@ -0,0 +1,39 @@
+!****h* ROBODoc/H5T (F90)
+!
+! NAME
+! MODULE H5T_PROVISIONAL
+!
+! PURPOSE
+! This file contains Fortran 90 interfaces for H5T functions. It contains
+! the same functions as H5Tff_F03.f90 but excludes the Fortran 2003 functions
+! and the interface listings. This file will be compiled instead of H5Tff_F03.f90
+! if Fortran 2003 functions are not enabled.
+!
+! NOTE
+! Currently contains no functions.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! *** IMPORTANT ***
+! If you add a new H5D function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
+!*****
+
+MODULE H5T_PROVISIONAL
+
+END MODULE H5T_PROVISIONAL
diff --git a/fortran/src/H5Zf.c b/fortran/src/H5Zf.c
index 8ad53c2..0427c23 100644
--- a/fortran/src/H5Zf.c
+++ b/fortran/src/H5Zf.c
@@ -1,4 +1,9 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+/****h* H5Zf/H5Zf
+ * PURPOSE
+ * This file contains C stubs for H5Z Fortran APIs
+ *
+ * COPYRIGHT
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
@@ -11,23 +16,32 @@
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* This files contains C stubs for H5Z Fortran APIs */
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ ******
+*/
#include "H5f90.h"
-/*----------------------------------------------------------------------------
- * Name: h5zunregister_c
- * Purpose: Call H5Zunregister to unregister filter
- * Inputs: filter identifier
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Zf/h5zunregister_c
+ * NAME
+ * h5zunregister_c
+ * PURPOSE
+ * Call H5Zunregister to unregister filter
+ * INPUTS
+ * filter identifier
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, March 12, 2003
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5zunregister_c (int_f *filter)
+/******/
{
int ret_value = -1;
herr_t status;
@@ -44,19 +58,28 @@ nh5zunregister_c (int_f *filter)
ret_value = 0;
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5zfiletr_avail_c
- * Purpose: Call H5Zfilter_avail to find if filter is available
- * Inputs: filter - filter identifier
- * Outputs: flag - status flag
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5Zf/h5zfiletr_avail_c
+ * NAME
+ * h5zfiletr_avail_c
+ * PURPOSE
+ * Call H5Zfilter_avail to find if filter is available
+ * INPUTS
+ * filter - filter identifier
+ * OUTPUTS
+ * flag - status flag
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Wednesday, March 12, 2003
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5zfilter_avail_c ( int_f *filter , int_f *flag )
+/******/
{
int ret_value = 0;
H5Z_filter_t c_filter;
@@ -69,20 +92,29 @@ nh5zfilter_avail_c ( int_f *filter , int_f *flag )
return ret_value;
}
-/*----------------------------------------------------------------------------
- * Name: h5zget_filter_info_c
- * Purpose: Call H5Zget_filter_info to find if filter has its encoder
+/****if* H5Zf/h5zget_filter_info_c
+ * NAME
+ * h5zget_filter_info_c
+ * PURPOSE
+ * Call H5Zget_filter_info to find if filter has its encoder
* and/or its decoder available
- * Inputs: filter - filter identifier
- * Outputs: flag - status flag
- * Returns: 0 on success, -1 on failure
- * Programmer: Nat Furrer and James Laird
+ * INPUTS
+ * filter - filter identifier
+ * OUTPUTS
+ * flag - status flag
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Nat Furrer and James Laird
* Wednesday, June 16, 2004
- * Modifications:
- *---------------------------------------------------------------------------*/
+ * HISTORY
+ *
+ * SOURCE
+*/
int_f
nh5zget_filter_info_c ( int_f *filter , int_f *flag )
+/******/
{
int ret_value = 0;
H5Z_filter_t c_filter;
diff --git a/fortran/src/H5Zff.f90 b/fortran/src/H5Zff.f90
index 750a7a5..ec68286 100644
--- a/fortran/src/H5Zff.f90
+++ b/fortran/src/H5Zff.f90
@@ -1,179 +1,196 @@
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!
-!
-! This file contains FORTRAN90 interfaces for H5I functions
-!
- MODULE H5Z
-
- USE H5GLOBAL
-
- CONTAINS
-
-!----------------------------------------------------------------------
-! Name: h5zunregister_f
-!
-! Purpose: Unregisters specified filetr
-!
-! Inputs: filter - filter; may have one of the following values:
-! H5Z_FILTER_DEFLATE_F
-! H5Z_FILTER_SHUFFLE_F
-! H5Z_FILTER_FLETCHER32_F
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! March 12, 2003
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
- SUBROUTINE h5zunregister_f(filter, hdferr)
- IMPLICIT NONE
- INTEGER, INTENT(IN) :: filter
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5zunregister_c
-! Interface is needed for MS FORTRAN
-!
- INTERFACE
- INTEGER FUNCTION h5zunregister_c (filter)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ZUNREGISTER_C':: h5zunregister_c
- !DEC$ENDIF
- INTEGER, INTENT(IN) :: filter
- END FUNCTION h5zunregister_c
- END INTERFACE
- hdferr = h5zunregister_c (filter)
- END SUBROUTINE h5zunregister_f
-!----------------------------------------------------------------------
-! Name: h5zfilter_avail_f
-!
-! Purpose: Queries if filter is available
-!
-! Inputs:
-! filter - filter
-! Outputs:
-! status - status; .TRUE. if filter is available,
-! .FALSE. otherwise
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! March 12, 2003
-!
-! Modifications:
-!
-!----------------------------------------------------------------------
- SUBROUTINE h5zfilter_avail_f(filter, status, hdferr)
- IMPLICIT NONE
- INTEGER, INTENT(IN) :: filter ! Filter; may be one of the following:
- ! H5Z_FILTER_DEFLATE_F
- ! H5Z_FILTER_SHUFFLE_F
- ! H5Z_FILTER_FLETCHER32_F
- LOGICAL, INTENT(OUT) :: status ! Flag, idicates if filter
- ! is availble not ( TRUE or
- ! FALSE)
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: flag ! "TRUE/FALSE/ERROR from C"
-
-! INTEGER, EXTERNAL :: h5zfilter_avail_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5zfilter_avail_c(filter, flag)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ZFILTER_AVAIL_C'::h5zfilter_avail_c
- !DEC$ENDIF
- INTEGER, INTENT(IN) :: filter
- INTEGER :: flag
- END FUNCTION h5zfilter_avail_c
- END INTERFACE
-
- hdferr = h5zfilter_avail_c(filter, flag)
- status = .TRUE.
- if (flag .EQ. 0) status = .FALSE.
-
- END SUBROUTINE h5zfilter_avail_f
-
-!----------------------------------------------------------------------
-! Name: h5zget_filter_info_f
-!
-! Purpose: Queries if filter has its encoder and/or decoder
-! available
-!
-! Inputs:
-! filter - filter
-! Outputs:
-! config_flags - Bit vector possibly containing the
-! following values:
-! H5Z_FILTER_ENCODE_ENABLED_F
-! H5Z_FILTER_DECODE_ENABLED_F
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Nat Furrer and James Laird
-! June 16, 2004
-!
-! Modifications:
-!
-!----------------------------------------------------------------------
- SUBROUTINE h5zget_filter_info_f(filter, config_flags, hdferr)
- IMPLICIT NONE
- INTEGER, INTENT(IN) :: filter ! Filter; may be one of the following:
- ! H5Z_FILTER_DEFLATE_F
- ! H5Z_FILTER_SHUFFLE_F
- ! H5Z_FILTER_FLETCHER32_F
- ! H5Z_FILTER_SZIP_F
- INTEGER, INTENT(OUT) :: config_flags! Flag, indicates if filter
- ! has its encoder and/or decoder
- ! available
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5zget_filter_info_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5zget_filter_info_c(filter, config_flags)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ZGET_FILTER_INFO_C'::h5zget_filter_info_c
- !DEC$ENDIF
- INTEGER, INTENT(IN) :: filter
- INTEGER, INTENT(OUT) :: config_flags
- END FUNCTION h5zget_filter_info_c
- END INTERFACE
-
- hdferr = h5zget_filter_info_c(filter, config_flags)
-
- END SUBROUTINE h5zget_filter_info_f
-
- END MODULE H5Z
+!****h* ROBODoc/H5Z
+!
+! NAME
+! MODULE H5Z
+!
+! PURPOSE
+! This file contains Fortran interfaces for H5Z functions. It includes
+! all the functions that are independent on whether the Fortran 2003 functions
+! are enabled or disabled.
+!
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! NOTES
+! *** IMPORTANT ***
+! If you add a new H5Z function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
+!
+!*****
+
+MODULE H5Z
+
+ USE H5GLOBAL
+
+CONTAINS
+
+!****s* H5Z/h5zunregister_f
+!
+! NAME
+! h5zunregister_f
+!
+! PURPOSE
+! Unregisters specified filetr
+!
+! INPUTS
+! filter - filter; may have one of the following values:
+! H5Z_FILTER_DEFLATE_F
+! H5Z_FILTER_SZIP_F
+! H5Z_FILTER_NBIT_F
+! H5Z_FILTER_SCALEOFFSET_F
+! H5Z_FILTER_SHUFFLE_F
+! H5Z_FILTER_FLETCHER32_F
+!
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! March 12, 2003
+!
+! SOURCE
+ SUBROUTINE h5zunregister_f(filter, hdferr)
+ IMPLICIT NONE
+ INTEGER, INTENT(IN) :: filter
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5zunregister_c (filter)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ZUNREGISTER_C':: h5zunregister_c
+ !DEC$ENDIF
+ INTEGER, INTENT(IN) :: filter
+ END FUNCTION h5zunregister_c
+ END INTERFACE
+ hdferr = h5zunregister_c (filter)
+ END SUBROUTINE h5zunregister_f
+
+!****s* H5Z/h5zfilter_avail_f
+! NAME
+! h5zfilter_avail_f
+!
+! PURPOSE
+! Queries if filter is available
+!
+! INPUTS
+! filter - filter
+! OUTPUTS
+! status - status; .TRUE. if filter is available,
+! .FALSE. otherwise
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! March 12, 2003
+!
+! SOURCE
+ SUBROUTINE h5zfilter_avail_f(filter, status, hdferr)
+ IMPLICIT NONE
+ INTEGER, INTENT(IN) :: filter ! Filter; may be one of the following:
+ ! H5Z_FILTER_DEFLATE_F
+ ! H5Z_FILTER_SZIP_F
+ ! H5Z_FILTER_NBIT_F
+ ! H5Z_FILTER_SCALEOFFSET_F
+ ! H5Z_FILTER_SHUFFLE_F
+ ! H5Z_FILTER_FLETCHER32_F
+ LOGICAL, INTENT(OUT) :: status ! Flag, idicates if filter
+ ! is availble not ( TRUE or
+ ! FALSE)
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: flag ! "TRUE/FALSE/ERROR from C"
+
+ INTERFACE
+ INTEGER FUNCTION h5zfilter_avail_c(filter, flag)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ZFILTER_AVAIL_C'::h5zfilter_avail_c
+ !DEC$ENDIF
+ INTEGER, INTENT(IN) :: filter
+ INTEGER :: flag
+ END FUNCTION h5zfilter_avail_c
+ END INTERFACE
+
+ hdferr = h5zfilter_avail_c(filter, flag)
+ status = .TRUE.
+ IF (flag .EQ. 0) status = .FALSE.
+
+ END SUBROUTINE h5zfilter_avail_f
+!****s* H5Z/h5zget_filter_info_f
+!
+! NAME
+! h5zget_filter_info_f
+!
+! PURPOSE
+! Queries if filter has its encoder and/or decoder
+! available
+!
+! INPUTS
+! filter - filter
+! OUTPUTS
+! config_flags - Bit vector possibly containing the
+! following values:
+! H5Z_FILTER_ENCODE_ENABLED_F
+! H5Z_FILTER_DECODE_ENABLED_F
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Nat Furrer and James Laird
+! June 16, 2004
+! SOURCE
+ SUBROUTINE h5zget_filter_info_f(filter, config_flags, hdferr)
+ IMPLICIT NONE
+ INTEGER, INTENT(IN) :: filter ! Filter; may be one of the following:
+ ! H5Z_FILTER_DEFLATE_F
+ ! H5Z_FILTER_SZIP_F
+ ! H5Z_FILTER_NBIT_F
+ ! H5Z_FILTER_SCALEOFFSET_F
+ ! H5Z_FILTER_SHUFFLE_F
+ ! H5Z_FILTER_FLETCHER32_F
+ INTEGER, INTENT(OUT) :: config_flags! Flag, indicates if filter
+ ! has its encoder and/or decoder
+ ! available
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION h5zget_filter_info_c(filter, config_flags)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ZGET_FILTER_INFO_C'::h5zget_filter_info_c
+ !DEC$ENDIF
+ INTEGER, INTENT(IN) :: filter
+ INTEGER, INTENT(OUT) :: config_flags
+ END FUNCTION h5zget_filter_info_c
+ END INTERFACE
+
+ hdferr = h5zget_filter_info_c(filter, config_flags)
+
+ END SUBROUTINE h5zget_filter_info_f
+
+END MODULE H5Z
diff --git a/fortran/src/H5_DBLE_InterfaceExclude.f90 b/fortran/src/H5_DBLE_InterfaceExclude.f90
index b3bafa1..2a3e26f 100644
--- a/fortran/src/H5_DBLE_InterfaceExclude.f90
+++ b/fortran/src/H5_DBLE_InterfaceExclude.f90
@@ -29,7 +29,7 @@
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
! AUTHOR
-! M.S. Breitenfeld
+! M. Scot Breitenfeld
!
!*****
diff --git a/fortran/src/H5_DBLE_InterfaceInclude.f90 b/fortran/src/H5_DBLE_InterfaceInclude.f90
index 4e7dbfb..7006693 100644
--- a/fortran/src/H5_DBLE_InterfaceInclude.f90
+++ b/fortran/src/H5_DBLE_InterfaceInclude.f90
@@ -30,7 +30,7 @@
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
! AUTHOR
-! M.S. Breitenfeld
+! M. Scot Breitenfeld
!
!*****
diff --git a/fortran/src/H5_f.c b/fortran/src/H5_f.c
index 12c55af..05b7da0 100644
--- a/fortran/src/H5_f.c
+++ b/fortran/src/H5_f.c
@@ -1,4 +1,9 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+/****ih* H5_f/H5_f
+ * PURPOSE
+ * This file contains C stubs for H5 Fortran APIs
+ *
+ * COPYRIGHT
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
@@ -11,36 +16,42 @@
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* This files contains C stubs for H5 Fortran APIs */
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ ******
+*/
#include "H5f90.h"
-/*---------------------------------------------------------------------------
- * Name: h5init_types_c
- * Purpose: Initialize predefined datatypes in Fortran
- * Inputs: types - array with the predefined Native Fortran
- * type, its element and length must be the
- * same as the types array defined in the
- * H5f90global.f90
- * floatingtypes - array with the predefined Floating Fortran
- * type, its element and length must be the
- * same as the floatingtypes array defined in the
- * H5f90global.f90
- * integertypes - array with the predefined Integer Fortran
- * type, its element and length must be the
- * same as the integertypes array defined in the
- * H5f90global.f90
- * Outputs: None
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
- * Tuesday, August 3, 1999
- *---------------------------------------------------------------------------*/
+/****if* H5_f/h5init_types_c
+ * NAME
+ * h5init_types_c
+ * PURPOSE
+ * Initialize predefined datatypes in Fortran
+ * INPUTS
+ * types - array with the predefined Native Fortran
+ * type, its element and length must be the
+ * same as the types array defined in the
+ * H5f90global.f90
+ * floatingtypes - array with the predefined Floating Fortran
+ * type, its element and length must be the
+ * same as the floatingtypes array defined in the
+ * H5f90global.f90
+ * integertypes - array with the predefined Integer Fortran
+ * type, its element and length must be the
+ * same as the integertypes array defined in the
+ * H5f90global.f90
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
+ * Tuesday, August 3, 1999
+ * SOURCE
+*/
int_f
nh5init_types_c( hid_t_f * types, hid_t_f * floatingtypes, hid_t_f * integertypes )
+/******/
{
-
int ret_value = -1;
hid_t c_type_id;
size_t tmp_val;
@@ -91,8 +102,6 @@ nh5init_types_c( hid_t_f * types, hid_t_f * floatingtypes, hid_t_f * integertype
if(H5Tset_strpad(c_type_id, H5T_STR_SPACEPAD) < 0) return ret_value;
types[3] = (hid_t_f)c_type_id;
-
-
/*
if ((types[3] = H5Tcopy(H5T_C_S1)) < 0) return ret_value;
if(H5Tset_strpad(types[3],H5T_STR_NULLTERM) < 0) return ret_value;
@@ -104,7 +113,9 @@ nh5init_types_c( hid_t_f * types, hid_t_f * floatingtypes, hid_t_f * integertype
*/
if ((types[4] = (hid_t_f)H5Tcopy(H5T_STD_REF_OBJ)) < 0) return ret_value;
if ((types[5] = (hid_t_f)H5Tcopy(H5T_STD_REF_DSETREG)) < 0) return ret_value;
-
+ /*
+ * FIND H5T_NATIVE_INTEGER_1
+ */
if (sizeof(int_1_f) == sizeof(char)) {
if ((types[6] = (hid_t_f)H5Tcopy(H5T_NATIVE_CHAR)) < 0) return ret_value;
} /*end if */
@@ -117,7 +128,9 @@ nh5init_types_c( hid_t_f * types, hid_t_f * floatingtypes, hid_t_f * integertype
else if (sizeof(int_1_f) == sizeof(long long)) {
if ((types[6] = (hid_t_f)H5Tcopy(H5T_NATIVE_LLONG)) < 0) return ret_value;
} /*end else */
-
+ /*
+ * FIND H5T_NATIVE_INTEGER_2
+ */
if (sizeof(int_2_f) == sizeof(char)) {
if ((types[7] = (hid_t_f)H5Tcopy(H5T_NATIVE_CHAR)) < 0) return ret_value;
} /*end if */
@@ -130,7 +143,9 @@ nh5init_types_c( hid_t_f * types, hid_t_f * floatingtypes, hid_t_f * integertype
else if (sizeof(int_2_f) == sizeof(long long)) {
if ((types[7] = (hid_t_f)H5Tcopy(H5T_NATIVE_LLONG)) < 0) return ret_value;
} /*end else */
-
+ /*
+ * FIND H5T_NATIVE_INTEGER_4
+ */
if (sizeof(int_4_f) == sizeof(char)) {
if ((types[8] = (hid_t_f)H5Tcopy(H5T_NATIVE_CHAR)) < 0) return ret_value;
} /*end if */
@@ -143,7 +158,9 @@ nh5init_types_c( hid_t_f * types, hid_t_f * floatingtypes, hid_t_f * integertype
else if (sizeof(int_4_f) == sizeof(long long)) {
if ((types[8] = (hid_t_f)H5Tcopy(H5T_NATIVE_LLONG)) < 0) return ret_value;
} /*end else */
-
+ /*
+ * FIND H5T_NATIVE_INTEGER_8
+ */
if (sizeof(int_8_f) == sizeof(char)) {
if ((types[9] = (hid_t_f)H5Tcopy(H5T_NATIVE_CHAR)) < 0) return ret_value;
} /*end if */
@@ -156,7 +173,9 @@ nh5init_types_c( hid_t_f * types, hid_t_f * floatingtypes, hid_t_f * integertype
else if (sizeof(int_8_f) == sizeof(long long)) {
if ((types[9] = (hid_t_f)H5Tcopy(H5T_NATIVE_LLONG)) < 0) return ret_value;
} /*end else */
-
+ /*
+ * FIND H5T_NATIVE_REAL_4
+ */
if (sizeof(real_4_f) == sizeof(float)) {
if ((types[10] = (hid_t_f)H5Tcopy(H5T_NATIVE_FLOAT)) < 0) return ret_value;
} /*end if */
@@ -168,7 +187,9 @@ nh5init_types_c( hid_t_f * types, hid_t_f * floatingtypes, hid_t_f * integertype
if ((types[10] = (hid_t_f)H5Tcopy(H5T_NATIVE_LDOUBLE)) < 0) return ret_value;
} /*end else */
#endif
-
+ /*
+ * FIND H5T_NATIVE_REAL_8
+ */
if (sizeof(real_8_f) == sizeof(float)) {
if ((types[11] = (hid_t_f)H5Tcopy(H5T_NATIVE_FLOAT)) < 0) return ret_value;
} /*end if */
@@ -180,7 +201,9 @@ nh5init_types_c( hid_t_f * types, hid_t_f * floatingtypes, hid_t_f * integertype
if ((types[11] = (hid_t_f)H5Tcopy(H5T_NATIVE_LDOUBLE)) < 0) return ret_value;
} /*end else */
#endif
-
+ /*
+ * FIND H5T_NATIVE_REAL_16
+ */
if (sizeof(real_16_f) == sizeof(float)) {
if ((types[12] = (hid_t_f)H5Tcopy(H5T_NATIVE_FLOAT)) < 0) return ret_value;
} /*end if */
@@ -192,6 +215,13 @@ nh5init_types_c( hid_t_f * types, hid_t_f * floatingtypes, hid_t_f * integertype
if ((types[12] = (hid_t_f)H5Tcopy(H5T_NATIVE_LDOUBLE)) < 0) return ret_value;
} /*end else */
#endif
+ /*
+ * FIND H5T_NATIVE_B_8
+ */
+ if ((types[13] = (hid_t_f)H5Tcopy(H5T_NATIVE_B8)) < 0) return ret_value;
+ if ((types[14] = (hid_t_f)H5Tcopy(H5T_NATIVE_B16)) < 0) return ret_value;
+ if ((types[15] = (hid_t_f)H5Tcopy(H5T_NATIVE_B32)) < 0) return ret_value;
+ if ((types[16] = (hid_t_f)H5Tcopy(H5T_NATIVE_B64)) < 0) return ret_value;
if ((floatingtypes[0] = (hid_t_f)H5Tcopy(H5T_IEEE_F32BE)) < 0) return ret_value;
if ((floatingtypes[1] = (hid_t_f)H5Tcopy(H5T_IEEE_F32LE)) < 0) return ret_value;
@@ -213,7 +243,18 @@ nh5init_types_c( hid_t_f * types, hid_t_f * floatingtypes, hid_t_f * integertype
if ((integertypes[12] = (hid_t_f)H5Tcopy(H5T_STD_U32BE)) < 0) return ret_value;
if ((integertypes[13] = (hid_t_f)H5Tcopy(H5T_STD_U32LE)) < 0) return ret_value;
if ((integertypes[14] = (hid_t_f)H5Tcopy(H5T_STD_U64BE)) < 0) return ret_value;
- if ((integertypes[15] = (hid_t_f)H5Tcopy(H5T_STD_U64LE)) < 0) return ret_value;
+ if ((integertypes[15] = (hid_t_f)H5Tcopy(H5T_STD_U64LE)) < 0) return ret_value;
+ if ((integertypes[17] = (hid_t_f)H5Tcopy(H5T_STD_B8BE)) < 0) return ret_value;
+ if ((integertypes[18] = (hid_t_f)H5Tcopy(H5T_STD_B8LE)) < 0) return ret_value;
+ if ((integertypes[19] = (hid_t_f)H5Tcopy(H5T_STD_B16BE)) < 0) return ret_value;
+ if ((integertypes[20] = (hid_t_f)H5Tcopy(H5T_STD_B16LE)) < 0) return ret_value;
+ if ((integertypes[21] = (hid_t_f)H5Tcopy(H5T_STD_B32BE)) < 0) return ret_value;
+ if ((integertypes[22] = (hid_t_f)H5Tcopy(H5T_STD_B32LE)) < 0) return ret_value;
+ if ((integertypes[23] = (hid_t_f)H5Tcopy(H5T_STD_B64BE)) < 0) return ret_value;
+ if ((integertypes[24] = (hid_t_f)H5Tcopy(H5T_STD_B64LE)) < 0) return ret_value;
+ if ((integertypes[25] = (hid_t_f)H5Tcopy(H5T_FORTRAN_S1)) < 0) return ret_value;
+ if ((integertypes[26] = (hid_t_f)H5Tcopy(H5T_C_S1)) < 0) return ret_value;
+
/*
* Define Fortran H5T_STRING type to store non-fixed size strings
*/
@@ -224,42 +265,46 @@ nh5init_types_c( hid_t_f * types, hid_t_f * floatingtypes, hid_t_f * integertype
ret_value = 0;
return ret_value;
}
-
-/*---------------------------------------------------------------------------
- * Name: h5close_types_c
- * Purpose: Closes predefined datatype in Fortran
- * Inputs: types - array with the predefined Native Fortran
- * type, its element and length must be the
- * same as the types array defined in the
- * H5f90global.f90
- * lentypes - length of the types array, which must be the
- * same as the length of types array defined
- * in the H5f90global.f90
- * floatingtypes - array with the predefined Floating Fortran
- * type, its element and length must be the
- * same as the floatingtypes array defined in the
- * H5f90global.f90
- * floatinglen - length of the floatingtypes array, which must be the
- * same as the length of floatingtypes array defined
- * in the H5f90global.f90
- * integertypes - array with the predefined Integer Fortran
- * type, its element and length must be the
- * same as the integertypes array defined in the
- * H5f90global.f90
- * integerlen - length of the floatingtypes array, which must be the
- * same as the length of floatingtypes array defined
- * in the H5f90global.f90
- * Outputs: None
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
- * Tuesday, August 3, 1999
- *---------------------------------------------------------------------------*/
+/****if* H5_f/h5close_types_c
+ * NAME
+ * h5close_types_c
+ * PURPOSE
+ * Closes predefined datatype in Fortran
+ * INPUTS
+ * types - array with the predefined Native Fortran
+ * type, its element and length must be the
+ * same as the types array defined in the
+ * H5f90global.f90
+ * lentypes - length of the types array, which must be the
+ * same as the length of types array defined
+ * in the H5f90global.f90
+ * floatingtypes - array with the predefined Floating Fortran
+ * type, its element and length must be the
+ * same as the floatingtypes array defined in the
+ * H5f90global.f90
+ * floatinglen - length of the floatingtypes array, which must be the
+ * same as the length of floatingtypes array defined
+ * in the H5f90global.f90
+ * integertypes - array with the predefined Integer Fortran
+ * type, its element and length must be the
+ * same as the integertypes array defined in the
+ * H5f90global.f90
+ * integerlen - length of the floatingtypes array, which must be the
+ * same as the length of floatingtypes array defined
+ * in the H5f90global.f90
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
+ * Tuesday, August 3, 1999
+ * SOURCE
+ */
int_f
nh5close_types_c( hid_t_f * types, int_f *lentypes,
hid_t_f * floatingtypes, int_f* floatinglen,
hid_t_f * integertypes, int_f * integerlen )
+/******/
{
-
int ret_value = -1;
hid_t c_type_id;
int i;
@@ -279,32 +324,52 @@ nh5close_types_c( hid_t_f * types, int_f *lentypes,
ret_value = 0;
return ret_value;
}
-/*---------------------------------------------------------------------------
- * Name: h5init_flags_c
- * Purpose: Initialize Fortran flags
- * Inputs: h5d_flags - H5D inteface flags
- * h5f_flags - H5F interface flags
- * h5fd_flags - H5FD interface flags
- * h5fd_hid_flags- H5FD interface flags of type hid_t
- * h5g_flags - H5G interface flags
- * h5i_flags - H5I interface flags
- * h5p_flags - H5P interface flags
- * h5p_flags_int - H5P intger interface flags
- * h5r_flags - H5R interface flags
- * h5s_flags - H5S interface flags
- * h5t_flags - H5T interface flags
- * h5z_flags - H5Z interface flags
- * Outputs: None
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
- * Tuesday, August 3, 1999
- *---------------------------------------------------------------------------*/
+/****if* H5_f/h5init_flags_c
+ * NAME
+ * h5init_flags_c
+ * PURPOSE
+ * Initialize Fortran flags
+ * INPUTS
+ * h5d_flags - H5D inteface flags
+ * h5e_flags - H5E inteface flags
+ * h5e_hid_flags - H5E inteface flags of type hid_t
+ * h5f_flags - H5F interface flags
+ * h5fd_flags - H5FD interface flags
+ * h5fd_hid_flags - H5FD interface flags of type hid_t
+ * h5g_flags - H5G interface flags
+ * h5i_flags - H5I interface flags
+ * h5p_flags - H5P interface flags
+ * h5p_flags_int - H5P interface flags of type integer
+ * h5r_flags - H5R interface flags
+ * h5s_flags - H5S interface flags
+ * h5t_flags - H5T interface flags
+ * h5z_flags - H5Z interface flags
+ * OUTPUTS
+ * None
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
+ * Tuesday, August 3, 1999
+ * HISTORY
+ * Added Z flags. EIP, March 12, 2003
+ * Added more FD flags and new H5LIB flags
+ * Added more FD flags for HDF5 file driver
+ * EIP, April 9, 2005
+ * Added Generic flags introduced in version 1.8
+ * MSB, January, 2008
+ * Added types in lines h5*_flags = ( )variable to match input
+ * Added E flags.
+ * MSB, July 9, 2009
+ * SOURCE
+ */
int_f
-nh5init_flags_c( int_f *h5d_flags, int_f *h5f_flags,
+nh5init_flags_c( int_f *h5d_flags, int_f *h5e_flags, hid_t_f *h5e_hid_flags, int_f *h5f_flags,
int_f *h5fd_flags, hid_t_f *h5fd_hid_flags,
int_f *h5g_flags, int_f *h5i_flags, int_f *h5l_flags, int_f *h5o_flags,
hid_t_f *h5p_flags, int_f *h5p_flags_int, int_f *h5r_flags, int_f *h5s_flags,
int_f *h5t_flags, int_f *h5z_flags, int_f *h5_generic_flags)
+/******/
{
int ret_value = -1;
/*
@@ -334,6 +399,15 @@ nh5init_flags_c( int_f *h5d_flags, int_f *h5f_flags,
h5d_flags[21] = (int_f)H5D_CHUNK_CACHE_W0_DEFAULT;
/*
+ * H5E flags
+ */
+ h5e_hid_flags[0] = (hid_t_f)H5E_DEFAULT;
+ h5e_flags[0] = (int_f)H5E_MAJOR;
+ h5e_flags[1] = (int_f)H5E_MINOR;
+ h5e_flags[2] = (int_f)H5E_WALK_UPWARD;
+ h5e_flags[3] = (int_f)H5E_WALK_DOWNWARD;
+
+/*
* H5F flags
*/
h5f_flags[0] = (int_f)H5F_ACC_RDWR;
@@ -354,6 +428,7 @@ nh5init_flags_c( int_f *h5d_flags, int_f *h5f_flags,
h5f_flags[15] = (int_f)H5F_OBJ_ALL;
h5f_flags[16] = (int_f)H5F_LIBVER_EARLIEST;
h5f_flags[17] = (int_f)H5F_LIBVER_LATEST;
+ h5f_flags[18] = (int_f)H5F_UNLIMITED;
/*
* H5FD flags
@@ -533,8 +608,6 @@ nh5init_flags_c( int_f *h5d_flags, int_f *h5f_flags,
/*
* H5T flags
*/
-
-
h5t_flags[0] = (int_f)H5T_NO_CLASS;
h5t_flags[1] = (int_f)H5T_INTEGER;
h5t_flags[2] = (int_f)H5T_FLOAT;
@@ -547,33 +620,33 @@ nh5init_flags_c( int_f *h5d_flags, int_f *h5f_flags,
h5t_flags[9] = (int_f)H5T_ENUM;
h5t_flags[10] = (int_f)H5T_ORDER_LE;
h5t_flags[11] = (int_f)H5T_ORDER_BE;
- h5t_flags[12] = (int_f)H5T_ORDER_VAX;
- h5t_flags[13] = (int_f)H5T_ORDER_NONE;
- h5t_flags[14] = (int_f)H5T_PAD_ZERO;
- h5t_flags[15] = (int_f)H5T_PAD_ONE;
- h5t_flags[16] = (int_f)H5T_PAD_BACKGROUND;
- h5t_flags[17] = (int_f)H5T_PAD_ERROR;
- h5t_flags[18] = (int_f)H5T_SGN_NONE;
- h5t_flags[19] = (int_f)H5T_SGN_2;
- h5t_flags[20] = (int_f)H5T_SGN_ERROR;
- h5t_flags[21] = (int_f)H5T_NORM_IMPLIED;
- h5t_flags[22] = (int_f)H5T_NORM_MSBSET;
- h5t_flags[23] = (int_f)H5T_NORM_NONE;
- h5t_flags[24] = (int_f)H5T_CSET_ASCII;
- h5t_flags[25] = (int_f)H5T_CSET_UTF8;
- h5t_flags[26] = (int_f)H5T_STR_NULLTERM;
- h5t_flags[27] = (int_f)H5T_STR_NULLPAD;
- h5t_flags[28] = (int_f)H5T_STR_SPACEPAD;
- h5t_flags[29] = (int_f)H5T_STR_ERROR;
- h5t_flags[30] = (int_f)H5T_VLEN;
- h5t_flags[31] = (int_f)H5T_ARRAY;
- h5t_flags[32] = (int_f)H5T_DIR_ASCEND;
- h5t_flags[33] = (int_f)H5T_DIR_DESCEND;
+ h5t_flags[12] = (int_f)H5T_ORDER_MIXED;
+ h5t_flags[13] = (int_f)H5T_ORDER_VAX;
+ h5t_flags[14] = (int_f)H5T_ORDER_NONE;
+ h5t_flags[15] = (int_f)H5T_PAD_ZERO;
+ h5t_flags[16] = (int_f)H5T_PAD_ONE;
+ h5t_flags[17] = (int_f)H5T_PAD_BACKGROUND;
+ h5t_flags[18] = (int_f)H5T_PAD_ERROR;
+ h5t_flags[19] = (int_f)H5T_SGN_NONE;
+ h5t_flags[20] = (int_f)H5T_SGN_2;
+ h5t_flags[21] = (int_f)H5T_SGN_ERROR;
+ h5t_flags[22] = (int_f)H5T_NORM_IMPLIED;
+ h5t_flags[23] = (int_f)H5T_NORM_MSBSET;
+ h5t_flags[24] = (int_f)H5T_NORM_NONE;
+ h5t_flags[25] = (int_f)H5T_CSET_ASCII;
+ h5t_flags[26] = (int_f)H5T_CSET_UTF8;
+ h5t_flags[27] = (int_f)H5T_STR_NULLTERM;
+ h5t_flags[28] = (int_f)H5T_STR_NULLPAD;
+ h5t_flags[29] = (int_f)H5T_STR_SPACEPAD;
+ h5t_flags[30] = (int_f)H5T_STR_ERROR;
+ h5t_flags[31] = (int_f)H5T_VLEN;
+ h5t_flags[32] = (int_f)H5T_ARRAY;
+ h5t_flags[33] = (int_f)H5T_DIR_ASCEND;
+ h5t_flags[34] = (int_f)H5T_DIR_DESCEND;
/*
* H5Z flags
*/
-
h5z_flags[0] = (int_f)H5Z_FILTER_ERROR;
h5z_flags[1] = (int_f)H5Z_FILTER_NONE;
h5z_flags[2] = (int_f)H5Z_FILTER_DEFLATE;
@@ -588,6 +661,12 @@ nh5init_flags_c( int_f *h5d_flags, int_f *h5f_flags,
h5z_flags[11] = (int_f)H5Z_FILTER_CONFIG_ENCODE_ENABLED;
h5z_flags[12] = (int_f)H5Z_FILTER_CONFIG_DECODE_ENABLED;
h5z_flags[13] = (int_f)H5Z_FILTER_ALL;
+ h5z_flags[14] = (int_f)H5Z_FILTER_NBIT;
+ h5z_flags[15] = (int_f)H5Z_FILTER_SCALEOFFSET;
+ h5z_flags[16] = (int_f)H5Z_SO_FLOAT_DSCALE;
+ h5z_flags[17] = (int_f)H5Z_SO_FLOAT_ESCALE;
+ h5z_flags[18] = (int_f)H5Z_SO_INT;
+ h5z_flags[19] = (int_f)H5Z_SO_INT_MINBITS_DEFAULT;
/*
* H5A flags
*/
@@ -619,6 +698,7 @@ nh5init_flags_c( int_f *h5d_flags, int_f *h5f_flags,
int_f
nh5init1_flags_c(int_f *h5lib_flags)
+/******/
{
int ret_value = -1;
unsigned prm_1 = H5_SZIP_EC_OPTION_MASK;
@@ -629,15 +709,22 @@ nh5init1_flags_c(int_f *h5lib_flags)
return ret_value;
}
-/*---------------------------------------------------------------------------
- * Name: h5open_c
- * Purpose: Calls H5open call to initialize C HDF5 library
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
- * Friday, November 17, 2000
- *---------------------------------------------------------------------------*/
+/****if* H5_f/h5open_c
+ * NAME
+ * h5open_c
+ * PURPOSE
+ * Calls H5open call to initialize C HDF5 library
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
+ * Friday, November 17, 2000
+ *
+ * SOURCE
+ */
int_f
nh5open_c(void)
+/******/
{
int ret_value = -1;
@@ -645,16 +732,20 @@ nh5open_c(void)
ret_value = 0;
return ret_value;
}
-
-/*---------------------------------------------------------------------------
- * Name: h5close_c
- * Purpose: Calls H5close call to close C HDF5 library
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
- * Friday, November 17, 2000
- *---------------------------------------------------------------------------*/
+/****if* H5_f/h5close_c
+ * NAME
+ * h5close_c
+ * PURPOSE
+ * Calls H5close call to close C HDF5 library
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
+ * SOURCE
+ */
int_f
nh5close_c(void)
+/******/
{
int ret_value = -1;
@@ -663,22 +754,31 @@ nh5close_c(void)
return ret_value;
}
-/*---------------------------------------------------------------------------
- * Name: h5get_libversion_c
- * Purpose: Calls H5get_libversion function
+/****if* H5_f/h5get_libversion_c
+ * NAME
+ * h5get_libversion_c
+ * PURPOSE
+ * Calls H5get_libversion function
* to retrieve library version info.
- * Inputs:
+ * INPUTS
+ *
* None
- * Outputs:
+ * OUTPUTS
+ *
* majnum - the major version of the library
* minnum - the minor version of the library
* relnum - the release version of the library
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Tuesday, September 24, 2002
- *---------------------------------------------------------------------------*/
+ * SOURCE
+ *
+ */
int_f
nh5get_libversion_c(int_f *majnum, int_f *minnum, int_f *relnum)
+/******/
{
int ret_value = -1;
@@ -693,22 +793,30 @@ nh5get_libversion_c(int_f *majnum, int_f *minnum, int_f *relnum)
return ret_value;
}
-/*---------------------------------------------------------------------------
- * Name: h5check_version_c
- * Purpose: Calls H5check_version function
+/****if* H5_f/h5check_version_c
+ * NAME
+ * h5check_version_c
+ * PURPOSE
+ * Calls H5check_version function
* to verify library version info.
- * Inputs:
+ * INPUTS
+ *
* majnum - the major version of the library
* minnum - the minor version of the library
* relnum - the release version of the library
- * Outputs:
+ * OUTPUTS
+ *
* None
- * Returns: 0 on success, aborts on failure
- * Programmer: Elena Pourmal
+ * RETURNS
+ * 0 on success, aborts on failure
+ * AUTHOR
+ * Elena Pourmal
* Tuesday, September 24, 2002
- *---------------------------------------------------------------------------*/
+ * SOURCE
+ */
int_f
nh5check_version_c(int_f *majnum, int_f *minnum, int_f *relnum)
+/******/
{
int ret_value = -1;
unsigned c_majnum, c_minnum, c_relnum;
@@ -723,15 +831,21 @@ nh5check_version_c(int_f *majnum, int_f *minnum, int_f *relnum)
return ret_value;
}
-/*---------------------------------------------------------------------------
- * Name: h5garbage_collect_c
- * Purpose: Calls H5garbage_collect to collect on all free-lists of all types
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5_f/h5garbage_collect_c
+ * NAME
+ * h5garbage_collect_c
+ * PURPOSE
+ * Calls H5garbage_collect to collect on all free-lists of all types
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Tuesday, September 24, 2002
- *---------------------------------------------------------------------------*/
+ * SOURCE
+ */
int_f
nh5garbage_collect_c(void)
+/******/
{
int ret_value = -1;
@@ -740,15 +854,21 @@ nh5garbage_collect_c(void)
return ret_value;
}
-/*---------------------------------------------------------------------------
- * Name: h5dont_atexit_c
- * Purpose: Calls H5dont_atexit not to install atexit cleanup routine
- * Returns: 0 on success, -1 on failure
- * Programmer: Elena Pourmal
+/****if* H5_f/h5dont_atexit_c
+ * NAME
+ * h5dont_atexit_c
+ * PURPOSE
+ * Calls H5dont_atexit not to install atexit cleanup routine
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * Elena Pourmal
* Tuesday, September 24, 2002
- *---------------------------------------------------------------------------*/
+ * SOURCE
+ */
int_f
nh5dont_atexit_c(void)
+/******/
{
int ret_value = -1;
diff --git a/fortran/src/H5_ff.f90 b/fortran/src/H5_ff.f90
index 7dffd0a..fdb8748 100644
--- a/fortran/src/H5_ff.f90
+++ b/fortran/src/H5_ff.f90
@@ -1,3 +1,17 @@
+!****h* ROBODoc/H5LIB
+!
+! NAME
+! MODULE H5LIB
+!
+! PURPOSE
+! This module provides fortran specific helper functions for the HDF library
+!
+! USES
+! H5LIB_PROVISIONAL - This module provides helper functions for Fortran 2003
+! only features. If Fortran 2003 functions are enabled then
+! H5_ff_F03.f90 is compiled, else H5_ff_F90.f90,
+! which is just a place holder blank module, is compiled.
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,45 +27,55 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! NOTES
+! *** IMPORTANT ***
+! If you add a new function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
+!
+!*****
+
MODULE H5LIB
+ USE H5LIB_PROVISIONAL ! helper functions for Fortran 2003 features:
+ ! pre-Fortran 2003 - empty module
+ ! Forttran 2003 - contains functions
+ USE H5GLOBAL
CONTAINS
-!----------------------------------------------------------------------
-! Name: h5open_f
+!****s* H5LIB/h5open_f
!
-! Purpose: Initializes the HDF5 library and Fortran90 interface.
+! NAME
+! h5open_f
!
-! Inputs:
-! Outputs:
-! error: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! PURPOSE
+! Initializes the HDF5 library and Fortran90 interface.
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! OUTPUTS
+! error - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
!
-! Comment:
-!----------------------------------------------------------------------
+! SOURCE
SUBROUTINE h5open_f(error)
USE H5GLOBAL
-
IMPLICIT NONE
INTEGER, INTENT(OUT) :: error
+!*****
INTEGER :: error_0, error_1, error_2, error_3
-! INTEGER, EXTERNAL :: h5init_types_c
-! INTEGER, EXTERNAL :: h5init_flags_c
-! INTEGER, EXTERNAL :: h5init1_flags_c
-! INTEGER, EXTERNAL :: h5open_c
-!
-! MS FORTRAN needs explicit interfaces for C functions called here.
-!
+! INTEGER, EXTERNAL :: h5init_types_c
+! INTEGER, EXTERNAL :: h5init_flags_c
+! INTEGER, EXTERNAL :: h5init1_flags_c
+! INTEGER, EXTERNAL :: h5open_c
+
INTERFACE
INTEGER FUNCTION h5open_c()
!DEC$IF DEFINED(HDF5F90_WINDOWS)
@@ -72,6 +96,8 @@ CONTAINS
END INTERFACE
INTERFACE
INTEGER FUNCTION h5init_flags_c(i_H5D_flags, &
+ i_H5E_flags, &
+ i_H5E_hid_flags, &
i_H5F_flags, &
i_H5FD_flags, &
i_H5FD_hid_flags, &
@@ -87,9 +113,11 @@ CONTAINS
i_H5Z_flags, &
i_H5generic_flags)
USE H5GLOBAL
+ INTEGER i_H5D_flags(H5D_FLAGS_LEN)
+ INTEGER i_H5E_flags(H5E_FLAGS_LEN)
+ INTEGER(HID_T) i_H5E_hid_flags(H5E_HID_FLAGS_LEN)
INTEGER i_H5F_flags(H5F_FLAGS_LEN)
INTEGER i_H5G_flags(H5G_FLAGS_LEN)
- INTEGER i_H5D_flags(H5D_FLAGS_LEN)
INTEGER i_H5FD_flags(H5FD_FLAGS_LEN)
INTEGER(HID_T) i_H5FD_hid_flags(H5FD_HID_FLAGS_LEN)
INTEGER i_H5I_flags(H5I_FLAGS_LEN)
@@ -102,9 +130,9 @@ CONTAINS
INTEGER i_H5T_flags(H5T_FLAGS_LEN)
INTEGER i_H5Z_flags(H5Z_FLAGS_LEN)
INTEGER i_H5generic_flags(H5generic_FLAGS_LEN)
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5INIT_FLAGS_C'::h5init_flags_c
- !DEC$ENDIF
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5INIT_FLAGS_C'::h5init_flags_c
+ !DEC$ENDIF
END FUNCTION h5init_flags_c
END INTERFACE
INTERFACE
@@ -119,6 +147,8 @@ CONTAINS
error_0 = h5open_c()
error_1 = h5init_types_c(predef_types, floating_types, integer_types)
error_2 = h5init_flags_c(H5D_flags, &
+ H5E_flags, &
+ H5E_hid_flags, &
H5F_flags, &
H5FD_flags, &
H5FD_hid_flags, &
@@ -137,35 +167,36 @@ CONTAINS
error = error_0 + error_1 + error_2 + error_3
END SUBROUTINE h5open_f
-!----------------------------------------------------------------------
-! Name: h5close_f
+!****s* H5LIB/h5close_f
!
-! Purpose: Closes the HDF5 library and Fortran90 interface.
+! NAME
+! h5close_f
!
-! Inputs:
-! Outputs:
-! error: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! PURPOSE
+! Closes the HDF5 library and Fortran90 interface.
!
-! Programmer: Elena Pourmal
-! August 12, 1999
+! OUTPUTS
+! error - error code
+! Success: 0
+! Failure: -1
!
-! Modifications: Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! Comment:
-!----------------------------------------------------------------------
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! SOURCE
SUBROUTINE h5close_f(error)
USE H5GLOBAL
-
IMPLICIT NONE
- INTEGER :: error_1, error_2
INTEGER, INTENT(OUT) :: error
+!*****
+ INTEGER :: error_1, error_2
! INTEGER, EXTERNAL :: h5close_types_c, h5close_c
INTERFACE
INTEGER FUNCTION h5close_c()
@@ -198,33 +229,32 @@ CONTAINS
END SUBROUTINE h5close_f
-!----------------------------------------------------------------------
-! Name: h5get_libversion_f
-!
-! Purpose: Returns the HDF5 LIbrary release number
-!
-! Inputs:
-! Outputs:
-! majnum: - major version of the library
-! minum: - minor version of the library
-! relnum: - release version of the library
-! error: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! September 24, 2002
-!
-! Comment:
-!----------------------------------------------------------------------
-
+!****s* H5LIB/h5get_libversion_f
+!
+! NAME
+! h5get_libversion_f
+!
+! PURPOSE
+! Returns the HDF5 LIbrary release number
+!
+! OUTPUTS
+! majnum - major version of the library
+! minum - minor version of the library
+! relnum - release version of the library
+! error - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! September 24, 2002
+!
+! SOURCE
SUBROUTINE h5get_libversion_f(majnum, minnum, relnum, error)
USE H5GLOBAL
-
IMPLICIT NONE
INTEGER, INTENT(OUT) :: majnum, minnum, relnum, error
+!*****
INTERFACE
INTEGER FUNCTION h5get_libversion_c(majnum, minnum, relnum)
!DEC$IF DEFINED(HDF5F90_WINDOWS)
@@ -238,34 +268,34 @@ CONTAINS
END SUBROUTINE h5get_libversion_f
-!----------------------------------------------------------------------
-! Name: h5check_version_f
-!
-! Purpose: Verifies that library versions are consistent.
-!
-! Inputs:
-! majnum: - major version of the library
-! minum: - minor version of the library
-! relnum: - release version of the library
-! Outputs:
-! error: - error code
-! Success: 0
-! Failure: application aborts
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! September 24, 2002
-!
-! Comment:
-!----------------------------------------------------------------------
-
+!****s* H5LIB/h5check_version_f
+!
+! NAME
+! h5check_version_f
+!
+! PURPOSE
+! Verifies that library versions are consistent.
+!
+! INPUTS
+! majnum - major version of the library
+! minum - minor version of the library
+! relnum - release version of the library
+! OUTPUTS
+! error - error code
+! Success: 0
+! Failure: application aborts
+!
+! AUTHOR
+! Elena Pourmal
+! September 24, 2002
+!
+! SOURCE
SUBROUTINE h5check_version_f(majnum, minnum, relnum, error)
USE H5GLOBAL
-
IMPLICIT NONE
INTEGER, INTENT(IN) :: majnum, minnum, relnum
INTEGER, INTENT(OUT) :: error
+!*****
INTERFACE
INTEGER FUNCTION h5check_version_c(majnum, minnum, relnum)
!DEC$IF DEFINED(HDF5F90_WINDOWS)
@@ -278,32 +308,29 @@ CONTAINS
error = h5check_version_c(majnum, minnum, relnum)
END SUBROUTINE h5check_version_f
-
-!----------------------------------------------------------------------
-! Name: h5garbage_collect_f
+!****s* H5LIB/h5garbage_collect_f
!
-! Purpose: Garbage collects on all free-lists of all types.
+! NAME
+! h5garbage_collect_f
!
-! Inputs:
-! Outputs:
-! error: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! PURPOSE
+! Garbage collects on all free-lists of all types.
!
-! Programmer: Elena Pourmal
-! September 24, 2002
+! OUTPUTS
+! error - error code
+! Success: 0
+! Failure: -1
!
+! AUTHOR
+! Elena Pourmal
+! September 24, 2002
!
-! Comment:
-!----------------------------------------------------------------------
-
+! SOURCE
SUBROUTINE h5garbage_collect_f(error)
USE H5GLOBAL
-
IMPLICIT NONE
INTEGER, INTENT(OUT) :: error
+!*****
INTERFACE
INTEGER FUNCTION h5garbage_collect_c()
!DEC$IF DEFINED(HDF5F90_WINDOWS)
@@ -315,32 +342,29 @@ CONTAINS
error = h5garbage_collect_c()
END SUBROUTINE h5garbage_collect_f
-
-!----------------------------------------------------------------------
-! Name: h5dont_atexit_f
+!****s* H5LIB/h5dont_atexit_f
!
-! Purpose: Instructs library not to install atexit cleanup routine.
+! NAME
+! h5dont_atexit_f
!
-! Inputs:
-! Outputs:
-! error: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
+! PURPOSE
+! Instructs library not to install atexit cleanup routine.
!
-! Programmer: Elena Pourmal
-! September 24, 2002
+! OUTPUTS
+! error - error code
+! Success: 0
+! Failure: -1
!
+! AUTHOR
+! Elena Pourmal
+! September 24, 2002
!
-! Comment:
-!----------------------------------------------------------------------
-
+! SOURCE
SUBROUTINE h5dont_atexit_f(error)
USE H5GLOBAL
-
IMPLICIT NONE
INTEGER, INTENT(OUT) :: error
+!*****
INTERFACE
INTEGER FUNCTION h5dont_atexit_c()
!DEC$IF DEFINED(HDF5F90_WINDOWS)
@@ -352,4 +376,54 @@ CONTAINS
error = h5dont_atexit_c()
END SUBROUTINE h5dont_atexit_f
+
+!****f* H5LIB/h5kind_to_type
+!
+! NAME
+! h5kind_to_type
+!
+! PURPOSE
+! Converts the KIND to the correct HDF type
+!
+! INPUTS
+! kind - Fortran KIND parameter
+! flag - whether KIND is of type INTEGER or REAL:
+! H5_INTEGER_KIND - integer
+! H5_REAL_KIND - real
+! OUTPUTS
+! h5_type - returns the type
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! Augest 25, 2008
+!
+! SOURCE
+ INTEGER(HID_T) FUNCTION h5kind_to_type(kind, flag) RESULT(h5_type)
+ USE H5GLOBAL
+ IMPLICIT NONE
+ INTEGER, INTENT(IN) :: kind
+ INTEGER, INTENT(IN) :: flag
+!*****
+ IF(flag.EQ.H5_INTEGER_KIND)THEN
+ IF(kind.EQ.Fortran_INTEGER_1)THEN
+ h5_type = H5T_NATIVE_INTEGER_1
+ ELSE IF(kind.EQ.Fortran_INTEGER_2)THEN
+ h5_type = H5T_NATIVE_INTEGER_2
+ ELSE IF(kind.EQ.Fortran_INTEGER_4)THEN
+ h5_type = H5T_NATIVE_INTEGER_4
+ ELSE IF(kind.EQ.Fortran_INTEGER_8)THEN
+ h5_type = H5T_NATIVE_INTEGER_8
+ ENDIF
+ ELSE IF(flag.EQ.H5_REAL_KIND)THEN
+ IF(kind.EQ.Fortran_REAL_4)THEN
+ h5_type = H5T_NATIVE_REAL_4
+ ELSE IF(kind.EQ.Fortran_REAL_8)THEN
+ h5_type = H5T_NATIVE_REAL_8
+ ELSE IF(kind.EQ.Fortran_REAL_16)THEN
+ h5_type = H5T_NATIVE_REAL_16
+ ENDIF
+ ENDIF
+
+ END FUNCTION h5kind_to_type
+
END MODULE H5LIB
diff --git a/fortran/src/H5_ff_F03.f90 b/fortran/src/H5_ff_F03.f90
new file mode 100644
index 0000000..57b186d
--- /dev/null
+++ b/fortran/src/H5_ff_F03.f90
@@ -0,0 +1,72 @@
+!****h* ROBODoc/H5LIB_PROVISIONAL
+!
+! NAME
+! MODULE H5LIB_PROVISIONAL
+!
+! PURPOSE
+! This file contains helper functions for Fortran 2003 features and is
+! only compiled when Fortran 2003 features are enabled, otherwise
+! the file H5_ff_F90.f90 is compiled.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! NOTES
+! *** IMPORTANT ***
+! If you add a new function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
+!*****
+
+MODULE H5LIB_PROVISIONAL
+
+CONTAINS
+!****f* H5LIB_PROVISIONAL/h5offsetof
+!
+! NAME
+! h5offsetof
+!
+! PURPOSE
+! Computes the offset in memory
+!
+! INPUTS
+! start - starting pointer address
+! end - ending pointer address
+!
+! OUTPUTS
+! offset - offset
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! Augest 25, 2008
+!
+! SOURCE
+ FUNCTION h5offsetof(start,end) RESULT(offset)
+ USE, INTRINSIC :: ISO_C_BINDING
+ USE H5GLOBAL
+ IMPLICIT NONE
+ INTEGER(SIZE_T) :: offset
+ TYPE(C_PTR), VALUE, INTENT(IN) :: start, end
+!*****
+ INTEGER(C_INTPTR_T) :: int_address_start, int_address_end
+ int_address_start = TRANSFER(start, int_address_start)
+ int_address_end = TRANSFER(end , int_address_end )
+
+ offset = int_address_end - int_address_start
+
+ END FUNCTION h5offsetof
+
+END MODULE H5LIB_PROVISIONAL
diff --git a/fortran/src/H5_ff_F90.f90 b/fortran/src/H5_ff_F90.f90
new file mode 100644
index 0000000..a5d303a
--- /dev/null
+++ b/fortran/src/H5_ff_F90.f90
@@ -0,0 +1,34 @@
+!****h* ROBODoc/H5LIB_PROVISIONAL (F90)
+!
+! NAME
+! MODULE H5LIB_PROVISIONAL
+!
+! FILE
+! fortran/src/H5_ff_F90.f90
+!
+! PURPOSE
+! This file is a dummy module for when Fortran 2003 features are not enabled.
+! It is compiled in place of H5_ff_F03.f90 and is empty.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+!*****
+
+MODULE H5LIB_PROVISIONAL
+
+
+END MODULE H5LIB_PROVISIONAL
diff --git a/fortran/src/H5f90global.f90 b/fortran/src/H5f90global.f90
index 05ec366..da7a736 100644
--- a/fortran/src/H5f90global.f90
+++ b/fortran/src/H5f90global.f90
@@ -1,22 +1,25 @@
-!****h* fortran/src/H5f90global.f90
+!****h* ROBODoc/H5GLOBAL
!
! NAME
-! H5GLOBAL
+! MODULE H5GLOBAL
!
-! FUNCTION
-! This module is used to pass C stubs for H5 Fortran APIs. The C stubs are
-! packed into arrays in H5_f.c and these arrays are then passed to Fortran.
-! This module then uses EQUIVALENCE to assign elements of the arrays to
-! Fortran equivalent C stubs.
+! FILE
+! src/fortran/H5f90global.f90
+!
+! PURPOSE
+! This module is used to pass C stubs for H5 Fortran APIs. The C stubs are
+! packed into arrays in H5_f.c and these arrays are then passed to Fortran.
+! This module then uses EQUIVALENCE to assign elements of the arrays to
+! Fortran equivalent C stubs.
!
! NOTES
-! The size of the C arrays in H5_f.c have to match the values of the variables
-! declared as PARAMETER, hence if the size of an array in H5_f.c is changed
-! then the PARAMETER of that corresponding array in Fortran must also be changed.
+! The size of the C arrays in H5_f.c has to match the values of the variables
+! declared as PARAMETER, hence if the size of an array in H5_f.c is changed
+! then the PARAMETER of that corresponding array in Fortran must also be changed.
!
! USES
-! H5FORTRAN_TYPES - This module is generated at run time. See
-! H5fortran_types.f90 for further informaton.
+! H5FORTRAN_TYPES - This module is generated at run time. See
+!
! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
@@ -61,7 +64,7 @@ MODULE H5GLOBAL
INTEGER, DIMENSION(1:REF_REG_BUF_LEN) :: ref
END TYPE hdset_reg_ref_t_f
- INTEGER, PARAMETER :: PREDEF_TYPES_LEN = 13 ! Do not forget to change this
+ INTEGER, PARAMETER :: PREDEF_TYPES_LEN = 17 ! Do not forget to change this
! value when new predefined
! datatypes are added
@@ -71,7 +74,7 @@ MODULE H5GLOBAL
! Do not forget to change the following line when new predefined
! integer data types are added
- INTEGER, PARAMETER :: INTEGER_TYPES_LEN = 17
+ INTEGER, PARAMETER :: INTEGER_TYPES_LEN = 27
INTEGER(HID_T) H5T_NATIVE_INTEGER_1, &
H5T_NATIVE_INTEGER_2, &
@@ -106,7 +109,21 @@ MODULE H5GLOBAL
H5T_STD_U32LE, &
H5T_STD_U64BE, &
H5T_STD_U64LE, &
- H5T_STRING
+ H5T_STRING, &
+ H5T_STD_B8BE, &
+ H5T_STD_B8LE, &
+ H5T_STD_B16BE, &
+ H5T_STD_B16LE, &
+ H5T_STD_B32BE, &
+ H5T_STD_B32LE, &
+ H5T_STD_B64BE, &
+ H5T_STD_B64LE, &
+ H5T_NATIVE_B8, &
+ H5T_NATIVE_B16, &
+ H5T_NATIVE_B32, &
+ H5T_NATIVE_B64, &
+ H5T_FORTRAN_S1, &
+ H5T_C_S1
INTEGER(HID_T), DIMENSION(PREDEF_TYPES_LEN) :: predef_types
@@ -123,7 +140,10 @@ MODULE H5GLOBAL
EQUIVALENCE (predef_types(11), H5T_NATIVE_REAL_4)
EQUIVALENCE (predef_types(12), H5T_NATIVE_REAL_8)
EQUIVALENCE (predef_types(13), H5T_NATIVE_REAL_16)
-
+ EQUIVALENCE (predef_types(14), H5T_NATIVE_B8 )
+ EQUIVALENCE (predef_types(15), H5T_NATIVE_B16)
+ EQUIVALENCE (predef_types(16), H5T_NATIVE_B32)
+ EQUIVALENCE (predef_types(17), H5T_NATIVE_B64)
INTEGER(HID_T), DIMENSION(FLOATING_TYPES_LEN) :: floating_types
EQUIVALENCE (floating_types(1), H5T_IEEE_F32BE )
@@ -149,6 +169,16 @@ MODULE H5GLOBAL
EQUIVALENCE (integer_types(15), H5T_STD_U64BE)
EQUIVALENCE (integer_types(16), H5T_STD_U64LE)
EQUIVALENCE (integer_types(17), H5T_STRING)
+ EQUIVALENCE (integer_types(18), H5T_STD_B8BE)
+ EQUIVALENCE (integer_types(19), H5T_STD_B8LE)
+ EQUIVALENCE (integer_types(20), H5T_STD_B16BE)
+ EQUIVALENCE (integer_types(21), H5T_STD_B16LE)
+ EQUIVALENCE (integer_types(22), H5T_STD_B32BE)
+ EQUIVALENCE (integer_types(23), H5T_STD_B32LE)
+ EQUIVALENCE (integer_types(24), H5T_STD_B64BE)
+ EQUIVALENCE (integer_types(25), H5T_STD_B64LE)
+ EQUIVALENCE (integer_types(26), H5T_FORTRAN_S1)
+ EQUIVALENCE (integer_types(27), H5T_C_S1)
! COMMON /PREDEFINED_TYPES/ H5T_NATIVE_INTEGER, &
@@ -195,7 +225,7 @@ MODULE H5GLOBAL
! Fortran flags
!
!
- ! H5F flags (DO NOT FORGET TO UPDATE WHEN NEW FLAGS ARE ADDEDD !)
+ ! H5F flags (DO NOT FORGET TO UPDATE WHEN NEW FLAGS ARE ADDED !)
!
! H5F flags declaration
!
@@ -224,6 +254,7 @@ MODULE H5GLOBAL
INTEGER :: H5F_OBJ_ALL_F
INTEGER :: H5F_LIBVER_EARLIEST_F
INTEGER :: H5F_LIBVER_LATEST_F
+ INTEGER :: H5F_UNLIMITED_F
EQUIVALENCE(H5F_flags(1), H5F_ACC_RDWR_F)
EQUIVALENCE(H5F_flags(2), H5F_ACC_RDONLY_F)
@@ -243,6 +274,7 @@ MODULE H5GLOBAL
EQUIVALENCE(H5F_flags(16), H5F_OBJ_ALL_F)
EQUIVALENCE(H5F_flags(17), H5F_LIBVER_EARLIEST_F)
EQUIVALENCE(H5F_flags(18), H5F_LIBVER_LATEST_F)
+ EQUIVALENCE(H5F_flags(19), H5F_UNLIMITED_F)
!
! H5generic flags declaration
!
@@ -384,6 +416,32 @@ MODULE H5GLOBAL
EQUIVALENCE(H5D_flags(22), H5D_CHUNK_CACHE_W0_DFLT_F)
!
+ ! H5E flags declaration
+ !
+ INTEGER, PARAMETER :: H5E_FLAGS_LEN = 4
+ INTEGER H5E_flags(H5E_FLAGS_LEN)
+ INTEGER, PARAMETER :: H5E_HID_FLAGS_LEN = 1
+ INTEGER(HID_T) H5E_hid_flags(H5E_HID_FLAGS_LEN)
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$ATTRIBUTES DLLEXPORT :: /H5E_FLAGS/
+ !DEC$ATTRIBUTES DLLEXPORT :: /H5E_HID_FLAGS/
+ !DEC$endif
+ COMMON /H5E_FLAGS/ H5E_flags
+ COMMON /H5E_HID_FLAGS/ H5E_hid_flags
+
+ INTEGER(HID_T) :: H5E_DEFAULT_F
+ INTEGER :: H5E_MAJOR_F
+ INTEGER :: H5E_MINOR_F
+ INTEGER :: H5E_WALK_UPWARD_F
+ INTEGER :: H5E_WALK_DOWNWARD_F
+
+ EQUIVALENCE(H5E_hid_flags(1), H5E_DEFAULT_F)
+ EQUIVALENCE(H5E_flags(1) , H5E_MAJOR_F)
+ EQUIVALENCE(H5E_flags(2) , H5E_MINOR_F)
+ EQUIVALENCE(H5E_flags(3) , H5E_WALK_UPWARD_F)
+ EQUIVALENCE(H5E_flags(4) , H5E_WALK_DOWNWARD_F)
+
+ !
! H5FD flags declaration
!
INTEGER, PARAMETER :: H5FD_FLAGS_LEN = 11
@@ -501,10 +559,10 @@ MODULE H5GLOBAL
!DEC$endif
COMMON /H5O_FLAGS/ H5O_flags
- INTEGER :: H5O_COPY_SHALLOW_HIERARCHY_F ! * THESE VARIABLES DO
- INTEGER :: H5O_COPY_EXPAND_SOFT_LINK_F ! NOT MATCH THE C VARIABLE
- INTEGER :: H5O_COPY_EXPAND_EXT_LINK_F ! IN ORDER
- INTEGER :: H5O_COPY_EXPAND_REFERENCE_F ! TO STAY UNDER THE
+ INTEGER :: H5O_COPY_SHALLOW_HIERARCHY_F ! *** THESE VARIABLES DO
+ INTEGER :: H5O_COPY_EXPAND_SOFT_LINK_F ! NOT MATCH THE C VARIABLE
+ INTEGER :: H5O_COPY_EXPAND_EXT_LINK_F ! IN ORDER
+ INTEGER :: H5O_COPY_EXPAND_REFERENCE_F ! TO STAY UNDER THE
INTEGER :: H5O_COPY_WITHOUT_ATTR_FLAG_F
INTEGER :: H5O_COPY_PRESERVE_NULL_FLAG_F
INTEGER :: H5O_COPY_ALL_F
@@ -518,7 +576,7 @@ MODULE H5GLOBAL
INTEGER :: H5O_HDR_CHUNK0_SIZE_F
INTEGER :: H5O_HDR_ATTR_CRT_ORDER_TRACK_F ! 32 CHARACTER
INTEGER :: H5O_HDR_ATTR_CRT_ORDER_INDEX_F ! VARIABLE
- INTEGER :: H5O_HDR_ATTR_STORE_PHASE_CHA_F ! LENGTH *
+ INTEGER :: H5O_HDR_ATTR_STORE_PHASE_CHA_F ! LENGTH ***
INTEGER :: H5O_HDR_STORE_TIMES_F
INTEGER :: H5O_HDR_ALL_FLAGS_F
INTEGER :: H5O_SHMESG_MAX_NINDEXES_F
@@ -682,52 +740,51 @@ MODULE H5GLOBAL
EQUIVALENCE(H5S_flags(18), H5S_SEL_POINTS_F)
EQUIVALENCE(H5S_flags(19), H5S_SEL_HYPERSLABS_F)
EQUIVALENCE(H5S_flags(20), H5S_SEL_ALL_F)
-
-
!
! H5T flags declaration
!
- INTEGER, PARAMETER :: H5T_FLAGS_LEN = 34
+ INTEGER, PARAMETER :: H5T_FLAGS_LEN = 35
INTEGER H5T_flags(H5T_FLAGS_LEN)
!DEC$if defined(BUILD_HDF5_DLL)
!DEC$ATTRIBUTES DLLEXPORT :: /H5T_FLAGS/
!DEC$endif
COMMON /H5T_FLAGS/ H5T_flags
- INTEGER :: H5T_NO_CLASS_F
- INTEGER :: H5T_INTEGER_F
- INTEGER :: H5T_FLOAT_F
- INTEGER :: H5T_TIME_F
- INTEGER :: H5T_STRING_F
- INTEGER :: H5T_BITFIELD_F
- INTEGER :: H5T_OPAQUE_F
- INTEGER :: H5T_COMPOUND_F
- INTEGER :: H5T_REFERENCE_F
- INTEGER :: H5T_ENUM_F
- INTEGER :: H5T_VLEN_F
- INTEGER :: H5T_ARRAY_F
- INTEGER :: H5T_ORDER_LE_F
- INTEGER :: H5T_ORDER_BE_F
- INTEGER :: H5T_ORDER_VAX_F
- INTEGER :: H5T_ORDER_NONE_F
- INTEGER :: H5T_PAD_ZERO_F
- INTEGER :: H5T_PAD_ONE_F
- INTEGER :: H5T_PAD_BACKGROUND_F
- INTEGER :: H5T_PAD_ERROR_F
- INTEGER :: H5T_SGN_NONE_F
- INTEGER :: H5T_SGN_2_F
- INTEGER :: H5T_SGN_ERROR_F
- INTEGER :: H5T_NORM_IMPLIED_F
- INTEGER :: H5T_NORM_MSBSET_F
- INTEGER :: H5T_NORM_NONE_F
- INTEGER :: H5T_CSET_ASCII_F
- INTEGER :: H5T_CSET_UTF8_F
- INTEGER :: H5T_STR_NULLTERM_F
- INTEGER :: H5T_STR_NULLPAD_F
- INTEGER :: H5T_STR_SPACEPAD_F
- INTEGER :: H5T_STR_ERROR_F
- INTEGER :: H5T_DIR_ASCEND_F
- INTEGER :: H5T_DIR_DESCEND_F
+ INTEGER :: H5T_NO_CLASS_F
+ INTEGER :: H5T_INTEGER_F
+ INTEGER :: H5T_FLOAT_F
+ INTEGER :: H5T_TIME_F
+ INTEGER :: H5T_STRING_F
+ INTEGER :: H5T_BITFIELD_F
+ INTEGER :: H5T_OPAQUE_F
+ INTEGER :: H5T_COMPOUND_F
+ INTEGER :: H5T_REFERENCE_F
+ INTEGER :: H5T_ENUM_F
+ INTEGER :: H5T_VLEN_F
+ INTEGER :: H5T_ARRAY_F
+ INTEGER :: H5T_ORDER_LE_F
+ INTEGER :: H5T_ORDER_BE_F
+ INTEGER :: H5T_ORDER_VAX_F
+ INTEGER :: H5T_ORDER_NONE_F
+ INTEGER :: H5T_ORDER_MIXED_F
+ INTEGER :: H5T_PAD_ZERO_F
+ INTEGER :: H5T_PAD_ONE_F
+ INTEGER :: H5T_PAD_BACKGROUND_F
+ INTEGER :: H5T_PAD_ERROR_F
+ INTEGER :: H5T_SGN_NONE_F
+ INTEGER :: H5T_SGN_2_F
+ INTEGER :: H5T_SGN_ERROR_F
+ INTEGER :: H5T_NORM_IMPLIED_F
+ INTEGER :: H5T_NORM_MSBSET_F
+ INTEGER :: H5T_NORM_NONE_F
+ INTEGER :: H5T_CSET_ASCII_F
+ INTEGER :: H5T_CSET_UTF8_F
+ INTEGER :: H5T_STR_NULLTERM_F
+ INTEGER :: H5T_STR_NULLPAD_F
+ INTEGER :: H5T_STR_SPACEPAD_F
+ INTEGER :: H5T_STR_ERROR_F
+ INTEGER :: H5T_DIR_ASCEND_F
+ INTEGER :: H5T_DIR_DESCEND_F
EQUIVALENCE(H5T_flags(1), H5T_NO_CLASS_F)
EQUIVALENCE(H5T_flags(2), H5T_INTEGER_F)
@@ -741,33 +798,33 @@ MODULE H5GLOBAL
EQUIVALENCE(H5T_flags(10), H5T_ENUM_F)
EQUIVALENCE(H5T_flags(11), H5T_ORDER_LE_F)
EQUIVALENCE(H5T_flags(12), H5T_ORDER_BE_F)
- EQUIVALENCE(H5T_flags(13), H5T_ORDER_VAX_F)
- EQUIVALENCE(H5T_flags(14), H5T_ORDER_NONE_F)
- EQUIVALENCE(H5T_flags(15), H5T_PAD_ZERO_F)
- EQUIVALENCE(H5T_flags(16), H5T_PAD_ONE_F)
- EQUIVALENCE(H5T_flags(17), H5T_PAD_BACKGROUND_F)
- EQUIVALENCE(H5T_flags(18), H5T_PAD_ERROR_F)
- EQUIVALENCE(H5T_flags(19), H5T_SGN_NONE_F)
- EQUIVALENCE(H5T_flags(20), H5T_SGN_2_F)
- EQUIVALENCE(H5T_flags(21), H5T_SGN_ERROR_F)
- EQUIVALENCE(H5T_flags(22), H5T_NORM_IMPLIED_F)
- EQUIVALENCE(H5T_flags(23), H5T_NORM_MSBSET_F)
- EQUIVALENCE(H5T_flags(24), H5T_NORM_NONE_F)
- EQUIVALENCE(H5T_flags(25), H5T_CSET_ASCII_F)
- EQUIVALENCE(H5T_flags(26), H5T_CSET_UTF8_F)
- EQUIVALENCE(H5T_flags(27), H5T_STR_NULLTERM_F)
- EQUIVALENCE(H5T_flags(28), H5T_STR_NULLPAD_F)
- EQUIVALENCE(H5T_flags(29), H5T_STR_SPACEPAD_F)
- EQUIVALENCE(H5T_flags(30), H5T_STR_ERROR_F)
- EQUIVALENCE(H5T_flags(31), H5T_VLEN_F)
- EQUIVALENCE(H5T_flags(32), H5T_ARRAY_F)
- EQUIVALENCE(H5T_flags(33), H5T_DIR_ASCEND_F)
- EQUIVALENCE(H5T_flags(34), H5T_DIR_DESCEND_F)
-
+ EQUIVALENCE(H5T_flags(13), H5T_ORDER_MIXED_F)
+ EQUIVALENCE(H5T_flags(14), H5T_ORDER_VAX_F)
+ EQUIVALENCE(H5T_flags(15), H5T_ORDER_NONE_F)
+ EQUIVALENCE(H5T_flags(16), H5T_PAD_ZERO_F)
+ EQUIVALENCE(H5T_flags(17), H5T_PAD_ONE_F)
+ EQUIVALENCE(H5T_flags(18), H5T_PAD_BACKGROUND_F)
+ EQUIVALENCE(H5T_flags(19), H5T_PAD_ERROR_F)
+ EQUIVALENCE(H5T_flags(20), H5T_SGN_NONE_F)
+ EQUIVALENCE(H5T_flags(21), H5T_SGN_2_F)
+ EQUIVALENCE(H5T_flags(22), H5T_SGN_ERROR_F)
+ EQUIVALENCE(H5T_flags(23), H5T_NORM_IMPLIED_F)
+ EQUIVALENCE(H5T_flags(24), H5T_NORM_MSBSET_F)
+ EQUIVALENCE(H5T_flags(25), H5T_NORM_NONE_F)
+ EQUIVALENCE(H5T_flags(26), H5T_CSET_ASCII_F)
+ EQUIVALENCE(H5T_flags(27), H5T_CSET_UTF8_F)
+ EQUIVALENCE(H5T_flags(28), H5T_STR_NULLTERM_F)
+ EQUIVALENCE(H5T_flags(29), H5T_STR_NULLPAD_F)
+ EQUIVALENCE(H5T_flags(30), H5T_STR_SPACEPAD_F)
+ EQUIVALENCE(H5T_flags(31), H5T_STR_ERROR_F)
+ EQUIVALENCE(H5T_flags(32), H5T_VLEN_F)
+ EQUIVALENCE(H5T_flags(33), H5T_ARRAY_F)
+ EQUIVALENCE(H5T_flags(34), H5T_DIR_ASCEND_F)
+ EQUIVALENCE(H5T_flags(35), H5T_DIR_DESCEND_F)
!
! H5Z flags declaration
!
- INTEGER, PARAMETER :: H5Z_FLAGS_LEN = 14
+ INTEGER, PARAMETER :: H5Z_FLAGS_LEN = 20
INTEGER H5Z_flags(H5Z_FLAGS_LEN)
!DEC$if defined(BUILD_HDF5_DLL)
!DEC$ATTRIBUTES DLLEXPORT :: /H5Z_FLAGS/
@@ -788,6 +845,12 @@ MODULE H5GLOBAL
INTEGER :: H5Z_FLAG_OPTIONAL_F
INTEGER :: H5Z_FILTER_ENCODE_ENABLED_F
INTEGER :: H5Z_FILTER_DECODE_ENABLED_F
+ INTEGER :: H5Z_FILTER_NBIT_F
+ INTEGER :: H5Z_FILTER_SCALEOFFSET_F
+ INTEGER :: H5Z_SO_FLOAT_DSCALE_F
+ INTEGER :: H5Z_SO_FLOAT_ESCALE_F
+ INTEGER :: H5Z_SO_INT_F
+ INTEGER :: H5Z_SO_INT_MINBITS_DEFAULT_F
EQUIVALENCE(H5Z_flags(1), H5Z_FILTER_ERROR_F)
EQUIVALENCE(H5Z_flags(2), H5Z_FILTER_NONE_F)
@@ -803,7 +866,12 @@ MODULE H5GLOBAL
EQUIVALENCE(H5Z_flags(12), H5Z_FILTER_ENCODE_ENABLED_F)
EQUIVALENCE(H5Z_flags(13), H5Z_FILTER_DECODE_ENABLED_F)
EQUIVALENCE(H5Z_flags(14), H5Z_FILTER_ALL_F)
-
+ EQUIVALENCE(H5Z_flags(15), H5Z_FILTER_NBIT_F)
+ EQUIVALENCE(H5Z_flags(16), H5Z_FILTER_SCALEOFFSET_F)
+ EQUIVALENCE(H5Z_flags(17), H5Z_SO_FLOAT_DSCALE_F)
+ EQUIVALENCE(H5Z_flags(18), H5Z_SO_FLOAT_ESCALE_F)
+ EQUIVALENCE(H5Z_flags(19), H5Z_SO_INT_F)
+ EQUIVALENCE(H5Z_flags(20), H5Z_SO_INT_MINBITS_DEFAULT_F)
!
! H5 Library flags declaration
diff --git a/fortran/src/H5f90kit.c b/fortran/src/H5f90kit.c
index a809229..059685e 100644
--- a/fortran/src/H5f90kit.c
+++ b/fortran/src/H5f90kit.c
@@ -1,4 +1,12 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+/****h* H5f90kit/H5f90kit
+ * PURPOSE
+ * Routines from HDF4 to deal with C-FORTRAN issues:
+ *
+ * HD5f2cstring -- convert a Fortran string to a C string
+ * HD5packFstring -- convert a C string into a Fortran string
+ *
+ * COPYRIGHT
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
@@ -11,39 +19,33 @@
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ ******
+*/
#include <ctype.h>
#include <stddef.h>
#include "H5f90.h"
-
-/*
- * Routines from HDF4 to deal with C-FORTRAN issues.
- *
- * HD5f2cstring -- convert a Fortran string to a C string
- * HD5packFstring -- convert a C string into a Fortran string
+/****if* H5f90kit/HDf2cstring
+ * NAME
+ * HD5f2cstring -- convert a Fortran string to a C string
+ * char * HDf2cstring(fdesc, len)
+ * INPUTS
+ * _fcd fdesc; IN: Fortran string descriptor
+ * int len; IN: length of Fortran string
+ * RETURNS
+ * Pointer to the C string if success, else NULL
+ * PURPOSE
+ * Chop off trailing blanks off of a Fortran string and
+ * move it into a newly allocated C string. It is up
+ * to the user to free this string.
+ * SOURCE
*/
-
-/* ----------------------------- HDf2cstring ------------------------------ */
-/*
-NAME
- HD5f2cstring -- convert a Fortran string to a C string
-USAGE
- char * HDf2cstring(fdesc, len)
- _fcd fdesc; IN: Fortran string descriptor
- int len; IN: length of Fortran string
-RETURNS
- Pointer to the C string if success, else NULL
-DESCRIPTION
- Chop off trailing blanks off of a Fortran string and
- move it into a newly allocated C string. It is up
- to the user to free this string.
-
----------------------------------------------------------------------------*/
char *
HD5f2cstring(_fcd fdesc, size_t len)
+/******/
{
char *cstr; /* C string to return */
char *str; /* Pointer to FORTRAN string */
@@ -67,28 +69,29 @@ HD5f2cstring(_fcd fdesc, size_t len)
return cstr;
} /* HD5f2cstring */
-/* ---------------------------- HD5packFstring ----------------------------- */
-/*
-NAME
- HD5packFstring -- convert a C string into a Fortran string
-USAGE
- int HD5packFstring(src, dest, len)
- char * src; IN: source string
- char * dest; OUT: destination
- int len; IN: length of string
-RETURNS
- SUCCEED / FAIL
-DESCRIPTION
- given a NULL terminated C string 'src' convert it to
- a space padded Fortran string 'dest' of length 'len'
-
- This is very similar to HDc2fstr except that function does
- it in place and this one copies. We should probably only
- support one of these.
-
----------------------------------------------------------------------------*/
+/****if* H5f90kit/HD5packFstring
+ * NAME
+ * HD5packFstring -- convert a C string into a Fortran string
+ * int HD5packFstring(src, dest, len)
+ * INPUTS
+ * char * src; IN: source string
+ * int len; IN: length of string
+ * OUTPUTS
+ * char * dest; OUT: destination
+ * RETURNS
+ * SUCCEED / FAIL
+ * PURPOSE
+ * given a NULL terminated C string 'src' convert it to
+ * a space padded Fortran string 'dest' of length 'len'
+ *
+ * This is very similar to HDc2fstr except that function does
+ * it in place and this one copies. We should probably only
+ * support one of these.
+ * SOURCE
+ */
void
HD5packFstring(char *src, char *dest, size_t dst_len)
+/******/
{
size_t src_len=HDstrlen(src);
@@ -99,5 +102,6 @@ HD5packFstring(char *src, char *dest, size_t dst_len)
/* Pad out any remaining space in the FORTRAN string with ' 's */
if(src_len<dst_len)
HDmemset(&dest[src_len],' ',dst_len-src_len);
+
} /* HD5packFstring */
diff --git a/fortran/src/H5f90proto.h b/fortran/src/H5f90proto.h
index 75378f6..7f45ff9 100644
--- a/fortran/src/H5f90proto.h
+++ b/fortran/src/H5f90proto.h
@@ -29,21 +29,21 @@ H5_FCDLL void HD5packFstring(char *src, char *dest, size_t len);
/*
* Functions from H5Ff.c
*/
-# define nh5fcreate_c H5_FC_FUNC_(h5fcreate_c, H5FCREATE_C)
-# define nh5fflush_c H5_FC_FUNC_(h5fflush_c, H5FFLUSH_C)
-# define nh5fclose_c H5_FC_FUNC_(h5fclose_c, H5FCLOSE_C)
-# define nh5fopen_c H5_FC_FUNC_(h5fopen_c, H5FOPEN_C)
-# define nh5fis_hdf5_c H5_FC_FUNC_(h5fis_hdf5_c, H5FIS_HDF5_C)
-# define nh5fmount_c H5_FC_FUNC_(h5fmount_c, H5FMOUNT_C)
-# define nh5funmount_c H5_FC_FUNC_(h5funmount_c, H5FUNMOUNT_C)
-# define nh5freopen_c H5_FC_FUNC_(h5freopen_c, H5FREOPEN_C)
-# define nh5fget_create_plist_c H5_FC_FUNC_(h5fget_create_plist_c, H5FGET_CREATE_PLIST_C)
-# define nh5fget_access_plist_c H5_FC_FUNC_(h5fget_access_plist_c, H5FGET_ACCESS_PLIST_C)
-# define nh5fget_obj_count_c H5_FC_FUNC_(h5fget_obj_count_c, H5FGET_OBJ_COUNT_C)
-# define nh5fget_obj_ids_c H5_FC_FUNC_(h5fget_obj_ids_c, H5FGET_OBJ_IDS_C)
-# define nh5fget_freespace_c H5_FC_FUNC_(h5fget_freespace_c, H5FGET_FREESPACE_C)
-# define nh5fget_name_c H5_FC_FUNC_(h5fget_name_c, H5FGET_NAME_C)
-# define nh5fget_filesize_c H5_FC_FUNC_(h5fget_filesize_c, H5FGET_FILESIZE_C)
+#define nh5fcreate_c H5_FC_FUNC_(h5fcreate_c, H5FCREATE_C)
+#define nh5fflush_c H5_FC_FUNC_(h5fflush_c, H5FFLUSH_C)
+#define nh5fclose_c H5_FC_FUNC_(h5fclose_c, H5FCLOSE_C)
+#define nh5fopen_c H5_FC_FUNC_(h5fopen_c, H5FOPEN_C)
+#define nh5fis_hdf5_c H5_FC_FUNC_(h5fis_hdf5_c, H5FIS_HDF5_C)
+#define nh5fmount_c H5_FC_FUNC_(h5fmount_c, H5FMOUNT_C)
+#define nh5funmount_c H5_FC_FUNC_(h5funmount_c, H5FUNMOUNT_C)
+#define nh5freopen_c H5_FC_FUNC_(h5freopen_c, H5FREOPEN_C)
+#define nh5fget_create_plist_c H5_FC_FUNC_(h5fget_create_plist_c, H5FGET_CREATE_PLIST_C)
+#define nh5fget_access_plist_c H5_FC_FUNC_(h5fget_access_plist_c, H5FGET_ACCESS_PLIST_C)
+#define nh5fget_obj_count_c H5_FC_FUNC_(h5fget_obj_count_c, H5FGET_OBJ_COUNT_C)
+#define nh5fget_obj_ids_c H5_FC_FUNC_(h5fget_obj_ids_c, H5FGET_OBJ_IDS_C)
+#define nh5fget_freespace_c H5_FC_FUNC_(h5fget_freespace_c, H5FGET_FREESPACE_C)
+#define nh5fget_name_c H5_FC_FUNC_(h5fget_name_c, H5FGET_NAME_C)
+#define nh5fget_filesize_c H5_FC_FUNC_(h5fget_filesize_c, H5FGET_FILESIZE_C)
H5_FCDLL int_f nh5fcreate_c (_fcd name, int_f *namelen, int_f *access_flags, hid_t_f *crt_prp, hid_t_f *acc_prp, hid_t_f *file_id);
H5_FCDLL int_f nh5fopen_c (_fcd name, int_f *namelen, int_f *access_flags, hid_t_f *acc_prp, hid_t_f *file_id);
@@ -64,38 +64,38 @@ H5_FCDLL int_f nh5fget_filesize_c(hid_t_f *file_id, hsize_t_f *size);
/*
* Functions from H5Sf.c
*/
-# define nh5screate_simple_c H5_FC_FUNC_(h5screate_simple_c, H5SCREATE_SIMPLE_C)
-# define nh5sclose_c H5_FC_FUNC_(h5sclose_c, H5SCLOSE_C)
-# define nh5screate_c H5_FC_FUNC_(h5screate_c, H5SCREATE_C)
-# define nh5scopy_c H5_FC_FUNC_(h5scopy_c, H5SCOPY_C)
-# define nh5sget_select_hyper_nblocks_c H5_FC_FUNC_(h5sget_select_hyper_nblocks_c, H5SGET_SELECT_HYPER_NBLOCKS_C)
-# define nh5sget_select_hyper_blocklist_c H5_FC_FUNC_(h5sget_select_hyper_blocklist_c, H5SGET_SELECT_HYPER_BLOCKLIST_C)
-# define nh5sget_select_elem_npoints_c H5_FC_FUNC_(h5sget_select_elem_npoints_c, H5SGET_SELECT_ELEM_NPOINTS_C)
-# define nh5sget_select_elem_pointlist_c H5_FC_FUNC_(h5sget_select_elem_pointlist_c, H5SGET_SELECT_ELEM_POINTLIST_C)
-# define nh5sget_select_bounds_c H5_FC_FUNC_(h5sget_select_bounds_c, H5SGET_SELECT_BOUNDS_C)
-# define nh5sselect_all_c H5_FC_FUNC_(h5sselect_all_c, H5SSELECT_ALL_C)
-# define nh5sselect_none_c H5_FC_FUNC_(h5sselect_none_c, H5SSELECT_NONE_C)
-# define nh5sselect_valid_c H5_FC_FUNC_(h5sselect_valid_c, H5SSELECT_VALID_C)
-# define nh5sget_simple_extent_npoints_c H5_FC_FUNC_(h5sget_simple_extent_npoints_c, H5SGET_SIMPLE_EXTENT_NPOINTS_C)
-# define nh5sget_select_npoints_c H5_FC_FUNC_(h5sget_select_npoints_c, H5SGET_SELECT_NPOINTS_C)
-# define nh5sget_simple_extent_ndims_c H5_FC_FUNC_(h5sget_simple_extent_ndims_c, H5SGET_SIMPLE_EXTENT_NDIMS_C)
-# define nh5sget_simple_extent_type_c H5_FC_FUNC_(h5sget_simple_extent_type_c, H5SGET_SIMPLE_EXTENT_TYPE_C)
-# define nh5soffset_simple_c H5_FC_FUNC_(h5soffset_simple_c, H5SOFFSET_SIMPLE_C)
-# define nh5sset_extent_simple_c H5_FC_FUNC_(h5sset_extent_simple_c, H5SSET_EXTENT_SIMPLE_C)
-# define nh5sis_simple_c H5_FC_FUNC_(h5sis_simple_c, H5SIS_SIMPLE_C)
-# define nh5sextent_class_c H5_FC_FUNC_(h5sextent_class_c, H5SEXTENT_CLASS_C)
-# define nh5sget_simple_extent_dims_c H5_FC_FUNC_(h5sget_simple_extent_dims_c, H5SGET_SIMPLE_EXTENT_DIMS_C)
-# define nh5sextent_copy_c H5_FC_FUNC_(h5sextent_copy_c, H5SEXTENT_COPY_C)
-# define nh5sset_extent_none_c H5_FC_FUNC_(h5sset_extent_none_c, H5SSET_EXTENT_NONE_C)
-# define nh5sselect_hyperslab_c H5_FC_FUNC_(h5sselect_hyperslab_c, H5SSELECT_HYPERSLAB_C)
-# define nh5scombine_hyperslab_c H5_FC_FUNC_(h5scombine_hyperslab_c, H5SCOMBINE_HYPERSLAB_C)
-# define nh5scombine_select_c H5_FC_FUNC_(h5scombine_select_c, H5SCOMBINE_SELECT_C)
-# define nh5sselect_select_c H5_FC_FUNC_(h5sselect_select_c, H5SSELECT_SELECT_C)
-# define nh5sget_select_type_c H5_FC_FUNC_(h5sget_select_type_c, H5SGET_SELECT_TYPE_C)
-# define nh5sselect_elements_c H5_FC_FUNC_(h5sselect_elements_c, H5SSELECT_ELEMENTS_C)
-# define nh5sdecode_c H5_FC_FUNC_(h5sdecode_c, H5SDECODE_C)
-# define nh5sencode_c H5_FC_FUNC_(h5sencode_c, H5SENCODE_C)
-# define nh5sextent_equal_c H5_FC_FUNC_(h5sextent_equal_c, H5SEXTENT_EQUAL_C)
+#define nh5screate_simple_c H5_FC_FUNC_(h5screate_simple_c, H5SCREATE_SIMPLE_C)
+#define nh5sclose_c H5_FC_FUNC_(h5sclose_c, H5SCLOSE_C)
+#define nh5screate_c H5_FC_FUNC_(h5screate_c, H5SCREATE_C)
+#define nh5scopy_c H5_FC_FUNC_(h5scopy_c, H5SCOPY_C)
+#define nh5sget_select_hyper_nblocks_c H5_FC_FUNC_(h5sget_select_hyper_nblocks_c, H5SGET_SELECT_HYPER_NBLOCKS_C)
+#define nh5sget_select_hyper_blocklist_c H5_FC_FUNC_(h5sget_select_hyper_blocklist_c, H5SGET_SELECT_HYPER_BLOCKLIST_C)
+#define nh5sget_select_elem_npoints_c H5_FC_FUNC_(h5sget_select_elem_npoints_c, H5SGET_SELECT_ELEM_NPOINTS_C)
+#define nh5sget_select_elem_pointlist_c H5_FC_FUNC_(h5sget_select_elem_pointlist_c, H5SGET_SELECT_ELEM_POINTLIST_C)
+#define nh5sget_select_bounds_c H5_FC_FUNC_(h5sget_select_bounds_c, H5SGET_SELECT_BOUNDS_C)
+#define nh5sselect_all_c H5_FC_FUNC_(h5sselect_all_c, H5SSELECT_ALL_C)
+#define nh5sselect_none_c H5_FC_FUNC_(h5sselect_none_c, H5SSELECT_NONE_C)
+#define nh5sselect_valid_c H5_FC_FUNC_(h5sselect_valid_c, H5SSELECT_VALID_C)
+#define nh5sget_simple_extent_npoints_c H5_FC_FUNC_(h5sget_simple_extent_npoints_c, H5SGET_SIMPLE_EXTENT_NPOINTS_C)
+#define nh5sget_select_npoints_c H5_FC_FUNC_(h5sget_select_npoints_c, H5SGET_SELECT_NPOINTS_C)
+#define nh5sget_simple_extent_ndims_c H5_FC_FUNC_(h5sget_simple_extent_ndims_c, H5SGET_SIMPLE_EXTENT_NDIMS_C)
+#define nh5sget_simple_extent_type_c H5_FC_FUNC_(h5sget_simple_extent_type_c, H5SGET_SIMPLE_EXTENT_TYPE_C)
+#define nh5soffset_simple_c H5_FC_FUNC_(h5soffset_simple_c, H5SOFFSET_SIMPLE_C)
+#define nh5sset_extent_simple_c H5_FC_FUNC_(h5sset_extent_simple_c, H5SSET_EXTENT_SIMPLE_C)
+#define nh5sis_simple_c H5_FC_FUNC_(h5sis_simple_c, H5SIS_SIMPLE_C)
+#define nh5sextent_class_c H5_FC_FUNC_(h5sextent_class_c, H5SEXTENT_CLASS_C)
+#define nh5sget_simple_extent_dims_c H5_FC_FUNC_(h5sget_simple_extent_dims_c, H5SGET_SIMPLE_EXTENT_DIMS_C)
+#define nh5sextent_copy_c H5_FC_FUNC_(h5sextent_copy_c, H5SEXTENT_COPY_C)
+#define nh5sset_extent_none_c H5_FC_FUNC_(h5sset_extent_none_c, H5SSET_EXTENT_NONE_C)
+#define nh5sselect_hyperslab_c H5_FC_FUNC_(h5sselect_hyperslab_c, H5SSELECT_HYPERSLAB_C)
+#define nh5scombine_hyperslab_c H5_FC_FUNC_(h5scombine_hyperslab_c, H5SCOMBINE_HYPERSLAB_C)
+#define nh5scombine_select_c H5_FC_FUNC_(h5scombine_select_c, H5SCOMBINE_SELECT_C)
+#define nh5sselect_select_c H5_FC_FUNC_(h5sselect_select_c, H5SSELECT_SELECT_C)
+#define nh5sget_select_type_c H5_FC_FUNC_(h5sget_select_type_c, H5SGET_SELECT_TYPE_C)
+#define nh5sselect_elements_c H5_FC_FUNC_(h5sselect_elements_c, H5SSELECT_ELEMENTS_C)
+#define nh5sdecode_c H5_FC_FUNC_(h5sdecode_c, H5SDECODE_C)
+#define nh5sencode_c H5_FC_FUNC_(h5sencode_c, H5SENCODE_C)
+#define nh5sextent_equal_c H5_FC_FUNC_(h5sextent_equal_c, H5SEXTENT_EQUAL_C)
H5_FCDLL int_f nh5screate_simple_c ( int_f *rank, hsize_t_f *dims, hsize_t_f *maxdims, hid_t_f *space_id );
H5_FCDLL int_f nh5sclose_c ( hid_t_f *space_id );
@@ -133,103 +133,106 @@ H5_FCDLL int_f nh5sextent_equal_c ( hid_t_f * space1_id, hid_t_f *space2_id, hid
/*
* Functions from H5Df.c
*/
-# define nh5dcreate_c H5_FC_FUNC_(h5dcreate_c, H5DCREATE_C)
-# define nh5dclose_c H5_FC_FUNC_(h5dclose_c, H5DCLOSE_C)
-# define nh5dopen_c H5_FC_FUNC_(h5dopen_c, H5DOPEN_C)
-# define nh5dwrite_c H5_FC_FUNC_(h5dwrite_c, H5DWRITE_C)
-# define nh5dwrite_integer_s_c H5_FC_FUNC_(h5dwrite_integer_s_c, H5DWRITE_INTEGER_S_C)
-# define nh5dwrite_integer_1_c H5_FC_FUNC_(h5dwrite_integer_1_c, H5DWRITE_INTEGER_1_C)
-# define nh5dwrite_integer_2_c H5_FC_FUNC_(h5dwrite_integer_2_c, H5DWRITE_INTEGER_2_C)
-# define nh5dwrite_integer_3_c H5_FC_FUNC_(h5dwrite_integer_3_c, H5DWRITE_INTEGER_3_C)
-# define nh5dwrite_integer_4_c H5_FC_FUNC_(h5dwrite_integer_4_c, H5DWRITE_INTEGER_4_C)
-# define nh5dwrite_integer_5_c H5_FC_FUNC_(h5dwrite_integer_5_c, H5DWRITE_INTEGER_5_C)
-# define nh5dwrite_integer_6_c H5_FC_FUNC_(h5dwrite_integer_6_c, H5DWRITE_INTEGER_6_C)
-# define nh5dwrite_integer_7_c H5_FC_FUNC_(h5dwrite_integer_7_c, H5DWRITE_INTEGER_7_C)
-# define nh5dwrite_real_s_c H5_FC_FUNC_(h5dwrite_real_s_c, H5DWRITE_REAL_S_C)
-# define nh5dwrite_real_1_c H5_FC_FUNC_(h5dwrite_real_1_c, H5DWRITE_REAL_1_C)
-# define nh5dwrite_real_2_c H5_FC_FUNC_(h5dwrite_real_2_c, H5DWRITE_REAL_2_C)
-# define nh5dwrite_real_3_c H5_FC_FUNC_(h5dwrite_real_3_c, H5DWRITE_REAL_3_C)
-# define nh5dwrite_real_4_c H5_FC_FUNC_(h5dwrite_real_4_c, H5DWRITE_REAL_4_C)
-# define nh5dwrite_real_5_c H5_FC_FUNC_(h5dwrite_real_5_c, H5DWRITE_REAL_5_C)
-# define nh5dwrite_real_6_c H5_FC_FUNC_(h5dwrite_real_6_c, H5DWRITE_REAL_6_C)
-# define nh5dwrite_real_7_c H5_FC_FUNC_(h5dwrite_real_7_c, H5DWRITE_REAL_7_C)
-# define nh5dwrite_double_s_c H5_FC_FUNC_(h5dwrite_double_s_c, H5DWRITE_DOUBLE_S_C)
-# define nh5dwrite_double_1_c H5_FC_FUNC_(h5dwrite_double_1_c, H5DWRITE_DOUBLE_1_C)
-# define nh5dwrite_double_2_c H5_FC_FUNC_(h5dwrite_double_2_c, H5DWRITE_DOUBLE_2_C)
-# define nh5dwrite_double_3_c H5_FC_FUNC_(h5dwrite_double_3_c, H5DWRITE_DOUBLE_3_C)
-# define nh5dwrite_double_4_c H5_FC_FUNC_(h5dwrite_double_4_c, H5DWRITE_DOUBLE_4_C)
-# define nh5dwrite_double_5_c H5_FC_FUNC_(h5dwrite_double_5_c, H5DWRITE_DOUBLE_5_C)
-# define nh5dwrite_double_6_c H5_FC_FUNC_(h5dwrite_double_6_c, H5DWRITE_DOUBLE_6_C)
-# define nh5dwrite_double_7_c H5_FC_FUNC_(h5dwrite_double_7_c, H5DWRITE_DOUBLE_7_C)
-# define nh5dwrite_ref_obj_c H5_FC_FUNC_(h5dwrite_ref_obj_c, H5DWRITE_REF_OBJ_C)
-# define nh5dwrite_ref_reg_c H5_FC_FUNC_(h5dwrite_ref_reg_c, H5DWRITE_REF_REG_C)
-# define nh5dwritec_c H5_FC_FUNC_(h5dwritec_c, H5DWRITEC_C)
-# define nh5dwritec_s_c H5_FC_FUNC_(h5dwritec_s_c, H5DWRITEC_S_C)
-# define nh5dwritec_1_c H5_FC_FUNC_(h5dwritec_1_c, H5DWRITEC_1_C)
-# define nh5dwritec_2_c H5_FC_FUNC_(h5dwritec_2_c, H5DWRITEC_2_C)
-# define nh5dwritec_3_c H5_FC_FUNC_(h5dwritec_3_c, H5DWRITEC_3_C)
-# define nh5dwritec_4_c H5_FC_FUNC_(h5dwritec_4_c, H5DWRITEC_4_C)
-# define nh5dwritec_5_c H5_FC_FUNC_(h5dwritec_5_c, H5DWRITEC_5_C)
-# define nh5dwritec_6_c H5_FC_FUNC_(h5dwritec_6_c, H5DWRITEC_6_C)
-# define nh5dwritec_7_c H5_FC_FUNC_(h5dwritec_7_c, H5DWRITEC_7_C)
-# define nh5dread_c H5_FC_FUNC_(h5dread_c, H5DREAD_C)
-# define nh5dread_integer_s_c H5_FC_FUNC_(h5dread_integer_s_c, H5DREAD_INTEGER_S_C)
-# define nh5dread_integer_1_c H5_FC_FUNC_(h5dread_integer_1_c, H5DREAD_INTEGER_1_C)
-# define nh5dread_integer_2_c H5_FC_FUNC_(h5dread_integer_2_c, H5DREAD_INTEGER_2_C)
-# define nh5dread_integer_3_c H5_FC_FUNC_(h5dread_integer_3_c, H5DREAD_INTEGER_3_C)
-# define nh5dread_integer_4_c H5_FC_FUNC_(h5dread_integer_4_c, H5DREAD_INTEGER_4_C)
-# define nh5dread_integer_5_c H5_FC_FUNC_(h5dread_integer_5_c, H5DREAD_INTEGER_5_C)
-# define nh5dread_integer_6_c H5_FC_FUNC_(h5dread_integer_6_c, H5DREAD_INTEGER_6_C)
-# define nh5dread_integer_7_c H5_FC_FUNC_(h5dread_integer_7_c, H5DREAD_INTEGER_7_C)
-# define nh5dread_real_s_c H5_FC_FUNC_(h5dread_real_s_c, H5DREAD_REAL_S_C)
-# define nh5dread_real_1_c H5_FC_FUNC_(h5dread_real_1_c, H5DREAD_REAL_1_C)
-# define nh5dread_real_2_c H5_FC_FUNC_(h5dread_real_2_c, H5DREAD_REAL_2_C)
-# define nh5dread_real_3_c H5_FC_FUNC_(h5dread_real_3_c, H5DREAD_REAL_3_C)
-# define nh5dread_real_4_c H5_FC_FUNC_(h5dread_real_4_c, H5DREAD_REAL_4_C)
-# define nh5dread_real_5_c H5_FC_FUNC_(h5dread_real_5_c, H5DREAD_REAL_5_C)
-# define nh5dread_real_6_c H5_FC_FUNC_(h5dread_real_6_c, H5DREAD_REAL_6_C)
-# define nh5dread_real_7_c H5_FC_FUNC_(h5dread_real_7_c, H5DREAD_REAL_7_C)
-# define nh5dread_double_s_c H5_FC_FUNC_(h5dread_double_s_c, H5DREAD_DOUBLE_S_C)
-# define nh5dread_double_1_c H5_FC_FUNC_(h5dread_double_1_c, H5DREAD_DOUBLE_1_C)
-# define nh5dread_double_2_c H5_FC_FUNC_(h5dread_double_2_c, H5DREAD_DOUBLE_2_C)
-# define nh5dread_double_3_c H5_FC_FUNC_(h5dread_double_3_c, H5DREAD_DOUBLE_3_C)
-# define nh5dread_double_4_c H5_FC_FUNC_(h5dread_double_4_c, H5DREAD_DOUBLE_4_C)
-# define nh5dread_double_5_c H5_FC_FUNC_(h5dread_double_5_c, H5DREAD_DOUBLE_5_C)
-# define nh5dread_double_6_c H5_FC_FUNC_(h5dread_double_6_c, H5DREAD_DOUBLE_6_C)
-# define nh5dread_double_7_c H5_FC_FUNC_(h5dread_double_7_c, H5DREAD_DOUBLE_7_C)
-# define nh5dread_c_b H5_FC_FUNC_(h5dread_c_b, H5DREAD_C_B)
-# define nh5dread_ref_reg_c H5_FC_FUNC_(h5dread_ref_reg_c, H5DREAD_REF_REG_C)
-# define nh5dread_ref_obj_c H5_FC_FUNC_(h5dread_ref_obj_c, H5DREAD_REF_OBJ_C)
-# define nh5dreadc_c H5_FC_FUNC_(h5dreadc_c, H5DREADC_C)
-# define nh5dreadc_s_c H5_FC_FUNC_(h5dreadc_s_c, H5DREADC_S_C)
-# define nh5dreadc_1_c H5_FC_FUNC_(h5dreadc_1_c, H5DREADC_1_C)
-# define nh5dreadc_2_c H5_FC_FUNC_(h5dreadc_2_c, H5DREADC_2_C)
-# define nh5dreadc_3_c H5_FC_FUNC_(h5dreadc_3_c, H5DREADC_3_C)
-# define nh5dreadc_4_c H5_FC_FUNC_(h5dreadc_4_c, H5DREADC_4_C)
-# define nh5dreadc_5_c H5_FC_FUNC_(h5dreadc_5_c, H5DREADC_5_C)
-# define nh5dreadc_6_c H5_FC_FUNC_(h5dreadc_6_c, H5DREADC_6_C)
-# define nh5dreadc_7_c H5_FC_FUNC_(h5dreadc_7_c, H5DREADC_7_C)
-# define nh5dreadc_c_b H5_FC_FUNC_(h5dreadc_c_b, H5DREADC_C_B)
-# define nh5dget_space_c H5_FC_FUNC_(h5dget_space_c, H5DGET_SPACE_C)
-# define nh5dget_type_c H5_FC_FUNC_(h5dget_type_c, H5DGET_TYPE_C)
-# define nh5dget_create_plist_c H5_FC_FUNC_(h5dget_create_plist_c, H5DGET_CREATE_PLIST_C)
-# define nh5dset_extent_c H5_FC_FUNC_(h5dset_extent_c, H5DSET_EXTENT_C)
-# define nh5dget_storage_size_c H5_FC_FUNC_(h5dget_storage_size_c, H5DGET_STORAGE_SIZE_C)
-# define nh5dvlen_get_max_len_c H5_FC_FUNC_(h5dvlen_get_max_len_c, H5DVLEN_GET_MAX_LEN_C)
-# define nh5dwrite_vl_integer_c H5_FC_FUNC_(h5dwrite_vl_integer_c, H5DWRITE_VL_INTEGER_C)
-# define nh5dread_vl_integer_c H5_FC_FUNC_(h5dread_vl_integer_c, H5DREAD_VL_INTEGER_C)
-# define nh5dwrite_vl_real_c H5_FC_FUNC_(h5dwrite_vl_real_c, H5DWRITE_VL_REAL_C)
-# define nh5dread_vl_real_c H5_FC_FUNC_(h5dread_vl_real_c, H5DREAD_VL_REAL_C)
-# define nh5dwrite_vl_string_c H5_FC_FUNC_(h5dwrite_vl_string_c, H5DWRITE_VL_STRING_C)
-# define nh5dread_vl_string_c H5_FC_FUNC_(h5dread_vl_string_c, H5DREAD_VL_STRING_C)
-# define nh5dfillc_c H5_FC_FUNC_(h5dfillc_c, H5DFILLC_C)
-# define nh5dfill_c H5_FC_FUNC_(h5dfill_c, H5DFILL_C)
-# define nh5dfill_integer_c H5_FC_FUNC_(h5dfill_integer_c, H5DFILL_INTEGER_C)
-# define nh5dfill_real_c H5_FC_FUNC_(h5dfill_real_c, H5DFILL_REAL_C)
-# define nh5dfill_double_c H5_FC_FUNC_(h5dfill_double_c, H5DFILL_DOUBLE_C)
-# define nh5dget_space_status_c H5_FC_FUNC_(h5dget_space_status_c, H5DGET_SPACE_STATUS_C)
-# define nh5dcreate_anon_c H5_FC_FUNC_(h5dcreate_anon_c, H5DCREATE_ANON_C)
-# define nh5dget_access_plist_c H5_FC_FUNC_(h5dget_access_plist_c, H5DGET_ACCESS_PLIST_C)
+#define nh5dcreate_c H5_FC_FUNC_(h5dcreate_c, H5DCREATE_C)
+#define nh5dclose_c H5_FC_FUNC_(h5dclose_c, H5DCLOSE_C)
+#define nh5dopen_c H5_FC_FUNC_(h5dopen_c, H5DOPEN_C)
+#define nh5dwrite_c H5_FC_FUNC_(h5dwrite_c, H5DWRITE_C)
+#define nh5dwrite_integer_s_c H5_FC_FUNC_(h5dwrite_integer_s_c, H5DWRITE_INTEGER_S_C)
+#define nh5dwrite_integer_1_c H5_FC_FUNC_(h5dwrite_integer_1_c, H5DWRITE_INTEGER_1_C)
+#define nh5dwrite_integer_2_c H5_FC_FUNC_(h5dwrite_integer_2_c, H5DWRITE_INTEGER_2_C)
+#define nh5dwrite_integer_3_c H5_FC_FUNC_(h5dwrite_integer_3_c, H5DWRITE_INTEGER_3_C)
+#define nh5dwrite_integer_4_c H5_FC_FUNC_(h5dwrite_integer_4_c, H5DWRITE_INTEGER_4_C)
+#define nh5dwrite_integer_5_c H5_FC_FUNC_(h5dwrite_integer_5_c, H5DWRITE_INTEGER_5_C)
+#define nh5dwrite_integer_6_c H5_FC_FUNC_(h5dwrite_integer_6_c, H5DWRITE_INTEGER_6_C)
+#define nh5dwrite_integer_7_c H5_FC_FUNC_(h5dwrite_integer_7_c, H5DWRITE_INTEGER_7_C)
+#define nh5dwrite_real_s_c H5_FC_FUNC_(h5dwrite_real_s_c, H5DWRITE_REAL_S_C)
+#define nh5dwrite_real_1_c H5_FC_FUNC_(h5dwrite_real_1_c, H5DWRITE_REAL_1_C)
+#define nh5dwrite_real_2_c H5_FC_FUNC_(h5dwrite_real_2_c, H5DWRITE_REAL_2_C)
+#define nh5dwrite_real_3_c H5_FC_FUNC_(h5dwrite_real_3_c, H5DWRITE_REAL_3_C)
+#define nh5dwrite_real_4_c H5_FC_FUNC_(h5dwrite_real_4_c, H5DWRITE_REAL_4_C)
+#define nh5dwrite_real_5_c H5_FC_FUNC_(h5dwrite_real_5_c, H5DWRITE_REAL_5_C)
+#define nh5dwrite_real_6_c H5_FC_FUNC_(h5dwrite_real_6_c, H5DWRITE_REAL_6_C)
+#define nh5dwrite_real_7_c H5_FC_FUNC_(h5dwrite_real_7_c, H5DWRITE_REAL_7_C)
+#define nh5dwrite_double_s_c H5_FC_FUNC_(h5dwrite_double_s_c, H5DWRITE_DOUBLE_S_C)
+#define nh5dwrite_double_1_c H5_FC_FUNC_(h5dwrite_double_1_c, H5DWRITE_DOUBLE_1_C)
+#define nh5dwrite_double_2_c H5_FC_FUNC_(h5dwrite_double_2_c, H5DWRITE_DOUBLE_2_C)
+#define nh5dwrite_double_3_c H5_FC_FUNC_(h5dwrite_double_3_c, H5DWRITE_DOUBLE_3_C)
+#define nh5dwrite_double_4_c H5_FC_FUNC_(h5dwrite_double_4_c, H5DWRITE_DOUBLE_4_C)
+#define nh5dwrite_double_5_c H5_FC_FUNC_(h5dwrite_double_5_c, H5DWRITE_DOUBLE_5_C)
+#define nh5dwrite_double_6_c H5_FC_FUNC_(h5dwrite_double_6_c, H5DWRITE_DOUBLE_6_C)
+#define nh5dwrite_double_7_c H5_FC_FUNC_(h5dwrite_double_7_c, H5DWRITE_DOUBLE_7_C)
+#define nh5dwrite_ref_obj_c H5_FC_FUNC_(h5dwrite_ref_obj_c, H5DWRITE_REF_OBJ_C)
+#define nh5dwrite_ref_reg_c H5_FC_FUNC_(h5dwrite_ref_reg_c, H5DWRITE_REF_REG_C)
+#define nh5dwritec_c H5_FC_FUNC_(h5dwritec_c, H5DWRITEC_C)
+#define nh5dwritec_s_c H5_FC_FUNC_(h5dwritec_s_c, H5DWRITEC_S_C)
+#define nh5dwritec_1_c H5_FC_FUNC_(h5dwritec_1_c, H5DWRITEC_1_C)
+#define nh5dwritec_2_c H5_FC_FUNC_(h5dwritec_2_c, H5DWRITEC_2_C)
+#define nh5dwritec_3_c H5_FC_FUNC_(h5dwritec_3_c, H5DWRITEC_3_C)
+#define nh5dwritec_4_c H5_FC_FUNC_(h5dwritec_4_c, H5DWRITEC_4_C)
+#define nh5dwritec_5_c H5_FC_FUNC_(h5dwritec_5_c, H5DWRITEC_5_C)
+#define nh5dwritec_6_c H5_FC_FUNC_(h5dwritec_6_c, H5DWRITEC_6_C)
+#define nh5dwritec_7_c H5_FC_FUNC_(h5dwritec_7_c, H5DWRITEC_7_C)
+#define nh5dread_c H5_FC_FUNC_(h5dread_c, H5DREAD_C)
+#define nh5dread_integer_s_c H5_FC_FUNC_(h5dread_integer_s_c, H5DREAD_INTEGER_S_C)
+#define nh5dread_integer_1_c H5_FC_FUNC_(h5dread_integer_1_c, H5DREAD_INTEGER_1_C)
+#define nh5dread_integer_2_c H5_FC_FUNC_(h5dread_integer_2_c, H5DREAD_INTEGER_2_C)
+#define nh5dread_integer_3_c H5_FC_FUNC_(h5dread_integer_3_c, H5DREAD_INTEGER_3_C)
+#define nh5dread_integer_4_c H5_FC_FUNC_(h5dread_integer_4_c, H5DREAD_INTEGER_4_C)
+#define nh5dread_integer_5_c H5_FC_FUNC_(h5dread_integer_5_c, H5DREAD_INTEGER_5_C)
+#define nh5dread_integer_6_c H5_FC_FUNC_(h5dread_integer_6_c, H5DREAD_INTEGER_6_C)
+#define nh5dread_integer_7_c H5_FC_FUNC_(h5dread_integer_7_c, H5DREAD_INTEGER_7_C)
+#define nh5dread_real_s_c H5_FC_FUNC_(h5dread_real_s_c, H5DREAD_REAL_S_C)
+#define nh5dread_real_1_c H5_FC_FUNC_(h5dread_real_1_c, H5DREAD_REAL_1_C)
+#define nh5dread_real_2_c H5_FC_FUNC_(h5dread_real_2_c, H5DREAD_REAL_2_C)
+#define nh5dread_real_3_c H5_FC_FUNC_(h5dread_real_3_c, H5DREAD_REAL_3_C)
+#define nh5dread_real_4_c H5_FC_FUNC_(h5dread_real_4_c, H5DREAD_REAL_4_C)
+#define nh5dread_real_5_c H5_FC_FUNC_(h5dread_real_5_c, H5DREAD_REAL_5_C)
+#define nh5dread_real_6_c H5_FC_FUNC_(h5dread_real_6_c, H5DREAD_REAL_6_C)
+#define nh5dread_real_7_c H5_FC_FUNC_(h5dread_real_7_c, H5DREAD_REAL_7_C)
+#define nh5dread_double_s_c H5_FC_FUNC_(h5dread_double_s_c, H5DREAD_DOUBLE_S_C)
+#define nh5dread_double_1_c H5_FC_FUNC_(h5dread_double_1_c, H5DREAD_DOUBLE_1_C)
+#define nh5dread_double_2_c H5_FC_FUNC_(h5dread_double_2_c, H5DREAD_DOUBLE_2_C)
+#define nh5dread_double_3_c H5_FC_FUNC_(h5dread_double_3_c, H5DREAD_DOUBLE_3_C)
+#define nh5dread_double_4_c H5_FC_FUNC_(h5dread_double_4_c, H5DREAD_DOUBLE_4_C)
+#define nh5dread_double_5_c H5_FC_FUNC_(h5dread_double_5_c, H5DREAD_DOUBLE_5_C)
+#define nh5dread_double_6_c H5_FC_FUNC_(h5dread_double_6_c, H5DREAD_DOUBLE_6_C)
+#define nh5dread_double_7_c H5_FC_FUNC_(h5dread_double_7_c, H5DREAD_DOUBLE_7_C)
+#define nh5dread_c_b H5_FC_FUNC_(h5dread_c_b, H5DREAD_C_B)
+#define nh5dread_ref_reg_c H5_FC_FUNC_(h5dread_ref_reg_c, H5DREAD_REF_REG_C)
+#define nh5dread_ref_obj_c H5_FC_FUNC_(h5dread_ref_obj_c, H5DREAD_REF_OBJ_C)
+#define nh5dreadc_c H5_FC_FUNC_(h5dreadc_c, H5DREADC_C)
+#define nh5dreadc_s_c H5_FC_FUNC_(h5dreadc_s_c, H5DREADC_S_C)
+#define nh5dreadc_1_c H5_FC_FUNC_(h5dreadc_1_c, H5DREADC_1_C)
+#define nh5dreadc_2_c H5_FC_FUNC_(h5dreadc_2_c, H5DREADC_2_C)
+#define nh5dreadc_3_c H5_FC_FUNC_(h5dreadc_3_c, H5DREADC_3_C)
+#define nh5dreadc_4_c H5_FC_FUNC_(h5dreadc_4_c, H5DREADC_4_C)
+#define nh5dreadc_5_c H5_FC_FUNC_(h5dreadc_5_c, H5DREADC_5_C)
+#define nh5dreadc_6_c H5_FC_FUNC_(h5dreadc_6_c, H5DREADC_6_C)
+#define nh5dreadc_7_c H5_FC_FUNC_(h5dreadc_7_c, H5DREADC_7_C)
+#define nh5dreadc_c_b H5_FC_FUNC_(h5dreadc_c_b, H5DREADC_C_B)
+#define nh5dget_space_c H5_FC_FUNC_(h5dget_space_c, H5DGET_SPACE_C)
+#define nh5dget_type_c H5_FC_FUNC_(h5dget_type_c, H5DGET_TYPE_C)
+#define nh5dget_create_plist_c H5_FC_FUNC_(h5dget_create_plist_c, H5DGET_CREATE_PLIST_C)
+#define nh5dset_extent_c H5_FC_FUNC_(h5dset_extent_c, H5DSET_EXTENT_C)
+#define nh5dget_storage_size_c H5_FC_FUNC_(h5dget_storage_size_c, H5DGET_STORAGE_SIZE_C)
+#define nh5dvlen_get_max_len_c H5_FC_FUNC_(h5dvlen_get_max_len_c, H5DVLEN_GET_MAX_LEN_C)
+#define nh5dwrite_vl_integer_c H5_FC_FUNC_(h5dwrite_vl_integer_c, H5DWRITE_VL_INTEGER_C)
+#define nh5dread_vl_integer_c H5_FC_FUNC_(h5dread_vl_integer_c, H5DREAD_VL_INTEGER_C)
+#define nh5dwrite_vl_real_c H5_FC_FUNC_(h5dwrite_vl_real_c, H5DWRITE_VL_REAL_C)
+#define nh5dread_vl_real_c H5_FC_FUNC_(h5dread_vl_real_c, H5DREAD_VL_REAL_C)
+#define nh5dwrite_vl_string_c H5_FC_FUNC_(h5dwrite_vl_string_c, H5DWRITE_VL_STRING_C)
+#define nh5dread_vl_string_c H5_FC_FUNC_(h5dread_vl_string_c, H5DREAD_VL_STRING_C)
+#define nh5dfillc_c H5_FC_FUNC_(h5dfillc_c, H5DFILLC_C)
+#define nh5dfill_c H5_FC_FUNC_(h5dfill_c, H5DFILL_C)
+#define nh5dfill_integer_c H5_FC_FUNC_(h5dfill_integer_c, H5DFILL_INTEGER_C)
+#define nh5dfill_real_c H5_FC_FUNC_(h5dfill_real_c, H5DFILL_REAL_C)
+#define nh5dfill_double_c H5_FC_FUNC_(h5dfill_double_c, H5DFILL_DOUBLE_C)
+#define nh5dget_space_status_c H5_FC_FUNC_(h5dget_space_status_c, H5DGET_SPACE_STATUS_C)
+#define nh5dcreate_anon_c H5_FC_FUNC_(h5dcreate_anon_c, H5DCREATE_ANON_C)
+#define nh5dwrite_f_c H5_FC_FUNC_(h5dwrite_f_c, H5DWRITE_F_C)
+#define nh5dread_f_c H5_FC_FUNC_(h5dread_f_c, H5DREAD_F_C)
+#define nh5dget_access_plist_c H5_FC_FUNC_(h5dget_access_plist_c, H5DGET_ACCESS_PLIST_C)
+#define nh5dvlen_reclaim_c H5_FC_FUNC_(h5dvlen_reclaim_c, H5DVLEN_RECLAIM_C)
H5_FCDLL int_f nh5dcreate_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *type_id, hid_t_f *space_id,
@@ -343,28 +346,32 @@ H5_FCDLL int_f nh5dfill_double_c(void * fill_value, hid_t_f *fill_type_id, hid_t
H5_FCDLL int_f nh5dget_space_status_c ( hid_t_f *dset_id, int_f *flag);
H5_FCDLL int_f nh5dcreate_anon_c (hid_t_f *loc_id, hid_t_f *type_id, hid_t_f *space_id,
hid_t_f *dcpl_id, hid_t_f *dapl_id, hid_t_f *dset_id);
-
+H5_FCDLL int_f nh5dwrite_f_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id,
+ hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf);
+H5_FCDLL int_f nh5dread_f_c ( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_space_id,
+ hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf);
+H5_FCDLL int_f nh5dvlen_reclaim_c (hid_t_f *type_id , hid_t_f *space_id, hid_t_f *plist_id, void *buf);
/*
* Functions from H5Gf.c
*/
-# define nh5gcreate_c H5_FC_FUNC_(h5gcreate_c, H5GCREATE_C)
-# define nh5gclose_c H5_FC_FUNC_(h5gclose_c, H5GCLOSE_C)
-# define nh5gopen_c H5_FC_FUNC_(h5gopen_c, H5GOPEN_C)
-# define nh5gget_obj_info_idx_c H5_FC_FUNC_(h5gget_obj_info_idx_c, H5GGET_OBJ_INFO_IDX_C)
-# define nh5gn_members_c H5_FC_FUNC_(h5gn_members_c, H5GN_MEMBERS_C)
-# define nh5glink_c H5_FC_FUNC_(h5glink_c, H5GLINK_C)
-# define nh5glink2_c H5_FC_FUNC_(h5glink2_c, H5GLINK2_C)
-# define nh5gunlink_c H5_FC_FUNC_(h5gunlink_c, H5GUNLINK_C)
-# define nh5gmove_c H5_FC_FUNC_(h5gmove_c, H5GMOVE_C)
-# define nh5gmove2_c H5_FC_FUNC_(h5gmove2_c, H5GMOVE2_C)
-# define nh5gget_linkval_c H5_FC_FUNC_(h5gget_linkval_c, H5GGET_LINKVAL_C)
-# define nh5gset_comment_c H5_FC_FUNC_(h5gset_comment_c, H5GSET_COMMENT_C)
-# define nh5gget_comment_c H5_FC_FUNC_(h5gget_comment_c, H5GGET_COMMENT_C)
-# define nh5gcreate_anon_c H5_FC_FUNC_(h5gcreate_anon_c, H5GCREATE_ANON_C)
-# define nh5gget_create_plist_c H5_FC_FUNC_(h5gget_create_plist_c, H5GGET_CREATE_PLIST_C)
-# define nh5gget_info_c H5_FC_FUNC_(h5gget_info_c, H5GGET_INFO_C)
-# define nh5gget_info_by_idx_c H5_FC_FUNC_(h5gget_info_by_idx_c, H5GGET_INFO_BY_IDX_C)
-# define nh5gget_info_by_name_c H5_FC_FUNC_(h5gget_info_by_name_c, H5GGET_INFO_BY_NAME_C)
+#define nh5gcreate_c H5_FC_FUNC_(h5gcreate_c, H5GCREATE_C)
+#define nh5gclose_c H5_FC_FUNC_(h5gclose_c, H5GCLOSE_C)
+#define nh5gopen_c H5_FC_FUNC_(h5gopen_c, H5GOPEN_C)
+#define nh5gget_obj_info_idx_c H5_FC_FUNC_(h5gget_obj_info_idx_c, H5GGET_OBJ_INFO_IDX_C)
+#define nh5gn_members_c H5_FC_FUNC_(h5gn_members_c, H5GN_MEMBERS_C)
+#define nh5glink_c H5_FC_FUNC_(h5glink_c, H5GLINK_C)
+#define nh5glink2_c H5_FC_FUNC_(h5glink2_c, H5GLINK2_C)
+#define nh5gunlink_c H5_FC_FUNC_(h5gunlink_c, H5GUNLINK_C)
+#define nh5gmove_c H5_FC_FUNC_(h5gmove_c, H5GMOVE_C)
+#define nh5gmove2_c H5_FC_FUNC_(h5gmove2_c, H5GMOVE2_C)
+#define nh5gget_linkval_c H5_FC_FUNC_(h5gget_linkval_c, H5GGET_LINKVAL_C)
+#define nh5gset_comment_c H5_FC_FUNC_(h5gset_comment_c, H5GSET_COMMENT_C)
+#define nh5gget_comment_c H5_FC_FUNC_(h5gget_comment_c, H5GGET_COMMENT_C)
+#define nh5gcreate_anon_c H5_FC_FUNC_(h5gcreate_anon_c, H5GCREATE_ANON_C)
+#define nh5gget_create_plist_c H5_FC_FUNC_(h5gget_create_plist_c, H5GGET_CREATE_PLIST_C)
+#define nh5gget_info_c H5_FC_FUNC_(h5gget_info_c, H5GGET_INFO_C)
+#define nh5gget_info_by_idx_c H5_FC_FUNC_(h5gget_info_by_idx_c, H5GGET_INFO_BY_IDX_C)
+#define nh5gget_info_by_name_c H5_FC_FUNC_(h5gget_info_by_name_c, H5GGET_INFO_BY_NAME_C)
H5_FCDLL int_f nh5gcreate_c (hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *size_hint, hid_t_f *grp_id,
@@ -393,100 +400,102 @@ H5_FCDLL int_f nh5gget_info_by_name_c(hid_t_f *loc_id, _fcd group_name, size_t_f
/*
* Functions from H5Af.c
*/
-# define nh5acreate_c H5_FC_FUNC_(h5acreate_c, H5ACREATE_C)
-# define nh5aclose_c H5_FC_FUNC_(h5aclose_c, H5ACLOSE_C)
-# define nh5aopen_name_c H5_FC_FUNC_(h5aopen_name_c, H5AOPEN_NAME_C)
-# define nh5awrite_c H5_FC_FUNC_(h5awrite_c, H5AWRITE_C)
-# define nh5awrite_integer_s_c H5_FC_FUNC_(h5awrite_integer_s_c, H5AWRITE_INTEGER_S_C)
-# define nh5awrite_integer_1_c H5_FC_FUNC_(h5awrite_integer_1_c, H5AWRITE_INTEGER_1_C)
-# define nh5awrite_integer_2_c H5_FC_FUNC_(h5awrite_integer_2_c, H5AWRITE_INTEGER_2_C)
-# define nh5awrite_integer_3_c H5_FC_FUNC_(h5awrite_integer_3_c, H5AWRITE_INTEGER_3_C)
-# define nh5awrite_integer_4_c H5_FC_FUNC_(h5awrite_integer_4_c, H5AWRITE_INTEGER_4_C)
-# define nh5awrite_integer_5_c H5_FC_FUNC_(h5awrite_integer_5_c, H5AWRITE_INTEGER_5_C)
-# define nh5awrite_integer_6_c H5_FC_FUNC_(h5awrite_integer_6_c, H5AWRITE_INTEGER_6_C)
-# define nh5awrite_integer_7_c H5_FC_FUNC_(h5awrite_integer_7_c, H5AWRITE_INTEGER_7_C)
-# define nh5awrite_real_s_c H5_FC_FUNC_(h5awrite_real_s_c, H5AWRITE_REAL_S_C)
-# define nh5awrite_real_1_c H5_FC_FUNC_(h5awrite_real_1_c, H5AWRITE_REAL_1_C)
-# define nh5awrite_real_2_c H5_FC_FUNC_(h5awrite_real_2_c, H5AWRITE_REAL_2_C)
-# define nh5awrite_real_3_c H5_FC_FUNC_(h5awrite_real_3_c, H5AWRITE_REAL_3_C)
-# define nh5awrite_real_4_c H5_FC_FUNC_(h5awrite_real_4_c, H5AWRITE_REAL_4_C)
-# define nh5awrite_real_5_c H5_FC_FUNC_(h5awrite_real_5_c, H5AWRITE_REAL_5_C)
-# define nh5awrite_real_6_c H5_FC_FUNC_(h5awrite_real_6_c, H5AWRITE_REAL_6_C)
-# define nh5awrite_real_7_c H5_FC_FUNC_(h5awrite_real_7_c, H5AWRITE_REAL_7_C)
-# define nh5awrite_double_s_c H5_FC_FUNC_(h5awrite_double_s_c, H5AWRITE_DOUBLE_S_C)
-# define nh5awrite_double_1_c H5_FC_FUNC_(h5awrite_double_1_c, H5AWRITE_DOUBLE_1_C)
-# define nh5awrite_double_2_c H5_FC_FUNC_(h5awrite_double_2_c, H5AWRITE_DOUBLE_2_C)
-# define nh5awrite_double_3_c H5_FC_FUNC_(h5awrite_double_3_c, H5AWRITE_DOUBLE_3_C)
-# define nh5awrite_double_4_c H5_FC_FUNC_(h5awrite_double_4_c, H5AWRITE_DOUBLE_4_C)
-# define nh5awrite_double_5_c H5_FC_FUNC_(h5awrite_double_5_c, H5AWRITE_DOUBLE_5_C)
-# define nh5awrite_double_6_c H5_FC_FUNC_(h5awrite_double_6_c, H5AWRITE_DOUBLE_6_C)
-# define nh5awrite_double_7_c H5_FC_FUNC_(h5awrite_double_7_c, H5AWRITE_DOUBLE_7_C)
-# define nh5awritec_c H5_FC_FUNC_(h5awritec_c, H5AWRITEC_C)
-# define nh5awritec_s_c H5_FC_FUNC_(h5awritec_s_c, H5AWRITEC_S_C)
-# define nh5awritec_1_c H5_FC_FUNC_(h5awritec_1_c, H5AWRITEC_1_C)
-# define nh5awritec_2_c H5_FC_FUNC_(h5awritec_2_c, H5AWRITEC_2_C)
-# define nh5awritec_3_c H5_FC_FUNC_(h5awritec_3_c, H5AWRITEC_3_C)
-# define nh5awritec_4_c H5_FC_FUNC_(h5awritec_4_c, H5AWRITEC_4_C)
-# define nh5awritec_5_c H5_FC_FUNC_(h5awritec_5_c, H5AWRITEC_5_C)
-# define nh5awritec_6_c H5_FC_FUNC_(h5awritec_6_c, H5AWRITEC_6_C)
-# define nh5awritec_7_c H5_FC_FUNC_(h5awritec_7_c, H5AWRITEC_7_C)
-# define nh5aread_c H5_FC_FUNC_(h5aread_c, H5AREAD_C)
-# define nh5aread_integer_s_c H5_FC_FUNC_(h5aread_integer_s_c, H5AREAD_INTEGER_S_C)
-# define nh5aread_integer_1_c H5_FC_FUNC_(h5aread_integer_1_c, H5AREAD_INTEGER_1_C)
-# define nh5aread_integer_2_c H5_FC_FUNC_(h5aread_integer_2_c, H5AREAD_INTEGER_2_C)
-# define nh5aread_integer_3_c H5_FC_FUNC_(h5aread_integer_3_c, H5AREAD_INTEGER_3_C)
-# define nh5aread_integer_4_c H5_FC_FUNC_(h5aread_integer_4_c, H5AREAD_INTEGER_4_C)
-# define nh5aread_integer_5_c H5_FC_FUNC_(h5aread_integer_5_c, H5AREAD_INTEGER_5_C)
-# define nh5aread_integer_6_c H5_FC_FUNC_(h5aread_integer_6_c, H5AREAD_INTEGER_6_C)
-# define nh5aread_integer_7_c H5_FC_FUNC_(h5aread_integer_7_c, H5AREAD_INTEGER_7_C)
-# define nh5aread_real_s_c H5_FC_FUNC_(h5aread_real_s_c, H5AREAD_REAL_S_C)
-# define nh5aread_real_1_c H5_FC_FUNC_(h5aread_real_1_c, H5AREAD_REAL_1_C)
-# define nh5aread_real_2_c H5_FC_FUNC_(h5aread_real_2_c, H5AREAD_REAL_2_C)
-# define nh5aread_real_3_c H5_FC_FUNC_(h5aread_real_3_c, H5AREAD_REAL_3_C)
-# define nh5aread_real_4_c H5_FC_FUNC_(h5aread_real_4_c, H5AREAD_REAL_4_C)
-# define nh5aread_real_5_c H5_FC_FUNC_(h5aread_real_5_c, H5AREAD_REAL_5_C)
-# define nh5aread_real_6_c H5_FC_FUNC_(h5aread_real_6_c, H5AREAD_REAL_6_C)
-# define nh5aread_real_7_c H5_FC_FUNC_(h5aread_real_7_c, H5AREAD_REAL_7_C)
-# define nh5aread_double_s_c H5_FC_FUNC_(h5aread_double_s_c, H5AREAD_DOUBLE_S_C)
-# define nh5aread_double_1_c H5_FC_FUNC_(h5aread_double_1_c, H5AREAD_DOUBLE_1_C)
-# define nh5aread_double_2_c H5_FC_FUNC_(h5aread_double_2_c, H5AREAD_DOUBLE_2_C)
-# define nh5aread_double_3_c H5_FC_FUNC_(h5aread_double_3_c, H5AREAD_DOUBLE_3_C)
-# define nh5aread_double_4_c H5_FC_FUNC_(h5aread_double_4_c, H5AREAD_DOUBLE_4_C)
-# define nh5aread_double_5_c H5_FC_FUNC_(h5aread_double_5_c, H5AREAD_DOUBLE_5_C)
-# define nh5aread_double_6_c H5_FC_FUNC_(h5aread_double_6_c, H5AREAD_DOUBLE_6_C)
-# define nh5aread_double_7_c H5_FC_FUNC_(h5aread_double_7_c, H5AREAD_DOUBLE_7_C)
-# define nh5areadc_c H5_FC_FUNC_(h5areadc_c, H5AREADC_C)
-# define nh5areadc_s_c H5_FC_FUNC_(h5areadc_s_c, H5AREADC_S_C)
-# define nh5areadc_1_c H5_FC_FUNC_(h5areadc_1_c, H5AREADC_1_C)
-# define nh5areadc_2_c H5_FC_FUNC_(h5areadc_2_c, H5AREADC_2_C)
-# define nh5areadc_3_c H5_FC_FUNC_(h5areadc_3_c, H5AREADC_3_C)
-# define nh5areadc_4_c H5_FC_FUNC_(h5areadc_4_c, H5AREADC_4_C)
-# define nh5areadc_5_c H5_FC_FUNC_(h5areadc_5_c, H5AREADC_5_C)
-# define nh5areadc_6_c H5_FC_FUNC_(h5areadc_6_c, H5AREADC_6_C)
-# define nh5areadc_7_c H5_FC_FUNC_(h5areadc_7_c, H5AREADC_7_C)
-# define nh5aget_name_c H5_FC_FUNC_(h5aget_name_c, H5AGET_NAME_C)
-# define nh5aopen_idx_c H5_FC_FUNC_(h5aopen_idx_c, H5AOPEN_IDX_C)
-# define nh5aget_space_c H5_FC_FUNC_(h5aget_space_c, H5AGET_SPACE_C)
-# define nh5aget_type_c H5_FC_FUNC_(h5aget_type_c, H5AGET_TYPE_C)
-# define nh5aget_num_attrs_c H5_FC_FUNC_(h5aget_num_attrs_c, H5AGET_NUM_ATTRS_C)
-# define nh5adelete_c H5_FC_FUNC_(h5adelete_c, H5ADELETE_C)
-# define nh5aget_storage_size_c H5_FC_FUNC_(h5aget_storage_size_c, H5AGET_STORAGE_SIZE_C)
-# define nh5arename_by_name_c H5_FC_FUNC_(h5arename_by_name_c, H5ARENAME_BY_NAME_C)
-# define nh5aopen_c H5_FC_FUNC_(h5aopen_c, H5AOPEN_C)
-# define nh5adelete_by_name_c H5_FC_FUNC_(h5adelete_by_name_c,H5ADELETE_BY_NAME_C)
-# define nh5adelete_by_idx_c H5_FC_FUNC_(h5adelete_by_idx_c,H5ADELETE_BY_IDX_C)
-# define nh5aget_name_by_idx_c H5_FC_FUNC_(h5aget_name_by_idx_c,H5AGET_NAME_BY_IDX_C)
-# define nh5aget_create_plist_c H5_FC_FUNC_(h5aget_create_plist_c,H5AGET_CREATE_PLIST_C)
-# define nh5aopen_by_idx_c H5_FC_FUNC_(h5aopen_by_idx_c,H5AOPEN_BY_IDX_C)
-# define nh5aget_info_c H5_FC_FUNC_(h5aget_info_c,H5AGET_INFO_C)
-# define nh5aget_info_by_idx_c H5_FC_FUNC_(h5aget_info_by_idx_c,H5AGET_INFO_BY_IDX_C)
-# define nh5aget_info_by_name_c H5_FC_FUNC_(h5aget_info_by_name_c,H5AGET_INFO_BY_NAME_C)
-# define nh5aget_info_by_name_c H5_FC_FUNC_(h5aget_info_by_name_c,H5AGET_INFO_BY_NAME_C)
-# define nh5acreate_by_name_c H5_FC_FUNC_(h5acreate_by_name_c,H5ACREATE_BY_NAME_C)
-# define nh5aexists_c H5_FC_FUNC_(h5aexists_c,H5AEXISTS_C)
-# define nh5aexists_by_name_c H5_FC_FUNC_(h5aexists_by_name_c,H5AEXISTS_BY_NAME_C)
-# define nh5aopen_by_name_c H5_FC_FUNC_(h5aopen_by_name_c,H5AOPEN_BY_NAME_C)
-# define nh5arename_c H5_FC_FUNC_(h5arename_c,H5ARENAME_C)
+#define nh5acreate_c H5_FC_FUNC_(h5acreate_c, H5ACREATE_C)
+#define nh5aclose_c H5_FC_FUNC_(h5aclose_c, H5ACLOSE_C)
+#define nh5aopen_name_c H5_FC_FUNC_(h5aopen_name_c, H5AOPEN_NAME_C)
+#define nh5awrite_c H5_FC_FUNC_(h5awrite_c, H5AWRITE_C)
+#define nh5awrite_integer_s_c H5_FC_FUNC_(h5awrite_integer_s_c, H5AWRITE_INTEGER_S_C)
+#define nh5awrite_integer_1_c H5_FC_FUNC_(h5awrite_integer_1_c, H5AWRITE_INTEGER_1_C)
+#define nh5awrite_integer_2_c H5_FC_FUNC_(h5awrite_integer_2_c, H5AWRITE_INTEGER_2_C)
+#define nh5awrite_integer_3_c H5_FC_FUNC_(h5awrite_integer_3_c, H5AWRITE_INTEGER_3_C)
+#define nh5awrite_integer_4_c H5_FC_FUNC_(h5awrite_integer_4_c, H5AWRITE_INTEGER_4_C)
+#define nh5awrite_integer_5_c H5_FC_FUNC_(h5awrite_integer_5_c, H5AWRITE_INTEGER_5_C)
+#define nh5awrite_integer_6_c H5_FC_FUNC_(h5awrite_integer_6_c, H5AWRITE_INTEGER_6_C)
+#define nh5awrite_integer_7_c H5_FC_FUNC_(h5awrite_integer_7_c, H5AWRITE_INTEGER_7_C)
+#define nh5awrite_real_s_c H5_FC_FUNC_(h5awrite_real_s_c, H5AWRITE_REAL_S_C)
+#define nh5awrite_real_1_c H5_FC_FUNC_(h5awrite_real_1_c, H5AWRITE_REAL_1_C)
+#define nh5awrite_real_2_c H5_FC_FUNC_(h5awrite_real_2_c, H5AWRITE_REAL_2_C)
+#define nh5awrite_real_3_c H5_FC_FUNC_(h5awrite_real_3_c, H5AWRITE_REAL_3_C)
+#define nh5awrite_real_4_c H5_FC_FUNC_(h5awrite_real_4_c, H5AWRITE_REAL_4_C)
+#define nh5awrite_real_5_c H5_FC_FUNC_(h5awrite_real_5_c, H5AWRITE_REAL_5_C)
+#define nh5awrite_real_6_c H5_FC_FUNC_(h5awrite_real_6_c, H5AWRITE_REAL_6_C)
+#define nh5awrite_real_7_c H5_FC_FUNC_(h5awrite_real_7_c, H5AWRITE_REAL_7_C)
+#define nh5awrite_double_s_c H5_FC_FUNC_(h5awrite_double_s_c, H5AWRITE_DOUBLE_S_C)
+#define nh5awrite_double_1_c H5_FC_FUNC_(h5awrite_double_1_c, H5AWRITE_DOUBLE_1_C)
+#define nh5awrite_double_2_c H5_FC_FUNC_(h5awrite_double_2_c, H5AWRITE_DOUBLE_2_C)
+#define nh5awrite_double_3_c H5_FC_FUNC_(h5awrite_double_3_c, H5AWRITE_DOUBLE_3_C)
+#define nh5awrite_double_4_c H5_FC_FUNC_(h5awrite_double_4_c, H5AWRITE_DOUBLE_4_C)
+#define nh5awrite_double_5_c H5_FC_FUNC_(h5awrite_double_5_c, H5AWRITE_DOUBLE_5_C)
+#define nh5awrite_double_6_c H5_FC_FUNC_(h5awrite_double_6_c, H5AWRITE_DOUBLE_6_C)
+#define nh5awrite_double_7_c H5_FC_FUNC_(h5awrite_double_7_c, H5AWRITE_DOUBLE_7_C)
+#define nh5awritec_c H5_FC_FUNC_(h5awritec_c, H5AWRITEC_C)
+#define nh5awritec_s_c H5_FC_FUNC_(h5awritec_s_c, H5AWRITEC_S_C)
+#define nh5awritec_1_c H5_FC_FUNC_(h5awritec_1_c, H5AWRITEC_1_C)
+#define nh5awritec_2_c H5_FC_FUNC_(h5awritec_2_c, H5AWRITEC_2_C)
+#define nh5awritec_3_c H5_FC_FUNC_(h5awritec_3_c, H5AWRITEC_3_C)
+#define nh5awritec_4_c H5_FC_FUNC_(h5awritec_4_c, H5AWRITEC_4_C)
+#define nh5awritec_5_c H5_FC_FUNC_(h5awritec_5_c, H5AWRITEC_5_C)
+#define nh5awritec_6_c H5_FC_FUNC_(h5awritec_6_c, H5AWRITEC_6_C)
+#define nh5awritec_7_c H5_FC_FUNC_(h5awritec_7_c, H5AWRITEC_7_C)
+#define nh5awrite_f_c H5_FC_FUNC_(h5awrite_f_c, H5AWRITE_F_C)
+#define nh5aread_c H5_FC_FUNC_(h5aread_c, H5AREAD_C)
+#define nh5aread_integer_s_c H5_FC_FUNC_(h5aread_integer_s_c, H5AREAD_INTEGER_S_C)
+#define nh5aread_integer_1_c H5_FC_FUNC_(h5aread_integer_1_c, H5AREAD_INTEGER_1_C)
+#define nh5aread_integer_2_c H5_FC_FUNC_(h5aread_integer_2_c, H5AREAD_INTEGER_2_C)
+#define nh5aread_integer_3_c H5_FC_FUNC_(h5aread_integer_3_c, H5AREAD_INTEGER_3_C)
+#define nh5aread_integer_4_c H5_FC_FUNC_(h5aread_integer_4_c, H5AREAD_INTEGER_4_C)
+#define nh5aread_integer_5_c H5_FC_FUNC_(h5aread_integer_5_c, H5AREAD_INTEGER_5_C)
+#define nh5aread_integer_6_c H5_FC_FUNC_(h5aread_integer_6_c, H5AREAD_INTEGER_6_C)
+#define nh5aread_integer_7_c H5_FC_FUNC_(h5aread_integer_7_c, H5AREAD_INTEGER_7_C)
+#define nh5aread_real_s_c H5_FC_FUNC_(h5aread_real_s_c, H5AREAD_REAL_S_C)
+#define nh5aread_real_1_c H5_FC_FUNC_(h5aread_real_1_c, H5AREAD_REAL_1_C)
+#define nh5aread_real_2_c H5_FC_FUNC_(h5aread_real_2_c, H5AREAD_REAL_2_C)
+#define nh5aread_real_3_c H5_FC_FUNC_(h5aread_real_3_c, H5AREAD_REAL_3_C)
+#define nh5aread_real_4_c H5_FC_FUNC_(h5aread_real_4_c, H5AREAD_REAL_4_C)
+#define nh5aread_real_5_c H5_FC_FUNC_(h5aread_real_5_c, H5AREAD_REAL_5_C)
+#define nh5aread_real_6_c H5_FC_FUNC_(h5aread_real_6_c, H5AREAD_REAL_6_C)
+#define nh5aread_real_7_c H5_FC_FUNC_(h5aread_real_7_c, H5AREAD_REAL_7_C)
+#define nh5aread_double_s_c H5_FC_FUNC_(h5aread_double_s_c, H5AREAD_DOUBLE_S_C)
+#define nh5aread_double_1_c H5_FC_FUNC_(h5aread_double_1_c, H5AREAD_DOUBLE_1_C)
+#define nh5aread_double_2_c H5_FC_FUNC_(h5aread_double_2_c, H5AREAD_DOUBLE_2_C)
+#define nh5aread_double_3_c H5_FC_FUNC_(h5aread_double_3_c, H5AREAD_DOUBLE_3_C)
+#define nh5aread_double_4_c H5_FC_FUNC_(h5aread_double_4_c, H5AREAD_DOUBLE_4_C)
+#define nh5aread_double_5_c H5_FC_FUNC_(h5aread_double_5_c, H5AREAD_DOUBLE_5_C)
+#define nh5aread_double_6_c H5_FC_FUNC_(h5aread_double_6_c, H5AREAD_DOUBLE_6_C)
+#define nh5aread_double_7_c H5_FC_FUNC_(h5aread_double_7_c, H5AREAD_DOUBLE_7_C)
+#define nh5areadc_c H5_FC_FUNC_(h5areadc_c, H5AREADC_C)
+#define nh5areadc_s_c H5_FC_FUNC_(h5areadc_s_c, H5AREADC_S_C)
+#define nh5areadc_1_c H5_FC_FUNC_(h5areadc_1_c, H5AREADC_1_C)
+#define nh5areadc_2_c H5_FC_FUNC_(h5areadc_2_c, H5AREADC_2_C)
+#define nh5areadc_3_c H5_FC_FUNC_(h5areadc_3_c, H5AREADC_3_C)
+#define nh5areadc_4_c H5_FC_FUNC_(h5areadc_4_c, H5AREADC_4_C)
+#define nh5areadc_5_c H5_FC_FUNC_(h5areadc_5_c, H5AREADC_5_C)
+#define nh5areadc_6_c H5_FC_FUNC_(h5areadc_6_c, H5AREADC_6_C)
+#define nh5areadc_7_c H5_FC_FUNC_(h5areadc_7_c, H5AREADC_7_C)
+#define nh5aread_f_c H5_FC_FUNC_(h5aread_f_c, H5AREAD_F_C)
+#define nh5aget_name_c H5_FC_FUNC_(h5aget_name_c, H5AGET_NAME_C)
+#define nh5aopen_idx_c H5_FC_FUNC_(h5aopen_idx_c, H5AOPEN_IDX_C)
+#define nh5aget_space_c H5_FC_FUNC_(h5aget_space_c, H5AGET_SPACE_C)
+#define nh5aget_type_c H5_FC_FUNC_(h5aget_type_c, H5AGET_TYPE_C)
+#define nh5aget_num_attrs_c H5_FC_FUNC_(h5aget_num_attrs_c, H5AGET_NUM_ATTRS_C)
+#define nh5adelete_c H5_FC_FUNC_(h5adelete_c, H5ADELETE_C)
+#define nh5aget_storage_size_c H5_FC_FUNC_(h5aget_storage_size_c, H5AGET_STORAGE_SIZE_C)
+#define nh5arename_by_name_c H5_FC_FUNC_(h5arename_by_name_c, H5ARENAME_BY_NAME_C)
+#define nh5aopen_c H5_FC_FUNC_(h5aopen_c, H5AOPEN_C)
+#define nh5adelete_by_name_c H5_FC_FUNC_(h5adelete_by_name_c,H5ADELETE_BY_NAME_C)
+#define nh5adelete_by_idx_c H5_FC_FUNC_(h5adelete_by_idx_c,H5ADELETE_BY_IDX_C)
+#define nh5aget_name_by_idx_c H5_FC_FUNC_(h5aget_name_by_idx_c,H5AGET_NAME_BY_IDX_C)
+#define nh5aget_create_plist_c H5_FC_FUNC_(h5aget_create_plist_c,H5AGET_CREATE_PLIST_C)
+#define nh5aopen_by_idx_c H5_FC_FUNC_(h5aopen_by_idx_c,H5AOPEN_BY_IDX_C)
+#define nh5aget_info_c H5_FC_FUNC_(h5aget_info_c,H5AGET_INFO_C)
+#define nh5aget_info_by_idx_c H5_FC_FUNC_(h5aget_info_by_idx_c,H5AGET_INFO_BY_IDX_C)
+#define nh5aget_info_by_name_c H5_FC_FUNC_(h5aget_info_by_name_c,H5AGET_INFO_BY_NAME_C)
+#define nh5aget_info_by_name_c H5_FC_FUNC_(h5aget_info_by_name_c,H5AGET_INFO_BY_NAME_C)
+#define nh5acreate_by_name_c H5_FC_FUNC_(h5acreate_by_name_c,H5ACREATE_BY_NAME_C)
+#define nh5aexists_c H5_FC_FUNC_(h5aexists_c,H5AEXISTS_C)
+#define nh5aexists_by_name_c H5_FC_FUNC_(h5aexists_by_name_c,H5AEXISTS_BY_NAME_C)
+#define nh5aopen_by_name_c H5_FC_FUNC_(h5aopen_by_name_c,H5AOPEN_BY_NAME_C)
+#define nh5arename_c H5_FC_FUNC_(h5arename_c,H5ARENAME_C)
H5_FCDLL int_f nh5acreate_c (hid_t_f *obj_id, _fcd name, size_t_f *namelen, hid_t_f *type_id, hid_t_f *space_id, hid_t_f *crt_prp, hid_t_f *aapl, hid_t_f *attr_id);
H5_FCDLL int_f nh5aopen_name_c (hid_t_f *obj_id, _fcd name, size_t_f *namelen, hid_t_f *attr_id);
@@ -524,6 +533,7 @@ H5_FCDLL int_f nh5awrite_double_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, voi
H5_FCDLL int_f nh5awrite_double_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims);
H5_FCDLL int_f nh5awrite_double_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims);
H5_FCDLL int_f nh5awrite_double_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims);
+H5_FCDLL int_f nh5awrite_f_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf);
H5_FCDLL int_f nh5areadc_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims);
H5_FCDLL int_f nh5areadc_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims);
H5_FCDLL int_f nh5areadc_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims);
@@ -558,6 +568,7 @@ H5_FCDLL int_f nh5aread_double_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void
H5_FCDLL int_f nh5aread_double_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims);
H5_FCDLL int_f nh5aread_double_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims);
H5_FCDLL int_f nh5aread_double_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims);
+H5_FCDLL int_f nh5aread_f_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf);
H5_FCDLL int_f nh5aclose_c ( hid_t_f *attr_id );
H5_FCDLL int_f nh5adelete_c (hid_t_f *obj_id, _fcd name, size_t_f *namelen);
H5_FCDLL int_f nh5aopen_idx_c (hid_t_f *obj_id, int_f *idx, hid_t_f *attr_id);
@@ -608,68 +619,69 @@ H5_FCDLL int_f nh5arename_c( hid_t_f *loc_id,
/*
* Functions form H5Tf.c file
*/
-# define nh5topen_c H5_FC_FUNC_(h5topen_c, H5TOPEN_C)
-# define nh5tcommit_c H5_FC_FUNC_(h5tcommit_c, H5TCOMMIT_C)
-# define nh5tcommitted_c H5_FC_FUNC_(h5tcommitted_c, H5TCOMMITTED_C)
-# define nh5tclose_c H5_FC_FUNC_(h5tclose_c, H5TCLOSE_C)
-# define nh5tcopy_c H5_FC_FUNC_(h5tcopy_c, H5TCOPY_C)
-# define nh5tequal_c H5_FC_FUNC_(h5tequal_c, H5TEQUAL_C)
-# define nh5tget_class_c H5_FC_FUNC_(h5tget_class_c, H5TGET_CLASS_C)
-# define nh5tget_order_c H5_FC_FUNC_(h5tget_order_c, H5TGET_ORDER_C)
-# define nh5tset_order_c H5_FC_FUNC_(h5tset_order_c, H5TSET_ORDER_C)
-# define nh5tget_size_c H5_FC_FUNC_(h5tget_size_c, H5TGET_SIZE_C)
-# define nh5tset_size_c H5_FC_FUNC_(h5tset_size_c, H5TSET_SIZE_C)
-# define nh5tget_precision_c H5_FC_FUNC_(h5tget_precision_c, H5TGET_PRECISION_C)
-# define nh5tset_precision_c H5_FC_FUNC_(h5tset_precision_c, H5TSET_PRECISION_C)
-# define nh5tget_offset_c H5_FC_FUNC_(h5tget_offset_c, H5TGET_OFFSET_C)
-# define nh5tset_offset_c H5_FC_FUNC_(h5tset_offset_c, H5TSET_OFFSET_C)
-# define nh5tget_pad_c H5_FC_FUNC_(h5tget_pad_c, H5TGET_PAD_C)
-# define nh5tset_pad_c H5_FC_FUNC_(h5tset_pad_c, H5TSET_PAD_C)
-# define nh5tget_sign_c H5_FC_FUNC_(h5tget_sign_c, H5TGET_SIGN_C)
-# define nh5tset_sign_c H5_FC_FUNC_(h5tset_sign_c, H5TSET_SIGN_C)
-# define nh5tget_fields_c H5_FC_FUNC_(h5tget_fields_c, H5TGET_FIELDS_C)
-# define nh5tset_fields_c H5_FC_FUNC_(h5tset_fields_c, H5TSET_FIELDS_C)
-# define nh5tget_ebias_c H5_FC_FUNC_(h5tget_ebias_c, H5TGET_EBIAS_C)
-# define nh5tset_ebias_c H5_FC_FUNC_(h5tset_ebias_c, H5TSET_EBIAS_C)
-# define nh5tget_norm_c H5_FC_FUNC_(h5tget_norm_c, H5TGET_NORM_C)
-# define nh5tset_norm_c H5_FC_FUNC_(h5tset_norm_c, H5TSET_NORM_C)
-# define nh5tget_inpad_c H5_FC_FUNC_(h5tget_inpad_c, H5TGET_INPAD_C)
-# define nh5tset_inpad_c H5_FC_FUNC_(h5tset_inpad_c, H5TSET_INPAD_C)
-# define nh5tget_cset_c H5_FC_FUNC_(h5tget_cset_c, H5TGET_CSET_C)
-# define nh5tset_cset_c H5_FC_FUNC_(h5tset_cset_c, H5TSET_CSET_C)
-# define nh5tget_strpad_c H5_FC_FUNC_(h5tget_strpad_c, H5TGET_STRPAD_C)
-# define nh5tset_strpad_c H5_FC_FUNC_(h5tset_strpad_c, H5TSET_STRPAD_C)
-# define nh5tget_nmembers_c H5_FC_FUNC_(h5tget_nmembers_c, H5TGET_NMEMBERS_C)
-# define nh5tget_member_name_c H5_FC_FUNC_(h5tget_member_name_c, H5TGET_MEMBER_NAME_C)
-# define nh5tget_member_offset_c H5_FC_FUNC_(h5tget_member_offset_c, H5TGET_MEMBER_OFFSET_C)
-# define nh5tget_member_dims_c H5_FC_FUNC_(h5tget_member_dims_c, H5TGET_MEMBER_DIMS_C)
-# define nh5tget_member_type_c H5_FC_FUNC_(h5tget_member_type_c, H5TGET_MEMBER_TYPE_C)
-# define nh5tget_member_index_c H5_FC_FUNC_(h5tget_member_index_c, H5TGET_MEMBER_INDEX_C)
-# define nh5tinsert_c H5_FC_FUNC_(h5tinsert_c, H5TINSERT_C)
-# define nh5tcreate_c H5_FC_FUNC_(h5tcreate_c, H5TCREATE_C)
-# define nh5tpack_c H5_FC_FUNC_(h5tpack_c, H5TPACK_C)
-# define nh5tinsert_array_c H5_FC_FUNC_(h5tinsert_array_c, H5TINSERT_ARRAY_C)
-# define nh5tinsert_array_c2 H5_FC_FUNC_(h5tinsert_array_c2, H5TINSERT_ARRAY_C2)
-# define nh5tenum_create_c H5_FC_FUNC_(h5tenum_create_c, H5TENUM_CREATE_C)
-# define nh5tenum_insert_c H5_FC_FUNC_(h5tenum_insert_c, H5TENUM_INSERT_C)
-# define nh5tenum_nameof_c H5_FC_FUNC_(h5tenum_nameof_c, H5TENUM_NAMEOF_C)
-# define nh5tenum_valueof_c H5_FC_FUNC_(h5tenum_valueof_c, H5TENUM_VALUEOF_C)
-# define nh5tget_member_value_c H5_FC_FUNC_(h5tget_member_value_c, H5TGET_MEMBER_VALUE_C)
-# define nh5tset_tag_c H5_FC_FUNC_(h5tset_tag_c, H5TSET_TAG_C)
-# define nh5tget_tag_c H5_FC_FUNC_(h5tget_tag_c, H5TGET_TAG_C)
-# define nh5tarray_create_c H5_FC_FUNC_(h5tarray_create_c, H5TARRAY_CREATE_C)
-# define nh5tget_array_ndims_c H5_FC_FUNC_(h5tget_array_ndims_c, H5TGET_ARRAY_NDIMS_C)
-# define nh5tget_array_dims_c H5_FC_FUNC_(h5tget_array_dims_c, H5TGET_ARRAY_DIMS_C)
-# define nh5tget_super_c H5_FC_FUNC_(h5tget_super_c, H5TGET_SUPER_C)
-# define nh5tvlen_create_c H5_FC_FUNC_(h5tvlen_create_c, H5TVLEN_CREATE_C)
-# define nh5tis_variable_str_c H5_FC_FUNC_(h5tis_variable_str_c, H5TIS_VARIABLE_STR_C)
-# define nh5tget_member_class_c H5_FC_FUNC_(h5tget_member_class_c, H5TGET_MEMBER_CLASS_C)
-# define nh5tcommit_anon_c H5_FC_FUNC_(h5tcommit_anon_c, H5TCOMMIT_ANON_C)
-# define nh5tdecode_c H5_FC_FUNC_(h5tdecode_c, H5TDECODE_C)
-# define nh5tencode_c H5_FC_FUNC_(h5tencode_c, H5TENCODE_C)
-# define nh5tget_create_plist_c H5_FC_FUNC_(h5tget_create_plist_c, H5TGET_CREATE_PLIST_C)
-# define nh5tcompiler_conv_c H5_FC_FUNC_(h5tcompiler_conv_c, H5TCOMPILER_CONV_C)
-# define nh5tget_native_type_c H5_FC_FUNC_(h5tget_native_type_c, H5TGET_NATIVE_TYPE_C)
+#define nh5topen_c H5_FC_FUNC_(h5topen_c, H5TOPEN_C)
+#define nh5tcommit_c H5_FC_FUNC_(h5tcommit_c, H5TCOMMIT_C)
+#define nh5tcommitted_c H5_FC_FUNC_(h5tcommitted_c, H5TCOMMITTED_C)
+#define nh5tconvert_c H5_FC_FUNC_(h5tconvert_c, H5TCONVERT_C)
+#define nh5tclose_c H5_FC_FUNC_(h5tclose_c, H5TCLOSE_C)
+#define nh5tcopy_c H5_FC_FUNC_(h5tcopy_c, H5TCOPY_C)
+#define nh5tequal_c H5_FC_FUNC_(h5tequal_c, H5TEQUAL_C)
+#define nh5tget_class_c H5_FC_FUNC_(h5tget_class_c, H5TGET_CLASS_C)
+#define nh5tget_order_c H5_FC_FUNC_(h5tget_order_c, H5TGET_ORDER_C)
+#define nh5tset_order_c H5_FC_FUNC_(h5tset_order_c, H5TSET_ORDER_C)
+#define nh5tget_size_c H5_FC_FUNC_(h5tget_size_c, H5TGET_SIZE_C)
+#define nh5tset_size_c H5_FC_FUNC_(h5tset_size_c, H5TSET_SIZE_C)
+#define nh5tget_precision_c H5_FC_FUNC_(h5tget_precision_c, H5TGET_PRECISION_C)
+#define nh5tset_precision_c H5_FC_FUNC_(h5tset_precision_c, H5TSET_PRECISION_C)
+#define nh5tget_offset_c H5_FC_FUNC_(h5tget_offset_c, H5TGET_OFFSET_C)
+#define nh5tset_offset_c H5_FC_FUNC_(h5tset_offset_c, H5TSET_OFFSET_C)
+#define nh5tget_pad_c H5_FC_FUNC_(h5tget_pad_c, H5TGET_PAD_C)
+#define nh5tset_pad_c H5_FC_FUNC_(h5tset_pad_c, H5TSET_PAD_C)
+#define nh5tget_sign_c H5_FC_FUNC_(h5tget_sign_c, H5TGET_SIGN_C)
+#define nh5tset_sign_c H5_FC_FUNC_(h5tset_sign_c, H5TSET_SIGN_C)
+#define nh5tget_fields_c H5_FC_FUNC_(h5tget_fields_c, H5TGET_FIELDS_C)
+#define nh5tset_fields_c H5_FC_FUNC_(h5tset_fields_c, H5TSET_FIELDS_C)
+#define nh5tget_ebias_c H5_FC_FUNC_(h5tget_ebias_c, H5TGET_EBIAS_C)
+#define nh5tset_ebias_c H5_FC_FUNC_(h5tset_ebias_c, H5TSET_EBIAS_C)
+#define nh5tget_norm_c H5_FC_FUNC_(h5tget_norm_c, H5TGET_NORM_C)
+#define nh5tset_norm_c H5_FC_FUNC_(h5tset_norm_c, H5TSET_NORM_C)
+#define nh5tget_inpad_c H5_FC_FUNC_(h5tget_inpad_c, H5TGET_INPAD_C)
+#define nh5tset_inpad_c H5_FC_FUNC_(h5tset_inpad_c, H5TSET_INPAD_C)
+#define nh5tget_cset_c H5_FC_FUNC_(h5tget_cset_c, H5TGET_CSET_C)
+#define nh5tset_cset_c H5_FC_FUNC_(h5tset_cset_c, H5TSET_CSET_C)
+#define nh5tget_strpad_c H5_FC_FUNC_(h5tget_strpad_c, H5TGET_STRPAD_C)
+#define nh5tset_strpad_c H5_FC_FUNC_(h5tset_strpad_c, H5TSET_STRPAD_C)
+#define nh5tget_nmembers_c H5_FC_FUNC_(h5tget_nmembers_c, H5TGET_NMEMBERS_C)
+#define nh5tget_member_name_c H5_FC_FUNC_(h5tget_member_name_c, H5TGET_MEMBER_NAME_C)
+#define nh5tget_member_offset_c H5_FC_FUNC_(h5tget_member_offset_c, H5TGET_MEMBER_OFFSET_C)
+#define nh5tget_member_dims_c H5_FC_FUNC_(h5tget_member_dims_c, H5TGET_MEMBER_DIMS_C)
+#define nh5tget_member_type_c H5_FC_FUNC_(h5tget_member_type_c, H5TGET_MEMBER_TYPE_C)
+#define nh5tget_member_index_c H5_FC_FUNC_(h5tget_member_index_c, H5TGET_MEMBER_INDEX_C)
+#define nh5tinsert_c H5_FC_FUNC_(h5tinsert_c, H5TINSERT_C)
+#define nh5tcreate_c H5_FC_FUNC_(h5tcreate_c, H5TCREATE_C)
+#define nh5tpack_c H5_FC_FUNC_(h5tpack_c, H5TPACK_C)
+#define nh5tinsert_array_c H5_FC_FUNC_(h5tinsert_array_c, H5TINSERT_ARRAY_C)
+#define nh5tinsert_array_c2 H5_FC_FUNC_(h5tinsert_array_c2, H5TINSERT_ARRAY_C2)
+#define nh5tenum_create_c H5_FC_FUNC_(h5tenum_create_c, H5TENUM_CREATE_C)
+#define nh5tenum_insert_c H5_FC_FUNC_(h5tenum_insert_c, H5TENUM_INSERT_C)
+#define nh5tenum_nameof_c H5_FC_FUNC_(h5tenum_nameof_c, H5TENUM_NAMEOF_C)
+#define nh5tenum_valueof_c H5_FC_FUNC_(h5tenum_valueof_c, H5TENUM_VALUEOF_C)
+#define nh5tget_member_value_c H5_FC_FUNC_(h5tget_member_value_c, H5TGET_MEMBER_VALUE_C)
+#define nh5tset_tag_c H5_FC_FUNC_(h5tset_tag_c, H5TSET_TAG_C)
+#define nh5tget_tag_c H5_FC_FUNC_(h5tget_tag_c, H5TGET_TAG_C)
+#define nh5tarray_create_c H5_FC_FUNC_(h5tarray_create_c, H5TARRAY_CREATE_C)
+#define nh5tget_array_ndims_c H5_FC_FUNC_(h5tget_array_ndims_c, H5TGET_ARRAY_NDIMS_C)
+#define nh5tget_array_dims_c H5_FC_FUNC_(h5tget_array_dims_c, H5TGET_ARRAY_DIMS_C)
+#define nh5tget_super_c H5_FC_FUNC_(h5tget_super_c, H5TGET_SUPER_C)
+#define nh5tvlen_create_c H5_FC_FUNC_(h5tvlen_create_c, H5TVLEN_CREATE_C)
+#define nh5tis_variable_str_c H5_FC_FUNC_(h5tis_variable_str_c, H5TIS_VARIABLE_STR_C)
+#define nh5tget_member_class_c H5_FC_FUNC_(h5tget_member_class_c, H5TGET_MEMBER_CLASS_C)
+#define nh5tcommit_anon_c H5_FC_FUNC_(h5tcommit_anon_c, H5TCOMMIT_ANON_C)
+#define nh5tdecode_c H5_FC_FUNC_(h5tdecode_c, H5TDECODE_C)
+#define nh5tencode_c H5_FC_FUNC_(h5tencode_c, H5TENCODE_C)
+#define nh5tget_create_plist_c H5_FC_FUNC_(h5tget_create_plist_c, H5TGET_CREATE_PLIST_C)
+#define nh5tcompiler_conv_c H5_FC_FUNC_(h5tcompiler_conv_c, H5TCOMPILER_CONV_C)
+#define nh5tget_native_type_c H5_FC_FUNC_(h5tget_native_type_c, H5TGET_NATIVE_TYPE_C )
H5_FCDLL int_f nh5tcreate_c(int_f *cls, size_t_f *size, hid_t_f *type_id);
H5_FCDLL int_f nh5topen_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *type_id, hid_t_f *tapl_id );
@@ -719,7 +731,7 @@ H5_FCDLL int_f nh5tenum_nameof_c(hid_t_f *type_id, int_f* value, _fcd name, size
H5_FCDLL int_f nh5tenum_valueof_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value);
H5_FCDLL int_f nh5tget_member_value_c(hid_t_f *type_id, int_f* member_no, int_f* value);
H5_FCDLL int_f nh5tset_tag_c(hid_t_f* type_id, _fcd tag, int_f* namelen);
-H5_FCDLL int_f nh5tget_tag_c(hid_t_f* type_id, _fcd tag, int_f* namelen);
+H5_FCDLL int_f nh5tget_tag_c(hid_t_f* type_id, _fcd tag, size_t_f* tag_size, int_f* namelen);
H5_FCDLL int_f nh5tarray_create_c(hid_t_f * base_id, int_f *rank, hsize_t_f* dims, hid_t_f* type_id);
H5_FCDLL int_f nh5tget_array_dims_c ( hid_t_f *type_id , hsize_t_f * dims);
H5_FCDLL int_f nh5tget_array_ndims_c ( hid_t_f *type_id , int_f * ndims);
@@ -733,180 +745,187 @@ H5_FCDLL int_f nh5tencode_c (_fcd buf, hid_t_f *obj_id, size_t_f *nalloc );
H5_FCDLL int_f nh5tget_create_plist_c ( hid_t_f *dtype_id, hid_t_f *dtpl_id);
H5_FCDLL int_f nh5tcompiler_conv_c ( hid_t_f *src_id, hid_t_f *dst_id, int_f *c_flag);
H5_FCDLL int_f nh5tget_native_type_c(hid_t_f *dtype_id, int_f *direction, hid_t_f *native_dtype_id);
+H5_FCDLL int_f nh5tconvert_c(hid_t_f *src_id, hid_t_f *dst_id, size_t_f *nelmts, void *buf, void *background, hid_t_f *plist_id);
/*
* Functions from H5Of.c
*/
-# define nh5olink_c H5_FC_FUNC_(h5olink_c, H5OLINK_C)
-# define nh5oopen_c H5_FC_FUNC_(h5oopen_c, H5OOPEN_C)
-# define nh5oopen_by_addr_c H5_FC_FUNC_(h5oopen_by_addr_c, H5OOPEN_BY_ADDR_C)
-
+#define nh5olink_c H5_FC_FUNC_(h5olink_c, H5OLINK_C)
+#define nh5oopen_c H5_FC_FUNC_(h5oopen_c, H5OOPEN_C)
+#define nh5oclose_c H5_FC_FUNC_(h5oclose_c, H5OCLOSE_C)
+#define nh5ovisit_c H5_FC_FUNC_(h5ovisit_c,H5OVISIT_C)
+#define nh5oget_info_by_name_c H5_FC_FUNC_(h5oget_info_by_name_c ,H5OGET_INFO_BY_NAME_C)
+#define nh5oopen_by_addr_c H5_FC_FUNC_(h5oopen_by_addr_c, H5OOPEN_BY_ADDR_C)
H5_FCDLL int_f nh5oopen_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, hid_t_f *obj_id);
+H5_FCDLL int_f nh5oclose_c (hid_t_f *object_id );
H5_FCDLL int_f nh5oopen_by_addr_c (hid_t_f *loc_id, haddr_t_f *addr, hid_t_f *obj_id);
H5_FCDLL int_f nh5olink_c (hid_t_f *object_id, hid_t_f *new_loc_id, _fcd name, size_t_f *namelen,
hid_t_f *lcpl_id, hid_t_f *lapl_id);
+H5_FCDLL int_f nh5ovisit_c (hid_t_f *group_id, int_f *index_type, int_f *order, H5O_iterate_t op, void *op_data);
+H5_FCDLL int_f nh5oget_info_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen,hid_t_f *lapl_id,
+ H5O_info_t *object_info);
/*
* Functions from H5Pf.c
*/
-# define nh5pcreate_c H5_FC_FUNC_(h5pcreate_c, H5PCREATE_C)
-# define nh5pclose_c H5_FC_FUNC_(h5pclose_c, H5PCLOSE_C)
-# define nh5pcopy_c H5_FC_FUNC_(h5pcopy_c, H5PCOPY_C)
-# define nh5pequal_c H5_FC_FUNC_(h5pequal_c, H5PEQUAL_C)
-# define nh5pget_class_c H5_FC_FUNC_(h5pget_class_c, H5PGET_CLASS_C)
-# define nh5pset_deflate_c H5_FC_FUNC_(h5pset_deflate_c, H5PSET_DEFLATE_C)
-# define nh5pset_preserve_c H5_FC_FUNC_(h5pset_preserve_c, H5PSET_PRESERVE_C)
-# define nh5pget_preserve_c H5_FC_FUNC_(h5pget_preserve_c, H5PGET_PRESERVE_C)
-# define nh5pset_chunk_c H5_FC_FUNC_(h5pset_chunk_c, H5PSET_CHUNK_C)
-# define nh5pget_chunk_c H5_FC_FUNC_(h5pget_chunk_c, H5PGET_CHUNK_C)
-# define nh5pset_fill_valuec_c H5_FC_FUNC_(h5pset_fill_valuec_c, H5PSET_FILL_VALUEC_C)
-# define nh5pset_fill_value_c H5_FC_FUNC_(h5pset_fill_value_c, H5PSET_FILL_VALUE_C)
-# define nh5pset_fill_value_integer_c H5_FC_FUNC_(h5pset_fill_value_integer_c, H5PSET_FILL_VALUE_INTEGER_C)
-# define nh5pset_fill_value_real_c H5_FC_FUNC_(h5pset_fill_value_real_c, H5PSET_FILL_VALUE_REAL_C)
-# define nh5pset_fill_value_double_c H5_FC_FUNC_(h5pset_fill_value_double_c, H5PSET_FILL_VALUE_DOUBLE_C)
-# define nh5pget_fill_valuec_c H5_FC_FUNC_(h5pget_fill_valuec_c, H5PGET_FILL_VALUEC_C)
-# define nh5pget_fill_value_c H5_FC_FUNC_(h5pget_fill_value_c, H5PGET_FILL_VALUE_C)
-# define nh5pget_fill_value_integer_c H5_FC_FUNC_(h5pget_fill_value_integer_c, H5PGET_FILL_VALUE_INTEGER_C)
-# define nh5pget_fill_value_real_c H5_FC_FUNC_(h5pget_fill_value_real_c, H5PGET_FILL_VALUE_REAL_C)
-# define nh5pget_fill_value_double_c H5_FC_FUNC_(h5pget_fill_value_double_c, H5PGET_FILL_VALUE_DOUBLE_C)
-# define nh5pget_version_c H5_FC_FUNC_(h5pget_version_c, H5PGET_VERSION_C)
-# define nh5pget_userblock_c H5_FC_FUNC_(h5pget_userblock_c, H5PGET_USERBLOCK_C)
-# define nh5pset_userblock_c H5_FC_FUNC_(h5pset_userblock_c, H5PSET_USERBLOCK_C)
-# define nh5pset_sizes_c H5_FC_FUNC_(h5pset_sizes_c, H5PSET_SIZES_C)
-# define nh5pget_sizes_c H5_FC_FUNC_(h5pget_sizes_c, H5PGET_SIZES_C)
-# define nh5pget_sym_k_c H5_FC_FUNC_(h5pget_sym_k_c, H5PGET_SYM_K_C)
-# define nh5pset_sym_k_c H5_FC_FUNC_(h5pset_sym_k_c, H5PSET_SYM_K_C)
-# define nh5pget_istore_k_c H5_FC_FUNC_(h5pget_istore_k_c, H5PGET_ISTORE_K_C)
-# define nh5pset_istore_k_c H5_FC_FUNC_(h5pset_istore_k_c, H5PSET_ISTORE_K_C)
-# define nh5pget_driver_c H5_FC_FUNC_(h5pget_driver_c, H5PGET_DRIVER_C)
-# define nh5pset_fapl_stdio_c H5_FC_FUNC_(h5pset_fapl_stdio_c, H5PSET_FAPL_STDIO_C)
-# define nh5pget_fapl_stdio_c H5_FC_FUNC_(h5pget_fapl_stdio_c, H5PGET_FAPL_STDIO_C)
-# define nh5pset_fapl_sec2_c H5_FC_FUNC_(h5pset_fapl_sec2_c, H5PSET_FAPL_SEC2_C)
-# define nh5pget_fapl_sec2_c H5_FC_FUNC_(h5pget_fapl_sec2_c, H5PGET_FAPL_SEC2_C)
-# define nh5pset_alignment_c H5_FC_FUNC_(h5pset_alignment_c, H5PSET_ALIGNMENT_C)
-# define nh5pget_alignment_c H5_FC_FUNC_(h5pget_alignment_c, H5PGET_ALIGNMENT_C)
-# define nh5pset_fapl_core_c H5_FC_FUNC_(h5pset_fapl_core_c, H5PSET_FAPL_CORE_C)
-# define nh5pget_fapl_core_c H5_FC_FUNC_(h5pget_fapl_core_c, H5PGET_FAPL_CORE_C)
-# define nh5pset_fapl_family_c H5_FC_FUNC_(h5pset_fapl_family_c, H5PSET_FAPL_FAMILY_C)
-# define nh5pget_fapl_family_c H5_FC_FUNC_(h5pget_fapl_family_c, H5PGET_FAPL_FAMILY_C)
-# define nh5pset_cache_c H5_FC_FUNC_(h5pset_cache_c, H5PSET_CACHE_C)
-# define nh5pget_cache_c H5_FC_FUNC_(h5pget_cache_c, H5PGET_CACHE_C)
-# define nh5pset_fapl_split_c H5_FC_FUNC_(h5pset_fapl_split_c, H5PSET_FAPL_SPLIT_C)
-# define nh5pget_fapl_split_c H5_FC_FUNC_(h5pget_fapl_split_c, H5PGET_FAPL_SPLIT_C)
-# define nh5pset_gc_references_c H5_FC_FUNC_(h5pset_gc_references_c, H5PSET_GC_REFERENCES_C)
-# define nh5pget_gc_references_c H5_FC_FUNC_(h5pget_gc_references_c, H5PGET_GC_REFERENCES_C)
-# define nh5pset_layout_c H5_FC_FUNC_(h5pset_layout_c, H5PSET_LAYOUT_C)
-# define nh5pget_layout_c H5_FC_FUNC_(h5pget_layout_c, H5PGET_LAYOUT_C)
-# define nh5pset_filter_c H5_FC_FUNC_(h5pset_filter_c, H5PSET_FILTER_C)
-# define nh5premove_filter_c H5_FC_FUNC_(h5premove_filter_c, H5PREMOVE_FILTER_C)
-# define nh5pmodify_filter_c H5_FC_FUNC_(h5pmodify_filter_c, H5PMODIFY_FILTER_C)
-# define nh5pget_nfilters_c H5_FC_FUNC_(h5pget_nfilters_c, H5PGET_NFILTERS_C)
-# define nh5pget_filter_c H5_FC_FUNC_(h5pget_filter_c, H5PGET_FILTER_C)
-# define nh5pget_filter_by_id_c H5_FC_FUNC_(h5pget_filter_by_id_c, H5PGET_FILTER_BY_ID_C)
-# define nh5pset_external_c H5_FC_FUNC_(h5pset_external_c, H5PSET_EXTERNAL_C)
-# define nh5pget_external_count_c H5_FC_FUNC_(h5pget_external_count_c, H5PGET_EXTERNAL_COUNT_C)
-# define nh5pget_external_c H5_FC_FUNC_(h5pget_external_c, H5PGET_EXTERNAL_C)
-# define nh5pget_btree_ratios_c H5_FC_FUNC_(h5pget_btree_ratios_c, H5PGET_BTREE_RATIOS_C)
-# define nh5pset_btree_ratios_c H5_FC_FUNC_(h5pset_btree_ratios_c, H5PSET_BTREE_RATIOS_C)
-# define nh5pset_fapl_mpio_c H5_FC_FUNC_(h5pset_fapl_mpio_c, H5PSET_FAPL_MPIO_C)
-# define nh5pget_fapl_mpio_c H5_FC_FUNC_(h5pget_fapl_mpio_c, H5PGET_FAPL_MPIO_C)
-# define nh5pset_fapl_mpiposix_c H5_FC_FUNC_(h5pset_fapl_mpiposix_c, H5PSET_FAPL_MPIPOSIX_C)
-# define nh5pget_fapl_mpiposix_c H5_FC_FUNC_(h5pget_fapl_mpiposix_c, H5PGET_FAPL_MPIPOSIX_C)
-# define nh5pset_dxpl_mpio_c H5_FC_FUNC_(h5pset_dxpl_mpio_c, H5PSET_DXPL_MPIO_C)
-# define nh5pget_dxpl_mpio_c H5_FC_FUNC_(h5pget_dxpl_mpio_c, H5PGET_DXPL_MPIO_C)
-# define nh5pget_fclose_degree_c H5_FC_FUNC_(h5pget_fclose_degree_c, H5PGET_FCLOSE_DEGREE_C)
-# define nh5pset_fclose_degree_c H5_FC_FUNC_(h5pset_fclose_degree_c, H5PSET_FCLOSE_DEGREE_C)
-# define nh5pset_buffer_c H5_FC_FUNC_(h5pset_buffer_c, H5PSET_BUFFER_C)
-# define nh5pget_buffer_c H5_FC_FUNC_(h5pget_buffer_c, H5PGET_BUFFER_C)
-# define nh5pfill_value_defined_c H5_FC_FUNC_(h5pfill_value_defined_c, H5PFILL_VALUE_DEFINED_C)
-# define nh5pset_alloc_time_c H5_FC_FUNC_(h5pset_alloc_time_c, H5PSET_ALLOC_TIME_C)
-# define nh5pget_alloc_time_c H5_FC_FUNC_(h5pget_alloc_time_c, H5PGET_ALLOC_TIME_C)
-# define nh5pset_fill_time_c H5_FC_FUNC_(h5pset_fill_time_c, H5PSET_FILL_TIME_C)
-# define nh5pget_fill_time_c H5_FC_FUNC_(h5pget_fill_time_c, H5PGET_FILL_TIME_C)
-# define nh5pset_meta_block_size_c H5_FC_FUNC_(h5pset_meta_block_size_c, H5PSET_META_BLOCK_SIZE_C)
-# define nh5pget_meta_block_size_c H5_FC_FUNC_(h5pget_meta_block_size_c, H5PGET_META_BLOCK_SIZE_C)
-# define nh5pset_sieve_buf_size_c H5_FC_FUNC_(h5pset_sieve_buf_size_c, H5PSET_SIEVE_BUF_SIZE_C)
-# define nh5pget_sieve_buf_size_c H5_FC_FUNC_(h5pget_sieve_buf_size_c, H5PGET_SIEVE_BUF_SIZE_C)
-# define nh5pset_hyper_vector_size_c H5_FC_FUNC_(h5pset_hyper_vector_size_c, H5PSET_HYPER_VECTOR_SIZE_C)
-# define nh5pget_hyper_vector_size_c H5_FC_FUNC_(h5pget_hyper_vector_size_c, H5PGET_HYPER_VECTOR_SIZE_C)
-# define nh5pset_small_data_block_size_c H5_FC_FUNC_(h5pset_small_data_block_size_c, H5PSET_SMALL_DATA_BLOCK_SIZE_C)
-# define nh5pget_small_data_block_size_c H5_FC_FUNC_(h5pget_small_data_block_size_c, H5PGET_SMALL_DATA_BLOCK_SIZE_C)
-# define nh5pcreate_class_c H5_FC_FUNC_(h5pcreate_class_c, H5PCREATE_CLASS_C)
-# define nh5pregister_c H5_FC_FUNC_(h5pregister_c, H5PREGISTER_C)
-# define nh5pregister_integer_c H5_FC_FUNC_(h5pregister_integer_c, H5PREGISTER_INTEGER_C)
-# define nh5pregister_real_c H5_FC_FUNC_(h5pregister_real_c, H5PREGISTER_REAL_C)
-# define nh5pregister_double_c H5_FC_FUNC_(h5pregister_double_c, H5PREGISTER_DOUBLE_C)
-# define nh5pregisterc_c H5_FC_FUNC_(h5pregisterc_c, H5PREGISTERC_C)
-# define nh5pinsert_c H5_FC_FUNC_(h5pinsert_c, H5PINSERT_C)
-# define nh5pinsert_integer_c H5_FC_FUNC_(h5pinsert_integer_c, H5PINSERT_INTEGER_C)
-# define nh5pinsert_real_c H5_FC_FUNC_(h5pinsert_real_c, H5PINSERT_REAL_C)
-# define nh5pinsert_double_c H5_FC_FUNC_(h5pinsert_double_c, H5PINSERT_DOUBLE_C)
-# define nh5pinsertc_c H5_FC_FUNC_(h5pinsertc_c, H5PINSERTC_C)
-# define nh5pset_c H5_FC_FUNC_(h5pset_c, H5PSET_C)
-# define nh5pset_integer_c H5_FC_FUNC_(h5pset_integer_c, H5PSET_INTEGER_C)
-# define nh5pset_real_c H5_FC_FUNC_(h5pset_real_c, H5PSET_REAL_C)
-# define nh5pset_double_c H5_FC_FUNC_(h5pset_double_c, H5PSET_DOUBLE_C)
-# define nh5psetc_c H5_FC_FUNC_(h5psetc_c, H5PSETC_C)
-# define nh5pget_c H5_FC_FUNC_(h5pget_c, H5PGET_C)
-# define nh5pget_integer_c H5_FC_FUNC_(h5pget_integer_c, H5PGET_INTEGER_C)
-# define nh5pget_real_c H5_FC_FUNC_(h5pget_real_c, H5PGET_REAL_C)
-# define nh5pget_double_c H5_FC_FUNC_(h5pget_double_c, H5PGET_DOUBLE_C)
-# define nh5pgetc_c H5_FC_FUNC_(h5pgetc_c, H5PGETC_C)
-# define nh5pexist_c H5_FC_FUNC_(h5pexist_c, H5PEXIST_C)
-# define nh5pget_size_c H5_FC_FUNC_(h5pget_size_c, H5PGET_SIZE_C)
-# define nh5pget_nprops_c H5_FC_FUNC_(h5pget_nprops_c, H5PGET_NPROPS_C)
-# define nh5pget_class_parent_c H5_FC_FUNC_(h5pget_class_parent_c, H5PGET_CLASS_PARENT_C)
-# define nh5pisa_class_c H5_FC_FUNC_(h5pisa_class_c, H5PISA_CLASS_C)
-# define nh5pcopy_prop_c H5_FC_FUNC_(h5pcopy_prop_c, H5PCOPY_PROP_C)
-# define nh5premove_c H5_FC_FUNC_(h5premove_c, H5PREMOVE_C)
-# define nh5punregister_c H5_FC_FUNC_(h5punregister_c, H5PUNREGISTER_C)
-# define nh5pclose_class_c H5_FC_FUNC_(h5pclose_class_c, H5PCLOSE_CLASS_C)
-# define nh5pget_class_name_c H5_FC_FUNC_(h5pget_class_name_c, H5PGET_CLASS_NAME_C)
-# define nh5pset_shuffle_c H5_FC_FUNC_(h5pset_shuffle_c, H5PSET_SHUFFLE_C)
-# define nh5pset_fletcher32_c H5_FC_FUNC_(h5pset_fletcher32_c, H5PSET_FLETCHER32_C)
-# define nh5pset_edc_check_c H5_FC_FUNC_(h5pset_edc_check_c, H5PSET_EDC_CHECK_C)
-# define nh5pget_edc_check_c H5_FC_FUNC_(h5pget_edc_check_c, H5PGET_EDC_CHECK_C)
-# define nh5pset_family_offset_c H5_FC_FUNC_(h5pset_family_offset_c, H5PSET_FAMILY_OFFSET_C)
-# define nh5pget_fapl_multi_c H5_FC_FUNC_(h5pget_fapl_multi_c, H5PGET_FAPL_MULTI_C)
-# define nh5pset_fapl_multi_c H5_FC_FUNC_(h5pset_fapl_multi_c, H5PSET_FAPL_MULTI_C)
-# define nh5pset_fapl_multi_sc H5_FC_FUNC_(h5pset_fapl_multi_sc, H5PSET_FAPL_MULTI_SC)
-# define nh5pset_szip_c H5_FC_FUNC_(h5pset_szip_c, H5PSET_SZIP_C)
-# define nh5pall_filters_avail_c H5_FC_FUNC_(h5pall_filters_avail_c, H5PALL_FILTERS_AVAIL_C)
-# define nh5pget_attr_phase_change_c H5_FC_FUNC_(h5pget_attr_phase_change_c, H5PGET_ATTR_PHASE_CHANGE_C)
-# define nh5pset_attr_creation_order_c H5_FC_FUNC_(h5pset_attr_creation_order_c, H5PSET_ATTR_CREATION_ORDER_C)
-# define nh5pset_shared_mesg_nindexes_c H5_FC_FUNC_(h5pset_shared_mesg_nindexes_c, H5PSET_SHARED_MESG_NINDEXES_C)
-# define nh5pset_shared_mesg_index_c H5_FC_FUNC_(h5pset_shared_mesg_index_c,H5PSET_SHARED_MESG_INDEX_C)
-# define nh5pget_attr_creation_order_c H5_FC_FUNC_(h5pget_attr_creation_order_c,H5PGET_ATTR_CREATION_ORDER_C)
-# define nh5pset_libver_bounds_c H5_FC_FUNC_(h5pset_libver_bounds_c,H5PSET_LIBVER_BOUNDS_C)
-# define nh5pset_link_creation_order_c H5_FC_FUNC_(h5pset_link_creation_order_c, H5PSET_LINK_CREATION_ORDER_C)
-# define nh5pget_link_phase_change_c H5_FC_FUNC_(h5pget_link_phase_change_c, H5PGET_LINK_PHASE_CHANGE_C)
-# define nh5pget_obj_track_times_c H5_FC_FUNC_(h5pget_obj_track_times_c, H5PGET_OBJ_TRACK_TIMES_C)
-# define nh5pset_obj_track_times_c H5_FC_FUNC_(h5pset_obj_track_times_c, H5PSET_OBJ_TRACK_TIMES_C)
-# define nh5pset_create_inter_group_c H5_FC_FUNC_(h5pset_create_inter_group_c,H5PSET_CREATE_INTER_GROUP_C)
-# define nh5pget_create_inter_group_c H5_FC_FUNC_(h5pget_create_inter_group_c,H5PGET_CREATE_INTER_GROUP_C)
-# define nh5pget_link_creation_order_c H5_FC_FUNC_(h5pget_link_creation_order_c,H5PGET_LINK_CREATION_ORDER_C)
-# define nh5pset_char_encoding_c H5_FC_FUNC_(h5pset_char_encoding_c, H5PSET_CHAR_ENCODING_C)
-# define nh5pget_char_encoding_c H5_FC_FUNC_(h5pget_char_encoding_c, H5PGET_CHAR_ENCODING_C)
-# define nh5pset_copy_object_c H5_FC_FUNC_(h5pset_copy_object_c, H5PSET_COPY_OBJECT_C)
-# define nh5pget_copy_object_c H5_FC_FUNC_(h5pget_copy_object_c, H5PGET_COPY_OBJECT_C)
-# define nh5pget_data_transform_c H5_FC_FUNC_(h5pget_data_transform_c, H5PGET_DATA_TRANSFORM_C)
-# define nh5pset_data_transform_c H5_FC_FUNC_(h5pset_data_transform_c, H5PSET_DATA_TRANSFORM_C)
-# define nh5pget_local_heap_size_hint_c H5_FC_FUNC_(h5pget_local_heap_size_hint_c, H5PGET_LOCAL_HEAP_SIZE_HINT_C)
-# define nh5pget_est_link_info_c H5_FC_FUNC_(h5pget_est_link_info_c,H5PGET_EST_LINK_INFO_C)
-# define nh5pset_est_link_info_c H5_FC_FUNC_(h5pset_est_link_info_c,H5PSET_EST_LINK_INFO_C)
-# define nh5pset_local_heap_size_hint_c H5_FC_FUNC_(h5pset_local_heap_size_hint_c, H5PSET_LOCAL_HEAP_SIZE_HINT_C)
-# define nh5pset_link_phase_change_c H5_FC_FUNC_(h5pset_link_phase_change_c, H5PSET_LINK_PHASE_CHANGE_C)
-# define nh5pset_fapl_direct_c H5_FC_FUNC_(h5pset_fapl_direct_c, H5PSET_FAPL_DIRECT_C)
-# define nh5pget_fapl_direct_c H5_FC_FUNC_(h5pget_fapl_direct_c, H5PGET_FAPL_DIRECT_C)
-# define nh5pset_attr_phase_change_c H5_FC_FUNC_(h5pset_attr_phase_change_c, H5PSET_ATTR_PHASE_CHANGE_C)
-# define nh5pset_nbit_c H5_FC_FUNC_(h5pset_nbit_c, H5PSET_NBIT_C)
-# define nh5pset_scaleoffset_c H5_FC_FUNC_(h5pset_scaleoffset_c, H5PSET_SCALEOFFSET_C)
-# define nh5pset_nlinks_c H5_FC_FUNC_(h5pset_nlinks_c, H5PSET_NLINKS_C)
-# define nh5pget_nlinks_c H5_FC_FUNC_(h5pget_nlinks_c, H5PGET_NLINKS_C)
-# define nh5pset_chunk_cache_c H5_FC_FUNC_(h5pset_chunk_cache_c, H5PSET_CHUNK_CACHE_C)
-# define nh5pget_chunk_cache_c H5_FC_FUNC_(h5pget_chunk_cache_c, H5PGET_CHUNK_CACHE_C)
+#define nh5pcreate_c H5_FC_FUNC_(h5pcreate_c, H5PCREATE_C)
+#define nh5pclose_c H5_FC_FUNC_(h5pclose_c, H5PCLOSE_C)
+#define nh5pcopy_c H5_FC_FUNC_(h5pcopy_c, H5PCOPY_C)
+#define nh5pequal_c H5_FC_FUNC_(h5pequal_c, H5PEQUAL_C)
+#define nh5pget_class_c H5_FC_FUNC_(h5pget_class_c, H5PGET_CLASS_C)
+#define nh5pset_deflate_c H5_FC_FUNC_(h5pset_deflate_c, H5PSET_DEFLATE_C)
+#define nh5pset_preserve_c H5_FC_FUNC_(h5pset_preserve_c, H5PSET_PRESERVE_C)
+#define nh5pget_preserve_c H5_FC_FUNC_(h5pget_preserve_c, H5PGET_PRESERVE_C)
+#define nh5pset_chunk_c H5_FC_FUNC_(h5pset_chunk_c, H5PSET_CHUNK_C)
+#define nh5pget_chunk_c H5_FC_FUNC_(h5pget_chunk_c, H5PGET_CHUNK_C)
+#define nh5pset_fill_valuec_c H5_FC_FUNC_(h5pset_fill_valuec_c, H5PSET_FILL_VALUEC_C)
+#define nh5pset_fill_value_c H5_FC_FUNC_(h5pset_fill_value_c, H5PSET_FILL_VALUE_C)
+#define nh5pset_fill_value_integer_c H5_FC_FUNC_(h5pset_fill_value_integer_c, H5PSET_FILL_VALUE_INTEGER_C)
+#define nh5pset_fill_value_real_c H5_FC_FUNC_(h5pset_fill_value_real_c, H5PSET_FILL_VALUE_REAL_C)
+#define nh5pset_fill_value_double_c H5_FC_FUNC_(h5pset_fill_value_double_c, H5PSET_FILL_VALUE_DOUBLE_C)
+#define nh5pget_fill_valuec_c H5_FC_FUNC_(h5pget_fill_valuec_c, H5PGET_FILL_VALUEC_C)
+#define nh5pget_fill_value_c H5_FC_FUNC_(h5pget_fill_value_c, H5PGET_FILL_VALUE_C)
+#define nh5pget_fill_value_integer_c H5_FC_FUNC_(h5pget_fill_value_integer_c, H5PGET_FILL_VALUE_INTEGER_C)
+#define nh5pget_fill_value_real_c H5_FC_FUNC_(h5pget_fill_value_real_c, H5PGET_FILL_VALUE_REAL_C)
+#define nh5pget_fill_value_double_c H5_FC_FUNC_(h5pget_fill_value_double_c, H5PGET_FILL_VALUE_DOUBLE_C)
+#define nh5pget_version_c H5_FC_FUNC_(h5pget_version_c, H5PGET_VERSION_C)
+#define nh5pget_userblock_c H5_FC_FUNC_(h5pget_userblock_c, H5PGET_USERBLOCK_C)
+#define nh5pset_userblock_c H5_FC_FUNC_(h5pset_userblock_c, H5PSET_USERBLOCK_C)
+#define nh5pset_sizes_c H5_FC_FUNC_(h5pset_sizes_c, H5PSET_SIZES_C)
+#define nh5pget_sizes_c H5_FC_FUNC_(h5pget_sizes_c, H5PGET_SIZES_C)
+#define nh5pget_sym_k_c H5_FC_FUNC_(h5pget_sym_k_c, H5PGET_SYM_K_C)
+#define nh5pset_sym_k_c H5_FC_FUNC_(h5pset_sym_k_c, H5PSET_SYM_K_C)
+#define nh5pget_istore_k_c H5_FC_FUNC_(h5pget_istore_k_c, H5PGET_ISTORE_K_C)
+#define nh5pset_istore_k_c H5_FC_FUNC_(h5pset_istore_k_c, H5PSET_ISTORE_K_C)
+#define nh5pget_driver_c H5_FC_FUNC_(h5pget_driver_c, H5PGET_DRIVER_C)
+#define nh5pset_fapl_stdio_c H5_FC_FUNC_(h5pset_fapl_stdio_c, H5PSET_FAPL_STDIO_C)
+#define nh5pget_fapl_stdio_c H5_FC_FUNC_(h5pget_fapl_stdio_c, H5PGET_FAPL_STDIO_C)
+#define nh5pset_fapl_sec2_c H5_FC_FUNC_(h5pset_fapl_sec2_c, H5PSET_FAPL_SEC2_C)
+#define nh5pget_fapl_sec2_c H5_FC_FUNC_(h5pget_fapl_sec2_c, H5PGET_FAPL_SEC2_C)
+#define nh5pset_alignment_c H5_FC_FUNC_(h5pset_alignment_c, H5PSET_ALIGNMENT_C)
+#define nh5pget_alignment_c H5_FC_FUNC_(h5pget_alignment_c, H5PGET_ALIGNMENT_C)
+#define nh5pset_fapl_core_c H5_FC_FUNC_(h5pset_fapl_core_c, H5PSET_FAPL_CORE_C)
+#define nh5pget_fapl_core_c H5_FC_FUNC_(h5pget_fapl_core_c, H5PGET_FAPL_CORE_C)
+#define nh5pset_fapl_family_c H5_FC_FUNC_(h5pset_fapl_family_c, H5PSET_FAPL_FAMILY_C)
+#define nh5pget_fapl_family_c H5_FC_FUNC_(h5pget_fapl_family_c, H5PGET_FAPL_FAMILY_C)
+#define nh5pset_cache_c H5_FC_FUNC_(h5pset_cache_c, H5PSET_CACHE_C)
+#define nh5pget_cache_c H5_FC_FUNC_(h5pget_cache_c, H5PGET_CACHE_C)
+#define nh5pset_fapl_split_c H5_FC_FUNC_(h5pset_fapl_split_c, H5PSET_FAPL_SPLIT_C)
+#define nh5pget_fapl_split_c H5_FC_FUNC_(h5pget_fapl_split_c, H5PGET_FAPL_SPLIT_C)
+#define nh5pset_gc_references_c H5_FC_FUNC_(h5pset_gc_references_c, H5PSET_GC_REFERENCES_C)
+#define nh5pget_gc_references_c H5_FC_FUNC_(h5pget_gc_references_c, H5PGET_GC_REFERENCES_C)
+#define nh5pset_layout_c H5_FC_FUNC_(h5pset_layout_c, H5PSET_LAYOUT_C)
+#define nh5pget_layout_c H5_FC_FUNC_(h5pget_layout_c, H5PGET_LAYOUT_C)
+#define nh5pset_filter_c H5_FC_FUNC_(h5pset_filter_c, H5PSET_FILTER_C)
+#define nh5premove_filter_c H5_FC_FUNC_(h5premove_filter_c, H5PREMOVE_FILTER_C)
+#define nh5pmodify_filter_c H5_FC_FUNC_(h5pmodify_filter_c, H5PMODIFY_FILTER_C)
+#define nh5pget_nfilters_c H5_FC_FUNC_(h5pget_nfilters_c, H5PGET_NFILTERS_C)
+#define nh5pget_filter_c H5_FC_FUNC_(h5pget_filter_c, H5PGET_FILTER_C)
+#define nh5pget_filter_by_id_c H5_FC_FUNC_(h5pget_filter_by_id_c, H5PGET_FILTER_BY_ID_C)
+#define nh5pset_external_c H5_FC_FUNC_(h5pset_external_c, H5PSET_EXTERNAL_C)
+#define nh5pget_external_count_c H5_FC_FUNC_(h5pget_external_count_c, H5PGET_EXTERNAL_COUNT_C)
+#define nh5pget_external_c H5_FC_FUNC_(h5pget_external_c, H5PGET_EXTERNAL_C)
+#define nh5pget_btree_ratios_c H5_FC_FUNC_(h5pget_btree_ratios_c, H5PGET_BTREE_RATIOS_C)
+#define nh5pset_btree_ratios_c H5_FC_FUNC_(h5pset_btree_ratios_c, H5PSET_BTREE_RATIOS_C)
+#define nh5pset_fapl_mpio_c H5_FC_FUNC_(h5pset_fapl_mpio_c, H5PSET_FAPL_MPIO_C)
+#define nh5pget_fapl_mpio_c H5_FC_FUNC_(h5pget_fapl_mpio_c, H5PGET_FAPL_MPIO_C)
+#define nh5pset_fapl_mpiposix_c H5_FC_FUNC_(h5pset_fapl_mpiposix_c, H5PSET_FAPL_MPIPOSIX_C)
+#define nh5pget_fapl_mpiposix_c H5_FC_FUNC_(h5pget_fapl_mpiposix_c, H5PGET_FAPL_MPIPOSIX_C)
+#define nh5pset_dxpl_mpio_c H5_FC_FUNC_(h5pset_dxpl_mpio_c, H5PSET_DXPL_MPIO_C)
+#define nh5pget_dxpl_mpio_c H5_FC_FUNC_(h5pget_dxpl_mpio_c, H5PGET_DXPL_MPIO_C)
+#define nh5pget_fclose_degree_c H5_FC_FUNC_(h5pget_fclose_degree_c, H5PGET_FCLOSE_DEGREE_C)
+#define nh5pset_fclose_degree_c H5_FC_FUNC_(h5pset_fclose_degree_c, H5PSET_FCLOSE_DEGREE_C)
+#define nh5pset_buffer_c H5_FC_FUNC_(h5pset_buffer_c, H5PSET_BUFFER_C)
+#define nh5pget_buffer_c H5_FC_FUNC_(h5pget_buffer_c, H5PGET_BUFFER_C)
+#define nh5pfill_value_defined_c H5_FC_FUNC_(h5pfill_value_defined_c, H5PFILL_VALUE_DEFINED_C)
+#define nh5pset_alloc_time_c H5_FC_FUNC_(h5pset_alloc_time_c, H5PSET_ALLOC_TIME_C)
+#define nh5pget_alloc_time_c H5_FC_FUNC_(h5pget_alloc_time_c, H5PGET_ALLOC_TIME_C)
+#define nh5pset_fill_time_c H5_FC_FUNC_(h5pset_fill_time_c, H5PSET_FILL_TIME_C)
+#define nh5pget_fill_time_c H5_FC_FUNC_(h5pget_fill_time_c, H5PGET_FILL_TIME_C)
+#define nh5pset_meta_block_size_c H5_FC_FUNC_(h5pset_meta_block_size_c, H5PSET_META_BLOCK_SIZE_C)
+#define nh5pget_meta_block_size_c H5_FC_FUNC_(h5pget_meta_block_size_c, H5PGET_META_BLOCK_SIZE_C)
+#define nh5pset_sieve_buf_size_c H5_FC_FUNC_(h5pset_sieve_buf_size_c, H5PSET_SIEVE_BUF_SIZE_C)
+#define nh5pget_sieve_buf_size_c H5_FC_FUNC_(h5pget_sieve_buf_size_c, H5PGET_SIEVE_BUF_SIZE_C)
+#define nh5pset_hyper_vector_size_c H5_FC_FUNC_(h5pset_hyper_vector_size_c, H5PSET_HYPER_VECTOR_SIZE_C)
+#define nh5pget_hyper_vector_size_c H5_FC_FUNC_(h5pget_hyper_vector_size_c, H5PGET_HYPER_VECTOR_SIZE_C)
+#define nh5pset_small_data_block_size_c H5_FC_FUNC_(h5pset_small_data_block_size_c, H5PSET_SMALL_DATA_BLOCK_SIZE_C)
+#define nh5pget_small_data_block_size_c H5_FC_FUNC_(h5pget_small_data_block_size_c, H5PGET_SMALL_DATA_BLOCK_SIZE_C)
+#define nh5pcreate_class_c H5_FC_FUNC_(h5pcreate_class_c, H5PCREATE_CLASS_C)
+#define nh5pregister_c H5_FC_FUNC_(h5pregister_c, H5PREGISTER_C)
+#define nh5pregister_integer_c H5_FC_FUNC_(h5pregister_integer_c, H5PREGISTER_INTEGER_C)
+#define nh5pregister_real_c H5_FC_FUNC_(h5pregister_real_c, H5PREGISTER_REAL_C)
+#define nh5pregister_double_c H5_FC_FUNC_(h5pregister_double_c, H5PREGISTER_DOUBLE_C)
+#define nh5pregisterc_c H5_FC_FUNC_(h5pregisterc_c, H5PREGISTERC_C)
+#define nh5pinsert_c H5_FC_FUNC_(h5pinsert_c, H5PINSERT_C)
+#define nh5pinsert_integer_c H5_FC_FUNC_(h5pinsert_integer_c, H5PINSERT_INTEGER_C)
+#define nh5pinsert_real_c H5_FC_FUNC_(h5pinsert_real_c, H5PINSERT_REAL_C)
+#define nh5pinsert_double_c H5_FC_FUNC_(h5pinsert_double_c, H5PINSERT_DOUBLE_C)
+#define nh5pinsertc_c H5_FC_FUNC_(h5pinsertc_c, H5PINSERTC_C)
+#define nh5pset_c H5_FC_FUNC_(h5pset_c, H5PSET_C)
+#define nh5pset_integer_c H5_FC_FUNC_(h5pset_integer_c, H5PSET_INTEGER_C)
+#define nh5pset_real_c H5_FC_FUNC_(h5pset_real_c, H5PSET_REAL_C)
+#define nh5pset_double_c H5_FC_FUNC_(h5pset_double_c, H5PSET_DOUBLE_C)
+#define nh5psetc_c H5_FC_FUNC_(h5psetc_c, H5PSETC_C)
+#define nh5pget_c H5_FC_FUNC_(h5pget_c, H5PGET_C)
+#define nh5pget_integer_c H5_FC_FUNC_(h5pget_integer_c, H5PGET_INTEGER_C)
+#define nh5pget_real_c H5_FC_FUNC_(h5pget_real_c, H5PGET_REAL_C)
+#define nh5pget_double_c H5_FC_FUNC_(h5pget_double_c, H5PGET_DOUBLE_C)
+#define nh5pgetc_c H5_FC_FUNC_(h5pgetc_c, H5PGETC_C)
+#define nh5pexist_c H5_FC_FUNC_(h5pexist_c, H5PEXIST_C)
+#define nh5pget_size_c H5_FC_FUNC_(h5pget_size_c, H5PGET_SIZE_C)
+#define nh5pget_nprops_c H5_FC_FUNC_(h5pget_nprops_c, H5PGET_NPROPS_C)
+#define nh5pget_class_parent_c H5_FC_FUNC_(h5pget_class_parent_c, H5PGET_CLASS_PARENT_C)
+#define nh5pisa_class_c H5_FC_FUNC_(h5pisa_class_c, H5PISA_CLASS_C)
+#define nh5pcopy_prop_c H5_FC_FUNC_(h5pcopy_prop_c, H5PCOPY_PROP_C)
+#define nh5premove_c H5_FC_FUNC_(h5premove_c, H5PREMOVE_C)
+#define nh5punregister_c H5_FC_FUNC_(h5punregister_c, H5PUNREGISTER_C)
+#define nh5pclose_class_c H5_FC_FUNC_(h5pclose_class_c, H5PCLOSE_CLASS_C)
+#define nh5pget_class_name_c H5_FC_FUNC_(h5pget_class_name_c, H5PGET_CLASS_NAME_C)
+#define nh5pset_shuffle_c H5_FC_FUNC_(h5pset_shuffle_c, H5PSET_SHUFFLE_C)
+#define nh5pset_fletcher32_c H5_FC_FUNC_(h5pset_fletcher32_c, H5PSET_FLETCHER32_C)
+#define nh5pset_edc_check_c H5_FC_FUNC_(h5pset_edc_check_c, H5PSET_EDC_CHECK_C)
+#define nh5pget_edc_check_c H5_FC_FUNC_(h5pget_edc_check_c, H5PGET_EDC_CHECK_C)
+#define nh5pset_family_offset_c H5_FC_FUNC_(h5pset_family_offset_c, H5PSET_FAMILY_OFFSET_C)
+#define nh5pget_fapl_multi_c H5_FC_FUNC_(h5pget_fapl_multi_c, H5PGET_FAPL_MULTI_C)
+#define nh5pset_fapl_multi_c H5_FC_FUNC_(h5pset_fapl_multi_c, H5PSET_FAPL_MULTI_C)
+#define nh5pset_fapl_multi_sc H5_FC_FUNC_(h5pset_fapl_multi_sc, H5PSET_FAPL_MULTI_SC)
+#define nh5pset_szip_c H5_FC_FUNC_(h5pset_szip_c, H5PSET_SZIP_C)
+#define nh5pall_filters_avail_c H5_FC_FUNC_(h5pall_filters_avail_c, H5PALL_FILTERS_AVAIL_C)
+#define nh5pget_attr_phase_change_c H5_FC_FUNC_(h5pget_attr_phase_change_c, H5PGET_ATTR_PHASE_CHANGE_C)
+#define nh5pset_attr_creation_order_c H5_FC_FUNC_(h5pset_attr_creation_order_c, H5PSET_ATTR_CREATION_ORDER_C)
+#define nh5pset_shared_mesg_nindexes_c H5_FC_FUNC_(h5pset_shared_mesg_nindexes_c, H5PSET_SHARED_MESG_NINDEXES_C)
+#define nh5pset_shared_mesg_index_c H5_FC_FUNC_(h5pset_shared_mesg_index_c,H5PSET_SHARED_MESG_INDEX_C)
+#define nh5pget_attr_creation_order_c H5_FC_FUNC_(h5pget_attr_creation_order_c,H5PGET_ATTR_CREATION_ORDER_C)
+#define nh5pset_libver_bounds_c H5_FC_FUNC_(h5pset_libver_bounds_c,H5PSET_LIBVER_BOUNDS_C)
+#define nh5pset_link_creation_order_c H5_FC_FUNC_(h5pset_link_creation_order_c, H5PSET_LINK_CREATION_ORDER_C)
+#define nh5pget_link_phase_change_c H5_FC_FUNC_(h5pget_link_phase_change_c, H5PGET_LINK_PHASE_CHANGE_C)
+#define nh5pget_obj_track_times_c H5_FC_FUNC_(h5pget_obj_track_times_c, H5PGET_OBJ_TRACK_TIMES_C)
+#define nh5pset_obj_track_times_c H5_FC_FUNC_(h5pset_obj_track_times_c, H5PSET_OBJ_TRACK_TIMES_C)
+#define nh5pset_create_inter_group_c H5_FC_FUNC_(h5pset_create_inter_group_c,H5PSET_CREATE_INTER_GROUP_C)
+#define nh5pget_create_inter_group_c H5_FC_FUNC_(h5pget_create_inter_group_c,H5PGET_CREATE_INTER_GROUP_C)
+#define nh5pget_link_creation_order_c H5_FC_FUNC_(h5pget_link_creation_order_c,H5PGET_LINK_CREATION_ORDER_C)
+#define nh5pset_char_encoding_c H5_FC_FUNC_(h5pset_char_encoding_c, H5PSET_CHAR_ENCODING_C)
+#define nh5pget_char_encoding_c H5_FC_FUNC_(h5pget_char_encoding_c, H5PGET_CHAR_ENCODING_C)
+#define nh5pset_copy_object_c H5_FC_FUNC_(h5pset_copy_object_c, H5PSET_COPY_OBJECT_C)
+#define nh5pget_copy_object_c H5_FC_FUNC_(h5pget_copy_object_c, H5PGET_COPY_OBJECT_C)
+#define nh5pget_data_transform_c H5_FC_FUNC_(h5pget_data_transform_c, H5PGET_DATA_TRANSFORM_C)
+#define nh5pset_data_transform_c H5_FC_FUNC_(h5pset_data_transform_c, H5PSET_DATA_TRANSFORM_C)
+#define nh5pget_local_heap_size_hint_c H5_FC_FUNC_(h5pget_local_heap_size_hint_c, H5PGET_LOCAL_HEAP_SIZE_HINT_C)
+#define nh5pget_est_link_info_c H5_FC_FUNC_(h5pget_est_link_info_c,H5PGET_EST_LINK_INFO_C)
+#define nh5pset_est_link_info_c H5_FC_FUNC_(h5pset_est_link_info_c,H5PSET_EST_LINK_INFO_C)
+#define nh5pset_local_heap_size_hint_c H5_FC_FUNC_(h5pset_local_heap_size_hint_c, H5PSET_LOCAL_HEAP_SIZE_HINT_C)
+#define nh5pset_link_phase_change_c H5_FC_FUNC_(h5pset_link_phase_change_c, H5PSET_LINK_PHASE_CHANGE_C)
+#define nh5pset_fapl_direct_c H5_FC_FUNC_(h5pset_fapl_direct_c, H5PSET_FAPL_DIRECT_C)
+#define nh5pget_fapl_direct_c H5_FC_FUNC_(h5pget_fapl_direct_c, H5PGET_FAPL_DIRECT_C)
+#define nh5pset_attr_phase_change_c H5_FC_FUNC_(h5pset_attr_phase_change_c, H5PSET_ATTR_PHASE_CHANGE_C)
+#define nh5pset_nbit_c H5_FC_FUNC_(h5pset_nbit_c, H5PSET_NBIT_C)
+#define nh5pset_scaleoffset_c H5_FC_FUNC_(h5pset_scaleoffset_c, H5PSET_SCALEOFFSET_C)
+#define nh5pset_nlinks_c H5_FC_FUNC_(h5pset_nlinks_c, H5PSET_NLINKS_C)
+#define nh5pget_nlinks_c H5_FC_FUNC_(h5pget_nlinks_c, H5PGET_NLINKS_C)
+#define nh5pset_chunk_cache_c H5_FC_FUNC_(h5pset_chunk_cache_c, H5PSET_CHUNK_CACHE_C)
+#define nh5pget_chunk_cache_c H5_FC_FUNC_(h5pget_chunk_cache_c, H5PGET_CHUNK_CACHE_C)
H5_FCDLL int_f nh5pcreate_c ( hid_t_f *cls, hid_t_f *prp_id );
H5_FCDLL int_f nh5pclose_c ( hid_t_f *prp_id );
@@ -977,7 +996,6 @@ H5_FCDLL int_f nh5pset_fclose_degree_c(hid_t_f *fapl, int_f *degree);
H5_FCDLL int_f nh5pget_fclose_degree_c(hid_t_f *fapl, int_f *degree);
H5_FCDLL int_f nh5pget_buffer_c(hid_t_f *plist, hsize_t_f *size);
H5_FCDLL int_f nh5pset_buffer_c(hid_t_f *plist, hsize_t_f *size);
-H5_FCDLL int_f nh5pfill_value_defined_c(hid_t_f *plist, int_f *flag);
H5_FCDLL int_f nh5pset_alloc_time_c(hid_t_f *plist, int_f *flag);
H5_FCDLL int_f nh5pget_alloc_time_c(hid_t_f *plist, int_f *flag);
H5_FCDLL int_f nh5pset_fill_time_c(hid_t_f *plist, int_f *flag);
@@ -990,7 +1008,10 @@ H5_FCDLL int_f nh5pset_small_data_block_size_c(hid_t_f *plist, hsize_t_f *size);
H5_FCDLL int_f nh5pget_small_data_block_size_c(hid_t_f *plist, hsize_t_f *size);
H5_FCDLL int_f nh5pset_hyper_vector_size_c(hid_t_f *plist, size_t_f *size);
H5_FCDLL int_f nh5pget_hyper_vector_size_c(hid_t_f *plist, size_t_f *size);
-H5_FCDLL int_f nh5pcreate_class_c(hid_t_f *parent, _fcd name, int_f *name_len, hid_t_f *cls);
+H5_FCDLL int_f nh5pcreate_class_c(hid_t_f *parent, _fcd name, int_f *name_len, hid_t_f *cls,
+ H5P_cls_create_func_t create, void *create_data,
+ H5P_cls_copy_func_t copy, void *copy_data,
+ H5P_cls_close_func_t close, void *close_data);
H5_FCDLL int_f nh5pregister_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, void *value);
H5_FCDLL int_f nh5pregister_integer_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, void *value);
H5_FCDLL int_f nh5pregister_real_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, void *value);
@@ -1068,34 +1089,42 @@ H5_FCDLL int_f nh5pget_chunk_cache_c(hid_t_f *dapl_id, size_t_f *rdcc_nslots, si
/*
* Functions frome H5Rf.c
*/
-# define nh5rcreate_object_c H5_FC_FUNC_(h5rcreate_object_c, H5RCREATE_OBJECT_C)
-# define nh5rcreate_region_c H5_FC_FUNC_(h5rcreate_region_c, H5RCREATE_REGION_C)
-# define nh5rdereference_region_c H5_FC_FUNC_(h5rdereference_region_c, H5RDEREFERENCE_REGION_C)
-# define nh5rdereference_object_c H5_FC_FUNC_(h5rdereference_object_c, H5RDEREFERENCE_OBJECT_C)
-# define nh5rget_region_region_c H5_FC_FUNC_(h5rget_region_region_c, H5RGET_REGION_REGION_C)
-# define nh5rget_object_type_obj_c H5_FC_FUNC_(h5rget_object_type_obj_c, H5RGET_OBJECT_TYPE_OBJ_C)
-# define nh5rget_name_object_c H5_FC_FUNC_(h5rget_name_object_c, H5RGET_NAME_OBJECT_C)
-# define nh5rget_name_region_c H5_FC_FUNC_(h5rget_name_region_c, H5RGET_NAME_REGION_C)
+#define nh5rcreate_object_c H5_FC_FUNC_(h5rcreate_object_c, H5RCREATE_OBJECT_C)
+#define nh5rcreate_region_c H5_FC_FUNC_(h5rcreate_region_c, H5RCREATE_REGION_C)
+#define nh5rcreate_ptr_c H5_FC_FUNC_(h5rcreate_ptr_c, H5RCREATE_PTR_C)
+#define nh5rdereference_region_c H5_FC_FUNC_(h5rdereference_region_c, H5RDEREFERENCE_REGION_C)
+#define nh5rdereference_object_c H5_FC_FUNC_(h5rdereference_object_c, H5RDEREFERENCE_OBJECT_C)
+#define nh5rdereference_ptr_c H5_FC_FUNC_(h5rdereference_ptr_c, H5RDEREFERENCE_PTR_C)
+#define nh5rget_region_region_c H5_FC_FUNC_(h5rget_region_region_c, H5RGET_REGION_REGION_C)
+#define nh5rget_object_type_obj_c H5_FC_FUNC_(h5rget_object_type_obj_c, H5RGET_OBJECT_TYPE_OBJ_C)
+#define nh5rget_name_object_c H5_FC_FUNC_(h5rget_name_object_c, H5RGET_NAME_OBJECT_C)
+#define nh5rget_name_region_c H5_FC_FUNC_(h5rget_name_region_c, H5RGET_NAME_REGION_C)
+#define nh5rget_name_ptr_c H5_FC_FUNC_(h5rget_name_ptr_c, H5RGET_NAME_PTR_C)
+#define nh5rget_obj_type_c H5_FC_FUNC_(h5rget_obj_type_c, H5RGET_OBJ_TYPE_C)
H5_FCDLL int_f nh5rcreate_object_c (haddr_t_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen);
H5_FCDLL int_f nh5rcreate_region_c (int_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *space_id);
+H5_FCDLL int_f nh5rcreate_ptr_c (void *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *ref_type, hid_t_f *space_id);
H5_FCDLL int_f nh5rdereference_region_c (hid_t_f *dset_id, int_f *ref, hid_t_f *obj_id);
H5_FCDLL int_f nh5rdereference_object_c (hid_t_f *dset_id, haddr_t_f *ref, hid_t_f *obj_id);
+H5_FCDLL int_f nh5rdereference_ptr_c (hid_t_f *obj_id, int_f *ref_type, void *ref, hid_t_f *ref_obj_id);
H5_FCDLL int_f nh5rget_region_region_c (hid_t_f *dset_id, int_f *ref, hid_t_f *space_id);
H5_FCDLL int_f nh5rget_object_type_obj_c (hid_t_f *dset_id, haddr_t_f *ref, int_f *obj_type);
H5_FCDLL int_f nh5rget_name_object_c (hid_t_f *loc_id, haddr_t_f *ref, _fcd name, size_t_f *name_len, size_t_f *size_default);
H5_FCDLL int_f nh5rget_name_region_c (hid_t_f *loc_id, int_f *ref, _fcd name, size_t_f *name_len, size_t_f *size_default);
+H5_FCDLL int_f nh5rget_name_ptr_c (hid_t_f *loc_id, int_f *ref_type, void *ref, _fcd name, size_t_f *name_len, size_t_f *size_default);
+H5_FCDLL int_f nh5rget_obj_type_c (hid_t_f *loc_id, int_f *ref_type, void *ref, int_f *obj_type);
/*
* Functions from H5If.c
*/
-# define nh5iget_type_c H5_FC_FUNC_(h5iget_type_c, H5IGET_TYPE_C)
-# define nh5iget_name_c H5_FC_FUNC_(h5iget_name_c, H5IGET_NAME_C)
-# define nh5iinc_ref_c H5_FC_FUNC_(h5iinc_ref_c, H5IINC_REF_C)
-# define nh5idec_ref_c H5_FC_FUNC_(h5idec_ref_c, H5IDEC_REF_C)
-# define nh5iget_ref_c H5_FC_FUNC_(h5iget_ref_c, H5IGET_REF_C)
-# define nh5iget_file_id_c H5_FC_FUNC_(h5iget_file_id_c, H5IGET_FILE_ID_C)
-# define nh5iis_valid_c H5_FC_FUNC_(h5iis_valid_c, H5IIS_VALID_C)
+#define nh5iget_type_c H5_FC_FUNC_(h5iget_type_c, H5IGET_TYPE_C)
+#define nh5iget_name_c H5_FC_FUNC_(h5iget_name_c, H5IGET_NAME_C)
+#define nh5iinc_ref_c H5_FC_FUNC_(h5iinc_ref_c, H5IINC_REF_C)
+#define nh5idec_ref_c H5_FC_FUNC_(h5idec_ref_c, H5IDEC_REF_C)
+#define nh5iget_ref_c H5_FC_FUNC_(h5iget_ref_c, H5IGET_REF_C)
+#define nh5iget_file_id_c H5_FC_FUNC_(h5iget_file_id_c, H5IGET_FILE_ID_C)
+#define nh5iis_valid_c H5_FC_FUNC_(h5iis_valid_c, H5IIS_VALID_C)
H5_FCDLL int_f nh5iget_type_c(hid_t_f *obj_id, int_f *type);
H5_FCDLL int_f nh5iget_name_c(hid_t_f *obj_id, _fcd buf, size_t_f *buf_size, size_t_f *name_size);
@@ -1108,45 +1137,53 @@ H5_FCDLL int_f nh5iis_valid_c(hid_t_f *obj_id, int_f *c_valid);
/*
* Functions from H5Ef.c
*/
-# define nh5eclear_c H5_FC_FUNC_(h5eclear_c, H5ECLEAR_C)
-# define nh5eprint_c1 H5_FC_FUNC_(h5eprint_c1, H5EPRINT_C1)
-# define nh5eprint_c2 H5_FC_FUNC_(h5eprint_c2, H5EPRINT_C2)
-# define nh5eget_major_c H5_FC_FUNC_(h5eget_major_c, H5EGET_MAJOR_C)
-# define nh5eget_minor_c H5_FC_FUNC_(h5eget_minor_c, H5EGET_MINOR_C)
-# define nh5eset_auto_c H5_FC_FUNC_(h5eset_auto_c, H5ESET_AUTO_C)
+#define nh5eclear_c H5_FC_FUNC_(h5eclear_c, H5ECLEAR_C)
+#define nh5eprint_c1 H5_FC_FUNC_(h5eprint_c1, H5EPRINT_C1)
+#define nh5eprint_c2 H5_FC_FUNC_(h5eprint_c2, H5EPRINT_C2)
+#define nh5eget_major_c H5_FC_FUNC_(h5eget_major_c, H5EGET_MAJOR_C)
+#define nh5eget_minor_c H5_FC_FUNC_(h5eget_minor_c, H5EGET_MINOR_C)
+#define nh5eset_auto_c H5_FC_FUNC_(h5eset_auto_c, H5ESET_AUTO_C)
+#define nh5eset_auto2_c H5_FC_FUNC_(h5eset_auto2_c, H5ESET_AUTO2_C)
+#define nh5eget_auto_c H5_FC_FUNC_(h5eget_auto_c, H5EGET_AUTO_C)
+#define nh5eget_auto_c2 H5_FC_FUNC_(h5eget_auto_c2, H5EGET_AUTO_C2)
+#define nprocess_buffer H5_FC_FUNC_(process_buffer, PROCESS_BUFFER)
-H5_FCDLL int_f nh5eclear_c(void);
+H5_FCDLL int_f nh5eclear_c(hid_t_f *estack_id);
H5_FCDLL int_f nh5eprint_c1(_fcd name, int_f* namelen);
H5_FCDLL int_f nh5eprint_c2(void);
H5_FCDLL int_f nh5eget_major_c(int_f* error_no, _fcd name, size_t_f* namelen);
H5_FCDLL int_f nh5eget_minor_c(int_f* error_no, _fcd name, size_t_f* namelen);
H5_FCDLL int_f nh5eset_auto_c(int_f* printflag);
+H5_FCDLL int_f nh5eset_auto2_c(int_f* printflag, hid_t_f *estack_id, H5E_auto2_t func, void *client_data);
+H5_FCDLL int_f nh5eget_auto_c(hid_t_f *estack_id, H5E_auto2_t *func, void **client_data, int_f* ret_func);
+H5_FCDLL void* nh5eget_auto_c2(hid_t_f *estack_id, H5E_auto2_t *func, int_f* ret_func);
+H5_FCDLL int_f nprocess_buffer(hid_t_f *estack_id,void **buffer);
/*
* Functions from H5f.c
*/
-# define nh5open_c H5_FC_FUNC_(h5open_c, H5OPEN_C)
-# define nh5close_c H5_FC_FUNC_(h5close_c, H5CLOSE_C)
-# define nh5init_types_c H5_FC_FUNC_(h5init_types_c, H5INIT_TYPES_C)
-# define nh5close_types_c H5_FC_FUNC_(h5close_types_c, H5CLOSE_TYPES_C)
-# define nh5init_flags_c H5_FC_FUNC_(h5init_flags_c, H5INIT_FLAGS_C)
-# define nh5init1_flags_c H5_FC_FUNC_(h5init1_flags_c, H5INIT1_FLAGS_C)
-# define nh5get_libversion_c H5_FC_FUNC_(h5get_libversion_c, H5GET_LIBVERSION_C)
-# define nh5check_version_c H5_FC_FUNC_(h5check_version_c, H5CHECK_VERSION_C)
-# define nh5garbage_collect_c H5_FC_FUNC_(h5garbage_collect_c, H5GARBAGE_COLLECT_C)
-# define nh5dont_atexit_c H5_FC_FUNC_(h5dont_atexit_c, H5DONT_ATEXIT_C)
+#define nh5open_c H5_FC_FUNC_(h5open_c, H5OPEN_C)
+#define nh5close_c H5_FC_FUNC_(h5close_c, H5CLOSE_C)
+#define nh5init_types_c H5_FC_FUNC_(h5init_types_c, H5INIT_TYPES_C)
+#define nh5close_types_c H5_FC_FUNC_(h5close_types_c, H5CLOSE_TYPES_C)
+#define nh5init_flags_c H5_FC_FUNC_(h5init_flags_c, H5INIT_FLAGS_C)
+#define nh5init1_flags_c H5_FC_FUNC_(h5init1_flags_c, H5INIT1_FLAGS_C)
+#define nh5get_libversion_c H5_FC_FUNC_(h5get_libversion_c, H5GET_LIBVERSION_C)
+#define nh5check_version_c H5_FC_FUNC_(h5check_version_c, H5CHECK_VERSION_C)
+#define nh5garbage_collect_c H5_FC_FUNC_(h5garbage_collect_c, H5GARBAGE_COLLECT_C)
+#define nh5dont_atexit_c H5_FC_FUNC_(h5dont_atexit_c, H5DONT_ATEXIT_C)
H5_FCDLL int_f nh5open_c(void);
H5_FCDLL int_f nh5close_c(void);
H5_FCDLL int_f nh5init_types_c(hid_t_f *types, hid_t_f * floatingtypes, hid_t_f * integertypes);
H5_FCDLL int_f nh5close_types_c(hid_t_f *types, int_f *lentypes, hid_t_f * floatingtypes, int_f * floatinglen, hid_t_f * integertypes, int_f * integerlen);
-H5_FCDLL int_f nh5init_flags_c( int_f *h5d_flags, int_f *h5f_flags,
- int_f *h5fd_flags, hid_t_f *h5fd_hid_flags,
- int_f *h5g_flags, int_f *h5i_flags, int_f *h5l_flags, int_f *h5o_flags,
- hid_t_f *h5p_flags, int_f *h5p_flags_int, int_f *h5r_flags, int_f *h5s_flags,
- int_f *h5t_flags, int_f *h5z_flags, int_f *h5_generic_flags);
+H5_FCDLL int_f nh5init_flags_c(int_f *h5d_flags, int_f *h5e_flags, hid_t_f *h5e_hid_flags, int_f *h5f_flags,
+ int_f *h5fd_flags, hid_t_f *h5fd_hid_flags,
+ int_f *h5g_flags, int_f *h5i_flags, int_f *h5l_flags, int_f *h5o_flags,
+ hid_t_f *h5p_flags, int_f *h5p_flags_int, int_f *h5r_flags, int_f *h5s_flags,
+ int_f *h5t_flags, int_f *h5z_flags, int_f *h5_generic_flags);
H5_FCDLL int_f nh5init1_flags_c(int_f *h5lib_flags);
H5_FCDLL int_f nh5get_libversion_c(int_f *majnum, int_f *minnum, int_f *relnum);
H5_FCDLL int_f nh5check_version_c(int_f *majnum, int_f *minnum, int_f *relnum);
@@ -1156,9 +1193,9 @@ H5_FCDLL int_f nh5dont_atexit_c(void);
/*
* Functions from H5Zf.c
*/
-# define nh5zunregister_c H5_FC_FUNC_(h5zunregister_c, H5ZUNREGISTER_C)
-# define nh5zfilter_avail_c H5_FC_FUNC_(h5zfilter_avail_c, H5ZFILTER_AVAIL_C)
-# define nh5zget_filter_info_c H5_FC_FUNC_(h5zget_filter_info_c, H5ZGET_FILTER_INFO_C)
+#define nh5zunregister_c H5_FC_FUNC_(h5zunregister_c, H5ZUNREGISTER_C)
+#define nh5zfilter_avail_c H5_FC_FUNC_(h5zfilter_avail_c, H5ZFILTER_AVAIL_C)
+#define nh5zget_filter_info_c H5_FC_FUNC_(h5zget_filter_info_c, H5ZGET_FILTER_INFO_C)
H5_FCDLL int_f nh5zunregister_c (int_f *filter);
@@ -1169,19 +1206,21 @@ H5_FCDLL int_f nh5zget_filter_info_c (int_f *filter, int_f *flag);
/*
* Functions from H5Lf.c
*/
-# define nh5lcopy_c H5_FC_FUNC_(h5lcopy_c, H5LCOPY_C)
-# define nh5lcreate_external_c H5_FC_FUNC_(h5lcreate_external_c, H5LCREATE_EXTERNAL_C)
-# define nh5lcreate_hard_c H5_FC_FUNC_(h5lcreate_hard_c, H5LCREATE_HARD_C)
-# define nh5lcreate_soft_c H5_FC_FUNC_(h5lcreate_soft_c, H5LCREATE_SOFT_C)
-# define nh5ldelete_c H5_FC_FUNC_(h5ldelete_c, H5LDELETE_C)
-# define nh5ldelete_by_idx_c H5_FC_FUNC_(h5ldelete_by_idx_c, H5LDELETE_BY_IDX_C)
-# define nh5lexists_c H5_FC_FUNC_(h5lexists_c, H5LEXISTS_C)
-# define nh5lget_info_c H5_FC_FUNC_(h5lget_info_c, H5LGET_INFO_C)
-# define nh5lget_info_by_idx_c H5_FC_FUNC_(h5lget_info_by_idx_c, H5LGET_INFO_BY_IDX_C)
-# define nh5lis_registered_c H5_FC_FUNC_(h5lis_registered_c, H5LIS_REGISTERED_C)
-# define nh5lmove_c H5_FC_FUNC_(h5lmove_c, H5LMOVE_C)
-# define nh5lget_name_by_idx_c H5_FC_FUNC_(h5lget_name_by_idx_c, H5LGET_NAME_BY_IDX_C)
-# define nh5lget_val_c H5_FC_FUNC_(h5lget_val_c, H5LGET_VAL_C)
+#define nh5lcopy_c H5_FC_FUNC_(h5lcopy_c, H5LCOPY_C)
+#define nh5lcreate_external_c H5_FC_FUNC_(h5lcreate_external_c, H5LCREATE_EXTERNAL_C)
+#define nh5lcreate_hard_c H5_FC_FUNC_(h5lcreate_hard_c, H5LCREATE_HARD_C)
+#define nh5lcreate_soft_c H5_FC_FUNC_(h5lcreate_soft_c, H5LCREATE_SOFT_C)
+#define nh5ldelete_c H5_FC_FUNC_(h5ldelete_c, H5LDELETE_C)
+#define nh5ldelete_by_idx_c H5_FC_FUNC_(h5ldelete_by_idx_c, H5LDELETE_BY_IDX_C)
+#define nh5lexists_c H5_FC_FUNC_(h5lexists_c, H5LEXISTS_C)
+#define nh5lget_info_c H5_FC_FUNC_(h5lget_info_c, H5LGET_INFO_C)
+#define nh5lget_info_by_idx_c H5_FC_FUNC_(h5lget_info_by_idx_c, H5LGET_INFO_BY_IDX_C)
+#define nh5lis_registered_c H5_FC_FUNC_(h5lis_registered_c, H5LIS_REGISTERED_C)
+#define nh5lmove_c H5_FC_FUNC_(h5lmove_c, H5LMOVE_C)
+#define nh5lget_name_by_idx_c H5_FC_FUNC_(h5lget_name_by_idx_c, H5LGET_NAME_BY_IDX_C)
+#define nh5lget_val_c H5_FC_FUNC_(h5lget_val_c, H5LGET_VAL_C)
+#define nh5literate_c H5_FC_FUNC_(h5literate_c, H5LITERATE_C)
+#define nh5literate_by_name_c H5_FC_FUNC_(h5literate_by_name_c, H5LITERATE_BY_NAME_C)
H5_FCDLL int_f nh5lcopy_c(hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_namelen, hid_t_f *dest_loc_id,
_fcd dest_name, size_t_f *dest_namelen,
@@ -1217,4 +1256,8 @@ H5_FCDLL int_f nh5lget_name_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f
H5_FCDLL int_f nh5lget_val_c(hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen, size_t_f *size,
void *linkval_buff, hid_t_f *lapl_id) ;
+H5_FCDLL int_f nh5literate_c(hid_t_f *group_id, int_f *index_type, int_f *order, hsize_t_f *idx, H5L_iterate_t op, void *op_data );
+H5_FCDLL int_f nh5literate_by_name_c(hid_t_f *loc_id, _fcd name, size_t_f *namelen, int_f *index_type, int_f *order, hsize_t_f *idx, H5L_iterate_t op, void *op_data, hid_t_f *lapl_id);
+
+
#endif /* _H5f90proto_H */
diff --git a/fortran/src/H5match_types.c b/fortran/src/H5match_types.c
index 78fb9e9..6aea94c 100644
--- a/fortran/src/H5match_types.c
+++ b/fortran/src/H5match_types.c
@@ -1,4 +1,18 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+/****p* Program/H5match_types
+ *
+ * NAME
+ * Executable: H5match_types
+ *
+ * FILE
+ * fortran/src/H5match_types.c
+ *
+ * PURPOSE
+ * C Program to match C types to Fortran types.
+ * Creates the files H5f90i_gen.h for the C code and
+ * H5fortran_types.f90 for the Fortran code.
+ *
+ * COPYRIGHT
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
@@ -11,12 +25,10 @@
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* C Program to match C types to Fortran types
- * Creates the files H5f90i_gen.h for the C code and H5fortran_types.f90
- * for the Fortran.
- */
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ ******
+*/
#include <stdio.h>
#include <assert.h>
@@ -35,11 +47,19 @@ FILE * fort_header;
#define CFILE "H5f90i_gen.h"
#define FFILE "H5fortran_types.f90"
+/* Prototypes for the write routines */
+void writeTypedef(const char* c_type, unsigned int size);
+void writeFloatTypedef(const char* c_type, unsigned int size);
+void writeTypedefDefault(unsigned int size);
+void writeToFiles(const char* fortran_type, const char* c_type, unsigned int size, unsigned int kind);
+void writeFloatToFiles(const char* fortran_type, const char* c_type, unsigned int size, unsigned int kind);
+
static void
initCfile(void)
{
fprintf(c_header,
- "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\
+ "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\
+ * Copyright by The HDF Group. *\n\
* Copyright by the Board of Trustees of the University of Illinois. *\n\
* All rights reserved. *\n\
* *\n\
@@ -49,8 +69,8 @@ initCfile(void)
* of the source code distribution tree; Copyright.html can be found at the *\n\
* root level of an installed copy of the electronic HDF5 document set and *\n\
* is linked from the top-level documents page. It can also be found at *\n\
- * http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have *\n\
- * access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *\n\
+ * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *\n\
+ * access to either file, you may request a copy from help@hdfgroup.org. *\n\
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n\
\n\n\
#ifndef _H5f90i_gen_H\n\
@@ -66,6 +86,7 @@ initFfile(void)
{
fprintf(fort_header,
"! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \n\
+! Copyright by The HDF Group. *\n\
! Copyright by the Board of Trustees of the University of Illinois. *\n\
! All rights reserved. *\n\
! *\n\
@@ -75,8 +96,8 @@ initFfile(void)
! of the source code distribution tree; Copyright.html can be found at the *\n\
! root level of an installed copy of the electronic HDF5 document set and *\n\
! is linked from the top-level documents page. It can also be found at *\n\
-! http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have *\n\
-! access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *\n\
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *\n\
+! access to either file, you may request a copy from help@hdfgroup.org. *\n\
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\
!\n!\n\
! This file is automatically generated and contains HDF5 Fortran90 type definitions.\n!\n\
@@ -120,24 +141,26 @@ void writeTypedefDefault(unsigned int size)
}
/* Create matching Fortran and C types by writing to both files */
-void writeToFiles(const char* fortran_type, const char* c_type, unsigned int size)
+void writeToFiles(const char* fortran_type, const char* c_type, unsigned int size, unsigned int kind)
{
- fprintf(fort_header, " INTEGER, PARAMETER :: %s = %u\n", fortran_type, size);
+ fprintf(fort_header, " INTEGER, PARAMETER :: %s = %u\n", fortran_type, kind);
fprintf(c_header, "typedef c_int_%u %s;\n", size, c_type);
}
/* Create matching Fortran and C floating types by writing to both files */
-void writeFloatToFiles(const char* fortran_type, const char* c_type, unsigned int size)
+void writeFloatToFiles(const char* fortran_type, const char* c_type, unsigned int size, unsigned int kind)
{
- fprintf(fort_header, " INTEGER, PARAMETER :: %s = %u\n", fortran_type, size);
+ fprintf(fort_header, " INTEGER, PARAMETER :: %s = %u\n", fortran_type, kind);
fprintf(c_header, "typedef c_float_%u %s;\n", size, c_type);
}
-int main()
+int main(void)
{
int FoundIntSize[4];
+ int FoundIntSizeKind[4];
int FoundRealSize[4];
+ int FoundRealSizeKind[4];
int i,j,flag;
char chrA[20],chrB[20];
int H5_C_HAS_REAL_NATIVE_16;
@@ -147,10 +170,9 @@ int main()
c_header = fopen(CFILE, "w");
fort_header = fopen(FFILE, "w");
-
-/* Default is C has 16 byte float */
+ /* Default is C has 16 byte float */
H5_C_HAS_REAL_NATIVE_16 = 1;
-/* Default is C has 12 byte float */
+ /* Default is C has 12 byte float */
H5_C_HAS_REAL_NATIVE_12 = 1;
/* Write copyright, boilerplate to both files */
@@ -159,7 +181,7 @@ int main()
/* First, define c_int_x */
-#if defined H5_FORTRAN_HAS_INTEGER_1
+#if defined H5_FORTRAN_HAS_INTEGER_1_KIND
if(sizeof(long long) == 1)
writeTypedef("long long", 1);
else if(sizeof(long) == 1)
@@ -173,9 +195,9 @@ int main()
/* Actually, char is not necessarily one byte.
* But if char isn't, then nothing is, so this
* is as close as we can get. */
-#endif /*H5_FORTRAN_HAS_INTEGER_1 */
+#endif /*H5_FORTRAN_HAS_INTEGER_1_KIND*/
-#if defined H5_FORTRAN_HAS_INTEGER_2
+#if defined H5_FORTRAN_HAS_INTEGER_2_KIND
if(sizeof(long long) == 2)
writeTypedef("long long", 2);
else if(sizeof(long) == 2)
@@ -186,9 +208,9 @@ int main()
writeTypedef("short", 2);
else
writeTypedefDefault(2);
-#endif /*H5_FORTRAN_HAS_INTEGER_2 */
+#endif /*H5_FORTRAN_HAS_INTEGER_2_KIND*/
-#if defined H5_FORTRAN_HAS_INTEGER_4
+#if defined H5_FORTRAN_HAS_INTEGER_4_KIND
if(sizeof(long long) == 4)
writeTypedef("long long", 4);
else if(sizeof(long) == 4)
@@ -199,9 +221,9 @@ int main()
writeTypedef("short", 4);
else
writeTypedefDefault(4);
-#endif /*H5_FORTRAN_HAS_INTEGER_4 */
+#endif /*H5_FORTRAN_HAS_INTEGER_4_KIND*/
-#if defined H5_FORTRAN_HAS_INTEGER_8
+#if defined H5_FORTRAN_HAS_INTEGER_8_KIND
if(sizeof(long long) == 8)
writeTypedef("long long", 8);
else if(sizeof(long) == 8)
@@ -212,11 +234,11 @@ int main()
writeTypedef("short", 8);
else
writeTypedefDefault(8);
-#endif /*H5_FORTRAN_HAS_INTEGER_8 */
+#endif /*H5_FORTRAN_HAS_INTEGER_8_KIND*/
/* Define c_float_x */
-#if defined H5_FORTRAN_HAS_REAL_NATIVE_4 || defined H5_FORTRAN_HAS_REAL_4
+#if defined H5_FORTRAN_HAS_REAL_NATIVE_4_KIND || defined H5_FORTRAN_HAS_REAL_4_KIND
if(sizeof(long double) == 4)
writeFloatTypedef("long double", 4);
else if(sizeof(double) == 4)
@@ -228,9 +250,9 @@ int main()
printf("Quitting....\n");
return -1;
}
-#endif /*H5_FORTRAN_HAS_REAL_NATIVE_4*/
+#endif /*H5_FORTRAN_HAS_REAL_NATIVE_4_KIND*/
-#if defined H5_FORTRAN_HAS_REAL_NATIVE_8 || defined H5_FORTRAN_HAS_REAL_8
+#if defined H5_FORTRAN_HAS_REAL_NATIVE_8_KIND || defined H5_FORTRAN_HAS_REAL_8_KIND
if(sizeof(long double) == 8)
writeFloatTypedef("long double", 8);
else if(sizeof(double) == 8)
@@ -242,9 +264,10 @@ int main()
printf("Quitting....\n");
return -1;
}
-#endif /*H5_FORTRAN_HAS_REAL_NATIVE_8*/
+#endif /*H5_FORTRAN_HAS_REAL_NATIVE_8_KIND*/
-#if defined H5_FORTRAN_HAS_REAL_NATIVE_12 || defined H5_FORTRAN_HAS_REAL_12
+
+#if defined H5_FORTRAN_HAS_REAL_NATIVE_12_KIND || defined H5_FORTRAN_HAS_REAL_12_KIND
if(sizeof(long double) == 12)
writeFloatTypedef("long double", 12);
else if(sizeof(double) == 12)
@@ -256,9 +279,9 @@ int main()
printf(" Disabling Fortran 12 byte REALs\n");
H5_C_HAS_REAL_NATIVE_12 = 0;
}
-#endif /*H5_FORTRAN_HAS_REAL_NATIVE_8*/
+#endif /*H5_FORTRAN_HAS_REAL_NATIVE_12_KIND*/
-#if defined H5_FORTRAN_HAS_REAL_NATIVE_16 || defined H5_FORTRAN_HAS_REAL_16
+#if defined H5_FORTRAN_HAS_REAL_NATIVE_16_KIND || defined H5_FORTRAN_HAS_REAL_16_KIND
if(sizeof(long double) == 16)
writeFloatTypedef("long double", 16);
else if(sizeof(double) == 16)
@@ -270,47 +293,47 @@ int main()
printf(" Disabling Fortran 16 byte REALs\n");
H5_C_HAS_REAL_NATIVE_16 = 0;
}
-#endif /*H5_FORTRAN_HAS_REAL_NATIVE_16*/
+#endif /*H5_FORTRAN_HAS_REAL_NATIVE_16_KIND*/
/* Now begin defining fortran types. */
fprintf(c_header, "\n");
/* haddr_t */
-#if defined H5_FORTRAN_HAS_INTEGER_8 && H5_SIZEOF_HADDR_T >= 8
- writeToFiles("HADDR_T", "haddr_t_f", 8);
-#elif defined H5_FORTRAN_HAS_INTEGER_4 && H5_SIZEOF_HADDR_T >= 4
- writeToFiles("HADDR_T", "haddr_t_f", 4);
-#elif defined H5_FORTRAN_HAS_INTEGER_2 && H5_SIZEOF_HADDR_T >= 2
- writeToFiles("HADDR_T", "haddr_t_f", 2);
-#elif defined H5_FORTRAN_HAS_INTEGER_1 && H5_SIZEOF_HADDR_T >= 1
- writeToFiles("HADDR_T", "haddr_t_f", 1);
+#if defined H5_FORTRAN_HAS_INTEGER_8_KIND && H5_SIZEOF_HADDR_T >= 8
+ writeToFiles("HADDR_T", "haddr_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND);
+#elif defined H5_FORTRAN_HAS_INTEGER_4_KIND && H5_SIZEOF_HADDR_T >= 4
+ writeToFiles("HADDR_T", "haddr_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND);
+#elif defined H5_FORTRAN_HAS_INTEGER_2_KIND && H5_SIZEOF_HADDR_T >= 2
+ writeToFiles("HADDR_T", "haddr_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND);
+#elif defined H5_FORTRAN_HAS_INTEGER_1_KIND && H5_SIZEOF_HADDR_T >= 1
+ writeToFiles("HADDR_T", "haddr_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND);
#else
/* Error: couldn't find a size for haddr_t */
return -1;
#endif
/* hsize_t */
-#if defined H5_FORTRAN_HAS_INTEGER_8 && H5_SIZEOF_HSIZE_T >= 8
- writeToFiles("HSIZE_T", "hsize_t_f", 8);
-#elif defined H5_FORTRAN_HAS_INTEGER_4 && H5_SIZEOF_HSIZE_T >= 4
- writeToFiles("HSIZE_T", "hsize_t_f", 4);
-#elif defined H5_FORTRAN_HAS_INTEGER_2 && H5_SIZEOF_HSIZE_T >= 2
- writeToFiles("HSIZE_T", "hsize_t_f", 2);
-#elif defined H5_FORTRAN_HAS_INTEGER_1 && H5_SIZEOF_HSIZE_T >= 1
- writeToFiles("HSIZE_T", "hsize_t_f", 1);
+#if defined H5_FORTRAN_HAS_INTEGER_8_KIND && H5_SIZEOF_HSIZE_T >= 8
+ writeToFiles("HSIZE_T", "hsize_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND);
+#elif defined H5_FORTRAN_HAS_INTEGER_4_KIND && H5_SIZEOF_HSIZE_T >= 4
+ writeToFiles("HSIZE_T", "hsize_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND);
+#elif defined H5_FORTRAN_HAS_INTEGER_2_KIND && H5_SIZEOF_HSIZE_T >= 2
+ writeToFiles("HSIZE_T", "hsize_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND);
+#elif defined H5_FORTRAN_HAS_INTEGER_1_KIND && H5_SIZEOF_HSIZE_T >= 1
+ writeToFiles("HSIZE_T", "hsize_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND);
#else
/* Error: couldn't find a size for hsize_t */
return -1;
#endif
/* hssize_t */
-#if defined H5_FORTRAN_HAS_INTEGER_8 && H5_SIZEOF_HSSIZE_T >= 8
- writeToFiles("HSSIZE_T", "hssize_t_f", 8);
-#elif defined H5_FORTRAN_HAS_INTEGER_4 && H5_SIZEOF_HSSIZE_T >= 4
- writeToFiles("HSSIZE_T", "hssize_t_f", 4);
-#elif defined H5_FORTRAN_HAS_INTEGER_2 && H5_SIZEOF_HSSIZE_T >= 2
- writeToFiles("HSSIZE_T", "hssize_t_f", 2);
-#elif defined H5_FORTRAN_HAS_INTEGER_1 && H5_SIZEOF_HSSIZE_T >= 1
- writeToFiles("HSSIZE_T", "hssize_t_f", 1);
+#if defined H5_FORTRAN_HAS_INTEGER_8_KIND && H5_SIZEOF_HSSIZE_T >= 8
+ writeToFiles("HSSIZE_T", "hssize_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND);
+#elif defined H5_FORTRAN_HAS_INTEGER_4_KIND && H5_SIZEOF_HSSIZE_T >= 4
+ writeToFiles("HSSIZE_T", "hssize_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND);
+#elif defined H5_FORTRAN_HAS_INTEGER_2_KIND && H5_SIZEOF_HSSIZE_T >= 2
+ writeToFiles("HSSIZE_T", "hssize_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND);
+#elif defined H5_FORTRAN_HAS_INTEGER_1_KIND && H5_SIZEOF_HSSIZE_T >= 1
+ writeToFiles("HSSIZE_T", "hssize_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND);
#else
/* Error: couldn't find a size for hssize_t */
return -1;
@@ -318,34 +341,33 @@ int main()
/* size_t */
-#if defined H5_FORTRAN_HAS_INTEGER_8 && H5_SIZEOF_SIZE_T >= 8
- writeToFiles("SIZE_T", "size_t_f", 8);
-#elif defined H5_FORTRAN_HAS_INTEGER_4 && H5_SIZEOF_SIZE_T >= 4
- writeToFiles("SIZE_T", "size_t_f", 4);
-#elif defined H5_FORTRAN_HAS_INTEGER_2 && H5_SIZEOF_SIZE_T >= 2
- writeToFiles("SIZE_T", "size_t_f", 2);
-#elif defined H5_FORTRAN_HAS_INTEGER_1 && H5_SIZEOF_SIZE_T >= 1
- writeToFiles("SIZE_T", "size_t_f", 1);
+#if defined H5_FORTRAN_HAS_INTEGER_8_KIND && H5_SIZEOF_SIZE_T >= 8
+ writeToFiles("SIZE_T", "size_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND);
+#elif defined H5_FORTRAN_HAS_INTEGER_4_KIND && H5_SIZEOF_SIZE_T >= 4
+ writeToFiles("SIZE_T", "size_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND);
+#elif defined H5_FORTRAN_HAS_INTEGER_2_KIND && H5_SIZEOF_SIZE_T >= 2
+ writeToFiles("SIZE_T", "size_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND);
+#elif defined H5_FORTRAN_HAS_INTEGER_1_KIND && H5_SIZEOF_SIZE_T >= 1
+ writeToFiles("SIZE_T", "size_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND);
#else
/* Error: couldn't find a size for size_t */
return -1;
#endif
/* int */
-#if defined H5_FORTRAN_HAS_NATIVE_8
- writeToFiles("Fortran_INTEGER", "int_f", 8);
-#elif defined H5_FORTRAN_HAS_NATIVE_4
- writeToFiles("Fortran_INTEGER", "int_f", 4);
-#elif defined H5_FORTRAN_HAS_NATIVE_2
- writeToFiles("Fortran_INTEGER", "int_f", 2);
-#elif defined H5_FORTRAN_HAS_NATIVE_1
- writeToFiles("Fortran_INTEGER", "int_f", 1);
+#if defined H5_FORTRAN_HAS_NATIVE_8_KIND
+ writeToFiles("Fortran_INTEGER", "int_f", 8, H5_FORTRAN_HAS_NATIVE_8_KIND);
+#elif defined H5_FORTRAN_HAS_NATIVE_4_KIND
+ writeToFiles("Fortran_INTEGER", "int_f", 4, H5_FORTRAN_HAS_NATIVE_4_KIND);
+#elif defined H5_FORTRAN_HAS_NATIVE_2_KIND
+ writeToFiles("Fortran_INTEGER", "int_f", 2, H5_FORTRAN_HAS_NATIVE_2_KIND);
+#elif defined H5_FORTRAN_HAS_NATIVE_1_KIND
+ writeToFiles("Fortran_INTEGER", "int_f", 1, H5_FORTRAN_HAS_NATIVE_1_KIND);
#else
/* Error: couldn't find a size for int */
return -1;
#endif
-
/* int_1, int_2, int_4, int_8 */
/* Defined different KINDs of integers: */
@@ -358,17 +380,21 @@ int main()
FoundIntSize[2] = -4;
FoundIntSize[3] = -8;
-#if defined H5_FORTRAN_HAS_INTEGER_1
+#if defined H5_FORTRAN_HAS_INTEGER_1_KIND
FoundIntSize[0] = 1;
+ FoundIntSizeKind[0] = H5_FORTRAN_HAS_INTEGER_1_KIND;
#endif
-#if defined H5_FORTRAN_HAS_INTEGER_2
+#if defined H5_FORTRAN_HAS_INTEGER_2_KIND
FoundIntSize[1] = 2;
+ FoundIntSizeKind[1] = H5_FORTRAN_HAS_INTEGER_2_KIND;
#endif
-#if defined H5_FORTRAN_HAS_INTEGER_4
+#if defined H5_FORTRAN_HAS_INTEGER_4_KIND
FoundIntSize[2] = 4;
+ FoundIntSizeKind[2] = H5_FORTRAN_HAS_INTEGER_4_KIND;
#endif
-#if defined H5_FORTRAN_HAS_INTEGER_8
+#if defined H5_FORTRAN_HAS_INTEGER_8_KIND
FoundIntSize[3] = 8;
+ FoundIntSizeKind[3] = H5_FORTRAN_HAS_INTEGER_8_KIND ;
#endif
for(i=0;i<4;i++) {
@@ -376,7 +402,7 @@ int main()
{
sprintf(chrA, "Fortran_INTEGER_%d", FoundIntSize[i]);
sprintf(chrB, "int_%d_f", FoundIntSize[i]);
- writeToFiles(chrA, chrB, FoundIntSize[i]);
+ writeToFiles(chrA, chrB, FoundIntSize[i], FoundIntSizeKind[i]);
}
else /* Did not find the integer type */
{
@@ -387,7 +413,7 @@ int main()
{
sprintf(chrA, "Fortran_INTEGER_%d", (-1)*FoundIntSize[i]);
sprintf(chrB, "int_%d_f", (-1)*FoundIntSize[i]);
- writeToFiles(chrA, chrB, FoundIntSize[j]);
+ writeToFiles(chrA, chrB, FoundIntSize[j], FoundIntSizeKind[j]);
flag = 1;
break;
}
@@ -400,7 +426,7 @@ int main()
{
sprintf(chrA, "Fortran_INTEGER_%d", (-1)*FoundIntSize[i]);
sprintf(chrB, "int_%d_f", (-1)*FoundIntSize[i]);
- writeToFiles(chrA, chrB, FoundIntSize[j]);
+ writeToFiles(chrA, chrB, FoundIntSize[j], FoundIntSizeKind[j]);
flag = 1;
break;
}
@@ -425,20 +451,24 @@ int main()
FoundRealSize[2] = -12;
FoundRealSize[3] = -16;
-#if defined H5_FORTRAN_HAS_REAL_4
+#if defined H5_FORTRAN_HAS_REAL_4_KIND
FoundRealSize[0] = 4;
+ FoundRealSizeKind[0] = H5_FORTRAN_HAS_REAL_4_KIND;
#endif
-#if defined H5_FORTRAN_HAS_REAL_8
+#if defined H5_FORTRAN_HAS_REAL_8_KIND
FoundRealSize[1] = 8;
+ FoundRealSizeKind[1] = H5_FORTRAN_HAS_REAL_8_KIND;
#endif
-#if defined H5_FORTRAN_HAS_REAL_12
+#if defined H5_FORTRAN_HAS_REAL_12_KIND
if(H5_C_HAS_REAL_NATIVE_12 != 0) {
FoundRealSize[2] = 12;
+ FoundRealSizeKind[2] = H5_FORTRAN_HAS_REAL_12_KIND;
}
#endif
-#if defined H5_FORTRAN_HAS_REAL_16
+#if defined H5_FORTRAN_HAS_REAL_16_KIND
if(H5_C_HAS_REAL_NATIVE_16 != 0) {
FoundRealSize[3] = 16;
+ FoundRealSizeKind[3] = H5_FORTRAN_HAS_REAL_16_KIND;
}
#endif
@@ -447,7 +477,7 @@ int main()
{
sprintf(chrA, "Fortran_REAL_%d", FoundRealSize[i]);
sprintf(chrB, "real_%d_f", FoundRealSize[i]);
- writeFloatToFiles(chrA, chrB, FoundRealSize[i]);
+ writeFloatToFiles(chrA, chrB, FoundRealSize[i], FoundRealSizeKind[i]);
}
else /* Did not find the real type */
{
@@ -459,7 +489,7 @@ int main()
sprintf(chrA, "Fortran_REAL_%d", (-1)*FoundRealSize[i]);
sprintf(chrB, "real_%d_f", (-1)*FoundRealSize[i]);
if(FoundRealSize[j]>4) {
- writeFloatToFiles(chrA, chrB, FoundRealSize[j]);
+ writeFloatToFiles(chrA, chrB, FoundRealSize[j], FoundRealSizeKind[j]);
flag = 1;
}
/* else { */
@@ -478,7 +508,7 @@ int main()
sprintf(chrA, "Fortran_REAL_%d", (-1)*FoundRealSize[i]);
sprintf(chrB, "real_%d_f", (-1)*FoundRealSize[i]);
if(FoundRealSize[j]>4) {
- writeFloatToFiles(chrA, chrB, FoundRealSize[j]);
+ writeFloatToFiles(chrA, chrB, FoundRealSize[j], FoundRealSizeKind[j]);
}
/* else { */
/* writeFloatToFiles(chrA, chrB, FoundRealSize[j]); */
@@ -496,44 +526,44 @@ int main()
}
/* hid_t */
-#if defined H5_FORTRAN_HAS_INTEGER_8 && H5_SIZEOF_HID_T >= 8
- writeToFiles("HID_T", "hid_t_f", 8);
-#elif defined H5_FORTRAN_HAS_INTEGER_4 && H5_SIZEOF_HID_T >= 4
- writeToFiles("HID_T", "hid_t_f", 4);
-#elif defined H5_FORTRAN_HAS_INTEGER_2 && H5_SIZEOF_HID_T >= 2
- writeToFiles("HID_T", "hid_t_f", 2);
-#elif defined H5_FORTRAN_HAS_INTEGER_1 && H5_SIZEOF_HID_T >= 1
- writeToFiles("HID_T", "hid_t_f", 1);
-#elif defined H5_FORTRAN_HAS_INTEGER_8 && H5_SIZEOF_HID_T >= 4
- writeToFiles("HID_T", "hid_t_f", 8);
+#if defined H5_FORTRAN_HAS_INTEGER_8_KIND && H5_SIZEOF_HID_T >= 8
+ writeToFiles("HID_T", "hid_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND);
+#elif defined H5_FORTRAN_HAS_INTEGER_4_KIND && H5_SIZEOF_HID_T >= 4
+ writeToFiles("HID_T", "hid_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND);
+#elif defined H5_FORTRAN_HAS_INTEGER_2_KIND && H5_SIZEOF_HID_T >= 2
+ writeToFiles("HID_T", "hid_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND);
+#elif defined H5_FORTRAN_HAS_INTEGER_1_KIND && H5_SIZEOF_HID_T >= 1
+ writeToFiles("HID_T", "hid_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND);
+#elif defined H5_FORTRAN_HAS_INTEGER_8_KIND && H5_SIZEOF_HID_T >= 4
+ writeToFiles("HID_T", "hid_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND);
#else
/* Error: couldn't find a size for hid_t */
return -1;
#endif
/* real_f */
-#if defined H5_FORTRAN_HAS_REAL_NATIVE_16
+#if defined H5_FORTRAN_HAS_REAL_NATIVE_16_KIND
if(H5_C_HAS_REAL_NATIVE_16 != 0) {
- writeFloatToFiles("Fortran_REAL", "real_f", 16);
+ writeFloatToFiles("Fortran_REAL", "real_f", 16, H5_FORTRAN_HAS_REAL_NATIVE_16_KIND);
}
-#elif defined H5_FORTRAN_HAS_REAL_NATIVE_12
+#elif defined H5_FORTRAN_HAS_REAL_NATIVE_12_KIND
if(H5_C_HAS_REAL_NATIVE_12 != 0) {
- writeFloatToFiles("Fortran_REAL", "real_f", 12);
+ writeFloatToFiles("Fortran_REAL", "real_f", 12, H5_FORTRAN_HAS_REAL_NATIVE_12_KIND);
}
-#elif defined H5_FORTRAN_HAS_REAL_NATIVE_8
- writeFloatToFiles("Fortran_REAL", "real_f", 8);
-#elif defined H5_FORTRAN_HAS_REAL_NATIVE_4
- writeFloatToFiles("Fortran_REAL", "real_f", 4);
+#elif defined H5_FORTRAN_HAS_REAL_NATIVE_8_KIND
+ writeFloatToFiles("Fortran_REAL", "real_f", 8, H5_FORTRAN_HAS_REAL_NATIVE_8_KIND);
+#elif defined H5_FORTRAN_HAS_REAL_NATIVE_4_KIND
+ writeFloatToFiles("Fortran_REAL", "real_f", 4, H5_FORTRAN_HAS_REAL_NATIVE_4_KIND);
#else
/* Error: couldn't find a size for real_f */
return -1;
#endif
/* double_f */
-#if defined H5_FORTRAN_HAS_DOUBLE_NATIVE_16
- writeFloatToFiles("Fortran_DOUBLE", "double_f", 16);
-#elif defined H5_FORTRAN_HAS_DOUBLE_NATIVE_8
- writeFloatToFiles("Fortran_DOUBLE", "double_f", 8);
+#if defined H5_FORTRAN_HAS_DOUBLE_NATIVE_16_KIND
+ writeFloatToFiles("Fortran_DOUBLE", "double_f", 16, H5_FORTRAN_HAS_DOUBLE_NATIVE_16_KIND);
+#elif defined H5_FORTRAN_HAS_DOUBLE_NATIVE_8_KIND
+ writeFloatToFiles("Fortran_DOUBLE", "double_f", 8, H5_FORTRAN_HAS_DOUBLE_NATIVE_8_KIND);
#else
/* Error: couldn't find a size for real_f */
return -1;
diff --git a/fortran/src/H5test_kind.f90 b/fortran/src/H5test_kind.f90
index bdf5f5b..3182853 100644
--- a/fortran/src/H5test_kind.f90
+++ b/fortran/src/H5test_kind.f90
@@ -1,9 +1,12 @@
-!****h* fortran/src/H5test_kind.f90
+!****p* Program/H5test_kind
!
! NAME
-! H5test_kind
+! Executable: H5test_kind
!
-! FUNCTION
+! FILE
+! fortran/src/H5test_kind.f90
+!
+! PURPOSE
! This stand alone program is used at build time to generate the program
! H5fortran_detect.f90. It cycles through all the available KIND parameters for
! integers and reals. The appropriate program and subroutines are then generated
@@ -19,20 +22,20 @@
! condition is set in the configure variable "FORTRAN_HAVE_SIZEOF".
!
! COPYRIGHT
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
! AUTHOR
! Elena Pourma
@@ -42,7 +45,7 @@
PROGRAM test_kind
IMPLICIT NONE
INTEGER :: i, j, ii, ir, last, ikind_numbers(10), rkind_numbers(10)
- INTEGER :: jr, jd
+ INTEGER :: ji, jr, jd
last = -1
ii = 0
j = SELECTED_INT_KIND(18)
@@ -72,15 +75,15 @@ PROGRAM test_kind
ENDIF
ENDDO
-! Generate program information:
+! Generate program information:
WRITE(*,'(40(A,/))') &
-'!****h* fortran/src/H5fortran_detect.f90',&
+'!****h* ROBODoc/H5fortran_detect.f90',&
'!',&
'! NAME',&
'! H5fortran_detect',&
'! ',&
-'! FUNCTION',&
+'! PURPOSE',&
'! This stand alone program is used at build time to generate the header file',&
'! H5fort_type_defines.h. The source code itself was automatically generated by',&
'! the program H5test_kind.f90',&
@@ -110,12 +113,12 @@ WRITE(*,'(40(A,/))') &
'!',&
'!*****'
-! Generate a program
+! Generate a program
WRITE(*,*) "PROGRAM int_kind"
WRITE(*,*) "WRITE(*,*) "" /*generating header file*/ """
- j = 0
- WRITE(*, "("" CALL i"", i2.2,""()"")") j
+ ji = 0
+ WRITE(*, "("" CALL i"", i2.2,""()"")") ji
jr = 0
WRITE(*, "("" CALL r"", i2.2,""()"")") jr
jd = 0
@@ -130,62 +133,76 @@ WRITE(*,'(40(A,/))') &
ENDDO
WRITE(*,*) "END PROGRAM int_kind"
j = 0
+ ji = KIND(1)
WRITE(*, "("" SUBROUTINE i"", i2.2,""()"")") j
WRITE(*,*)" IMPLICIT NONE"
WRITE(*,*)" INTEGER :: a = 0"
WRITE(*,*)" INTEGER :: a_size"
+ WRITE(*,*)" CHARACTER(LEN=2) :: jchr2"
WRITE(*,*)" a_size = BIT_SIZE(a)"
WRITE(*,*)" IF (a_size .EQ. 8) THEN"
- WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_NATIVE_1"" "
+ WRITE(*,*)" WRITE(jchr2,'(I2)')",ji
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_NATIVE_1_KIND "'//"//ADJUSTL(jchr2)"
WRITE(*,*)" endif"
WRITE(*,*)" IF (a_size .EQ. 16) THEN"
- WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_NATIVE_2"" "
+ WRITE(*,*)" WRITE(jchr2,'(I2)')",ji
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_NATIVE_2_KIND "'//"//ADJUSTL(jchr2)"
WRITE(*,*)" endif"
WRITE(*,*)" IF (a_size .EQ. 32) THEN"
- WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_NATIVE_4"" "
+ WRITE(*,*)" WRITE(jchr2,'(I2)')",ji
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_NATIVE_4_KIND "'//"//ADJUSTL(jchr2)"
WRITE(*,*)" ENDIF"
WRITE(*,*)" IF (a_size .EQ. 64) THEN"
- WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_NATIVE_8"" "
+ WRITE(*,*)" WRITE(jchr2,'(I2)')",ji
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_NATIVE_8_KIND "'//"//ADJUSTL(jchr2)"
WRITE(*,*)" ENDIF"
WRITE(*,*)" IF (a_size .EQ. 128) THEN"
- WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_NATIVE_16"" "
+ WRITE(*,*)" WRITE(jchr2,'(I2)')",ji
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_NATIVE_16_KIND "'//"//ADJUSTL(jchr2)"
WRITE(*,*)" ENDIF"
WRITE(*,*)" RETURN"
WRITE(*,*)"END SUBROUTINE"
- jr = 0
+ jr = KIND(1.0)
WRITE(*, "("" SUBROUTINE r"", i2.2,""()"")") j
WRITE(*,*)" IMPLICIT NONE"
WRITE(*,*)" REAL :: b(32)"
WRITE(*,*)" INTEGER :: a(1)"
WRITE(*,*)" INTEGER :: a_size"
WRITE(*,*)" INTEGER :: real_size"
+ WRITE(*,*)" CHARACTER(LEN=2) :: jchr2"
WRITE(*,*)" a_size = BIT_SIZE(a(1)) ! Size in bits for integer"
WRITE(*,*)" real_size = (SIZE(TRANSFER(b,a))*a_size)/SIZE(b)"
WRITE(*,*)" IF (real_size .EQ. 32) THEN"
- WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_REAL_NATIVE_4"" "
+ WRITE(*,*)" WRITE(jchr2,'(I2)')",jr
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_REAL_NATIVE_4_KIND "'//"//ADJUSTL(jchr2)"
WRITE(*,*)" ENDIF"
WRITE(*,*)" IF (real_size .EQ. 64) THEN"
- WRITE(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_REAL_NATIVE_8"" "
- WRITE(*,*)" endif"
+ WRITE(*,*)" WRITE(jchr2,'(I2)')",jr
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_REAL_NATIVE_8_KIND "'//"//ADJUSTL(jchr2)"
+ WRITE(*,*)" ENDIF"
WRITE(*,*)" IF (real_size .EQ. 128) THEN"
- WRITE(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_REAL_NATIVE_16"" "
+ WRITE(*,*)" WRITE(jchr2,'(I2)')",jr
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_REAL_NATIVE_16_KIND "'//"//ADJUSTL(jchr2)"
WRITE(*,*)" ENDIF"
WRITE(*,*)" RETURN"
WRITE(*,*)"END SUBROUTINE"
- jd = 0
- WRITE(*, "("" SUBROUTINE d"", i2.2,""()"")") jd
+ jd = KIND(1.d0)
+ WRITE(*, "("" SUBROUTINE d"", i2.2,""()"")") j
WRITE(*,*)" IMPLICIT NONE"
WRITE(*,*)" DOUBLE PRECISION :: b=0"
WRITE(*,*)" INTEGER :: a(8)=0"
WRITE(*,*)" INTEGER :: a_size"
WRITE(*,*)" INTEGER :: b_size"
+ WRITE(*,*)" CHARACTER(LEN=2) :: jchr2"
WRITE(*,*)" a_size = BIT_SIZE(a(1))"
WRITE(*,*)" b_size = SIZE(transfer(b,a))*a_size"
WRITE(*,*)" IF (b_size .EQ. 64) THEN"
- WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_DOUBLE_NATIVE_8"" "
+ WRITE(*,*)" WRITE(jchr2,'(I2)')",jd
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_DOUBLE_NATIVE_8_KIND "'//"//ADJUSTL(jchr2)"
WRITE(*,*)" ENDIF"
WRITE(*,*)" IF (b_size .EQ. 128) THEN"
- WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_DOUBLE_NATIVE_16"" "
+ WRITE(*,*)" WRITE(jchr2,'(I2)')",jd
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_DOUBLE_NATIVE_16_KIND "'//"//ADJUSTL(jchr2)"
WRITE(*,*)" ENDIF"
WRITE(*,*)" RETURN"
WRITE(*,*)"END SUBROUTINE"
@@ -195,21 +212,27 @@ WRITE(*,'(40(A,/))') &
WRITE(*,*)" IMPLICIT NONE"
WRITE(*,*)" INTEGER(",j,") :: a = 0"
WRITE(*,*)" INTEGER :: a_size"
+ WRITE(*,*)" CHARACTER(LEN=2) :: jchr2"
WRITE(*,*)" a_size = BIT_SIZE(a)"
WRITE(*,*)" IF (a_size .EQ. 8) THEN"
- WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_INTEGER_1"" "
+ WRITE(*,*)" WRITE(jchr2,'(I2)')",j
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_INTEGER_1_KIND "'//"//ADJUSTL(jchr2)"
WRITE(*,*)" ENDIF"
WRITE(*,*)" IF (a_size .EQ. 16) THEN"
- WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_INTEGER_2"" "
+ WRITE(*,*)" WRITE(jchr2,'(I2)')",j
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_INTEGER_2_KIND "'//"//ADJUSTL(jchr2)"
WRITE(*,*)" ENDIF"
WRITE(*,*)" IF (a_size .EQ. 32) THEN"
- WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_INTEGER_4"" "
+ WRITE(*,*)" WRITE(jchr2,'(I2)')",j
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_INTEGER_4_KIND "'//"//ADJUSTL(jchr2)"
WRITE(*,*)" ENDIF"
WRITE(*,*)" IF (a_size .EQ. 64) THEN"
- WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_INTEGER_8"" "
+ WRITE(*,*)" WRITE(jchr2,'(I2)')",j
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_INTEGER_8_KIND "'//"//ADJUSTL(jchr2)"
WRITE(*,*)" ENDIF"
WRITE(*,*)" IF (a_size .EQ. 128) THEN"
- WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_INTEGER_16"" "
+ WRITE(*,*)" WRITE(jchr2,'(I2)')",j
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_INTEGER_16_KIND "'//"//ADJUSTL(jchr2)"
WRITE(*,*)" ENDIF"
WRITE(*,*)" RETURN"
WRITE(*,*)" END SUBROUTINE"
@@ -222,16 +245,20 @@ WRITE(*,'(40(A,/))') &
WRITE(*,*)" INTEGER :: a(1)"
WRITE(*,*)" INTEGER :: a_size"
WRITE(*,*)" INTEGER :: real_size"
+ WRITE(*,*)" CHARACTER(LEN=2) :: jchr2"
WRITE(*,*)" a_size = BIT_SIZE(a(1)) ! Size in bits for integer"
WRITE(*,*)" real_size = (SIZE(TRANSFER(b,a))*a_size)/SIZE(b)"
WRITE(*,*)" IF (real_size .EQ. 32) THEN"
- WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_REAL_4"" "
+ WRITE(*,*)" WRITE(jchr2,'(I2)')",j
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_REAL_4_KIND "'//"//ADJUSTL(jchr2)"
WRITE(*,*)" ENDIF"
WRITE(*,*)" IF (real_size .EQ. 64) THEN"
- WRITE(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_REAL_8"" "
+ WRITE(*,*)" WRITE(jchr2,'(I2)')",j
+ WRITE(*,*)' WRITE(*,*) "#define H5_FORTRAN_HAS_REAL_8_KIND "'//"//ADJUSTL(jchr2)"
WRITE(*,*)" endif"
WRITE(*,*)" IF (real_size .EQ. 128) THEN"
- WRITE(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_REAL_16"" "
+ WRITE(*,*)" WRITE(jchr2,'(I2)')",j
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_REAL_16_KIND "'//"//ADJUSTL(jchr2)"
WRITE(*,*)" ENDIF"
WRITE(*,*)" RETURN"
WRITE(*,*)" END SUBROUTINE"
diff --git a/fortran/src/H5test_kind_SIZEOF.f90 b/fortran/src/H5test_kind_SIZEOF.f90
index fbbe8e9..ba982ee 100644
--- a/fortran/src/H5test_kind_SIZEOF.f90
+++ b/fortran/src/H5test_kind_SIZEOF.f90
@@ -1,9 +1,12 @@
-!****h* fortran/src/H5test_kind_SIZEOF.f90
+!****p* Program/H5test_kind_SIZEOF
!
! NAME
-! H5test_kind
+! Executable: H5test_kind
!
-! FUNCTION
+! FILE
+! fortran/src/H5test_kind_SIZEOF.f90
+!
+! PURPOSE
! This stand alone program is used at build time to generate the program
! H5fortran_detect.f90. It cycles through all the available KIND parameters for
! integers and reals. The appropriate program and subroutines are then generated
@@ -18,30 +21,30 @@
! condition is set in the configure variable "FORTRAN_HAVE_SIZEOF".
!
! COPYRIGHT
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
! AUTHOR
-! M.S. Breitenfeld
+! M. Scot Breitenfeld
!
!*****
PROGRAM test_kind
IMPLICIT NONE
- INTEGER :: i, j, ii, ir, last, ikind_numbers(10),rkind_numbers(10)
- INTEGER :: jr, jd
+ INTEGER :: i, j, ii, ir, last, ikind_numbers(10), rkind_numbers(10)
+ INTEGER :: ji, jr, jd
last = -1
ii = 0
DO i = 1,100
@@ -70,15 +73,15 @@ PROGRAM test_kind
ENDIF
ENDDO
-! Generate program information:
+! Generate program information:
WRITE(*,'(40(A,/))') &
-'!****h* fortran/src/H5fortran_detect.f90',&
+'!****h* ROBODoc/H5fortran_detect.f90',&
'!',&
'! NAME',&
'! H5fortran_detect',&
'! ',&
-'! FUNCTION',&
+'! PURPOSE',&
'! This stand alone program is used at build time to generate the header file',&
'! H5fort_type_defines.h. The source code itself was automatically generated by',&
'! the program H5test_kind_SIZEOF.f90',&
@@ -109,11 +112,11 @@ WRITE(*,'(40(A,/))') &
'!',&
'!*****'
-! Generate a program
+! Generate a program
WRITE(*,*) "PROGRAM int_kind"
WRITE(*,*) "WRITE(*,*) "" /*generating header file*/ """
- j = 0
- WRITE(*, "("" CALL i"", i2.2,""()"")") j
+ ji = 0
+ WRITE(*, "("" CALL i"", i2.2,""()"")") ji
jr = 0
WRITE(*, "("" CALL r"", i2.2,""()"")") jr
jd = 0
@@ -128,48 +131,59 @@ WRITE(*,'(40(A,/))') &
ENDDO
WRITE(*,*) "END PROGRAM int_kind"
j = 0
+ ji = KIND(1)
WRITE(*, "("" SUBROUTINE i"", i2.2,""()"")") j
WRITE(*,*)" IMPLICIT NONE"
WRITE(*,*)" INTEGER :: a"
WRITE(*,*)" INTEGER :: a_size"
- WRITE(*,*)" CHARACTER(LEN=2) :: ichr2"
+ WRITE(*,*)" CHARACTER(LEN=2) :: ichr2, jchr2"
WRITE(*,*)" a_size = SIZEOF(a)"
WRITE(*,*)" WRITE(ichr2,'(I2)') a_size"
- WRITE(*,*)' WRITE(*,*) "#define H5_FORTRAN_HAS_NATIVE_"'//"//ADJUSTL(ichr2)"
+ WRITE(*,'(A,I0)')" WRITE(jchr2,'(I2)') ",ji
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_NATIVE_"'// &
+ "//TRIM(ADJUSTL(ichr2))//"//'"_KIND "'//"//ADJUSTL(jchr2)"
WRITE(*,*)" RETURN"
WRITE(*,*)"END SUBROUTINE"
jr = 0
- WRITE(*, "("" SUBROUTINE r"", i2.2,""()"")") j
+ j = KIND(1.0)
+ WRITE(*, "("" SUBROUTINE r"", i2.2,""()"")") jr
WRITE(*,*)" IMPLICIT NONE"
WRITE(*,*)" REAL :: a"
WRITE(*,*)" INTEGER :: a_size"
- WRITE(*,*)" CHARACTER(LEN=2) :: ichr2"
+ WRITE(*,*)" CHARACTER(LEN=2) :: ichr2, jchr2"
WRITE(*,*)" a_size = SIZEOF(a)"
WRITE(*,*)" WRITE(ichr2,'(I2)') a_size"
- WRITE(*,*)' WRITE(*,*) "#define H5_FORTRAN_HAS_REAL_NATIVE_"'//"//ADJUSTL(ichr2)"
+ WRITE(*,'(A,I0)')" WRITE(jchr2,'(I2)') ",j
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_REAL_NATIVE_"'// &
+ "//TRIM(ADJUSTL(ichr2))//"//'"_KIND "'//"//ADJUSTL(jchr2)"
WRITE(*,*)" RETURN"
WRITE(*,*)"END SUBROUTINE"
jd = 0
+ j = KIND(1.d0)
WRITE(*, "("" SUBROUTINE d"", i2.2,""()"")") jd
WRITE(*,*)" IMPLICIT NONE"
WRITE(*,*)" DOUBLE PRECISION :: a"
WRITE(*,*)" INTEGER :: a_size"
- WRITE(*,*)" CHARACTER(LEN=2) :: ichr2"
+ WRITE(*,*)" CHARACTER(LEN=2) :: ichr2, jchr2"
WRITE(*,*)" a_size = SIZEOF(a)"
WRITE(*,*)" WRITE(ichr2,'(I2)') a_size"
- WRITE(*,*)' WRITE(*,*) "#define H5_FORTRAN_HAS_DOUBLE_NATIVE_"'//"//ADJUSTL(ichr2)"
+ WRITE(*,'(A,I0)')" WRITE(jchr2,'(I2)') ",j
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_DOUBLE_NATIVE_"'// &
+ "//TRIM(ADJUSTL(ichr2))//"//'"_KIND "'//"//ADJUSTL(jchr2)"
WRITE(*,*)" RETURN"
WRITE(*,*)"END SUBROUTINE"
DO i = 1, ii
j = ikind_numbers(i)
WRITE(*, "("" SUBROUTINE i"", i2.2,""()"")") j
WRITE(*,*)" IMPLICIT NONE"
- WRITE(*,*)" INTEGER(",j,") :: a"
+ WRITE(*,'(A,I0,A)')" INTEGER(KIND=",j,") :: a"
WRITE(*,*)" INTEGER :: a_size"
- WRITE(*,*)" CHARACTER(LEN=2) :: ichr2"
+ WRITE(*,*)" CHARACTER(LEN=2) :: ichr2, jchr2"
WRITE(*,*)" a_size = SIZEOF(a)"
WRITE(*,*)" WRITE(ichr2,'(I2)') a_size"
- WRITE(*,*)' WRITE(*,*) "#define H5_FORTRAN_HAS_INTEGER_"'//"//ADJUSTL(ichr2)"
+ WRITE(*,'(A,I0)')" WRITE(jchr2,'(I2)') ",j
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_INTEGER_"'// &
+ "//TRIM(ADJUSTL(ichr2))//"//'"_KIND "'//"//ADJUSTL(jchr2)"
WRITE(*,*)" RETURN"
WRITE(*,*)"END SUBROUTINE"
ENDDO
@@ -177,12 +191,14 @@ WRITE(*,'(40(A,/))') &
j = rkind_numbers(i)
WRITE(*, "("" SUBROUTINE r"", i2.2,""()"")") j
WRITE(*,*)" IMPLICIT NONE"
- WRITE(*,*)" REAL(KIND=",j,") :: a"
+ WRITE(*,'(A,I0,A)')" REAL(KIND= ",j,") :: a"
WRITE(*,*)" INTEGER :: a_size"
- WRITE(*,*)" CHARACTER(LEN=2) :: ichr2"
+ WRITE(*,*)" CHARACTER(LEN=2) :: ichr2, jchr2"
WRITE(*,*)" a_size = SIZEOF(a)"
WRITE(*,*)" WRITE(ichr2,'(I2)') a_size"
- WRITE(*,*)' WRITE(*,*) "#define H5_FORTRAN_HAS_REAL_"'//"//ADJUSTL(ichr2)"
+ WRITE(*,'(A,I0)')" WRITE(jchr2,'(I2)') ", j
+ WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_REAL_"'// &
+ "//TRIM(ADJUSTL(ichr2))//"//'"_KIND "'//"//ADJUSTL(jchr2)"
WRITE(*,*)" RETURN"
WRITE(*,*)"END SUBROUTINE"
ENDDO
diff --git a/fortran/src/HDF5.f90 b/fortran/src/HDF5.f90
index b18591d..cb3d8bf 100644
--- a/fortran/src/HDF5.f90
+++ b/fortran/src/HDF5.f90
@@ -1,3 +1,15 @@
+!****h* ROBODoc/HDF5
+!
+! NAME
+! MODULE HDF5
+!
+! FILE
+! src/fortran/src/HDF5.f90
+!
+! PURPOSE
+! This is the main module used for linking to the Fortran HDF library.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,22 +25,31 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+!*****
+
MODULE HDF5
USE H5GLOBAL
USE H5F
USE H5G
USE H5E
+ USE H5E_PROVISIONAL
USE H5I
USE H5L
+ USE H5L_PROVISIONAL
USE H5S
USE H5D
+ USE H5D_PROVISIONAL
USE H5A
+ USE H5A_PROVISIONAL
USE H5T
+ USE H5T_PROVISIONAL
USE H5O
+ USE H5O_PROVISIONAL
USE H5P
+ USE H5P_PROVISIONAL
USE H5R
+ USE H5R_PROVISIONAL
USE H5Z
USE H5_DBLE_INTERFACE
USE H5LIB
-
END MODULE HDF5
diff --git a/fortran/src/HDF5mpio.f90 b/fortran/src/HDF5mpio.f90
index 15d3a93..ac4d2b1 100644
--- a/fortran/src/HDF5mpio.f90
+++ b/fortran/src/HDF5mpio.f90
@@ -1,34 +1,54 @@
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!****h* ROBODoc/HDF5 (mpio)
!
- MODULE HDF5
- USE H5GLOBAL
- USE H5F
- USE H5E
- USE H5G
- USE H5I
- USE H5L
- USE H5S
- USE H5D
- USE H5A
- USE H5T
- USE H5O
- USE H5P
- USE H5FDMPIO
- USE H5R
- USE H5Z
- USE H5_DBLE_INTERFACE
- USE H5LIB
- END MODULE HDF5
+! NAME
+! HDF5
+!
+! PURPOSE
+! This is the main module used for linking to the Fortran parallel HDF library.
+! This file replaces HDF5.f90 when compiling the parallel library.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+!*****
+
+MODULE HDF5
+ USE H5GLOBAL
+ USE H5F
+ USE H5G
+ USE H5E
+ USE H5E_PROVISIONAL
+ USE H5I
+ USE H5L
+ USE H5L_PROVISIONAL
+ USE H5S
+ USE H5D
+ USE H5D_PROVISIONAL
+ USE H5A
+ USE H5A_PROVISIONAL
+ USE H5T
+ USE H5T_PROVISIONAL
+ USE H5O
+ USE H5O_PROVISIONAL
+ USE H5P
+ USE H5P_PROVISIONAL
+ USE H5FDMPIO
+ USE H5R
+ USE H5R_PROVISIONAL
+ USE H5Z
+ USE H5_DBLE_INTERFACE
+ USE H5LIB
+END MODULE HDF5
diff --git a/fortran/src/Makefile.am b/fortran/src/Makefile.am
index c6a40e7..72a2ac6 100644
--- a/fortran/src/Makefile.am
+++ b/fortran/src/Makefile.am
@@ -49,6 +49,14 @@ else
PARALLEL_COND_SRC = HDF5.f90
endif
+# Check if the compiler supports the Fortran 2003 standard
+# which should include the intrinsic module iso_c_binding
+if FORTRAN_2003_CONDITIONAL_F
+ F_STATUS = _F03
+else
+ F_STATUS = _F90
+endif
+
# Condition for including/excluding the DBLE interfaces for when the
# default REAL is of type DOUBLE PRECISION.
# We do not include the double precision interfaces if the defaut REAL is
@@ -61,14 +69,15 @@ else
endif
# Source files for the library.
-libhdf5_fortran_la_SOURCES= H5f90global.f90 \
- H5fortran_types.f90 H5_ff.f90 H5Aff.f90 H5Dff.f90 H5Eff.f90 \
- H5Fff.f90 H5Gff.f90 H5Iff.f90 H5Lff.f90 H5Off.f90 H5Pff.f90 H5Rff.f90 H5Sff.f90 \
- H5Tff.f90 H5Zff.f90 \
- H5_DBLE_Interface$(F_DBLE).f90 \
- H5f90kit.c H5_f.c H5Af.c H5Df.c H5Ef.c H5Ff.c H5Gf.c \
- H5If.c H5Lf.c H5Of.c H5Pf.c H5Rf.c H5Sf.c H5Tf.c H5Zf.c \
- $(PARALLEL_COND_SRC)
+libhdf5_fortran_la_SOURCES=H5f90global.f90 \
+ H5fortran_types.f90 H5_ff$(F_STATUS).f90 H5_ff.f90 H5Aff.f90 H5Dff.f90 H5Eff.f90 \
+ H5Fff.f90 H5Gff.f90 H5Iff.f90 H5Lff.f90 H5Off.f90 H5Pff.f90 H5Rff.f90 H5Sff.f90 \
+ H5Tff.f90 H5Zff.f90 \
+ H5_DBLE_Interface$(F_DBLE).f90 \
+ H5f90kit.c H5_f.c H5Af.c H5Df.c H5Ef.c H5Ff.c H5Gf.c \
+ H5If.c H5Lf.c H5Of.c H5Pf.c H5Rf.c H5Sf.c H5Tf.c H5Zf.c \
+ H5Aff$(F_STATUS).f90 H5Dff$(F_STATUS).f90 H5Eff$(F_STATUS).f90 H5Lff$(F_STATUS).f90 \
+ H5Off$(F_STATUS).f90 H5Pff$(F_STATUS).f90 H5Rff$(F_STATUS).f90 H5Tff$(F_STATUS).f90 $(PARALLEL_COND_SRC)
# HDF5 Fortran library depends on HDF5 Library.
libhdf5_fortran_la_LIBADD=$(LIBHDF5)
@@ -185,10 +194,19 @@ H5f90global.lo: $(srcdir)/H5f90global.f90 H5fortran_types.lo
H5fortran_types.lo: H5fortran_types.f90
H5fortran_detect.lo: H5fortran_detect.f90
H5test_kind.lo: $(srcdir)/H5test_kind.f90
+H5_ff$(F_STATUS).lo: $(srcdir)/H5_ff$(F_STATUS).f90 H5f90global.lo
+H5_ff.lo: $(srcdir)/H5_ff.f90 H5f90global.lo H5_ff$(F_STATUS).lo
H5test_kind_SIZEOF.lo: $(srcdir)/H5test_kind_SIZEOF.f90
-H5_ff.lo: $(srcdir)/H5_ff.f90 H5f90global.lo
H5Aff.lo: $(srcdir)/H5Aff.f90 H5f90global.lo
H5Dff.lo: $(srcdir)/H5Dff.f90 H5f90global.lo
+H5Aff$(F_STATUS).lo: $(srcdir)/H5Aff$(F_STATUS).f90 H5f90global.lo
+H5Dff$(F_STATUS).lo: $(srcdir)/H5Dff$(F_STATUS).f90 H5f90global.lo
+H5Eff$(F_STATUS).lo: $(srcdir)/H5Eff$(F_STATUS).f90 H5f90global.lo
+H5Lff$(F_STATUS).lo: $(srcdir)/H5Lff$(F_STATUS).f90 H5f90global.lo
+H5Off$(F_STATUS).lo: $(srcdir)/H5Off$(F_STATUS).f90 H5f90global.lo
+H5Pff$(F_STATUS).lo: $(srcdir)/H5Pff$(F_STATUS).f90 H5f90global.lo
+H5Rff$(F_STATUS).lo: $(srcdir)/H5Rff$(F_STATUS).f90 H5f90global.lo
+H5Tff$(F_STATUS).lo: $(srcdir)/H5Tff$(F_STATUS).f90 H5f90global.lo
H5Eff.lo: $(srcdir)/H5Eff.f90 H5f90global.lo
H5Fff.lo: $(srcdir)/H5Fff.f90 H5f90global.lo
H5Gff.lo: $(srcdir)/H5Gff.f90 H5f90global.lo
@@ -200,15 +218,22 @@ H5Rff.lo: $(srcdir)/H5Rff.f90 H5f90global.lo
H5Sff.lo: $(srcdir)/H5Sff.f90 H5f90global.lo
H5Tff.lo: $(srcdir)/H5Tff.f90 H5f90global.lo
H5Zff.lo: $(srcdir)/H5Zff.f90 H5f90global.lo
-H5_DBLE_Interface$(F_DBLE).lo: $(srcdir)/H5_DBLE_Interface$(F_DBLE).f90 H5Aff.lo H5Dff.lo H5Pff.lo
-
-HDF5.lo: $(srcdir)/HDF5.f90 H5f90global.lo H5Aff.lo \
- H5Dff.lo H5Eff.lo H5Fff.lo H5Gff.lo H5Iff.lo H5Lff.lo \
- H5Pff.lo H5Rff.lo H5Sff.lo H5Tff.lo H5Zff.lo \
- H5_DBLE_Interface$(F_DBLE).lo
+H5_DBLE_Interface$(F_DBLE).lo: $(srcdir)/H5_DBLE_Interface$(F_DBLE).f90 H5Aff$(F_STATUS).lo H5Dff$(F_STATUS).lo H5Eff$(F_STATUS).lo H5Pff$(F_STATUS).lo
+HDF5.lo: $(srcdir)/HDF5.f90 H5f90global.lo H5Aff.lo H5Aff$(F_STATUS).lo \
+ H5Dff.lo H5Dff$(F_STATUS).lo \
+ H5Eff.lo H5Eff$(F_STATUS).lo \
+ H5Fff.lo H5Gff.lo H5Iff.lo H5Lff.lo H5Lff$(F_STATUS).lo \
+ H5Off.lo H5Off$(F_STATUS).lo H5Pff.lo H5Pff$(F_STATUS).lo H5Rff$(F_STATUS).lo H5Rff.lo \
+ H5Sff.lo H5Tff.lo H5Tff$(F_STATUS).lo H5Zff.lo \
+ H5_DBLE_Interface$(F_DBLE).lo
H5FDmpioff.lo: $(srcdir)/H5FDmpioff.f90 H5f90global.lo
-HDF5mpio.lo: $(srcdir)/H5FDmpioff.f90 H5f90global.lo H5Aff.lo \
- H5Dff.lo H5Eff.lo H5Fff.lo H5Gff.lo H5Iff.lo H5Lff.lo \
- H5Pff.lo H5Rff.lo H5Sff.lo H5Tff.lo H5Zff.lo H5_DBLE_Interface$(F_DBLE).lo H5FDmpioff.lo
+HDF5mpio.lo: $(srcdir)/H5FDmpioff.f90 H5f90global.lo \
+ H5Aff.lo H5Aff$(F_STATUS).lo \
+ H5Dff.lo H5Dff$(F_STATUS).lo \
+ H5Eff.lo H5Eff$(F_STATUS).lo \
+ H5Fff.lo H5Gff.lo H5Iff.lo H5Lff.lo H5Lff$(F_STATUS).lo \
+ H5Off.lo H5Off$(F_STATUS).lo H5Pff.lo H5Pff$(F_STATUS).lo H5Rff$(F_STATUS).lo H5Rff.lo \
+ H5Sff.lo H5Tff.lo H5Tff$(F_STATUS).lo H5Zff.lo \
+ H5_DBLE_Interface$(F_DBLE).lo H5FDmpioff.lo
include $(top_srcdir)/config/conclude.am
diff --git a/fortran/src/Makefile.in b/fortran/src/Makefile.in
index 1d210f4..27104e1 100644
--- a/fortran/src/Makefile.in
+++ b/fortran/src/Makefile.in
@@ -98,21 +98,28 @@ am__installdirs = "$(DESTDIR)$(libdir)"
LTLIBRARIES = $(lib_LTLIBRARIES)
libhdf5_fortran_la_DEPENDENCIES = $(LIBHDF5)
am__libhdf5_fortran_la_SOURCES_DIST = H5f90global.f90 \
- H5fortran_types.f90 H5_ff.f90 H5Aff.f90 H5Dff.f90 H5Eff.f90 \
- H5Fff.f90 H5Gff.f90 H5Iff.f90 H5Lff.f90 H5Off.f90 H5Pff.f90 \
- H5Rff.f90 H5Sff.f90 H5Tff.f90 H5Zff.f90 \
+ H5fortran_types.f90 H5_ff$(F_STATUS).f90 H5_ff.f90 H5Aff.f90 \
+ H5Dff.f90 H5Eff.f90 H5Fff.f90 H5Gff.f90 H5Iff.f90 H5Lff.f90 \
+ H5Off.f90 H5Pff.f90 H5Rff.f90 H5Sff.f90 H5Tff.f90 H5Zff.f90 \
H5_DBLE_Interface$(F_DBLE).f90 H5f90kit.c H5_f.c H5Af.c H5Df.c \
H5Ef.c H5Ff.c H5Gf.c H5If.c H5Lf.c H5Of.c H5Pf.c H5Rf.c H5Sf.c \
- H5Tf.c H5Zf.c HDF5.f90 H5FDmpiof.c HDF5mpio.f90 H5FDmpioff.f90
+ H5Tf.c H5Zf.c H5Aff$(F_STATUS).f90 H5Dff$(F_STATUS).f90 \
+ H5Eff$(F_STATUS).f90 H5Lff$(F_STATUS).f90 H5Off$(F_STATUS).f90 \
+ H5Pff$(F_STATUS).f90 H5Rff$(F_STATUS).f90 H5Tff$(F_STATUS).f90 \
+ HDF5.f90 H5FDmpiof.c HDF5mpio.f90 H5FDmpioff.f90
@BUILD_PARALLEL_CONDITIONAL_FALSE@am__objects_1 = HDF5.lo
@BUILD_PARALLEL_CONDITIONAL_TRUE@am__objects_1 = H5FDmpiof.lo \
@BUILD_PARALLEL_CONDITIONAL_TRUE@ HDF5mpio.lo H5FDmpioff.lo
am_libhdf5_fortran_la_OBJECTS = H5f90global.lo H5fortran_types.lo \
- H5_ff.lo H5Aff.lo H5Dff.lo H5Eff.lo H5Fff.lo H5Gff.lo H5Iff.lo \
- H5Lff.lo H5Off.lo H5Pff.lo H5Rff.lo H5Sff.lo H5Tff.lo H5Zff.lo \
- H5_DBLE_Interface$(F_DBLE).lo H5f90kit.lo H5_f.lo H5Af.lo \
- H5Df.lo H5Ef.lo H5Ff.lo H5Gf.lo H5If.lo H5Lf.lo H5Of.lo \
- H5Pf.lo H5Rf.lo H5Sf.lo H5Tf.lo H5Zf.lo $(am__objects_1)
+ H5_ff$(F_STATUS).lo H5_ff.lo H5Aff.lo H5Dff.lo H5Eff.lo \
+ H5Fff.lo H5Gff.lo H5Iff.lo H5Lff.lo H5Off.lo H5Pff.lo H5Rff.lo \
+ H5Sff.lo H5Tff.lo H5Zff.lo H5_DBLE_Interface$(F_DBLE).lo \
+ H5f90kit.lo H5_f.lo H5Af.lo H5Df.lo H5Ef.lo H5Ff.lo H5Gf.lo \
+ H5If.lo H5Lf.lo H5Of.lo H5Pf.lo H5Rf.lo H5Sf.lo H5Tf.lo \
+ H5Zf.lo H5Aff$(F_STATUS).lo H5Dff$(F_STATUS).lo \
+ H5Eff$(F_STATUS).lo H5Lff$(F_STATUS).lo H5Off$(F_STATUS).lo \
+ H5Pff$(F_STATUS).lo H5Rff$(F_STATUS).lo H5Tff$(F_STATUS).lo \
+ $(am__objects_1)
libhdf5_fortran_la_OBJECTS = $(am_libhdf5_fortran_la_OBJECTS)
AM_V_lt = $(am__v_lt_$(V))
am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
@@ -251,6 +258,7 @@ F9XMODEXT = @F9XMODEXT@
F9XMODFLAG = @F9XMODFLAG@
F9XSUFFIXFLAG = @F9XSUFFIXFLAG@
FC = @FC@
+FC2003 = @FC2003@
FCFLAGS = @FCFLAGS@
FCFLAGS_f90 = @FCFLAGS_f90@
FCLIBS = @FCLIBS@
@@ -271,10 +279,12 @@ H5_LONE_COLON = @H5_LONE_COLON@
H5_VERSION = @H5_VERSION@
HADDR_T = @HADDR_T@
HAVE_DMALLOC = @HAVE_DMALLOC@
+HAVE_FORTRAN_2003 = @HAVE_FORTRAN_2003@
HDF5_HL = @HDF5_HL@
HDF5_INTERFACES = @HDF5_INTERFACES@
HDF_CXX = @HDF_CXX@
HDF_FORTRAN = @HDF_FORTRAN@
+HDF_FORTRAN2003 = @HDF_FORTRAN2003@
HID_T = @HID_T@
HL = @HL@
HL_FOR = @HL_FOR@
@@ -485,6 +495,11 @@ libhdf5_fortran_la_LDFLAGS = -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISI
# Include HDF5.f90 if parallel is disabled, HDF5mpiof* if parallel is enabled
@BUILD_PARALLEL_CONDITIONAL_TRUE@PARALLEL_COND_SRC = H5FDmpiof.c HDF5mpio.f90 H5FDmpioff.f90
+@FORTRAN_2003_CONDITIONAL_F_FALSE@F_STATUS = _F90
+
+# Check if the compiler supports the Fortran 2003 standard
+# which should include the intrinsic module iso_c_binding
+@FORTRAN_2003_CONDITIONAL_F_TRUE@F_STATUS = _F03
@FORTRAN_DEFAULT_REALisDBLE_F_FALSE@F_DBLE = Include
# Condition for including/excluding the DBLE interfaces for when the
@@ -495,14 +510,15 @@ libhdf5_fortran_la_LDFLAGS = -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISI
@FORTRAN_DEFAULT_REALisDBLE_F_TRUE@F_DBLE = Exclude
# Source files for the library.
-libhdf5_fortran_la_SOURCES = H5f90global.f90 \
- H5fortran_types.f90 H5_ff.f90 H5Aff.f90 H5Dff.f90 H5Eff.f90 \
- H5Fff.f90 H5Gff.f90 H5Iff.f90 H5Lff.f90 H5Off.f90 H5Pff.f90 H5Rff.f90 H5Sff.f90 \
- H5Tff.f90 H5Zff.f90 \
- H5_DBLE_Interface$(F_DBLE).f90 \
- H5f90kit.c H5_f.c H5Af.c H5Df.c H5Ef.c H5Ff.c H5Gf.c \
- H5If.c H5Lf.c H5Of.c H5Pf.c H5Rf.c H5Sf.c H5Tf.c H5Zf.c \
- $(PARALLEL_COND_SRC)
+libhdf5_fortran_la_SOURCES = H5f90global.f90 \
+ H5fortran_types.f90 H5_ff$(F_STATUS).f90 H5_ff.f90 H5Aff.f90 H5Dff.f90 H5Eff.f90 \
+ H5Fff.f90 H5Gff.f90 H5Iff.f90 H5Lff.f90 H5Off.f90 H5Pff.f90 H5Rff.f90 H5Sff.f90 \
+ H5Tff.f90 H5Zff.f90 \
+ H5_DBLE_Interface$(F_DBLE).f90 \
+ H5f90kit.c H5_f.c H5Af.c H5Df.c H5Ef.c H5Ff.c H5Gf.c \
+ H5If.c H5Lf.c H5Of.c H5Pf.c H5Rf.c H5Sf.c H5Tf.c H5Zf.c \
+ H5Aff$(F_STATUS).f90 H5Dff$(F_STATUS).f90 H5Eff$(F_STATUS).f90 H5Lff$(F_STATUS).f90 \
+ H5Off$(F_STATUS).f90 H5Pff$(F_STATUS).f90 H5Rff$(F_STATUS).f90 H5Tff$(F_STATUS).f90 $(PARALLEL_COND_SRC)
# HDF5 Fortran library depends on HDF5 Library.
@@ -1022,10 +1038,19 @@ H5f90global.lo: $(srcdir)/H5f90global.f90 H5fortran_types.lo
H5fortran_types.lo: H5fortran_types.f90
H5fortran_detect.lo: H5fortran_detect.f90
H5test_kind.lo: $(srcdir)/H5test_kind.f90
+H5_ff$(F_STATUS).lo: $(srcdir)/H5_ff$(F_STATUS).f90 H5f90global.lo
+H5_ff.lo: $(srcdir)/H5_ff.f90 H5f90global.lo H5_ff$(F_STATUS).lo
H5test_kind_SIZEOF.lo: $(srcdir)/H5test_kind_SIZEOF.f90
-H5_ff.lo: $(srcdir)/H5_ff.f90 H5f90global.lo
H5Aff.lo: $(srcdir)/H5Aff.f90 H5f90global.lo
H5Dff.lo: $(srcdir)/H5Dff.f90 H5f90global.lo
+H5Aff$(F_STATUS).lo: $(srcdir)/H5Aff$(F_STATUS).f90 H5f90global.lo
+H5Dff$(F_STATUS).lo: $(srcdir)/H5Dff$(F_STATUS).f90 H5f90global.lo
+H5Eff$(F_STATUS).lo: $(srcdir)/H5Eff$(F_STATUS).f90 H5f90global.lo
+H5Lff$(F_STATUS).lo: $(srcdir)/H5Lff$(F_STATUS).f90 H5f90global.lo
+H5Off$(F_STATUS).lo: $(srcdir)/H5Off$(F_STATUS).f90 H5f90global.lo
+H5Pff$(F_STATUS).lo: $(srcdir)/H5Pff$(F_STATUS).f90 H5f90global.lo
+H5Rff$(F_STATUS).lo: $(srcdir)/H5Rff$(F_STATUS).f90 H5f90global.lo
+H5Tff$(F_STATUS).lo: $(srcdir)/H5Tff$(F_STATUS).f90 H5f90global.lo
H5Eff.lo: $(srcdir)/H5Eff.f90 H5f90global.lo
H5Fff.lo: $(srcdir)/H5Fff.f90 H5f90global.lo
H5Gff.lo: $(srcdir)/H5Gff.f90 H5f90global.lo
@@ -1037,16 +1062,23 @@ H5Rff.lo: $(srcdir)/H5Rff.f90 H5f90global.lo
H5Sff.lo: $(srcdir)/H5Sff.f90 H5f90global.lo
H5Tff.lo: $(srcdir)/H5Tff.f90 H5f90global.lo
H5Zff.lo: $(srcdir)/H5Zff.f90 H5f90global.lo
-H5_DBLE_Interface$(F_DBLE).lo: $(srcdir)/H5_DBLE_Interface$(F_DBLE).f90 H5Aff.lo H5Dff.lo H5Pff.lo
-
-HDF5.lo: $(srcdir)/HDF5.f90 H5f90global.lo H5Aff.lo \
- H5Dff.lo H5Eff.lo H5Fff.lo H5Gff.lo H5Iff.lo H5Lff.lo \
- H5Pff.lo H5Rff.lo H5Sff.lo H5Tff.lo H5Zff.lo \
- H5_DBLE_Interface$(F_DBLE).lo
+H5_DBLE_Interface$(F_DBLE).lo: $(srcdir)/H5_DBLE_Interface$(F_DBLE).f90 H5Aff$(F_STATUS).lo H5Dff$(F_STATUS).lo H5Eff$(F_STATUS).lo H5Pff$(F_STATUS).lo
+HDF5.lo: $(srcdir)/HDF5.f90 H5f90global.lo H5Aff.lo H5Aff$(F_STATUS).lo \
+ H5Dff.lo H5Dff$(F_STATUS).lo \
+ H5Eff.lo H5Eff$(F_STATUS).lo \
+ H5Fff.lo H5Gff.lo H5Iff.lo H5Lff.lo H5Lff$(F_STATUS).lo \
+ H5Off.lo H5Off$(F_STATUS).lo H5Pff.lo H5Pff$(F_STATUS).lo H5Rff$(F_STATUS).lo H5Rff.lo \
+ H5Sff.lo H5Tff.lo H5Tff$(F_STATUS).lo H5Zff.lo \
+ H5_DBLE_Interface$(F_DBLE).lo
H5FDmpioff.lo: $(srcdir)/H5FDmpioff.f90 H5f90global.lo
-HDF5mpio.lo: $(srcdir)/H5FDmpioff.f90 H5f90global.lo H5Aff.lo \
- H5Dff.lo H5Eff.lo H5Fff.lo H5Gff.lo H5Iff.lo H5Lff.lo \
- H5Pff.lo H5Rff.lo H5Sff.lo H5Tff.lo H5Zff.lo H5_DBLE_Interface$(F_DBLE).lo H5FDmpioff.lo
+HDF5mpio.lo: $(srcdir)/H5FDmpioff.f90 H5f90global.lo \
+ H5Aff.lo H5Aff$(F_STATUS).lo \
+ H5Dff.lo H5Dff$(F_STATUS).lo \
+ H5Eff.lo H5Eff$(F_STATUS).lo \
+ H5Fff.lo H5Gff.lo H5Iff.lo H5Lff.lo H5Lff$(F_STATUS).lo \
+ H5Off.lo H5Off$(F_STATUS).lo H5Pff.lo H5Pff$(F_STATUS).lo H5Rff$(F_STATUS).lo H5Rff.lo \
+ H5Sff.lo H5Tff.lo H5Tff$(F_STATUS).lo H5Zff.lo \
+ H5_DBLE_Interface$(F_DBLE).lo H5FDmpioff.lo
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
diff --git a/fortran/test/Makefile.am b/fortran/test/Makefile.am
index fb4d6ca..b261785 100644
--- a/fortran/test/Makefile.am
+++ b/fortran/test/Makefile.am
@@ -35,8 +35,21 @@ else
AM_LDFLAGS+=-static
endif
+# Check if the compiler supports the Fortran 2003 standard
+# which should include the intrinsic module iso_c_binding
+if FORTRAN_2003_CONDITIONAL_F
+ ff_PREFIX = F03
+else
+ ff_PREFIX = F90
+endif
+
# Our main targets, the tests themselves
TEST_PROG=fortranlib_test fflush1 fflush2 fortranlib_test_1_8
+
+if FORTRAN_2003_CONDITIONAL_F
+ TEST_PROG += fortranlib_test_F03
+endif
+
check_PROGRAMS=$(TEST_PROG)
libh5test_fortran_la_SOURCES= tf.f90 t.c
@@ -51,8 +64,14 @@ fortranlib_test_SOURCES = fortranlib_test.f90 \
tH5Sselect.f90 tH5P.f90 tH5A.f90 tH5I.f90 tH5G.f90 tH5E.f90
fortranlib_test_1_8_SOURCES = fortranlib_test_1_8.f90 \
- tH5F.f90 tH5O.f90 tH5A_1_8.f90 tH5G_1_8.f90
-
+ tH5F.f90 tH5O.f90 tH5A_1_8.f90 tH5G_1_8.f90
+
+if FORTRAN_2003_CONDITIONAL_F
+ fortranlib_test_F03_SOURCES = fortranlib_test_F03.f90 \
+ tH5F.f90 tH5E_F03.f90 tH5L_F03.f90 tH5P_F03.f90 tH5T_F03.f90
+endif
+
+
fflush1_SOURCES=fflush1.f90
fflush2_SOURCES=fflush2.f90
diff --git a/fortran/test/Makefile.in b/fortran/test/Makefile.in
index 080544c..27198a8 100644
--- a/fortran/test/Makefile.in
+++ b/fortran/test/Makefile.in
@@ -59,7 +59,8 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
# want to build a shared C library and a static Fortran library. If so,
# pass the -static flag to the library linker.
@FORTRAN_SHARED_CONDITIONAL_FALSE@am__append_1 = -static
-check_PROGRAMS = $(am__EXEEXT_1)
+@FORTRAN_2003_CONDITIONAL_F_TRUE@am__append_2 = fortranlib_test_F03
+check_PROGRAMS = $(am__EXEEXT_2)
TESTS = $(check_PROGRAMS)
subdir = fortran/test
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -77,8 +78,10 @@ libh5test_fortran_la_OBJECTS = $(am_libh5test_fortran_la_OBJECTS)
AM_V_lt = $(am__v_lt_$(V))
am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
am__v_lt_0 = --silent
-am__EXEEXT_1 = fortranlib_test$(EXEEXT) fflush1$(EXEEXT) \
- fflush2$(EXEEXT) fortranlib_test_1_8$(EXEEXT)
+@FORTRAN_2003_CONDITIONAL_F_TRUE@am__EXEEXT_1 = \
+@FORTRAN_2003_CONDITIONAL_F_TRUE@ fortranlib_test_F03$(EXEEXT)
+am__EXEEXT_2 = fortranlib_test$(EXEEXT) fflush1$(EXEEXT) \
+ fflush2$(EXEEXT) fortranlib_test_1_8$(EXEEXT) $(am__EXEEXT_1)
am_fflush1_OBJECTS = fflush1.$(OBJEXT)
fflush1_OBJECTS = $(am_fflush1_OBJECTS)
fflush1_LDADD = $(LDADD)
@@ -114,6 +117,18 @@ fortranlib_test_1_8_OBJECTS = $(am_fortranlib_test_1_8_OBJECTS)
fortranlib_test_1_8_LDADD = $(LDADD)
fortranlib_test_1_8_DEPENDENCIES = libh5test_fortran.la $(LIBH5TEST) \
$(LIBH5F) $(LIBHDF5)
+am__fortranlib_test_F03_SOURCES_DIST = fortranlib_test_F03.f90 \
+ tH5F.f90 tH5E_F03.f90 tH5L_F03.f90 tH5P_F03.f90 tH5T_F03.f90
+@FORTRAN_2003_CONDITIONAL_F_TRUE@am_fortranlib_test_F03_OBJECTS = fortranlib_test_F03.$(OBJEXT) \
+@FORTRAN_2003_CONDITIONAL_F_TRUE@ tH5F.$(OBJEXT) \
+@FORTRAN_2003_CONDITIONAL_F_TRUE@ tH5E_F03.$(OBJEXT) \
+@FORTRAN_2003_CONDITIONAL_F_TRUE@ tH5L_F03.$(OBJEXT) \
+@FORTRAN_2003_CONDITIONAL_F_TRUE@ tH5P_F03.$(OBJEXT) \
+@FORTRAN_2003_CONDITIONAL_F_TRUE@ tH5T_F03.$(OBJEXT)
+fortranlib_test_F03_OBJECTS = $(am_fortranlib_test_F03_OBJECTS)
+fortranlib_test_F03_LDADD = $(LDADD)
+fortranlib_test_F03_DEPENDENCIES = libh5test_fortran.la $(LIBH5TEST) \
+ $(LIBH5F) $(LIBHDF5)
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src
depcomp = $(SHELL) $(top_srcdir)/bin/depcomp
am__depfiles_maybe = depfiles
@@ -155,10 +170,11 @@ am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo " GEN " $@;
SOURCES = $(libh5test_fortran_la_SOURCES) $(fflush1_SOURCES) \
$(fflush2_SOURCES) $(fortranlib_test_SOURCES) \
- $(fortranlib_test_1_8_SOURCES)
+ $(fortranlib_test_1_8_SOURCES) $(fortranlib_test_F03_SOURCES)
DIST_SOURCES = $(libh5test_fortran_la_SOURCES) $(fflush1_SOURCES) \
$(fflush2_SOURCES) $(fortranlib_test_SOURCES) \
- $(fortranlib_test_1_8_SOURCES)
+ $(fortranlib_test_1_8_SOURCES) \
+ $(am__fortranlib_test_F03_SOURCES_DIST)
ETAGS = etags
CTAGS = ctags
am__tty_colors = \
@@ -232,6 +248,7 @@ F9XMODEXT = @F9XMODEXT@
F9XMODFLAG = @F9XMODFLAG@
F9XSUFFIXFLAG = @F9XSUFFIXFLAG@
FC = @FC@
+FC2003 = @FC2003@
FCFLAGS = @FCFLAGS@
FCFLAGS_f90 = @FCFLAGS_f90@
FCLIBS = @FCLIBS@
@@ -252,10 +269,12 @@ H5_LONE_COLON = @H5_LONE_COLON@
H5_VERSION = @H5_VERSION@
HADDR_T = @HADDR_T@
HAVE_DMALLOC = @HAVE_DMALLOC@
+HAVE_FORTRAN_2003 = @HAVE_FORTRAN_2003@
HDF5_HL = @HDF5_HL@
HDF5_INTERFACES = @HDF5_INTERFACES@
HDF_CXX = @HDF_CXX@
HDF_FORTRAN = @HDF_FORTRAN@
+HDF_FORTRAN2003 = @HDF_FORTRAN2003@
HID_T = @HID_T@
HL = @HL@
HL_FOR = @HL_FOR@
@@ -451,9 +470,15 @@ INCLUDES = -I$(top_srcdir)/src -I$(top_builddir)/fortran/src
# The Fortran test library
noinst_LTLIBRARIES = libh5test_fortran.la
+@FORTRAN_2003_CONDITIONAL_F_FALSE@ff_PREFIX = F90
+
+# Check if the compiler supports the Fortran 2003 standard
+# which should include the intrinsic module iso_c_binding
+@FORTRAN_2003_CONDITIONAL_F_TRUE@ff_PREFIX = F03
# Our main targets, the tests themselves
-TEST_PROG = fortranlib_test fflush1 fflush2 fortranlib_test_1_8
+TEST_PROG = fortranlib_test fflush1 fflush2 fortranlib_test_1_8 \
+ $(am__append_2)
libh5test_fortran_la_SOURCES = tf.f90 t.c
# Source files are used for both the library and fortranlib_test.
@@ -465,7 +490,10 @@ fortranlib_test_SOURCES = fortranlib_test.f90 \
tH5Sselect.f90 tH5P.f90 tH5A.f90 tH5I.f90 tH5G.f90 tH5E.f90
fortranlib_test_1_8_SOURCES = fortranlib_test_1_8.f90 \
- tH5F.f90 tH5O.f90 tH5A_1_8.f90 tH5G_1_8.f90
+ tH5F.f90 tH5O.f90 tH5A_1_8.f90 tH5G_1_8.f90
+
+@FORTRAN_2003_CONDITIONAL_F_TRUE@fortranlib_test_F03_SOURCES = fortranlib_test_F03.f90 \
+@FORTRAN_2003_CONDITIONAL_F_TRUE@ tH5F.f90 tH5E_F03.f90 tH5L_F03.f90 tH5P_F03.f90 tH5T_F03.f90
fflush1_SOURCES = fflush1.f90
fflush2_SOURCES = fflush2.f90
@@ -559,6 +587,9 @@ fortranlib_test$(EXEEXT): $(fortranlib_test_OBJECTS) $(fortranlib_test_DEPENDENC
fortranlib_test_1_8$(EXEEXT): $(fortranlib_test_1_8_OBJECTS) $(fortranlib_test_1_8_DEPENDENCIES)
@rm -f fortranlib_test_1_8$(EXEEXT)
$(AM_V_FCLD)$(FCLINK) $(fortranlib_test_1_8_OBJECTS) $(fortranlib_test_1_8_LDADD) $(LIBS)
+fortranlib_test_F03$(EXEEXT): $(fortranlib_test_F03_OBJECTS) $(fortranlib_test_F03_DEPENDENCIES)
+ @rm -f fortranlib_test_F03$(EXEEXT)
+ $(AM_V_FCLD)$(FCLINK) $(fortranlib_test_F03_OBJECTS) $(fortranlib_test_F03_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
diff --git a/fortran/test/fflush1.f90 b/fortran/test/fflush1.f90
index 8767e55..d35bfff 100644
--- a/fortran/test/fflush1.f90
+++ b/fortran/test/fflush1.f90
@@ -1,3 +1,15 @@
+!****h* root/fortran/test/fflush1.f90
+!
+! NAME
+! FFLUSH1EXAMPLE
+!
+! FUNCTION
+! This is the first half of a two-part test that makes sure
+! that a file can be read after an application crashes as long
+! as the file was flushed first. We simulate by exit the
+! the program using stop statement
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,12 +25,7 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
-!
-! Purpose: This is the first half of a two-part test that makes sure
-! that a file can be read after an application crashes as long
-! as the file was flushed first. We simulate by exit the
-! the program using stop statement
-!
+!*****
PROGRAM FFLUSH1EXAMPLE
diff --git a/fortran/test/fflush2.f90 b/fortran/test/fflush2.f90
index a4710e2..d699150 100644
--- a/fortran/test/fflush2.f90
+++ b/fortran/test/fflush2.f90
@@ -1,3 +1,15 @@
+!****h* root/fortran/test/fflush2.f90
+!
+! NAME
+! fflush2.f90
+!
+! FUNCTION
+! This is the second half of a two-part test that makes sure
+! that a file can be read after an application crashes as long
+! as the file was flushed first. This half tries to read the
+! file created by the first half.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,12 +25,7 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
-!
-! Purpose: This is the second half of a two-part test that makes sure
-! that a file can be read after an application crashes as long
-! as the file was flushed first. This half tries to read the
-! file created by the first half.
-!
+!*****
PROGRAM FFLUSH2EXAMPLE
@@ -89,7 +96,6 @@
write(*,*) "Cannot modify filename"
CALL h5_exit_f (1)
endif
- print *, "filename=", filename, "fix_filename=", fix_filename
CALL h5fopen_f(fix_filename, H5F_ACC_RDONLY_F, file_id, error)
CALL check("h5fopen_f",error,total_error)
@@ -135,7 +141,6 @@
!In case error happens, exit.
!
IF (error == -1) CALL h5_exit_f (1)
-
!
!Close the datatype
!
diff --git a/fortran/test/fortranlib_test.f90 b/fortran/test/fortranlib_test.f90
index 08580c8..6268d15 100644
--- a/fortran/test/fortranlib_test.f90
+++ b/fortran/test/fortranlib_test.f90
@@ -1,3 +1,12 @@
+!****h* root/fortran/test/fortranlib_test.f90
+!
+! NAME
+! fortranlib_test.f90
+!
+! FUNCTION
+! Basic testing of Fortran API's functionality.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,10 +22,8 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
-!
-!
-! Testing Fortran functionality.
-!
+!*****
+
PROGRAM fortranlibtest
USE HDF5
@@ -142,7 +149,7 @@ PROGRAM fortranlibtest
ret_total_error = 0
CALL test_select_bounds(cleanup, ret_total_error)
CALL write_test_status(ret_total_error, ' Selection bounds test ', total_error)
-
+
! write(*,*)
! write(*,*) '========================================='
! write(*,*) 'Testing DATATYPE interface '
diff --git a/fortran/test/fortranlib_test_1_8.f90 b/fortran/test/fortranlib_test_1_8.f90
index fac83eb..dbada6b 100644
--- a/fortran/test/fortranlib_test_1_8.f90
+++ b/fortran/test/fortranlib_test_1_8.f90
@@ -1,3 +1,12 @@
+!****h* root/fortran/test/fortranlib_test_1_8.f90
+!
+! NAME
+! fortranlib_test_1_8.f90
+!
+! FUNCTION
+! Basic testing of Fortran API's introduced in 1.8 release.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,10 +22,8 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
-!
-!
-! Testing Fortran wrappers introduced in 1.8 release.
-!
+!*****
+
PROGRAM fortranlibtest
USE HDF5
@@ -81,20 +88,22 @@ PROGRAM fortranlibtest
total_error)
ret_total_error = 0
- CALL test_genprop_basic_class(cleanup, ret_total_error)
+ CALL test_h5s_encode(cleanup, ret_total_error)
CALL write_test_status(ret_total_error, &
- ' Testing basic generic properties', &
+ ' Testing dataspace encoding and decoding', &
total_error)
ret_total_error = 0
- CALL test_h5s_encode(cleanup, ret_total_error)
+ CALL test_nbit(cleanup, ret_total_error )
CALL write_test_status(ret_total_error, &
- ' Testing dataspace encoding and decoding', &
+ ' Testing nbit filter', &
total_error)
-
-
-! CALL test_hard_query(group_total_error)
+ ret_total_error = 0
+ CALL test_scaleoffset(cleanup, ret_total_error )
+ CALL write_test_status(ret_total_error, &
+ ' Testing scaleoffset filter', &
+ total_error)
WRITE(*,*)
@@ -129,7 +138,6 @@ SUBROUTINE dtransform(cleanup, total_error)
INTEGER(SIZE_T) :: size
-
CALL H5Fcreate_f("dtransform.h5", H5F_ACC_TRUNC_F, file_id, error)
CALL check("dtransform.H5Fcreate_f", error, total_error)
@@ -194,10 +202,6 @@ SUBROUTINE test_genprop_basic_class(cleanup, total_error)
INTEGER :: size
LOGICAL :: flag
- !/* Output message about test being performed */
-
- !WRITE(*,*) "Testing Basic Generic Property List Class Creation Functionality"
-
! /* Create a new generic class, derived from the root of the class hierarchy */
CALL H5Pcreate_class_f(H5P_ROOT_F, CLASS1_NAME, cid1, error)
CALL check("H5Pcreate_class", error, total_error)
@@ -277,13 +281,10 @@ SUBROUTINE test_h5s_encode(cleanup, total_error)
INTEGER :: rank !/* LOGICAL rank of dataspace */
INTEGER(size_t) :: sbuf_size=0, scalar_size=0
-! Make sure the size is large, need variable length in fortran 2003
+! Make sure the size is large
CHARACTER(LEN=288) :: sbuf
CHARACTER(LEN=288) :: scalar_buf
-! F2003 CHARACTER(LEN=:), ALLOCATABLE :: sbuf
-! unsigned char *sbuf=NULL, *null_sbuf=NULL, *scalar_buf=NULL;
-! hsize_t tdims[4]; /* Dimension array to test with */
INTEGER(hsize_t) :: n ! /* Number of dataspace elements */
INTEGER(hsize_t), DIMENSION(1:3) :: start = (/0, 0, 0/)
@@ -292,11 +293,8 @@ SUBROUTINE test_h5s_encode(cleanup, total_error)
INTEGER(hsize_t), DIMENSION(1:3) :: BLOCK = (/1, 3, 1/)
INTEGER :: space_type
-
-! H5S_sel_type sel_type;
-! hssize_t nblocks;
!
- !Dataset dimensions
+ ! Dataset dimensions
!
INTEGER, PARAMETER :: SPACE1_DIM1= 3, SPACE1_DIM2=15, SPACE1_DIM3=13
@@ -304,9 +302,6 @@ SUBROUTINE test_h5s_encode(cleanup, total_error)
INTEGER :: SPACE1_RANK = 3
INTEGER :: error
- !/* Output message about test being performed */
- !WRITE(*,*) "Testing Dataspace Encoding and Decoding"
-
!/*-------------------------------------------------------------------------
! * Test encoding and decoding of simple dataspace and hyperslab selection.
! *-------------------------------------------------------------------------
@@ -326,7 +321,6 @@ SUBROUTINE test_h5s_encode(cleanup, total_error)
CALL H5Sencode_f(sid1, sbuf, sbuf_size, error)
CALL check("H5Sencode", error, total_error)
- ! In fortran 2003 we can allocate the needed character size here
! /* Try decoding bogus buffer */
@@ -347,23 +341,6 @@ SUBROUTINE test_h5s_encode(cleanup, total_error)
CALL VERIFY("h5sget_simple_extent_npoints_f", INT(n), SPACE1_DIM1 * SPACE1_DIM2 * SPACE1_DIM3, &
total_error)
-!!$
-!!$ rank = H5Sget_simple_extent_ndims(decoded_sid1);
-!!$ CHECK(rank, FAIL, "H5Sget_simple_extent_ndims");
-!!$ VERIFY(rank, SPACE1_RANK, "H5Sget_simple_extent_ndims");
-!!$
-!!$ rank = H5Sget_simple_extent_dims(decoded_sid1, tdims, NULL);
-!!$ CHECK(rank, FAIL, "H5Sget_simple_extent_dims");
-!!$ VERIFY(HDmemcmp(tdims, dims1, SPACE1_RANK * sizeof(hsize_t)), 0,
-!!$ "H5Sget_simple_extent_dims");
-!!$
-!!$ /* Verify hyperslabe selection */
-!!$ sel_type = H5Sget_select_type(decoded_sid1);
-!!$ VERIFY(sel_type, H5S_SEL_HYPERSLABS, "H5Sget_select_type");
-!!$
-!!$ nblocks = H5Sget_select_hyper_nblocks(decoded_sid1);
-!!$ VERIFY(nblocks, 2*2*2, "H5Sget_select_hyper_nblocks");
-!!$
!
!Close the dataspace for the dataset.
!
@@ -423,3 +400,289 @@ SUBROUTINE test_h5s_encode(cleanup, total_error)
END SUBROUTINE test_h5s_encode
+!-------------------------------------------------------------------------
+! Function: test_nbit
+!
+! Purpose: Tests (real) datatype for nbit filter
+!
+! Return: Success: 0
+! Failure: >0
+!
+! Programmer: M. Scot Breitenfeld
+! Decemeber 7, 2010
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+!
+
+SUBROUTINE test_nbit(cleanup, total_error )
+
+ USE HDF5
+
+ IMPLICIT NONE
+ INTEGER, PARAMETER :: wp = KIND(1.0)
+ LOGICAL, INTENT(IN) :: cleanup
+ INTEGER, INTENT(INOUT) :: total_error
+ INTEGER(hid_t) :: file
+
+ INTEGER(hid_t) :: dataset, datatype, space, dc
+ INTEGER(hsize_t), DIMENSION(1:2) :: dims = (/2,5/)
+ INTEGER(hsize_t), DIMENSION(1:2) :: chunk_dim = (/2,5/)
+ ! orig_data[] are initialized to be within the range that can be represented by
+ ! dataset datatype (no precision loss during datatype conversion)
+ !
+ REAL(kind=wp), DIMENSION(1:2,1:5) :: orig_data = RESHAPE( (/188384.00, 19.103516, -1.0831790e9, -84.242188, &
+ 5.2045898, -49140.000, 2350.2500, -3.2110596e-1, 6.4998865e-5, -0.0000000/) , (/2,5/) )
+ REAL(kind=wp), DIMENSION(1:2,1:5) :: new_data
+ INTEGER(size_t) :: PRECISION, offset
+ INTEGER :: error
+ LOGICAL :: status
+ INTEGER*8 :: ii
+ INTEGER(size_t) :: i, j
+
+
+ ! check to see if filter is available
+ CALL H5Zfilter_avail_f(H5Z_FILTER_NBIT_F, status, error)
+ IF(.NOT.status)THEN ! We don't have H5Z_FILTER_NBIT_F filter
+ total_error = -1 ! so return
+ RETURN
+ ENDIF
+
+ CALL H5Fcreate_f("nbit.h5", H5F_ACC_TRUNC_F, file, error)
+ CALL check("H5Fcreate_f", error, total_error)
+
+ ! Define dataset datatype (integer), and set precision, offset
+ CALL H5Tcopy_f(H5T_IEEE_F32BE, datatype, error)
+ CALL CHECK(" H5Tcopy_f", error, total_error)
+ CALL H5Tset_fields_f(datatype, 26_size_t, 20_size_t, 6_size_t, 7_size_t, 13_size_t, error)
+ CALL CHECK(" H5Tset_fields_f", error, total_error)
+ offset = 7
+ CALL H5Tset_offset_f(datatype, offset, error)
+ CALL CHECK(" H5Tset_offset_f", error, total_error)
+ PRECISION = 20
+ CALL H5Tset_precision_f(datatype,PRECISION, error)
+ CALL CHECK(" H5Tset_precision_f", error, total_error)
+
+ CALL H5Tset_size_f(datatype, 4_size_t, error)
+ CALL CHECK(" H5Tset_size_f", error, total_error)
+
+ CALL H5Tset_ebias_f(datatype, 31_size_t, error)
+ CALL CHECK(" H5Tset_ebias_f", error, total_error)
+
+ ! Create the data space
+ CALL H5Screate_simple_f(2, dims, space, error)
+ CALL CHECK(" H5Screate_simple_f", error, total_error)
+
+ ! USE nbit filter
+ CALL H5Pcreate_f(H5P_DATASET_CREATE_F, dc, error)
+ CALL CHECK(" H5Pcreate_f", error, total_error)
+
+ CALL H5Pset_chunk_f(dc, 2, chunk_dim, error)
+ CALL CHECK(" H5Pset_chunk_f", error, total_error)
+ CALL H5Pset_nbit_f(dc, error)
+ CALL CHECK(" H5Pset_nbit_f", error, total_error)
+
+ ! Create the dataset
+ CALL H5Dcreate_f(file, "nbit_real", datatype, &
+ space, dataset, error, dc)
+ CALL CHECK(" H5Dcreate_f", error, total_error)
+
+ !----------------------------------------------------------------------
+ ! STEP 1: Test nbit by setting up a chunked dataset and writing
+ ! to it.
+ !----------------------------------------------------------------------
+ !
+ CALL H5Dwrite_f(dataset, H5T_NATIVE_REAL, orig_data, dims, error)
+ CALL CHECK(" H5Dwrite_f", error, total_error)
+
+ !----------------------------------------------------------------------
+ ! STEP 2: Try to read the data we just wrote.
+ !----------------------------------------------------------------------
+ !
+ CALL H5Dread_f(dataset, H5T_NATIVE_REAL, new_data, dims, error)
+ CALL CHECK(" H5Dread_f", error, total_error)
+
+ ! Check that the values read are the same as the values written
+ ! Assume size of long long = size of double
+ !
+ i_loop: DO i = 1, dims(1)
+ j_loop: DO j = 1, dims(2)
+ IF(.NOT.(orig_data(i,j).EQ.orig_data(i,j))) CYCLE ! skip IF value is NaN
+ IF(new_data(i,j) .NE. orig_data(i,j))THEN
+ total_error = total_error + 1
+ WRITE(*,'(" Read different values than written.")')
+ WRITE(*,'(" At index ", 2(1X,I0))') i, j
+ EXIT i_loop
+ END IF
+ ENDDO j_loop
+ ENDDO i_loop
+
+ !----------------------------------------------------------------------
+ ! Cleanup
+ !----------------------------------------------------------------------
+ !
+ CALL H5Tclose_f(datatype, error)
+ CALL CHECK(" H5Tclose_f", error, total_error)
+ CALL H5Pclose_f(dc, error)
+ CALL CHECK(" H5Pclose_f", error, total_error)
+ CALL H5Sclose_f(space, error)
+ CALL CHECK(" H5Sclose_f", error, total_error)
+ CALL H5Dclose_f(dataset, error)
+ CALL CHECK(" H5Dclose_f", error, total_error)
+ CALL H5Fclose_f(file, error)
+ CALL CHECK(" H5Fclose_f", error, total_error)
+
+END SUBROUTINE test_nbit
+
+!-------------------------------------------------------------------------
+! Function: test_scaleoffset
+!
+! Purpose: Tests the integer datatype for scaleoffset filter
+! with fill value set
+!
+! Return: Success: 0
+! Failure: >0
+!
+! Programmer: M. Scot Breitenfeld
+! Decemeber 11, 2010
+!
+! Modifications:
+!
+!-------------------------------------------------------------------------
+!
+
+SUBROUTINE test_scaleoffset(cleanup, total_error )
+
+ USE HDF5
+
+ IMPLICIT NONE
+ LOGICAL, INTENT(IN) :: cleanup
+ INTEGER, INTENT(INOUT) :: total_error
+ INTEGER(hid_t) :: file
+
+ INTEGER(hid_t) :: dataset, datatype, space, mspace, dc
+ INTEGER(hsize_t), DIMENSION(1:2) :: dims = (/2, 5/)
+ INTEGER(hsize_t), DIMENSION(1:2) :: chunk_dim = (/2, 5/)
+ INTEGER, DIMENSION(1:2,1:5) :: orig_data
+ INTEGER, DIMENSION(1:2,1:5) :: new_data
+ INTEGER(hsize_t), DIMENSION(1:2) :: start ! Start of hyperslab
+ INTEGER(hsize_t), DIMENSION(1:2) :: stride ! Stride of hyperslab
+ INTEGER(hsize_t), DIMENSION(1:2) :: count ! BLOCK count
+ INTEGER(hsize_t), DIMENSION(1:2) :: BLOCK ! BLOCK sizes
+ INTEGER :: fillval
+ INTEGER(size_t) :: j
+ REAL :: x
+ INTEGER :: error
+ LOGICAL :: status
+
+ ! check to see if filter is available
+ CALL H5Zfilter_avail_f(H5Z_FILTER_SCALEOFFSET_F, status, error)
+ IF(.NOT.status)THEN ! We don't have H5Z_FILTER_SCALEOFFSET_F filter
+ total_error = -1 ! so return
+ RETURN
+ ENDIF
+
+ CALL H5Fcreate_f("h5scaleoffset.h5", H5F_ACC_TRUNC_F, file, error)
+ CALL check("H5Fcreate_f", error, total_error)
+
+ CALL H5Tcopy_f(H5T_NATIVE_INTEGER, datatype, error)
+ CALL CHECK(" H5Tcopy_f", error, total_error)
+
+ ! Set order of dataset datatype
+ CALL H5Tset_order_f(datatype, H5T_ORDER_BE_F, error)
+ CALL CHECK(" H5Tset_order_f", error, total_error)
+
+ ! Create the data space for the dataset
+ CALL H5Screate_simple_f(2, dims, space, error)
+ CALL CHECK(" H5Screate_simple_f", error, total_error)
+
+ ! Create the dataset property list
+ CALL H5Pcreate_f(H5P_DATASET_CREATE_F, dc, error)
+ CALL CHECK(" H5Pcreate_f", error, total_error)
+
+ ! Set fill value
+ fillval = 10000
+ CALL H5Pset_fill_value_f(dc, H5T_NATIVE_INTEGER, fillval, error)
+ CALL CHECK(" H5Pset_fill_value_f", error, total_error)
+
+ ! Set up to use scaleoffset filter, let library calculate minbits
+ CALL H5Pset_chunk_f(dc, 2, chunk_dim, error)
+ CALL CHECK(" H5Pset_chunk_f", error, total_error)
+
+ CALL H5Pset_scaleoffset_f(dc, H5Z_SO_INT_F, H5Z_SO_INT_MINBITS_DEFAULT_F, error)
+ CALL CHECK(" H5Pset_scaleoffset_f", error, total_error)
+
+ ! Create the dataset
+ CALL H5Dcreate_f(file, "scaleoffset_int", datatype, &
+ space, dataset, error, dc)
+ CALL CHECK(" H5Dcreate_f", error, total_error)
+
+ ! Create the memory data space
+ CALL H5Screate_simple_f(2, dims, mspace, error)
+ CALL CHECK(" H5Screate_simple_f", error, total_error)
+
+ ! Select hyperslab for data to write, using 1x5 blocks,
+ ! (1,1) stride and (1,1) count starting at the position (0,0)
+
+ start(1:2) = (/0,0/)
+ stride(1:2) = (/1,1/)
+ COUNT(1:2) = (/1,1/)
+ BLOCK(1:2) = (/1,5/)
+
+ CALL H5Sselect_hyperslab_f(mspace, H5S_SELECT_SET_F, start, &
+ count, error, stride, BLOCK)
+ CALL CHECK(" H5Sselect_hyperslab_f", error, total_error)
+
+ CALL RANDOM_SEED()
+ ! Initialize data of hyperslab
+ DO j = 1, dims(2)
+ CALL RANDOM_NUMBER(x)
+ orig_data(1,j) = INT(x*10000.)
+ IF(MOD(j,2).EQ.0)THEN
+ orig_data(1,j) = - orig_data(1,j)
+ ENDIF
+ ENDDO
+
+ !----------------------------------------------------------------------
+ ! STEP 1: Test scaleoffset by setting up a chunked dataset and writing
+ ! to it.
+ !----------------------------------------------------------------------
+
+ ! Only data in the hyperslab will be written, other value should be fill value
+ CALL H5Dwrite_f(dataset, H5T_NATIVE_INTEGER, orig_data, dims, error, mspace, mspace, H5P_DEFAULT_F)
+ CALL CHECK(" H5Dwrite_f", error, total_error)
+
+ !----------------------------------------------------------------------
+ ! STEP 2: Try to read the data we just wrote.
+ !----------------------------------------------------------------------
+
+ ! Read the dataset back
+
+ CALL H5Dread_f(dataset, H5T_NATIVE_INTEGER, new_data, dims, error, mspace, mspace, H5P_DEFAULT_F)
+ CALL CHECK(" H5Dread_f", error, total_error)
+
+ ! Check that the values read are the same as the values written
+ DO j = 1, dims(2)
+ IF(new_data(1,j) .NE. orig_data(1,j))THEN
+ total_error = total_error + 1
+ WRITE(*,'(" Read different values than written.")')
+ WRITE(*,'(" At index ", 2(1X,I0))') 1, j
+ EXIT
+ ENDIF
+ ENDDO
+ !----------------------------------------------------------------------
+ ! Cleanup
+ !----------------------------------------------------------------------
+ CALL H5Tclose_f(datatype, error)
+ CALL CHECK(" H5Tclose_f", error, total_error)
+ CALL H5Pclose_f(dc, error)
+ CALL CHECK(" H5Pclose_f", error, total_error)
+ CALL H5Sclose_f(space, error)
+ CALL CHECK(" H5Sclose_f", error, total_error)
+ CALL H5Dclose_f(dataset, error)
+ CALL CHECK(" H5Dclose_f", error, total_error)
+ CALL H5Fclose_f(file, error)
+ CALL CHECK(" H5Fclose_f", error, total_error)
+
+END SUBROUTINE test_scaleoffset
diff --git a/fortran/test/fortranlib_test_F03.f90 b/fortran/test/fortranlib_test_F03.f90
new file mode 100644
index 0000000..62315ba
--- /dev/null
+++ b/fortran/test/fortranlib_test_F03.f90
@@ -0,0 +1,168 @@
+!****h* root/fortran/test/fortranlib_test_F03.f90
+!
+! NAME
+! fortranlib_test_F03.f90
+!
+! FUNCTION
+! Basic testing of Fortran API's requiring Fortran 2003
+! compliance.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+!*****
+
+PROGRAM fortranlibtest_F03
+
+ USE HDF5
+
+ IMPLICIT NONE
+ INTEGER :: total_error = 0
+ INTEGER :: error
+ INTEGER :: majnum, minnum, relnum
+ LOGICAL :: szip_flag
+ INTEGER :: ret_total_error
+ LOGICAL :: cleanup, status
+
+ CALL h5open_f(error)
+
+ cleanup = .TRUE.
+ CALL h5_env_nocleanup_f(status)
+ IF(status) cleanup=.FALSE.
+
+ WRITE(*,'(24X,A)') '=============================='
+ WRITE(*,'(24X,A)') ' FORTRAN 2003 tests '
+ WRITE(*,'(24X,A)') '=============================='
+ CALL h5get_libversion_f(majnum, minnum, relnum, total_error)
+ IF(total_error .EQ. 0) THEN
+ WRITE(*, '(" FORTRANLIB_TEST is linked with HDF5 Library version ")', advance="NO")
+ WRITE(*, '(I1)', advance="NO") majnum
+ WRITE(*, '(".")', advance="NO")
+ WRITE(*, '(I1)', advance="NO") minnum
+ WRITE(*, '(" release ")', advance="NO")
+ WRITE(*, '(I3)') relnum
+ ELSE
+ total_error = total_error + 1
+ ENDIF
+
+ ret_total_error = 0
+! PROBLEMS with C
+! CALL test_error(ret_total_error)
+! CALL write_test_status(ret_total_error, ' Test error API based on data I/O', total_error)
+
+ WRITE(*,*)
+! write(*,*)
+! write(*,*) '========================================='
+! write(*,*) 'Testing DATATYPE interface '
+! write(*,*) '========================================='
+ ret_total_error = 0
+ CALL test_array_compound_atomic(ret_total_error)
+ CALL write_test_status(ret_total_error, ' Testing 1-D Array of Compound Datatypes Functionality', total_error)
+
+ ret_total_error = 0
+ CALL test_array_compound_array(ret_total_error)
+ CALL write_test_status(ret_total_error, ' Testing 1-D Array of Compound Array Datatypes Functionality', total_error)
+
+ ret_total_error = 0
+ CALL t_array(ret_total_error)
+ CALL write_test_status(ret_total_error, ' Testing 3-D array by dataset, using C_LOC', total_error)
+
+ ret_total_error = 0
+ CALL t_enum(ret_total_error)
+ CALL write_test_status(ret_total_error, ' Testing writing/reading enum dataset, using C_LOC', total_error)
+
+ ret_total_error = 0
+ CALL t_bit(ret_total_error)
+ CALL write_test_status(ret_total_error, ' Testing writing/reading bitfield dataset, using C_LOC', total_error)
+
+ ret_total_error = 0
+ CALL t_opaque(ret_total_error)
+ CALL write_test_status(ret_total_error, ' Testing writing/reading opaque datatypes, using C_LOC', total_error)
+
+ ret_total_error = 0
+ CALL t_objref(ret_total_error)
+ CALL write_test_status(ret_total_error, ' Testing writing/reading object references, using C_LOC', total_error)
+
+ ret_total_error = 0
+ CALL t_regref(ret_total_error)
+ CALL write_test_status(ret_total_error, ' Testing writing/reading region references, using C_LOC', total_error)
+
+ ret_total_error = 0
+ CALL t_vlen(ret_total_error)
+ CALL write_test_status(ret_total_error, ' Testing writing/reading variable-length datatypes, using C_LOC', total_error)
+
+ ret_total_error = 0
+ CALL t_vlstring(ret_total_error)
+ CALL write_test_status(ret_total_error, ' Testing writing/reading variable-string datatypes, using C_LOC', total_error)
+
+ ret_total_error = 0
+ CALL t_string(ret_total_error)
+ CALL write_test_status(ret_total_error, ' Testing writing/reading string datatypes, using C_LOC', total_error)
+
+ ret_total_error = 0
+ CALL test_create(ret_total_error)
+ CALL write_test_status(ret_total_error, &
+ ' Testing filling functions', &
+ total_error)
+!DEC$ if defined(H5_VMS)
+ GOTO 8
+!DEC$ else
+ ret_total_error = 0
+ CALL file_close(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' File open/close test', total_error)
+!DEC$ endif
+8 CONTINUE
+
+ ret_total_error = 0
+ CALL test_h5kind_to_type(total_error)
+ CALL write_test_status(ret_total_error, &
+ ' Test function h5kind_to_type', &
+ total_error)
+
+ ret_total_error = 0
+ CALL test_array_bkg(ret_total_error)
+ CALL write_test_status(ret_total_error, ' Testing Partial I/O of Array Fields in Compound Datatype FunctionalityT', total_error)
+
+ ret_total_error = 0
+ CALL test_genprop_class_callback(ret_total_error)
+ CALL write_test_status(ret_total_error, ' Test basic generic property list callback functionality', total_error)
+
+ ret_total_error = 0
+ CALL test_iter_group(ret_total_error)
+ CALL write_test_status(ret_total_error, ' Testing Group Iteration Functionality', total_error)
+
+! write(*,*)
+! write(*,*) '========================================='
+! write(*,*) 'Testing GROUP interface '
+! write(*,*) '========================================='
+
+
+ WRITE(*,*)
+
+ WRITE(*,*) ' ============================================ '
+ WRITE(*, fmt = '(19x, 27a)', advance='NO') ' FORTRAN tests completed with '
+ WRITE(*, fmt = '(i4)', advance='NO') total_error
+ WRITE(*, fmt = '(12a)' ) ' error(s) ! '
+ WRITE(*,*) ' ============================================ '
+
+ CALL h5close_f(error)
+
+ ! if errors detected, exit with non-zero code.
+ IF (total_error .NE. 0) CALL h5_exit_f(1)
+
+END PROGRAM fortranlibtest_F03
+
+
diff --git a/fortran/test/t.c b/fortran/test/t.c
index bf30331..01d4cdd 100644
--- a/fortran/test/t.c
+++ b/fortran/test/t.c
@@ -1,4 +1,13 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+/****h* root/fortran/test/tc.c
+ *
+ * NAME
+ * tc.c
+ *
+ * FUNCTION
+ * This file contains C routines needed for the test programs.
+ *
+ * COPYRIGHT
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
@@ -11,7 +20,10 @@
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ ******
+*/
#include "t.h"
#include "H5Eprivate.h"
diff --git a/fortran/test/tH5A.f90 b/fortran/test/tH5A.f90
index dd6cbb1..03522f7 100644
--- a/fortran/test/tH5A.f90
+++ b/fortran/test/tH5A.f90
@@ -1,3 +1,12 @@
+!****h* root/fortran/test/tH5A.f90
+!
+! NAME
+! tH5A.f90
+!
+! FUNCTION
+! Basic testing of Fortran H5A APIs.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,6 +22,12 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! CONTAINS SUBROUTINES
+! attribute_test
+!
+!
+!*****
+
SUBROUTINE attribute_test(cleanup, total_error)
! This subroutine tests following functionalities:
diff --git a/fortran/test/tH5A_1_8.f90 b/fortran/test/tH5A_1_8.f90
index c48420e..c1dca9d 100644
--- a/fortran/test/tH5A_1_8.f90
+++ b/fortran/test/tH5A_1_8.f90
@@ -1,3 +1,12 @@
+!****h* root/fortran/test/tH5A_1_8.f90
+!
+! NAME
+! tH5A_1_8.f90
+!
+! FUNCTION
+! Basic testing of Fortran H5A APIs introduced in 1.8.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,6 +22,15 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! CONTAINS SUBROUTINES
+! attribute_test_1_8, test_attr_corder_create_compact, test_attr_null_space,
+! test_attr_create_by_name, test_attr_info_by_idx, attr_info_by_idx_check,
+! test_attr_shared_rename, test_attr_delete_by_idx, test_attr_shared_delete,
+! test_attr_dense_open, test_attr_dense_verify, test_attr_corder_create_basic,
+! test_attr_basic_write, test_attr_many, attr_open_check,
+!
+!*****
+
SUBROUTINE attribute_test_1_8(cleanup, total_error)
! This subroutine tests following 1.8 functionalities:
@@ -96,18 +114,6 @@ SUBROUTINE attribute_test_1_8(cleanup, total_error)
' - Tests INT attributes on both datasets and groups', &
total_error)
-!!$ CALL test_attr_basic_read(my_fapl)
-!!$ CALL test_attr_flush(my_fapl)
-!!$ CALL test_attr_plist(my_fapl) ! this is next
-!!$ CALL test_attr_compound_write(my_fapl)
-!!$ CALL test_attr_compound_read(my_fapl)
-!!$ CALL test_attr_scalar_write(my_fapl)
-!!$ CALL test_attr_scalar_read(my_fapl)
-!!$ CALL test_attr_mult_write(my_fapl)
-!!$ CALL test_attr_mult_read(my_fapl)
-!!$ CALL test_attr_iterate(my_fapl)
-!!$ CALL test_attr_delete(my_fapl)
-!!$ CALL test_attr_dtype_shared(my_fapl)
IF(new_format(i)) THEN
DO j = 1, 2
IF (use_shared(j)) THEN
@@ -117,7 +123,6 @@ SUBROUTINE attribute_test_1_8(cleanup, total_error)
WRITE(*,*) " - Testing without shared attributes:"
my_fcpl = fcpl
END IF
-!!$ CALL test_attr_dense_create(my_fcpl, my_fapl)
ret_total_error = 0
CALL test_attr_dense_open(my_fcpl, my_fapl, ret_total_error)
@@ -125,17 +130,11 @@ SUBROUTINE attribute_test_1_8(cleanup, total_error)
' - Testing INT attributes on both datasets and groups', &
total_error)
-!!$ CALL test_attr_dense_delete(my_fcpl, my_fapl)
-!!$ CALL test_attr_dense_rename(my_fcpl, my_fapl)
-!!$ CALL test_attr_dense_unlink(my_fcpl, my_fapl)
-!!$ CALL test_attr_dense_limits(my_fcpl, my_fapl)
-!!$ CALL test_attr_big(my_fcpl, my_fapl)
ret_total_error = 0
CALL test_attr_null_space(my_fcpl, my_fapl, ret_total_error)
CALL write_test_status(ret_total_error, &
' - Testing storing attribute with "null" dataspace', &
total_error)
-!!$ CALL test_attr_deprec(fcpl, my_fapl)
ret_total_error = 0
CALL test_attr_many(new_format(i), my_fcpl, my_fapl, ret_total_error)
CALL write_test_status(ret_total_error, &
@@ -153,10 +152,6 @@ SUBROUTINE attribute_test_1_8(cleanup, total_error)
CALL write_test_status(ret_total_error, &
' - Testing compact storage on objects with attribute creation order', &
total_error)
-!!$ CALL test_attr_corder_create_dense(my_fcpl, my_fapl)
-!!$ CALL test_attr_corder_create_reopen(my_fcpl, my_fapl)
-!!$ CALL test_attr_corder_transition(my_fcpl, my_fapl)
-!!$ CALL test_attr_corder_delete(my_fcpl, my_fapl)
ret_total_error = 0
CALL test_attr_info_by_idx(new_format(i), my_fcpl, my_fapl, ret_total_error)
CALL write_test_status(ret_total_error, &
@@ -169,9 +164,6 @@ SUBROUTINE attribute_test_1_8(cleanup, total_error)
' - Testing deleting attribute by index', &
total_error)
-!!$ CALL test_attr_iterate2(new_format, my_fcpl, my_fapl)
-!!$ CALL test_attr_open_by_idx(new_format, my_fcpl, my_fapl)
-!!$ CALL test_attr_open_by_name(new_format, my_fcpl, my_fapl)
ret_total_error = 0
CALL test_attr_create_by_name(new_format(i), my_fcpl, my_fapl, ret_total_error)
CALL write_test_status(ret_total_error, &
@@ -180,7 +172,6 @@ SUBROUTINE attribute_test_1_8(cleanup, total_error)
! /* More complex tests with both "new format" and "shared" attributes */
IF( use_shared(j) ) THEN
-!!$ CALL test_attr_shared_write(my_fcpl, my_fapl)
ret_total_error = 0
CALL test_attr_shared_rename(my_fcpl, my_fapl, ret_total_error)
CALL write_test_status(ret_total_error,&
@@ -193,24 +184,8 @@ SUBROUTINE attribute_test_1_8(cleanup, total_error)
' - Testing deleting shared attributes in "compact" & "dense" storage', &
total_error)
-
-!!$ CALL test_attr_shared_unlink(my_fcpl, my_fapl)
END IF
-!!$ CALL test_attr_bug1(my_fcpl, my_fapl)
END DO
-!!$ ELSE
-!!$ CALL test_attr_big(fcpl, my_fapl)
-!!$ CALL test_attr_null_space(fcpl, my_fapl)
-!!$ CALL test_attr_deprec(fcpl, my_fapl)
-!!$ CALL test_attr_many(new_format, fcpl, my_fapl)
-!!$ CALL test_attr_info_by_idx(new_format, fcpl, my_fapl)
-!!$ CALL test_attr_delete_by_idx(new_format, fcpl, my_fapl)
-!!$ CALL test_attr_iterate2(new_format, fcpl, my_fapl)
-!!$ CALL test_attr_open_by_idx(new_format, fcpl, my_fapl)
-!!$ CALL test_attr_open_by_name(new_format, fcpl, my_fapl)
-!!$ CALL test_attr_create_by_name(new_format, fcpl, my_fapl)
-!!$ CALL test_attr_bug1(fcpl, my_fapl)
-
END IF
ENDDO
@@ -315,13 +290,7 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error)
my_dataset = dset2
CASE (2)
my_dataset = dset3
-! CASE DEFAULT
-! CALL HDassert(0.AND."Toomanydatasets!")
END SELECT
-!!$ is_empty = H5O_is_attr_empty_test(my_dataset)
-!!$ CALL VERIFY(is_empty, TRUE, "H5O_is_attr_empty_test")
-!!$ is_dense = H5O_is_attr_dense_test(my_dataset)
-!!$ CALL VERIFY(is_dense, FALSE, "H5O_is_attr_dense_test")
DO u = 0, max_compact - 1
! /* Create attribute */
WRITE(chr2,'(I2.2)') u
@@ -337,13 +306,6 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error)
CALL h5aclose_f(attr, error)
CALL check("h5aclose_f",error,total_error)
-!!$ ret = H5O_num_attrs_test(my_dataset, nattrs)
-!!$ CALL CHECK(ret, FAIL, "H5O_num_attrs_test")
-!!$ CALL VERIFY(nattrs, (u + 1))
-!!$ is_empty = H5O_is_attr_empty_test(my_dataset)
-!!$ CALL VERIFY(is_empty, FALSE, "H5O_is_attr_empty_test")
-!!$ is_dense = H5O_is_attr_dense_test(my_dataset)
-!!$ CALL VERIFY(is_dense, FALSE, "H5O_is_attr_dense_test")
END DO
END DO
@@ -387,14 +349,6 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error)
CASE DEFAULT
WRITE(*,*) " WARNING: To many data sets! "
END SELECT
-!!$ ret = H5O_num_attrs_test(my_dataset, nattrs)
-!!$ CALL CHECK(ret, FAIL, "H5O_num_attrs_test")
-!!$ CALL VERIFY(nattrs, max_compact, "H5O_num_attrs_test")
-!!$ is_empty = H5O_is_attr_empty_test(my_dataset)
-!!$ CALL VERIFY(is_empty, FALSE, "H5O_is_attr_empty_test")
-!!$ is_dense = H5O_is_attr_dense_test(my_dataset)
-!!$ CALL VERIFY(is_dense, FALSE, "H5O_is_attr_dense_test")
-
DO u = 0,max_compact-1
WRITE(chr2,'(I2.2)') u
attrname = 'attr '//chr2
@@ -483,8 +437,6 @@ SUBROUTINE test_attr_null_space(fcpl, fapl, total_error)
data_dims = 0
- ! /* Output message about test being performed */
-! WRITE(*,*) " - Testing Storing Attributes with 'null' dataspace"
! /* Create file */
CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl)
CALL check("h5fcreate_f",error,total_error)
@@ -533,9 +485,6 @@ SUBROUTINE test_attr_null_space(fcpl, fapl, total_error)
CALL check("H5Sextent_equal_f",error,total_error)
CALL Verifylogical("H5Sextent_equal_f",equal,.TRUE.,total_error)
-!!$ ret = H5Sclose(attr_sid)
-!!$ CALL CHECK(ret, FAIL, "H5Sclose")
-
CALL h5aget_storage_size_f(attr, storage_size, error)
CALL check("h5aget_storage_size_f",error,total_error)
CALL VERIFY("h5aget_storage_size_f",INT(storage_size),0,total_error)
@@ -639,11 +588,11 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error)
! /* Loop over using index for creation order value */
DO i = 1, 2
! /* Print appropriate test message */
-!!$ IF(use_index(i))THEN
-!!$ WRITE(*,*) " - Testing Creating Attributes By Name w/Creation Order Index"
-!!$ ELSE
-!!$ WRITE(*,*) " - Testing Creating Attributes By Name w/o Creation Order Index"
-!!$ ENDIF
+ IF(use_index(i))THEN
+ WRITE(*,*) " - Testing Creating Attributes By Name w/Creation Order Index"
+ ELSE
+ WRITE(*,*) " - Testing Creating Attributes By Name w/o Creation Order Index"
+ ENDIF
! /* Create file */
CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl)
CALL check("h5fcreate_f",error,total_error)
@@ -691,11 +640,6 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error)
! CALL HDassert(0.AND."Toomanydatasets!")
END SELECT
- ! /* Check on dataset's attribute storage status */
-!!$ is_empty = H5O_is_attr_empty_test(my_dataset);
-!!$ VERIFY(is_empty, TRUE, "H5O_is_attr_empty_test");
-!!$ is_dense = H5O_is_attr_dense_test(my_dataset);
-!!$ VERIFY(is_dense, FALSE, "H5O_is_attr_dense_test");
!/* Create attributes, up to limit of compact form */
@@ -722,15 +666,6 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error)
! CALL check("FAILED IN attr_info_by_idx_check",total_error)
ENDDO
- ! /* Verify state of object */
-!!$ ret = H5O_num_attrs_test(my_dataset, &nattrs);
-!!$ CHECK(ret, FAIL, "H5O_num_attrs_test");
-!!$ VERIFY(nattrs, max_compact, "H5O_num_attrs_test");
-!!$ is_empty = H5O_is_attr_empty_test(my_dataset);
-!!$ VERIFY(is_empty, FALSE, "H5O_is_attr_empty_test");
-!!$ is_dense = H5O_is_attr_dense_test(my_dataset);
-!!$ VERIFY(is_dense, FALSE, "H5O_is_attr_dense_test");
-
! /* Test opening attributes stored compactly */
CALL attr_open_check(fid, dsetname, my_dataset, u, total_error)
@@ -771,39 +706,8 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error)
CALL h5aclose_f(attr, error)
CALL check("h5aclose_f",error,total_error)
- ! /* Verify state of object */
-!!$ if(u >= max_compact) {
-!!$ is_dense = H5O_is_attr_dense_test(my_dataset);
-!!$ VERIFY(is_dense, (new_format ? TRUE : FALSE), "H5O_is_attr_dense_test");
-!!$ } /* end if */
-!!$
-!!$ /* Verify information for new attribute */
-!!$ ret = attr_info_by_idx_check(my_dataset, attrname, (hsize_t)u, use_index);
-!!$ CHECK(ret, FAIL, "attr_info_by_idx_check");
ENDDO
- ! /* Verify state of object */
-!!$ ret = H5O_num_attrs_test(my_dataset, &nattrs);
-!!$ CHECK(ret, FAIL, "H5O_num_attrs_test");
-!!$ VERIFY(nattrs, (max_compact * 2), "H5O_num_attrs_test");
-!!$ is_empty = H5O_is_attr_empty_test(my_dataset);
-!!$ VERIFY(is_empty, FALSE, "H5O_is_attr_empty_test");
-!!$ is_dense = H5O_is_attr_dense_test(my_dataset);
-!!$ VERIFY(is_dense, (new_format ? TRUE : FALSE), "H5O_is_attr_dense_test");
-
-!!$ if(new_format) {
-!!$ /* Retrieve & verify # of records in the name & creation order indices */
-!!$ ret = H5O_attr_dense_info_test(my_dataset, &name_count, &corder_count);
-!!$ CHECK(ret, FAIL, "H5O_attr_dense_info_test");
-!!$ if(use_index)
-!!$ VERIFY(name_count, corder_count, "H5O_attr_dense_info_test");
-!!$ VERIFY(name_count, (max_compact * 2), "H5O_attr_dense_info_test");
-!!$ } /* end if */
-
-!!$ /* Test opening attributes stored compactly */
-!!$ ret = attr_open_check(fid, dsetname, my_dataset, u);
-!!$ CHECK(ret, FAIL, "attr_open_check");
-
ENDDO
! /* Close Datasets */
@@ -914,13 +818,6 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error)
DO i = 1, 2
- ! /* Output message about test being performed */
-!!$ IF(use_index(i))THEN
-!!$ WRITE(*,'(A72)') " - Testing Querying Attribute Info By Index w/Creation Order Index"
-!!$ ELSE
-!!$ WRITE(*,'(A74)') " - Testing Querying Attribute Info By Index w/o Creation Order Index"
-!!$ ENDIF
-
! /* Create file */
CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl)
CALL check("h5fcreate_f",error,total_error)
@@ -958,16 +855,8 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error)
my_dataset = dset2
CASE (2)
my_dataset = dset3
- ! CASE DEFAULT
- ! CALL HDassert(0.AND."Toomanydatasets!")
END SELECT
- !/* Check on dataset's attribute storage status */
-!!$ is_empty = H5O_is_attr_empty_test(my_dataset);
-!!$ VERIFY(is_empty, TRUE, "H5O_is_attr_empty_test");
-!!$ is_dense = H5O_is_attr_dense_test(my_dataset);
-!!$ VERIFY(is_dense, FALSE, "H5O_is_attr_dense_test");
-
! /* Check for query on non-existant attribute */
n = 0
@@ -1005,7 +894,6 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error)
WRITE(chr2,'(I2.2)') j
attrname = 'attr '//chr2
- ! attr = H5Acreate2(my_dataset, attrname, H5T_NATIVE_UINT, sid, H5P_DEFAULT, H5P_DEFAULT);
! check with the optional information create2 specs.
CALL h5acreate_f(my_dataset, attrname, H5T_NATIVE_INTEGER, sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F)
CALL check("h5acreate_f",error,total_error)
@@ -1138,7 +1026,6 @@ SUBROUTINE attr_info_by_idx_check(obj_id, attrname, n, use_index, total_error )
END IF
- ! CALL HDmemset(ainfo, 0, SIZEOF(ainfo)
CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_DEC_F, n, &
f_corder_valid, corder, cset, data_size, error)
CALL check("h5aget_info_by_idx_f",error,total_error)
@@ -1178,9 +1065,7 @@ SUBROUTINE attr_info_by_idx_check(obj_id, attrname, n, use_index, total_error )
f_corder_valid, corder, cset, data_size, error)
CALL check("h5aget_info_by_idx_f",error,total_error)
CALL VERIFY("h5aget_info_by_idx_f",corder,INT(n),total_error)
-!!$ ret = H5Aget_name_by_idx(obj_id, ".", H5_INDEX_NAME, H5_ITER_INC, n, tmpname, (size_t)NAME_BUF_SIZE, H5P_DEFAULT)
-!!$ CALL CHECK(ret, FAIL, "H5Aget_name_by_idx")
-!!$ IF (HDstrcmp(attrname, tmpname)) CALL TestErrPrintf("Line %d: attribute name size wrong!\n"C, __LINE__)
+
CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_NAME_F, H5_ITER_DEC_F, n, &
f_corder_valid, corder, cset, data_size, error)
CALL check("h5aget_info_by_idx_f",error,total_error)
@@ -1190,9 +1075,7 @@ SUBROUTINE attr_info_by_idx_check(obj_id, attrname, n, use_index, total_error )
f_corder_valid, corder, cset, data_size, error)
CALL check("h5aget_info_by_idx_f",error,total_error)
CALL VERIFY("h5aget_info_by_idx_f",corder,INT(n),total_error)
-!!$ ret = H5Aget_name_by_idx(obj_id, ".", H5_INDEX_NAME, H5_ITER_DEC, (hsize_t)0, tmpname, (size_t)NAME_BUF_SIZE, H5P_DEFAULT)
-!!$ CALL CHECK(ret, FAIL, "H5Aget_name_by_idx")
-!!$ IF (HDstrcmp(attrname, tmpname)) CALL TestErrPrintf("Line %d: attribute name size wrong!\n"C, __LINE__)
+
END SUBROUTINE attr_info_by_idx_check
@@ -1263,9 +1146,7 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error)
INTEGER(HSIZE_T), DIMENSION(1) :: adims2 = (/1/) ! Attribute dimension
INTEGER :: arank = 1 ! Attribure rank
- ! /* Output message about test being performed */
-! WRITE(*,*) " - Testing Renaming Shared & Unshared Attributes in Compact & Dense Storage"
-!!$ /* Initialize "big" attribute data */
+ ! /* Initialize "big" attribute data */
! /* Create dataspace for dataset */
CALL h5screate_f(H5S_SCALAR_F, sid, error)
@@ -1338,19 +1219,6 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error)
CALL h5dcreate_f(fid, DSET2_NAME, H5T_NATIVE_CHARACTER, sid, dataset2, error, dcpl_id=dcpl )
CALL check("h5dcreate_f",error,total_error)
- ! /* Check on dataset's message storage status */
-!!$ if(test_shared != 0) {
-!!$ /* Datasets' datatypes can be shared */
-!!$ ret = H5F_get_sohm_mesg_count_test(fid, H5O_DTYPE_ID, &mesg_count);
-!!$ CHECK(ret, FAIL, "H5F_get_sohm_mesg_count_test");
-!!$ VERIFY(mesg_count, 1, "H5F_get_sohm_mesg_count_test");
-!!$
-!!$ /* Datasets' dataspace can be shared */
-!!$ ret = H5F_get_sohm_mesg_count_test(fid, H5O_SDSPACE_ID, &mesg_count);
-!!$ CHECK(ret, FAIL, "H5F_get_sohm_mesg_count_test");
-!!$ VERIFY(mesg_count, 1, "H5F_get_sohm_mesg_count_test");
-!!$ } /* end if */
-
! /* Retrieve limits for compact/dense attribute storage */
CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error)
CALL check("H5Pget_attr_phase_change_f",error,total_error)
@@ -1358,16 +1226,8 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error)
! /* Close property list */
CALL h5pclose_f(dcpl,error)
CALL check("h5pclose_f", error, total_error)
-!!$
-!!$
-!!$ /* Check on datasets' attribute storage status */
-!!$ is_dense = H5O_is_attr_dense_test(dataset);
-!!$ VERIFY(is_dense, FALSE, "H5O_is_attr_dense_test");
-!!$ is_dense = H5O_is_attr_dense_test(dataset2);
-!!$ VERIFY(is_dense, FALSE, "H5O_is_attr_dense_test");
- ! /* Add attributes to each dataset, until after converting to dense storage */
-
+ ! /* Add attributes to each dataset, until after converting to dense storage */
DO u = 0, (max_compact * 2) - 1
! /* Create attribute name */
@@ -1382,10 +1242,6 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error)
CALL h5acreate_f(dataset, attrname, attr_tid, sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F)
CALL check("h5acreate_f",error,total_error)
-!!$ /* Check that attribute is not shared */
-!!$ is_shared = H5A_is_shared_test(attr);
-!!$ VERIFY(is_shared, FALSE, "H5A_is_shared_test");
-
! /* Write data into the attribute */
attr_integer_data(1) = u + 1
data_dims(1) = 1
@@ -1397,15 +1253,6 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error)
CALL h5acreate_f(dataset, attrname, attr_tid, big_sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F)
CALL check("h5acreate_f",error,total_error)
- ! Check that attribute is shared */
-!!$ is_shared = H5A_is_shared_test(attr);
-!!$ VERIFY(is_shared, TRUE, "H5A_is_shared_test");
-
- ! Check refcount for attribute */
-!!$ ret = H5A_get_shared_rc_test(attr, &shared_refcount);
-!!$ CHECK(ret, FAIL, "H5A_get_shared_rc_test");
-!!$ VERIFY(shared_refcount, 1, "H5A_get_shared_rc_test");
-!!$
! Write data into the attribute */
data_dims(1) = 1
@@ -1413,24 +1260,12 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error)
CALL h5awrite_f(attr, attr_tid, attr_integer_data, data_dims, error)
CALL check("h5awrite_f",error,total_error)
- ! Check refcount for attribute */
-!!$ ret = H5A_get_shared_rc_test(attr, &shared_refcount);
-!!$ CHECK(ret, FAIL, "H5A_get_shared_rc_test");
-!!$ VERIFY(shared_refcount, 1, "H5A_get_shared_rc_test");
ENDIF
! /* Close attribute */
CALL h5aclose_f(attr, error)
CALL check("h5aclose_f",error,total_error)
- ! /* Check on dataset's attribute storage status */
-!!$ is_dense = H5O_is_attr_dense_test(dataset);
-!!$ if(u < max_compact)
-!!$ VERIFY(is_dense, FALSE, "H5O_is_attr_dense_test");
-!!$ else
-!!$ VERIFY(is_dense, TRUE, "H5O_is_attr_dense_test");
-!!$
-!!$
! /* Alternate between creating "small" & "big" attributes */
IF(MOD(u+1,2).EQ.0)THEN
@@ -1439,10 +1274,6 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error)
CALL h5acreate_f(dataset2, attrname, attr_tid, sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F)
CALL check("h5acreate_f",error,total_error)
- ! /* Check that attribute is not shared */
-!!$ is_shared = H5A_is_shared_test(attr);
-!!$ VERIFY(is_shared, FALSE, "H5A_is_shared_test");
-!!$
! /* Write data into the attribute */
attr_integer_data(1) = u + 1
@@ -1456,15 +1287,6 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error)
CALL h5acreate_f(dataset2, attrname, attr_tid, big_sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F)
CALL check("h5acreate_f",error,total_error)
-! /* Check that attribute is shared */
-!!$ is_shared = H5A_is_shared_test(attr);
-!!$ VERIFY(is_shared, TRUE, "H5A_is_shared_test");
-!!$
-! /* Check refcount for attribute */
-!!$ ret = H5A_get_shared_rc_test(attr, &shared_refcount);
-!!$ CHECK(ret, FAIL, "H5A_get_shared_rc_test");
-!!$ VERIFY(shared_refcount, 1, "H5A_get_shared_rc_test");
-!!$
! /* Write data into the attribute */
@@ -1475,23 +1297,11 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error)
! /* Check refcount for attribute */
-!!$ ret = H5A_get_shared_rc_test(attr, &shared_refcount);
-!!$ CHECK(ret, FAIL, "H5A_get_shared_rc_test");
-!!$ VERIFY(shared_refcount, 2, "H5A_get_shared_rc_test");
-
ENDIF
! /* Close attribute */
CALL h5aclose_f(attr, error)
CALL check("h5aclose_f",error,total_error)
- ! /* Check on dataset's attribute storage status */
-!!$ is_dense = H5O_is_attr_dense_test(dataset2);
-!!$ if(u < max_compact)
-!!$ VERIFY(is_dense, FALSE, "H5O_is_attr_dense_test");
-!!$ else
-!!$ VERIFY(is_dense, TRUE, "H5O_is_attr_dense_test");
-
-
! /* Create new attribute name */
WRITE(chr2,'(I2.2)') u
@@ -1510,22 +1320,6 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error)
CALL H5Aopen_f(dataset2, attrname2, attr, error, aapl_id=H5P_DEFAULT_F)
CALL check("H5Aopen_f",error,total_error)
-!!$
-!!$ IF(MOD(u+1,2).EQ.0)THEN
-!!$ ! /* Check that attribute is not shared */
-!!$ is_shared = H5A_is_shared_test(attr);
-!!$ CALL VERIFY("H5A_is_shared_test", error, minusone)
-!!$ ELSE
-!!$ ! /* Check that attribute is shared */
-!!$ is_shared = H5A_is_shared_test(attr);
-!!$ VERIFY(is_shared, TRUE, "H5A_is_shared_test");
-!!$
-!!$ /* Check refcount for attribute */
-!!$ ret = H5A_get_shared_rc_test(attr, &shared_refcount);
-!!$ CHECK(ret, FAIL, "H5A_get_shared_rc_test");
-!!$ VERIFY(shared_refcount, 1, "H5A_get_shared_rc_test")
-!!$ ENDIF
-
! /* Close attribute */
CALL h5aclose_f(attr, error)
CALL check("h5aclose_f",error,total_error)
@@ -1534,22 +1328,6 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error)
CALL H5Aopen_f(dataset, attrname, attr, error)
CALL check("H5Aopen",error,total_error)
-!!$ if(u % 2) {
-!!$ /* Check that attribute is not shared */
-!!$ is_shared = H5A_is_shared_test(attr);
-!!$ VERIFY(is_shared, FALSE, "H5A_is_shared_test");
-!!$ } /* end if */
-!!$ else {
-!!$ /* Check that attribute is shared */
-!!$ is_shared = H5A_is_shared_test(attr);
-!!$ VERIFY(is_shared, TRUE, "H5A_is_shared_test");
-!!$
-!!$ /* Check refcount for attribute */
-!!$ ret = H5A_get_shared_rc_test(attr, &shared_refcount);
-!!$ CHECK(ret, FAIL, "H5A_get_shared_rc_test");
-!!$ VERIFY(shared_refcount, 1, "H5A_get_shared_rc_test");
-!!$ } /* end else */
-
! /* Close attribute */
CALL h5aclose_f(attr, error)
CALL check("h5aclose_f",error,total_error)
@@ -1565,22 +1343,6 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error)
! /* Check refcount on renamed attribute */
CALL H5Aopen_f(dataset2, attrname, attr, error)
CALL check("H5Aopen",error,total_error)
-!!$
-!!$ if(u % 2) {
-!!$ /* Check that attribute is not shared */
-!!$ is_shared = H5A_is_shared_test(attr);
-!!$ VERIFY(is_shared, FALSE, "H5A_is_shared_test");
-!!$ } /* end if */
-!!$ else {
-!!$ /* Check that attribute is shared */
-!!$ is_shared = H5A_is_shared_test(attr);
-!!$ VERIFY(is_shared, TRUE, "H5A_is_shared_test");
-!!$
-!!$ /* Check refcount for attribute */
-!!$ ret = H5A_get_shared_rc_test(attr, &shared_refcount);
-!!$ CHECK(ret, FAIL, "H5A_get_shared_rc_test");
-!!$ VERIFY(shared_refcount, 2, "H5A_get_shared_rc_test");
-!!$ } /* end else */
! /* Close attribute */
CALL h5aclose_f(attr, error)
@@ -1592,22 +1354,6 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error)
CALL H5Aopen_f(dataset, attrname, attr, error)
CALL check("H5Aopen",error,total_error)
-!!$ if(u % 2) {
-!!$ /* Check that attribute is not shared */
-!!$ is_shared = H5A_is_shared_test(attr);
-!!$ VERIFY(is_shared, FALSE, "H5A_is_shared_test");
-!!$ } /* end if */
-!!$ else {
-!!$ /* Check that attribute is shared */
-!!$ is_shared = H5A_is_shared_test(attr);
-!!$ VERIFY(is_shared, TRUE, "H5A_is_shared_test");
-!!$
-!!$ /* Check refcount for attribute */
-!!$ ret = H5A_get_shared_rc_test(attr, &shared_refcount);
-!!$ CHECK(ret, FAIL, "H5A_get_shared_rc_test");
-!!$ VERIFY(shared_refcount, 2, "H5A_get_shared_rc_test");
-!!$ } /* end else */
-
! /* Close attribute */
CALL h5aclose_f(attr, error)
CALL check("h5aclose_f",error,total_error)
@@ -1624,20 +1370,6 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error)
CALL h5dclose_f(dataset2, error)
CALL check("h5dclose_f",error,total_error)
-!!$ /* Check on shared message status now */
-!!$ if(test_shared != 0) {
-!!$ if(test_shared == 1) {
-!!$ /* Check on datatype storage status */
-!!$ ret = H5F_get_sohm_mesg_count_test(fid, H5O_DTYPE_ID, &mesg_count);
-!!$ CHECK(ret, FAIL, "H5F_get_sohm_mesg_count_test");
-!!$ VERIFY(mesg_count, 2, "H5F_get_sohm_mesg_count_test");
-!!$ } /* end if */
-!!$
-!!$ /* Check on dataspace storage status */
-!!$ ret = H5F_get_sohm_mesg_count_test(fid, H5O_SDSPACE_ID, &mesg_count);
-!!$ CHECK(ret, FAIL, "H5F_get_sohm_mesg_count_test");
-!!$ VERIFY(mesg_count, 2, "H5F_get_sohm_mesg_count_test");
-!!$ } /* end if */
! /* Unlink datasets with attributes */
CALL H5Ldelete_f(fid, DSET1_NAME, error, H5P_DEFAULT_F)
@@ -1651,23 +1383,6 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error)
CALL check("HLdelete_f",error,total_error)
ENDIF
- ! /* Check on attribute storage status */
-!!$ ret = H5F_get_sohm_mesg_count_test(fid, H5O_ATTR_ID, &mesg_count);
-!!$ CHECK(ret, FAIL, "H5F_get_sohm_mesg_count_test");
-!!$ VERIFY(mesg_count, 0, "H5F_get_sohm_mesg_count_test");
-!!$
-!!$ if(test_shared != 0) {
-!!$ /* Check on datatype storage status */
-!!$ ret = H5F_get_sohm_mesg_count_test(fid, H5O_DTYPE_ID, &mesg_count);
-!!$ CHECK(ret, FAIL, "H5F_get_sohm_mesg_count_test");
-!!$ VERIFY(mesg_count, 0, "H5F_get_sohm_mesg_count_test");
-!!$
-!!$ /* Check on dataspace storage status */
-!!$ ret = H5F_get_sohm_mesg_count_test(fid, H5O_SDSPACE_ID, &mesg_count);
-!!$ CHECK(ret, FAIL, "H5F_get_sohm_mesg_count_test");
-!!$ VERIFY(mesg_count, 0, "H5F_get_sohm_mesg_count_test");
-!!$ } /* end if */
-
! /* Close file */
CALL h5fclose_f(fid, error)
CALL check("h5fclose_f",error,total_error)
@@ -1774,41 +1489,6 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
! /* Loop over using index for creation order value */
DO i = 1, 2
- ! /* Print appropriate test message */
-!!$ IF(idx_type .EQ. H5_INDEX_CRT_ORDER_F)THEN
-!!$ IF(order .EQ. H5_ITER_INC_F) THEN
-!!$ IF(use_index(i))THEN
-!!$ WRITE(*,'(A102)') &
-!!$ " - Testing Deleting Attribute By Creation Order Index in Increasing Order w/Creation Order Index"
-!!$ ELSE
-!!$ WRITE(*,'(A104)') &
-!!$ " - Testing Deleting Attribute By Creation Order Index in Increasing Order w/o Creation Order Index"
-!!$ ENDIF
-!!$ ELSE
-!!$ IF(use_index(i))THEN
-!!$ WRITE(*,'(A102)') &
-!!$ " - Testing Deleting Attribute By Creation Order Index in Decreasing Order w/Creation Order Index"
-!!$ ELSE
-!!$ WRITE(*,'(A104)') &
-!!$ " - Testing Deleting Attribute By Creation Order Index in Decreasing Order w/o Creation Order Index"
-!!$ ENDIF
-!!$ ENDIF
-!!$ ELSE
-!!$ IF(order .EQ. H5_ITER_INC_F)THEN
-!!$ IF(use_index(i))THEN
-!!$ WRITE(*,'(7X,A86)')"- Testing Deleting Attribute By Name Index in Increasing Order w/Creation Order Index"
-!!$ ELSE
-!!$ WRITE(*,'(7X,A88)')"- Testing Deleting Attribute By Name Index in Increasing Order w/o Creation Order Index"
-!!$ ENDIF
-!!$ ELSE
-!!$ IF(use_index(i))THEN
-!!$ WRITE(*,'(7X,A86)') "- Testing Deleting Attribute By Name Index in Decreasing Order w/Creation Order Index"
-!!$ ELSE
-!!$ WRITE(*,'(7X,A88)') "- Testing Deleting Attribute By Name Index in Decreasing Order w/o Creation Order Index"
-!!$ ENDIF
-!!$ ENDIF
-!!$ ENDIF
-
! /* Create file */
CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl)
CALL check("h5fcreate_f",error,total_error)
@@ -1852,11 +1532,6 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
! CALL HDassert(0.AND."Toomanydatasets!")
END SELECT
- ! /* Check on dataset's attribute storage status */
-!!$ is_empty = H5O_is_attr_empty_test(my_dataset);
-!!$ VERIFY(is_empty, TRUE, "H5O_is_attr_empty_test");
-!!$ is_dense = H5O_is_attr_dense_test(my_dataset);
-!!$ VERIFY(is_dense, FALSE, "H5O_is_attr_dense_test");
! /* Check for deleting non-existant attribute */
!EP CALL H5Adelete_by_idx_f(my_dataset, '.', idx_type, order, 0_HSIZE_T,error, lapl_id=H5P_DEFAULT_F)
@@ -1887,18 +1562,6 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
ENDDO
-
-
- ! /* Verify state of object */
-
-!!$ ret = H5O_num_attrs_test(my_dataset, &nattrs);
-!!$ CHECK(ret, FAIL, "H5O_num_attrs_test");
-!!$ VERIFY(nattrs, max_compact, "H5O_num_attrs_test");
-!!$ is_empty = H5O_is_attr_empty_test(my_dataset);
-!!$ VERIFY(is_empty, FALSE, "H5O_is_attr_empty_test");
-!!$ is_dense = H5O_is_attr_dense_test(my_dataset);
-!!$ VERIFY(is_dense, FALSE, "H5O_is_attr_dense_test");
-
!/* Check for out of bound deletions */
CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, INT(u,HSIZE_T), error, lapl_id=H5P_DEFAULT_F)
CALL VERIFY("H5Adelete_by_idx_f",error,minusone,total_error)
@@ -1946,7 +1609,6 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
ENDIF
! /* Verify the name for first attribute in appropriate order */
- ! HDmemset(tmpname, 0, (size_t)NAME_BUF_SIZE);
size = 7 ! *CHECK* IF NOT THE SAME SIZE
CALL h5aget_name_by_idx_f(my_dataset, ".", idx_type, order,INT(0,hsize_t), &
@@ -1969,10 +1631,6 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, hzero, error)
CALL check("H5Adelete_by_idx_f",error,total_error)
-
- ! /* Verify state of attribute storage (empty) */
-!!$ is_empty = H5O_is_attr_empty_test(my_dataset);
-!!$ VERIFY(is_empty, TRUE, "H5O_is_attr_empty_test");
ENDDO
! /* Work on all the datasets */
@@ -2011,34 +1669,8 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
CALL h5aclose_f(attr, error)
CALL check("h5aclose_f",error,total_error)
- ! /* Verify state of object */
- IF(u .GE. max_compact)THEN
-!!$ is_dense = H5O_is_attr_dense_test(my_dataset);
-!!$ VERIFY(is_dense, (new_format ? TRUE : FALSE), "H5O_is_attr_dense_test");
- ENDIF
- ! /* Verify information for new attribute */
-!!$ CALL check("attr_info_by_idx_check",error,total_error)
ENDDO
-
- ! /* Verify state of object */
-!!$ ret = H5O_num_attrs_test(my_dataset, &nattrs);
-!!$ CHECK(ret, FAIL, "H5O_num_attrs_test");
-!!$ VERIFY(nattrs, (max_compact * 2), "H5O_num_attrs_test");
-!!$ is_empty = H5O_is_attr_empty_test(my_dataset);
-!!$ VERIFY(is_empty, FALSE, "H5O_is_attr_empty_test");
-!!$ is_dense = H5O_is_attr_dense_test(my_dataset);
-!!$ VERIFY(is_dense, (new_format ? TRUE : FALSE), "H5O_is_attr_dense_test");
-!!$
- IF(new_format)THEN
-!!$ ! /* Retrieve & verify # of records in the name & creation order indices */
-!!$ ret = H5O_attr_dense_info_test(my_dataset, &name_count, &corder_count);
-!!$ CHECK(ret, FAIL, "H5O_attr_dense_info_test");
-!!$ IF(use_index)
-!!$ VERIFY(name_count, corder_count, "H5O_attr_dense_info_test");
-!!$ VERIFY(name_count, (max_compact * 2), "H5O_attr_dense_info_test");
- ENDIF
-
! /* Check for out of bound deletion */
CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, INT(u,HSIZE_T), error)
CALL VERIFY("H5Adelete_by_idx_f",error,minusone,total_error)
@@ -2054,8 +1686,6 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
my_dataset = dset2
CASE (2)
my_dataset = dset3
- ! CASE DEFAULT
- ! CALL HDassert(0.AND."Toomanydatasets!")
END SELECT
! /* Delete attributes from dense storage */
@@ -2101,9 +1731,6 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, INT(0,HSIZE_T), error, lapl_id=H5P_DEFAULT_F)
CALL check("H5Adelete_by_idx_f",error,total_error)
- ! /* Verify state of attribute storage (empty) */
-!!$ is_empty = H5O_is_attr_empty_test(my_dataset);
-!!$ VERIFY(is_empty, TRUE, "H5O_is_attr_empty_test");
!/* Check for deletion on empty attribute storage again */
CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, INT(0,HSIZE_T), error)
@@ -2194,7 +1821,6 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error)
INTEGER :: arank = 1 ! Attribure rank
! /* Output message about test being performed */
-! WRITE(*,*) " - Testing Deleting Shared & Unshared Attributes in Compact & Dense Storage"
! /* Initialize "big" attribute DATA */
! /* Create dataspace for dataset */
@@ -2225,11 +1851,9 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error)
! /* Make attributes > 500 bytes shared */
CALL H5Pset_shared_mesg_nindexes_f(my_fcpl,1,error)
CALL check("H5Pset_shared_mesg_nindexes_f",error, total_error)
-!!$ CHECK_I(ret, "H5Pset_shared_mesg_nindexes");
CALL H5Pset_shared_mesg_index_f(my_fcpl, 0, H5O_SHMESG_ATTR_FLAG_F, 500,error)
CALL check(" H5Pset_shared_mesg_index_f",error, total_error)
-!!$ CHECK_I(ret, "H5Pset_shared_mesg_index");
ELSE
! /* Set up copy of file creation property list */
CALL H5Pset_shared_mesg_nindexes_f(my_fcpl,3,error)
@@ -2238,7 +1862,6 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error)
! /* Make datatypes & dataspaces > 1 byte shared (i.e. all of them :-) */
CALL H5Pset_shared_mesg_index_f(my_fcpl, 1, H5O_SHMESG_DTYPE_FLAG_F, 1,error)
CALL H5Pset_shared_mesg_index_f(my_fcpl, 2, H5O_SHMESG_SDSPACE_FLAG_F, 1,error)
-!!$ CHECK_I(ret, "H5Pset_shared_mesg_index");
ENDIF
! /* Create file */
@@ -2275,19 +1898,6 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error)
CALL h5dcreate_f(fid, DSET2_NAME, H5T_NATIVE_CHARACTER, sid, dataset2, error, dcpl_id=dcpl )
CALL check("h5dcreate_f",error,total_error)
- ! /* Check on dataset's message storage status */
-!!$ if(test_shared != 0) {
-!!$ /* Datasets' datatypes can be shared */
-!!$ ret = H5F_get_sohm_mesg_count_test(fid, H5O_DTYPE_ID, &mesg_count);
-!!$ CHECK(ret, FAIL, "H5F_get_sohm_mesg_count_test");
-!!$ VERIFY(mesg_count, 1, "H5F_get_sohm_mesg_count_test");
-!!$
-!!$ /* Datasets' dataspace can be shared */
-!!$ ret = H5F_get_sohm_mesg_count_test(fid, H5O_SDSPACE_ID, &mesg_count);
-!!$ CHECK(ret, FAIL, "H5F_get_sohm_mesg_count_test");
-!!$ VERIFY(mesg_count, 1, "H5F_get_sohm_mesg_count_test");
-!!$ } /* end if */
-!!$
! /* Retrieve limits for compact/dense attribute storage */
CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error)
CALL check("H5Pget_attr_phase_change_f",error,total_error)
@@ -2295,13 +1905,7 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error)
! /* Close property list */
CALL h5pclose_f(dcpl,error)
CALL check("h5pclose_f", error, total_error)
-!!$
-!!$ /* Check on datasets' attribute storage status */
-!!$ is_dense = H5O_is_attr_dense_test(dataset);
-!!$ VERIFY(is_dense, FALSE, "H5O_is_attr_dense_test");
-!!$ is_dense = H5O_is_attr_dense_test(dataset2);
-!!$ VERIFY(is_dense, FALSE, "H5O_is_attr_dense_test");
-!!$
+
! /* Add attributes to each dataset, until after converting to dense storage */
DO u = 0, (max_compact * 2) - 1
@@ -2318,10 +1922,6 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error)
CALL h5acreate_f(dataset, attrname, attr_tid, sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F)
CALL check("h5acreate_f",error,total_error)
-!!$ /* Check that attribute is not shared */
-!!$ is_shared = H5A_is_shared_test(attr);
-!!$ VERIFY(is_shared, FALSE, "H5A_is_shared_test");
-
! /* Write data into the attribute */
attr_integer_data(1) = u + 1
data_dims(1) = 1
@@ -2332,16 +1932,7 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error)
CALL h5acreate_f(dataset, attrname, attr_tid, big_sid, attr, error)
CALL check("h5acreate_f",error,total_error)
-!!$
- ! Check that attribute is shared */
-!!$ is_shared = H5A_is_shared_test(attr);
-!!$ VERIFY(is_shared, TRUE, "H5A_is_shared_test");
-
- ! Check refcount for attribute */
-!!$ ret = H5A_get_shared_rc_test(attr, &shared_refcount);
-!!$ CHECK(ret, FAIL, "H5A_get_shared_rc_test");
-!!$ VERIFY(shared_refcount, 1, "H5A_get_shared_rc_test");
-!!$
+
! Write data into the attribute */
attr_integer_data(1) = u + 1
@@ -2349,24 +1940,12 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error)
CALL h5awrite_f(attr, attr_tid, attr_integer_data, data_dims, error)
CALL check("h5awrite_f",error,total_error)
- ! Check refcount for attribute */
-!!$ ret = H5A_get_shared_rc_test(attr, &shared_refcount);
-!!$ CHECK(ret, FAIL, "H5A_get_shared_rc_test");
-!!$ VERIFY(shared_refcount, 1, "H5A_get_shared_rc_test");
ENDIF
! /* Close attribute */
CALL h5aclose_f(attr, error)
CALL check("h5aclose_f",error,total_error)
- ! /* Check on dataset's attribute storage status */
-!!$ is_dense = H5O_is_attr_dense_test(dataset);
-!!$ if(u < max_compact)
-!!$ VERIFY(is_dense, FALSE, "H5O_is_attr_dense_test");
-!!$ else
-!!$ VERIFY(is_dense, TRUE, "H5O_is_attr_dense_test");
-!!$
-!!$
! /* Alternate between creating "small" & "big" attributes */
IF(MOD(u+1,2).EQ.0)THEN
@@ -2375,10 +1954,6 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error)
CALL h5acreate_f(dataset2, attrname, attr_tid, sid, attr, error)
CALL check("h5acreate_f",error,total_error)
- ! /* Check that attribute is not shared */
-!!$ is_shared = H5A_is_shared_test(attr);
-!!$ VERIFY(is_shared, FALSE, "H5A_is_shared_test");
-!!$
! /* Write data into the attribute */
attr_integer_data(1) = u + 1
data_dims(1) = 1
@@ -2391,15 +1966,6 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error)
CALL h5acreate_f(dataset2, attrname, attr_tid, big_sid, attr, error, acpl_id=H5P_DEFAULT_F, aapl_id=H5P_DEFAULT_F)
CALL check("h5acreate_f",error,total_error)
-! /* Check that attribute is shared */
-!!$ is_shared = H5A_is_shared_test(attr);
-!!$ VERIFY(is_shared, TRUE, "H5A_is_shared_test");
-!!$
-! /* Check refcount for attribute */
-!!$ ret = H5A_get_shared_rc_test(attr, &shared_refcount);
-!!$ CHECK(ret, FAIL, "H5A_get_shared_rc_test");
-!!$ VERIFY(shared_refcount, 1, "H5A_get_shared_rc_test");
-!!$
! /* Write data into the attribute */
@@ -2408,23 +1974,11 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error)
CALL h5awrite_f(attr, attr_tid, attr_integer_data, data_dims, error)
CALL check("h5awrite_f",error,total_error)
-
-! /* Check refcount for attribute */
-!!$ ret = H5A_get_shared_rc_test(attr, &shared_refcount);
-!!$ CHECK(ret, FAIL, "H5A_get_shared_rc_test");
-!!$ VERIFY(shared_refcount, 2, "H5A_get_shared_rc_test");
-
ENDIF
! /* Close attribute */
CALL h5aclose_f(attr, error)
CALL check("h5aclose_f",error,total_error)
- ! /* Check on dataset's attribute storage status */
-!!$ is_dense = H5O_is_attr_dense_test(dataset2);
-!!$ if(u < max_compact)
-!!$ VERIFY(is_dense, FALSE, "H5O_is_attr_dense_test");
-!!$ else
-!!$ VERIFY(is_dense, TRUE, "H5O_is_attr_dense_test");
ENDDO
! /* Delete attributes from second dataset */
@@ -2439,29 +1993,9 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error)
CALL H5Adelete_by_name_f(fid, DSET2_NAME, attrname,error,lapl_id=H5P_DEFAULT_F)
CALL check("H5Adelete_by_name", error, total_error)
-!!$ /* Check refcount on attributes now */
-!!$
-!!$ /* Check refcount on first dataset's attribute */
-
CALL h5aopen_f(dataset, attrname, attr, error, aapl_id=H5P_DEFAULT_F)
CALL check("h5aopen_f",error,total_error)
-!!$
-!!$ if(u % 2) {
-! /* Check that attribute is not shared */
-!!$ is_shared = H5A_is_shared_test(attr);
-!!$ VERIFY(is_shared, FALSE, "H5A_is_shared_test");
-!!$ } /* end if */
-!!$ else {
-!/* Check that attribute is shared */
-!!$ is_shared = H5A_is_shared_test(attr);
-!!$ VERIFY(is_shared, TRUE, "H5A_is_shared_test");
-!!$
-!/* Check refcount for attribute */
-!!$ ret = H5A_get_shared_rc_test(attr, &shared_refcount);
-!!$ CHECK(ret, FAIL, "H5A_get_shared_rc_test");
-!!$ VERIFY(shared_refcount, 1, "H5A_get_shared_rc_test");
-!!$ } /* end else */
! /* Close attribute */
CALL h5aclose_f(attr, error)
@@ -2480,21 +2014,6 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error)
CALL h5dclose_f(dataset2, error)
CALL check("h5dclose_f",error,total_error)
- ! /* Check on shared message status now */
-!!$ if(test_shared != 0) {
-!!$ if(test_shared == 1) {
- ! /* Check on datatype storage status */
-!!$ ret = H5F_get_sohm_mesg_count_test(fid, H5O_DTYPE_ID, &mesg_count);
-!!$ CHECK(ret, FAIL, "H5F_get_sohm_mesg_count_test");
-!!$ VERIFY(mesg_count, 2, "H5F_get_sohm_mesg_count_test");
-!!$ } /* end if */
-!!$
-!!$ /* Check on dataspace storage status */
-!!$ ret = H5F_get_sohm_mesg_count_test(fid, H5O_SDSPACE_ID, &mesg_count);
-!!$ CHECK(ret, FAIL, "H5F_get_sohm_mesg_count_test");
-!!$ VERIFY(mesg_count, 2, "H5F_get_sohm_mesg_count_test");
-!!$ } /* end if */
-!!$
! /* Unlink datasets WITH attributes */
CALL h5ldelete_f(fid, DSET1_NAME, error, H5P_DEFAULT_F)
@@ -2509,31 +2028,11 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error)
CALL check("H5Ldelete_f", error, total_error)
ENDIF
- ! /* Check on attribute storage status */
-!!$ ret = H5F_get_sohm_mesg_count_test(fid, H5O_ATTR_ID, &mesg_count);
-!!$ CHECK(ret, FAIL, "H5F_get_sohm_mesg_count_test");
-!!$ VERIFY(mesg_count, 0, "H5F_get_sohm_mesg_count_test");
-!!$
-!!$ if(test_shared != 0) {
-!!$ /* Check on datatype storage status */
-!!$ ret = H5F_get_sohm_mesg_count_test(fid, H5O_DTYPE_ID, &mesg_count);
-!!$ CHECK(ret, FAIL, "H5F_get_sohm_mesg_count_test");
-!!$ VERIFY(mesg_count, 0, "H5F_get_sohm_mesg_count_test");
-!!$
-!!$ /* Check on dataspace storage status */
-!!$ ret = H5F_get_sohm_mesg_count_test(fid, H5O_SDSPACE_ID, &mesg_count);
-!!$ CHECK(ret, FAIL, "H5F_get_sohm_mesg_count_test");
-!!$ VERIFY(mesg_count, 0, "H5F_get_sohm_mesg_count_test");
-!!$ } /* end if */
-!!$
! /* Close file */
CALL h5fclose_f(fid, error)
CALL check("h5fclose_f",error,total_error)
-!!$
-!!$ /* Check size of file */
-!!$ filesize = h5_get_file_size(FILENAME);
-!!$ VERIFY(filesize, empty_filesize, "h5_get_file_size");
+
ENDDO
! /* Close dataspaces */
@@ -2587,8 +2086,6 @@ SUBROUTINE test_attr_dense_open( fcpl, fapl, total_error)
data_dims = 0
- ! /* Output message about test being performed */
-! WRITE(*,*) " - Testing Opening Attributes in Dense Storage"
! /* Create file */
@@ -2631,10 +2128,6 @@ SUBROUTINE test_attr_dense_open( fcpl, fapl, total_error)
CALL h5pclose_f(dcpl, error)
CALL check("h5pclose_f",error,total_error)
- ! /* Check on dataset's attribute storage status */
- ! is_dense = H5O_is_attr_dense_test(dataset);
- ! VERIFY(is_dense, FALSE, "H5O_is_attr_dense_test");
-
! /* Add attributes, until just before converting to dense storage */
DO u = 0, max_compact - 1
@@ -2657,13 +2150,8 @@ SUBROUTINE test_attr_dense_open( fcpl, fapl, total_error)
! /* Verify attributes written so far */
CALL test_attr_dense_verify(dataset, u, total_error)
- ! CHECK(ret, FAIL, "test_attr_dense_verify");
ENDDO
-
- ! /* Check on dataset's attribute storage status */
-!!$ is_dense = H5O_is_attr_dense_test(dataset);
-!!$ VERIFY(is_dense, FALSE, "H5O_is_attr_dense_test");
-
+!
! /* Add one more attribute, to push into "dense" storage */
! /* Create attribute */
@@ -2673,11 +2161,6 @@ SUBROUTINE test_attr_dense_open( fcpl, fapl, total_error)
CALL h5acreate_f(dataset, attrname, H5T_NATIVE_INTEGER, sid, attr, error, aapl_id=H5P_DEFAULT_F)
CALL check("h5acreate_f",error,total_error)
- ! /* Check on dataset's attribute storage status */
-!!$ is_dense = H5O_is_attr_dense_test(dataset);
-!!$ VERIFY(is_dense, TRUE, "H5O_is_attr_dense_test");
-
-
! /* Write data into the attribute */
data_dims(1) = 1
CALL h5awrite_f(attr, H5T_NATIVE_INTEGER, u, data_dims, error)
@@ -2990,8 +2473,6 @@ SUBROUTINE test_attr_basic_write(fapl, total_error)
attr_data1a(2) = 1087
attr_data1a(3) = -99890
- ! /* Output message about test being performed */
-! WRITE(*,*) " - Testing Basic Scalar Attribute Writing Functions"
! /* Create file */
CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid1, error, H5P_DEFAULT_F, fapl)
@@ -3056,8 +2537,6 @@ SUBROUTINE test_attr_basic_write(fapl, total_error)
CALL check("h5aget_storage_size_f",error,total_error)
!EP CALL VERIFY("h5aget_storage_size_f", INT(attr_size), 2*HSIZE_T, total_error)
-! attr_size = H5Aget_storage_size(attr);
-! VERIFY(attr_size, (ATTR1_DIM1 * sizeof(int)), "H5A_get_storage_size");
! /* Read attribute information immediately, without closing attribute */
CALL h5aread_f(attr, H5T_NATIVE_INTEGER, read_data1, dimsa, error)
@@ -3156,9 +2635,6 @@ SUBROUTINE test_attr_many(new_format, fcpl, fapl, total_error)
INTEGER(HID_T) :: sid
INTEGER(HID_T) :: gid
INTEGER(HID_T) :: aid
-
-
-
INTEGER :: error
INTEGER(HSIZE_T), DIMENSION(7) :: data_dims
@@ -3175,8 +2651,6 @@ SUBROUTINE test_attr_many(new_format, fcpl, fapl, total_error)
data_dims = 0
- ! /* Output message about test being performed */
-! WRITE(*,*) " - Testing Storing Many Attributes"
!/* Create file */
CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl)
diff --git a/fortran/test/tH5D.f90 b/fortran/test/tH5D.f90
index 56e82f4..682e242 100644
--- a/fortran/test/tH5D.f90
+++ b/fortran/test/tH5D.f90
@@ -1,3 +1,12 @@
+!****h* root/fortran/test/tH5D.f90
+!
+! NAME
+! tH5D.f90
+!
+! FUNCTION
+! Basic testing of Fortran H5D APIs.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,14 +22,17 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! NOTES
+! Tests the H5D APIs functionalities of:
+! h5dcreate_f, h5dopen_f, h5dclose_f, h5dget_space_f, h5dget_type_f,
+! h5dread_f, and h5dwrite_f
!
!
-! Testing Dataset Interface functionality.
+! CONTAINS SUBROUTINES
+! datasettest, extenddsettest
!
-!
-! The following subroutine tests the following functionalities:
-! h5dcreate_f, h5dopen_f, h5dclose_f, h5dget_space_f, h5dget_type_f,
-! h5dread_f, and h5dwrite_f
+!*****
+
!
SUBROUTINE datasettest(cleanup, total_error)
USE HDF5 ! This module contains all necessary modules
diff --git a/fortran/test/tH5E.f90 b/fortran/test/tH5E.f90
index a4912bd..4d431a1 100644
--- a/fortran/test/tH5E.f90
+++ b/fortran/test/tH5E.f90
@@ -1,3 +1,12 @@
+!****h* root/fortran/test/tH5E.f90
+!
+! NAME
+! tH5E.f90
+!
+! FUNCTION
+! Basic testing of Fortran H5E APIs.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,6 +22,15 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! NOTES
+! Tests the H5D APIs functionalities of:
+! h5eprint_f
+!
+! CONTAINS SUBROUTINES
+! error_report_test
+!
+!*****
+!
SUBROUTINE error_report_test(cleanup, total_error)
! This subroutine tests following functionalities: h5eprint_f
diff --git a/fortran/test/tH5E_F03.f90 b/fortran/test/tH5E_F03.f90
new file mode 100644
index 0000000..75a534e
--- /dev/null
+++ b/fortran/test/tH5E_F03.f90
@@ -0,0 +1,210 @@
+!****h* root/fortran/test/tH5E_F03.f90
+!
+! NAME
+! tH5E_F03.f90
+!
+! FUNCTION
+! Test FORTRAN HDF5 H5E APIs which are dependent on FORTRAN 2003
+! features.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! USES
+! liter_cb_mod
+!
+! CONTAINS SUBROUTINES
+! test_error
+!
+!*****
+
+! *****************************************
+! *** H 5 E T E S T S
+! *****************************************
+
+MODULE test_my_hdf5_error_handler
+
+ IMPLICIT NONE
+
+CONTAINS
+
+!/****************************************************************
+!**
+!** my_hdf5_error_handler: Custom error callback routine.
+!**
+!****************************************************************/
+
+ INTEGER FUNCTION my_hdf5_error_handler(estack_id, data_inout) bind(C)
+
+ ! This error function handle works with only version 2 error stack
+
+ USE HDF5
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+
+ ! estack_id is always passed from C as: H5E_DEFAULT
+ INTEGER(HID_T) :: estack_id
+ ! data that was registered with H5Eset_auto_f
+! INTEGER, DIMENSION(1:2) :: data_inout
+ INTEGER :: data_inout
+
+ PRINT*, " "
+ PRINT*, " Subtest: H5Eset_auto_f custom error message with callback, WITH DATA"
+ PRINT*, " -This message should be written to standard out- "
+ PRINT*, " Data Values Passed In =", data_inout
+ PRINT*, " "
+
+ data_inout = 10*data_inout
+
+ my_hdf5_error_handler = 1 ! this is not used by the C routine
+
+ END FUNCTION my_hdf5_error_handler
+
+ INTEGER FUNCTION my_hdf5_error_handler_nodata(estack_id, data_inout) bind(C)
+
+ ! This error function handle works with only version 2 error stack
+
+ USE HDF5
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+
+ ! estack_id is always passed from C as: H5E_DEFAULT
+ INTEGER(HID_T) :: estack_id
+ ! data that was registered with H5Eset_auto_f
+ TYPE(C_PTR) :: data_inout
+
+ PRINT*, " "
+ PRINT*, " Subtest: H5Eset_auto_f custom error message with callback, NO DATA"
+ PRINT*, " -This message should be written to standard out- "
+ PRINT*, " "
+
+ my_hdf5_error_handler_nodata = 1 ! this is not used by the C routine
+
+ END FUNCTION my_hdf5_error_handler_nodata
+
+END MODULE test_my_hdf5_error_handler
+
+SUBROUTINE test_error(total_error)
+
+ USE HDF5
+ USE ISO_C_BINDING
+ USE test_my_hdf5_error_handler
+
+ IMPLICIT NONE
+
+ INTEGER(hid_t), PARAMETER :: FAKE_ID = -1
+ INTEGER :: total_error
+ INTEGER(hid_t) :: file
+ INTEGER(hid_t) :: dataset, space
+ INTEGER(hid_t) :: estack_id
+ INTEGER(hsize_t), DIMENSION(1:2) :: dims
+ CHARACTER(LEN=10) :: FUNC_test_error = "test_error"
+ TYPE(C_FUNPTR) :: old_func
+ TYPE(C_PTR) :: old_data, null_data
+ INTEGER :: error
+ TYPE(C_FUNPTR) :: op
+ INTEGER, DIMENSION(1:100,1:200), TARGET :: ipoints2
+ !! INTEGER, DIMENSION(1:2), TARGET :: my_hdf5_error_handler_data
+ INTEGER, DIMENSION(:), POINTER :: ptr_data
+ INTEGER, TARGET :: my_hdf5_error_handler_data
+ TYPE(C_PTR) :: f_ptr
+ TYPE(C_FUNPTR) :: func
+
+ TYPE(C_PTR), TARGET :: f_ptr1
+ TYPE(C_FUNPTR), TARGET :: func1
+
+ INTEGER, DIMENSION(1:1) :: array_shape
+ LOGICAL :: is_associated
+
+ ! my_hdf5_error_handler_data(1:2) =(/1,2/)
+ my_hdf5_error_handler_data = 99
+ CALL h5fcreate_f("terror.h5", H5F_ACC_TRUNC_F, file, error)
+ CALL check("h5fcreate_f", error, total_error)
+
+ ! Create the data space
+ dims(1) = 10
+ dims(2) = 20
+ CALL H5Screate_simple_f(2, dims, space, error)
+ CALL check("h5screate_simple_f", error, total_error)
+
+ ! ** SET THE CUSTOMIZED PRINTING OF ERROR STACK **
+
+ ! set the customized error handling routine
+ func = c_funloc(my_hdf5_error_handler)
+
+ ! set the data sent to the customized routine
+ f_ptr = c_loc(my_hdf5_error_handler_data)
+
+ ! turn on automatic printing, and use a custom error routine with input data
+ CALL H5Eset_auto_f(1, error, H5E_DEFAULT_F, func, f_ptr)
+
+ ! Create the erring dataset
+ CALL h5dcreate_f(FAKE_ID,"a_dataset",H5T_NATIVE_INTEGER, space, dataset, error)
+ CALL VERIFY("h5dcreate_f", error, -1, total_error)
+
+!!$ CALL VERIFY("H5Eset_auto_f",my_hdf5_error_handler_data(1),10, total_error)
+!!$ CALL VERIFY("H5Eset_auto_f",my_hdf5_error_handler_data(2),20, total_error)
+
+ ! Test enabling and disabling default printing
+
+ CALL H5Eget_auto_f(H5E_DEFAULT_F, func1, f_ptr1, error)
+ CALL VERIFY("H5Eget_auto_f", error, 0, total_error)
+
+ ! PRINT*,c_associated(f_ptr1)
+
+ ALLOCATE(ptr_data(1:2))
+ ptr_data = 0
+ array_shape(1) = 2
+ CALL C_F_POINTER(f_ptr1, ptr_data, array_shape)
+
+ ! ptr_data => f_ptr1(1)
+
+ ! PRINT*,ptr_data(1)
+
+!!$ if(old_data != NULL)
+!!$ TEST_ERROR;
+!!$#ifdef H5_USE_16_API
+!!$ if (old_func != (H5E_auto_t)H5Eprint)
+!!$ TEST_ERROR;
+!!$#else /* H5_USE_16_API */
+!!$ if (old_func != (H5E_auto2_t)H5Eprint2)
+!!$ TEST_ERROR;
+!!$#endif /* H5_USE_16_API */
+
+
+ ! set the customized error handling routine
+ func = c_funloc(my_hdf5_error_handler_nodata)
+ ! set the data sent to the customized routine as null
+ f_ptr = C_NULL_PTR
+ ! turn on automatic printing, and use a custom error routine with no input data
+ CALL H5Eset_auto_f(1, error, H5E_DEFAULT_F, func, f_ptr)
+
+ CALL h5dcreate_f(FAKE_ID,"a_dataset",H5T_NATIVE_INTEGER, space, dataset, error)
+ CALL VERIFY("h5dcreate_f", error, -1, total_error)
+
+
+ ! turn on automatic printing with h5eprint_f which prints an error stack in the default manner.
+
+ ! func = c_funloc(h5eprint_f)
+ ! CALL H5Eset_auto_f(0, error, H5E_DEFAULT_F, func, C_NULL_PTR)
+
+ CALL H5Eset_auto_f(0, error)
+ CALL h5dcreate_f(FAKE_ID,"a_dataset",H5T_NATIVE_INTEGER, space, dataset, error)
+
+ CALL H5Eset_auto_f(1, error)
+ CALL h5dcreate_f(FAKE_ID,"a_dataset",H5T_NATIVE_INTEGER, space, dataset, error)
+
+END SUBROUTINE test_error
diff --git a/fortran/test/tH5F.f90 b/fortran/test/tH5F.f90
index 4b88cb3..d8f683c 100644
--- a/fortran/test/tH5F.f90
+++ b/fortran/test/tH5F.f90
@@ -1,3 +1,12 @@
+!****h* root/fortran/test/tH5F.f90
+!
+! NAME
+! tH5F.f90
+!
+! FUNCTION
+! Basic testing of Fortran H5F APIs.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,15 +22,15 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! CONTAINS SUBROUTINES
+! mountingtest, reopentest, plisttest, file_close, file_space
!
+!*****
!
-! Testing File Interface functionality.
-!
-! In the mountingtest subroutine we create one file with a group in it,
-! and another file with a dataset. Mounting is used to
-! access the dataset from the second file as a member of a group
-! in the first file.
-!
+! In the mountingtest subroutine we create one file with a group in it,
+! and another file with a dataset. Mounting is used to
+! access the dataset from the second file as a member of a group
+! in the first file.
SUBROUTINE mountingtest(cleanup, total_error)
USE HDF5 ! This module contains all necessary modules
IMPLICIT NONE
diff --git a/fortran/test/tH5G.f90 b/fortran/test/tH5G.f90
index 300e538..6befa94 100644
--- a/fortran/test/tH5G.f90
+++ b/fortran/test/tH5G.f90
@@ -1,3 +1,12 @@
+!****h* root/fortran/test/tH5G.f90
+!
+! NAME
+! tH5G.f90
+!
+! FUNCTION
+! Basic testing of Fortran H5G APIs.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,6 +22,11 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! CONTAINS SUBROUTINES
+! group_test
+!
+!*****
+
SUBROUTINE group_test(cleanup, total_error)
! This subroutine tests following functionalities:
@@ -236,6 +250,7 @@
CALL h5sclose_f(dspace_id, error)
CALL check("h5sclose_f", error, total_error)
+
if(cleanup) CALL h5_cleanup_f(filename, H5P_DEFAULT_F, error)
CALL check("h5_cleanup_f", error, total_error)
END SUBROUTINE group_test
diff --git a/fortran/test/tH5G_1_8.f90 b/fortran/test/tH5G_1_8.f90
index 6a2c623..fd55ba9 100644
--- a/fortran/test/tH5G_1_8.f90
+++ b/fortran/test/tH5G_1_8.f90
@@ -1,3 +1,12 @@
+!****h* root/fortran/test/tH5G_1_8.f90
+!
+! NAME
+! tH5G_1_8.f90
+!
+! FUNCTION
+! Basic testing of Fortran H5G APIs introduced in 1.8.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,6 +22,12 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! CONTAINS SUBROUTINES
+! group_test, group_info, timestamps, mklinks, test_move_preserves, lifecycle
+! cklinks, delete_by_idx, link_info_by_idx_check, test_lcpl, objcopy,
+! lapl_nlinks
+!
+!*****
SUBROUTINE group_test(cleanup, total_error)
USE HDF5 ! This module contains all necessary modules
@@ -1057,6 +1072,7 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error)
CALL check("h5_cleanup_f", error, total_error)
END SUBROUTINE lifecycle
+
!/*-------------------------------------------------------------------------
! * Function: cklinks
! *
@@ -1070,7 +1086,7 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error)
! * Programmer: M.S. Breitenfeld
! * April 14, 2008
! *
-! * Modifications: Modified Original C code
+! * Modifications: Modified original C code
! *
! *-------------------------------------------------------------------------
! */
@@ -1118,10 +1134,10 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error)
CALL H5Lexists_f(file,"d1",Lexists, error)
- CALL verifylogical("test_lcpl.H5Lexists", Lexists,.TRUE.,total_error)
+ CALL verifylogical("H5Lexists", Lexists,.TRUE.,total_error)
CALL H5Lexists_f(file,"grp1/hard",Lexists, error)
- CALL verifylogical("test_lcpl.H5Lexists", Lexists,.TRUE.,total_error)
+ CALL verifylogical("H5Lexists", Lexists,.TRUE.,total_error)
! /* Cleanup */
CALL H5Fclose_f(file,error)
@@ -1490,7 +1506,6 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
! *-------------------------------------------------------------------------
! */
-
SUBROUTINE test_lcpl(cleanup, fapl, total_error)
USE HDF5 ! This module contains all necessary modules
@@ -1542,13 +1557,13 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
! h5_fixname(FILENAME[0], fapl, filename, sizeof filename);
CALL H5Fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, error, H5P_DEFAULT_F, fapl)
- CALL check("test_lcpl.H5Fcreate_f", error, total_error)
+ CALL check("H5Fcreate_f", error, total_error)
! /* Create and link a group with the default LCPL */
CALL H5Gcreate_f(file_id, "/group", group_id, error)
- CALL check("test_lcpl.H5Gcreate_f", error, total_error)
+ CALL check("H5Gcreate_f", error, total_error)
! /* Check that its character encoding is the default */
@@ -1561,49 +1576,54 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
! * creation property list and is always ASCII. */
!#define H5F_DEFAULT_CSET H5T_CSET_ASCII -- FROM H5Fprivate.h --
- CALL VERIFY("test_lcpl.H5Lget_info_f",cset, H5T_CSET_ASCII_F,total_error)
+ CALL VERIFY("H5Lget_info_f",cset, H5T_CSET_ASCII_F,total_error)
! /* Create and commit a datatype with the default LCPL */
CALL h5tcopy_f(H5T_NATIVE_INTEGER, type_id, error)
- CALL check("test_lcpl.h5tcopy_f",error,total_error)
+ CALL check("h5tcopy_f",error,total_error)
CALL h5tcommit_f(file_id, "/type", type_id, error)
- CALL check("test_lcpl.h5tcommit_f", error, total_error)
+ CALL check("h5tcommit_f", error, total_error)
CALL h5tclose_f(type_id, error)
- CALL check("test_lcpl.h5tclose_f", error, total_error)
+ CALL check("h5tclose_f", error, total_error)
! /* Check that its character encoding is the default */
CALL H5Lget_info_f(file_id, "type", &
cset, corder, f_corder_valid, link_type, address, val_size, &
error)
- CALL check("test_lcpl.h5tclose_f", error, total_error)
+ CALL check("h5tclose_f", error, total_error)
!/* File-wide default character encoding can not yet be set via the file
! * creation property list and is always ASCII. */
!#define H5F_DEFAULT_CSET H5T_CSET_ASCII -- FROM H5Fprivate.h --
- CALL verify("test_lcpl.H5Lget_info_f",cset, H5T_CSET_ASCII_F,total_error)
+ CALL verify("H5Lget_info_f",cset, H5T_CSET_ASCII_F,total_error)
!/* Create a dataspace */
CALL h5screate_simple_f(2, dims, space_id, error)
- CALL check("test_lcpl.h5screate_simple_f",error,total_error)
+ CALL check("h5screate_simple_f",error,total_error)
+ CALL h5pcreate_f(H5P_DATASET_CREATE_F, crp_list, error)
+ CALL h5pset_chunk_f(crp_list, 2, dims, error)
+ CALL h5pcreate_f(H5P_DATASET_CREATE_F, crp_list, error)
+ CALL h5pset_chunk_f(crp_list, 2, dims, error)
CALL h5pcreate_f(H5P_DATASET_CREATE_F, crp_list, error)
CALL h5pset_chunk_f(crp_list, 2, dims, error)
! /* Create a dataset using the default LCPL */
CALL h5dcreate_f(file_id, "/dataset", H5T_NATIVE_INTEGER, space_id, dset_id, error, crp_list)
- CALL check("test_lcpl.h5dcreate_f", error, total_error)
+ CALL check("h5dcreate_f", error, total_error)
+
CALL h5dclose_f(dset_id, error)
- CALL check("test_lcpl.h5dclose_f", error, total_error)
+ CALL check("h5dclose_f", error, total_error)
! Reopen
CALL H5Dopen_f(file_id, "/dataset", dset_id, error)
- CALL check("test_lcpl.h5dopen_f", error, total_error)
+ CALL check("h5dopen_f", error, total_error)
! /* Extend the dataset */
CALL H5Dset_extent_f(dset_id, extend_dim, error)
- CALL check("test_lcpl.H5Dset_extent_f", error, total_error)
+ CALL check("H5Dset_extent_f", error, total_error)
! /* Verify the dataspaces */
!
!Get dataset's dataspace handle.
@@ -1612,7 +1632,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
CALL check("h5dget_space_f",error,total_error)
CALL h5sget_simple_extent_dims_f(data_space, dimsout, maxdimsout, error)
- CALL check("test_lcpl.h5sget_simple_extent_dims_f",error, total_error)
+ CALL check("h5sget_simple_extent_dims_f",error, total_error)
DO i = 1, 2
tmp1 = dimsout(i)
@@ -1628,170 +1648,170 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
! /* close data set */
CALL h5dclose_f(dset_id, error)
- CALL check("test_lcpl.h5dclose_f", error, total_error)
+ CALL check("h5dclose_f", error, total_error)
! /* Check that its character encoding is the default */
CALL H5Lget_info_f(file_id, "dataset", &
cset, corder, f_corder_valid, link_type, address, val_size, &
error)
- CALL check("test_lcpl.H5Lget_info_f", error, total_error)
+ CALL check("H5Lget_info_f", error, total_error)
!/* File-wide default character encoding can not yet be set via the file
! * creation property list and is always ASCII. */
!#define H5F_DEFAULT_CSET H5T_CSET_ASCII -- FROM H5Fprivate.h --
- CALL verify("test_lcpl.h5tclose_f",cset, H5T_CSET_ASCII_F,total_error)
+ CALL verify("h5tclose_f",cset, H5T_CSET_ASCII_F,total_error)
!/* Create a link creation property list with the UTF-8 character encoding */
CALL H5Pcreate_f(H5P_LINK_CREATE_F,lcpl_id,error)
- CALL check("test_lcpl.h5Pcreate_f",error,total_error)
+ CALL check("h5Pcreate_f",error,total_error)
CALL H5Pset_char_encoding_f(lcpl_id, H5T_CSET_UTF8_F, error)
- CALL check("test_lcpl.H5Pset_char_encoding_f",error, total_error)
+ CALL check("H5Pset_char_encoding_f",error, total_error)
! /* Create and link a group with the new LCPL */
CALL H5Gcreate_f(file_id, "/group2", group_id, error,lcpl_id=lcpl_id)
- CALL check("test_lcpl.test_lcpl.H5Gcreate_f", error, total_error)
+ CALL check("H5Gcreate_f", error, total_error)
CALL H5Gclose_f(group_id, error)
- CALL check("test_lcpl.test_lcpl.H5Gclose_f", error, total_error)
+ CALL check("H5Gclose_f", error, total_error)
!/* Check that its character encoding is UTF-8 */
CALL H5Lget_info_f(file_id, "group2", &
cset, corder, f_corder_valid, link_type, address, val_size, &
error)
- CALL check("test_lcpl.H5Lget_info_f", error, total_error)
- CALL verify("test_lcpl.H5Lget_info_f",cset, H5T_CSET_UTF8_F,total_error)
+ CALL check("H5Lget_info_f", error, total_error)
+ CALL verify("H5Lget_info_f",cset, H5T_CSET_UTF8_F,total_error)
! /* Create and commit a datatype with the new LCPL */
CALL h5tcopy_f(H5T_NATIVE_INTEGER, type_id, error)
- CALL check("test_lcpl.h5tcopy_f",error,total_error)
+ CALL check("h5tcopy_f",error,total_error)
CALL h5tcommit_f(file_id, "/type2", type_id, error, lcpl_id=lcpl_id)
- CALL check("test_lcpl.h5tcommit_f", error, total_error)
+ CALL check("h5tcommit_f", error, total_error)
CALL h5tclose_f(type_id, error)
- CALL check("test_lcpl.h5tclose_f", error, total_error)
+ CALL check("h5tclose_f", error, total_error)
!/* Check that its character encoding is UTF-8 */
CALL H5Lget_info_f(file_id, "type2", &
cset, corder, f_corder_valid, link_type, address, val_size, &
error)
- CALL check("test_lcpl.H5Lget_info_f", error, total_error)
- CALL verify("test_lcpl.H5Lget_info_f",cset, H5T_CSET_UTF8_F,total_error)
+ CALL check("H5Lget_info_f", error, total_error)
+ CALL verify("H5Lget_info_f",cset, H5T_CSET_UTF8_F,total_error)
! /* Create a dataset using the new LCPL */
CALL h5dcreate_f(file_id, "/dataset2", H5T_NATIVE_INTEGER, space_id, dset_id, error,lcpl_id=lcpl_id)
- CALL check("test_lcpl.h5dcreate_f", error, total_error)
+ CALL check("h5dcreate_f", error, total_error)
CALL h5dclose_f(dset_id, error)
- CALL check("test_lcpl.h5dclose_f", error, total_error)
+ CALL check("h5dclose_f", error, total_error)
CALL H5Pget_char_encoding_f(lcpl_id, encoding, error)
- CALL check("test_lcpl.H5Pget_char_encoding_f", error, total_error)
- CALL VERIFY("test_lcpl.H5Pget_char_encoding_f", encoding, H5T_CSET_UTF8_F, total_error)
+ CALL check("H5Pget_char_encoding_f", error, total_error)
+ CALL VERIFY("H5Pget_char_encoding_f", encoding, H5T_CSET_UTF8_F, total_error)
! /* Check that its character encoding is UTF-8 */
CALL H5Lget_info_f(file_id, "dataset2", &
cset, corder, f_corder_valid, link_type, address, val_size, &
error)
- CALL check("test_lcpl.H5Lget_info_f", error, total_error)
- CALL verify("test_lcpl.H5Lget_info_f2",cset, H5T_CSET_UTF8_F,total_error)
+ CALL check("H5Lget_info_f", error, total_error)
+ CALL verify("H5Lget_info_f2",cset, H5T_CSET_UTF8_F,total_error)
! /* Create a new link to the dataset with a different character encoding. */
CALL H5Pclose_f(lcpl_id, error)
- CALL check("test_lcpl.H5Pclose_f", error, total_error)
+ CALL check("H5Pclose_f", error, total_error)
CALL H5Pcreate_f(H5P_LINK_CREATE_F,lcpl_id,error)
- CALL check("test_lcpl.h5Pcreate_f",error,total_error)
+ CALL check("h5Pcreate_f",error,total_error)
CALL H5Pset_char_encoding_f(lcpl_id, H5T_CSET_ASCII_F, error)
- CALL check("test_lcpl.H5Pset_char_encoding_f",error, total_error)
+ CALL check("H5Pset_char_encoding_f",error, total_error)
CALL H5Lcreate_hard_f(file_id, "/dataset2", file_id, "/dataset2_link", error, lcpl_id)
- CALL check("test_lcpl.H5Lcreate_hard_f",error, total_error)
+ CALL check("H5Lcreate_hard_f",error, total_error)
CALL H5Lexists_f(file_id,"/dataset2_link",Lexists, error)
- CALL check("test_lcpl.H5Lexists",error, total_error)
- CALL verifylogical("test_lcpl.H5Lexists", Lexists,.TRUE.,total_error)
+ CALL check("H5Lexists",error, total_error)
+ CALL verifylogical("H5Lexists", Lexists,.TRUE.,total_error)
! /* Check that its character encoding is ASCII */
CALL H5Lget_info_f(file_id, "/dataset2_link", &
cset, corder, f_corder_valid, link_type, address, val_size, &
error)
- CALL check("test_lcpl.H5Lget_info_f", error, total_error)
- CALL verify("test_lcpl.H5Lget_info_f",cset, H5T_CSET_ASCII_F,total_error)
+ CALL check("H5Lget_info_f", error, total_error)
+ CALL verify("H5Lget_info_f",cset, H5T_CSET_ASCII_F,total_error)
! /* Check that the first link's encoding hasn't changed */
CALL H5Lget_info_f(file_id, "/dataset2", &
cset, corder, f_corder_valid, link_type, address, val_size, &
error)
- CALL check("test_lcpl.H5Lget_info_f", error, total_error)
- CALL verify("test_lcpl.H5Lget_info_f3",cset, H5T_CSET_UTF8_F,total_error)
+ CALL check("H5Lget_info_f", error, total_error)
+ CALL verify("H5Lget_info_f3",cset, H5T_CSET_UTF8_F,total_error)
!/* Make sure that LCPLs work properly for other API calls: */
!/* H5Lcreate_soft */
CALL H5Pset_char_encoding_f(lcpl_id, H5T_CSET_UTF8_F, error)
- CALL check("test_lcpl.H5Pset_char_encoding_f",error, total_error)
+ CALL check("H5Pset_char_encoding_f",error, total_error)
CALL H5Lcreate_soft_f("dataset2", file_id, "slink_to_dset2",error,lcpl_id)
CALL check("H5Lcreate_soft_f", error, total_error)
CALL H5Lget_info_f(file_id, "slink_to_dset2", &
cset, corder, f_corder_valid, link_type, address, val_size, &
error)
- CALL check("test_lcpl.H5Lget_info_f", error, total_error)
- CALL verify("test_lcpl.H5Lget_info_f",cset, H5T_CSET_UTF8_F,total_error)
+ CALL check("H5Lget_info_f", error, total_error)
+ CALL verify("H5Lget_info_f",cset, H5T_CSET_UTF8_F,total_error)
! /* H5Lmove */
CALL H5Pset_char_encoding_f(lcpl_id, H5T_CSET_ASCII_F, error)
- CALL check("test_lcpl.H5Pset_char_encoding_f",error, total_error)
+ CALL check("H5Pset_char_encoding_f",error, total_error)
CALL H5Lmove_f(file_id, "slink_to_dset2", file_id, "moved_slink", error, lcpl_id, H5P_DEFAULT_F)
- CALL check("test_lcpl.H5Lmove_f",error, total_error)
+ CALL check("H5Lmove_f",error, total_error)
CALL H5Lget_info_f(file_id, "moved_slink", &
cset, corder, f_corder_valid, link_type, address, val_size, &
error)
- CALL check("test_lcpl.H5Lget_info_f", error, total_error)
- CALL verify("test_lcpl.H5Lget_info_f",cset, H5T_CSET_ASCII_F,total_error)
+ CALL check("H5Lget_info_f", error, total_error)
+ CALL verify("H5Lget_info_f",cset, H5T_CSET_ASCII_F,total_error)
! /* H5Lcopy */
CALL H5Pset_char_encoding_f(lcpl_id, H5T_CSET_UTF8_F, error)
- CALL check("test_lcpl.H5Pset_char_encoding_f",error, total_error)
+ CALL check("H5Pset_char_encoding_f",error, total_error)
CALL H5Lcopy_f(file_id, "moved_slink", file_id, "copied_slink", error, lcpl_id)
CALL H5Lget_info_f(file_id, "copied_slink", &
cset, corder, f_corder_valid, link_type, address, val_size, &
error)
- CALL check("test_lcpl.H5Lget_info_f", error, total_error)
- CALL verify("test_lcpl.H5Lget_info_f",cset, H5T_CSET_UTF8_F,total_error)
+ CALL check("H5Lget_info_f", error, total_error)
+ CALL verify("H5Lget_info_f",cset, H5T_CSET_UTF8_F,total_error)
! /* H5Lcreate_external */
- CALL H5Lcreate_external_f("test_lcpl.filename", "path", file_id, "extlink", error, lcpl_id)
- CALL check("test_lcpl.H5Lcreate_external_f", error, total_error)
+ CALL H5Lcreate_external_f("filename", "path", file_id, "extlink", error, lcpl_id)
+ CALL check("H5Lcreate_external_f", error, total_error)
CALL H5Lget_info_f(file_id, "extlink", &
cset, corder, f_corder_valid, link_type, address, val_size, &
error)
- CALL check("test_lcpl.H5Lget_info_f", error, total_error)
- CALL verify("test_lcpl.H5Lget_info_f",cset, H5T_CSET_UTF8_F,total_error)
+ CALL check("H5Lget_info_f", error, total_error)
+ CALL verify("H5Lget_info_f",cset, H5T_CSET_UTF8_F,total_error)
! /* Close open IDs */
CALL H5Pclose_f(lcpl_id, error)
- CALL check("test_lcpl.H5Pclose_f", error, total_error)
+ CALL check("H5Pclose_f", error, total_error)
CALL H5Sclose_f(space_id, error)
- CALL check("test_lcpl.h5Sclose_f",error,total_error)
+ CALL check("h5Sclose_f",error,total_error)
CALL H5Fclose_f(file_id, error)
- CALL check("test_lcpl.H5Fclose_f", error, total_error)
+ CALL check("H5Fclose_f", error, total_error)
IF(cleanup) CALL h5_cleanup_f("tempfile", H5P_DEFAULT_F, error)
CALL check("h5_cleanup_f", error, total_error)
diff --git a/fortran/test/tH5I.f90 b/fortran/test/tH5I.f90
index 0d1a8c5..184edaf 100644
--- a/fortran/test/tH5I.f90
+++ b/fortran/test/tH5I.f90
@@ -1,3 +1,12 @@
+!****h* root/fortran/test/tH5I.f90
+!
+! NAME
+! tH5I.f90
+!
+! FUNCTION
+! Basic testing of Fortran H5I APIs.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,6 +22,11 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! CONTAINS SUBROUTINES
+! identifier_test
+!
+!*****
+
SUBROUTINE identifier_test(cleanup, total_error)
! This subroutine tests following functionalities: h5iget_type_f
@@ -69,21 +83,21 @@
! check that the ID is not valid
dtype = -1
CALL H5Iis_valid_f(dtype, tri_ret, error)
- CALL check("H5Iis_valid_f", error, total_error)
+ CALL check("H5Iis_valid_f", error, total_error)
CALL VerifyLogical("H5Iis_valid_f", tri_ret, .FALSE., total_error)
-
+
! Create a datatype id
CALL H5Tcopy_f(H5T_NATIVE_INTEGER,dtype,error)
- CALL check("H5Tcopy_f", error, total_error)
-
+ CALL check("H5Tcopy_f", error, total_error)
+
! Check that the ID is valid
CALL H5Iis_valid_f(dtype, tri_ret, error)
- CALL check("H5Iis_valid_f", error, total_error)
+ CALL check("H5Iis_valid_f", error, total_error)
CALL VerifyLogical("H5Tequal_f", tri_ret, .TRUE., total_error)
-
+
CALL H5Tclose_f(dtype, error)
- CALL check("H5Tclose_f", error, total_error)
-
+ CALL check("H5Tclose_f", error, total_error)
+
!
! Create a new file using default properties.
!
diff --git a/fortran/test/tH5L_F03.f90 b/fortran/test/tH5L_F03.f90
new file mode 100644
index 0000000..616734d
--- /dev/null
+++ b/fortran/test/tH5L_F03.f90
@@ -0,0 +1,334 @@
+!****h* root/fortran/test/tH5L_F03.f90
+!
+! NAME
+! tH5L_F03.f90
+!
+! FUNCTION
+! Test FORTRAN HDF5 H5L APIs which are dependent on FORTRAN 2003
+! features.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! USES
+! liter_cb_mod
+!
+! CONTAINS SUBROUTINES
+! test_iter_group
+!
+!*****
+
+MODULE liter_cb_mod
+
+ USE HDF5
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+
+ TYPE iter_enum
+ INTEGER RET_ZERO
+ INTEGER RET_TWO
+ INTEGER RET_CHANGE
+ INTEGER RET_CHANGE2
+ END TYPE iter_enum
+
+ ! Custom group iteration callback data
+ TYPE, bind(c) :: iter_info
+ CHARACTER(LEN=1), DIMENSION(1:10) :: name ! The name of the object
+ INTEGER(c_int) :: TYPE ! The TYPE of the object
+ INTEGER(c_int) :: command ! The TYPE of RETURN value
+ END TYPE iter_info
+
+ TYPE, bind(c) :: union_t
+ INTEGER(haddr_t) :: address
+ INTEGER(size_t) :: val_size
+ END TYPE union_t
+
+ TYPE, bind(c) :: H5L_info_t
+ INTEGER(c_int) :: TYPE ! H5L_type_t type
+! LOGICAL(c_bool) :: corder_valid ! hbool_t corder_valid
+ INTEGER(c_int64_t) :: corder ! int64_t corder;
+ INTEGER(c_int) :: cset ! H5T_cset_t cset;
+ TYPE(union_t) :: u
+ END TYPE H5L_info_t
+
+CONTAINS
+
+!***************************************************************
+!**
+!** liter_cb(): Custom link iteration callback routine.
+!**
+!***************************************************************
+
+ INTEGER FUNCTION liter_cb(group, name, link_info, op_data) bind(C)
+
+ USE HDF5
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+
+ INTEGER(HID_T), VALUE :: group
+ CHARACTER(LEN=1), DIMENSION(1:10) :: name
+
+
+ TYPE (H5L_info_t) :: link_info
+
+ TYPE(iter_info) :: op_data
+
+ INTEGER, SAVE :: count
+ INTEGER, SAVE :: count2
+
+!!$
+!!$ iter_info *info = (iter_info *)op_data;
+!!$ static int count = 0;
+!!$ static int count2 = 0;
+
+ op_data%name(1:10) = name(1:10)
+
+ SELECT CASE (op_data%command)
+
+ CASE(0)
+ liter_cb = 0
+ CASE(2)
+ liter_cb = 2
+ CASE(3)
+ count = count + 1
+ IF(count.GT.10) THEN
+ liter_cb = 1
+ ELSE
+ liter_cb = 0
+ ENDIF
+ CASE(4)
+ count2 = count2 + 1
+ IF(count2.GT.10) THEN
+ liter_cb = 1
+ ELSE
+ liter_cb = 0
+ ENDIF
+ END SELECT
+
+ END FUNCTION liter_cb
+END MODULE liter_cb_mod
+
+! *****************************************
+! *** H 5 L T E S T S
+! *****************************************
+
+
+!***************************************************************
+!**
+!** test_iter_group(): Test group iteration functionality
+!**
+!***************************************************************
+SUBROUTINE test_iter_group(total_error)
+
+ USE HDF5
+ USE ISO_C_BINDING
+ USE liter_cb_mod
+ IMPLICIT NONE
+
+ INTEGER, INTENT(INOUT) :: total_error
+ INTEGER(HID_T) :: fapl
+ INTEGER(HID_T) :: file ! File ID
+ INTEGER(hid_t) :: dataset ! Dataset ID
+ INTEGER(hid_t) :: datatype ! Common datatype ID
+ INTEGER(hid_t) :: filespace ! Common dataspace ID
+ INTEGER(hid_t) :: root_group,grp ! Root group ID
+ INTEGER i,j ! counting variable
+ INTEGER(hsize_t) idx ! Index in the group
+ CHARACTER(LEN=11) :: DATAFILE = "titerate.h5"
+ INTEGER, PARAMETER :: ndatasets = 50
+ CHARACTER(LEN=10) :: name ! temporary name buffer
+ CHARACTER(LEN=10), DIMENSION(1:ndatasets+2) :: lnames ! Names of the links created
+!!$ char dataset_name[NAMELEN]; dataset name
+
+ TYPE(iter_info), TARGET :: info
+
+!!$ iter_info info; Custom iteration information
+!!$ H5G_info_t ginfo; Buffer for querying object's info
+!!$ herr_t ret; Generic return value
+
+ INTEGER :: error
+ INTEGER :: ret_value
+ TYPE(C_PTR) :: f_ptr
+ TYPE(C_FUNPTR) :: f1
+ TYPE(C_PTR) :: f2
+ CHARACTER(LEN=2) :: ichr2
+ CHARACTER(LEN=10) :: ichr10
+
+ ! Get the default FAPL
+ CALL H5Pcreate_f(H5P_FILE_ACCESS_F, fapl, error)
+ CALL check("h5pcreate_f", error, total_error)
+
+ ! Set the "use the latest version of the format" bounds for creating objects in the file
+ CALL H5Pset_libver_bounds_f(fapl, H5F_LIBVER_LATEST_F, H5F_LIBVER_LATEST_F, error)
+ CALL check("H5Pset_libver_bounds_f",error, total_error)
+
+ ! Create the test file with the datasets
+ CALL h5fcreate_f(DATAFILE, H5F_ACC_TRUNC_F, file, error, H5P_DEFAULT_F, fapl)
+ CALL check("h5fcreate_f", error, total_error)
+
+ ! Test iterating over empty group
+ idx = 0
+ info%command = 0
+ f1 = C_FUNLOC(liter_cb)
+ f2 = C_LOC(info)
+
+
+ CALL H5Literate_f(file, H5_INDEX_NAME_F, H5_ITER_INC_F, idx, f1, f2, ret_value, error)
+ CALL check("H5Literate_f", error, total_error)
+
+ CALL H5Tcopy_f(H5T_NATIVE_INTEGER, datatype, error)
+ CALL check("H5Tcopy_f", error, total_error)
+
+ CALL H5Screate_f(H5S_SCALAR_F, filespace, error)
+ CALL check("H5Screate_f", error, total_error)
+
+ DO i = 1, ndatasets
+ WRITE(ichr2, '(I2.2)') i
+
+ name = 'Dataset '//ichr2
+
+ CALL h5dcreate_f(file, name, datatype, filespace, dataset, error)
+ CALL check("H5dcreate_f", error, total_error)
+
+ lnames(i) = name
+
+ CALL h5dclose_f(dataset,error)
+ CALL check("H5dclose_f", error, total_error)
+
+ ENDDO
+
+ ! Create a group and named datatype under root group for testing
+
+ CALL H5Gcreate_f(file, "grp0000000", grp, error)
+ CALL check("H5Gcreate_f", error, total_error)
+
+ lnames(ndatasets+2) = "grp0000000"
+
+!!$
+!!$ lnames[NDATASETS] = HDstrdup("grp");
+!!$ CHECK(lnames[NDATASETS], NULL, "strdup");
+!!$
+
+ CALL H5Tcommit_f(file, "dtype00000", datatype, error)
+ CALL check("H5Tcommit_f", error, total_error)
+
+ lnames(ndatasets+1) = "dtype00000"
+
+ ! Close everything up
+
+ CALL H5Tclose_f(datatype, error)
+ CALL check("H5Tclose_f", error, total_error)
+
+ CALL H5Gclose_f(grp, error)
+ CALL check("H5Gclose_f", error, total_error)
+
+ CALL H5Sclose_f(filespace, error)
+ CALL check("H5Sclose_f", error, total_error)
+
+ CALL H5Fclose_f(file, error)
+ CALL check("H5Fclose_f", error, total_error)
+
+ ! Iterate through the datasets in the root group in various ways
+ CALL H5Fopen_f(DATAFILE, H5F_ACC_RDONLY_F, file, error, access_prp=fapl)
+ CALL check("h5fopen_f", error, total_error)
+
+ ! Test all objects in group, when callback always returns 0
+ info%command = 0
+ idx = 0
+ CALL H5Literate_f(file, H5_INDEX_NAME_F, H5_ITER_INC_F, idx, f1, f2, ret_value, error)
+ IF(ret_value.GT.0)THEN
+ PRINT*,"ERROR: Group iteration function didn't return zero correctly!"
+ CALL verify("H5Literate_f", error, -1, total_error)
+ ENDIF
+
+ ! Test all objects in group, when callback always returns 1
+ ! This also tests the "restarting" ability, because the index changes
+
+ info%command = 2
+ idx = 0
+ i = 0
+ f1 = C_FUNLOC(liter_cb)
+ f2 = C_LOC(info)
+ DO
+ CALL H5Literate_f(file, H5_INDEX_NAME_F, H5_ITER_INC_F, idx, f1, f2, ret_value, error)
+ IF(error.LT.0) EXIT
+ ! Verify return value from iterator gets propagated correctly
+ CALL VERIFY("H5Literate", ret_value, 2, total_error)
+ ! Increment the number of times "2" is returned
+ i = i + 1
+ ! Verify that the index is the correct value
+ CALL VERIFY("H5Literate", INT(idx), INT(i), total_error)
+ IF(idx .GT.ndatasets+2)THEN
+ PRINT*,"ERROR: Group iteration function walked too far!"
+ ENDIF
+
+ ! Verify the correct name is retrieved
+ DO j = 1, 10
+ ichr10(j:j) = info%name(j)(1:1)
+ ENDDO
+ CALL verifystring("H5Literate_f", ichr10, lnames(INT(idx)), total_error)
+ IF(i.EQ.52)EXIT ! prints out error message otherwise (for gcc/gfortran/g95) not intel (why) -FIXME- scot
+ END DO
+
+ ! put check if did not walk far enough -scot FIXME
+
+ IF(i .NE. (NDATASETS + 2)) THEN
+ CALL VERIFY("H5Literate_f", i, INT(NDATASETS + 2), total_error)
+ PRINT*,"ERROR: Group iteration function didn't perform multiple iterations correctly"
+ ENDIF
+
+ ! Test all objects in group, when callback changes return value
+ ! This also tests the "restarting" ability, because the index changes
+
+ info%command = 3
+ idx = 0
+ i = 0
+
+ f1 = C_FUNLOC(liter_cb)
+ f2 = C_LOC(info)
+ DO
+
+ CALL H5Literate_f(file, H5_INDEX_NAME_F, H5_ITER_INC_F, idx, f1, f2, ret_value, error)
+ IF(error.LT.0) EXIT
+ CALL VERIFY("H5Literate_f", ret_value, 1, total_error)
+
+ ! Increment the number of times "1" is returned
+ i = i + 1
+
+ ! Verify that the index is the correct value
+ CALL VERIFY("H5Literate_f", INT(idx), INT(i+10), total_error)
+
+ IF(idx .GT.ndatasets+2)THEN
+ PRINT*,"Group iteration function walked too far!"
+ ENDIF
+
+ DO j = 1, 10
+ ichr10(j:j) = info%name(j)(1:1)
+ ENDDO
+ ! Verify that the correct name is retrieved
+ CALL verifystring("H5Literate_f", ichr10, lnames(INT(idx)), total_error)
+ IF(i.EQ.42)EXIT ! prints out error message otherwise (for gcc/gfortran/g95) not intel (why) -FIX- scot
+ ENDDO
+
+ IF(i .NE. 42 .OR. idx .NE. 52)THEN
+ PRINT*,"ERROR: Group iteration function didn't perform multiple iterations correctly!"
+ CALL check("H5Literate_f",-1,total_error)
+ ENDIF
+
+ CALL H5Fclose_f(file, error)
+ CALL check("H5Fclose_f", error, total_error)
+
+END SUBROUTINE test_iter_group
diff --git a/fortran/test/tH5O.f90 b/fortran/test/tH5O.f90
index 253a42a..d871e59 100644
--- a/fortran/test/tH5O.f90
+++ b/fortran/test/tH5O.f90
@@ -1,3 +1,12 @@
+!****h* root/fortran/test/tH5O.f90
+!
+! NAME
+! tH5O.f90
+!
+! FUNCTION
+! Basic testing of Fortran H5O APIs.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,6 +22,11 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! CONTAINS SUBROUTINES
+! test_h5o, test_h5o_link, test_h5o_plist
+!
+!*****
+
SUBROUTINE test_h5o(cleanup, total_error)
USE HDF5 ! This module contains all necessary modules
diff --git a/fortran/test/tH5P.f90 b/fortran/test/tH5P.f90
index 6a49f72..3faaac2 100644
--- a/fortran/test/tH5P.f90
+++ b/fortran/test/tH5P.f90
@@ -1,3 +1,12 @@
+!****h* root/fortran/test/tH5P.f90
+!
+! NAME
+! tH5P.f90
+!
+! FUNCTION
+! Basic testing of Fortran H5P APIs.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,6 +22,11 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! CONTAINS SUBROUTINES
+! external_test, multi_file_test
+!
+!*****
+
SUBROUTINE external_test(cleanup, total_error)
! This subroutine tests following functionalities:
@@ -231,7 +245,8 @@
!
CALL h5pget_cache_f(fapl, mdc_nelmts, rdcc_nelmts, rdcc_nbytes, &
rdcc_w0, error)
- CALL check("h5pget_cache_f", error, total_error)
+ CALL check("h5pget_cache_f", error, total_error)
+
! Set cache to some number
!
@@ -239,7 +254,6 @@
CALL h5pset_cache_f(fapl, mdc_nelmts, rdcc_nelmts, rdcc_nbytes, &
rdcc_w0, error)
CALL check("h5pset_cache_f", error, total_error)
-
CALL h5fcreate_f(fix_filename, H5F_ACC_TRUNC_F, file_id, error, access_prp = fapl)
CALL check("h5fcreate_f", error, total_error)
if(error .ne. 0) then
@@ -249,7 +263,6 @@
return
endif
-
!
! Create the dataspace.
!
@@ -377,7 +390,7 @@
CALL check("h5pclose_f", error, total_error)
IF(cleanup) CALL h5_cleanup_f(filename, H5P_DEFAULT_F, error)
CALL check("h5_cleanup_f", error, total_error)
-
+
IF(cleanup) CALL h5_cleanup_f(filename//'.h5-b', H5P_DEFAULT_F, error)
CALL check("h5_cleanup_f", error, total_error)
IF(cleanup) CALL h5_cleanup_f(filename//'.h5-g', H5P_DEFAULT_F, error)
@@ -390,7 +403,7 @@
CALL check("h5_cleanup_f", error, total_error)
IF(cleanup) CALL h5_cleanup_f(filename//'.h5-s', H5P_DEFAULT_F, error)
CALL check("h5_cleanup_f", error, total_error)
-
+
RETURN
END SUBROUTINE multi_file_test
@@ -412,14 +425,14 @@
! April 16, 2009
!-------------------------------------------------------------------------
!
-SUBROUTINE test_chunk_cache(cleanup, total_error)
-
- USE HDF5 ! This module contains all necessary modules
+SUBROUTINE test_chunk_cache(cleanup, total_error)
+ USE HDF5 ! This module contains all necessary modules
+
IMPLICIT NONE
LOGICAL, INTENT(IN) :: cleanup
INTEGER, INTENT(OUT) :: total_error
-
+
CHARACTER(LEN=14), PARAMETER :: filename="chunk_cache"
CHARACTER(LEN=80) :: fix_filename
INTEGER(hid_t) :: fid = -1 ! /* File ID */
@@ -457,7 +470,7 @@ SUBROUTINE test_chunk_cache(cleanup, total_error)
! Verify that H5Pget_chunk_cache(dapl) returns the same values as are in
! the default fapl.
- !
+ !
CALL H5Pget_cache_f(fapl_def, mdc_nelmts, nslots_1, nbytes_1, w0_1, error)
CALL check("H5Pget_cache_f", error, total_error)
CALL H5Pget_chunk_cache_f(dapl1, nslots_4, nbytes_4, w0_4, error)
@@ -514,7 +527,7 @@ SUBROUTINE test_chunk_cache(cleanup, total_error)
! /* Create dataset with default dapl */
CALL H5Dcreate_f(fid, "dset", H5T_NATIVE_INTEGER, sid, dsid, error, dcpl, H5P_DEFAULT_F, dapl1)
CALL check("H5Pcreate_f", error, total_error)
-
+
! /* Retrieve dapl from dataset, verify cache values are the same as on fapl_local */
CALL H5Dget_access_plist_f(dsid, dapl2, error)
CALL check("H5Dget_access_plist_f", error, total_error)
@@ -526,7 +539,7 @@ SUBROUTINE test_chunk_cache(cleanup, total_error)
CALL VERIFYlogical("H5Pget_chunk_cache_f", .TRUE., .FALSE., total_error)
ENDIF
CALL H5Pclose_f(dapl2,error); CALL check("H5Pclose_f", error, total_error)
-
+
! Set new values on dapl1. nbytes will be set to default, so the file
! property will override this setting
@@ -601,7 +614,7 @@ SUBROUTINE test_chunk_cache(cleanup, total_error)
CALL check("H5Pset_cache_f", error, total_error)
! Close and reopen file with new fapl_local
-
+
CALL H5Dclose_f(dsid, error); CALL check("H5Dclose_f", error, total_error)
CALL H5Fclose_f(fid,error); CALL check("h5fclose_f", error, total_error)
@@ -611,12 +624,12 @@ SUBROUTINE test_chunk_cache(cleanup, total_error)
! Verify that dapl2 retrieved earlier (using values from the old fapl)
! sets its values in the new file (test use of H5Dopen2 with a dapl)
!
-
+
CALL h5dopen_f (fid, "dset", dsid, error, dapl2)
CALL check("h5dopen_f", error, total_error)
-
+
CALL H5Pclose_f(dapl2,error); CALL check("H5Pclose_f", error, total_error) ! Close dapl2, to avoid id leak
-
+
CALL H5Dget_access_plist_f(dsid, dapl2, error)
CALL check("H5Dget_access_plist_f", error, total_error)
CALL H5Pget_chunk_cache_f(dapl2, nslots_4, nbytes_4, w0_4, error)
@@ -654,11 +667,11 @@ SUBROUTINE test_chunk_cache(cleanup, total_error)
CALL H5Dclose_f(dsid, error); CALL check("H5Dclose_f", error, total_error)
CALL H5Sclose_f(sid,error); CALL check("H5Sclose_f", error, total_error)
- CALL H5Pclose_f(fapl_local,error); CALL check("H5Pclose_f", error, total_error)
- CALL H5Pclose_f(fapl_def,error); CALL check("H5Pclose_f", error, total_error)
- CALL H5Pclose_f(dapl1,error); CALL check("H5Pclose_f", error, total_error)
- CALL H5Pclose_f(dapl2,error); CALL check("H5Pclose_f", error, total_error)
- CALL H5Pclose_f(dcpl,error); CALL check("H5Pclose_f", error, total_error)
+ CALL H5Pclose_f(fapl_local,error); CALL check("H5Pclose_f", error, total_error)
+ CALL H5Pclose_f(fapl_def,error); CALL check("H5Pclose_f", error, total_error)
+ CALL H5Pclose_f(dapl1,error); CALL check("H5Pclose_f", error, total_error)
+ CALL H5Pclose_f(dapl2,error); CALL check("H5Pclose_f", error, total_error)
+ CALL H5Pclose_f(dcpl,error); CALL check("H5Pclose_f", error, total_error)
CALL H5Fclose_f(fid,error); CALL check("H5Fclose_f", error, total_error)
IF(cleanup) CALL h5_cleanup_f(filename, H5P_DEFAULT_F, error)
diff --git a/fortran/test/tH5P_F03.f90 b/fortran/test/tH5P_F03.f90
new file mode 100644
index 0000000..c910869
--- /dev/null
+++ b/fortran/test/tH5P_F03.f90
@@ -0,0 +1,364 @@
+!****h* root/fortran/test/tH5P_F03.f90
+!
+! NAME
+! tH5P_F03.f90
+!
+! FUNCTION
+! Test FORTRAN HDF5 H5P APIs which are dependent on FORTRAN 2003
+! features.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! USES
+! test_genprop_cls_cb1_mod
+!
+! CONTAINS SUBROUTINES
+! test_create, test_genprop_class_callback
+!
+!*****
+
+! *****************************************
+! *** H 5 P T E S T S
+! *****************************************
+
+MODULE test_genprop_cls_cb1_mod
+
+ ! Callback subroutine for test_genprop_class_callback
+ ! and the function H5Pcreate_class_f.
+
+ USE HDF5
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+
+ TYPE, bind(C) :: cop_cb_struct_ ! /* Struct for iterations */
+ INTEGER :: count
+ INTEGER(HID_T) :: id
+ END TYPE cop_cb_struct_
+
+CONTAINS
+
+ INTEGER FUNCTION test_genprop_cls_cb1_f(list_id, create_data ) bind(C)
+
+ USE HDF5
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+
+ INTEGER(HID_T), INTENT(IN), VALUE :: list_id
+
+ TYPE(cop_cb_struct_) :: create_data
+
+ create_data%count = create_data%count + 1
+ create_data%id = list_id
+
+ test_genprop_cls_cb1_f = 0
+
+ END FUNCTION test_genprop_cls_cb1_f
+
+END MODULE test_genprop_cls_cb1_mod
+
+!/*-------------------------------------------------------------------------
+! * Function: test_create
+! *
+! * Purpose: Tests H5Pset_fill_value_f and H5Pget_fill_value_f
+! *
+! * Return: Success: 0
+! *
+! * Failure: number of errors
+! *
+! * Programmer: M. Scot Breitenfeld
+! * June 24, 2008
+! *
+! * Modifications:
+! *
+! *-------------------------------------------------------------------------
+! */
+
+SUBROUTINE test_create(total_error)
+
+ USE HDF5
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+
+ INTEGER, INTENT(INOUT) :: total_error
+ INTEGER(HID_T) :: fapl
+
+ INTEGER(hid_t) :: file=-1, space=-1, dcpl=-1, comp_type_id=-1
+ INTEGER(hid_t) :: dset1=-1, dset2=-1, dset3=-1, dset4=-1, dset5=-1, &
+ dset6=-1, dset7=-1, dset8=-1, dset9=-1
+ INTEGER(hsize_t), DIMENSION(1:5), PARAMETER :: cur_size = (/2, 8, 8, 4, 2/)
+ INTEGER(hsize_t), DIMENSION(1:5), PARAMETER :: ch_size= (/1, 1, 1, 4, 1/)
+ CHARACTER(LEN=14) :: filename ='test_create.h5'
+
+ ! /* compound datatype operations */
+ TYPE, BIND(C) :: comp_datatype
+ REAL :: a
+ INTEGER :: x
+ DOUBLE PRECISION :: y
+ CHARACTER(LEN=1) :: z
+ END TYPE comp_datatype
+
+ TYPE(comp_datatype), TARGET :: rd_c, fill_ctype
+
+ INTEGER(SIZE_T) :: type_sizei ! Size of the integer datatype
+ INTEGER(SIZE_T) :: type_sizer ! Size of the real datatype
+ INTEGER(SIZE_T) :: type_sized ! Size of the double datatype
+ INTEGER(SIZE_T) :: type_sizec ! Size of the double datatype
+ INTEGER(SIZE_T) :: sizeof_compound ! total size of compound
+ INTEGER :: error
+ INTEGER(SIZE_T) :: h5off
+ TYPE(C_PTR) :: f_ptr
+
+ !/*
+ ! * Create a file.
+ ! */
+ CALL h5fcreate_f(filename,H5F_ACC_TRUNC_F,file,error)
+ CALL check("h5fcreate_f", error, total_error)
+
+ CALL h5screate_simple_f(5, cur_size, space, error, cur_size)
+ CALL check("h5screate_simple_f", error, total_error)
+
+ CALL H5Pcreate_f(H5P_DATASET_CREATE_F, dcpl, error)
+ CALL check("H5Pcreate_f", error, total_error)
+
+ CALL h5pset_chunk_f(dcpl, 5, ch_size, error)
+ CALL check("h5pset_chunk_f",error, total_error)
+
+ ! /* Create a compound datatype */
+
+ CALL h5tcreate_f(H5T_COMPOUND_F, INT(SIZEOF(fill_ctype),size_t), comp_type_id, error)
+ CALL check("h5tcreate_f", error, total_error)
+ h5off = H5OFFSETOF(C_LOC(fill_ctype), C_LOC(fill_ctype%a))
+ CALL h5tinsert_f(comp_type_id, "a", h5off , H5T_NATIVE_REAL, error)
+ CALL check("h5tinsert_f", error, total_error)
+ CALL h5tinsert_f(comp_type_id, "x", H5OFFSETOF(C_LOC(fill_ctype), C_LOC(fill_ctype%x)), H5T_NATIVE_INTEGER, error)
+ CALL check("h5tinsert_f", error, total_error)
+ CALL h5tinsert_f(comp_type_id, "y", H5OFFSETOF(C_LOC(fill_ctype), C_LOC(fill_ctype%y)), H5T_NATIVE_DOUBLE, error)
+ CALL check("h5tinsert_f", error, total_error)
+ CALL h5tinsert_f(comp_type_id, "z", &
+ H5OFFSETOF(C_LOC(fill_ctype), C_LOC(fill_ctype%z)), H5T_NATIVE_CHARACTER, error)
+ CALL check("h5tinsert_f", error, total_error)
+
+
+ CALL H5Pset_alloc_time_f(dcpl, H5D_ALLOC_TIME_LATE_F,error)
+ CALL check("H5Pset_alloc_time_f",error, total_error)
+
+ CALL H5Pset_fill_time_f(dcpl, H5D_FILL_TIME_ALLOC_F, error)
+ CALL check("H5Pset_fill_time_f",error, total_error)
+
+ ! /* Compound datatype test */
+
+ f_ptr = C_LOC(fill_ctype)
+
+ CALL H5Pget_fill_value_f(dcpl, comp_type_id, f_ptr, error)
+ CALL check("H5Pget_fill_value_f",error, total_error)
+
+ fill_ctype%y = 4444.
+ fill_ctype%z = 'S'
+ fill_ctype%a = 5555.
+ fill_ctype%x = 55
+
+ f_ptr = C_LOC(fill_ctype)
+
+ CALL H5Pset_fill_value_f(dcpl, comp_type_id, f_ptr, error)
+ CALL check("H5Pget_fill_value_f",error, total_error)
+
+ CALL h5dcreate_f(file,"dset9", comp_type_id, space, dset9, error, dcpl_id=dcpl)
+ CALL check("h5dcreate_f", error, total_error)
+
+ CALL h5dclose_f(dset9, error)
+ CALL check("h5dclose_f", error, total_error)
+
+ CALL h5fclose_f(file,error)
+ CALL check("h5fclose_f", error, total_error)
+
+ ! /* Open the file and get the dataset fill value from each dataset */
+ CALL H5Pcreate_f(H5P_FILE_ACCESS_F, fapl, error)
+ CALL check("H5Pcreate_f",error, total_error)
+
+ CALL H5Pset_libver_bounds_f(fapl, H5F_LIBVER_LATEST_F, H5F_LIBVER_LATEST_F, error)
+ CALL check("H5Pset_libver_bounds_f",error, total_error)
+
+ CALL h5fopen_f (FILENAME, H5F_ACC_RDONLY_F, file, error, fapl)
+ CALL check("h5fopen_f", error, total_error)
+
+ !/* Compound datatype test */
+ CALL h5dopen_f(file, "dset9", dset9, error)
+ CALL check("h5dopen_f", error, total_error)
+
+ CALL H5Dget_create_plist_f(dset9, dcpl, error)
+ CALL check("H5Dget_create_plist_f", error, total_error)
+
+ f_ptr = C_LOC(rd_c)
+
+ CALL H5Pget_fill_value_f(dcpl, comp_type_id, f_ptr, error)
+ CALL check("H5Pget_fill_value_f", error, total_error)
+
+ IF( rd_c%a .NE. fill_ctype%a .OR. &
+ rd_c%y .NE. fill_ctype%y .OR. &
+ rd_c%x .NE. fill_ctype%x .OR. &
+ rd_c%z .NE. fill_ctype%z )THEN
+
+ PRINT*,"***ERROR: Returned wrong fill value"
+ total_error = total_error + 1
+
+ ENDIF
+
+ CALL h5dclose_f(dset9, error)
+ CALL check("h5dclose_f", error, total_error)
+
+ CALL H5Pclose_f(dcpl, error)
+ CALL check("H5Pclose_f", error, total_error)
+
+ CALL h5fclose_f(file,error)
+ CALL check("h5fclose_f", error, total_error)
+
+END SUBROUTINE test_create
+
+
+SUBROUTINE test_genprop_class_callback(total_error)
+
+ !/****************************************************************
+ !**
+ !** test_genprop_class_callback(): Test basic generic property list code.
+ !** Tests callbacks for property lists in a generic class.
+ !**
+ !** FORTRAN TESTS:
+ !** Tests function H5Pcreate_class_f with callback.
+ !**
+ !****************************************************************/
+
+ USE HDF5
+ USE ISO_C_BINDING
+ USE test_genprop_cls_cb1_mod
+ IMPLICIT NONE
+
+ INTEGER, INTENT(INOUT) :: total_error
+
+ INTEGER(hid_t) :: cid1 !/* Generic Property class ID */
+ INTEGER(hid_t) :: lid1 !/* Generic Property list ID */
+ INTEGER(hid_t) :: lid2 !/* 2nd Generic Property list ID */
+ INTEGER(size_t) :: nprops !/* Number of properties in class */
+
+ TYPE cb_struct
+ INTEGER :: count
+ INTEGER(hid_t) :: id
+ END TYPE cb_struct
+
+ TYPE(cb_struct), TARGET :: crt_cb_struct, cls_cb_struct
+
+ CHARACTER(LEN=7) :: CLASS1_NAME = "Class 1"
+ TYPE(C_FUNPTR) :: f1, f3, f5
+ TYPE(C_PTR) :: f2, f4, f6
+
+ CHARACTER(LEN=10) :: PROP1_NAME = "Property 1"
+ INTEGER(SIZE_T) :: PROP1_SIZE = 10
+ CHARACTER(LEN=10) :: PROP2_NAME = "Property 2"
+ INTEGER(SIZE_T) :: PROP2_SIZE = 10
+ CHARACTER(LEN=10) :: PROP3_NAME = "Property 3"
+ INTEGER(SIZE_T) :: PROP3_SIZE = 10
+ CHARACTER(LEN=10) :: PROP4_NAME = "Property 4"
+ INTEGER(SIZE_T) :: PROP4_SIZE = 10
+ INTEGER :: PROP1_DEF_VALUE = 10
+ INTEGER :: PROP2_DEF_VALUE = 10
+ INTEGER :: PROP3_DEF_VALUE = 10
+ INTEGER :: PROP4_DEF_VALUE = 10
+
+ INTEGER :: error ! /* Generic RETURN value */
+
+ f1 = C_FUNLOC(test_genprop_cls_cb1_f)
+ f5 = C_FUNLOC(test_genprop_cls_cb1_f)
+
+ f2 = C_LOC(crt_cb_struct)
+ f6 = C_LOC(cls_cb_struct)
+
+ !/* Create a new generic class, derived from the root of the class hierarchy */
+ CALL H5Pcreate_class_f(H5P_ROOT_F,CLASS1_NAME, cid1, error, f1, f2, c_null_funptr, c_null_ptr, f5, f6)
+ CALL check("H5Pcreate_class_f", error, total_error)
+
+ !/* Insert first property into class (with no callbacks) */
+ CALL H5Pregister_f(cid1, PROP1_NAME, PROP1_SIZE, PROP1_DEF_VALUE, error)
+ CALL check("H5Pregister_f", error, total_error)
+ !/* Insert second property into class (with no callbacks) */
+ CALL H5Pregister_f(cid1, PROP2_NAME, PROP2_SIZE, PROP2_DEF_VALUE, error)
+ CALL check("H5Pregister_f", error, total_error)
+ !/* Insert third property into class (with no callbacks) */
+ CALL H5Pregister_f(cid1, PROP3_NAME, PROP3_SIZE, PROP3_DEF_VALUE, error)
+ CALL check("H5Pregister_f", error, total_error)
+
+ !/* Insert fourth property into class (with no callbacks) */
+ CALL H5Pregister_f(cid1, PROP4_NAME, PROP4_SIZE, PROP4_DEF_VALUE, error)
+ CALL check("H5Pregister_f", error, total_error)
+
+ ! /* Check the number of properties in class */
+ CALL H5Pget_nprops_f(cid1, nprops, error)
+ CALL check("H5Pget_nprops_f", error, total_error)
+ CALL VERIFY("H5Pget_nprops_f", INT(nprops), 4, total_error)
+
+ ! /* Initialize class callback structs */
+
+ crt_cb_struct%count = 0
+ crt_cb_struct%id = -1
+ cls_cb_struct%count = 0
+ cls_cb_struct%id = -1
+
+ !/* Create a property list from the class */
+ CALL H5Pcreate_f(cid1, lid1, error)
+ CALL check("H5Pcreate", error, total_error)
+
+ !/* Verify that the creation callback occurred */
+ CALL VERIFY("H5Pcreate", INT(crt_cb_struct%count), 1, total_error)
+ CALL VERIFY("H5Pcreate", INT(crt_cb_struct%id), INT(lid1), total_error)
+
+ ! /* Check the number of properties in list */
+ CALL H5Pget_nprops_f(lid1,nprops, error)
+ CALL check("H5Pget_nprops_f", error, total_error)
+ CALL VERIFY("H5Pget_nprops_f", INT(nprops), 4, total_error)
+
+ ! /* Create another property list from the class */
+ CALL H5Pcreate_f(cid1, lid2, error)
+ CALL check("H5Pcreate", error, total_error)
+
+ ! /* Verify that the creation callback occurred */
+ CALL VERIFY("H5Pcreate", INT(crt_cb_struct%count), 2, total_error)
+ CALL VERIFY("H5Pcreate", INT(crt_cb_struct%id), INT(lid2), total_error)
+
+ ! /* Check the number of properties in list */
+ CALL H5Pget_nprops_f(lid2,nprops, error)
+ CALL check("H5Pget_nprops_f", error, total_error)
+ CALL VERIFY("H5Pget_nprops_f", INT(nprops), 4, total_error)
+
+ ! /* Close first list */
+ CALL H5Pclose_f(lid1, error);
+ CALL check("h5pclose", error, total_error)
+
+ !/* Verify that the close callback occurred */
+ CALL VERIFY("H5Pcreate", INT(cls_cb_struct%count), 1, total_error)
+ CALL VERIFY("H5Pcreate", INT(cls_cb_struct%id), INT(lid1), total_error)
+
+ !/* Close second list */
+ CALL H5Pclose_f(lid2, error);
+ CALL check("h5pclose", error, total_error)
+
+ !/* Verify that the close callback occurred */
+ CALL VERIFY("H5Pcreate", INT(cls_cb_struct%count), 2, total_error)
+ CALL VERIFY("H5Pcreate", INT(cls_cb_struct%id), INT(lid2), total_error)
+
+ !/* Close class */
+ CALL H5Pclose_class_f(cid1, error)
+ CALL check("H5Pclose_class_f", error, total_error)
+
+END SUBROUTINE test_genprop_class_callback
diff --git a/fortran/test/tH5R.f90 b/fortran/test/tH5R.f90
index 0289465..ac105fc 100644
--- a/fortran/test/tH5R.f90
+++ b/fortran/test/tH5R.f90
@@ -1,3 +1,12 @@
+!****h* root/fortran/test/tH5R.f90
+!
+! NAME
+! tH5R.f90
+!
+! FUNCTION
+! Basic testing of Fortran H5R, Reference Interface, APIs.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,12 +22,14 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! NOTES
+! Tests h5rcreate_f, h5rdereference_f, h5rget_name_f
+! and H5Rget_object_type functions
!
+! CONTAINS SUBROUTINES
+! refobjtest, refregtest
!
-! Testing Reference Interface functionality.
-!
-! The following subroutine tests h5rcreate_f, h5rdereference_f, h5rget_name_f
-! and H5Rget_object_type functions
+!*****
!
SUBROUTINE refobjtest(cleanup, total_error)
USE HDF5 ! This module contains all necessary modules
@@ -230,6 +241,8 @@ END SUBROUTINE refobjtest
!
SUBROUTINE refregtest(cleanup, total_error)
USE HDF5 ! This module contains all necessary modules
+! use iso_c_binding ! NOTE: if this is uncommented, then need to move subroutine into another file.
+
IMPLICIT NONE
LOGICAL, INTENT(IN) :: cleanup
INTEGER, INTENT(OUT) :: total_error
@@ -249,23 +262,30 @@ SUBROUTINE refregtest(cleanup, total_error)
INTEGER(HID_T) :: dsetv_id ! Dataset identifier
INTEGER(HID_T) :: dsetr_id ! Dataset identifier
INTEGER :: error
- TYPE(hdset_reg_ref_t_f) , DIMENSION(2) :: ref ! Buffers to store references
- TYPE(hdset_reg_ref_t_f) , DIMENSION(2) :: ref_out !
- INTEGER(HSIZE_T), DIMENSION(2) :: ref_dim
- INTEGER(HSIZE_T), DIMENSION(2) :: data_dims
- INTEGER(HSIZE_T), DIMENSION(2) :: dims = (/2,9/) ! Datasets dimensions
- INTEGER(HSIZE_T), DIMENSION(1) :: dimsr = (/2/) !
- INTEGER(HSIZE_T), DIMENSION(2) :: start
- INTEGER(HSIZE_T), DIMENSION(2) :: count
+! TYPE(hdset_reg_ref_t_f) , DIMENSION(1:2), TARGET :: ref
+ TYPE(hdset_reg_ref_t_f) , DIMENSION(1:2) :: ref
+ TYPE(hdset_reg_ref_t_f) , DIMENSION(1:2) :: ref_out
+ INTEGER(HSIZE_T), DIMENSION(2) :: ref_dim = (/0,0/)
+ INTEGER(HSIZE_T), DIMENSION(2) :: data_dims ! = (/0,0/)
+ INTEGER(HSIZE_T), DIMENSION(2) :: dims = (/2,9/) ! Datasets dimensions
+ INTEGER(HSIZE_T), DIMENSION(1) :: dimsr = (/2/) !
+ INTEGER(HSIZE_T), DIMENSION(2) :: start ! = (/0,0/)
+ INTEGER(HSIZE_T), DIMENSION(2) :: count ! = (/0,0/)
+
INTEGER :: rankr = 1
INTEGER :: rank = 2
- INTEGER , DIMENSION(2,9) :: DATA
+! INTEGER , DIMENSION(2,9), TARGET :: DATA
+ INTEGER , DIMENSION(2,9) :: DATA
INTEGER , DIMENSION(2,9) :: data_out = 0
INTEGER(HSIZE_T) , DIMENSION(2,3) :: coord
INTEGER(SIZE_T) ::num_points = 3 ! Number of selected points
+! type(c_ptr) :: f_ptr
coord = RESHAPE((/1,1,2,7,1,9/), (/2,3/)) ! Coordinates of selected points
DATA = RESHAPE ((/1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6/), (/2,9/))
+ ref_out(1)%ref = 0
+ ref_out(2)%ref = 0
+
!
! Initialize FORTRAN predefined datatypes.
!
@@ -305,11 +325,16 @@ SUBROUTINE refregtest(cleanup, total_error)
CALL check("h5dcreate_f", error, total_error)
data_dims(1) = 2
data_dims(2) = 9
+
+! f_ptr = c_loc(data)
+! CALL h5dwrite_f(dsetv_id, H5T_NATIVE_INTEGER, f_ptr, error)
+
CALL h5dwrite_f(dsetv_id, H5T_NATIVE_INTEGER, DATA, data_dims, error)
CALL check("h5dwrite_f", error, total_error)
CALL h5dclose_f(dsetv_id, error)
CALL check("h5dclose_f", error, total_error)
+
!
! Dataset with references
!
@@ -326,8 +351,12 @@ SUBROUTINE refregtest(cleanup, total_error)
CALL h5sselect_hyperslab_f(space_id, H5S_SELECT_SET_F, &
start, count, error)
CALL check("h5sselect_hyperslab_f", error, total_error)
+ ref(1)%ref(:) = 0
+! f_ptr = C_LOC(ref(1))
+! CALL h5rcreate_f(file_id, dsetnamev, 1, space_id, f_ptr, error)
CALL h5rcreate_f(file_id, dsetnamev, space_id, ref(1), error)
CALL check("h5rcreate_f", error, total_error)
+
!
! Create a reference to elements selection.
!
@@ -336,6 +365,7 @@ SUBROUTINE refregtest(cleanup, total_error)
CALL h5sselect_elements_f(space_id, H5S_SELECT_SET_F, rank, num_points,&
coord, error)
CALL check("h5sselect_elements_f", error, total_error)
+ ref(2)%ref(:) = 0
CALL h5rcreate_f(file_id, dsetnamev, space_id, ref(2), error)
CALL check("h5rcreate_f", error, total_error)
!
@@ -355,6 +385,7 @@ SUBROUTINE refregtest(cleanup, total_error)
CALL check("h5dclose_f", error, total_error)
CALL h5fclose_f(file_id, error)
CALL check("h5fclose_f", error, total_error)
+
!
! Reopen the file to test selections.
!
@@ -369,7 +400,6 @@ SUBROUTINE refregtest(cleanup, total_error)
CALL h5dread_f(dsetr_id, H5T_STD_REF_DSETREG, ref_out, ref_dim, error)
CALL check("h5dread_f", error, total_error)
-
! Get name of the dataset the first region reference points to using H5Rget_name_f
CALL H5Rget_name_f(dsetr_id, ref_out(1), buf, error, buf_size )
CALL check("H5Rget_name_f", error, total_error)
@@ -390,7 +420,6 @@ SUBROUTINE refregtest(cleanup, total_error)
CALL check("H5Rget_name_f", error, total_error)
CALL VERIFY("H5Rget_name_f", INT(buf_size),7,total_error)
CALL VerifyString("H5Rget_name_f", TRIM(buf_small), "/MAT", total_error)
-
!
! Dereference the first reference.
!
@@ -402,9 +431,7 @@ SUBROUTINE refregtest(cleanup, total_error)
! Get name of the dataset the second region reference points to using H5Rget_name_f
CALL H5Rget_name_f(dsetr_id, ref_out(2), buf, error) ! no optional size
CALL check("H5Rget_name_f", error, total_error)
- CALL VerifyString("H5Rget_name_f", buf, "/MATRIX", total_error)
-
-
+ CALL VerifyString("H5Rget_name_f", TRIM(buf), "/MATRIX", total_error)
!
! Read selected data from the dataset.
!
diff --git a/fortran/test/tH5S.f90 b/fortran/test/tH5S.f90
index b56d3a7..e3a44ad 100644
--- a/fortran/test/tH5S.f90
+++ b/fortran/test/tH5S.f90
@@ -1,3 +1,12 @@
+!****h* root/fortran/test/tH5S.f90
+!
+! NAME
+! tH5S.f90
+!
+! FUNCTION
+! Basic testing of Fortran H5S, Dataspace Interface, APIs.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,17 +22,18 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
-!
-!
-! Testing Dataspace Interface functionality.
-!
-!
-! The following subroutine tests the following functionalities:
+! NOTES
+! Tests the following functionalities:
! h5screate_f, h5scopy_f, h5screate_simple_f, h5sis_simple_f,
! h5sget_simple_extent_dims_f,h5sget_simple_extent_ndims_f
! h5sget_simple_extent_npoints_f, h5sget_simple_extent_type_f,
! h5sextent_copy_f, h5sset_extent_simple_f, h5sset_extent_none_f
!
+! CONTAINS SUBROUTINES
+! dataspace_basic_test
+!
+!*****
+
SUBROUTINE dataspace_basic_test(cleanup, total_error)
USE HDF5 ! This module contains all necessary modules
@@ -162,7 +172,7 @@
CALL check("h5sget_simple_extent_type_f", error, total_error)
IF (classtype .NE. 1) write(*,*)"class type not H5S_SIMPLE_f"
- !
+ !
!set the copied space to none before extend the dimensions.
!
CALL h5sset_extent_none_f(space2_id, error)
diff --git a/fortran/test/tH5Sselect.f90 b/fortran/test/tH5Sselect.f90
index f7fd8af..1cbabe8 100644
--- a/fortran/test/tH5Sselect.f90
+++ b/fortran/test/tH5Sselect.f90
@@ -1,3 +1,12 @@
+!****h* root/fortran/test/tH5Sselect.f90
+!
+! NAME
+! tH5Sselect.f90
+!
+! FUNCTION
+! Basic testing of Fortran H5S, Selection-related Dataspace Interface, APIs.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,18 +22,20 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
-!
-! Testing Selection-related Dataspace Interface functionality.
-!
-
-!
-! The following subroutines tests the following functionalities:
+! NOTES
+! Tests the following functionalities:
! h5sget_select_npoints_f, h5sselect_elements_f, h5sselect_all_f,
! h5sselect_none_f, h5sselect_valid_f, h5sselect_hyperslab_f,
! h5sget_select_bounds_f, h5sget_select_elem_pointlist_f,
! h5sget_select_elem_npoints_f, h5sget_select_hyper_blocklist_f,
-! h5sget_select_hyper_nblocks_f, h5sget_select_npoints_f
+! h5sget_select_hyper_nblocks_f, h5sget_select_npoints_f
+!
+! CONTAINS SUBROUTINES
+! test_select_hyperslab, test_select_element, test_basic_select,
+! test_select_point, test_select_combine, test_select_bounds
+!
!
+!*****
SUBROUTINE test_select_hyperslab(cleanup, total_error)
@@ -1021,13 +1032,13 @@
!****************************************************************/
SUBROUTINE test_select_point(cleanup, total_error)
- USE HDF5 ! This module contains all necessary modules
-
+ USE HDF5 ! This module contains all necessary modules
+
IMPLICIT NONE
LOGICAL, INTENT(IN) :: cleanup
INTEGER, INTENT(OUT) :: total_error
INTEGER(HID_T) :: xfer_plist
-
+
INTEGER, PARAMETER :: SPACE1_DIM1=3
INTEGER, PARAMETER :: SPACE1_DIM2=15
INTEGER, PARAMETER :: SPACE1_DIM3=13
@@ -1035,11 +1046,11 @@ SUBROUTINE test_select_point(cleanup, total_error)
INTEGER, PARAMETER :: SPACE2_DIM2=26
INTEGER, PARAMETER :: SPACE3_DIM1=15
INTEGER, PARAMETER :: SPACE3_DIM2=26
-
+
INTEGER, PARAMETER :: SPACE1_RANK=3
INTEGER, PARAMETER :: SPACE2_RANK=2
INTEGER, PARAMETER :: SPACE3_RANK=2
-
+
! /* Element selection information */
INTEGER, PARAMETER :: POINT1_NPOINTS=10
INTEGER(hid_t) ::fid1 ! /* HDF5 File IDs */
@@ -1048,7 +1059,7 @@ SUBROUTINE test_select_point(cleanup, total_error)
INTEGER(hsize_t), DIMENSION(1:3) :: dims1 = (/SPACE1_DIM1, SPACE1_DIM2, SPACE1_DIM3/)
INTEGER(hsize_t), DIMENSION(1:2) :: dims2 = (/SPACE2_DIM1, SPACE2_DIM2/)
INTEGER(hsize_t), DIMENSION(1:2) :: dims3 = (/SPACE3_DIM1, SPACE3_DIM2/)
-
+
INTEGER(hsize_t), DIMENSION(1:SPACE1_RANK,1:POINT1_NPOINTS) :: coord1 !/* Coordinates for point selection */
INTEGER(hsize_t), DIMENSION(1:SPACE1_RANK,1:POINT1_NPOINTS) :: temp_coord1 !/* Coordinates for point selection */
INTEGER(hsize_t), DIMENSION(1:SPACE2_RANK,1:POINT1_NPOINTS) :: coord2 !/* Coordinates for point selection */
@@ -1064,7 +1075,7 @@ SUBROUTINE test_select_point(cleanup, total_error)
! struct pnt_iter pi; /* Custom Pointer iterator struct */
INTEGER :: error !/* Generic return value */
CHARACTER(LEN=9) :: filename = 'h5s_hyper'
- CHARACTER(LEN=80) :: fix_filename
+ CHARACTER(LEN=80) :: fix_filename
CHARACTER(LEN=1), DIMENSION(1:SPACE2_DIM1,1:SPACE2_DIM2) :: wbuf, rbuf
CALL h5_fixname_f(filename, fix_filename, H5P_DEFAULT_F, error)
@@ -1090,11 +1101,11 @@ SUBROUTINE test_select_point(cleanup, total_error)
!!$ for(i=0, tbuf=wbuf; i<SPACE2_DIM1; i++)
!!$ for(j=0; j<SPACE2_DIM2; j++)
!!$ *tbuf++=(uint8_t)((i*SPACE2_DIM2)+j);
-
+
!/* Create file */
CALL h5fcreate_f(fix_filename, H5F_ACC_TRUNC_F, fid1, error)
CALL check("h5fcreate_f", error, total_error)
-
+
!/* Create dataspace for dataset */
CALL h5screate_simple_f(SPACE1_RANK, dims1, sid1, error)
CALL check("h5screate_simple_f", error, total_error)
@@ -1115,7 +1126,6 @@ SUBROUTINE test_select_point(cleanup, total_error)
coord1(1,9)=3; coord1(2,9)= 2; coord1(3,9)= 7;
coord1(1,10)=1; coord1(2,10)= 4; coord1(3,10)= 9
-
CALL h5sselect_elements_f(sid1, H5S_SELECT_SET_F, SPACE1_RANK, INT(POINT1_NPOINTS,size_t), coord1, error)
CALL check("h5sselect_elements_f", error, total_error)
@@ -1151,7 +1161,7 @@ SUBROUTINE test_select_point(cleanup, total_error)
CALL h5sselect_elements_f(sid1, H5S_SELECT_APPEND_F, SPACE1_RANK, INT(POINT1_NPOINTS,size_t), coord1, error)
CALL check("h5sselect_elements_f", error, total_error)
! /* Verify correct elements selected */
-
+
CALL h5sget_select_elem_pointlist_f(sid1, INT(POINT1_NPOINTS,hsize_t), INT(POINT1_NPOINTS,hsize_t),temp_coord1,error)
CALL check("h5sget_select_elem_pointlist_f", error, total_error)
@@ -1182,7 +1192,7 @@ SUBROUTINE test_select_point(cleanup, total_error)
!/* Verify correct elements selected */
-
+
CALL h5sget_select_elem_pointlist_f(sid2, INT(0,hsize_t), INT(POINT1_NPOINTS,hsize_t),temp_coord2,error)
CALL check("h5sget_select_elem_pointlist_f", error, total_error)
@@ -1333,7 +1343,6 @@ SUBROUTINE test_select_point(cleanup, total_error)
CALL h5fclose_f(fid1, error)
CALL check("h5fclose_f", error, total_error)
-
IF(cleanup) CALL h5_cleanup_f(filename, H5P_DEFAULT_F, error)
CALL check("h5_cleanup_f", error, total_error)
@@ -1349,8 +1358,8 @@ END SUBROUTINE test_select_point
!****************************************************************/
SUBROUTINE test_select_combine(cleanup, total_error)
- USE HDF5 ! This module contains all necessary modules
-
+ USE HDF5 ! This module contains all necessary modules
+
IMPLICIT NONE
LOGICAL, INTENT(IN) :: cleanup
INTEGER, INTENT(OUT) :: total_error
@@ -1358,7 +1367,7 @@ SUBROUTINE test_select_combine(cleanup, total_error)
INTEGER, PARAMETER :: SPACE7_RANK = 2
INTEGER, PARAMETER :: SPACE7_DIM1 = 10
INTEGER, PARAMETER :: SPACE7_DIM2 = 10
-
+
INTEGER(hid_t) :: base_id ! /* Base dataspace for test */
INTEGER(hid_t) :: all_id ! /* Dataspace for "all" selection */
INTEGER(hid_t) :: none_id ! /* Dataspace for "none" selection */
@@ -1378,7 +1387,7 @@ SUBROUTINE test_select_combine(cleanup, total_error)
CALL check("h5screate_simple_f", error, total_error)
! /* Copy base dataspace and set selection to "all" */
- CALL h5scopy_f(base_id, all_id, error)
+ CALL h5scopy_f(base_id, all_id, error)
CALL check("h5scopy_f", error, total_error)
CALL H5Sselect_all_f(all_id, error)
@@ -1389,7 +1398,7 @@ SUBROUTINE test_select_combine(cleanup, total_error)
CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT(H5S_SEL_ALL_F), total_error)
!/* Copy base dataspace and set selection to "none" */
- CALL h5scopy_f(base_id, none_id, error)
+ CALL h5scopy_f(base_id, none_id, error)
CALL check("h5scopy_f", error, total_error)
CALL H5Sselect_none_f(none_id, error)
@@ -1398,9 +1407,9 @@ SUBROUTINE test_select_combine(cleanup, total_error)
CALL H5Sget_select_type_f(none_id, sel_type, error)
CALL check("H5Sget_select_type_f", error, total_error)
CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT(H5S_SEL_NONE_F), total_error)
-
+
!/* Copy "all" selection & space */
- CALL H5Scopy_f(all_id, space1, error)
+ CALL H5Scopy_f(all_id, space1, error)
CALL check("h5scopy_f", error, total_error)
!/* 'OR' "all" selection with another hyperslab */
@@ -1409,7 +1418,7 @@ SUBROUTINE test_select_combine(cleanup, total_error)
icount(1:2) = 1
iblock(1:2) = (/5,4/)
CALL h5sselect_hyperslab_f(space1, H5S_SELECT_OR_F, start, &
- icount, error, stride, iblock)
+ icount, error, stride, iblock)
CALL check("h5sselect_hyperslab_f", error, total_error)
!/* Verify that it's still "all" selection */
@@ -1422,7 +1431,7 @@ SUBROUTINE test_select_combine(cleanup, total_error)
CALL check("h5sclose_f", error, total_error)
!/* Copy "all" selection & space */
- CALL H5Scopy_f(all_id, space1, error)
+ CALL H5Scopy_f(all_id, space1, error)
CALL check("h5scopy_f", error, total_error)
! /* 'AND' "all" selection with another hyperslab */
@@ -1431,7 +1440,7 @@ SUBROUTINE test_select_combine(cleanup, total_error)
icount(1:2) = 1
iblock(1:2) = (/5,4/)
CALL h5sselect_hyperslab_f(space1, H5S_SELECT_AND_F, start, &
- icount, error, stride, iblock)
+ icount, error, stride, iblock)
CALL check("h5sselect_hyperslab_f", error, total_error)
!/* Verify that the new selection is the same at the original block */
@@ -1443,7 +1452,7 @@ SUBROUTINE test_select_combine(cleanup, total_error)
CALL h5sget_select_hyper_nblocks_f(space1, nblocks, error)
CALL check("h5sget_select_hyper_nblocks_f", error, total_error)
CALL VERIFY("h5sget_select_hyper_nblocks_f", INT(nblocks), 1, total_error)
-
+
!/* Retrieve the block defined */
CALL h5sget_select_hyper_blocklist_f(space1, INT(0, hsize_t), INT(nblocks,hsize_t), blocks, error)
CALL check("h5sget_select_hyper_blocklist_f", error, total_error)
@@ -1460,7 +1469,7 @@ SUBROUTINE test_select_combine(cleanup, total_error)
CALL check("h5sclose_f", error, total_error)
!/* Copy "all" selection & space */
- CALL H5Scopy_f(all_id, space1, error)
+ CALL H5Scopy_f(all_id, space1, error)
CALL check("h5scopy_f", error, total_error)
! /* 'XOR' "all" selection with another hyperslab */
@@ -1470,7 +1479,7 @@ SUBROUTINE test_select_combine(cleanup, total_error)
iblock(1:2) = (/5,4/)
CALL h5sselect_hyperslab_f(space1, H5S_SELECT_XOR_F, start, &
- icount, error, stride, iblock)
+ icount, error, stride, iblock)
CALL check("h5sselect_hyperslab_f", error, total_error)
! /* Verify that the new selection is an inversion of the original block */
@@ -1491,7 +1500,7 @@ SUBROUTINE test_select_combine(cleanup, total_error)
! /* Verify that the correct block is defined */
- ! No guarantee is implied as the order in which blocks are listed.
+ ! No guarantee is implied as the order in which blocks are listed.
! So this will ONLY work for square domains iblock(1:2) = (/5,5/)
!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(1,1,1)), 1, total_error)
!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(2,1,1)), 5, total_error)
@@ -1512,7 +1521,7 @@ SUBROUTINE test_select_combine(cleanup, total_error)
CALL check("h5sclose_f", error, total_error)
! /* Copy "all" selection & space */
- CALL H5Scopy_f(all_id, space1, error)
+ CALL H5Scopy_f(all_id, space1, error)
CALL check("h5scopy_f", error, total_error)
! /* 'NOTB' "all" selection with another hyperslab */
@@ -1522,7 +1531,7 @@ SUBROUTINE test_select_combine(cleanup, total_error)
iblock(1:2) = (/5,4/) !5
CALL h5sselect_hyperslab_f(space1, H5S_SELECT_NOTB_F, start, &
- icount, error, stride, iblock)
+ icount, error, stride, iblock)
CALL check("h5sselect_hyperslab_f", error, total_error)
! /* Verify that the new selection is an inversion of the original block */
@@ -1540,9 +1549,9 @@ SUBROUTINE test_select_combine(cleanup, total_error)
CALL h5sget_select_hyper_blocklist_f(space1, INT(0, hsize_t), INT(nblocks,hsize_t), blocks, error)
CALL check("h5sget_select_hyper_blocklist_f", error, total_error)
- ! /* Verify that the correct block is defined */
+ ! /* Verify that the correct block is defined */
- ! No guarantee is implied as the order in which blocks are listed.
+ ! No guarantee is implied as the order in which blocks are listed.
! So this will ONLY work for square domains iblock(1:2) = (/5,5/)
!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(1,1,1)), 1, total_error)
@@ -1564,7 +1573,7 @@ SUBROUTINE test_select_combine(cleanup, total_error)
CALL h5sclose_f(space1, error)
CALL check("h5sclose_f", error, total_error)
! /* Copy "all" selection & space */
- CALL H5Scopy_f(all_id, space1, error)
+ CALL H5Scopy_f(all_id, space1, error)
CALL check("h5scopy_f", error, total_error)
! /* 'NOTA' "all" selection with another hyperslab */
@@ -1574,7 +1583,7 @@ SUBROUTINE test_select_combine(cleanup, total_error)
iblock(1:2) = (/5,4/) !5
CALL h5sselect_hyperslab_f(space1, H5S_SELECT_NOTA_F, start, &
- icount, error, stride, iblock)
+ icount, error, stride, iblock)
CALL check("h5sselect_hyperslab_f", error, total_error)
!/* Verify that the new selection is the "none" selection */
@@ -1587,7 +1596,7 @@ SUBROUTINE test_select_combine(cleanup, total_error)
CALL check("h5sclose_f", error, total_error)
! /* Copy "none" selection & space */
- CALL H5Scopy_f(none_id, space1, error)
+ CALL H5Scopy_f(none_id, space1, error)
CALL check("h5scopy_f", error, total_error)
! /* 'OR' "none" selection with another hyperslab */
@@ -1597,14 +1606,14 @@ SUBROUTINE test_select_combine(cleanup, total_error)
iblock(1:2) = (/5,4/) !5
CALL h5sselect_hyperslab_f(space1, H5S_SELECT_OR_F, start, &
- icount, error, stride, iblock)
+ icount, error, stride, iblock)
CALL check("h5sselect_hyperslab_f", error, total_error)
! /* Verify that the new selection is the same as the original hyperslab */
CALL H5Sget_select_type_f(space1, sel_type, error)
CALL check("H5Sget_select_type_f", error, total_error)
CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_HYPERSLABS_F), total_error)
-
+
! /* Verify that there is only one block */
CALL h5sget_select_hyper_nblocks_f(space1, nblocks, error)
@@ -1627,7 +1636,7 @@ SUBROUTINE test_select_combine(cleanup, total_error)
CALL check("h5sclose_f", error, total_error)
! /* Copy "none" selection & space */
- CALL H5Scopy_f(none_id, space1, error)
+ CALL H5Scopy_f(none_id, space1, error)
CALL check("h5scopy_f", error, total_error)
! /* 'AND' "none" selection with another hyperslab */
@@ -1637,7 +1646,7 @@ SUBROUTINE test_select_combine(cleanup, total_error)
iblock(1:2) = (/5,4/) !5
CALL h5sselect_hyperslab_f(space1, H5S_SELECT_AND_F, start, &
- icount, error, stride, iblock)
+ icount, error, stride, iblock)
CALL check("h5sselect_hyperslab_f", error, total_error)
! /* Verify that the new selection is the "none" selection */
@@ -1650,7 +1659,7 @@ SUBROUTINE test_select_combine(cleanup, total_error)
CALL check("h5sclose_f", error, total_error)
! /* Copy "none" selection & space */
- CALL H5Scopy_f(none_id, space1, error)
+ CALL H5Scopy_f(none_id, space1, error)
CALL check("h5scopy_f", error, total_error)
! /* 'XOR' "none" selection with another hyperslab */
@@ -1660,14 +1669,14 @@ SUBROUTINE test_select_combine(cleanup, total_error)
iblock(1:2) = (/5,4/) !5
CALL h5sselect_hyperslab_f(space1, H5S_SELECT_XOR_F, start, &
- icount, error, stride, iblock)
+ icount, error, stride, iblock)
CALL check("h5sselect_hyperslab_f", error, total_error)
! /* Verify that the new selection is the same as the original hyperslab */
CALL H5Sget_select_type_f(space1, sel_type, error)
CALL check("H5Sget_select_type_f", error, total_error)
CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_HYPERSLABS_F), total_error)
-
+
! /* Verify that there is only one block */
CALL h5sget_select_hyper_nblocks_f(space1, nblocks, error)
@@ -1683,13 +1692,13 @@ SUBROUTINE test_select_combine(cleanup, total_error)
CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(2,1,1)), 1, total_error)
CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(3,1,1)), 5, total_error)
CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(4,1,1)), 4, total_error)
-
+
! /* Close temporary dataspace */
CALL h5sclose_f(space1, error)
CALL check("h5sclose_f", error, total_error)
! /* Copy "none" selection & space */
- CALL H5Scopy_f(none_id, space1, error)
+ CALL H5Scopy_f(none_id, space1, error)
CALL check("h5scopy_f", error, total_error)
! /* 'NOTB' "none" selection with another hyperslab */
@@ -1699,7 +1708,7 @@ SUBROUTINE test_select_combine(cleanup, total_error)
iblock(1:2) = (/5,4/) !5
CALL h5sselect_hyperslab_f(space1, H5S_SELECT_NOTB_F, start, &
- icount, error, stride, iblock)
+ icount, error, stride, iblock)
CALL check("h5sselect_hyperslab_f", error, total_error)
! /* Verify that the new selection is the "none" selection */
@@ -1712,23 +1721,23 @@ SUBROUTINE test_select_combine(cleanup, total_error)
CALL check("h5sclose_f", error, total_error)
! /* Copy "none" selection & space */
- CALL H5Scopy_f(none_id, space1, error)
+ CALL H5Scopy_f(none_id, space1, error)
CALL check("h5scopy_f", error, total_error)
! /* 'NOTA' "none" selection with another hyperslab */
start(1:2) = 0
stride(1:2) = 1
icount(1:2) = 1
- iblock(1:2) = (/5,4/) !5
+ iblock(1:2) = (/5,4/) !5
CALL h5sselect_hyperslab_f(space1, H5S_SELECT_NOTA_F, start, &
- icount, error, stride, iblock)
+ icount, error, stride, iblock)
CALL check("h5sselect_hyperslab_f", error, total_error)
! /* Verify that the new selection is the same as the original hyperslab */
CALL H5Sget_select_type_f(space1, sel_type, error)
CALL check("H5Sget_select_type_f", error, total_error)
CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_HYPERSLABS_F), total_error)
-
+
! /* Verify that there is ONLY one BLOCK */
CALL h5sget_select_hyper_nblocks_f(space1, nblocks, error)
CALL check("h5sget_select_hyper_nblocks_f", error, total_error)
@@ -1747,13 +1756,13 @@ SUBROUTINE test_select_combine(cleanup, total_error)
CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(2,1,1)), 1, total_error)
CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(3,1,1)), 5, total_error)
CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(4,1,1)), 4, total_error)
-
+
! /* Close temporary dataspace */
CALL h5sclose_f(space1, error)
CALL check("h5sclose_f", error, total_error)
! /* Close dataspaces */
-
+
CALL h5sclose_f(base_id, error)
CALL check("h5sclose_f", error, total_error)
CALL h5sclose_f(all_id, error)
@@ -1771,8 +1780,8 @@ END SUBROUTINE test_select_combine
!****************************************************************/
SUBROUTINE test_select_bounds(cleanup, total_error)
- USE HDF5 ! This module contains all necessary modules
-
+ USE HDF5 ! This module contains all necessary modules
+
IMPLICIT NONE
LOGICAL, INTENT(IN) :: cleanup
INTEGER, INTENT(OUT) :: total_error
@@ -1781,7 +1790,7 @@ SUBROUTINE test_select_bounds(cleanup, total_error)
INTEGER, PARAMETER :: SPACE11_DIM1=100
INTEGER, PARAMETER :: SPACE11_DIM2=50
INTEGER, PARAMETER :: SPACE11_NPOINTS=4
-
+
INTEGER(hid_t) :: sid ! /* Dataspace ID */
INTEGER(hsize_t), DIMENSION(1:SPACE11_RANK) :: dims = (/SPACE11_DIM1, SPACE11_DIM2/) !Dataspace dimensions
INTEGER(hsize_t), DIMENSION(SPACE11_RANK, SPACE11_NPOINTS) :: coord !/* Coordinates for point selection
@@ -1792,7 +1801,7 @@ SUBROUTINE test_select_bounds(cleanup, total_error)
INTEGER(hssize_t), DIMENSION(SPACE11_RANK) :: offset !/* Offset amount for selection */
INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: low_bounds !/* The low bounds for the selection */
INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: high_bounds !/* The high bounds for the selection */
-
+
INTEGER :: error
!/* Create dataspace */
@@ -1836,7 +1845,7 @@ SUBROUTINE test_select_bounds(cleanup, total_error)
CALL VERIFY("h5sget_select_bounds_f", error, -1, total_error)
!/* Set point selection */
-
+
coord(1,1)= 3; coord(2,1)= 3;
coord(1,2)= 3; coord(2,2)= 46;
coord(1,3)= 96; coord(2,3)= 3;
@@ -1863,7 +1872,7 @@ SUBROUTINE test_select_bounds(cleanup, total_error)
! /* Get bounds for hyperslab selection with negative offset */
CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error)
CALL VERIFY("h5sget_select_bounds_f", error, -1, total_error)
-
+
! /* Set valid offset for selection */
offset(1:2) = (/2,-2/)
CALL H5Soffset_simple_f(sid, offset, error)
@@ -1888,9 +1897,9 @@ SUBROUTINE test_select_bounds(cleanup, total_error)
stride(1:2) = 10
count(1:2) = 4
block(1:2) = 5
-
+
CALL h5sselect_hyperslab_f(sid, H5S_SELECT_SET_F, start, &
- count, error, stride, block)
+ count, error, stride, block)
CALL check("h5sselect_hyperslab_f", error, total_error)
!/* Get bounds for hyperslab selection */
@@ -1929,7 +1938,7 @@ SUBROUTINE test_select_bounds(cleanup, total_error)
offset(1:2) = 0
CALL H5Soffset_simple_f(sid, offset, error)
CALL check("H5Soffset_simple_f", error, total_error)
-
+
! /* Make "irregular" hyperslab selection */
start(1:2) = 20
stride(1:2) = 20
@@ -1937,7 +1946,7 @@ SUBROUTINE test_select_bounds(cleanup, total_error)
block(1:2) = 10
CALL h5sselect_hyperslab_f(sid, H5S_SELECT_OR_F, start, &
- count, error, stride, block)
+ count, error, stride, block)
CALL check("h5sselect_hyperslab_f", error, total_error)
!/* Get bounds for hyperslab selection */
diff --git a/fortran/test/tH5T.f90 b/fortran/test/tH5T.f90
index d298694..6af1ba6 100644
--- a/fortran/test/tH5T.f90
+++ b/fortran/test/tH5T.f90
@@ -1,3 +1,12 @@
+!****h* root/fortran/test/tH5T.f90
+!
+! NAME
+! tH5T.f90
+!
+! FUNCTION
+! Basic testing of Fortran H5T APIs.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,6 +22,11 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! CONTAINS SUBROUTINES
+! compoundtest, basic_data_type_test, enumtest, test_derived_flt
+!
+!*****
+
SUBROUTINE compoundtest(cleanup, total_error)
!
! This program creates a dataset that is one dimensional array of
@@ -822,7 +836,7 @@
INTEGER, DIMENSION(2) :: data
INTEGER(HSIZE_T), DIMENSION(7) :: dims
INTEGER :: order1, order2
- INTEGER(SIZE_T) :: type_size1, type_size2
+! INTEGER(SIZE_T) :: type_size1, type_size2
INTEGER :: class
dims(1) = 2
@@ -946,7 +960,7 @@ SUBROUTINE test_derived_flt(cleanup, total_error)
INTEGER, INTENT(OUT) :: total_error
INTEGER(hid_t) :: file=-1, tid1=-1, tid2=-1
INTEGER(hid_t) :: dxpl_id=-1
- INTEGER(size_t) :: spos, epos, esize, mpos, msize, size
+ INTEGER(size_t) :: spos, epos, esize, mpos, msize
CHARACTER(LEN=15), PARAMETER :: filename="h5t_derived_flt"
CHARACTER(LEN=80) :: fix_filename
diff --git a/fortran/test/tH5T_F03.f90 b/fortran/test/tH5T_F03.f90
new file mode 100644
index 0000000..57e833c
--- /dev/null
+++ b/fortran/test/tH5T_F03.f90
@@ -0,0 +1,2549 @@
+!****h* root/fortran/test/tH5T_F03.f90
+!
+! NAME
+! tH5T_F03.f90
+!
+! FUNCTION
+! Test FORTRAN HDF5 H5T APIs which are dependent on FORTRAN 2003
+! features.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+!
+! CONTAINS SUBROUTINES
+! test_array_compound_atomic, test_array_compound_array,
+! test_array_bkg, test_h5kind_to_type
+!
+!*****
+
+! *****************************************
+! *** H 5 T T E S T S
+! *****************************************
+
+!/****************************************************************
+!**
+!** test_array_compound_atomic(): Test basic array datatype code.
+!** Tests 1-D array of compound datatypes (with no array fields)
+!**
+!****************************************************************/
+!
+SUBROUTINE test_array_compound_atomic(total_error)
+
+ USE HDF5
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+
+ INTEGER, INTENT(INOUT) :: total_error
+ ! 1-D dataset WITH fixed dimensions
+ CHARACTER(LEN=6), PARAMETER :: SPACE1_NAME = "Space1"
+ INTEGER, PARAMETER :: SPACE1_RANK = 1
+ INTEGER, PARAMETER :: SPACE1_DIM1 = 4
+ ! 1-D array datatype
+ INTEGER, PARAMETER :: ARRAY1_RANK= 1
+ INTEGER, PARAMETER :: ARRAY1_DIM1= 4
+ CHARACTER(LEN=10), PARAMETER :: FILENAME = "tarray1.h5"
+
+ TYPE s1_t
+ INTEGER :: i
+ REAL :: f
+ END TYPE s1_t
+ TYPE(s1_t), DIMENSION(:,:), ALLOCATABLE, TARGET :: wdata ! Information to write
+ TYPE(s1_t), DIMENSION(:,:), ALLOCATABLE, TARGET :: rdata ! Information read in
+ INTEGER(hid_t) :: fid1 ! HDF5 File IDs
+ INTEGER(hid_t) :: dataset ! Dataset ID
+ INTEGER(hid_t) :: sid1 ! Dataspace ID
+ INTEGER(hid_t) :: tid1 ! Array Datatype ID
+ INTEGER(hid_t) :: tid2 ! Compound Datatype ID
+
+ INTEGER(HSIZE_T), DIMENSION(1) :: sdims1 = (/SPACE1_DIM1/)
+ INTEGER(HSIZE_T), DIMENSION(1) :: tdims1=(/ARRAY1_DIM1/)
+ INTEGER :: ndims ! Array rank for reading
+ INTEGER(HSIZE_T), ALLOCATABLE, DIMENSION(:) :: rdims1 ! Array dimensions for reading
+ INTEGER(HSIZE_T), ALLOCATABLE, DIMENSION(:) :: rdims ! Array dimensions for reading
+ INTEGER :: nmemb ! Number of compound members
+ CHARACTER(LEN=20) :: mname ! Name of compound field
+ INTEGER(size_t) :: off ! Offset of compound field
+ INTEGER(hid_t) :: mtid ! Datatype ID for field
+ INTEGER :: i,j ! counting variables
+ INTEGER(SIZE_T) :: type_sizei ! Size of the integer datatype
+ INTEGER(SIZE_T) :: type_sizer ! Size of the real datatype
+
+ INTEGER(SIZE_T) :: sizeof_compound ! total size of compound
+ INTEGER :: error ! Generic RETURN value
+ INTEGER(SIZE_T) :: offset ! Member's offset
+ INTEGER :: namelen
+ LOGICAL :: flag
+
+ TYPE(C_PTR) :: f_ptr ! Needed to pass the pointer, for g95 compiler to work
+
+ ALLOCATE( wdata(1:SPACE1_DIM1,1:ARRAY1_DIM1) )
+ ALLOCATE( rdata(1:SPACE1_DIM1,1:ARRAY1_DIM1) )
+
+ ! Initialize array data to write
+ DO i = 1, SPACE1_DIM1
+ DO j = 1, ARRAY1_DIM1
+ wdata(i,j)%i = i * 10 + j
+ wdata(i,j)%f = i * 2.5 + j
+ ENDDO
+ ENDDO
+
+ ! Create file
+ CALL h5fcreate_f(FILENAME,H5F_ACC_TRUNC_F,fid1,error)
+ CALL check("h5fcreate_f", error, total_error)
+
+ ! Create dataspace for datasets
+ CALL h5screate_simple_f(SPACE1_RANK, sdims1, sid1, error)
+ CALL check("h5screate_simple_f", error, total_error)
+
+ CALL h5tcreate_f(H5T_COMPOUND_F, H5OFFSETOF(C_LOC(wdata(1,1)), C_LOC(wdata(2,1))), tid2, error)
+ CALL check("h5tcreate_f", error, total_error)
+
+ ! Insert integer field
+ CALL h5tinsert_f(tid2, "i", H5OFFSETOF(C_LOC(wdata(1,1)),C_LOC(wdata(1,1)%i)), H5T_NATIVE_INTEGER, error)
+ CALL check("h5tinsert_f", error, total_error)
+
+ ! Insert float field
+
+ CALL h5tinsert_f(tid2, "f", H5OFFSETOF(C_LOC(wdata(1,1)),C_LOC(wdata(1,1)%f)), H5T_NATIVE_REAL, error)
+ CALL check("h5tinsert_f", error, total_error)
+
+ ! Create an array datatype to refer to
+ CALL h5tarray_create_f(tid2, ARRAY1_RANK, tdims1, tid1, error)
+ CALL check("h5tarray_create_f", error, total_error)
+
+ ! Close compound datatype
+ CALL h5tclose_f(tid2,error)
+ CALL check("h5tclose_f", error, total_error)
+
+
+ ! Create a dataset
+ CALL h5dcreate_f(fid1,"Dataset1",tid1, sid1, dataset,error)
+ CALL check("h5dcreate_f", error, total_error)
+
+ ! Write dataset to disk
+
+ ALLOCATE(rdims(1:2)) ! dummy not needed
+
+ f_ptr = C_LOC(wdata(1,1))
+ CALL h5dwrite_f(dataset, tid1, f_ptr, error )
+ CALL check("h5dwrite_f", error, total_error)
+ ! Close Dataset
+ CALL h5dclose_f(dataset, error)
+ CALL check("h5dclose_f", error, total_error)
+
+ ! Close datatype
+ CALL h5tclose_f(tid1,error)
+ CALL check("h5tclose_f", error, total_error)
+
+ ! Close disk dataspace
+ CALL h5sclose_f(sid1,error)
+ CALL check("h5sclose_f", error, total_error)
+
+ ! Close file
+ CALL h5fclose_f(fid1,error)
+ CALL check("h5fclose_f", error, total_error)
+
+ ! Re-open file
+ CALL h5fopen_f (FILENAME, H5F_ACC_RDONLY_F, fid1, error)
+ CALL check("h5fopen_f", error, total_error)
+
+ ! Open the dataset
+ CALL h5dopen_f(fid1, "Dataset1", dataset, error)
+ CALL check("h5dopen_f", error, total_error)
+
+ ! Get the datatype
+ CALL h5dget_type_f(dataset, tid1, error)
+ CALL check("h5dget_type_f", error, total_error)
+
+ ! Check the array rank
+ CALL h5tget_array_ndims_f(tid1, ndims, error)
+ CALL check("h5tget_array_ndims_f", error, total_error)
+ CALL VERIFY("h5tget_array_ndims_f",ndims, ARRAY1_RANK, total_error)
+
+ ! Get the array dimensions
+ ALLOCATE(rdims1(1:ndims))
+ CALL h5tget_array_dims_f(tid1, rdims1, error)
+ CALL check("h5tget_array_dims_f", error, total_error)
+
+
+ ! Check the array dimensions
+ DO i = 1, ndims
+ CALL VERIFY("h5tget_array_dims_f", INT(rdims1(i)), INT(tdims1(i)), total_error)
+ ENDDO
+
+ ! Get the compound datatype
+ CALL h5tget_super_f(tid1, tid2, error)
+ CALL check("h5tget_super_f", error, total_error)
+
+ ! Check the number of members
+ CALL h5tget_nmembers_f(tid2, nmemb, error)
+ CALL check("h5tget_nmembers_f", error, total_error)
+ CALL VERIFY("h5tget_nmembers_f", nmemb, 2, total_error)
+
+ ! Check the 1st field's name
+ CALL H5Tget_member_name_f(tid2, 0, mname, namelen,error)
+ CALL check("H5Tget_member_name_f", error, total_error)
+ CALL verifystring("H5Tget_member_name_f",mname(1:namelen),"i", total_error)
+
+ ! Check the 1st field's offset
+ CALL H5Tget_member_offset_f(tid2, 0, off, error)
+ CALL check("H5Tget_member_offset_f", error, total_error)
+ CALL VERIFY("H5Tget_member_offset_f",INT(off),0, total_error)
+
+ ! Check the 1st field's datatype
+ CALL H5Tget_member_type_f(tid2, 0, mtid, error)
+ CALL check("H5Tget_member_type_f", error, total_error)
+
+ CALL H5Tequal_f(mtid, H5T_NATIVE_INTEGER, flag, error)
+ CALL check("H5Tequal_f", error, total_error)
+ CALL VerifyLogical("H5Tequal_f", flag, .TRUE., total_error)
+
+ CALL h5tclose_f(mtid,error)
+ CALL check("h5tclose_f", error, total_error)
+
+ ! Check the 2nd field's name
+ CALL H5Tget_member_name_f(tid2, 1, mname, namelen,error)
+ CALL check("H5Tget_member_name_f", error, total_error)
+ CALL verifystring("H5Tget_member_name_f",mname(1:namelen),"f", total_error)
+
+ ! Check the 2nd field's offset
+ CALL H5Tget_member_offset_f(tid2, 1, off, error)
+ CALL check("H5Tget_member_offset_f", error, total_error)
+ CALL VERIFY("H5Tget_member_offset_f",INT(off),H5OFFSETOF(C_LOC(wdata(1,1)),C_LOC(wdata(1,1)%f)), total_error)
+
+ ! Check the 2nd field's datatype
+ CALL H5Tget_member_type_f(tid2, 1, mtid, error)
+ CALL check("H5Tget_member_type_f", error, total_error)
+
+ CALL H5Tequal_f(mtid, H5T_NATIVE_REAL, flag, error)
+ CALL check("H5Tequal_f", error, total_error)
+ CALL VerifyLogical("H5Tequal_f", flag, .TRUE., total_error)
+
+ CALL h5tclose_f(mtid,error)
+ CALL check("h5tclose_f", error, total_error)
+
+ ! Close Compound Datatype
+ CALL h5tclose_f(tid2, error)
+ CALL check("h5tclose_f", error, total_error)
+
+ ! Read dataset from disk
+
+ f_ptr = C_LOC(rdata(1,1))
+ CALL H5Dread_f(dataset, tid1, f_ptr, error)
+ CALL check("H5Dread_f", error, total_error)
+
+ ! Compare data read in
+ DO i = 1, SPACE1_DIM1
+ DO j = 1, ARRAY1_DIM1
+ IF(wdata(i,j)%i.NE.rdata(i,j)%i)THEN
+ PRINT*, 'ERROR: Wrong integer data is read back by H5Dread_f '
+ total_error = total_error + 1
+ ENDIF
+ IF(wdata(i,j)%f.NE.rdata(i,j)%f)THEN
+ PRINT*, 'ERROR: Wrong real data is read back by H5Dread_f '
+ total_error = total_error + 1
+ ENDIF
+ ENDDO
+ ENDDO
+
+ ! Close Datatype
+ CALL h5tclose_f(tid1,error)
+ CALL check("h5tclose_f", error, total_error)
+
+ ! Close Dataset
+ CALL h5dclose_f(dataset, error)
+ CALL check("h5dclose_f", error, total_error)
+
+ ! Close file
+ CALL h5fclose_f(fid1,error)
+ CALL check("h5fclose_f", error, total_error)
+
+END SUBROUTINE test_array_compound_atomic
+!!$
+!!$!***************************************************************
+!!$!**
+!!$!** test_array_compound_array(): Test basic array datatype code.
+!!$!** Tests 1-D array of compound datatypes (with array fields)
+!!$!**
+!!$!***************************************************************
+!!$
+ SUBROUTINE test_array_compound_array(total_error)
+
+ USE HDF5
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+
+ INTEGER, INTENT(INOUT) :: total_error
+
+ ! 1-D array datatype
+ INTEGER, PARAMETER :: ARRAY1_RANK= 1
+ INTEGER, PARAMETER :: ARRAY1_DIM1= 3
+ INTEGER, PARAMETER :: ARRAY2_DIM1= 5
+
+ INTEGER, PARAMETER :: SPACE1_RANK = 1
+ INTEGER, PARAMETER :: SPACE1_DIM1 = 4
+ CHARACTER(LEN=10), PARAMETER :: FILENAME = "tarray2.h5"
+
+ TYPE st_t_struct ! Typedef for compound datatype
+ INTEGER :: i
+ REAL, DIMENSION(1:ARRAY2_DIM1) :: f
+ CHARACTER(LEN=2), DIMENSION(1:ARRAY2_DIM1) :: c
+ END TYPE st_t_struct
+ ! Information to write
+ TYPE(st_t_struct), DIMENSION(1:SPACE1_DIM1,1:ARRAY1_DIM1), TARGET :: wdata
+ ! Information read in
+ TYPE(st_t_struct), DIMENSION(1:SPACE1_DIM1,1:ARRAY1_DIM1), TARGET :: rdata
+
+
+ INTEGER(hid_t) :: fid1 ! HDF5 File IDs
+ INTEGER(hid_t) :: dataset ! Dataset ID
+ integer(hid_t) :: sid1 ! Dataspace ID
+ integer(hid_t) :: tid1 ! Array Datatype ID
+ integer(hid_t) :: tid2 ! Compound Datatype ID
+ integer(hid_t) :: tid3 ! Nested Array Datatype ID
+ integer(hid_t) :: tid4 ! Nested Array Datatype ID
+ INTEGER(HID_T) :: dt5_id ! Memory datatype identifier
+
+ INTEGER(HSIZE_T), DIMENSION(1) :: sdims1 = (/SPACE1_DIM1/)
+ INTEGER(HSIZE_T), DIMENSION(1) :: tdims1=(/ARRAY1_DIM1/)
+ INTEGER(HSIZE_T), DIMENSION(1) :: tdims2=(/ARRAY2_DIM1/)
+
+ INTEGER ndims ! Array rank for reading
+
+ INTEGER(HSIZE_T), ALLOCATABLE, DIMENSION(:) :: rdims1 ! Array dimensions for reading
+ INTEGER(HSIZE_T), ALLOCATABLE, DIMENSION(:) :: rdims ! Array dimensions for reading
+
+ INTEGER :: nmemb ! Number of compound members
+ CHARACTER(LEN=20) :: mname ! Name of compound field
+ INTEGER(size_t) :: off ! Offset of compound field
+ INTEGER(size_t) :: offset ! Offset of compound field
+ INTEGER(hid_t) :: mtid ! Datatype ID for field
+ INTEGER(hid_t) :: mtid2 ! Datatype ID for field
+ INTEGER(SIZE_T) :: type_sizei ! Size of the integer datatype
+ INTEGER(SIZE_T) :: type_sizer ! Size of the real datatype
+ INTEGER(SIZE_T) :: type_sizec ! Size of the character datatype
+ INTEGER(SIZE_T) :: sizeof_compound ! total size of compound
+
+ INTEGER :: mclass ! Datatype class for field
+ INTEGER :: i,j,k ! counting variables
+
+ INTEGER :: error
+ CHARACTER(LEN=2) :: ichr2
+ INTEGER(SIZE_T) :: sizechar
+ INTEGER :: namelen
+ LOGICAL :: flag
+ INTEGER(HID_T) :: atype_id !String Attribute Datatype identifier
+ INTEGER(SIZE_T) :: attrlen ! Length of the attribute string
+
+ TYPE(c_ptr) :: f_ptr
+
+ ! Initialize array data to write
+ DO i = 1, SPACE1_DIM1
+ DO j = 1, array1_DIM1
+ wdata(i,j)%i = i*10+j
+ DO k = 1, ARRAY2_DIM1
+ wdata(i,j)%f(k) = 10*i+j+.5
+ WRITE(ichr2,'(I2.2)') k
+ wdata(i,j)%c(k) = ichr2
+ ENDDO
+ ENDDO
+ ENDDO
+
+ ! Create file
+ CALL h5fcreate_f(FILENAME,H5F_ACC_TRUNC_F,fid1,error)
+ CALL check("h5fcreate_f", error, total_error)
+
+
+ ! Create dataspace for datasets
+ CALL h5screate_simple_f(SPACE1_RANK, sdims1, sid1, error)
+ CALL check("h5screate_simple_f", error, total_error)
+
+ ! Create a compound datatype to refer to
+ !
+ CALL h5tcreate_f(H5T_COMPOUND_F, H5OFFSETOF(C_LOC(wdata(1,1)), C_LOC(wdata(2,1))), tid2, error)
+ CALL check("h5tcreate_f", error, total_error)
+
+ ! Insert integer field
+ CALL h5tinsert_f(tid2, "i", H5OFFSETOF(C_LOC(wdata(1,1)),C_LOC(wdata(1,1)%i)), H5T_NATIVE_INTEGER, error)
+ CALL check("h5tinsert_f", error, total_error)
+
+ ! Create an array of floats datatype
+ CALL h5tarray_create_f(H5T_NATIVE_REAL, ARRAY1_RANK, tdims2, tid3, error)
+ CALL check("h5tarray_create_f", error, total_error)
+ ! Insert float array field
+
+ CALL h5tinsert_f(tid2, "f", H5OFFSETOF(C_LOC(wdata(1,1)),C_LOC(wdata(1,1)%f)), tid3, error)
+ CALL check("h5tinsert_f", error, total_error)
+
+ !
+ ! Create datatype for the String attribute.
+ !
+ CALL h5tcopy_f(H5T_NATIVE_CHARACTER, atype_id, error)
+ CALL check("h5tcopy_f",error,total_error)
+
+ attrlen = LEN(wdata(1,1)%c(1))
+ CALL h5tset_size_f(atype_id, attrlen, error)
+ CALL check("h5tset_size_f",error,total_error)
+
+ ! Create an array of character datatype
+ CALL h5tarray_create_f(atype_id, ARRAY1_RANK, tdims2, tid4, error)
+ CALL check("h5tarray_create_f", error, total_error)
+
+ ! Insert character array field
+ CALL h5tinsert_f(tid2, "c", H5OFFSETOF(C_LOC(wdata(1,1)),C_LOC(wdata(1,1)%c(1))), tid4, error)
+ CALL check("h5tinsert2_f", error, total_error)
+
+ ! Close array of floats field datatype
+ CALL h5tclose_f(tid3,error)
+ CALL check("h5tclose_f", error, total_error)
+
+ CALL h5tclose_f(tid4,error)
+ CALL check("h5tclose_f", error, total_error)
+
+ ! Create an array datatype to refer to
+ CALL h5tarray_create_f(tid2, ARRAY1_RANK, tdims1, tid1, error)
+ CALL check("h5tarray_create_f", error, total_error)
+
+ ! Close compound datatype
+ CALL h5tclose_f(tid2,error)
+ CALL check("h5tclose_f", error, total_error)
+
+ ! Create a dataset
+ CALL h5dcreate_f(fid1,"Dataset1",tid1, sid1, dataset,error)
+ CALL check("h5dcreate_f", error, total_error)
+
+
+ ! Write dataset to disk
+ f_ptr = C_LOC(wdata(1,1))
+ CALL h5dwrite_f(dataset, tid1, f_ptr, error )
+ CALL check("h5dwrite_f", error, total_error)
+
+ ! Close Dataset
+ CALL h5dclose_f(dataset, error)
+ CALL check("h5dclose_f", error, total_error)
+
+ ! Close datatype
+ CALL h5tclose_f(tid1,error)
+ CALL check("h5tclose_f", error, total_error)
+
+ ! Close disk dataspace
+ CALL h5sclose_f(sid1,error)
+ CALL check("h5sclose_f", error, total_error)
+
+ ! Close file
+ CALL h5fclose_f(fid1,error)
+ CALL check("h5fclose_f", error, total_error)
+
+ ! Re-open file
+ CALL h5fopen_f (FILENAME, H5F_ACC_RDONLY_F, fid1, error)
+ CALL check("h5fopen_f", error, total_error)
+
+ ! Open the dataset
+
+ CALL h5dopen_f(fid1, "Dataset1", dataset, error)
+ CALL check("h5dopen_f", error, total_error)
+
+ ! Get the datatype
+ CALL h5dget_type_f(dataset, tid1, error)
+ CALL check("h5dget_type_f", error, total_error)
+
+ ! Check the array rank
+ CALL h5tget_array_ndims_f(tid1, ndims, error)
+ CALL check("h5tget_array_ndims_f", error, total_error)
+ CALL VERIFY("h5tget_array_ndims_f",ndims, ARRAY1_RANK, total_error)
+
+
+ ! Get the array dimensions
+ ALLOCATE(rdims1(1:ndims))
+ CALL h5tget_array_dims_f(tid1, rdims1, error)
+ CALL check("h5tget_array_dims_f", error, total_error)
+
+ ! Check the array dimensions
+ DO i = 1, ndims
+ CALL VERIFY("h5tget_array_dims_f", INT(rdims1(i)), INT(tdims1(i)), total_error)
+ ENDDO
+
+ ! Get the compound datatype
+ CALL h5tget_super_f(tid1, tid2, error)
+ CALL check("h5tget_super_f", error, total_error)
+
+ ! Check the number of members
+ CALL h5tget_nmembers_f(tid2, nmemb, error)
+ CALL check("h5tget_nmembers_f", error, total_error)
+ CALL VERIFY("h5tget_nmembers_f", nmemb, 3, total_error)
+
+ ! Check the 1st field's name
+ CALL H5Tget_member_name_f(tid2, 0, mname, namelen,error)
+ CALL check("H5Tget_member_name_f", error, total_error)
+ CALL verifystring("H5Tget_member_name_f",mname(1:namelen),"i", total_error)
+
+ ! Check the 1st field's offset
+
+ CALL H5Tget_member_offset_f(tid2, 0, off, error)
+ CALL check("H5Tget_member_offset_f", error, total_error)
+ CALL VERIFY("H5Tget_member_offset_f",INT(off),0, total_error)
+
+ ! Check the 1st field's datatype
+ CALL H5Tget_member_type_f(tid2, 0, mtid, error)
+ CALL check("H5Tget_member_type_f", error, total_error)
+
+ CALL H5Tequal_f(mtid, H5T_NATIVE_INTEGER, flag, error)
+ CALL check("H5Tequal_f", error, total_error)
+ CALL VerifyLogical("H5Tequal_f", flag, .TRUE., total_error)
+
+ CALL h5tclose_f(mtid,error)
+ CALL check("h5tclose_f", error, total_error)
+
+ ! Check the 2nd field's name
+ CALL H5Tget_member_name_f(tid2, 1, mname, namelen,error)
+ CALL check("H5Tget_member_name_f", error, total_error)
+ CALL verifystring("H5Tget_member_name_f",mname(1:namelen),"f", total_error)
+
+ ! Check the 2nd field's offset
+ CALL H5Tget_member_offset_f(tid2, 1, off, error)
+ CALL check("H5Tget_member_offset_f", error, total_error)
+ CALL VERIFY("H5Tget_member_offset_f",INT(off),H5OFFSETOF(C_LOC(wdata(1,1)),C_LOC(wdata(1,1)%f)), total_error)
+
+ ! Check the 2nd field's datatype
+ CALL H5Tget_member_type_f(tid2, 1, mtid, error)
+ CALL check("H5Tget_member_type_f", error, total_error)
+
+ ! Get the 2nd field's class
+ CALL H5Tget_class_f(mtid, mclass, error)
+ CALL check("H5Tget_class_f", error, total_error)
+ CALL VERIFY("H5Tget_class_f",mclass, H5T_ARRAY_F, total_error)
+
+ ! Check the array rank
+ CALL h5tget_array_ndims_f(mtid, ndims, error)
+ CALL check("h5tget_array_ndims_f", error, total_error)
+ CALL VERIFY("h5tget_array_ndims_f",ndims, ARRAY1_RANK, total_error)
+
+ ! Get the array dimensions
+ CALL h5tget_array_dims_f(mtid, rdims1, error)
+ CALL check("h5tget_array_dims_f", error, total_error)
+
+ ! Check the array dimensions
+ DO i = 1, ndims
+ CALL VERIFY("h5tget_array_dims_f", INT(rdims1(i)), INT(tdims2(i)), total_error)
+ ENDDO
+
+ ! Check the 3rd field's name
+ CALL H5Tget_member_name_f(tid2, 2, mname, namelen,error)
+ CALL check("H5Tget_member_name_f", error, total_error)
+ CALL verifystring("H5Tget_member_name_f",mname(1:namelen),"c", total_error)
+
+ ! Check the 3rd field's offset
+ CALL H5Tget_member_offset_f(tid2, 2, off, error)
+ CALL check("H5Tget_member_offset_f", error, total_error)
+ CALL VERIFY("H5Tget_member_offset_f",INT(off),&
+ H5OFFSETOF(C_LOC(wdata(1,1)),C_LOC(wdata(1,1)%c(1))), total_error)
+
+ ! Check the 3rd field's datatype
+ CALL H5Tget_member_type_f(tid2, 2, mtid2, error)
+ CALL check("H5Tget_member_type_f", error, total_error)
+
+ ! Get the 3rd field's class
+ CALL H5Tget_class_f(mtid2, mclass, error)
+ CALL check("H5Tget_class_f", error, total_error)
+ CALL VERIFY("H5Tget_class_f",mclass, H5T_ARRAY_F, total_error)
+
+ ! Check the array rank
+ CALL h5tget_array_ndims_f(mtid2, ndims, error)
+ CALL check("h5tget_array_ndims_f", error, total_error)
+ CALL VERIFY("h5tget_array_ndims_f",ndims, ARRAY1_RANK, total_error)
+
+ ! Get the array dimensions
+ CALL h5tget_array_dims_f(mtid2, rdims1, error)
+ CALL check("h5tget_array_dims_f", error, total_error)
+
+ ! Check the array dimensions
+ DO i = 1, ndims
+ CALL VERIFY("h5tget_array_dims_f", INT(rdims1(i)), INT(tdims2(i)), total_error)
+ ENDDO
+
+ ! Check the nested array's datatype
+ CALL H5Tget_super_f(mtid, tid3, error)
+ CALL check("H5Tget_super_f", error, total_error)
+
+ CALL H5Tequal_f(tid3, H5T_NATIVE_REAL, flag, error)
+ CALL check("H5Tequal_f", error, total_error)
+ CALL VerifyLogical("H5Tequal_f", flag, .TRUE., total_error)
+
+ ! Check the nested array's datatype
+ CALL H5Tget_super_f(mtid2, tid3, error)
+ CALL check("H5Tget_super_f", error, total_error)
+
+ CALL H5Tequal_f(tid3, atype_id, flag, error)
+ CALL check("H5Tequal_f", error, total_error)
+ CALL VerifyLogical("H5Tequal_f", flag, .TRUE., total_error)
+
+ ! Close the array's base type datatype
+ CALL h5tclose_f(tid3, error)
+ CALL check("h5tclose_f", error, total_error)
+
+ ! Close the member datatype
+ CALL h5tclose_f(mtid,error)
+ CALL check("h5tclose_f", error, total_error)
+
+ ! Close the member datatype
+ CALL h5tclose_f(mtid2,error)
+ CALL check("h5tclose_f", error, total_error)
+
+ ! Close Compound Datatype
+ CALL h5tclose_f(tid2,error)
+ CALL check("h5tclose_f", error, total_error)
+
+ ! READ dataset from disk
+
+ f_ptr = c_null_ptr
+ f_ptr = C_LOC(rdata(1,1))
+ CALL H5Dread_f(dataset, tid1, f_ptr, error)
+ CALL check("H5Dread_f", error, total_error)
+
+ ! Compare data read in
+ DO i = 1, SPACE1_DIM1
+ DO j = 1, ARRAY1_DIM1
+ IF(wdata(i,j)%i.NE.rdata(i,j)%i)THEN
+ PRINT*, 'ERROR: Wrong integer data is read back by H5Dread_f '
+ total_error = total_error + 1
+ ENDIF
+ DO k = 1, ARRAY2_DIM1
+ IF(wdata(i,j)%f(k).NE.rdata(i,j)%f(k))THEN
+ PRINT*, 'ERROR: Wrong real array data is read back by H5Dread_f '
+ total_error = total_error + 1
+ ENDIF
+ IF(wdata(i,j)%c(k).NE.rdata(i,j)%c(k))THEN
+ PRINT*, 'ERROR: Wrong character array data is read back by H5Dread_f '
+ total_error = total_error + 1
+ ENDIF
+ ENDDO
+ ENDDO
+ ENDDO
+
+ ! Close Datatype
+ CALL h5tclose_f(tid1,error)
+ CALL check("h5tclose_f", error, total_error)
+
+ ! Close Dataset
+ CALL h5dclose_f(dataset, error)
+ CALL check("h5dclose_f", error, total_error)
+
+ ! Close file
+ CALL h5fclose_f(fid1,error)
+ CALL check("h5fclose_f", error, total_error)
+ END SUBROUTINE test_array_compound_array
+!!$
+!!$!***************************************************************
+!!$!**
+!!$!** test_array_bkg(): Test basic array datatype code.
+!!$!** Tests reading compound datatype with array fields and
+!!$!** writing partial fields.
+!!$!**
+!!$!***************************************************************
+!!$
+ SUBROUTINE test_array_bkg(total_error)
+
+ USE HDF5
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+
+ INTEGER, PARAMETER :: r_k4 = SELECTED_REAL_KIND(5)
+ INTEGER, PARAMETER :: r_k8 = SELECTED_REAL_KIND(10)
+
+ INTEGER, INTENT(INOUT) :: total_error
+
+ INTEGER, PARAMETER :: LENGTH = 5
+ INTEGER, PARAMETER :: ALEN = 10
+ INTEGER, PARAMETER :: RANK = 1
+ INTEGER, PARAMETER :: NMAX = 100
+ CHARACTER(LEN=17), PARAMETER :: FIELDNAME = "ArrayofStructures"
+
+ INTEGER(hid_t) :: fid, array_dt
+ INTEGER(hid_t) :: space
+ INTEGER(hid_t) :: type
+ INTEGER(hid_t) :: dataset
+
+ INTEGER(hsize_t), DIMENSION(1:1) :: dim =(/LENGTH/)
+ INTEGER(hsize_t), DIMENSION(1:1) :: dima =(/ALEN/)
+
+ INTEGER :: i, j
+ INTEGER, DIMENSION(1:3) :: ndims = (/1,1,1/)
+
+ TYPE CmpField_struct
+ INTEGER, DIMENSION(1:ALEN) :: a
+ REAL(KIND=r_k4), DIMENSION(1:ALEN) :: b
+ REAL(KIND=r_k8), DIMENSION(1:ALEN) :: c
+ ENDTYPE CmpField_struct
+
+ TYPE(CmpField_struct), DIMENSION(1:LENGTH), TARGET :: cf
+ TYPE(CmpField_struct), DIMENSION(1:LENGTH), TARGET :: cfr
+
+ TYPE CmpDTSinfo_struct
+ INTEGER :: nsubfields
+ CHARACTER(LEN=5), DIMENSION(1:nmax) :: name
+ INTEGER(size_t), DIMENSION(1:nmax) :: offset
+ INTEGER(hid_t), DIMENSION(1:nmax) :: datatype
+ END TYPE CmpDTSinfo_struct
+
+ TYPE(CmpDTSinfo_struct) :: dtsinfo
+
+ TYPE fld_t_struct
+ REAL(KIND=r_k4), DIMENSION(1:ALEN) :: b
+ END TYPE fld_t_struct
+
+ INTEGER(SIZE_T) :: type_sizei ! Size of the integer datatype
+ INTEGER(SIZE_T) :: type_sizer ! Size of the real datatype
+ INTEGER(SIZE_T) :: type_sized ! Size of the double datatype
+ INTEGER(SIZE_T) :: sizeof_compound ! total size of compound
+
+ TYPE(fld_t_struct), DIMENSION(1:LENGTH), TARGET :: fld
+ TYPE(fld_t_struct), DIMENSION(1:LENGTH), TARGET :: fldr
+
+ CHARACTER(LEN=10), PARAMETER :: FILENAME = "tarray3.h5"
+
+ INTEGER(HSIZE_T), ALLOCATABLE, DIMENSION(:) :: rdims1 ! Array dimensions for reading
+ INTEGER(HSIZE_T), ALLOCATABLE, DIMENSION(:) :: rdims ! Array dimensions for reading
+
+ INTEGER :: error
+ TYPE(c_ptr) :: f_ptr
+
+ TYPE(c_funptr) :: func
+
+! Initialize the data
+! -------------------
+
+ DO i = 1, LENGTH
+ DO j = 1, ALEN
+ cf(i)%a(j) = 100*(i+1) + j
+ cf(i)%b(j) = (100.*(i+1) + 0.01*j)
+ cf(i)%c(j) = 100.*(i+1) + 0.02*j
+ ENDDO
+ ENDDO
+
+ ! Set the number of data members
+ ! ------------------------------
+
+ dtsinfo%nsubfields = 3
+
+ ! Initialize the offsets
+ ! -----------------------
+ CALL h5tget_size_f(H5T_NATIVE_INTEGER, type_sizei, error)
+ CALL check("h5tget_size_f", error, total_error)
+ IF(sizeof(cf(1)%b(1)).EQ.4)THEN
+ CALL h5tget_size_f(H5T_NATIVE_REAL_4, type_sizer, error)
+ CALL check("h5tget_size_f", error, total_error)
+ ELSE IF(sizeof(cf(1)%b(1)).EQ.8)THEN
+ CALL h5tget_size_f(H5T_NATIVE_REAL_8, type_sizer, error)
+ CALL check("h5tget_size_f", error, total_error)
+ ENDIF
+
+ CALL h5tget_size_f(H5T_NATIVE_DOUBLE, type_sized, error)
+ CALL check("h5tget_size_f", error, total_error)
+
+ dtsinfo%offset(1) = H5OFFSETOF(C_LOC(cf(1)),C_LOC(cf(1)%a(1)))
+ dtsinfo%offset(2) = H5OFFSETOF(C_LOC(cf(1)),C_LOC(cf(1)%b(1)))
+ dtsinfo%offset(3) = H5OFFSETOF(C_LOC(cf(1)),C_LOC(cf(1)%c(1)))
+
+
+ ! Initialize the data type IDs
+ ! ----------------------------
+ dtsinfo%datatype(1) = H5T_NATIVE_INTEGER;
+ dtsinfo%datatype(2) = H5T_NATIVE_REAL_4;
+ dtsinfo%datatype(3) = H5T_NATIVE_REAL_8;
+
+
+ ! Initialize the names of data members
+ ! ------------------------------------
+
+ dtsinfo%name(1) = "One "
+ dtsinfo%name(2) = "Two "
+ dtsinfo%name(3) = "Three"
+
+ ! Create file
+ ! -----------
+ CALL h5fcreate_f(FILENAME,H5F_ACC_TRUNC_F,fid,error)
+ CALL check("h5fcreate_f", error, total_error)
+
+
+ ! Create data space
+ ! -----------------
+ CALL h5screate_simple_f(RANK, dim, space, error)
+ CALL check("h5screate_simple_f", error, total_error)
+
+
+ ! Create the memory data type
+ ! ---------------------------
+
+ CALL h5tcreate_f(H5T_COMPOUND_F, H5OFFSETOF(C_LOC(cf(1)), C_LOC(cf(2))), type, error)
+ CALL check("h5tcreate_f", error, total_error)
+
+ ! Add members to the compound data type
+ ! --------------------------------------
+
+ DO i = 1, dtsinfo%nsubfields
+ CALL h5tarray_create_f(dtsinfo%datatype(i), ndims(i), dima, array_dt, error)
+ CALL check("h5tarray_create_f", error, total_error)
+ CALL H5Tinsert_f(type, dtsinfo%name(i), dtsinfo%offset(i), array_dt, error)
+ CALL check("h5tinsert_f", error, total_error)
+
+ CALL h5tclose_f(array_dt,error)
+ CALL check("h5tclose_f", error, total_error)
+ ENDDO
+
+ ! Create the dataset
+ ! ------------------ /
+ CALL h5dcreate_f(fid,FIELDNAME,type, space, dataset,error)
+ CALL check("h5dcreate_f", error, total_error)
+
+ ! Write data to the dataset
+ ! -------------------------
+
+ ALLOCATE(rdims(1:2)) ! dummy not needed
+
+ f_ptr = C_LOC(cf(1))
+
+ CALL h5dwrite_f(dataset, type, f_ptr, error )
+ CALL check("h5dwrite_f", error, total_error)
+
+
+ ALLOCATE(rdims1(1:2)) ! dummy not needed
+ f_ptr = C_LOC(cfr(1))
+ CALL H5Dread_f(dataset, type, f_ptr, error)
+ CALL check("H5Dread_f", error, total_error)
+
+ ! Verify correct data
+ ! -------------------
+ DO i = 1, LENGTH
+ DO j = 1, ALEN
+ IF( cf(i)%a(j) .NE. cfr(i)%a(j) )THEN
+ PRINT*, 'ERROR: Wrong integer data is read back by H5Dread_f '
+ total_error = total_error + 1
+ ENDIF
+ IF( cf(i)%b(j) .NE. cfr(i)%b(j) )THEN
+ PRINT*, 'ERROR: Wrong real data is read back by H5Dread_f '
+ total_error = total_error + 1
+ ENDIF
+ IF( cf(i)%c(j) .NE. cfr(i)%c(j) )THEN
+ PRINT*, 'ERROR: Wrong double data is read back by H5Dread_f '
+ total_error = total_error + 1
+ ENDIF
+ ENDDO
+ ENDDO
+
+
+ ! Release IDs
+ ! -----------
+ CALL h5tclose_f(type,error)
+ CALL check("h5tclose_f", error, total_error)
+ CALL h5sclose_f(space,error)
+ CALL check("h5sclose_f", error, total_error)
+ CALL h5dclose_f(dataset, error)
+ CALL check("h5dclose_f", error, total_error)
+ CALL h5fclose_f(fid,error)
+ CALL check("h5fclose_f", error, total_error)
+
+ !****************************
+ ! Reopen the file and update
+ !****************************
+
+ CALL h5fopen_f (FILENAME, H5F_ACC_RDWR_F, fid, error)
+ CALL check("h5fopen_f", error, total_error)
+
+ CALL h5dopen_f(fid, FIELDNAME, dataset, error)
+ CALL check("h5dopen_f", error, total_error)
+
+ sizeof_compound = INT( type_sizer*ALEN, size_t)
+
+ CALL h5tcreate_f(H5T_COMPOUND_F, sizeof_compound , type, error)
+ CALL check("h5tcreate_f", error, total_error)
+
+ CALL h5tarray_create_f(H5T_NATIVE_REAL_4, 1, dima, array_dt, error)
+ CALL check("h5tarray_create_f", error, total_error)
+
+ CALL h5tinsert_f(TYPE, "Two", 0_size_t, array_dt, error)
+ CALL check("h5tinsert_f", error, total_error)
+
+ ! Initialize the data to overwrite
+ ! --------------------------------
+ DO i = 1, LENGTH
+ DO j = 1, ALEN
+ fld(i)%b(j) = 1.313
+ cf(i)%b(j) = fld(i)%b(j)
+ ENDDO
+ ENDDO
+
+ f_ptr = C_LOC(fld(1))
+
+ CALL h5dwrite_f(dataset, TYPE, f_ptr, error )
+ CALL check("h5dwrite_f", error, total_error)
+
+
+ ! Read just the field changed
+
+ f_ptr = C_LOC(fldr(1))
+ CALL H5Dread_f(dataset, TYPE, f_ptr, error)
+ CALL check("H5Dread_f", error, total_error)
+
+ DO i = 1, LENGTH
+ DO j = 1, ALEN
+ IF( fld(i)%b(j) .NE. fldr(i)%b(j) )THEN
+ PRINT*, 'ERROR: Wrong real data is read back by H5Dread_f '
+ total_error = total_error + 1
+ ENDIF
+ ENDDO
+ ENDDO
+ CALL h5tclose_f(TYPE,error)
+ CALL check("h5tclose_f", error, total_error)
+ CALL h5tclose_f(array_dt,error)
+ CALL check("h5tclose_f", error, total_error)
+
+ CALL h5dget_type_f(dataset, type, error)
+ CALL check("h5dget_type_f", error, total_error)
+
+
+ ! Read the entire dataset again
+
+ f_ptr = C_LOC(cfr(1))
+ CALL H5Dread_f(dataset, TYPE, f_ptr, error)
+ CALL check("H5Dread_f", error, total_error)
+
+
+ ! Verify correct data
+ ! -------------------
+
+ DO i = 1, LENGTH
+ DO j = 1, ALEN
+ IF( cf(i)%a(j) .NE. cfr(i)%a(j) )THEN
+ PRINT*, 'ERROR: Wrong integer data is read back by H5Dread_f '
+ total_error = total_error + 1
+ ENDIF
+ IF( cf(i)%b(j) .NE. cfr(i)%b(j) )THEN
+ PRINT*, 'ERROR: Wrong real data is read back by H5Dread_f '
+ total_error = total_error + 1
+ ENDIF
+ IF( cf(i)%c(j) .NE. cfr(i)%c(j) )THEN
+ PRINT*, 'ERROR: Wrong double data is read back by H5Dread_f '
+ total_error = total_error + 1
+ ENDIF
+ ENDDO
+ ENDDO
+
+ CALL h5dclose_f(dataset, error)
+ CALL check("h5dclose_f", error, total_error)
+
+ CALL h5tclose_f(type,error)
+ CALL check("h5tclose_f", error, total_error)
+
+ CALL h5fclose_f(fid,error)
+ CALL check("h5fclose_f", error, total_error)
+
+!**************************************************
+! Reopen the file and print out all the data again
+!**************************************************
+
+ CALL h5fopen_f (FILENAME, H5F_ACC_RDWR_F, fid, error)
+ CALL check("h5fopen_f", error, total_error)
+
+
+ CALL h5dopen_f(fid, FIELDNAME, dataset, error)
+ CALL check("h5dopen_f", error, total_error)
+
+
+ CALL h5dget_type_f(dataset, type, error)
+ CALL check("h5dget_type_f", error, total_error)
+
+
+ ! Reset the data to read in
+ ! -------------------------
+
+ DO i = 1, LENGTH
+ cfr(i)%a(:) = 0
+ cfr(i)%b(:) = 0
+ cfr(i)%c(:) = 0
+ ENDDO
+
+ f_ptr = C_LOC(cfr(1))
+ CALL H5Dread_f(dataset, TYPE, f_ptr, error)
+ CALL check("H5Dread_f", error, total_error)
+
+ ! Verify correct data
+ ! -------------------
+
+ DO i = 1, LENGTH
+ DO j = 1, ALEN
+ IF( cf(i)%a(j) .NE. cfr(i)%a(j) )THEN
+ PRINT*, 'ERROR: Wrong integer data is read back by H5Dread_f '
+ total_error = total_error + 1
+ ENDIF
+ IF( cf(i)%b(j) .NE. cfr(i)%b(j) )THEN
+ PRINT*, 'ERROR: Wrong real data is read back by H5Dread_f '
+ total_error = total_error + 1
+ ENDIF
+ IF( cf(i)%c(j) .NE. cfr(i)%c(j) )THEN
+ PRINT*, 'ERROR: Wrong double data is read back by H5Dread_f '
+ total_error = total_error + 1
+ ENDIF
+ ENDDO
+ ENDDO
+
+ CALL h5dclose_f(dataset, error)
+ CALL check("h5dclose_f", error, total_error)
+
+ CALL h5tclose_f(type,error)
+ CALL check("h5tclose_f", error, total_error)
+
+ CALL h5fclose_f(fid,error)
+ CALL check("h5fclose_f", error, total_error)
+
+ END SUBROUTINE test_array_bkg
+
+
+
+ SUBROUTINE test_h5kind_to_type(total_error)
+
+ USE ISO_C_BINDING
+ USE HDF5 ! This module contains all necessary modules
+
+ IMPLICIT NONE
+
+ INTEGER, INTENT(INOUT) :: total_error
+
+ INTEGER, PARAMETER :: int_kind_1 = SELECTED_INT_KIND(Fortran_INTEGER_1) !should map to INTEGER*1 on most modern processors
+ INTEGER, PARAMETER :: int_kind_4 = SELECTED_INT_KIND(Fortran_INTEGER_2) !should map to INTEGER*2 on most modern processors
+ INTEGER, PARAMETER :: int_kind_8 = SELECTED_INT_KIND(Fortran_INTEGER_4) !should map to INTEGER*4 on most modern processors
+ INTEGER, PARAMETER :: int_kind_16 = SELECTED_INT_KIND(Fortran_INTEGER_8) !should map to INTEGER*8 on most modern processors
+
+ INTEGER, PARAMETER :: real_kind_7 = SELECTED_REAL_KIND(Fortran_REAL_4) !should map to REAL*4 on most modern processors
+ INTEGER, PARAMETER :: real_kind_15 = SELECTED_REAL_KIND(Fortran_REAL_8) !should map to REAL*8 on most modern processors
+
+ CHARACTER(LEN=8), PARAMETER :: filename = "dsetf.h5" ! File name
+ CHARACTER(LEN=5), PARAMETER :: dsetname1 = "dset1" ! Dataset name
+ CHARACTER(LEN=5), PARAMETER :: dsetname2 = "dset2" ! Dataset name
+ CHARACTER(LEN=5), PARAMETER :: dsetname4 = "dset4" ! Dataset name
+ CHARACTER(LEN=5), PARAMETER :: dsetname8 = "dset8" ! Dataset name
+ CHARACTER(LEN=6), PARAMETER :: dsetnamer = "dsetr" ! Dataset name
+ CHARACTER(LEN=6), PARAMETER :: dsetnamer4 = "dsetr4" ! Dataset name
+ CHARACTER(LEN=6), PARAMETER :: dsetnamer8 = "dsetr8" ! Dataset name
+
+ INTEGER(HID_T) :: file_id ! File identifier
+ INTEGER(HID_T) :: dset_id1 ! Dataset identifier
+ INTEGER(HID_T) :: dset_id4 ! Dataset identifier
+ INTEGER(HID_T) :: dset_id8 ! Dataset identifier
+ INTEGER(HID_T) :: dset_id16 ! Dataset identifier
+ INTEGER(HID_T) :: dset_idr ! Dataset identifier
+ INTEGER(HID_T) :: dset_idr4 ! Dataset identifier
+ INTEGER(HID_T) :: dset_idr8 ! Dataset identifier
+
+ INTEGER :: error ! Error flag
+ INTEGER :: i, j
+
+! Data buffers:
+
+ INTEGER, DIMENSION(1:4) :: dset_data
+
+ INTEGER(int_kind_1), DIMENSION(1:4), TARGET :: dset_data_i1, data_out_i1
+ INTEGER(int_kind_4), DIMENSION(1:4), TARGET :: dset_data_i4, data_out_i4
+ INTEGER(int_kind_8), DIMENSION(1:4), TARGET :: dset_data_i8, data_out_i8
+ INTEGER(int_kind_16), DIMENSION(1:4), TARGET :: dset_data_i16, data_out_i16
+
+ REAL, DIMENSION(1:4), TARGET :: dset_data_r, data_out_r
+ REAL(real_kind_7), DIMENSION(1:4), TARGET :: dset_data_r7, data_out_r7
+ REAL(real_kind_15), DIMENSION(1:4), TARGET :: dset_data_r15, data_out_r15
+
+ INTEGER(HSIZE_T), DIMENSION(1:1) :: data_dims = (/4/)
+ INTEGER(HID_T) :: dspace_id ! Dataspace identifier
+
+ TYPE(C_PTR) :: f_ptr
+ INTEGER(hid_t) :: datatype ! Common datatype ID
+
+ !
+ ! Initialize the dset_data array.
+ !
+ DO i = 1, 4
+ dset_data_i1(i) = i
+ dset_data_i4(i) = i
+ dset_data_i8(i) = i
+ dset_data_i16(i) = i
+
+ dset_data_r(i) = (i)*100.
+ dset_data_r7(i) = (i)*100.
+ dset_data_r15(i) = (i)*1000.
+
+ END DO
+
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, error)
+ CALL check("h5fcreate_f",error, total_error)
+ !
+ ! Create dataspaces for datasets
+ !
+ CALL h5screate_simple_f(1, data_dims , dspace_id, error)
+ CALL check("h5screate_simple_f",error, total_error)
+ !
+ ! Create the dataset.
+ !
+ CALL H5Dcreate_f(file_id, dsetname1, h5kind_to_type(int_kind_1,H5_INTEGER_KIND), dspace_id, dset_id1, error)
+ CALL check("H5Dcreate_f",error, total_error)
+ CALL H5Dcreate_f(file_id, dsetname2, h5kind_to_type(int_kind_4,H5_INTEGER_KIND), dspace_id, dset_id4, error)
+ CALL check("H5Dcreate_f",error, total_error)
+ CALL H5Dcreate_f(file_id, dsetname4, h5kind_to_type(int_kind_8,H5_INTEGER_KIND), dspace_id, dset_id8, error)
+ CALL check("H5Dcreate_f",error, total_error)
+ CALL H5Dcreate_f(file_id, dsetname8, h5kind_to_type(int_kind_16,H5_INTEGER_KIND), dspace_id, dset_id16, error)
+ CALL check("H5Dcreate_f",error, total_error)
+
+ CALL H5Dcreate_f(file_id, dsetnamer, H5T_NATIVE_REAL, dspace_id, dset_idr, error)
+ CALL check("H5Dcreate_f",error, total_error)
+ CALL H5Dcreate_f(file_id, dsetnamer4, h5kind_to_type(real_kind_7,H5_REAL_KIND), dspace_id, dset_idr4, error)
+ CALL check("H5Dcreate_f",error, total_error)
+ CALL H5Dcreate_f(file_id, dsetnamer8, h5kind_to_type(real_kind_15,H5_REAL_KIND), dspace_id, dset_idr8, error)
+ CALL check("H5Dcreate_f",error, total_error)
+
+ !
+ ! Write the dataset.
+ !
+ f_ptr = C_LOC(dset_data_i1(1))
+ CALL h5dwrite_f(dset_id1, h5kind_to_type(int_kind_1,H5_INTEGER_KIND), f_ptr, error)
+ CALL check("H5Dwrite_f",error, total_error)
+ f_ptr = C_LOC(dset_data_i4(1))
+ CALL h5dwrite_f(dset_id4, h5kind_to_type(int_kind_4,H5_INTEGER_KIND), f_ptr, error)
+ CALL check("H5Dwrite_f",error, total_error)
+ f_ptr = C_LOC(dset_data_i8(1))
+ CALL h5dwrite_f(dset_id8, h5kind_to_type(int_kind_8,H5_INTEGER_KIND), f_ptr, error)
+ CALL check("H5Dwrite_f",error, total_error)
+ f_ptr = C_LOC(dset_data_i16(1))
+ CALL h5dwrite_f(dset_id16, h5kind_to_type(int_kind_16,H5_INTEGER_KIND), f_ptr, error)
+ CALL check("H5Dwrite_f",error, total_error)
+ f_ptr = C_LOC(dset_data_r(1))
+ CALL h5dwrite_f(dset_idr, H5T_NATIVE_REAL, f_ptr, error)
+ CALL check("H5Dwrite_f",error, total_error)
+ f_ptr = C_LOC(dset_data_r7(1))
+ CALL h5dwrite_f(dset_idr4, h5kind_to_type(real_kind_7,H5_REAL_KIND), f_ptr, error)
+ CALL check("H5Dwrite_f",error, total_error)
+ f_ptr = C_LOC(dset_data_r15(1))
+ CALL h5dwrite_f(dset_idr8, h5kind_to_type(real_kind_15,H5_REAL_KIND), f_ptr, error)
+ CALL check("H5Dwrite_f",error, total_error)
+ !
+ ! Close the file
+ !
+ CALL h5fclose_f(file_id, error)
+ CALL check("h5fclose_f",error, total_error)
+
+ ! Open the file
+
+ CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file_id, error)
+ CALL check("h5fopen_f",error, total_error)
+ !
+ ! Read the dataset.
+ !
+ ! Read data back into an integer size that is larger then the original size used for
+ ! writing the data
+ f_ptr = C_LOC(data_out_i1)
+ CALL h5dread_f(dset_id1, h5kind_to_type(int_kind_1,H5_INTEGER_KIND), f_ptr, error)
+ CALL check("h5dread_f",error, total_error)
+ f_ptr = C_LOC(data_out_i4)
+ CALL h5dread_f(dset_id4, h5kind_to_type(int_kind_4,H5_INTEGER_KIND), f_ptr, error)
+ CALL check("h5dread_f",error, total_error)
+ f_ptr = C_LOC(data_out_i8)
+ CALL h5dread_f(dset_id8, h5kind_to_type(int_kind_8,H5_INTEGER_KIND), f_ptr, error)
+ CALL check("h5dread_f",error, total_error)
+ f_ptr = C_LOC(data_out_i16)
+ CALL h5dread_f(dset_id16, h5kind_to_type(int_kind_16,H5_INTEGER_KIND), f_ptr, error)
+ CALL check("h5dread_f",error, total_error)
+ f_ptr = C_LOC(data_out_r)
+ CALL h5dread_f(dset_idr, H5T_NATIVE_REAL, f_ptr, error)
+ CALL check("h5dread_f",error, total_error)
+ f_ptr = C_LOC(data_out_r7)
+ CALL h5dread_f(dset_idr4, h5kind_to_type(real_kind_7,H5_REAL_KIND), f_ptr, error)
+ CALL check("h5dread_f",error, total_error)
+ f_ptr = C_LOC(data_out_r15)
+ CALL h5dread_f(dset_idr8, h5kind_to_type(real_kind_15,H5_REAL_KIND), f_ptr, error)
+ CALL check("h5dread_f",error, total_error)
+
+ DO i = 1, 4
+
+ CALL verify_Fortran_INTEGER_4("h5kind_to_type1",INT(dset_data_i1(i),int_kind_8),INT(data_out_i1(i),int_kind_8),total_error)
+ CALL verify_Fortran_INTEGER_4("h5kind_to_type2",INT(dset_data_i4(i),int_kind_8),INT(data_out_i4(i),int_kind_8),total_error)
+ CALL verify_Fortran_INTEGER_4("h5kind_to_type3",INT(dset_data_i8(i),int_kind_8),INT(data_out_i8(i),int_kind_8),total_error)
+ CALL verify_Fortran_INTEGER_4("h5kind_to_type4",INT(dset_data_i16(i),int_kind_8),INT(data_out_i16(i),int_kind_8),total_error)
+
+ CALL verify_real_kind_7("h5kind_to_type5",REAL(dset_data_r(i),real_kind_7),REAL(data_out_r(i),real_kind_7),total_error)
+ CALL verify_real_kind_7("h5kind_to_type6",REAL(dset_data_r7(i),real_kind_7),REAL(data_out_r7(i),real_kind_7),total_error)
+ CALL verify_real_kind_7("h5kind_to_type7",REAL(dset_data_r15(i),real_kind_7),REAL(data_out_r15(i),real_kind_7),total_error)
+
+ END DO
+
+ !
+ ! Close the dataset.
+ !
+ CALL h5dclose_f(dset_id1, error)
+ CALL check("h5dclose_f",error, total_error)
+ CALL h5dclose_f(dset_id4, error)
+ CALL check("h5dclose_f",error, total_error)
+ CALL h5dclose_f(dset_id8, error)
+ CALL check("h5dclose_f",error, total_error)
+ CALL h5dclose_f(dset_id16, error)
+ CALL check("h5dclose_f",error, total_error)
+ CALL h5dclose_f(dset_idr4, error)
+ CALL check("h5dclose_f",error, total_error)
+ CALL h5dclose_f(dset_idr8, error)
+ CALL check("h5dclose_f",error, total_error)
+ !
+ ! Close the file.
+ !
+ CALL h5fclose_f(file_id, error)
+ CALL check("h5fclose_f",error, total_error)
+
+END SUBROUTINE test_h5kind_to_type
+
+!************************************************************
+!
+! This test reads and writes array datatypes
+! to a dataset. The test first writes integers arrays of
+! dimension ADIM0xADIM1 to a dataset with a dataspace of
+! DIM0, then closes the file. Next, it reopens the file,
+! reads back the data.
+!
+!************************************************************
+SUBROUTINE t_array(total_error)
+
+ USE HDF5
+ USE ISO_C_BINDING
+
+ IMPLICIT NONE
+
+ INTEGER, INTENT(INOUT) :: total_error
+
+ CHARACTER(LEN=19), PARAMETER :: filename = "t_array_F03.h5"
+ CHARACTER(LEN=3) , PARAMETER :: dataset = "DS1"
+ INTEGER , PARAMETER :: dim0 = 4
+ INTEGER , PARAMETER :: adim0 = 3
+ INTEGER , PARAMETER :: adim1 = 5
+ INTEGER(HID_T) :: file, filetype, memtype, space, dset ! Handles
+ INTEGER :: hdferr
+ INTEGER(HSIZE_T), DIMENSION(1:1) :: dims = (/dim0/)
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: adims = (/adim0, adim1/)
+ INTEGER(HSIZE_T), DIMENSION(1:3) :: bdims = (/dim0, adim0, adim1/)
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: maxdims
+ INTEGER, DIMENSION(1:dim0, 1:adim0, 1:adim1), TARGET :: wdata ! Write buffer
+ INTEGER, DIMENSION(:,:,:), ALLOCATABLE, TARGET :: rdata ! Read buffer
+ INTEGER :: i, j, k
+ TYPE(C_PTR) :: f_ptr
+ INTEGER :: error ! Error flag
+
+ !
+ ! Initialize data. i is the element in the dataspace, j and k the
+ ! elements within the array datatype.
+ !
+ DO i = 1, dim0
+ DO j = 1, adim0
+ DO k = 1, adim1
+ wdata(i,j,k) = (i-1)*(j-1)-(j-1)*(k-1)+(i-1)*(k-1)
+ ENDDO
+ ENDDO
+ ENDDO
+ !
+ ! Create a new file using the default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file, error)
+ CALL check("h5fcreate_f",error, error)
+ !
+ ! Create array datatypes for file and memory.
+ !
+ CALL H5Tarray_create_f(INT(H5T_STD_I64LE, HID_T), 2, adims, filetype, error)
+ CALL check("H5Tarray_create_f",error, total_error)
+ CALL H5Tarray_create_f(H5T_NATIVE_INTEGER, 2, adims, memtype, error)
+ CALL check("H5Tarray_create_f",error, total_error)
+ !
+ ! Create dataspace. Setting maximum size to be the current size.
+ !
+ CALL h5screate_simple_f(1, dims, space, error)
+ CALL check("h5screate_simple_f",error, total_error)
+ !
+ ! Create the dataset and write the array data to it.
+ !
+ CALL h5dcreate_f(file, dataset, filetype, space, dset, error)
+ CALL check("h5dcreate_f",error, total_error)
+ f_ptr = C_LOC(wdata)
+ CALL h5dwrite_f(dset, memtype, f_ptr, error)
+ CALL check("h5dwrite_f",error, total_error)
+ !
+ ! Close and release resources.
+ !
+ CALL H5Dclose_f(dset, error)
+ CALL check("h5dclose_f",error, total_error)
+ CALL H5Sclose_f(space, error)
+ CALL check("h5sclose_f",error, total_error)
+ CALL H5Tclose_f(filetype, error)
+ CALL check("h5tclose_f",error, total_error)
+ CALL H5Tclose_f(memtype, error)
+ CALL check("h5tclose_f",error, total_error)
+ CALL H5Fclose_f(file, error)
+ CALL check("h5fclose_f",error, total_error)
+ !
+ ! Now we begin the read section of this example.
+ !
+ ! Open file, dataset, and attribute.
+ !
+ CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file, error)
+ CALL check("h5fopen_f",error, total_error)
+ CALL h5dopen_f(file, dataset, dset, error)
+ CALL check("h5dopen_f",error, total_error)
+ !
+ ! Get the datatype and its dimensions.
+ !
+ CALL h5dget_type_f(dset, filetype, error)
+ CALL check("h5dget_type_f",error, error)
+ CALL H5Tget_array_dims_f(filetype, adims, error)
+ CALL check("h5dget_type_f",error, total_error)
+ CALL VERIFY("H5Tget_array_dims_f", INT(adims(1)), adim0, total_error)
+ CALL VERIFY("H5Tget_array_dims_f", INT(adims(2)), adim1, total_error)
+ !
+ ! Get dataspace and allocate memory for read buffer. This is a
+ ! three dimensional attribute when the array datatype is included.
+ !
+ CALL H5Dget_space_f(dset, space, error)
+ CALL check("H5Dget_space_f",error, error)
+ CALL H5Sget_simple_extent_dims_f(space, dims, maxdims, error)
+ CALL check("H5Sget_simple_extent_dims_f",error, total_error)
+ CALL VERIFY("H5Sget_simple_extent_dims_f", INT(dims(1)), dim0, total_error)
+
+ ALLOCATE(rdata(1:dims(1),1:adims(1),1:adims(2)))
+ !
+ ! Create the memory datatype.
+ !
+ CALL H5Tarray_create_f(H5T_NATIVE_INTEGER, 2, adims, memtype, error)
+ CALL check("H5Tarray_create_f",error, total_error)
+ !
+ ! Read the data.
+ !
+
+ f_ptr = C_LOC(rdata)
+ CALL H5Dread_f(dset, memtype, f_ptr, error)
+ CALL check("H5Dread_f",error, total_error)
+ !
+ ! Output the data to the screen.
+ !
+ i_loop: DO i = 1, dims(1)
+ DO j=1, adim0
+ DO k = 1, adim1
+ CALL VERIFY("H5Sget_simple_extent_dims_f", rdata(i,j,k), wdata(i,j,k), total_error)
+ IF(total_error.NE.0) EXIT i_loop
+ ENDDO
+ ENDDO
+ ENDDO i_loop
+ !
+ ! Close and release resources.
+ !
+ DEALLOCATE(rdata)
+ CALL H5Dclose_f(dset, error)
+ CALL check("h5dclose_f",error, total_error)
+ CALL H5Sclose_f(space, error)
+ CALL check("h5sclose_f",error, total_error)
+ CALL H5Tclose_f(filetype, error)
+ CALL check("h5tclose_f",error, total_error)
+ CALL H5Tclose_f(memtype, error)
+ CALL check("h5tclose_f",error, total_error)
+ CALL H5Fclose_f(file, error)
+ CALL check("h5fclose_f",error, total_error)
+
+END SUBROUTINE t_array
+
+SUBROUTINE t_enum(total_error)
+
+ USE HDF5
+ USE ISO_C_BINDING
+
+ IMPLICIT NONE
+
+ INTEGER, INTENT(INOUT) :: total_error
+
+ CHARACTER(LEN=19), PARAMETER :: filename = "t_enum_F03.h5"
+ CHARACTER(LEN=3) , PARAMETER :: dataset = "DS1"
+ INTEGER , PARAMETER :: dim0 = 4
+ INTEGER , PARAMETER :: dim1 = 7
+ INTEGER(HID_T) :: F_BASET ! File base type
+ INTEGER(HID_T) :: M_BASET ! Memory base type
+ INTEGER(SIZE_T) , PARAMETER :: NAME_BUF_SIZE = 16
+
+! Enumerated type
+ INTEGER, PARAMETER :: SOLID=0, LIQUID=1, GAS=2, PLASMA=3
+
+ INTEGER(HID_T) :: file, filetype, memtype, space, dset ! Handles
+
+ INTEGER(hsize_t), DIMENSION(1:2) :: dims = (/dim0, dim1/)
+ INTEGER, DIMENSION(1:dim0, 1:dim1), TARGET :: wdata ! Write buffer
+ INTEGER, DIMENSION(:,:), ALLOCATABLE, TARGET :: rdata ! Read buffer
+ INTEGER, DIMENSION(1:1), TARGET :: val
+
+ CHARACTER(LEN=6), DIMENSION(1:4) :: &
+ names = (/"SOLID ", "LIQUID", "GAS ", "PLASMA"/)
+ CHARACTER(LEN=NAME_BUF_SIZE) :: name
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: maxdims
+ INTEGER :: i, j, idx
+ TYPE(C_PTR) :: f_ptr
+ INTEGER :: error ! Error flag
+ !
+ ! Initialize DATA.
+ !
+ F_BASET = H5T_STD_I16BE ! File base type
+ M_BASET = H5T_NATIVE_INTEGER ! Memory base type
+ DO i = 1, dim0
+ DO j = 1, dim1
+ wdata(i,j) = MOD( (j-1)*(i-1), PLASMA+1)
+ ENDDO
+ ENDDO
+ !
+ ! Create a new file using the default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file, error)
+ CALL check("h5fcreate_f",error, total_error)
+ !
+ ! Create the enumerated datatypes for file and memory. This
+ ! process is simplified IF native types are used for the file,
+ ! as only one type must be defined.
+ !
+ CALL h5tenum_create_f(F_BASET, filetype, error)
+ CALL check("h5tenum_create_f",error, total_error)
+
+ CALL h5tenum_create_f(M_BASET, memtype, error)
+ CALL check("h5tenum_create_f",error, total_error)
+
+ DO i = SOLID, PLASMA
+ !
+ ! Insert enumerated value for memtype.
+ !
+ val(1) = i
+ CALL H5Tenum_insert_f(memtype, TRIM(names(i+1)), val(1), error)
+ CALL check("H5Tenum_insert_f", error, total_error)
+ !
+ ! Insert enumerated value for filetype. We must first convert
+ ! the numerical value val to the base type of the destination.
+ !
+ f_ptr = C_LOC(val(1))
+ CALL H5Tconvert_f(M_BASET, F_BASET, INT(1,SIZE_T), f_ptr, error)
+ CALL check("H5Tconvert_f",error, total_error)
+ CALL H5Tenum_insert_f(filetype, TRIM(names(i+1)), val(1), error)
+ CALL check("H5Tenum_insert_f",error, total_error)
+ ENDDO
+ !
+ ! Create dataspace. Setting maximum size to be the current size.
+ !
+ CALL h5screate_simple_f(2, dims, space, total_error)
+ CALL check("h5screate_simple_f",error, total_error)
+ !
+ ! Create the dataset and write the enumerated data to it.
+ !
+ CALL h5dcreate_f(file, dataset, filetype, space, dset, error)
+ CALL check("h5dcreate_f",error, total_error)
+ f_ptr = C_LOC(wdata(1,1))
+ CALL h5dwrite_f(dset, memtype, f_ptr, error)
+ CALL check("h5dwrite_f",error, total_error)
+ !
+ ! Close and release resources.
+ !
+ CALL h5dclose_f(dset , error)
+ CALL check("h5dclose_f",error, total_error)
+ CALL h5sclose_f(space, error)
+ CALL check("h5sclose_f",error, total_error)
+ CALL h5tclose_f(filetype, error)
+ CALL check("h5tclose_f",error, total_error)
+ CALL h5fclose_f(file , error)
+ CALL check("h5fclose_f",error, total_error)
+
+ !
+ ! Now we begin the read section of this example.
+ !
+ ! Open file and dataset.
+ !
+ CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file, error)
+ CALL check("h5fopen_f",error, total_error)
+ CALL h5dopen_f (file, dataset, dset, error)
+ CALL check("h5dopen_f",error, total_error)
+ CALL h5dopen_f(file, dataset, dset, error)
+ CALL check("h5dopen_f",error, total_error)
+ !
+ ! Get dataspace and allocate memory for read buffer.
+ !
+ CALL h5dget_space_f(dset,space, error)
+ CALL check("H5Dget_space_f",error, total_error)
+ CALL h5sget_simple_extent_dims_f(space, dims, maxdims, error)
+ CALL check("H5Sget_simple_extent_dims_f",error, total_error)
+ CALL VERIFY("H5Sget_simple_extent_dims_f", INT(dims(1)), dim0, total_error)
+ CALL VERIFY("H5Sget_simple_extent_dims_f", INT(dims(2)), dim1, total_error)
+
+ ALLOCATE(rdata(1:dims(1),1:dims(2)))
+
+ !
+ ! Read the data.
+ !
+ f_ptr = C_LOC(rdata(1,1))
+ CALL h5dread_f(dset, memtype, f_ptr, error)
+ CALL check("H5Dread_f",error, total_error)
+
+ !
+ ! Output the data to the screen.
+ !
+ i_loop: DO i = 1, dims(1)
+ DO j = 1, dims(2)
+ !
+ ! Get the name of the enumeration member.
+ !
+ CALL h5tenum_nameof_f( memtype, rdata(i,j), NAME_BUF_SIZE, name, error)
+ CALL check("h5tenum_nameof_f",error, total_error)
+ idx = MOD( (j-1)*(i-1), PLASMA+1 ) + 1
+ CALL verifystring("h5tenum_nameof_f",TRIM(name),TRIM(names(idx)), total_error)
+ IF(total_error.NE.0) EXIT i_loop
+ ENDDO
+ ENDDO i_loop
+ !
+ ! Close and release resources.
+ !
+ DEALLOCATE(rdata)
+ CALL h5dclose_f(dset , error)
+ CALL check("h5dclose_f",error, total_error)
+ CALL h5sclose_f(space, error)
+ CALL check("h5sclose_f",error, total_error)
+ CALL h5tclose_f(memtype, error)
+ CALL check("h5tclose_f",error, total_error)
+ CALL h5fclose_f(file , error)
+ CALL check("h5fclose_f",error, total_error)
+
+END SUBROUTINE t_enum
+
+SUBROUTINE t_bit(total_error)
+
+ USE HDF5
+ USE ISO_C_BINDING
+
+ IMPLICIT NONE
+
+ INTEGER, INTENT(INOUT) :: total_error
+
+ CHARACTER(LEN=20), PARAMETER :: filename = "t_bit_F03.h5"
+ CHARACTER(LEN=3) , PARAMETER :: dataset = "DS1"
+ INTEGER , PARAMETER :: dim0 = 4
+ INTEGER , PARAMETER :: dim1 = 7
+
+ INTEGER(HID_T) :: file, space, dset ! Handles
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: dims = (/dim0, dim1/)
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: maxdims
+ INTEGER(C_SIGNED_CHAR), DIMENSION(1:dim0, 1:dim1), TARGET :: wdata ! Write buffer
+ INTEGER(C_SIGNED_CHAR), DIMENSION(:,:), ALLOCATABLE, TARGET :: rdata ! Read buffer
+ INTEGER :: A, B, C, D
+ INTEGER :: Aw, Bw, Cw, Dw
+ INTEGER :: i, j
+ INTEGER, PARAMETER :: hex = Z'00000003'
+ TYPE(C_PTR) :: f_ptr
+ INTEGER :: error ! Error flag
+ !
+ ! Initialize data. We will manually pack 4 2-bit integers into
+ ! each unsigned char data element.
+ !
+ DO i = 0, dim0-1
+ DO j = 0, dim1-1
+ wdata(i+1,j+1) = 0
+ wdata(i+1,j+1) = IOR( wdata(i+1,j+1), INT(IAND(i * j - j, hex),C_SIGNED_CHAR) ) ! Field "A"
+ wdata(i+1,j+1) = IOR( wdata(i+1,j+1), INT(ISHFT(IAND(i,hex),2),C_SIGNED_CHAR) ) ! Field "B"
+ wdata(i+1,j+1) = IOR( wdata(i+1,j+1), INT(ISHFT(IAND(j,hex),4),C_SIGNED_CHAR) ) ! Field "C"
+ wdata(i+1,j+1) = IOR( wdata(i+1,j+1), INT(ISHFT(IAND(i+j,hex),6),C_SIGNED_CHAR) ) ! Field "D"
+ ENDDO
+ ENDDO
+ !
+ ! Create a new file using the default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file, error)
+ CALL check("h5fcreate_f",error, total_error)
+ !
+ ! Create dataspace. Setting maximum size to be the current size.
+ !
+ CALL h5screate_simple_f(2, dims, space, error)
+ CALL check("h5screate_simple_f",error, total_error)
+ !
+ ! Create the dataset and write the bitfield data to it.
+ !
+ CALL H5Dcreate_f(file, dataset, H5T_STD_B8BE, space, dset, error)
+ CALL check("h5dcreate_f",error, total_error)
+ f_ptr = C_LOC(wdata(1,1))
+ CALL H5Dwrite_f(dset, H5T_NATIVE_B8, f_ptr, error)
+ CALL check("h5dwrite_f",error, total_error)
+ !
+ ! Close and release resources.
+ !
+ CALL H5Dclose_f(dset, error)
+ CALL check("h5dclose_f",error, total_error)
+ CALL H5Sclose_f(space, error)
+ CALL check("h5sclose_f",error, total_error)
+ CALL H5Fclose_f(file, error)
+ CALL check("h5fclose_f",error, total_error)
+ !
+ ! Now we begin the read section of this example.
+ !
+ ! Open file, dataset.
+ !
+ CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file, error)
+ CALL check("h5fopen_f",error, total_error)
+ CALL h5dopen_f(file, dataset, dset, error)
+ CALL check("h5dopen_f",error, total_error)
+ !
+ ! Get dataspace and allocate memory for read buffer.
+ !
+ CALL H5Dget_space_f(dset, space, error)
+ CALL check("H5Dget_space_f",error, total_error)
+ CALL H5Sget_simple_extent_dims_f(space, dims, maxdims, error)
+ CALL check("H5Sget_simple_extent_dims_f",error, total_error)
+ CALL VERIFY("H5Sget_simple_extent_dims_f", INT(dims(1)), dim0, total_error)
+ CALL VERIFY("H5Sget_simple_extent_dims_f", INT(dims(2)), dim1, total_error)
+ ALLOCATE(rdata(1:dims(1),1:dims(2)))
+ !
+ ! Read the data.
+ !
+ f_ptr = C_LOC(rdata)
+ CALL H5Dread_f(dset, H5T_NATIVE_B8, f_ptr, error)
+ CALL check("H5Dread_f",error, total_error)
+ !
+ ! Output the data to the screen.
+ !
+ i_loop: DO i = 1, dims(1)
+ DO j = 1, dims(2)
+ A = IAND(rdata(i,j), INT(hex,C_SIGNED_CHAR)) ! Retrieve field "A"
+ B = IAND(ISHFT(rdata(i,j),-2), INT(hex,C_SIGNED_CHAR)) ! Retrieve field "B"
+ C = IAND(ISHFT(rdata(i,j),-4), INT(hex,C_SIGNED_CHAR)) ! Retrieve field "C"
+ D = IAND(ISHFT(rdata(i,j),-6), INT(hex,C_SIGNED_CHAR)) ! Retrieve field "D"
+
+ Aw = IAND(wdata(i,j), INT(hex,C_SIGNED_CHAR))
+ Bw = IAND(ISHFT(wdata(i,j),-2), INT(hex,C_SIGNED_CHAR))
+ Cw = IAND(ISHFT(wdata(i,j),-4), INT(hex,C_SIGNED_CHAR))
+ Dw = IAND(ISHFT(wdata(i,j),-6), INT(hex,C_SIGNED_CHAR))
+
+ CALL VERIFY("bitfield", A, Aw, total_error)
+ CALL VERIFY("bitfield", B, Bw, total_error)
+ CALL VERIFY("bitfield", C, Cw, total_error)
+ CALL VERIFY("bitfield", D, Dw, total_error)
+ IF(total_error.NE.0) EXIT i_loop
+ ENDDO
+ ENDDO i_loop
+ !
+ ! Close and release resources.
+ !
+ DEALLOCATE(rdata)
+ CALL H5Dclose_f(dset, error)
+ CALL check("h5dclose_f",error, total_error)
+ CALL H5Sclose_f(space, error)
+ CALL check("h5sclose_f",error, total_error)
+ CALL H5Fclose_f(file, error)
+ CALL check("h5fclose_f",error, total_error)
+
+END SUBROUTINE t_bit
+
+SUBROUTINE t_opaque(total_error)
+
+ USE HDF5
+ USE ISO_C_BINDING
+
+ IMPLICIT NONE
+
+ INTEGER, INTENT(INOUT) :: total_error
+ CHARACTER(LEN=20), PARAMETER :: filename = "t_opaque_F03.h5"
+ CHARACTER(LEN=3) , PARAMETER :: dataset = "DS1"
+ INTEGER , PARAMETER :: dim0 = 4
+ INTEGER(SIZE_T) , PARAMETER :: size = 7
+ INTEGER(HID_T) :: file, space, dtype, dset ! Handles
+ INTEGER(size_t) :: len
+ INTEGER(hsize_t), DIMENSION(1:1) :: dims = (/DIM0/)
+
+ CHARACTER(LEN=size), DIMENSION(1:dim0), TARGET :: wdata ! Write buffer
+ CHARACTER(LEN=size), DIMENSION(:), ALLOCATABLE, TARGET :: rdata ! Read buffer
+ CHARACTER(LEN=size-1) :: str = "OPAQUE"
+
+ CHARACTER(LEN=14) :: tag_sm ! Test reading obaque tag into
+ CHARACTER(LEN=15) :: tag_exact ! buffers that are: to small, exact
+ CHARACTER(LEN=17) :: tag_big ! and to big.
+
+ INTEGER :: taglen
+ INTEGER(HSIZE_T), DIMENSION(1:1) :: maxdims
+ INTEGER :: i
+ CHARACTER(LEN=1) :: ichr
+ TYPE(C_PTR) :: f_ptr
+ INTEGER :: error
+ !
+ ! Initialize data.
+ !
+ DO i = 1, dim0
+ WRITE(ichr,'(I1)') i-1
+ wdata(i) = str//ichr
+ ENDDO
+ !
+ ! Create a new file using the default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file, error)
+ CALL check("h5fcreate_f",error, total_error)
+ !
+ ! Create opaque datatype and set the tag to something appropriate.
+ ! For this example we will write and view the data as a character
+ ! array.
+ !
+ CALL h5tcreate_f(h5T_OPAQUE_F, size, dtype, error)
+ CALL check("h5tcreate_f",error, total_error)
+ CALL h5tset_tag_f(dtype,"Character array",error)
+ CALL check("h5tset_tag_f",error, total_error)
+ !
+ ! Create dataspace. Setting maximum size to be the current size.
+ !
+ CALL h5screate_simple_f(1, dims, space, error)
+ CALL check("h5screate_simple_f",error, total_error)
+ !
+ ! Create the dataset and write the opaque data to it.
+ !
+ CALL h5dcreate_f(file, dataset, dtype, space, dset, error)
+ CALL check("h5dcreate_f",error, total_error)
+ f_ptr = C_LOC(wdata(1))
+ CALL h5dwrite_f(dset, dtype, f_ptr, error)
+ CALL check("h5dwrite_f",error, total_error)
+ !
+ ! Close and release resources.
+ !
+ CALL H5Dclose_f(dset, error)
+ CALL check("h5dclose_f",error, total_error)
+ CALL H5Sclose_f(space, error)
+ CALL check("h5sclose_f",error, total_error)
+ CALL H5Tclose_f(dtype, error)
+ CALL check("h5tclose_f",error, total_error)
+ CALL H5Fclose_f(file, error)
+ CALL check("h5fclose_f",error, total_error)
+ !
+ ! Now we begin the read section of this example.
+ !
+ ! Open file and dataset.
+ !
+ CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file, error)
+ CALL check("h5fopen_f",error, total_error)
+ CALL h5dopen_f(file, dataset, dset, error)
+ CALL check("h5dopen_f",error, total_error)
+ !
+ ! Get datatype and properties for the datatype.
+ !
+ CALL h5dget_type_f(dset, dtype, error)
+ CALL check("h5dget_type_f",error, total_error)
+ CALL h5tget_size_f(dtype, len, error)
+ CALL check("h5tget_size_f",error, total_error)
+
+ ! Next tests should return
+ ! opaque_tag = tag = "Character array" and the actual length = 15
+
+ ! Test reading into a string that is to small
+ CALL h5tget_tag_f(dtype, tag_sm, taglen, error)
+ CALL check("h5tget_tag_f",error, total_error)
+ CALL VERIFY("h5tget_tag_f", taglen, 15, total_error)
+ CALL verifystring("h5tget_tag_f",tag_sm,"Character arra", total_error)
+
+ ! Test reading into a string that is exact
+ CALL h5tget_tag_f(dtype, tag_exact, taglen, error)
+ CALL check("h5tget_tag_f",error, total_error)
+ CALL VERIFY("h5tget_tag_f", taglen, 15, total_error)
+ CALL verifystring("h5tget_tag_f",tag_exact,"Character array", total_error)
+
+ ! Test reading into a string that is to big
+ CALL h5tget_tag_f(dtype, tag_big, taglen, error)
+ CALL check("h5tget_tag_f",error, total_error)
+ CALL VERIFY("h5tget_tag_f", taglen, 15, total_error)
+ CALL verifystring("h5tget_tag_f",tag_big,"Character array ", total_error)
+
+ !
+ ! Get dataspace and allocate memory for read buffer.
+ !
+ CALL h5dget_space_f(dset, space, error)
+ CALL check("H5Dget_space_f",error, total_error)
+ CALL h5sget_simple_extent_dims_f(space, dims, maxdims, error)
+ CALL check("H5Sget_simple_extent_dims_f",error, total_error)
+ CALL VERIFY("H5Sget_simple_extent_dims_f", INT(dims(1)), dim0, total_error)
+ ALLOCATE(rdata(1:dims(1)))
+ !
+ ! Read the data.
+ !
+ f_ptr = C_LOC(rdata(1))
+ CALL h5dread_f(dset, dtype, f_ptr, error)
+ CALL check("H5Dread_f",error, total_error)
+ !
+ DO i = 1, dims(1)
+ CALL verifystring("t_opaque",TRIM(rdata(i)),TRIM(wdata(i)), total_error)
+ ENDDO
+ !
+ ! Close and release resources.
+ !
+ DEALLOCATE(rdata)
+ CALL H5Dclose_f(dset, error)
+ CALL check("h5dclose_f",error, total_error)
+ CALL H5Sclose_f(space, error)
+ CALL check("h5sclose_f",error, total_error)
+ CALL H5Tclose_f(dtype, error)
+ CALL check("h5tclose_f",error, total_error)
+ CALL H5Fclose_f(file, error)
+ CALL check("h5fclose_f",error, total_error)
+
+END SUBROUTINE t_opaque
+
+SUBROUTINE t_objref(total_error)
+
+ USE HDF5
+ USE ISO_C_BINDING
+
+ IMPLICIT NONE
+
+ INTEGER, INTENT(INOUT) :: total_error
+ CHARACTER(LEN=20), PARAMETER :: filename = "t_objref_F03.h5"
+ CHARACTER(LEN=3) , PARAMETER :: dataset = "DS1"
+ INTEGER , PARAMETER :: dim0 = 2
+
+ INTEGER(HID_T) :: file, space, dset, obj ! Handles
+ INTEGER :: error
+
+ INTEGER(hsize_t), DIMENSION(1:1) :: dims = (/dim0/)
+ TYPE(hobj_ref_t_f), DIMENSION(1:dim0), TARGET :: wdata ! Write buffer
+ TYPE(hobj_ref_t_f), DIMENSION(:), ALLOCATABLE, TARGET :: rdata ! Read buffer
+ INTEGER :: objtype
+ INTEGER(SIZE_T) :: name_size
+ CHARACTER(LEN=80) :: name
+ INTEGER(HSIZE_T), DIMENSION(1:1) :: maxdims
+ INTEGER :: i
+ TYPE(C_PTR) :: f_ptr
+ !
+ ! Create a new file using the default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file, error)
+ CALL check("h5fcreate_f",error, total_error)
+ !
+ ! Create a dataset with a null dataspace.
+ !
+ CALL h5screate_f(H5S_NULL_F,space,error)
+ CALL check("h5screate_f",error, total_error)
+ CALL h5dcreate_f(file, "DS2", H5T_STD_I32LE, space, obj, error)
+ CALL check("h5dcreate_f",error, total_error)
+ !
+ CALL h5dclose_f(obj , error)
+ CALL check("h5dclose_f",error, total_error)
+ CALL h5sclose_f(space, error)
+ CALL check("h5sclose_f",error, total_error)
+ !
+ ! Create a group.
+ !
+ CALL h5gcreate_f(file, "G1", obj, error)
+ CALL check("h5gcreate_f",error, total_error)
+ CALL h5gclose_f(obj, error)
+ CALL check("h5gclose_f",error, total_error)
+ !
+ ! Create references to the previously created objects. note, space_id
+ ! is not needed for object references.
+ !
+ f_ptr = C_LOC(wdata(1))
+ CALL H5Rcreate_f(file, "G1", H5R_OBJECT_F, f_ptr, error)
+ CALL check("H5Rcreate_f",error, total_error)
+ f_ptr = C_LOC(wdata(2))
+ CALL H5Rcreate_f(file, "DS2", H5R_OBJECT_F, f_ptr, error)
+ CALL check("H5Rcreate_f",error, total_error)
+ !
+ ! Create dataspace. Setting maximum size to be the current size.
+ !
+ CALL h5screate_simple_f(1, dims, space, error)
+ CALL check("h5screate_simple_f",error, total_error)
+ !
+ ! Create the dataset and write the object references to it.
+ !
+ CALL h5dcreate_f(file, dataset, H5T_STD_REF_OBJ, space, dset, error)
+ CALL check("h5dcreate_f",error, total_error)
+
+ f_ptr = C_LOC(wdata(1))
+ CALL h5dwrite_f(dset, H5T_STD_REF_OBJ, f_ptr, error)
+ CALL check("h5dwrite_f",error, total_error)
+ !
+ ! Close and release resources.
+ !
+ CALL h5dclose_f(dset , error)
+ CALL check("h5dclose_f",error, total_error)
+ CALL h5sclose_f(space, error)
+ CALL check("h5sclose_f",error, total_error)
+ CALL h5fclose_f(file , error)
+ CALL check("h5fclose_f",error, total_error)
+ !
+ ! Now we begin the read section of this example.
+ !
+ ! Open file and dataset.
+ !
+ CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file, error)
+ CALL check("h5fopen_f",error, total_error)
+ CALL h5dopen_f(file, dataset, dset, error)
+ CALL check("h5dopen_f",error, total_error)
+ !
+ ! Get dataspace and allocate memory for read buffer.
+ !
+ CALL h5dget_space_f(dset, space, error)
+ CALL check("H5Dget_space_f",error, total_error)
+ CALL h5sget_simple_extent_dims_f(space, dims, maxdims, error)
+ CALL check("H5Sget_simple_extent_dims_f",error, total_error)
+ CALL VERIFY("H5Sget_simple_extent_dims_f", INT(dims(1)), dim0, total_error)
+
+ ALLOCATE(rdata(1:maxdims(1)))
+ !
+ ! Read the data.
+ !
+ f_ptr = C_LOC(rdata(1))
+ CALL h5dread_f( dset, H5T_STD_REF_OBJ, f_ptr, error)
+ CALL check("H5Dread_f",error, total_error)
+ !
+ ! Output the data to the screen.
+ !
+ DO i = 1, maxdims(1)
+ !
+ ! Open the referenced object, get its name and type.
+ !
+ f_ptr = C_LOC(rdata(i))
+ CALL H5Rdereference_f(dset, H5R_OBJECT_F, f_ptr, obj, error)
+ CALL check("H5Rdereference_f",error, total_error)
+ CALL H5Rget_obj_type_f(dset, H5R_OBJECT_F, f_ptr, objtype, error)
+ CALL check("H5Rget_obj_type_f",error, total_error)
+ !
+ ! Get the length of the name and name
+ !
+ CALL H5Iget_name_f(obj, name, 80_size_t, name_size, error)
+ CALL check("H5Iget_name_f",error, total_error)
+ !
+ ! Print the object type and close the object.
+ !
+ IF(objtype.EQ.H5G_GROUP_F)THEN
+ CALL verifystring("t_objref", name(1:name_size),"/G1", total_error)
+ ELSE IF(objtype.EQ.H5G_DATASET_F)THEN
+ CALL verifystring("t_objref", name(1:name_size),"/DS2", total_error)
+ ELSE
+ total_error = total_error + 1
+ ENDIF
+ CALL h5oclose_f(obj, error)
+ CALL check("h5oclose_f",error, total_error)
+
+ END DO
+ !
+ ! Close and release resources.
+ !
+ DEALLOCATE(rdata)
+ CALL h5dclose_f(dset , error)
+ CALL check("h5dclose_f",error, total_error)
+ CALL h5sclose_f(space, error)
+ CALL check("h5sclose_f",error, total_error)
+ CALL h5fclose_f(file , error)
+ CALL check("h5fclose_f",error, total_error)
+
+END SUBROUTINE t_objref
+
+
+SUBROUTINE t_regref(total_error)
+
+ USE HDF5
+ USE ISO_C_BINDING
+
+ IMPLICIT NONE
+
+ INTEGER, INTENT(INOUT) :: total_error
+ CHARACTER(LEN=22), PARAMETER :: filename = "t_regref_F03.h5"
+ CHARACTER(LEN=3) , PARAMETER :: dataset = "DS1"
+ CHARACTER(LEN=3) , PARAMETER :: dataset2 = "DS2"
+ INTEGER , PARAMETER :: dim0 = 2
+ INTEGER , PARAMETER :: ds2dim0 = 16
+ INTEGER , PARAMETER :: ds2dim1 = 3
+
+ INTEGER(HID_T) :: file, memspace, space, dset, dset2 ! Handles
+ INTEGER :: error
+
+ INTEGER(HSIZE_T), DIMENSION(1:1) :: dims = (/dim0/)
+ INTEGER(HSIZE_T), DIMENSION(1:1) :: dims3
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: dims2 = (/ds2dim0,ds2dim1/)
+
+ INTEGER(HSIZE_T), DIMENSION(1:2,1:4) :: coords = RESHAPE((/2,1,12,3,1,2,5,3/),(/2,4/))
+
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: start=(/0,0/),stride=(/11,2/),count=(/2,2/), BLOCK=(/3,1/)
+
+ INTEGER(HSIZE_T), DIMENSION(1:1) :: maxdims
+ INTEGER(hssize_t) :: npoints
+ TYPE(hdset_reg_ref_t_f), DIMENSION(1:dim0), TARGET :: wdata ! Write buffer
+ TYPE(hdset_reg_ref_t_f), DIMENSION(:), ALLOCATABLE, TARGET :: rdata ! Read buffer
+
+ INTEGER(size_t) :: size
+ CHARACTER(LEN=1), DIMENSION(1:ds2dim0,1:ds2dim1), TARGET :: wdata2
+
+ CHARACTER(LEN=80),DIMENSION(1:1), TARGET :: rdata2
+ CHARACTER(LEN=80) :: name
+ INTEGER :: i
+ TYPE(C_PTR) :: f_ptr
+ CHARACTER(LEN=ds2dim0) :: chrvar
+ CHARACTER(LEN=20), DIMENSION(1:2) :: chrref_correct
+
+ chrvar = "The quick brown "
+ READ(chrvar,'(16A1)') wdata2(1:16,1)
+ chrvar = "fox jumps over "
+ READ(chrvar,'(16A1)') wdata2(1:16,2)
+ chrvar = "the 5 lazy dogs "
+ READ(chrvar,'(16A1)') wdata2(1:16,3)
+
+ chrref_correct(1) = 'hdf5'
+ chrref_correct(2) = 'Therowthedog'
+
+ !
+ ! Create a new file using the default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file, error)
+ CALL check("h5fcreate_f",error, total_error)
+ !
+ ! Create a dataset with character data.
+ !
+ CALL h5screate_simple_f(2, dims2, space, error)
+ CALL check("h5screate_simple_f",error, total_error)
+ CALL h5dcreate_f(file,dataset2, H5T_STD_I8LE, space, dset2, error)
+ CALL check("h5dcreate_f",error, total_error)
+ f_ptr = C_LOC(wdata2(1,1))
+ CALL h5dwrite_f(dset2, H5T_NATIVE_INTEGER_1, f_ptr, error)
+ CALL check("h5dwrite_f",error, total_error)
+ !
+ ! Create reference to a list of elements in dset2.
+ !
+ CALL h5sselect_elements_f(space, H5S_SELECT_SET_F, 2, INT(4,size_t), coords, error)
+ CALL check("h5sselect_elements_f",error, total_error)
+ f_ptr = C_LOC(wdata(1))
+ CALL h5rcreate_f(file, DATASET2, H5R_DATASET_REGION_F, f_ptr, error, space)
+ CALL check("h5rcreate_f",error, total_error)
+ !
+ ! Create reference to a hyperslab in dset2, close dataspace.
+ !
+ CALL h5sselect_hyperslab_f (space, H5S_SELECT_SET_F, start, count, error, stride, block)
+ CALL check("h5sselect_hyperslab_f",error, total_error)
+ f_ptr = C_LOC(wdata(2))
+ CALL h5rcreate_f(file, DATASET2, H5R_DATASET_REGION_F, f_ptr, error, space)
+ CALL check("h5rcreate_f",error, total_error)
+
+ CALL h5sclose_f(space, error)
+ CALL check("h5sclose_f",error, total_error)
+ !
+ ! Create dataspace. Setting maximum size to the current size.
+ !
+ CALL h5screate_simple_f(1, dims, space, error)
+ CALL check("h5screate_simple_f",error, total_error)
+
+ !
+ ! Create the dataset and write the region references to it.
+ !
+ CALL h5dcreate_f(file, dataset, H5T_STD_REF_DSETREG, space, dset, error)
+ CALL check("h5dcreate_f",error, total_error)
+ f_ptr = C_LOC(wdata(1))
+ CALL h5dwrite_f(dset, H5T_STD_REF_DSETREG, f_ptr, error)
+ CALL check("h5dwrite_f",error, total_error)
+ !
+ ! Close and release resources.
+ !
+ CALL h5dclose_f(dset , error)
+ CALL check("h5dclose_f",error, total_error)
+ CALL h5dclose_f(dset2, error)
+ CALL check("h5dclose_f",error, total_error)
+ CALL h5sclose_f(space, error)
+ CALL check("h5sclose_f",error, total_error)
+ CALL h5fclose_f(file , error)
+ CALL check("h5fclose_f",error, total_error)
+
+ !
+ ! Now we begin the read section of this example.
+ !
+ !
+ ! Open file and dataset.
+ !
+ CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file, error)
+ CALL check("h5fopen_f",error, total_error)
+ CALL h5dopen_f(file, dataset, dset, error)
+ CALL check("h5dopen_f",error, total_error)
+ !
+ ! Get dataspace and allocate memory for read buffer.
+ !
+ CALL h5dget_space_f(dset, space, error)
+ CALL check("H5Dget_space_f",error, total_error)
+ CALL h5sget_simple_extent_dims_f(space, dims, maxdims, error)
+ CALL check("H5Sget_simple_extent_dims_f",error, total_error)
+ CALL VERIFY("H5Sget_simple_extent_dims_f", INT(dims(1)), dim0, total_error)
+ ALLOCATE(rdata(1:dims(1)))
+ CALL h5sclose_f(space, error)
+ CALL check("h5sclose_f",error, total_error)
+ !
+ ! Read the data.
+ !
+ f_ptr = C_LOC(rdata(1))
+ CALL h5dread_f( dset, H5T_STD_REF_DSETREG, f_ptr, error)
+ CALL check("H5Dread_f",error, total_error)
+ !
+ ! Output the data to the screen.
+ !
+ DO i = 1, dims(1)
+
+ !
+ ! Open the referenced object, retrieve its region as a
+ ! dataspace selection.
+ !
+ CALL H5Rdereference_f(dset, rdata(i), dset2, error)
+ CALL check("H5Rdereference_f",error, total_error)
+
+ CALL H5Rget_region_f(dset, rdata(i), space, error)
+ CALL check("H5Rget_region_f",error, total_error)
+
+ !
+ ! Get the object's name
+ !
+ CALL H5Iget_name_f(dset2, name, 80_size_t, size, error)
+ CALL check("H5Iget_name_f",error, total_error)
+ CALL VERIFY("H5Iget_name_f", size, LEN_TRIM(name), total_error)
+ CALL verifystring("H5Iget_name_f",name(1:size),TRIM(name), total_error)
+ !
+ ! Allocate space for the read buffer.
+ !
+ CALL H5Sget_select_npoints_f(space, npoints, error)
+ CALL check("H5Sget_select_npoints_f",error, total_error)
+ CALL VERIFY("H5Sget_select_npoints_f", INT(npoints), LEN_TRIM(chrref_correct(i)), total_error)
+
+ dims3(1) = npoints
+ !
+ ! Read the dataset region.
+ !
+ CALL h5screate_simple_f(1, dims3, memspace, error)
+ CALL check("h5screate_simple_f",error, total_error)
+
+ f_ptr = C_LOC(rdata2(1))
+ CALL h5dread_f( dset2, H5T_NATIVE_INTEGER_1, f_ptr, error, memspace, space)
+ CALL check("H5Dread_f",error, total_error)
+ CALL verifystring("h5dread_f",rdata2(1)(1:npoints),TRIM(chrref_correct(i)), total_error)
+
+ CALL H5Sclose_f(space, error)
+ CALL check("h5sclose_f",error, total_error)
+ CALL H5Sclose_f(memspace, error)
+ CALL check("h5sclose_f",error, total_error)
+ CALL H5Dclose_f(dset2, error)
+ CALL check("h5dclose_f",error, total_error)
+
+ END DO
+ !
+ ! Close and release resources.
+ !
+ DEALLOCATE(rdata)
+ CALL H5Dclose_f(dset, error)
+ CALL check("h5dclose_f",error, total_error)
+ CALL H5Fclose_f(file, error)
+ CALL check("h5fclose_f",error, total_error)
+
+END SUBROUTINE t_regref
+
+SUBROUTINE t_vlen(total_error)
+
+ USE HDF5
+ USE ISO_C_BINDING
+
+ IMPLICIT NONE
+
+ INTEGER, INTENT(INOUT) :: total_error
+ CHARACTER(LEN=18), PARAMETER :: filename = "t_vlen_F03.h5"
+ CHARACTER(LEN=3) , PARAMETER :: dataset = "DS1"
+ INTEGER, PARAMETER :: LEN0 = 3
+ INTEGER, PARAMETER :: LEN1 = 12
+ INTEGER :: dim0
+
+ INTEGER(HID_T) :: file, filetype, memtype, space, dset ! Handles
+ INTEGER :: error
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: maxdims
+ INTEGER :: i, j
+
+ ! vl data
+ TYPE vl
+ INTEGER, DIMENSION(:), POINTER :: DATA
+ END TYPE vl
+ TYPE(vl), DIMENSION(:), ALLOCATABLE, TARGET :: ptr
+
+
+ TYPE(hvl_t), DIMENSION(1:2), TARGET :: wdata ! Array of vlen structures
+ TYPE(hvl_t), DIMENSION(1:2), TARGET :: rdata ! Pointer to vlen structures
+
+ INTEGER(hsize_t), DIMENSION(1:1) :: dims = (/2/)
+ INTEGER, DIMENSION(:), POINTER :: ptr_r
+ TYPE(C_PTR) :: f_ptr
+
+ !
+ ! Initialize variable-length data. wdata(1) is a countdown of
+ ! length LEN0, wdata(2) is a Fibonacci sequence of length LEN1.
+ !
+ wdata(1)%len = LEN0
+ wdata(2)%len = LEN1
+
+ ALLOCATE( ptr(1:2) )
+ ALLOCATE( ptr(1)%data(1:wdata(1)%len) )
+ ALLOCATE( ptr(2)%data(1:wdata(2)%len) )
+
+ DO i=1, wdata(1)%len
+ ptr(1)%data(i) = wdata(1)%len - i + 1 ! 3 2 1
+ ENDDO
+ wdata(1)%p = C_LOC(ptr(1)%data(1))
+
+ ptr(2)%data(1:2) = 1
+ DO i = 3, wdata(2)%len
+ ptr(2)%data(i) = ptr(2)%data(i-1) + ptr(2)%data(i-2) ! (1 1 2 3 5 8 etc.)
+ ENDDO
+ wdata(2)%p = C_LOC(ptr(2)%data(1))
+
+ !
+ ! Create a new file using the default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file, error)
+ CALL check("h5fcreate_f",error, total_error)
+ !
+ ! Create variable-length datatype for file and memory.
+ !
+ CALL H5Tvlen_create_f(H5T_STD_I32LE, filetype, error)
+ CALL check("H5Tvlen_create_f",error, total_error)
+ CALL H5Tvlen_create_f(H5T_NATIVE_INTEGER, memtype, error)
+ CALL check("H5Tvlen_create_f",error, total_error)
+ !
+ ! Create dataspace.
+ !
+ CALL h5screate_simple_f(1, dims, space, error)
+ CALL check("h5screate_simple_f",error, total_error)
+ !
+ ! Create the dataset and write the variable-length data to it.
+ !
+ CALL H5Dcreate_f(file, dataset, filetype, space, dset, error)
+ CALL check("h5dcreate_f",error, total_error)
+
+ f_ptr = C_LOC(wdata(1))
+ CALL h5dwrite_f(dset, memtype, f_ptr, error)
+ CALL check("h5dwrite_f",error, total_error)
+ !
+ ! Close and release resources. Note the use of H5Dvlen_reclaim
+ ! removes the need to manually deallocate the previously allocated
+ ! data.
+ !
+
+ CALL h5dclose_f(dset , error)
+ CALL check("h5dclose_f",error, total_error)
+ CALL h5sclose_f(space, error)
+ CALL check("h5sclose_f",error, total_error)
+ CALL H5Tclose_f(filetype, error)
+ CALL check("h5tclose_f",error, total_error)
+ CALL H5Tclose_f(memtype, error)
+ CALL check("h5tclose_f",error, total_error)
+ CALL h5fclose_f(file , error)
+ CALL check("h5fclose_f",error, total_error)
+
+ !
+ ! Now we begin the read section of this example.
+
+ !
+ ! Open file and dataset.
+ !
+ CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file, error)
+ CALL check("h5fopen_f",error, total_error)
+ CALL h5dopen_f(file, dataset, dset, error)
+ CALL check("h5dopen_f",error, total_error)
+
+ !
+ ! Get dataspace and allocate memory for array of vlen structures.
+ ! This does not actually allocate memory for the vlen data, that
+ ! will be done by the library.
+ !
+ CALL H5Dget_space_f(dset, space, error)
+ CALL check("H5Dget_space_f",error, total_error)
+ dim0 = dims(1)
+ CALL H5Sget_simple_extent_dims_f(space, dims, maxdims, error)
+ CALL check("H5Sget_simple_extent_dims_f",error, total_error)
+ CALL VERIFY("H5Sget_simple_extent_dims_f", INT(dims(1)), dim0, total_error)
+
+ !
+ ! Create the memory datatype.
+ !
+ CALL H5Tvlen_create_f(H5T_NATIVE_INTEGER, memtype, error)
+ CALL check("H5Tvlen_create_f",error, total_error)
+
+ !
+ ! Read the data.
+ !
+ f_ptr = C_LOC(rdata(1))
+ CALL H5Dread_f(dset, memtype, f_ptr, error)
+ CALL check("H5Dread_f",error, total_error)
+
+ DO i = 1, dims(1)
+ CALL c_f_pointer(rdata(i)%p, ptr_r, [rdata(i)%len] )
+ DO j = 1, rdata(i)%len
+ CALL VERIFY("t_vlen", ptr_r(j), ptr(i)%data(j), total_error)
+ ENDDO
+ ENDDO
+ !
+ ! Close and release resources.
+ !
+ DEALLOCATE(ptr)
+ CALL h5dvlen_reclaim_f(memtype, space, H5P_DEFAULT_F, f_ptr, error)
+ CALL h5dclose_f(dset, error)
+ CALL check("h5dclose_f",error, total_error)
+ CALL h5sclose_f(space, error)
+ CALL check("h5sclose_f",error, total_error)
+ CALL H5Tclose_f(memtype, error)
+ CALL check("h5tclose_f",error, total_error)
+ CALL h5fclose_f(file, error)
+ CALL check("h5fclose_f",error, total_error)
+
+END SUBROUTINE t_vlen
+
+
+SUBROUTINE t_vlstring(total_error)
+
+ USE HDF5
+ USE ISO_C_BINDING
+
+ IMPLICIT NONE
+
+ INTEGER, INTENT(INOUT) :: total_error
+
+ CHARACTER(LEN=18), PARAMETER :: filename = "t_vlstring.h5"
+ CHARACTER(LEN=3) , PARAMETER :: dataset = "DS1"
+
+ INTEGER(SIZE_T), PARAMETER :: dim0 = 4
+ INTEGER(SIZE_T), PARAMETER :: sdim = 7
+ INTEGER(HID_T) :: file, filetype, space, dset ! Handles
+ INTEGER :: error
+ INTEGER(HSIZE_T), DIMENSION(1:1) :: dims = (/dim0/)
+ INTEGER(HSIZE_T), DIMENSION(1:2) :: maxdims
+
+ CHARACTER(LEN=sdim), DIMENSION(1:dim0), TARGET :: &
+ wdata = (/"Parting", "is such", "sweet ", "sorrow."/) ! Write buffer
+ CHARACTER(LEN=sdim), DIMENSION(:), ALLOCATABLE :: rdata ! Read buffer
+ INTEGER(HSIZE_T), DIMENSION(2) :: data_dims = (/sdim,dim0/)
+ INTEGER(SIZE_T), DIMENSION(4) :: str_len = (/7,7,5,7/)
+ INTEGER :: i
+
+ !
+ ! Create a new file using the default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file, error)
+ CALL check("h5fcreate_f",error, total_error)
+ !
+ ! Create file and memory datatypes. For this example we will save
+ ! the strings as C variable length strings, H5T_STRING is defined
+ ! as a variable length string.
+ !
+ CALL H5Tcopy_f(H5T_STRING, filetype, error)
+ CALL check("H5Tcopy_f",error, total_error)
+ CALL H5Tset_strpad_f(filetype, H5T_STR_NULLPAD_F, error)
+ CALL check("H5Tset_strpad_f",error, total_error)
+ !
+ ! Create dataspace.
+ !
+ CALL h5screate_simple_f(1, dims, space, error)
+ CALL check("h5screate_simple_f",error, total_error)
+ !
+ ! Create the dataset and write the variable-length string data to
+ ! it.
+ !
+ CALL h5dcreate_f(file, dataset, filetype, space, dset, error)
+ CALL check("h5dcreate_f",error, total_error)
+
+ CALL h5dwrite_vl_f(dset, filetype, wdata, data_dims, str_len, error, space)
+ CALL check("h5dwrite_vl_f",error, total_error)
+
+ !
+ ! Close and release resources.
+ !
+ CALL h5dclose_f(dset , error)
+ CALL check("h5dclose_f",error, total_error)
+ CALL h5sclose_f(space, error)
+ CALL check("h5sclose_f",error, total_error)
+ CALL H5Tclose_f(filetype, error)
+ CALL check("h5tclose_f",error, total_error)
+ CALL h5fclose_f(file , error)
+ CALL check("h5fclose_f",error, total_error)
+
+ !
+ ! Now we begin the read section of this example.
+ !
+ !
+ ! Open file and dataset.
+ !
+ CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file, error)
+ CALL check("h5fopen_f",error, total_error)
+ CALL h5dopen_f(file, dataset, dset, error)
+ CALL check("h5dopen_f",error, total_error)
+ !
+ ! Get the datatype.
+ !
+ CALL H5Dget_type_f(dset, filetype, error)
+ CALL check("H5Dget_type_f",error, total_error)
+ !
+ ! Get dataspace and allocate memory for read buffer.
+ !
+ CALL H5Dget_space_f(dset, space, error)
+ CALL check("H5Dget_space_f",error, total_error)
+ CALL H5Sget_simple_extent_dims_f(space, dims, maxdims, error)
+ CALL check("H5Sget_simple_extent_dims_f",error, total_error)
+ CALL VERIFY("H5Sget_simple_extent_dims_f", INT(dims(1)), dim0, total_error)
+
+ ALLOCATE(rdata(1:dims(1)))
+
+ !
+ ! Read the data.
+ !
+ CALL h5dread_vl_f(dset, filetype, rdata, data_dims, str_len, error, space)
+ CALL check("H5Dread_vl_f",error, total_error)
+
+ !
+ ! Output the data to the screen.
+ !
+ DO i = 1, dims(1)
+ CALL verifystring("h5dopen_f",TRIM(rdata(i)),TRIM(wdata(i)) , total_error)
+ END DO
+
+ DEALLOCATE(rdata)
+ CALL h5dclose_f(dset, error)
+ CALL check("h5dclose_f",error, total_error)
+ CALL h5sclose_f(space, error)
+ CALL check("h5sclose_f",error, total_error)
+ CALL H5Tclose_f(filetype, error)
+ CALL check("h5tclose_f",error, total_error)
+ CALL h5fclose_f(file , error)
+ CALL check("h5fclose_f",error, total_error)
+
+END SUBROUTINE t_vlstring
+
+
+SUBROUTINE t_string(total_error)
+
+ USE HDF5
+ USE ISO_C_BINDING
+
+ IMPLICIT NONE
+
+ INTEGER, INTENT(INOUT) :: total_error
+
+ CHARACTER(LEN=20), PARAMETER :: filename = "t_string_F03.h5"
+ CHARACTER(LEN=3) , PARAMETER :: dataset = "DS1"
+ INTEGER , PARAMETER :: dim0 = 4
+ INTEGER(SIZE_T) , PARAMETER :: sdim = 8
+
+ INTEGER(HID_T) :: file, filetype, memtype, space, dset ! Handles
+ INTEGER :: error
+
+ INTEGER(HSIZE_T), DIMENSION(1:1) :: dims = (/dim0/)
+ INTEGER(HSIZE_T), DIMENSION(1:1) :: maxdims
+
+ CHARACTER(LEN=sdim), DIMENSION(1:dim0), TARGET :: &
+ wdata = (/"Parting", "is such", "sweet ", "sorrow."/)
+ CHARACTER(LEN=sdim), DIMENSION(:), ALLOCATABLE, TARGET :: rdata
+ INTEGER :: i
+ INTEGER(SIZE_T) :: size
+ TYPE(C_PTR) :: f_ptr
+ !
+ ! Create a new file using the default properties.
+ !
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file, error)
+ CALL check("h5fcreate_f",error, total_error)
+ !
+ ! Create file datatypes. For this example we will save
+ ! the strings as FORTRAN strings
+ !
+ CALL H5Tcopy_f(H5T_FORTRAN_S1, filetype, error)
+ CALL check("H5Tcopy_f",error, total_error)
+ CALL H5Tset_size_f(filetype, sdim, error)
+ CALL check("H5Tset_size_f",error, total_error)
+ !
+ ! Create dataspace.
+ !
+ CALL h5screate_simple_f(1, dims, space, error)
+ CALL check("h5screate_simple_f",error, total_error)
+ !
+ ! Create the dataset and write the string data to it.
+ !
+ CALL h5dcreate_f(file, dataset, filetype, space, dset, error)
+ CALL check("h5dcreate_f",error, total_error)
+
+ f_ptr = C_LOC(wdata(1)(1:1))
+ CALL H5Dwrite_f(dset, filetype, f_ptr, error)
+ CALL check("H5Dwrite_f",error, total_error)
+ !
+ ! Close and release resources.
+ !
+ CALL h5dclose_f(dset , error)
+ CALL check("h5dclose_f",error, total_error)
+ CALL h5sclose_f(space, error)
+ CALL check("h5sclose_f",error, total_error)
+ CALL H5Tclose_f(filetype, error)
+ CALL check("h5tclose_f",error, total_error)
+ CALL h5fclose_f(file , error)
+ CALL check("h5fclose_f",error, total_error)
+ !
+ ! Now we begin the read section of this example.
+ !
+ ! Open file and dataset.
+ !
+ CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file, error)
+ CALL check("h5fopen_f",error, total_error)
+ CALL h5dopen_f(file, dataset, dset, error)
+ CALL check("h5dopen_f",error, total_error)
+ !
+ ! Get the datatype and its size.
+ !
+ CALL H5Dget_type_f(dset, filetype, error)
+ CALL check("H5Dget_type_f",error, total_error)
+ CALL H5Tget_size_f(filetype, size, error)
+ CALL check("H5Tget_size_f",error, total_error)
+ CALL VERIFY("H5Tget_size_f", size, sdim, total_error)
+ !
+ ! Get dataspace.
+ !
+ CALL H5Dget_space_f(dset, space, error)
+ CALL check("H5Dget_space_f",error, total_error)
+ CALL H5Sget_simple_extent_dims_f(space, dims, maxdims, error)
+ CALL check("H5Sget_simple_extent_dims_f",error, total_error)
+ CALL VERIFY("H5Sget_simple_extent_dims_f", INT(dims(1)), dim0, total_error)
+
+ ALLOCATE(rdata(1:dims(1)))
+ !
+ ! Create the memory datatype.
+ !
+ CALL H5Tcopy_f(H5T_FORTRAN_S1, memtype, error)
+ CALL check("H5Tcopy_f",error, total_error)
+ CALL H5Tset_size_f(memtype, sdim, error)
+ CALL check("H5Tset_size_f",error, total_error)
+ !
+ ! Read the data.
+ !
+ f_ptr = C_LOC(rdata(1)(1:1))
+ CALL H5Dread_f(dset, memtype, f_ptr, error, space)
+ CALL check("H5Dread_f",error, total_error)
+
+ DO i = 1, dims(1)
+ CALL verifystring("h5dopen_f",TRIM(rdata(i)),TRIM(wdata(i)) , total_error)
+ END DO
+
+ DEALLOCATE(rdata)
+
+ !
+ ! Close and release resources.
+ !
+ CALL H5Dclose_f(dset, error)
+ CALL check("h5dclose_f",error, total_error)
+ CALL H5Sclose_f(space, error)
+ CALL check("h5sclose_f",error, total_error)
+ CALL H5Tclose_f(memtype, error)
+ CALL check("h5tclose_f",error, total_error)
+ CALL H5Fclose_f(file, error)
+ CALL check("h5fclose_f",error, total_error)
+
+
+END SUBROUTINE t_string
+
+
diff --git a/fortran/test/tH5VL.f90 b/fortran/test/tH5VL.f90
index 3afd025..85feb2b 100644
--- a/fortran/test/tH5VL.f90
+++ b/fortran/test/tH5VL.f90
@@ -1,3 +1,12 @@
+!****h* root/fortran/test/tH5VL.f90
+!
+! NAME
+! tH5VL.f90
+!
+! FUNCTION
+! Basic testing of Fortran Variable_length datatypes APIs.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,12 +22,11 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! CONTAINS SUBROUTINES
+! vl_test_integer, vl_test_real, vl_test_string
!
-!
-! Testing Variable_length datatypes
-!
-!
-!
+!*****
+
SUBROUTINE vl_test_integer(cleanup, total_error)
USE HDF5 ! This module contains all necessary modules
@@ -105,7 +113,8 @@
CALL check("h5dwrite_int_f", error, total_error)
- !
+
+ !
! End access to the dataset and release resources used by it.
!
CALL h5dclose_f(dset_id, error)
@@ -154,7 +163,6 @@
endif
enddo
-
!
CALL h5dclose_f(dset_id, error)
CALL check("h5dclose_f", error, total_error)
diff --git a/fortran/test/tH5Z.f90 b/fortran/test/tH5Z.f90
index 6262528..cd6a343 100644
--- a/fortran/test/tH5Z.f90
+++ b/fortran/test/tH5Z.f90
@@ -1,3 +1,12 @@
+!****h* root/fortran/test/tH5Z.f90
+!
+! NAME
+! tH5Z.f90
+!
+! FUNCTION
+! Basic testing of Fortran H5Z szip APIs.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,6 +22,11 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! CONTAINS SUBROUTINES
+! filters_test, szip_test
+!
+!*****
+
SUBROUTINE filters_test(cleanup, total_error)
! This subroutine tests following functionalities: h5zfilter_avail_f, h5zunregister_f
diff --git a/fortran/test/tf.f90 b/fortran/test/tf.f90
index 51c9410..d5c32c8 100644
--- a/fortran/test/tf.f90
+++ b/fortran/test/tf.f90
@@ -1,3 +1,12 @@
+!****h* root/fortran/test/tf.f90
+!
+! NAME
+! tf.f90
+!
+! FUNCTION
+! Contains subroutines which are needed in all the hdf5 fortran tests
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,12 +22,29 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! CONTAINS SUBROUTINES
+! write_test_status, check, verify, verifyLogical, verifyString, h5_fixname_f,
+! h5_cleanup_f, h5_exit_f, h5_env_nocleanup_f
!
-!
-! This file contains subroutines which are used in
-! all the hdf5 fortran tests
-!
+!*****
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: verify_real
+!DEC$endif
+SUBROUTINE verify_real_kind_7(string,value,correct_value,total_error)
+ USE HDF5
+
+ INTEGER, PARAMETER :: real_kind_7 = SELECTED_REAL_KIND(Fortran_REAL_4) !should map to REAL*4 on most modern processors
+ CHARACTER(LEN=*) :: string
+ REAL(real_kind_7) :: value, correct_value
+ INTEGER :: total_error
+ IF (value .NE. correct_value) THEN
+ total_error=total_error+1
+ WRITE(*,*) "ERROR: INCORRECT REAL VALIDATION ", string
+ ENDIF
+ RETURN
+END SUBROUTINE verify_real_kind_7
!This definition is needed for Windows DLLs
!DEC$if defined(BUILD_HDF5_DLL)
@@ -77,7 +103,7 @@ END SUBROUTINE check
!DEC$if defined(BUILD_HDF5_DLL)
!DEC$attributes dllexport :: verify
!DEC$endif
-SUBROUTINE VERIFY(string,value,correct_value,total_error)
+SUBROUTINE verify(string,value,correct_value,total_error)
CHARACTER(LEN=*) :: string
INTEGER :: value, correct_value, total_error
IF (value .NE. correct_value) THEN
@@ -89,6 +115,25 @@ END SUBROUTINE verify
!This definition is needed for Windows DLLs
!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: verify
+!DEC$endif
+SUBROUTINE verify_Fortran_INTEGER_4(string,value,correct_value,total_error)
+ USE HDF5
+ INTEGER, PARAMETER :: int_kind_8 = SELECTED_INT_KIND(Fortran_INTEGER_4) ! should map to INTEGER*4 on most modern processors
+ CHARACTER(LEN=*) :: string
+ INTEGER(int_kind_8) :: value, correct_value, total_error
+ IF (value .NE. correct_value) THEN
+ total_error=total_error+1
+ WRITE(*,*) "ERROR: INCORRECT VALIDATION ", string
+ ENDIF
+ RETURN
+END SUBROUTINE verify_Fortran_INTEGER_4
+
+
+
+
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
!DEC$attributes dllexport :: verifyLogical
!DEC$endif
SUBROUTINE verifyLogical(string,value,correct_value,total_error)
@@ -106,16 +151,16 @@ END SUBROUTINE verifyLogical
!DEC$if defined(BUILD_HDF5_DLL)
!DEC$attributes dllexport :: verifyString
!DEC$endif
-SUBROUTINE verifyString(string, value,correct_value,total_error)
- CHARACTER(LEN=*) :: string
- CHARACTER(LEN=*) :: value, correct_value
+SUBROUTINE verifystring(string, value,correct_value,total_error)
+ CHARACTER*(*) :: string
+ CHARACTER*(*) :: value, correct_value
INTEGER :: total_error
IF (TRIM(value) .NE. TRIM(correct_value)) THEN
total_error = total_error + 1
WRITE(*,*) "ERROR: INCORRECT VALIDATION ", string
ENDIF
RETURN
-END SUBROUTINE verifyString
+END SUBROUTINE verifystring
!----------------------------------------------------------------------
diff --git a/fortran/testpar/Makefile.in b/fortran/testpar/Makefile.in
index 5cd9d05..272fc45 100644
--- a/fortran/testpar/Makefile.in
+++ b/fortran/testpar/Makefile.in
@@ -177,6 +177,7 @@ F9XMODEXT = @F9XMODEXT@
F9XMODFLAG = @F9XMODFLAG@
F9XSUFFIXFLAG = @F9XSUFFIXFLAG@
FC = @FC@
+FC2003 = @FC2003@
FCFLAGS = @FCFLAGS@
FCFLAGS_f90 = @FCFLAGS_f90@
FCLIBS = @FCLIBS@
@@ -197,10 +198,12 @@ H5_LONE_COLON = @H5_LONE_COLON@
H5_VERSION = @H5_VERSION@
HADDR_T = @HADDR_T@
HAVE_DMALLOC = @HAVE_DMALLOC@
+HAVE_FORTRAN_2003 = @HAVE_FORTRAN_2003@
HDF5_HL = @HDF5_HL@
HDF5_INTERFACES = @HDF5_INTERFACES@
HDF_CXX = @HDF_CXX@
HDF_FORTRAN = @HDF_FORTRAN@
+HDF_FORTRAN2003 = @HDF_FORTRAN2003@
HID_T = @HID_T@
HL = @HL@
HL_FOR = @HL_FOR@
diff --git a/src/libhdf5.settings.in b/src/libhdf5.settings.in
index a873062..343fa34 100644
--- a/src/libhdf5.settings.in
+++ b/src/libhdf5.settings.in
@@ -39,6 +39,7 @@ Languages:
----------
Fortran: @HDF_FORTRAN@
@BUILD_FORTRAN_CONDITIONAL_TRUE@ Fortran Compiler: @FC_VERSION@
+@BUILD_FORTRAN_CONDITIONAL_TRUE@ Fortran 2003 Compiler: @HAVE_FORTRAN_2003@
@BUILD_FORTRAN_CONDITIONAL_TRUE@ Fortran Flags: @FCFLAGS@
@BUILD_FORTRAN_CONDITIONAL_TRUE@ H5 Fortran Flags: @H5_FCFLAGS@
@BUILD_FORTRAN_CONDITIONAL_TRUE@ AM Fortran Flags: @AM_FCFLAGS@