diff options
author | Scot Breitenfeld <brtnfld@hdfgroup.org> | 2015-08-11 01:22:33 (GMT) |
---|---|---|
committer | Scot Breitenfeld <brtnfld@hdfgroup.org> | 2015-08-11 01:22:33 (GMT) |
commit | 3b4696ccd16c2b98e2700a46bf7a5c76ef4a9764 (patch) | |
tree | f301ab5333168d7bfa691bee703dd076f569fc46 /fortran | |
parent | 415eb5512b0726716b5f8f72de3dda11ecff8091 (diff) | |
download | hdf5-3b4696ccd16c2b98e2700a46bf7a5c76ef4a9764.zip hdf5-3b4696ccd16c2b98e2700a46bf7a5c76ef4a9764.tar.gz hdf5-3b4696ccd16c2b98e2700a46bf7a5c76ef4a9764.tar.bz2 |
[svn-r27489] reverted merge of branch
Diffstat (limited to 'fortran')
191 files changed, 55091 insertions, 17878 deletions
diff --git a/fortran/Makefile.in b/fortran/Makefile.in index 8585623..55ede05 100644 --- a/fortran/Makefile.in +++ b/fortran/Makefile.in @@ -110,8 +110,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/src/H5config.h \ - $(top_builddir)/fortran/src/H5config_f.inc +CONFIG_HEADER = $(top_builddir)/src/H5config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) @@ -453,21 +452,14 @@ F9XMODEXT = @F9XMODEXT@ F9XMODFLAG = @F9XMODFLAG@ F9XSUFFIXFLAG = @F9XSUFFIXFLAG@ FC = @FC@ +FC2003 = @FC2003@ FCFLAGS = @FCFLAGS@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FORTRAN_C_LONG_DOUBLE_IS_UNIQUE = @FORTRAN_C_LONG_DOUBLE_IS_UNIQUE@ -FORTRAN_HAVE_C_LONG_DOUBLE = @FORTRAN_HAVE_C_LONG_DOUBLE@ -FORTRAN_SIZEOF_LONG_DOUBLE = @FORTRAN_SIZEOF_LONG_DOUBLE@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ -H5CONFIG_F_IKIND = @H5CONFIG_F_IKIND@ -H5CONFIG_F_NUM_IKIND = @H5CONFIG_F_NUM_IKIND@ -H5CONFIG_F_NUM_RKIND = @H5CONFIG_F_NUM_RKIND@ -H5CONFIG_F_RKIND = @H5CONFIG_F_RKIND@ -H5CONFIG_F_RKIND_SIZEOF = @H5CONFIG_F_RKIND_SIZEOF@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ @@ -477,12 +469,13 @@ H5_LDFLAGS = @H5_LDFLAGS@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ -HAVE_Fortran_INTEGER_SIZEOF_16 = @HAVE_Fortran_INTEGER_SIZEOF_16@ +HAVE_FORTRAN_2003 = @HAVE_FORTRAN_2003@ HAVE_PTHREAD = @HAVE_PTHREAD@ 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@ @@ -524,18 +517,6 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ -PAC_C_MAX_REAL_PRECISION = @PAC_C_MAX_REAL_PRECISION@ -PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ -PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ -PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ -PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ -PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ -PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ -PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ -PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ -PAC_FORTRAN_NATIVE_INTEGER_SIZEOF = @PAC_FORTRAN_NATIVE_INTEGER_SIZEOF@ -PAC_FORTRAN_NATIVE_REAL_KIND = @PAC_FORTRAN_NATIVE_REAL_KIND@ -PAC_FORTRAN_NATIVE_REAL_SIZEOF = @PAC_FORTRAN_NATIVE_REAL_SIZEOF@ PARALLEL = @PARALLEL@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ 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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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 -> US ASCII + H5T_CSET_UTF8_F -> 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">></span> US ASCII + <span class="sign">!</span> H5T_CSET_UTF8_F <span class="sign">-</span><span class="sign">></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 (>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">&</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">&</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 -> US ASCII + H5T_CSET_UTF8_F -> 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">></span> US ASCII + <span class="sign">!</span> H5T_CSET_UTF8_F <span class="sign">-</span><span class="sign">></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 (>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 & 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">&</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">&</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">&</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">&</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">&</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">&</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/CMakeLists.txt b/fortran/examples/CMakeLists.txt index f2dc896..fabc5cd 100644 --- a/fortran/examples/CMakeLists.txt +++ b/fortran/examples/CMakeLists.txt @@ -69,36 +69,38 @@ foreach (example ${examples}) endif (BUILD_SHARED_LIBS) endforeach (example ${examples}) -foreach (example ${F2003_examples}) - add_executable (f03_ex_${example} ${HDF5_F90_EXAMPLES_SOURCE_DIR}/${example}.f90) - TARGET_NAMING (f03_ex_${example} STATIC) - TARGET_FORTRAN_PROPERTIES (f03_ex_${example} STATIC " " " ") - target_link_libraries (f03_ex_${example} - ${HDF5_F90_LIB_TARGET} - ${HDF5_LIB_TARGET} - ) - target_include_directories (f03_ex_${example} PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static) - set_target_properties (f03_ex_${example} PROPERTIES - LINKER_LANGUAGE Fortran - FOLDER examples/fortran03 - Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} - ) - if (BUILD_SHARED_LIBS) - add_executable (f03_ex_${example}-shared ${HDF5_F90_EXAMPLES_SOURCE_DIR}/${example}.f90) - TARGET_NAMING (f03_ex_${example}-shared SHARED) - TARGET_FORTRAN_PROPERTIES (f03_ex_${example}-shared SHARED " " " ") - target_link_libraries (f03_ex_${example}-shared - ${HDF5_F90_LIBSH_TARGET} - ${HDF5_LIBSH_TARGET} +if (HDF5_ENABLE_F2003) + foreach (example ${F2003_examples}) + add_executable (f03_ex_${example} ${HDF5_F90_EXAMPLES_SOURCE_DIR}/${example}.f90) + TARGET_NAMING (f03_ex_${example} STATIC) + TARGET_FORTRAN_PROPERTIES (f03_ex_${example} STATIC " " " ") + target_link_libraries (f03_ex_${example} + ${HDF5_F90_LIB_TARGET} + ${HDF5_LIB_TARGET} ) - target_include_directories (f03_ex_${example}-shared PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/shared) - set_target_properties (f03_ex_${example}-shared PROPERTIES + target_include_directories (f03_ex_${example} PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static) + set_target_properties (f03_ex_${example} PROPERTIES LINKER_LANGUAGE Fortran FOLDER examples/fortran03 - Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/shared + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/static ) - endif (BUILD_SHARED_LIBS) -endforeach (example ${F2003_examples}) + if (BUILD_SHARED_LIBS) + add_executable (f03_ex_${example}-shared ${HDF5_F90_EXAMPLES_SOURCE_DIR}/${example}.f90) + TARGET_NAMING (f03_ex_${example}-shared SHARED) + TARGET_FORTRAN_PROPERTIES (f03_ex_${example}-shared SHARED " " " ") + target_link_libraries (f03_ex_${example}-shared + ${HDF5_F90_LIBSH_TARGET} + ${HDF5_LIBSH_TARGET} + ) + target_include_directories (f03_ex_${example}-shared PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/shared) + set_target_properties (f03_ex_${example}-shared PROPERTIES + LINKER_LANGUAGE Fortran + FOLDER examples/fortran03 + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/shared + ) + endif (BUILD_SHARED_LIBS) + endforeach (example ${F2003_examples}) +endif (HDF5_ENABLE_F2003) if (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND) add_executable (f90_ex_ph5example ${HDF5_F90_EXAMPLES_SOURCE_DIR}/ph5example.f90) diff --git a/fortran/examples/Makefile.am b/fortran/examples/Makefile.am index cdd9317..caaa08c 100644 --- a/fortran/examples/Makefile.am +++ b/fortran/examples/Makefile.am @@ -46,10 +46,12 @@ INSTALL_FILES=h5_crtdat.f90 h5_rdwt.f90 \ # Add attention tests for Fortran 2003 features -EXAMPLE_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 +if FORTRAN_2003_CONDITIONAL_F + EXAMPLE_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 TEST_EXAMPLES_SCRIPT=$(INSTALL_SCRIPT_FILES) @@ -101,10 +103,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 f97fdc8..c894b75 100644 --- a/fortran/examples/Makefile.in +++ b/fortran/examples/Makefile.in @@ -104,6 +104,14 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ $(srcdir)/Makefile.am $(top_srcdir)/bin/mkinstalldirs \ $(srcdir)/run-fortran-ex.sh.in $(srcdir)/testh5fc.sh.in \ $(top_srcdir)/bin/test-driver + +# 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 = $(TEST_SCRIPT) subdir = fortran/examples ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -112,8 +120,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/src/H5config.h \ - $(top_builddir)/fortran/src/H5config_f.inc +CONFIG_HEADER = $(top_builddir)/src/H5config.h CONFIG_CLEAN_FILES = run-fortran-ex.sh testh5fc.sh CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) @@ -397,21 +404,14 @@ F9XMODEXT = @F9XMODEXT@ F9XMODFLAG = @F9XMODFLAG@ F9XSUFFIXFLAG = @F9XSUFFIXFLAG@ FC = @FC@ +FC2003 = @FC2003@ FCFLAGS = @FCFLAGS@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FORTRAN_C_LONG_DOUBLE_IS_UNIQUE = @FORTRAN_C_LONG_DOUBLE_IS_UNIQUE@ -FORTRAN_HAVE_C_LONG_DOUBLE = @FORTRAN_HAVE_C_LONG_DOUBLE@ -FORTRAN_SIZEOF_LONG_DOUBLE = @FORTRAN_SIZEOF_LONG_DOUBLE@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ -H5CONFIG_F_IKIND = @H5CONFIG_F_IKIND@ -H5CONFIG_F_NUM_IKIND = @H5CONFIG_F_NUM_IKIND@ -H5CONFIG_F_NUM_RKIND = @H5CONFIG_F_NUM_RKIND@ -H5CONFIG_F_RKIND = @H5CONFIG_F_RKIND@ -H5CONFIG_F_RKIND_SIZEOF = @H5CONFIG_F_RKIND_SIZEOF@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ @@ -421,12 +421,13 @@ H5_LDFLAGS = @H5_LDFLAGS@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ -HAVE_Fortran_INTEGER_SIZEOF_16 = @HAVE_Fortran_INTEGER_SIZEOF_16@ +HAVE_FORTRAN_2003 = @HAVE_FORTRAN_2003@ HAVE_PTHREAD = @HAVE_PTHREAD@ 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@ @@ -468,18 +469,6 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ -PAC_C_MAX_REAL_PRECISION = @PAC_C_MAX_REAL_PRECISION@ -PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ -PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ -PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ -PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ -PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ -PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ -PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ -PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ -PAC_FORTRAN_NATIVE_INTEGER_SIZEOF = @PAC_FORTRAN_NATIVE_INTEGER_SIZEOF@ -PAC_FORTRAN_NATIVE_REAL_KIND = @PAC_FORTRAN_NATIVE_REAL_KIND@ -PAC_FORTRAN_NATIVE_REAL_SIZEOF = @PAC_FORTRAN_NATIVE_REAL_SIZEOF@ PARALLEL = @PARALLEL@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ @@ -630,21 +619,17 @@ INSTALL_SCRIPT_FILES = run-fortran-ex.sh # be run. # We don't tell automake about these programs so that it doesn't try to # compile them with the regular fortran compiler. - -# Add attention tests for Fortran 2003 features EXAMPLE_PROG = h5_crtdat h5_rdwt h5_crtatt h5_crtgrp h5_crtgrpar \ h5_crtgrpd h5_extend h5_subset h5_cmprss hyperslab selectele \ refobjexample refregexample mountexample compound \ - rwdset_fortran2003 nested_derived_type compound_fortran2003 \ - compound_complex_fortran2003 + $(am__append_1) # List files to be installed here INSTALL_FILES = h5_crtdat.f90 h5_rdwt.f90 h5_crtatt.f90 h5_crtgrp.f90 \ h5_crtgrpar.f90 h5_crtgrpd.f90 h5_extend.f90 h5_subset.f90 \ h5_cmprss.f90 hyperslab.f90 selectele.f90 refobjexample.f90 \ refregexample.f90 mountexample.f90 compound.f90 ph5example.f90 \ - rwdset_fortran2003.f90 nested_derived_type.f90 \ - compound_fortran2003.f90 compound_complex_fortran2003.f90 + $(am__append_2) TEST_SCRIPT = testh5fc.sh TEST_EXAMPLES_SCRIPT = $(INSTALL_SCRIPT_FILES) @@ -1082,10 +1067,10 @@ refregexample: refregexample.f90 mountexample: mountexample.f90 compound: compound.f90 ph5example: ph5example.f90 -rwdset_fortran2003: rwdset_fortran2003.f90 -nested_derived_type: nested_derived_type.f90 -compound_fortran2003: compound_fortran2003.f90 -compound_complex_fortran2003: compound_complex_fortran2003.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/nested_derived_type.f90 b/fortran/examples/nested_derived_type.f90 index 65e7e75..f806110 100644 --- a/fortran/examples/nested_derived_type.f90 +++ b/fortran/examples/nested_derived_type.f90 @@ -23,13 +23,13 @@ PROGRAM main IMPLICIT NONE ! KIND parameters - INTEGER, PARAMETER :: int_k1 = SELECTED_INT_KIND(2) ! This should map to INTEGER*1 on most modern processors - INTEGER, PARAMETER :: int_k4 = SELECTED_INT_KIND(4) ! This should map to INTEGER*2 on most modern processors - INTEGER, PARAMETER :: int_k8 = SELECTED_INT_KIND(9) ! This should map to INTEGER*4 on most modern processors - INTEGER, PARAMETER :: int_k16 = SELECTED_INT_KIND(18) ! This should map to INTEGER*8 on most modern processors + 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(6,37) ! This should map to REAL*4 on most modern processors - INTEGER, PARAMETER :: r_k8 = SELECTED_REAL_KIND(15,307) ! This should map to REAL*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 diff --git a/fortran/examples/rwdset_fortran2003.f90 b/fortran/examples/rwdset_fortran2003.f90 index 682676f..d65db9e 100644 --- a/fortran/examples/rwdset_fortran2003.f90 +++ b/fortran/examples/rwdset_fortran2003.f90 @@ -28,13 +28,13 @@ PROGRAM RWDSET_FORTRAN2003 IMPLICIT NONE - INTEGER, PARAMETER :: int_kind_1 = SELECTED_INT_KIND(2) !should map to INTEGER*1 on most modern processors - INTEGER, PARAMETER :: int_kind_4 = SELECTED_INT_KIND(4) !should map to INTEGER*2 on most modern processors - INTEGER, PARAMETER :: int_kind_8 = SELECTED_INT_KIND(9) !should map to INTEGER*4 on most modern processors - INTEGER, PARAMETER :: int_kind_16 = SELECTED_INT_KIND(18) !should map to INTEGER*8 on most modern processors + 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(6,37) !should map to REAL*4 on most modern processors - INTEGER, PARAMETER :: real_kind_15 = SELECTED_REAL_KIND(15,307) !should map to REAL*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 @@ -148,12 +148,12 @@ PROGRAM RWDSET_FORTRAN2003 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(2): ',data_out_i8a - WRITE(*,'(A,4i8)' )'SELECTED_INT_KIND(4): ',data_out_i4 - WRITE(*,'(A,4i8)' )'SELECTED_INT_KIND(9): ',data_out_i8 - WRITE(*,'(A,4i8)' )'SELECTED_INT_KIND(18): ',data_out_i16 - WRITE(*,'(A,4(1x,f9.4))' )'SELECTED_REAL_KIND(6,37): ',data_out_r7 - WRITE(*,'(A,4(1x,f16.10))' )'SELECTED_REAL_KIND(15,307): ',data_out_r15 + 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. ! diff --git a/fortran/src/CMakeLists.txt b/fortran/src/CMakeLists.txt index 8f63b3c..bb171d4 100644 --- a/fortran/src/CMakeLists.txt +++ b/fortran/src/CMakeLists.txt @@ -19,47 +19,100 @@ if (WIN32) endif (BUILD_SHARED_LIBS) endif (WIN32) -# configure for Fortran preprocessor - -# Define Parallel variable for passing to H5config_f.inc.cmake -set (CMAKE_H5_HAVE_PARALLEL 0) -if (H5_HAVE_PARALLEL) - set (CMAKE_H5_HAVE_PARALLEL 1) -endif (H5_HAVE_PARALLEL) - -set (CMAKE_H5_HAVE_FLOAT128 0) -if (HAVE_FLOAT128) - set (CMAKE_H5_HAVE_FLOAT128 1) -endif(HAVE_FLOAT128) - -configure_file (${HDF5_F90_SRC_SOURCE_DIR}/H5config_f.inc.cmake ${CMAKE_BINARY_DIR}/H5config_f.inc @ONLY) -configure_file (${HDF5_F90_SRC_SOURCE_DIR}/H5fort_type_defines.h.in ${HDF5_F90_BINARY_DIR}/H5fort_type_defines.h @ONLY) - #----------------------------------------------------------------------------- # Setup the Fortran auto-detection utilities -# H5_buildiface.F90 used to generate various KIND interfaces -# H5fort_type_defines.h used to generate H5f90i_gen.h + H5fortran_types.F90 +# H5test_kind(_SIZEOF,_STORAGE_SIZE).f90 used to generate H5fortran_detect.f90 +# H5fortran_detect.f90 used to generate H5fort_type_defines.h +# H5fort_type_defines.h used to generate H5f90i_gen.h + H5fortran_types.f90 #----------------------------------------------------------------------------- - -add_executable (H5_buildiface - ${HDF5_F90_SRC_SOURCE_DIR}/H5_buildiface.F90 +if (FORTRAN_HAVE_STORAGE_SIZE) + add_executable (H5test_FortranHavekind + ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind_STORAGE_SIZE.f90 ) - + if (BUILD_SHARED_LIBS) + add_executable (H5test_FortranHavekind-shared + ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind_STORAGE_SIZE.f90 + ) + endif (BUILD_SHARED_LIBS) + set (H5_TEST_KIND_NAME "h5test_kind_storage_size_mod") +else (FORTRAN_HAVE_STORAGE_SIZE) + if (FORTRAN_HAVE_SIZEOF) + add_executable (H5test_FortranHavekind + ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind_SIZEOF.f90 + ) + if (BUILD_SHARED_LIBS) + add_executable (H5test_FortranHavekind-shared + ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind_SIZEOF.f90 + ) + endif (BUILD_SHARED_LIBS) + set (H5_TEST_KIND_NAME "h5test_kind_sizeof_mod") + else (FORTRAN_HAVE_SIZEOF) + add_executable (H5test_FortranHavekind + ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind.f90 + ) + if (BUILD_SHARED_LIBS) + add_executable (H5test_FortranHavekind-shared + ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind.f90 + ) + endif (BUILD_SHARED_LIBS) + endif (FORTRAN_HAVE_SIZEOF) +endif (FORTRAN_HAVE_STORAGE_SIZE) if (WIN32 AND MSVC) if (BUILD_SHARED_LIBS) - set_target_properties (H5_buildiface + set_target_properties (H5test_FortranHavekind-shared PROPERTIES COMPILE_FLAGS "/MT" ) endif (BUILD_SHARED_LIBS) - set_target_properties (H5_buildiface + set_target_properties (H5test_FortranHavekind PROPERTIES LINK_FLAGS "/SUBSYSTEM:CONSOLE" ) endif (WIN32 AND MSVC) -set_target_properties (H5_buildiface PROPERTIES +set_target_properties (H5test_FortranHavekind PROPERTIES LINKER_LANGUAGE Fortran - Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/static +) +if (BUILD_SHARED_LIBS) + set_target_properties (H5test_FortranHavekind-shared PROPERTIES + LINKER_LANGUAGE Fortran + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/shared + ) +endif (BUILD_SHARED_LIBS) + +set (CMD $<TARGET_FILE:H5test_FortranHavekind>) +add_custom_command ( + OUTPUT ${HDF5_F90_BINARY_DIR}/H5fortran_detect.f90 + COMMAND ${CMD} + ARGS > ${HDF5_F90_BINARY_DIR}/H5fortran_detect.f90 + WORKING_DIRECTORY ${HDF5_F90_BINARY_DIR} + DEPENDS H5test_FortranHavekind +) +#----------------------------------------------------------------------------- +add_executable (H5fortran_detect + ${HDF5_F90_BINARY_DIR}/H5fortran_detect.f90 +) +if (WIN32 AND MSVC) + if (BUILD_SHARED_LIBS) + set_target_properties (H5fortran_detect + PROPERTIES + COMPILE_FLAGS "/MT" + ) + endif (BUILD_SHARED_LIBS) + set_target_properties (H5fortran_detect + PROPERTIES + LINK_FLAGS "/SUBSYSTEM:CONSOLE" + ) +endif (WIN32 AND MSVC) +set_target_properties (H5fortran_detect PROPERTIES LINKER_LANGUAGE Fortran) + +set (CMD $<TARGET_FILE:H5fortran_detect>) +add_custom_command ( + OUTPUT ${HDF5_F90_BINARY_DIR}/H5fort_type_defines.h + COMMAND ${CMD} + ARGS > ${HDF5_F90_BINARY_DIR}/H5fort_type_defines.h + WORKING_DIRECTORY ${HDF5_F90_BINARY_DIR} + DEPENDS H5fortran_detect ) INCLUDE_DIRECTORIES (${HDF5_F90_BINARY_DIR} ${CMAKE_Fortran_MODULE_DIRECTORY}) @@ -71,7 +124,7 @@ add_executable (H5match_types set (CMD $<TARGET_FILE:H5match_types>) add_custom_command ( OUTPUT ${HDF5_F90_BINARY_DIR}/H5f90i_gen.h - ${HDF5_F90_BINARY_DIR}/H5fortran_types.F90 + ${HDF5_F90_BINARY_DIR}/H5fortran_types.f90 COMMAND ${CMD} WORKING_DIRECTORY ${HDF5_F90_BINARY_DIR} DEPENDS H5match_types @@ -99,6 +152,12 @@ set (f90CStub_C_SRCS ${HDF5_F90_SRC_SOURCE_DIR}/H5Zf.c ) +if (H5_HAVE_PARALLEL) + set (f90CStub_C_SRCS + ${f90CStub_C_SRCS} + ${HDF5_F90_SRC_SOURCE_DIR}/H5FDmpiof.c + ) +endif (H5_HAVE_PARALLEL) set_source_files_properties (${f90CStub_C_SRCS} PROPERTIES LANGUAGE C) set (f90CStub_C_HDRS @@ -134,51 +193,79 @@ if (BUILD_SHARED_LIBS) set (install_targets ${install_targets} ${HDF5_F90_C_LIBSH_TARGET}) endif (BUILD_SHARED_LIBS) -set_source_files_properties (${HDF5_F90_BINARY_DIR}/H5_gen.F90 PROPERTIES GENERATED TRUE) - #----------------------------------------------------------------------------- -# Fortran Modules +# Fortran 2003 standard #----------------------------------------------------------------------------- -set (f90_F_BASE_SRCS - # generated files - ${HDF5_F90_BINARY_DIR}/H5fortran_types.F90 +if (HDF5_ENABLE_F2003) + # F2003 features are enabled + set (F_STATUS "_F03") +else (HDF5_ENABLE_F2003) + # F2003 features are not enabled + set (F_STATUS "_F90") +endif (HDF5_ENABLE_F2003) - # normal distribution - ${HDF5_F90_SRC_SOURCE_DIR}/H5f90global.F90 - ${HDF5_F90_SRC_SOURCE_DIR}/H5_ff.F90 - ${HDF5_F90_SRC_SOURCE_DIR}/H5Aff.F90 - ${HDF5_F90_SRC_SOURCE_DIR}/H5Dff.F90 - ${HDF5_F90_SRC_SOURCE_DIR}/H5Eff.F90 - ${HDF5_F90_SRC_SOURCE_DIR}/H5Fff.F90 - ${HDF5_F90_SRC_SOURCE_DIR}/H5Gff.F90 - ${HDF5_F90_SRC_SOURCE_DIR}/H5Iff.F90 - ${HDF5_F90_SRC_SOURCE_DIR}/H5Lff.F90 - ${HDF5_F90_SRC_SOURCE_DIR}/H5Off.F90 - ${HDF5_F90_SRC_SOURCE_DIR}/H5Pff.F90 - ${HDF5_F90_SRC_SOURCE_DIR}/H5Rff.F90 - ${HDF5_F90_SRC_SOURCE_DIR}/H5Sff.F90 - ${HDF5_F90_SRC_SOURCE_DIR}/H5Tff.F90 - ${HDF5_F90_SRC_SOURCE_DIR}/H5Zff.F90 -) +#----------------------------------------------------------------------------- +# Fortran Real Size +#----------------------------------------------------------------------------- +if (FORTRAN_DEFAULT_REAL_NOT_DOUBLE) + # default real is 4 bytes, so include double signatures + set (F_DBLE "Include") +else (FORTRAN_DEFAULT_REAL_NOT_DOUBLE) + # default real is 8 bytes, so exclude double signatures + set (F_DBLE "Exclude") +endif (FORTRAN_DEFAULT_REAL_NOT_DOUBLE) +#----------------------------------------------------------------------------- +# Fortran Modules +#----------------------------------------------------------------------------- set (f90_F_SRCS - ${f90_F_BASE_SRCS} - - # generated file - ${HDF5_F90_BINARY_DIR}/H5_gen.F90 + # generated files + ${HDF5_F90_BINARY_DIR}/H5fortran_types.f90 # normal distribution - ${HDF5_F90_SRC_SOURCE_DIR}/HDF5.F90 -) - -set (CMD $<TARGET_FILE:H5_buildiface>) -add_custom_target (H5gen ALL - COMMAND ${CMD} -#v3.2 BYPRODUCT ${HDF5_F90_BINARY_DIR}/H5_gen.F90 - WORKING_DIRECTORY ${HDF5_F90_BINARY_DIR} - DEPENDS ${f90_F_BASE_SRCS} + ${HDF5_F90_SRC_SOURCE_DIR}/H5f90global.f90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5_ff${F_STATUS}.f90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5_ff.f90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5Aff.f90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5Dff.f90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5Eff.f90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5Fff.f90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5Gff.f90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5Iff.f90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5Lff.f90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5Off.f90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5Pff.f90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5Rff.f90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5Sff.f90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5Tff.f90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5Zff.f90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5Aff${F_STATUS}.f90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5Dff${F_STATUS}.f90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5Eff${F_STATUS}.f90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5Fff${F_STATUS}.f90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5Lff${F_STATUS}.f90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5Off${F_STATUS}.f90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5Pff${F_STATUS}.f90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5Rff${F_STATUS}.f90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5Tff${F_STATUS}.f90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5_DBLE_Interface${F_DBLE}.f90 ) +#----------------------------------------------------------------------------- +# Add H5FDMPIO if parallel +#----------------------------------------------------------------------------- +if (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND) + set (f90_F_SRCS + ${f90_F_SRCS} + ${HDF5_F90_SRC_SOURCE_DIR}/HDF5mpio.f90 + ${HDF5_F90_SRC_SOURCE_DIR}/H5FDmpioff.f90 + ) +else (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND) + set (f90_F_SRCS + ${f90_F_SRCS} + ${HDF5_F90_SRC_SOURCE_DIR}/HDF5.f90 + ) +endif (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND) set_source_files_properties (${f90_F_SRCS} PROPERTIES LANGUAGE Fortran) #----------------------------------------------------------------------------- @@ -239,15 +326,15 @@ endif (BUILD_SHARED_LIBS) # Add file(s) to CMake Install #----------------------------------------------------------------------------- install ( - FILES - ${HDF5_F90_SRC_SOURCE_DIR}/H5f90.h - ${HDF5_F90_SRC_SOURCE_DIR}/H5f90i.h - ${HDF5_F90_SRC_SOURCE_DIR}/H5f90proto.h + FILES + ${HDF5_F90_SRC_SOURCE_DIR}/H5f90.h + ${HDF5_F90_SRC_SOURCE_DIR}/H5f90i.h + ${HDF5_F90_SRC_SOURCE_DIR}/H5f90proto.h ${HDF5_F90_BINARY_DIR}/H5f90i_gen.h - ${HDF5_F90_BINARY_DIR}/H5fortran_types.F90 - DESTINATION + ${HDF5_F90_BINARY_DIR}/H5fortran_types.f90 + DESTINATION ${HDF5_INSTALL_INCLUDE_DIR} - COMPONENT + COMPONENT fortheaders ) @@ -283,7 +370,17 @@ set (mod_files ${MOD_BUILD_DIR}/h5s.mod ${MOD_BUILD_DIR}/h5t.mod ${MOD_BUILD_DIR}/h5z.mod - ${MOD_BUILD_DIR}/h5_gen.mod + ${MOD_BUILD_DIR}/h5a_provisional.mod + ${MOD_BUILD_DIR}/h5d_provisional.mod + ${MOD_BUILD_DIR}/h5e_provisional.mod + ${MOD_BUILD_DIR}/h5f_provisional.mod + ${MOD_BUILD_DIR}/h5l_provisional.mod + ${MOD_BUILD_DIR}/h5lib_provisional.mod + ${MOD_BUILD_DIR}/h5o_provisional.mod + ${MOD_BUILD_DIR}/h5p_provisional.mod + ${MOD_BUILD_DIR}/h5r_provisional.mod + ${MOD_BUILD_DIR}/h5t_provisional.mod + ${MOD_BUILD_DIR}/h5_dble_interface.mod ) install ( FILES diff --git a/fortran/src/H5Af.c b/fortran/src/H5Af.c index 8f012cf..bc2e9f1 100644 --- a/fortran/src/H5Af.c +++ b/fortran/src/H5Af.c @@ -1,6 +1,6 @@ /****h* H5Af/H5Af * PURPOSE - * This file contains C stubs for H5A Fortran APIs + * This file contains C stubs for H5A Fortran APIs * * COPYRIGHT * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -26,29 +26,29 @@ /****if* H5Af/h5acreate_c * NAME - * h5acreate_c + * h5acreate_c * PURPOSE - * Call H5Acreate2 to create an attribute + * 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 + * 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 + * attr_id - attribute identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Thursday, August 12, 1999 + * Thursday, August 12, 1999 * HISTORY * * SOURCE */ int_f -h5acreate_c(hid_t_f *obj_id, _fcd name, size_t_f *namelen, hid_t_f *type_id, +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) /*******/ { @@ -73,26 +73,894 @@ done: return ret_value; } +/****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 + * AUTHOR + * Elena Pourmal + * Thursday, August 12, 1999 + * 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 */ + + /* + * Convert FORTRAN name to C name + */ + if((c_name = HD5f2cstring(name, (size_t)*namelen)) == NULL) + HGOTO_DONE(FAIL); + + /* + * Call H5Aopen function. + */ + if((*attr_id = (hid_t_f)H5Aopen((hid_t)*obj_id, c_name, H5P_DEFAULT)) < 0) + HGOTO_DONE(FAIL); + +done: + if(c_name) + HDfree(c_name); + return ret_value; +} + +/****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 + * AUTHOR + * Elena Pourmal + * Thursday , August 12, 1999 + * 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. + */ + return nh5awrite_c(attr_id, mem_type_id, _fcdtocp(buf), 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. + */ + return nh5awrite_c(attr_id, mem_type_id, _fcdtocp(buf), 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. + */ + return nh5awrite_c(attr_id, mem_type_id, _fcdtocp(buf), 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. + */ + return nh5awrite_c(attr_id, mem_type_id, _fcdtocp(buf), 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. + */ + return nh5awrite_c(attr_id, mem_type_id, _fcdtocp(buf), 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. + */ + return nh5awrite_c(attr_id, mem_type_id, _fcdtocp(buf), 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. + */ + return nh5awrite_c(attr_id, mem_type_id, _fcdtocp(buf), 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. + */ + return nh5awrite_c(attr_id, mem_type_id, _fcdtocp(buf), 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. + */ + return nh5awrite_c(attr_id, mem_type_id, _fcdtocp(buf), dims); +} + + + +/****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 + * AUTHOR + * Elena Pourmal + * Thursday, August 12, 1999 + * 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 H5_ATTR_UNUSED *dims) +/******/ +{ + /* + * Call h5awrite_c function. + */ + return nh5awrite_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5awrite_integer_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims) +/******/ +{ + /* + * Call h5awrite_c function. + */ + return nh5awrite_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5awrite_integer_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims) +/******/ +{ + /* + * Call h5awrite_c function. + */ + return nh5awrite_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5awrite_integer_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims) +/******/ +{ + /* + * Call h5awrite_c function. + */ + return nh5awrite_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5awrite_integer_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims) +/******/ +{ + /* + * Call h5awrite_c function. + */ + return nh5awrite_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5awrite_integer_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims) +/******/ +{ + /* + * Call h5awrite_c function. + */ + return nh5awrite_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5awrite_integer_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims) +/******/ +{ + /* + * Call h5awrite_c function. + */ + return nh5awrite_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5awrite_integer_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims) +/******/ +{ + /* + * Call h5awrite_c function. + */ + return nh5awrite_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5awrite_real_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims) +/******/ +{ + /* + * Call h5awrite_c function. + */ + return nh5awrite_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5awrite_real_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims) +/******/ +{ + /* + * Call h5awrite_c function. + */ + return nh5awrite_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5awrite_real_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims) +/******/ +{ + /* + * Call h5awrite_c function. + */ + return nh5awrite_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5awrite_real_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims) +/******/ +{ + /* + * Call h5awrite_c function. + */ + return nh5awrite_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5awrite_real_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims) +/******/ +{ + /* + * Call h5awrite_c function. + */ + return nh5awrite_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5awrite_real_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims) +/******/ +{ + /* + * Call h5awrite_c function. + */ + return nh5awrite_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5awrite_real_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims) +/******/ +{ + /* + * Call h5awrite_c function. + */ + return nh5awrite_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5awrite_real_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims) +/******/ +{ + /* + * Call h5awrite_c function. + */ + return nh5awrite_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5awrite_double_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims) +/******/ +{ + /* + * Call h5awrite_c function. + */ + return nh5awrite_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5awrite_double_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims) +/******/ +{ + /* + * Call h5awrite_c function. + */ + return nh5awrite_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5awrite_double_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims) +/******/ +{ + /* + * Call h5awrite_c function. + */ + return nh5awrite_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5awrite_double_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims) +/******/ +{ + /* + * Call h5awrite_c function. + */ + return nh5awrite_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5awrite_double_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims) +/******/ +{ + /* + * Call h5awrite_c function. + */ + return nh5awrite_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5awrite_double_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims) +/******/ +{ + /* + * Call h5awrite_c function. + */ + return nh5awrite_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5awrite_double_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims) +/******/ +{ + /* + * Call h5awrite_c function. + */ + return nh5awrite_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5awrite_double_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims) +/******/ +{ + /* + * Call h5awrite_c function. + */ + return nh5awrite_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5awrite_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims) +/******/ +{ + int_f ret_value=0; /* Return value */ + + /* + * Call H5Awrite function. + */ + if (H5Awrite((hid_t)*attr_id, (hid_t)*mem_type_id, buf) < 0) + HGOTO_DONE(FAIL); + +done: + return ret_value; +} + + +/****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 + * AUTHOR + * Elena Pourmal + * Thursday, August 12, 1999 + * 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. + */ + return nh5aread_c(attr_id, mem_type_id, _fcdtocp(buf), 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. + */ + return nh5aread_c(attr_id, mem_type_id, _fcdtocp(buf), 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. + */ + return nh5aread_c(attr_id, mem_type_id, _fcdtocp(buf), 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. + */ + return nh5aread_c(attr_id, mem_type_id, _fcdtocp(buf), 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. + */ + return nh5aread_c(attr_id, mem_type_id, _fcdtocp(buf), 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. + */ + return nh5aread_c(attr_id, mem_type_id, _fcdtocp(buf), 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. + */ + return nh5aread_c(attr_id, mem_type_id, _fcdtocp(buf), 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. + */ + return nh5aread_c(attr_id, mem_type_id, _fcdtocp(buf), 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. + */ + return nh5aread_c(attr_id, mem_type_id, _fcdtocp(buf), dims); +} + + + +/****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 + * AUTHOR + * Elena Pourmal + * Thursday, August 12, 1999 + * 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 H5_ATTR_UNUSED * dims) +/******/ +{ + int_f ret_value=0; /* Return value */ + + /* + * Call H5Aread function. + */ + if (H5Aread((hid_t)*attr_id, (hid_t)*mem_type_id, buf) < 0) + HGOTO_DONE(FAIL); + +done: + return ret_value; +} + +int_f +nh5aread_integer_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims) +/******/ +{ + /* + * Call h5aread_c function. + */ + return nh5aread_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5aread_integer_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims) +/******/ +{ + /* + * Call h5aread_c function. + */ + return nh5aread_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5aread_integer_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims) +/******/ +{ + /* + * Call h5aread_c function. + */ + return nh5aread_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5aread_integer_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims) +/******/ +{ + /* + * Call h5aread_c function. + */ + return nh5aread_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5aread_integer_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims) +/******/ +{ + /* + * Call h5aread_c function. + */ + return nh5aread_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5aread_integer_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims) +/******/ +{ + /* + * Call h5aread_c function. + */ + return nh5aread_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5aread_integer_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims) +/******/ +{ + /* + * Call h5aread_c function. + */ + return nh5aread_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5aread_integer_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims) +/******/ +{ + /* + * Call h5aread_c function. + */ + return nh5aread_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5aread_real_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims) +/******/ +{ + /* + * Call h5aread_c function. + */ + return nh5aread_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5aread_real_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims) +/******/ +{ + /* + * Call h5aread_c function. + */ + return nh5aread_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5aread_real_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims) +/******/ +{ + /* + * Call h5aread_c function. + */ + return nh5aread_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5aread_real_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims) +/******/ +{ + /* + * Call h5aread_c function. + */ + return nh5aread_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5aread_real_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims) +/******/ +{ + /* + * Call h5aread_c function. + */ + return nh5aread_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5aread_real_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims) +/******/ +{ + /* + * Call h5aread_c function. + */ + return nh5aread_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5aread_real_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims) +/******/ +{ + /* + * Call h5aread_c function. + */ + return nh5aread_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5aread_real_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims) +/******/ +{ + /* + * Call h5aread_c function. + */ + return nh5aread_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5aread_double_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims) +/******/ +{ + /* + * Call h5aread_c function. + */ + return nh5aread_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5aread_double_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims) +/******/ +{ + /* + * Call h5aread_c function. + */ + return nh5aread_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5aread_double_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims) +/******/ +{ + /* + * Call h5aread_c function. + */ + return nh5aread_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5aread_double_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims) +/******/ +{ + /* + * Call h5aread_c function. + */ + return nh5aread_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5aread_double_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims) +/******/ +{ + /* + * Call h5aread_c function. + */ + return nh5aread_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5aread_double_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims) +/******/ +{ + /* + * Call h5aread_c function. + */ + return nh5aread_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5aread_double_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims) +/******/ +{ + /* + * Call h5aread_c function. + */ + return nh5aread_c(attr_id, mem_type_id, buf, dims); +} + +int_f +nh5aread_double_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims) +/******/ +{ + /* + * Call h5aread_c function. + */ + return nh5aread_c(attr_id, mem_type_id, buf, dims); +} + + +/****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 + * HISTORY + * + * SOURCE +*/ + +int_f +nh5aclose_c ( hid_t_f *attr_id ) +/******/ +{ + int_f ret_value=0; /* Return value */ + + if (H5Aclose((hid_t)*attr_id) < 0) + HGOTO_DONE(FAIL); + +done: + return ret_value; +} + /****if* H5Af/h5adelete_c * NAME - * h5adelete_c + * h5adelete_c * PURPOSE - * Call H5Adelete to delete an attribute + * Call H5Adelete to delete an attribute * INPUTS - * obj_id - object identifier - * name - name of the attribute - * namelen - name length + * obj_id - object identifier + * name - name of the attribute + * namelen - name length * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Thursday, August 12, 1999 + * Thursday, August 12, 1999 * HISTORY * * SOURCE */ int_f -h5adelete_c (hid_t_f *obj_id, _fcd name, size_t_f *namelen) +nh5adelete_c (hid_t_f *obj_id, _fcd name, size_t_f *namelen) /******/ { char *c_name = NULL; /* Buffer to hold C string */ @@ -117,26 +985,131 @@ done: return ret_value; } + +/****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 + * AUTHOR + * Elena Pourmal + * Thursday, August 12, 1999 + * 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 */ + + /* + * Call H5Aopen_by_idx function. + */ + if((*attr_id = (hid_t_f)H5Aopen_by_idx((hid_t)*obj_id, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)*idx, H5P_DEFAULT, H5P_DEFAULT)) < 0) + HGOTO_DONE(FAIL); + +done: + return ret_value; +} + + +/****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 + * HISTORY + * + * SOURCE +*/ +int_f +nh5aget_space_c (hid_t_f *attr_id, hid_t_f *space_id) +/******/ +{ + int_f ret_value=0; /* Return value */ + + /* + * Call H5Aget_space function. + */ + if ((*space_id = (hid_t_f)H5Aget_space((hid_t)*attr_id)) < 0) + HGOTO_DONE(FAIL); + +done: + return ret_value; +} + +/****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 + * HISTORY + * + * SOURCE +*/ +int_f +nh5aget_type_c (hid_t_f *attr_id, hid_t_f *type_id) +/******/ +{ + int_f ret_value=0; /* Return value */ + + /* + * Call H5Aget_type function. + */ + if ((*type_id = (hid_t_f)H5Aget_type((hid_t)*attr_id)) < 0) + HGOTO_DONE(FAIL); + +done: + return ret_value; +} + /****if* H5Af/h5aget_num_attrs_c * NAME - * h5aget_num_attrs_c + * h5aget_num_attrs_c * PURPOSE - * Call H5Oget_info to determine number of - * attributes of an object + * Call H5Oget_info to determine number of + * attributes of an object * INPUTS - * obj_id - object identifier - * attr_num - number of attributes + * obj_id - object identifier + * attr_num - number of attributes * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Thursday, August 12, 1999 + * Thursday, August 12, 1999 * HISTORY * * SOURCE */ int_f -h5aget_num_attrs_c (hid_t_f *obj_id, int_f *attr_num) +nh5aget_num_attrs_c (hid_t_f *obj_id, int_f *attr_num) /******/ { H5O_info_t oinfo; /* Object info */ @@ -157,25 +1130,25 @@ done: /****if* H5Af/h5aget_name_c * NAME - * h5aget_name_c + * h5aget_name_c * PURPOSE - * Call H5Aget_name to get attribute's name + * Call H5Aget_name to get attribute's name * INPUTS - * attr_id - attribute identifier - * bufsize - size of the buffer + * attr_id - attribute identifier + * bufsize - size of the buffer * OUTPUTS - * buf - buffer to hold the name + * buf - buffer to hold the name * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Thursday, August 12, 1999 + * Thursday, August 12, 1999 * HISTORY * * SOURCE */ int_f -h5aget_name_c(hid_t_f *attr_id, size_t_f *bufsize, _fcd buf) +nh5aget_name_c(hid_t_f *attr_id, size_t_f *bufsize, _fcd buf) /******/ { size_t c_bufsize; @@ -206,36 +1179,99 @@ done: return ret_value; } +/****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 + * 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 */ + + if ((*size = (hsize_t_f)H5Aget_storage_size((hid_t)*attr_id)) < 0) + HGOTO_DONE(FAIL); + +done: + return ret_value; +} + +/****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 + * 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 */ + + if ((*creation_prop_id = (hid_t_f)H5Aget_create_plist((hid_t)*attr_id)) < 0) + HGOTO_DONE(FAIL); + +done: + return ret_value; +} /****if* H5Af/h5arename_by_name_c * NAME - * h5arename_by_name_c + * h5arename_by_name_c * PURPOSE - * Calls H5Arename_by_name + * 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 - * 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 - * lapl_id - Link access property list identifier + * loc_id - Object identifier + * obj_name - Name of object, relative to location, + * whose attribute is to be renamed + * obj_name_len - Object name length + * 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 + * lapl_id - Link access property list identifier * OUTPUTS * N/A * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * January, 2008 + * January, 2008 * HISTORY * N/A * SOURCE */ int_f -h5arename_by_name_c( hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, +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 ) @@ -270,27 +1306,27 @@ done: /****if* H5Af/h5aopen_c * NAME - * h5aopen_c + * h5aopen_c * PURPOSE - * Call H5Aopen to open an attribute + * Call H5Aopen to open an attribute * INPUTS - * obj_id - Identifer for object to which attribute is attached + * 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 + * attr_namelen - size of attr_name + * aapl_id - Link access property list * OUTPUTS - * attr_id - dataset identifier + * attr_id - dataset identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * January, 2008 + * January, 2008 * HISTORY * * SOURCE */ int_f -h5aopen_c (hid_t_f *obj_id, _fcd attr_name, size_t_f *attr_namelen, hid_t_f *aapl_id, hid_t_f *attr_id) +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 */ @@ -315,30 +1351,30 @@ done: } /****if* H5Af/h5adelete_by_name_c * NAME - * h5adelete_by_name_c + * h5adelete_by_name_c * PURPOSE - * Call h5adelete_by_name to remove an attribute from a specified location + * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * January, 2008 + * January, 2008 * HISTORY * N/A * SOURCE */ int_f -h5adelete_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) +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 */ @@ -368,30 +1404,30 @@ done: } /****if* H5Af/h5adelete_by_idx_c * NAME - * h5adelete_by_idx_c + * h5adelete_by_idx_c * PURPOSE - * Call h5adelete_by_idx + * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * January, 2008 + * January, 2008 * HISTORY * N/A * SOURCE */ int_f -h5adelete_by_idx_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, +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) /******/ { @@ -418,50 +1454,50 @@ done: } /****if* H5Af/h5aget_name_by_idx_c * NAME - * h5aget_name_by_idx_c + * h5aget_name_by_idx_c * PURPOSE - * Call h5aget_name_by_idx + * Call h5aget_name_by_idx * INPUTS * * - * loc_id - Identifer for object to which attribute is attached - * obj_name - Name of object, relative to location, - * from which attribute is to be removed *TEST* check NULL - * idx_type - Type of index; Possible values are: + * loc_id - Identifer for object to which attribute is attached + * obj_name - Name of object, relative to location, + * from which attribute is to be removed *TEST* check NULL + * idx_type - Type of index; Possible values are: * H5_INDEX_UNKNOWN - Unknown index type * H5_INDEX_NAME - Index on names * H5_INDEX_CRT_ORDER - Index on creation order * H5_INDEX_N - Number of indices defined * - * order - Order in which to iterate over index; Possible values are: + * order - Order in which to iterate over index; Possible values are: * H5_ITER_UNKNOWN - Unknown order * H5_ITER_INC - Increasing order * H5_ITER_DEC - Decreasing order * H5_ITER_NATIVE - No particular order, whatever is fastest * H5_ITER_N - Number of iteration orders * - * n - Attribute’s position in index - * attr_id - Attribute identifier - * size - Buffer size ! *TEST* check for 0 value *CHECK* should this return the correct value + * n - Attribute’s position in index + * attr_id - Attribute identifier + * size - Buffer size ! *TEST* check for 0 value *CHECK* should this return the correct value * - * lapl_id - Link access property list - * hdferr - Error code: - * Returns attribute name size, -1 if fail + * lapl_id - Link access property list + * hdferr - Error code: + * Returns attribute name size, -1 if fail * * OUTPUTS - * name - Attribute name + * name - Attribute name * * RETURNS - * Size of buffer on success, -1 on failure + * Size of buffer on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * January, 2008 + * January, 2008 * HISTORY * N/A * SOURCE */ int_f -h5aget_name_by_idx_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, +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) /******/ @@ -509,42 +1545,42 @@ done: /****if* H5Af/h5aopen_by_idx_c * NAME - * h5aopen_by_idx_c + * h5aopen_by_idx_c * PURPOSE - * Call H5Aopen_by_idx + * 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: + * 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: * H5_INDEX_UNKNOWN - Unknown index type * H5_INDEX_NAME - Index on names * H5_INDEX_CRT_ORDER - Index on creation order * H5_INDEX_N - Number of indices defined * - * order - Order in which to iterate over index; Possible values are: + * order - Order in which to iterate over index; Possible values are: * H5_ITER_UNKNOWN - Unknown order * H5_ITER_INC - Increasing order * H5_ITER_DEC - Decreasing order * H5_ITER_NATIVE - No particular order, whatever is fastest * H5_ITER_N - Number of iteration orders * - * n - Attribute’s position in index - * aapl_id - Attribute access property list - * lapl_id - Link access property list + * n - Attribute’s position in index + * aapl_id - Attribute access property list + * lapl_id - Link access property list * OUTPUTS - * attr_id - attribute identifer + * attr_id - attribute identifer * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * January, 2008 + * January, 2008 * HISTORY * N/A * SOURCE */ int_f -h5aopen_by_idx_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, +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 ) /******/ { @@ -572,29 +1608,29 @@ done: /****if* H5Af/h5aget_info_c * NAME - * h5aget_info_c + * h5aget_info_c * PURPOSE - * Call H5Aget_info + * Call H5Aget_info * INPUTS - * loc_id - Object identifier + * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * January, 2008 + * January, 2008 * HISTORY * N/A * SOURCE */ int_f -h5aget_info_c (hid_t_f *loc_id, int_f *corder_valid, int_f *corder, +nh5aget_info_c (hid_t_f *loc_id, int_f *corder_valid, int_f *corder, int_f *cset, hsize_t_f *data_size ) /******/ { @@ -624,46 +1660,46 @@ done: /****if* H5Af/h5aget_info_by_idx_c * NAME - * h5aget_info_by_idx_c + * h5aget_info_by_idx_c * PURPOSE - * Call H5Aget_info_by_idx + * 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: + * 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: * H5_INDEX_UNKNOWN - Unknown index type * H5_INDEX_NAME - Index on names * H5_INDEX_CRT_ORDER - Index on creation order * H5_INDEX_N - Number of indices defined * - * order - Order in which to iterate over index; Possible values are: + * order - Order in which to iterate over index; Possible values are: * H5_ITER_UNKNOWN - Unknown order * H5_ITER_INC - Increasing order * H5_ITER_DEC - Decreasing order * H5_ITER_NATIVE - No particular order, whatever is fastest * H5_ITER_N - Number of iteration orders * - * n - Attribute’s position in index - * lapl_id - Link access property list + * n - Attribute’s position in index + * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * January, 2008 + * January, 2008 * HISTORY * N/A * SOURCE */ int_f -h5aget_info_by_idx_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, +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 ) @@ -703,34 +1739,34 @@ done: /****if* H5Af/h5aget_info_by_name_c * NAME - * h5aget_info_by_name_c + * h5aget_info_by_name_c * PURPOSE - * Call H5Aget_info_by_name + * 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 + * 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 * - * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * January, 2008 + * January, 2008 * HISTORY * N/A * SOURCE */ int_f -h5aget_info_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, +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 ) @@ -774,38 +1810,38 @@ done: /****if* H5Af/h5acreate_by_name_c * NAME - * h5acreate_by_name_c + * h5acreate_by_name_c * PURPOSE - * Call h5acreate_by_name + * Call h5acreate_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 - * type_id - Attribute datatype identifier - * space_id - Attribute dataspace identifier - * 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 + * 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 + * type_id - Attribute datatype identifier + * space_id - Attribute dataspace identifier + * 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 * * OUTPUTS * - * attr - an attribute identifier + * attr - an attribute identifier * * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * February, 2008 + * February, 2008 * HISTORY * N/A * SOURCE */ int_f -h5acreate_by_name_c(hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, +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 ) @@ -840,27 +1876,27 @@ done: /****if* H5Af/h5aexists_c * NAME - * h5aexists_c + * h5aexists_c * PURPOSE * CAll h5aexists * INPUTS * - * obj_id - Object identifier - * attr_name - Attribute name + * obj_id - Object identifier + * attr_name - Attribute name * OUTPUTS * - * attr_exists_c - returns a positive value, for TRUE, or 0 (zero), for FALSE. + * attr_exists_c - returns a positive value, for TRUE, or 0 (zero), for FALSE. * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * February, 2008 + * February, 2008 * HISTORY * * SOURCE */ int_f -h5aexists_c (hid_t_f *obj_id, _fcd name, size_t_f *namelen, hid_t_f *attr_exists) +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 */ @@ -886,29 +1922,29 @@ done: /****if* H5Af/h5aexists_by_name_c * NAME - * h5aexists_by_name_c + * 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) + * 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 + * lapl_id - Link access property list identifier * OUTPUTS * - * attr_exists_c - returns a positive value, for TRUE, or 0 (zero), for FALSE. + * attr_exists_c - returns a positive value, for TRUE, or 0 (zero), for FALSE. * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * February, 2008 + * February, 2008 * HISTORY * * SOURCE */ int_f -h5aexists_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, _fcd attr_name, size_t_f *attr_namelen, +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) /******/ { @@ -940,30 +1976,30 @@ done: /****if* H5Af/h5aopen_by_name_c * NAME - * h5aopen_by_name_c + * h5aopen_by_name_c * PURPOSE - * Call H5Aopen_by_name + * 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) + * 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 + * aapl_id - Attribute access property list (Currently unused; should be passed in as H5P_DEFAULT.) + * lapl_id - Link access property list identifier * OUTPUTS * - * attr_id - attribute identifier + * attr_id - attribute identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * February, 2008 + * February, 2008 * HISTORY * * SOURCE */ int_f -h5aopen_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, _fcd attr_name, size_t_f *attr_namelen, +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) /******/ { @@ -995,29 +2031,29 @@ h5aopen_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, _fcd a /****if* H5Af/h5arename_c * NAME - * h5arename_c + * h5arename_c * PURPOSE - * Calls H5Arename + * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * January, 2008 + * January, 2008 * HISTORY * N/A * SOURCE */ int_f -h5arename_c( hid_t_f *loc_id, +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) /******/ diff --git a/fortran/src/H5Aff.F90 b/fortran/src/H5Aff.f90 index 132bf41..25f7fa7 100644 --- a/fortran/src/H5Aff.F90 +++ b/fortran/src/H5Aff.f90 @@ -26,97 +26,22 @@ ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! ! 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' in the fortran/src directory. ! This is needed for Windows based operating systems. ! !***** -#include <H5config_f.inc> - MODULE H5A - USE, INTRINSIC :: ISO_C_BINDING - USE H5GLOBAL - - INTERFACE h5awrite_f - MODULE PROCEDURE h5awrite_char_scalar - ! This is the preferred way to call h5awrite - ! by passing an address - MODULE PROCEDURE h5awrite_ptr - END INTERFACE - - INTERFACE h5aread_f - MODULE PROCEDURE h5aread_char_scalar - ! 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) BIND(C, NAME='h5awrite_f_c') - IMPORT :: c_ptr - IMPORT :: HID_T - IMPLICIT NONE - 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) BIND(C, NAME='h5aread_f_c') - IMPORT :: c_ptr - IMPORT :: HID_T - IMPLICIT NONE - 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 +! +! 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 @@ -155,7 +80,7 @@ CONTAINS ! ! SOURCE SUBROUTINE h5acreate_f(loc_id, name, type_id, space_id, attr_id, & - hdferr, acpl_id, aapl_id ) + hdferr, acpl_id, aapl_id ) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier CHARACTER(LEN=*), INTENT(IN) :: name ! Attribute name @@ -170,35 +95,38 @@ CONTAINS INTEGER(HID_T) :: acpl_id_default INTEGER(HID_T) :: aapl_id_default - CHARACTER(LEN=LEN_TRIM(name)+1,KIND=C_CHAR) :: c_name + INTEGER(SIZE_T) :: namelen INTERFACE - INTEGER(HID_T) FUNCTION H5Acreate2(loc_id, name, type_id, & - space_id, acpl_id_default, aapl_id_default) BIND(C,NAME='H5Acreate2') - IMPORT :: C_CHAR - IMPORT :: HID_T - INTEGER(HID_T), INTENT(IN), VALUE :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name - INTEGER(HID_T), INTENT(IN), VALUE :: type_id - INTEGER(HID_T), INTENT(IN), VALUE :: space_id - INTEGER(HID_T), INTENT(IN), VALUE :: acpl_id_default - INTEGER(HID_T), INTENT(IN), VALUE :: aapl_id_default - END FUNCTION H5Acreate2 + INTEGER FUNCTION h5acreate_c(loc_id, name, namelen, type_id, & + space_id, acpl_id_default, aapl_id_default, attr_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ACREATE_C'::h5acreate_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: name + INTEGER(HID_T), INTENT(IN) :: loc_id + CHARACTER(LEN=*), INTENT(IN) :: name + INTEGER(SIZE_T) :: namelen + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER(HID_T), INTENT(IN) :: space_id + INTEGER(HID_T) :: acpl_id_default + INTEGER(HID_T) :: aapl_id_default + INTEGER(HID_T), INTENT(OUT) :: attr_id + END FUNCTION h5acreate_c END INTERFACE acpl_id_default = H5P_DEFAULT_F aapl_id_default = H5P_DEFAULT_F + namelen = LEN(name) IF (PRESENT(acpl_id)) acpl_id_default = acpl_id IF (PRESENT(aapl_id)) aapl_id_default = aapl_id - c_name = TRIM(name)//C_NULL_CHAR - attr_id = h5acreate2(loc_id, c_name, type_id, space_id, & - acpl_id_default, aapl_id_default) - - hdferr = 0 - IF(attr_id.LT.0) hdferr = -1 + hdferr = h5acreate_c(loc_id, name, namelen, type_id, space_id, & + acpl_id_default, aapl_id_default, attr_id) END SUBROUTINE h5acreate_f + ! !****s* H5A/h5aopen_name_f ! @@ -226,38 +154,37 @@ CONTAINS ! port). February 27, 2001 ! ! SOURCE - SUBROUTINE H5Aopen_name_f(obj_id, name, attr_id, hdferr) + 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 !***** - CHARACTER(LEN=LEN_TRIM(name)+1,KIND=C_CHAR) :: c_name + INTEGER(SIZE_T) :: namelen -! H5Aopen_name is deprecated INTERFACE - INTEGER(HID_T) FUNCTION H5Aopen(obj_id, name, aapl_id) BIND(C,NAME='H5Aopen') - IMPORT :: C_CHAR - IMPORT :: HID_T - INTEGER(HID_T), INTENT(IN), VALUE :: obj_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name - INTEGER(HID_T), INTENT(IN), VALUE :: aapl_id - END FUNCTION H5Aopen + INTEGER FUNCTION h5aopen_name_c(obj_id, name, namelen, attr_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AOPEN_NAME_C'::h5aopen_name_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: name + INTEGER(HID_T), INTENT(IN) :: obj_id + CHARACTER(LEN=*), INTENT(IN) :: name + INTEGER(SIZE_T) :: namelen + INTEGER(HID_T), INTENT(OUT) :: attr_id + END FUNCTION h5aopen_name_c END INTERFACE - c_name = TRIM(name)//C_NULL_CHAR - attr_id = H5Aopen(obj_id, c_name, H5P_DEFAULT_F) - - hdferr = 0 - IF(attr_id.LT.0) hdferr = -1 - - END SUBROUTINE H5Aopen_name_f + namelen = LEN(name) + hdferr = h5aopen_name_c(obj_id, name, namelen, attr_id) + END SUBROUTINE h5aopen_name_f ! -!****s* H5A/H5Aopen_idx_f +!****s* H5A/h5aopen_idx_f ! ! NAME -! H5Aopen_idx_f +! h5aopen_idx_f ! ! PURPOSE ! Opens the attribute specified by its index. @@ -280,34 +207,33 @@ CONTAINS ! port). February 27, 2001 ! ! SOURCE - SUBROUTINE H5Aopen_idx_f(obj_id, index, attr_id, hdferr) + 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 !***** -! H5Aopen_idx is deprecated in favor of the function H5Aopen_by_idx. + INTERFACE - INTEGER(HID_T) FUNCTION H5Aopen_by_idx(obj_id, index) BIND(C,NAME='H5Aopen_by_idx') - IMPORT :: HID_T - IMPORT :: C_INT + INTEGER FUNCTION h5aopen_idx_c(obj_id, index, attr_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AOPEN_IDX_C'::h5aopen_idx_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: obj_id - INTEGER(C_INT), INTENT(IN) :: index - END FUNCTION H5Aopen_by_idx + INTEGER, INTENT(IN) :: index + INTEGER(HID_T), INTENT(OUT) :: attr_id + END FUNCTION h5aopen_idx_c END INTERFACE - attr_id = H5Aopen_by_idx(obj_id, INT(index, C_INT)) - - hdferr = 0 - IF(attr_id.LT.0) hdferr = -1 - - END SUBROUTINE H5Aopen_idx_f + hdferr = h5aopen_idx_c(obj_id, index, attr_id) + END SUBROUTINE h5aopen_idx_f ! -!****s* H5A/H5Aget_space_f +!****s* H5A/h5aget_space_f ! ! NAME -! H5Aget_space_f +! h5aget_space_f ! ! PURPOSE ! Gets a copy of the dataspace for an attribute. @@ -330,31 +256,30 @@ CONTAINS ! ! ! SOURCE - SUBROUTINE H5Aget_space_f(attr_id, space_id, hdferr) + 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 !***** INTERFACE - INTEGER(HID_T) FUNCTION H5Aget_space(attr_id) BIND(C,NAME='H5Aget_space') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN), VALUE :: attr_id - END FUNCTION H5Aget_space + 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 - space_id = H5Aget_space(attr_id) - - hdferr = 0 - IF(space_id.LT.0) hdferr = -1 - - END SUBROUTINE H5Aget_space_f + hdferr = h5aget_space_c(attr_id, space_id) + END SUBROUTINE h5aget_space_f ! -!****s* H5A/H5Aget_type_f +!****s* H5A/h5aget_type_f ! ! NAME -! H5Aget_type_f +! h5aget_type_f ! ! PURPOSE ! Gets an attribute datatype. @@ -375,31 +300,30 @@ CONTAINS ! port). February 27, 2001 ! ! SOURCE - SUBROUTINE H5Aget_type_f(attr_id, type_id, hdferr) + 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(HID_T) FUNCTION H5Aget_type(attr_id) BIND(C,NAME='H5Aget_type') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN), VALUE :: attr_id - END FUNCTION H5Aget_type + 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 - type_id = H5Aget_type(attr_id) - - hdferr = 0 - IF(type_id.LT.0) hdferr = -1 - - END SUBROUTINE H5Aget_type_f + hdferr = h5aget_type_c(attr_id, type_id) + END SUBROUTINE h5aget_type_f ! -!****s* H5A/H5Aget_name_f +!****s* H5A/h5aget_name_f ! ! NAME -! H5Aget_name_f +! h5aget_name_f ! ! PURPOSE ! Gets an attribute name. @@ -431,23 +355,26 @@ CONTAINS ! name length is successful, -1 if fail !***** INTERFACE - INTEGER FUNCTION h5aget_name_c(attr_id, size, buf) & - BIND(C,NAME='h5aget_name_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T + INTEGER FUNCTION h5aget_name_c(attr_id, size, buf) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AGET_NAME_C'::h5aget_name_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: buf INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(SIZE_T), INTENT(IN) :: size - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: buf + CHARACTER(LEN=*), INTENT(OUT) :: buf END FUNCTION h5aget_name_c END INTERFACE hdferr = h5aget_name_c(attr_id, size, buf) END SUBROUTINE h5aget_name_f + ! -!****s* H5A/H5Aget_name_by_idx_f +!****s* H5A/h5aget_name_by_idx_f ! ! NAME -! H5Aget_name_by_idx_f +! h5aget_name_by_idx_f ! ! PURPOSE ! Gets an attribute name, by attribute index position. @@ -516,16 +443,19 @@ CONTAINS INTERFACE INTEGER FUNCTION h5aget_name_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, & - n, name, size_default, lapl_id_default) BIND(C,NAME='h5aget_name_by_idx_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE + n, name, size_default, lapl_id_default) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AGET_NAME_BY_IDX_C'::h5aget_name_by_idx_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: obj_name, name INTEGER(HID_T), INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: obj_name + CHARACTER(LEN=*), INTENT(IN) :: obj_name INTEGER, INTENT(IN) :: idx_type INTEGER, INTENT(IN) :: order INTEGER(HSIZE_T), INTENT(IN) :: n - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: name + + CHARACTER(LEN=*), INTENT(OUT) :: name INTEGER(SIZE_T) :: size_default INTEGER(HID_T) :: lapl_id_default INTEGER(SIZE_T) :: obj_namelen @@ -546,10 +476,10 @@ CONTAINS END SUBROUTINE h5aget_name_by_idx_f ! -!****s* H5A/H5Aget_num_attrs_f +!****s* H5A/h5aget_num_attrs_f ! ! NAME -! H5Aget_num_attrs_f +! h5aget_num_attrs_f ! ! PURPOSE ! Determines the number of attributes attached to an object. @@ -579,8 +509,11 @@ CONTAINS !***** INTERFACE - INTEGER FUNCTION h5aget_num_attrs_c(obj_id, attr_num) BIND(C,name='h5aget_num_attrs_c') - IMPORT :: HID_T + INTEGER FUNCTION h5aget_num_attrs_c(obj_id, attr_num) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AGET_NUM_ATTRS_C'::h5aget_num_attrs_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: obj_id INTEGER, INTENT(OUT) :: attr_num END FUNCTION h5aget_num_attrs_c @@ -590,10 +523,10 @@ CONTAINS END SUBROUTINE h5aget_num_attrs_f ! -!****s* H5A/H5Adelete_f +!****s* H5A/h5adelete_f ! ! NAME -! H5Adelete_f +! h5adelete_f ! ! PURPOSE ! Deletes an attribute of an object (group, dataset or @@ -615,7 +548,7 @@ CONTAINS ! port). February 27, 2001 ! ! SOURCE - SUBROUTINE H5Adelete_f(obj_id, name, hdferr) + 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 @@ -624,24 +557,27 @@ CONTAINS INTEGER(SIZE_T) :: namelen INTERFACE - INTEGER FUNCTION H5Adelete_c(obj_id, name, namelen) BIND(C,NAME='h5adelete_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T + INTEGER FUNCTION h5adelete_c(obj_id, name, namelen) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ADELETE_C'::h5adelete_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: name INTEGER(HID_T), INTENT(IN) :: obj_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + CHARACTER(LEN=*), INTENT(IN) :: name INTEGER(SIZE_T) :: namelen - END FUNCTION H5Adelete_c + END FUNCTION h5adelete_c END INTERFACE namelen = LEN(name) - hdferr = H5Adelete_c(obj_id, name, namelen) - END SUBROUTINE H5Adelete_f + hdferr = h5adelete_c(obj_id, name, namelen) + END SUBROUTINE h5adelete_f ! -!****s* H5A/H5Aclose_f +!****s* H5A/h5aclose_f ! ! NAME -! H5Aclose_f +! h5aclose_f ! ! PURPOSE ! Closes the specified attribute. @@ -661,28 +597,30 @@ CONTAINS ! called C functions (it is needed for Windows ! port). February 27, 2001 ! SOURCE - - SUBROUTINE H5Aclose_f(attr_id, hdferr) + SUBROUTINE h5aclose_f(attr_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier INTEGER, INTENT(OUT) :: hdferr ! Error code !***** INTERFACE - INTEGER FUNCTION H5Aclose(attr_id) BIND(C, NAME='H5Aclose') - IMPORT :: HID_T - INTEGER(HID_T), INTENT(IN), VALUE :: attr_id - END FUNCTION H5Aclose + INTEGER FUNCTION h5aclose_c(attr_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ACLOSE_C'::h5aclose_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: attr_id + END FUNCTION h5aclose_c END INTERFACE - hdferr = INT(H5Aclose(attr_id)) - END SUBROUTINE H5Aclose_f + hdferr = h5aclose_c(attr_id) + END SUBROUTINE h5aclose_f ! -!****s* H5A/H5Aget_storage_size_f +!****s* H5A/h5aget_storage_size_f ! ! NAME -! H5Aget_storage_size_f +! h5aget_storage_size_f ! ! PURPOSE ! Returns the amount of storage required for an attribute. @@ -697,7 +635,7 @@ CONTAINS ! January, 2008 ! ! SOURCE - SUBROUTINE H5Aget_storage_size_f(attr_id, size, hdferr) + 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 @@ -705,24 +643,24 @@ CONTAINS !***** INTERFACE - INTEGER(HSIZE_T) FUNCTION H5Aget_storage_size(attr_id) BIND(C,NAME='H5Aget_storage_size') - IMPORT :: HID_T, HSIZE_T - INTEGER(HID_T), INTENT(IN), VALUE :: attr_id - END FUNCTION H5Aget_storage_size + INTEGER FUNCTION h5aget_storage_size_c(attr_id, size) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AGET_STORAGE_SIZE_C'::h5aget_storage_size_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: attr_id + INTEGER(HSIZE_T), INTENT(OUT) :: size + END FUNCTION h5aget_storage_size_c END INTERFACE - size = H5Aget_storage_size(attr_id) - - hdferr = 0 - IF(size.LT.0) hdferr = -1 - - END SUBROUTINE H5Aget_storage_size_f + hdferr = h5aget_storage_size_c(attr_id, size) + END SUBROUTINE h5aget_storage_size_f ! -!****s* H5A/H5Aget_create_plist_f +!****s* H5A/h5aget_create_plist_f ! ! NAME -! H5Aget_create_plist_f +! h5aget_create_plist_f ! ! PURPOSE ! Gets an attribute creation property list identifier @@ -738,32 +676,33 @@ CONTAINS ! January, 2008 ! ! SOURCE - SUBROUTINE H5Aget_create_plist_f(attr_id, creation_prop_id, hdferr) + 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 ! 0 on success and -1 on failure !***** + INTERFACE - INTEGER(HID_T) FUNCTION H5Aget_create_plist(attr_id) BIND(C,NAME='H5Aget_create_plist') - IMPORT :: HID_T - INTEGER(HID_T), INTENT(IN), VALUE :: attr_id - END FUNCTION H5Aget_create_plist + INTEGER FUNCTION h5aget_create_plist_c(attr_id, creation_prop_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AGET_CREATE_PLIST_C'::h5aget_create_plist_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: attr_id + INTEGER(HID_T), INTENT(OUT) :: creation_prop_id + END FUNCTION h5aget_create_plist_c END INTERFACE - creation_prop_id = H5Aget_create_plist(attr_id) - - hdferr = 0 - IF(creation_prop_id.LT.0) hdferr = -1 - - END SUBROUTINE H5Aget_create_plist_f + hdferr = h5aget_create_plist_c(attr_id, creation_prop_id) + END SUBROUTINE h5aget_create_plist_f ! -!****s* H5A/H5Arename_by_name_f +!****s* H5A/h5arename_by_name_f ! ! NAME -! H5Arename_by_name_f +! h5arename_by_name_f ! ! PURPOSE ! Renames an attribute @@ -784,7 +723,7 @@ CONTAINS ! January, 2008 ! ! SOURCE - SUBROUTINE H5Arename_by_name_f(loc_id, obj_name, old_attr_name, new_attr_name, & + SUBROUTINE h5arename_by_name_f(loc_id, obj_name, old_attr_name, new_attr_name, & hdferr, lapl_id) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier @@ -803,22 +742,24 @@ CONTAINS INTEGER(SIZE_T) :: new_attr_namelen INTERFACE - INTEGER FUNCTION H5Arename_by_name_c(loc_id, obj_name, obj_namelen, & + INTEGER FUNCTION h5arename_by_name_c(loc_id, obj_name, obj_namelen, & old_attr_name, old_attr_namelen, new_attr_name, new_attr_namelen, & - lapl_id_default) BIND(C,NAME='h5arename_by_name_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + lapl_id_default) + USE H5GLOBAL + !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 INTEGER(HID_T), INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: obj_name + CHARACTER(LEN=*), INTENT(IN) :: obj_name INTEGER(SIZE_T) :: obj_namelen - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: old_attr_name + CHARACTER(LEN=*), INTENT(IN) :: old_attr_name INTEGER(SIZE_T) :: old_attr_namelen - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: new_attr_name + CHARACTER(LEN=*), INTENT(IN) :: new_attr_name INTEGER(SIZE_T) :: new_attr_namelen INTEGER(HID_T) :: lapl_id_default - END FUNCTION H5Arename_by_name_c + END FUNCTION h5arename_by_name_c END INTERFACE obj_namelen = LEN(obj_name) @@ -828,17 +769,17 @@ CONTAINS lapl_id_default = H5P_DEFAULT_F IF(PRESENT(lapl_id)) lapl_id_default=lapl_id - hdferr = H5Arename_by_name_c(loc_id, obj_name, obj_namelen, & + hdferr = h5arename_by_name_c(loc_id, obj_name, obj_namelen, & old_attr_name, old_attr_namelen, new_attr_name, new_attr_namelen, & lapl_id_default) - END SUBROUTINE H5Arename_by_name_f + END SUBROUTINE h5arename_by_name_f ! -!****s* H5A/H5Aopen_f +!****s* H5A/h5aopen_f ! ! NAME -! H5Aopen_f +! h5aopen_f ! ! PURPOSE ! Opens an attribute for an object specified by object @@ -859,7 +800,7 @@ CONTAINS ! January, 2008 ! ! SOURCE - SUBROUTINE H5Aopen_f(obj_id, attr_name, attr_id, hdferr, aapl_id) + SUBROUTINE h5aopen_f(obj_id, attr_name, attr_id, hdferr, aapl_id) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier CHARACTER(LEN=*), INTENT(IN) :: attr_name ! Attribute name @@ -874,16 +815,18 @@ CONTAINS INTEGER(SIZE_T) :: attr_namelen INTERFACE - INTEGER FUNCTION H5Aopen_c(obj_id, attr_name, attr_namelen, aapl_id_default, attr_id) & - BIND(C,NAME='h5aopen_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T + INTEGER FUNCTION h5aopen_c(obj_id, attr_name, attr_namelen, aapl_id_default, attr_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AOPEN_C'::h5aopen_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: attr_name INTEGER(HID_T), INTENT(IN) :: obj_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: attr_name + CHARACTER(LEN=*), INTENT(IN) :: attr_name INTEGER(HID_T) :: aapl_id_default INTEGER(SIZE_T) :: attr_namelen INTEGER(HID_T), INTENT(OUT) :: attr_id - END FUNCTION H5Aopen_c + END FUNCTION h5aopen_c END INTERFACE attr_namelen = LEN(attr_name) @@ -891,15 +834,15 @@ CONTAINS aapl_id_default = H5P_DEFAULT_F IF(PRESENT(aapl_id)) aapl_id_default = aapl_id - hdferr = H5Aopen_c(obj_id, attr_name, attr_namelen, aapl_id_default, attr_id) + hdferr = h5aopen_c(obj_id, attr_name, attr_namelen, aapl_id_default, attr_id) - END SUBROUTINE H5Aopen_f + END SUBROUTINE h5aopen_f ! -!****s* H5A/H5Adelete_by_idx_f +!****s* H5A/h5adelete_by_idx_f ! ! NAME -! H5Adelete_by_idx_f +! h5adelete_by_idx_f ! ! PURPOSE ! Deletes an attribute from an object according to index order @@ -931,7 +874,7 @@ CONTAINS ! January, 2008 ! ! SOURCE - SUBROUTINE H5Adelete_by_idx_f(loc_id, obj_name, idx_type, order, n, hdferr, lapl_id) + 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 CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object, relative to location, @@ -957,34 +900,35 @@ CONTAINS INTEGER(HID_T) :: lapl_id_default INTERFACE - INTEGER FUNCTION H5Adelete_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, n, lapl_id_default) & - BIND(C,NAME='h5adelete_by_idx_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE + INTEGER FUNCTION h5adelete_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, n, lapl_id_default) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ADELETE_BY_IDX_C'::h5adelete_by_idx_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: obj_name INTEGER(HID_T), INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: obj_name + CHARACTER(LEN=*), INTENT(IN) :: obj_name INTEGER, INTENT(IN) :: idx_type INTEGER, INTENT(IN) :: order INTEGER(HSIZE_T), INTENT(IN) :: n INTEGER(HID_T) :: lapl_id_default INTEGER(SIZE_T) :: obj_namelen - END FUNCTION H5Adelete_by_idx_c + END FUNCTION h5adelete_by_idx_c END INTERFACE lapl_id_default = H5P_DEFAULT_F IF(PRESENT(lapl_id)) lapl_id_default = lapl_id obj_namelen = LEN(obj_name) - hdferr = H5Adelete_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, n, lapl_id_default) + hdferr = h5adelete_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, n, lapl_id_default) - END SUBROUTINE H5Adelete_by_idx_f + END SUBROUTINE h5adelete_by_idx_f ! -!****s* H5A/H5Adelete_by_name_f +!****s* H5A/h5adelete_by_name_f ! ! NAME -! H5Adelete_by_name_f +! h5adelete_by_name_f ! ! PURPOSE ! Removes an attribute from a specified location @@ -1002,7 +946,7 @@ CONTAINS ! January, 2008 ! ! SOURCE - SUBROUTINE H5Adelete_by_name_f(loc_id, obj_name, attr_name, hdferr, lapl_id) + 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, @@ -1018,17 +962,19 @@ CONTAINS INTEGER(HID_T) :: lapl_id_default INTERFACE - INTEGER FUNCTION H5Adelete_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, lapl_id_default) & - BIND(C,NAME='h5adelete_by_name_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T + INTEGER FUNCTION h5adelete_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, lapl_id_default) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ADELETE_BY_NAME_C'::h5adelete_by_name_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: obj_name, attr_name INTEGER(HID_T), INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: obj_name - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: attr_name + CHARACTER(LEN=*), INTENT(IN) :: obj_name + CHARACTER(LEN=*), INTENT(IN) :: attr_name INTEGER(HID_T) :: lapl_id_default INTEGER(SIZE_T) :: attr_namelen INTEGER(SIZE_T) :: obj_namelen - END FUNCTION H5Adelete_by_name_c + END FUNCTION h5adelete_by_name_c END INTERFACE obj_namelen = LEN(obj_name) @@ -1037,15 +983,15 @@ CONTAINS lapl_id_default = H5P_DEFAULT_F IF(PRESENT(lapl_id)) lapl_id_default = lapl_id - hdferr = H5Adelete_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, lapl_id_default) + hdferr = h5adelete_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, lapl_id_default) - END SUBROUTINE H5Adelete_by_name_f + END SUBROUTINE h5adelete_by_name_f ! -!****s* H5A/H5Aopen_by_idx_f +!****s* H5A/h5aopen_by_idx_f ! ! NAME -! H5Aopen_by_idx_f +! h5aopen_by_idx_f ! ! PURPOSE ! Opens an existing attribute that is attached to an object specified by location and name @@ -1067,7 +1013,7 @@ CONTAINS ! January, 2008 ! ! SOURCE - SUBROUTINE H5Aopen_by_idx_f(loc_id, obj_name, idx_type, order, n, attr_id, hdferr, aapl_id, lapl_id) + 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 CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object to which attribute is attached @@ -1095,12 +1041,15 @@ CONTAINS INTEGER(HID_T) :: lapl_id_default 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) BIND(C,NAME='h5aopen_by_idx_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T + INTEGER FUNCTION h5aopen_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, n, & + aapl_id_default, lapl_id_default, attr_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AOPEN_BY_IDX_C'::h5aopen_by_idx_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: obj_name INTEGER(HID_T), INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: obj_name + CHARACTER(LEN=*), INTENT(IN) :: obj_name INTEGER, INTENT(IN) :: idx_type INTEGER, INTENT(IN) :: order INTEGER(HSIZE_T), INTENT(IN) :: n @@ -1108,7 +1057,7 @@ CONTAINS INTEGER(HID_T) :: lapl_id_default INTEGER(SIZE_T) :: obj_namelen INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier - END FUNCTION H5Aopen_by_idx_c + END FUNCTION h5aopen_by_idx_c END INTERFACE obj_namelen = LEN(obj_name) @@ -1118,16 +1067,16 @@ CONTAINS lapl_id_default = H5P_DEFAULT_F IF(PRESENT(lapl_id)) lapl_id_default = lapl_id - hdferr = H5Aopen_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, n, & + hdferr = h5aopen_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, n, & aapl_id_default, lapl_id_default, attr_id) - END SUBROUTINE H5Aopen_by_idx_f + END SUBROUTINE h5aopen_by_idx_f ! -!****s* H5A/H5Aget_info_f +!****s* H5A/h5aget_info_f ! ! NAME -! H5Aget_info_f +! h5aget_info_f ! ! PURPOSE ! Retrieves attribute information, by attribute identifier @@ -1147,7 +1096,7 @@ CONTAINS ! M. Scot Breitenfeld ! January, 2008 ! SOURCE - SUBROUTINE H5Aget_info_f(attr_id, f_corder_valid, corder, cset, data_size, hdferr) + 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 @@ -1161,31 +1110,33 @@ CONTAINS INTEGER :: corder_valid INTERFACE - INTEGER FUNCTION H5Aget_info_c(attr_id, corder_valid, corder, cset, data_size) BIND(C,NAME='h5aget_info_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE + INTEGER FUNCTION h5aget_info_c(attr_id, corder_valid, corder, cset, data_size) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AGET_INFO_C'::h5aget_info_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER, INTENT(OUT) :: corder_valid INTEGER, INTENT(OUT) :: corder INTEGER, INTENT(OUT) :: cset INTEGER(HSIZE_T), INTENT(OUT) :: data_size - END FUNCTION H5Aget_info_c + END FUNCTION h5aget_info_c END INTERFACE - hdferr = H5Aget_info_c(attr_id, corder_valid, corder, cset, data_size) + hdferr = h5aget_info_c(attr_id, corder_valid, corder, cset, data_size) f_corder_valid =.FALSE. IF (corder_valid .EQ. 1) f_corder_valid =.TRUE. - END SUBROUTINE H5Aget_info_f + END SUBROUTINE h5aget_info_f ! -!****s* H5A/H5Aget_info_by_idx_f +!****s* H5A/h5aget_info_by_idx_f ! ! NAME -! H5Aget_info_by_idx_f +! h5aget_info_by_idx_f ! ! PURPOSE ! Retrieves attribute information, by attribute index position @@ -1211,7 +1162,7 @@ CONTAINS ! January, 2008 ! ! SOURCE - SUBROUTINE H5Aget_info_by_idx_f(loc_id, obj_name, idx_type, order, n, & + 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 @@ -1244,11 +1195,14 @@ CONTAINS 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) BIND(C,NAME='h5aget_info_by_idx_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T + corder_valid, corder, cset, data_size) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AGET_INFO_BY_IDX_C'::h5aget_info_by_idx_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: obj_name INTEGER(HID_T), INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: obj_name + CHARACTER(LEN=*), INTENT(IN) :: obj_name INTEGER, INTENT(IN) :: idx_type INTEGER, INTENT(IN) :: order INTEGER(HSIZE_T), INTENT(IN) :: n @@ -1259,7 +1213,7 @@ CONTAINS INTEGER(HSIZE_T), INTENT(OUT) :: data_size INTEGER(SIZE_T) :: obj_namelen - END FUNCTION H5Aget_info_by_idx_c + END FUNCTION h5aget_info_by_idx_c END INTERFACE obj_namelen = LEN(obj_name) @@ -1267,19 +1221,19 @@ CONTAINS lapl_id_default = H5P_DEFAULT_F IF(present(lapl_id)) lapl_id_default = lapl_id - hdferr = H5Aget_info_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, n, lapl_id_default, & + hdferr = h5aget_info_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, n, lapl_id_default, & corder_valid, corder, cset, data_size) f_corder_valid =.FALSE. IF (corder_valid .EQ. 1) f_corder_valid =.TRUE. - END SUBROUTINE H5Aget_info_by_idx_f + END SUBROUTINE h5aget_info_by_idx_f ! -!****s* H5A/H5Aget_info_by_name_f +!****s* H5A/h5aget_info_by_name_f ! ! NAME -! H5Aget_info_by_name_f +! h5aget_info_by_name_f ! ! PURPOSE ! Retrieves attribute information, by attribute name @@ -1303,7 +1257,7 @@ CONTAINS ! January, 2008 ! ! SOURCE - SUBROUTINE H5Aget_info_by_name_f(loc_id, obj_name, attr_name, & + SUBROUTINE h5aget_info_by_name_f(loc_id, obj_name, attr_name, & f_corder_valid, corder, cset, data_size, hdferr, lapl_id) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier @@ -1325,15 +1279,17 @@ CONTAINS INTEGER(HID_T) :: lapl_id_default 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) BIND(C,NAME='h5aget_info_by_name_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE + 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) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AGET_INFO_BY_NAME_C'::h5aget_info_by_name_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: obj_name, attr_name INTEGER(HID_T), INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: obj_name + CHARACTER(LEN=*), INTENT(IN) :: obj_name INTEGER(SIZE_T), INTENT(IN) :: obj_namelen - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: attr_name + CHARACTER(LEN=*), INTENT(IN) :: attr_name INTEGER(SIZE_T), INTENT(IN) :: attr_namelen INTEGER(HID_T) :: lapl_id_default INTEGER, INTENT(OUT) :: corder_valid @@ -1341,7 +1297,7 @@ CONTAINS INTEGER, INTENT(OUT) :: cset INTEGER(HSIZE_T), INTENT(OUT) :: data_size - END FUNCTION H5Aget_info_by_name_c + END FUNCTION h5aget_info_by_name_c END INTERFACE obj_namelen = LEN(obj_name) @@ -1350,19 +1306,19 @@ CONTAINS lapl_id_default = H5P_DEFAULT_F IF(PRESENT(lapl_id)) lapl_id_default = lapl_id - hdferr = H5Aget_info_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, lapl_id_default, & + hdferr = h5aget_info_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, lapl_id_default, & corder_valid, corder, cset, data_size) f_corder_valid =.FALSE. IF (corder_valid .EQ. 1) f_corder_valid =.TRUE. - END SUBROUTINE H5Aget_info_by_name_f + END SUBROUTINE h5aget_info_by_name_f ! -!****s* H5A/H5Acreate_by_name_f +!****s* H5A/h5acreate_by_name_f ! ! NAME -! H5Acreate_by_name_f +! h5acreate_by_name_f ! ! PURPOSE ! Creates an attribute attached to a specified object @@ -1386,7 +1342,7 @@ CONTAINS ! M. Scot Breitenfeld ! February, 2008 ! SOURCE - SUBROUTINE H5Acreate_by_name_f(loc_id, obj_name, attr_name, type_id, space_id, attr, hdferr, & + 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 @@ -1409,16 +1365,17 @@ CONTAINS INTEGER(HID_T) :: lapl_id_default 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) & - BIND(C,NAME='h5acreate_by_name_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + 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) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ACREATE_BY_NAME_C'::h5acreate_by_name_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: obj_name, attr_name INTEGER(HID_T), INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: obj_name + CHARACTER(LEN=*), INTENT(IN) :: obj_name INTEGER(SIZE_T), INTENT(IN) :: obj_namelen - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: attr_name + CHARACTER(LEN=*), INTENT(IN) :: attr_name INTEGER(SIZE_T), INTENT(IN) :: attr_namelen INTEGER(HID_T), INTENT(IN) :: type_id INTEGER(HID_T), INTENT(IN) :: space_id @@ -1427,7 +1384,7 @@ CONTAINS INTEGER(HID_T) :: lapl_id_default INTEGER(HID_T), INTENT(OUT) :: attr - END FUNCTION H5Acreate_by_name_c + END FUNCTION h5acreate_by_name_c END INTERFACE obj_namelen = LEN(obj_name) @@ -1441,9 +1398,9 @@ CONTAINS IF(PRESENT(aapl_id)) aapl_id_default = aapl_id IF(PRESENT(lapl_id)) lapl_id_default = lapl_id - hdferr = H5Acreate_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, & + hdferr = 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) - END SUBROUTINE H5Acreate_by_name_f + END SUBROUTINE h5acreate_by_name_f ! !****s* H5A/H5Aexists_f @@ -1467,7 +1424,7 @@ CONTAINS ! February, 2008 ! ! SOURCE - SUBROUTINE H5Aexists_f(obj_id, attr_name, attr_exists, hdferr) + SUBROUTINE h5aexists_f(obj_id, attr_name, attr_exists, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier CHARACTER(LEN=*), INTENT(IN) :: attr_name ! Attribute name @@ -1479,25 +1436,27 @@ CONTAINS INTEGER(SIZE_T) :: attr_namelen INTERFACE - INTEGER FUNCTION H5Aexists_c(obj_id, attr_name, attr_namelen, attr_exists_c) BIND(C,NAME='h5aexists_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + INTEGER FUNCTION h5aexists_c(obj_id, attr_name, attr_namelen, attr_exists_c) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AEXISTS_C'::h5aexists_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: attr_name INTEGER(HID_T), INTENT(IN) :: obj_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: attr_name + CHARACTER(LEN=*), INTENT(IN) :: attr_name INTEGER(SIZE_T) :: attr_namelen INTEGER(HID_T) :: attr_exists_c - END FUNCTION H5Aexists_c + END FUNCTION h5aexists_c END INTERFACE attr_namelen = LEN(attr_name) - hdferr = H5Aexists_c(obj_id, attr_name, attr_namelen, attr_exists_c) + hdferr = h5aexists_c(obj_id, attr_name, attr_namelen, attr_exists_c) attr_exists = .FALSE. IF(attr_exists_c.GT.0) attr_exists = .TRUE. - END SUBROUTINE H5Aexists_f + END SUBROUTINE h5aexists_f ! !****s* H5A/H5Aexists_by_name_f @@ -1524,7 +1483,7 @@ CONTAINS ! February, 2008 ! ! SOURCE - SUBROUTINE H5Aexists_by_name_f(loc_id, obj_name, attr_name, attr_exists, hdferr, lapl_id) + 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 CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Object name either relative to loc_id, @@ -1542,19 +1501,20 @@ CONTAINS INTEGER(HID_T) :: lapl_id_default INTERFACE - INTEGER FUNCTION H5Aexists_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, & - lapl_id_default, attr_exists_c) BIND(C,NAME='h5aexists_by_name_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + 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 INTEGER(HID_T), INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: obj_name + CHARACTER(LEN=*), INTENT(IN) :: obj_name INTEGER(SIZE_T), INTENT(IN) :: obj_namelen - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: attr_name + CHARACTER(LEN=*), INTENT(IN) :: attr_name INTEGER(SIZE_T), INTENT(IN) :: attr_namelen INTEGER(HID_T), INTENT(IN) :: lapl_id_default INTEGER, INTENT(OUT) :: attr_exists_c - END FUNCTION H5Aexists_by_name_c + END FUNCTION h5aexists_by_name_c END INTERFACE attr_namelen = LEN(attr_name) @@ -1563,12 +1523,12 @@ CONTAINS lapl_id_default = H5P_DEFAULT_F IF(PRESENT(lapl_id)) lapl_id_default = lapl_id - hdferr = H5Aexists_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, lapl_id_default, attr_exists_c) + hdferr = h5aexists_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, lapl_id_default, attr_exists_c) attr_exists = .FALSE. IF(attr_exists_c.GT.0) attr_exists = .TRUE. - END SUBROUTINE H5Aexists_by_name_f + END SUBROUTINE h5aexists_by_name_f ! !****s* H5A/H5Aopen_by_name_f ! @@ -1594,7 +1554,7 @@ CONTAINS ! M. Scot Breitenfeld ! February, 2008 ! SOURCE - SUBROUTINE H5Aopen_by_name_f(loc_id, obj_name, attr_name, attr_id, hdferr, aapl_id, lapl_id) + 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 CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Object name either relative to loc_id, @@ -1614,20 +1574,22 @@ CONTAINS INTEGER(SIZE_T) :: attr_namelen 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) BIND(C,NAME='h5aopen_by_name_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + INTEGER FUNCTION h5aopen_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, & + aapl_id_default, lapl_id_default, attr_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AOPEN_BY_NAME_C'::h5aopen_by_name_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: obj_name, attr_name INTEGER(HID_T), INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: obj_name + CHARACTER(LEN=*), INTENT(IN) :: obj_name INTEGER(SIZE_T), INTENT(IN) :: obj_namelen - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: attr_name + CHARACTER(LEN=*), INTENT(IN) :: attr_name INTEGER(SIZE_T), INTENT(IN) :: attr_namelen INTEGER(HID_T) :: aapl_id_default INTEGER(HID_T) :: lapl_id_default INTEGER(HID_T), INTENT(OUT) :: attr_id - END FUNCTION H5Aopen_by_name_c + END FUNCTION h5aopen_by_name_c END INTERFACE attr_namelen = LEN(attr_name) @@ -1638,16 +1600,16 @@ CONTAINS IF(PRESENT(aapl_id)) aapl_id_default = aapl_id IF(PRESENT(lapl_id)) lapl_id_default = lapl_id - hdferr = H5Aopen_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, & + hdferr = h5aopen_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, & aapl_id_default, lapl_id_default, attr_id) - END SUBROUTINE H5Aopen_by_name_f + END SUBROUTINE h5aopen_by_name_f ! -!****s* H5A/H5Arename_f +!****s* H5A/h5arename_f ! ! NAME -! H5Arename_f +! h5arename_f ! ! PURPOSE ! Renames an attribute @@ -1670,7 +1632,7 @@ CONTAINS ! ! SOURCE - SUBROUTINE H5Arename_f(loc_id, old_attr_name, new_attr_name, hdferr) + SUBROUTINE h5arename_f(loc_id, old_attr_name, new_attr_name, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier CHARACTER(LEN=*), INTENT(IN) :: old_attr_name ! Prior attribute name @@ -1682,191 +1644,29 @@ CONTAINS INTEGER(SIZE_T) :: new_attr_namelen INTERFACE - INTEGER FUNCTION H5Arename_c(loc_id, & - old_attr_name, old_attr_namelen, new_attr_name, new_attr_namelen) BIND(C,NAME='h5arename_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + INTEGER FUNCTION h5arename_c(loc_id, & + old_attr_name, old_attr_namelen, new_attr_name, new_attr_namelen) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ARENAME_C'::h5arename_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: old_attr_name, new_attr_name INTEGER(HID_T), INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: old_attr_name + CHARACTER(LEN=*), INTENT(IN) :: old_attr_name INTEGER(SIZE_T) :: old_attr_namelen - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: new_attr_name + CHARACTER(LEN=*), INTENT(IN) :: new_attr_name INTEGER(SIZE_T) :: new_attr_namelen - END FUNCTION H5Arename_c + + END FUNCTION h5arename_c END INTERFACE old_attr_namelen = LEN(old_attr_name) new_attr_namelen = LEN(new_attr_name) - hdferr = H5Arename_c(loc_id, & + hdferr = h5arename_c(loc_id, & old_attr_name, old_attr_namelen, new_attr_name, new_attr_namelen) - END SUBROUTINE H5Arename_f - - 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 - - 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) - 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 - - -!****s* H5A (F03)/H5Awrite_f_F03 -! -! NAME -! H5Awrite_f_F03 -! -! PURPOSE -! Writes an attribute. -! -! Inputs: -! attr_id - Attribute identifier -! memtype_id - Attribute datatype identifier (in memory) -! buf - Data buffer; may be a scalar or an array -! -! Outputs: -! 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 -! -! NOTES -! This function is overloaded to write INTEGER, -! REAL, REAL(KIND=C_DOUBLE) and CHARACTER buffers -! up to 7 dimensions. -! -! Fortran2003 Interface: -!! SUBROUTINE H5Awrite_f(attr_id, memtype_id, buf, hdferr) -!! INTEGER(HID_T) , INTENT(IN) :: attr_id -!! INTEGER(HID_T) , INTENT(IN) :: memtype_id -!! TYPE(C_PTR) , INTENT(IN) :: buf -!! INTEGER , INTENT(OUT) :: hdferr -!***** - - SUBROUTINE H5Awrite_ptr(attr_id, mem_type_id, buf, hdferr) - 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_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 - - CALL H5Aread_char_scalar_fix(attr_id, memtype_id, buf, LEN(buf), hdferr) - - END SUBROUTINE H5Aread_char_scalar - - SUBROUTINE H5Aread_char_scalar_fix(attr_id, memtype_id, buf, buf_len, 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, 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 - -!****s* H5A (F03)/H5Aread_f_F03 -! -! NAME -! H5Aread_f_F03 -! -! PURPOSE -! Reads an attribute. -! -! Inputs: -! attr_id - Attribute identifier -! memtype_id - Attribute datatype identifier (in memory) -! -! Outputs: -! buf - Data buffer; may be a scalar or an array -! 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, REAL(KIND=C_DOUBLE) and CHARACTER buffers -! up to 7 dimensions. -! Fortran2003 Interface: -!! SUBROUTINE H5Aread_f(attr_id, memtype_id, buf, hdferr) -!! INTEGER(HID_T) , INTENT(IN) :: attr_id -!! INTEGER(HID_T) , INTENT(IN) :: memtype_id -!! TYPE(C_PTR) , INTENT(INOUT) :: buf -!! INTEGER , INTENT(OUT) :: hdferr -!***** - - SUBROUTINE H5Aread_ptr(attr_id, mem_type_id, buf, hdferr) - 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(INOUT), TARGET :: buf - INTEGER, INTENT(OUT) :: hdferr ! Error code - - hdferr = H5Aread_f_c(attr_id, mem_type_id, buf) - - END SUBROUTINE H5Aread_ptr + END SUBROUTINE h5arename_f END MODULE H5A diff --git a/fortran/src/H5Aff_F03.f90 b/fortran/src/H5Aff_F03.f90 new file mode 100644 index 0000000..5278280 --- /dev/null +++ b/fortran/src/H5Aff_F03.f90 @@ -0,0 +1,1267 @@ +!****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' 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) BIND(C, NAME='h5awrite_f_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr + USE H5GLOBAL + 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) BIND(C, NAME='h5aread_f_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr + USE H5GLOBAL + 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 + +!****s* H5A (F03)/h5awrite_f_F90 +! +! NAME +! h5awrite_f_F90 +! +! PURPOSE +! Writes an attribute. +! +! Inputs: +! attr_id - Attribute identifier +! memtype_id - Attribute datatype identifier (in memory) +! dims - Array to hold corresponding dimension sizes of data buffer buf; +! dim(k) has value of the k-th dimension of buffer buf; +! values are ignored if buf is a scalar +! buf - Data buffer; may be a scalar or an array +! +! Outputs: +! 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. +! +! Fortran90 Interface: +!! SUBROUTINE h5awrite_f(attr_id, memtype_id, buf, dims, hdferr) +!! INTEGER(HID_T) , INTENT(IN) :: attr_id +!! INTEGER(HID_T) , INTENT(IN) :: memtype_id +!! TYPE , INTENT(IN) :: buf +!! INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims +!! INTEGER , INTENT(OUT) :: hdferr +!***** + + + 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(1)) + + 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(1,1)) + + 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(1,1,1)) + + 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(1,1,1,1)) + + 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(1,1,1,1,1)) + + 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(1,1,1,1,1,1)) + + 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(1,1,1,1,1,1,1)) + + 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(1)) + + 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(1,1)) + + 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(1,1,1)) + + 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(1,1,1,1)) + + 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(1,1,1,1,1,1)) + + 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(1,1,1,1,1,1,1)) + + hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr) + END SUBROUTINE h5awrite_real_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)/h5awrite_f_F03 +! +! NAME +! h5awrite_f_F03 +! +! PURPOSE +! Writes an attribute. +! +! Inputs: +! attr_id - Attribute identifier +! memtype_id - Attribute datatype identifier (in memory) +! buf - Data buffer; may be a scalar or an array +! +! Outputs: +! 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 +! +! NOTES +! This function is overloaded to write INTEGER, +! REAL, DOUBLE PRECISION and CHARACTER buffers +! up to 7 dimensions. +! +! Fortran2003 Interface: +!! SUBROUTINE h5awrite_f(attr_id, memtype_id, buf, hdferr) +!! INTEGER(HID_T) , INTENT(IN) :: attr_id +!! INTEGER(HID_T) , INTENT(IN) :: memtype_id +!! TYPE(C_PTR) , INTENT(IN) :: buf +!! INTEGER , INTENT(OUT) :: hdferr +!***** + + 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 + +!****s* H5A (F03)/h5aread_f_F90 +! +! NAME +! h5aread_f_F90 +! +! PURPOSE +! Reads an attribute. +! +! Inputs: +! attr_id - Attribute identifier +! memtype_id - Attribute datatype identifier (in memory) +! dims - Array to hold corresponding dimension sizes of data buffer buf; +! dim(k) has value of the k-th dimension of buffer buf; +! values are ignored if buf is a scalar +! +! Outputs: +! buf - Data buffer; may be a scalar or an array +! 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. +! Fortran90 Interface: +!! SUBROUTINE h5aread_f(attr_id, memtype_id, buf, dims, hdferr) +!! INTEGER(HID_T) , INTENT(IN) :: attr_id +!! INTEGER(HID_T) , INTENT(IN) :: memtype_id +!! TYPE , INTENT(INOUT) :: buf +!! INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims +!! INTEGER , INTENT(OUT) :: hdferr +!***** + 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(1)) + + 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(1,1)) + + 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(1,1,1)) + + 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(1,1,1,1)) + + 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(1,1,1,1,1)) + + 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(1,1,1,1,1,1)) + + 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(1,1,1,1,1,1,1)) + + 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(1)) + + 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(1,1)) + + 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(1,1,1)) + + 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(1,1,1,1)) + + 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(1,1,1,1,1)) + + 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(1,1,1,1,1,1)) + + 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(1,1,1,1,1,1,1)) + + hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr) + END SUBROUTINE h5aread_real_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), hdferr) + + END SUBROUTINE h5aread_char_scalar + + SUBROUTINE h5aread_char_scalar_fix(attr_id, memtype_id, buf, buf_len, 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, 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 + + +!****s* H5A (F03)/h5aread_f_F03 +! +! NAME +! h5aread_f_F03 +! +! PURPOSE +! Reads an attribute. +! +! Inputs: +! attr_id - Attribute identifier +! memtype_id - Attribute datatype identifier (in memory) +! +! Outputs: +! buf - Data buffer; may be a scalar or an array +! 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. +! Fortran2003 Interface: +!! SUBROUTINE h5aread_f(attr_id, memtype_id, buf, hdferr) +!! INTEGER(HID_T) , INTENT(IN) :: attr_id +!! INTEGER(HID_T) , INTENT(IN) :: memtype_id +!! TYPE(C_PTR) , INTENT(INOUT) :: buf +!! INTEGER , INTENT(OUT) :: hdferr +!***** + + 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(INOUT), 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..974b023 --- /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' 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 57b4d4d..0d32dac 100644 --- a/fortran/src/H5Df.c +++ b/fortran/src/H5Df.c @@ -1,6 +1,6 @@ /****h* H5Df/H5Df * PURPOSE - * This file contains C stubs for H5D Fortran APIs + * This file contains C stubs for H5D Fortran APIs * * COPYRIGHT * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -48,7 +48,7 @@ * SOURCE */ int_f -h5dcreate_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *type_id, hid_t_f *space_id, +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) /******/ { @@ -84,23 +84,23 @@ DONE: * 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 + * 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 + * dset_id - dataset identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, August 4, 1999 + * Wednesday, August 4, 1999 * HISTORY - * Added 1.8 parameter: dapl_id + * Added 1.8 parameter: dapl_id * SOURCE */ int_f -h5dopen_c(hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *dapl_id, hid_t_f *dset_id) +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; @@ -128,6 +128,531 @@ DONE: return ret_value; } + +/****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 + * AUTHOR + * Elena Pourmal + * Tuesday, May 14, 2002 + * 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; + + /* + * Call h5dwrite_c function. + */ + ret_value = nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, _fcdtocp(buf), dims); + + return ret_value; +} + +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; + + /* + * Call h5dwrite_c function. + */ + ret_value = nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, _fcdtocp(buf), dims); + + return ret_value; +} + +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; + + /* + * Call h5dwrite_c function. + */ + ret_value = nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, _fcdtocp(buf), dims); + + return ret_value; +} + +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; + + /* + * Call h5dwrite_c function. + */ + ret_value = nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, _fcdtocp(buf), dims); + + return ret_value; +} + +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; + + /* + * Call h5dwrite_c function. + */ + ret_value = nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, _fcdtocp(buf), dims); + + return ret_value; +} + +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; + + /* + * Call h5dwrite_c function. + */ + ret_value = nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, _fcdtocp(buf), dims); + + return ret_value; +} + +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; + + /* + * Call h5dwrite_c function. + */ + ret_value = nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, _fcdtocp(buf), dims); + + return ret_value; +} + +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; + + /* + * Call h5dwrite_c function. + */ + ret_value = nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, _fcdtocp(buf), dims); + + return ret_value; +} + +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; + + /* + * Call h5dwrite_c function. + */ + ret_value = nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, _fcdtocp(buf), dims); + + return ret_value; +} + +/****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 + * AUTHOR + * Elena Pourmal + * Tuesday, May 14, 2002 + * 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 + * complains about wrong parameter types in h5dwrite_c function + * 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 H5_ATTR_UNUSED *dims) +/******/ +{ + 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; + + /* + * 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; +} + +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. + */ + return nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + + +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. + */ + return nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + + +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. + */ + return nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + + +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. + */ + return nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + + +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. + */ + return nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + + +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. + */ + return nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + + +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. + */ + return nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + + +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. + */ + return nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + + +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. + */ + return nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + + +/****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 + * AUTHOR + * Elena Pourmal + * Tuesday, May 14, 2002 + * 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; + 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; + hobj_ref_t *buf_c; + unsigned int i, n; + + /* + * Define transfer property + */ + c_xfer_prp = (hid_t)*xfer_prp; + + /* + * Allocate temporary buffer and copy references from Fortran. + */ + n = (unsigned int)*dims; + buf_c = (hobj_ref_t*)HDmalloc(sizeof(hobj_ref_t)*n); + if ( buf_c != NULL ) { + for (i = 0; i < n; i++) + HDmemcpy(&buf_c[i], &buf[i], sizeof(haddr_t)); + } + else return ret_value; + + /* + * 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_c); + HDfree(buf_c); + if (ret < 0) return ret_value; + ret_value = 0; + return ret_value; +} + /****if* H5Df/h5dwrite_ref_reg_c * NAME * h5dwrite_ref_reg_c @@ -152,7 +677,7 @@ DONE: * SOURCE */ int_f -h5dwrite_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) +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; @@ -198,31 +723,549 @@ h5dwrite_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_i return ret_value; } + + +/****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 + * AUTHOR + * Elena Pourmal + * Wednesday, May 15, 2002 + * 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; + + /* + * Call h5dread_c function. + */ + ret_value = nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, _fcdtocp(buf), dims); + + return ret_value; +} + +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; + + /* + * Call h5dread_c function. + */ + ret_value = nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, _fcdtocp(buf), dims); + + return ret_value; +} + +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; + + /* + * Call h5dread_c function. + */ + ret_value = nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, _fcdtocp(buf), dims); + + return ret_value; +} + +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; + + /* + * Call h5dread_c function. + */ + ret_value = nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, _fcdtocp(buf), dims); + + return ret_value; +} + +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; + + /* + * Call h5dread_c function. + */ + ret_value = nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, _fcdtocp(buf), dims); + + return ret_value; +} + +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; + + /* + * Call h5dread_c function. + */ + ret_value = nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, _fcdtocp(buf), dims); + + return ret_value; +} + +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; + + /* + * Call h5dread_c function. + */ + ret_value = nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, _fcdtocp(buf), dims); + + return ret_value; +} + +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; + + /* + * Call h5dread_c function. + */ + ret_value = nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, _fcdtocp(buf), dims); + + return ret_value; +} + +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; + + /* + * Call h5dread_c function. + */ + ret_value = nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, _fcdtocp(buf), dims); + + return ret_value; +} + +/****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 + * AUTHOR + * Elena Pourmal + * Wednesday, May 15, 2002 + * 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 + * complains about wrong parameter types in h5dwrite_c function + * 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 H5_ATTR_UNUSED *dims) +/******/ +{ + 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; + + /* + * Define transfer property + */ + c_xfer_prp = (hid_t)*xfer_prp; + + /* + * Call H5Dread 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 = H5Dread(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; +} + +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. + */ + return nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +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. + */ + return nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, dims); +} + +/****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 + * AUTHOR + * Elena Pourmal + * Wednesday, May 15, 2002 + * 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; + 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; + hobj_ref_t *buf_c = NULL; + hsize_t i,n; + + /* + * Define transfer property + */ + c_xfer_prp = (hid_t)*xfer_prp; + + /* + * Allocate temporary buffer. + */ + n = (hsize_t)*dims; + buf_c = (hobj_ref_t*)HDmalloc(sizeof(hobj_ref_t)*(size_t)n); + if ( buf_c != NULL ) { + /* + * Call H5Dread 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 = H5Dread(c_dset_id, c_mem_type_id, c_mem_space_id, c_file_space_id, c_xfer_prp, buf_c); + if (ret >=0) { + for (i = 0; i < n; i++) + HDmemcpy(&buf[i], &buf_c[i], sizeof(haddr_t)); + } + if ( buf_c != NULL ) HDfree(buf_c); + } + if (ret < 0) return ret_value; + ret_value = 0; + return ret_value; +} + /****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. + * 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 + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, May 15, 2002 + * Wednesday, May 15, 2002 * HISTORY - * This function was added to accomodate h5dread_f subroutine - * with the dims parameter being of INTEGER(HSIZE_T_F) size. + * This function was added to accomodate h5dread_f subroutine + * with the dims parameter being of INTEGER(HSIZE_T_F) size. * SOURCE */ int_f -h5dread_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) +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; @@ -274,19 +1317,19 @@ h5dread_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id * PURPOSE * Call H5Dclose to close a dataset * INPUTS - * dset_id - identifier of the dataset to be closed + * dset_id - identifier of the dataset to be closed * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, August 4, 1999 + * Wednesday, August 4, 1999 * HISTORY * * SOURCE */ int_f -h5dclose_c ( hid_t_f *dset_id ) +nh5dclose_c ( hid_t_f *dset_id ) /******/ { int ret_value = 0; @@ -302,21 +1345,21 @@ h5dclose_c ( hid_t_f *dset_id ) * PURPOSE * Call H5Dget_space to obtain dataspace of a dataset * INPUTS - * dset_id - identifier of the dataset + * dset_id - identifier of the dataset * OUTPUTS - * space_id - identifier of the dataset's dataspace + * space_id - identifier of the dataset's dataspace * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Thursday, August 19, 1999 + * Thursday, August 19, 1999 * HISTORY * * SOURCE */ int_f -h5dget_space_c ( hid_t_f *dset_id , hid_t_f *space_id) +nh5dget_space_c ( hid_t_f *dset_id , hid_t_f *space_id) /******/ { int ret_value = -1; @@ -337,21 +1380,21 @@ h5dget_space_c ( hid_t_f *dset_id , hid_t_f *space_id) * PURPOSE * Call H5Dget_type to obtain datatype of a dataset * INPUTS - * dset_id - identifier of the dataset + * dset_id - identifier of the dataset * OUTPUTS - * type_id - identifier of the dataset's datatype + * type_id - identifier of the dataset's datatype * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Thursday, August 19, 1999 + * Thursday, August 19, 1999 * HISTORY * * SOURCE */ int_f -h5dget_type_c ( hid_t_f *dset_id , hid_t_f *type_id) +nh5dget_type_c ( hid_t_f *dset_id , hid_t_f *type_id) /******/ { int ret_value = -1; @@ -373,23 +1416,23 @@ h5dget_type_c ( hid_t_f *dset_id , hid_t_f *type_id) * h5dget_create_plist_c * PURPOSE * Call H5Dget_create_plist to obtain creation property list - * of a dataset + * of a dataset * INPUTS - * dset_id - identifier of the dataset + * dset_id - identifier of the dataset * OUTPUTS - * plist_id - identifier of he dataset creation property list + * plist_id - identifier of he dataset creation property list * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Thursday, August 19, 1999 + * Thursday, August 19, 1999 * HISTORY * * SOURCE */ int_f -h5dget_create_plist_c ( hid_t_f *dset_id , hid_t_f *plist_id) +nh5dget_create_plist_c ( hid_t_f *dset_id , hid_t_f *plist_id) /******/ { int ret_value = -1; @@ -413,24 +1456,24 @@ h5dget_create_plist_c ( hid_t_f *dset_id , hid_t_f *plist_id) * PURPOSE * Call H5Dset_extent to extend dataset with unlimited dimensions * INPUTS - * dset_id - identifier of the dataset + * dset_id - identifier of the dataset * OUTPUTS - * dims - array with the dimension sizes + * dims - array with the dimension sizes * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Thursday, August 19, 1999 + * Thursday, August 19, 1999 * * HISTORY - * Changed name from the now obsolete h5dextend - * to h5dset_extent in order to match new fortran interface. + * Changed name from the now obsolete h5dextend + * to h5dset_extent in order to match new fortran interface. * -MSB- March 14, 2008 * SOURCE */ int_f -h5dset_extent_c ( hid_t_f *dset_id , hsize_t_f *dims) +nh5dset_extent_c ( hid_t_f *dset_id , hsize_t_f *dims) /******/ { hid_t c_space_id; @@ -460,28 +1503,28 @@ h5dset_extent_c ( hid_t_f *dset_id , hsize_t_f *dims) return ret_value; } -/****if* H5Df/h5dget_storage_size_c +/****if* H5Df/nh5dget_storage_size_c * NAME - * h5dget_storage_size_c + * nh5dget_storage_size_c * PURPOSE * Call H5Dget_storage_size to return the amount of storage - * required for a dataset + * required for a dataset * INPUTS - * dset_id - identifier of the dataset + * dset_id - identifier of the dataset * OUTPUTS - * size - the amount of storage required for a dataset + * size - the amount of storage required for a dataset * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Tuesday, October 22, 2002 + * Tuesday, October 22, 2002 * HISTORY * * SOURCE */ int_f -h5dget_storage_size_c ( hid_t_f *dset_id , hsize_t_f *size) +nh5dget_storage_size_c ( hid_t_f *dset_id , hsize_t_f *size) /******/ { int ret_value = -1; @@ -496,29 +1539,29 @@ h5dget_storage_size_c ( hid_t_f *dset_id , hsize_t_f *size) return ret_value; } -/****if* H5Df/h5dvlen_get_max_len_c +/****if* H5Df/nh5dvlen_get_max_len_c * NAME - * h5dvlen_get_max_len_c + * 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 + * dset_id - identifier of the dataset + * type_id - datatype identifier + * space_id - dataspace identifier * OUTPUTS - * len - maximum length of the VL dataset element + * len - maximum length of the VL dataset element * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Tuesday, October 22, 2002 + * Tuesday, October 22, 2002 * HISTORY * * SOURCE */ int_f -h5dvlen_get_max_len_c ( hid_t_f *dset_id , hid_t_f *type_id, hid_t_f *space_id, size_t_f *len) +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; @@ -554,34 +1597,34 @@ DONE: HDfree(c_buf); return ret_value; } -/****if* H5Df/h5dwrite_vl_integer_c +/****if* H5Df/nh5dwrite_vl_integer_c * NAME - * h5dwrite_vl_integer_c + * 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 - * xfer - file transfer property - * buf - data buffer - * dims - one-demnsional array of size 2 - * dims[0] = MAXLENGTH - * dims[1] = number of elements of VL type - * len - array element lenghts + * 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 + * buf - data buffer + * dims - one-demnsional array of size 2 + * dims[0] = MAXLENGTH + * dims[1] = number of elements of VL type + * len - array element lenghts * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, October 23, 2002 + * Wednesday, October 23, 2002 * HISTORY * * SOURCE */ int_f -h5dwrite_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) +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; @@ -627,35 +1670,35 @@ DONE: return ret_value; } -/****if* H5Df/h5dread_vl_integer_c +/****if* H5Df/nh5dread_vl_integer_c * NAME - * h5dread_vl_integer_c + * 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 - * xfer - file transfer property - * dims - one-demnsional array of size 2 - * dims[0] = MAXLENGTH - * dims[1] = number of elements of VL type + * 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 + * buf - data buffer + * len - array element lenghts * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, October 24, 2002 + * Wednesday, October 24, 2002 * HISTORY * * SOURCE */ int_f -h5dread_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) +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; @@ -699,33 +1742,33 @@ DONE: return ret_value; } -/****if* H5Df/h5dwrite_vl_string_c +/****if* H5Df/nh5dwrite_vl_string_c * NAME - * h5dwrite_vl_string_c + * 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 - * xfer - file transfer property - * buf - data buffer - * dims - one-demnsional array of size 2 - * dims[0] = number of strings of size max_len - * len - array of strings lengths + * 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 + * buf - data buffer + * 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 + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Monday, October 28, 2002 + * Monday, October 28, 2002 * HISTORY * * SOURCE */ int_f -h5dwrite_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) +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; @@ -786,33 +1829,33 @@ DONE: HDfree(tmp); return ret_value; } -/****if* H5Df/h5dread_vl_string_c +/****if* H5Df/nh5dread_vl_string_c * NAME - * h5dread_vl_string_c + * 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 - * xfer - file transfer property - * dims - one-demnsional array of size 2 - * dims[0] = number of strings of size max_len - * Output: buf - data buffer - * len - array of strings lengths + * 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] = number of strings of size max_len + * Output: buf - data buffer + * len - array of strings lengths * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Friday, November 1, 2002 + * Friday, November 1, 2002 * HISTORY * * SOURCE */ int_f -h5dread_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) +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; @@ -869,34 +1912,34 @@ h5dread_vl_string_c( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_spac return ret_value; } -/****if* H5Df/h5dwrite_vl_real_c +/****if* H5Df/nh5dwrite_vl_real_c * NAME - * h5dwrite_vl_real_c + * 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 - * xfer - file transfer property - * buf - data buffer - * dims - one-demnsional array of size 2 - * dims[0] = MAXLENGTH - * dims[1] = number of elements of VL type - * len - array element lenghts + * 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 + * buf - data buffer + * dims - one-demnsional array of size 2 + * dims[0] = MAXLENGTH + * dims[1] = number of elements of VL type + * len - array element lenghts * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Monday, November 11, 2002 + * Monday, November 11, 2002 * HISTORY * * SOURCE */ int_f -h5dwrite_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) +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; @@ -942,35 +1985,35 @@ DONE: return ret_value; } -/****if* H5Df/h5dread_vl_real_c +/****if* H5Df/nh5dread_vl_real_c * NAME - * h5dread_vl_real_c + * 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 - * xfer - file transfer property - * dims - one-demnsional array of size 2 - * dims[0] = MAXLENGTH - * dims[1] = number of elements of VL type + * 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 + * buf - data buffer + * len - array element lenghts * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Monday, November 11, 2002 + * Monday, November 11, 2002 * HISTORY * * SOURCE */ int_f -h5dread_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) +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; @@ -1015,6 +2058,39 @@ DONE: return ret_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 + * AUTHOR + * Elena Pourmal + * Wednesday, March 12, 2003 + * 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; + + /* + * Call h5dfill_c function. + */ + ret_value = h5dfill_c(_fcdtocp(fill_value), fill_type_id, space_id, _fcdtocp(buf), mem_type_id); + + return ret_value; +} /****if* H5Df/h5dfill_c * NAME * h5dfill_c @@ -1059,26 +2135,98 @@ h5dfill_c (void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * b return ret_value; } +int_f +nh5dfill_integer_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; + hid_t c_fill_type_id; + hid_t c_mem_type_id; + hid_t c_space_id; + + c_fill_type_id = (hid_t)*fill_type_id; + c_mem_type_id = (hid_t)*mem_type_id; + c_space_id = (hid_t)*space_id; + + /* + * Call H5Dfill function. + */ + ret = H5Dfill(fill_value, c_fill_type_id, buf, c_mem_type_id, c_space_id); + + if (ret < 0) return ret_value; + ret_value = 0; + return ret_value; +} + +int_f +nh5dfill_real_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; + hid_t c_fill_type_id; + hid_t c_mem_type_id; + hid_t c_space_id; + + c_fill_type_id = (hid_t)*fill_type_id; + c_mem_type_id = (hid_t)*mem_type_id; + c_space_id = (hid_t)*space_id; + + /* + * Call H5Dfill function. + */ + ret = H5Dfill(fill_value, c_fill_type_id, buf, c_mem_type_id, c_space_id); + + if (ret < 0) return ret_value; + ret_value = 0; + return ret_value; +} + +int_f +nh5dfill_double_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; + hid_t c_fill_type_id; + hid_t c_mem_type_id; + hid_t c_space_id; + + c_fill_type_id = (hid_t)*fill_type_id; + c_mem_type_id = (hid_t)*mem_type_id; + c_space_id = (hid_t)*space_id; + + /* + * Call H5Dfill function. + */ + ret = H5Dfill(fill_value, c_fill_type_id, buf, c_mem_type_id, c_space_id); + + if (ret < 0) return ret_value; + ret_value = 0; + return ret_value; +} + /****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 + * dset_id - dataset identifier * OUTPUTS - * flag - status flag + * flag - status flag * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, March 12, 2003 + * Wednesday, March 12, 2003 * HISTORY * * SOURCE */ int_f -h5dget_space_status_c ( hid_t_f *dset_id, int_f *flag) +nh5dget_space_status_c ( hid_t_f *dset_id, int_f *flag) /******/ { int ret_value = -1; @@ -1108,21 +2256,21 @@ h5dget_space_status_c ( hid_t_f *dset_id, int_f *flag) * 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. + * dcpl_id - Dataset creation property list identifier. + * dapl_id - Dataset access property list identifier. * OUTPUTS * - * dset_id - dataset identifier + * dset_id - dataset identifier * * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * February, 2008 + * February, 2008 * SOURCE */ int_f -h5dcreate_anon_c (hid_t_f *loc_id, hid_t_f *type_id, hid_t_f *space_id, +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) /******/ { @@ -1207,8 +2355,8 @@ h5dwrite_f_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, * 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 + * dims[0] = MAXLENGTH + * dims[1] = number of elements of VL type * OUTPUTS * buf - data buffer * len - array element lenghts @@ -1248,9 +2396,9 @@ h5dread_f_c ( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_space_id, ret_value = 0; return ret_value; } -/****if* H5Df/h5dget_access_plist_c +/****if* H5Df/nh5dget_access_plist_c * NAME - * h5dget_access_plist_c + * nh5dget_access_plist_c * PURPOSE * Call H5Dget_access_plist * INPUTS @@ -1266,7 +2414,7 @@ h5dread_f_c ( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_space_id, * SOURCE */ int_f -h5dget_access_plist_c (hid_t_f *dset_id, hid_t_f *plist_id) +nh5dget_access_plist_c (hid_t_f *dset_id, hid_t_f *plist_id) /******/ { int ret_value = -1; @@ -1282,22 +2430,22 @@ h5dget_access_plist_c (hid_t_f *dset_id, hid_t_f *plist_id) return ret_value; } -/****if* H5Df/h5dvlen_reclaim_c +/****if* H5Df/nh5dvlen_reclaim_c * NAME * h5dvlen_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. + * 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 + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * January 15, 2011 + * January 15, 2011 * * SOURCE */ diff --git a/fortran/src/H5Dff.F90 b/fortran/src/H5Dff.F90 deleted file mode 100644 index afdb5ba..0000000 --- a/fortran/src/H5Dff.F90 +++ /dev/null @@ -1,1878 +0,0 @@ -!****h* ROBODoc/H5D -! -! NAME -! MODULE H5D -! -! FILE -! fortran/src/H5Dff.f90 -! -! PURPOSE -! This file contains Fortran interfaces for H5D 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 -! (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, INTRINSIC :: ISO_C_BINDING in the module header because it may -! conflict with the USE, INTRINSIC :: 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 -! -! _____ __ __ _____ ____ _____ _______ _ _ _______ -! |_ _| \/ | __ \ / __ \| __ \__ __|/\ | \ | |__ __| -! **** | | | \ / | |__) | | | | |__) | | | / \ | \| | | | **** -! **** | | | |\/| | ___/| | | | _ / | | / /\ \ | . ` | | | **** -! **** _| |_| | | | | | |__| | | \ \ | |/ ____ \| |\ | | | **** -! |_____|_| |_|_| \____/|_| \_\ |_/_/ \_\_| \_| |_| -! -! If you add a new H5D function you must add the function name to the -! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory. -! This is needed for Windows based operating systems. -! -!***** - -#include <H5config_f.inc> - -MODULE H5D - - USE, INTRINSIC :: ISO_C_BINDING - USE H5GLOBAL - - INTERFACE h5dextend_f - MODULE PROCEDURE h5dset_extent_f - END INTERFACE - - INTERFACE h5dread_vl_f - MODULE PROCEDURE h5dread_vl_integer - MODULE PROCEDURE h5dread_vl_real - MODULE PROCEDURE h5dread_vl_string - END INTERFACE - - INTERFACE h5dwrite_vl_f - MODULE PROCEDURE h5dwrite_vl_integer - MODULE PROCEDURE h5dwrite_vl_real - MODULE PROCEDURE h5dwrite_vl_string - END INTERFACE - - INTERFACE h5dwrite_f - MODULE PROCEDURE h5dwrite_reference_obj - MODULE PROCEDURE h5dwrite_reference_dsetreg - MODULE PROCEDURE h5dwrite_char_scalar - ! 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_char_scalar - ! 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 ) BIND(C, NAME='h5dwrite_f_c') - IMPORT :: c_ptr - IMPORT :: HID_T - IMPLICIT NONE - 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) BIND(C, NAME='h5dread_f_c') - IMPORT :: c_ptr - IMPORT :: HID_T - IMPLICIT NONE - 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_c_float - MODULE PROCEDURE h5dfill_c_double -#ifdef H5_FORTRAN_HAVE_C_LONG_DOUBLE - MODULE PROCEDURE h5dfill_c_long_double -#endif - 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) BIND(C, NAME='h5dfill_c') - IMPORT :: c_ptr - IMPORT :: HID_T - IMPLICIT NONE - 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 - -! -!****s* H5D/h5dcreate_f -! -! NAME -! h5dcreate_f -! -! PURPOSE -! Creates a dataset at the specified location -! -! 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 -! -! 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 -! -! - 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 - INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier - CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the dataset - 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 - INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lcpl_id ! Link creation property list - INTEGER(HID_T), OPTIONAL, INTENT(IN) :: dapl_id ! Dataset access property list - - INTEGER(HID_T) :: lcpl_id_default - INTEGER(HID_T) :: dcpl_id_default - INTEGER(HID_T) :: dapl_id_default - - INTEGER :: namelen ! Name length - - INTERFACE - INTEGER FUNCTION h5dcreate_c(loc_id, name, namelen, type_id, & - space_id, lcpl_id_default, dcpl_id_default, dapl_id_default, dset_id) & - BIND(C,NAME='h5dcreate_c') - IMPORT :: C_CHAR - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name - INTEGER :: namelen - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER(HID_T), INTENT(IN) :: space_id - - INTEGER(HID_T) :: lcpl_id_default - INTEGER(HID_T) :: dcpl_id_default - INTEGER(HID_T) :: dapl_id_default - - INTEGER(HID_T), INTENT(OUT) :: dset_id - END FUNCTION h5dcreate_c - END INTERFACE - - lcpl_id_default = H5P_DEFAULT_F - dcpl_id_default = H5P_DEFAULT_F - dapl_id_default = H5P_DEFAULT_F - - IF(PRESENT(lcpl_id)) lcpl_id_default = lcpl_id - IF(PRESENT(dcpl_id)) dcpl_id_default = dcpl_id - IF(PRESENT(dapl_id)) dapl_id_default = dapl_id - - namelen = LEN(name) - hdferr = h5dcreate_c(loc_id, name, namelen, type_id, space_id, & - lcpl_id_default, dcpl_id_default, dapl_id_default, dset_id) - - END SUBROUTINE h5dcreate_f - -! -!****s* H5D/h5dopen_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 - Returns 0 if successful and -1 if fails -! OPTIONAL PARAMETERS -! dapl_id - Dataset access property list -! -! 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 -! -! -Added 1.8 (optional) parameter dapl_id -! February, 2008, M. Scot Breitenfeld -! -! 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 - - INTEGER(HID_T) :: dapl_id_default - - INTERFACE - INTEGER FUNCTION h5dopen_c(loc_id, name, namelen, dapl_id_default, dset_id) & - BIND(C,NAME='h5dopen_c') - IMPORT :: C_CHAR - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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 - -! -!****s* H5D/h5dclose_f -! -! NAME -! h5dclose_f -! -! PURPOSE -! Closes a dataset. -! -! INPUTS -! dset_id - dataset 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 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) & - BIND(C,NAME='h5dclose_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: dset_id - END FUNCTION h5dclose_c - END INTERFACE - - hdferr = h5dclose_c(dset_id) - - END SUBROUTINE h5dclose_f - -! -!****s* H5D/h5dget_type_f -! -! NAME -! h5dget_type_f -! -! PURPOSE -! Returns an identifier for a copy of the datatype for a -! dataset. -! -! INPUTS -! dataset_id - dataset identifier -! OUTPUTS -! datatype_id - dataspace 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 -! -! NOTES -! -! 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) & - BIND(C,NAME='h5dget_type_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: dataset_id - INTEGER(HID_T), INTENT(OUT) :: datatype_id - END FUNCTION h5dget_type_c - END INTERFACE - - hdferr = h5dget_type_c (dataset_id, datatype_id) - END SUBROUTINE h5dget_type_f - -! -!****s* H5D/h5dset_extent -! -! NAME -! h5dset_extent (instead of obsolete name: h5dextend_f) -! -! PURPOSE -! Extends a dataset with unlimited dimension. -! -! INPUTS -! dataset_id - dataset identifier -! size - array containing the new magnitude of -! each dimension -! 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 -! -! Changed name from the now obsolete h5dextend_f -! to h5dset_extent_f. Provided interface to old name -! for backward compatability. -MSB- March 14, 2008 -! -! 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) & - BIND(C,NAME='h5dset_extent_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: dataset_id - INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: size - END FUNCTION h5dset_extent_c - END INTERFACE - - hdferr = H5Dset_extent_c(dataset_id, size) - END SUBROUTINE h5dset_extent_f - -!****s* H5D/h5dget_create_plist_f -! -! NAME -! h5dget_create_plist_f -! -! PURPOSE -! Returns an identifier for a copy of the dataset creation -! property list for a dataset. -! -! INPUTS -! dataset_id - dataset identifier -! OUTPUTS -! plist_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 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) & - BIND(C,NAME='h5dget_create_plist_c') - IMPORT :: HID_T - INTEGER(HID_T), INTENT(IN) :: dataset_id - INTEGER(HID_T), INTENT(OUT) :: plist_id - END FUNCTION h5dget_create_plist_c - END INTERFACE - - hdferr = h5dget_create_plist_c(dataset_id, plist_id) - END SUBROUTINE h5dget_create_plist_f - -! -!****s* H5D/h5dget_storage_size_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 - Returns 0 if successful and -1 if fails -! -! 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) & - BIND(C,NAME='h5dget_storage_size_c') - IMPORT :: HID_T, HSIZE_T - 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 - -! -!****s* H5D/h5dvlen_get_max_len_f -! -! NAME -! h5dvlen_get_max_len_f -! -! PURPOSE -! Returns maximum length of the VL array elements -! -! 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 -! -! AUTHOR -! Elena Pourmal -! October 15, 2002 -! -! 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(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 -!***** - INTERFACE - INTEGER FUNCTION h5dvlen_get_max_len_c(dataset_id, type_id, space_id, len) & - BIND(C,NAME='h5dvlen_get_max_len_c') - IMPORT :: HID_T, SIZE_T - 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 - - hdferr = h5dvlen_get_max_len_c(dataset_id, type_id, space_id, len) - END SUBROUTINE h5dvlen_get_max_len_f - -! -!****s* H5D/h5dget_space_status_f -! -! 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 - Returns 0 if successful and -1 if fails -! -! AUTHOR -! Elena Pourmal -! March 12, 2003 -! -! SOURCE - SUBROUTINE h5dget_space_status_f(dset_id, flag, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataspace identifier - INTEGER, INTENT(OUT) :: flag ! Memory buffer to fill in - INTEGER, INTENT(OUT) :: hdferr ! Error code - !***** - INTERFACE - INTEGER FUNCTION h5dget_space_status_c(dset_id, flag) & - BIND(C,NAME='h5dget_space_status_c') - IMPORT :: HID_T - 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 - -! -!****s* H5D/h5dcreate_anon_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 - Returns 0 if successful and -1 if fails -! OPTIONAL PARAMETERS -! dcpl_id - Dataset creation property list identifier. -! dapl_id - Dataset access property list identifier. -! -! AUTHOR -! M. Scot Breitenfeld -! February 11, 2008 -! -! 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) & - BIND(C,NAME='h5dcreate_anon_c') - IMPORT :: HID_T - IMPLICIT NONE - 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 - - dcpl_id_default = H5P_DEFAULT_F - dapl_id_default = H5P_DEFAULT_F - - IF(PRESENT(dcpl_id)) dcpl_id_default = dcpl_id - IF(PRESENT(dapl_id)) dapl_id_default = dapl_id - - hdferr = h5dcreate_anon_c(loc_id, type_id, space_id, dcpl_id_default, dapl_id_default, dset_id) - - END SUBROUTINE h5dcreate_anon_f - - 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) & - BIND(C,NAME='h5dwrite_vl_integer_c') - IMPORT :: HID_T, HSIZE_T, SIZE_T - IMPLICIT NONE - 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 - - 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_integer_c(dset_id, mem_type_id, mem_space_id_default, & - file_space_id_default, xfer_prp_default, & - buf, dims, len) - - END SUBROUTINE h5dwrite_vl_integer - - 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) & - BIND(C,NAME='h5dread_vl_integer_c') - IMPORT :: HID_T, HSIZE_T, SIZE_T - IMPLICIT NONE - 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 - - 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 - - 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 - - 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 - - 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) & - BIND(C,NAME='h5dwrite_vl_real_c') - IMPORT :: HID_T, HSIZE_T, SIZE_T - IMPLICIT NONE - 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 - - - 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_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 - - 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 - - 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) & - BIND(C,NAME='h5dread_vl_real_c') - IMPORT :: HID_T, HSIZE_T, SIZE_T - IMPLICIT NONE - 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 - - 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_real_c(dset_id, mem_type_id, mem_space_id_default, & - file_space_id_default, xfer_prp_default, & - buf, dims, len) - - END SUBROUTINE h5dread_vl_real - - SUBROUTINE h5dwrite_vl_string(dset_id, mem_type_id, buf, dims, str_len, & - hdferr, & - mem_space_id, file_space_id, xfer_prp) - USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char - 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) & - BIND(C,NAME='h5dwrite_vl_string_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, HSIZE_T, SIZE_T - IMPLICIT NONE - 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(KIND=C_CHAR), 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 - - 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) - - END SUBROUTINE h5dwrite_vl_string - - 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 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 - - INTERFACE - 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) & - BIND(C,NAME='h5dread_vl_string_c') - IMPORT :: c_char - IMPORT :: HID_T, HSIZE_T, SIZE_T - IMPLICIT NONE - 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(KIND=C_CHAR), 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 - - 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 - -! -!****s* H5D/h5dget_offset_f -! -! NAME -! h5dget_offset_f -! -! PURPOSE -! Returns dataset address in file. -! -! INPUTS -! dataset_id - Dataset identifier. -! OUTPUTS -! offset - The offset in bytes. -! hdferr - Returns 0 if successful and -1 if fails. -! -! AUTHOR -! M. Scot Breitenfeld -! April 16, 2015 -! -! SOURCE - SUBROUTINE h5dget_offset_f(dset_id, offset, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: dset_id - INTEGER(HADDR_T), INTENT(OUT) :: offset - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER(HADDR_T) FUNCTION h5dget_offset(dset_id) BIND(C,NAME='H5Dget_offset') - IMPORT :: HID_T, HADDR_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN), VALUE :: dset_id - END FUNCTION h5dget_offset - END INTERFACE - - offset = h5dget_offset(dset_id) - - hdferr = 0 - IF(offset .LT. 0) hdferr = -1 - - END SUBROUTINE h5dget_offset_f - -! -!****s* H5D/h5dget_space_f -! -! NAME -! h5dget_space_f -! -! PURPOSE -! Returns an identifier for a copy of the dataspace for a -! dataset. -! -! INPUTS -! dataset_id - dataset identifier -! OUTPUTS -! dataspace_id - dataspace 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 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 -!***** - INTERFACE - INTEGER FUNCTION h5dget_space_c(dataset_id, dataspace_id) BIND(C,NAME='h5dget_space_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: dataset_id - INTEGER(HID_T), INTENT(OUT) :: dataspace_id - END FUNCTION h5dget_space_c - END INTERFACE - - 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) BIND(C,NAME='h5dget_access_plist_c') - IMPORT :: HID_T - IMPLICIT NONE - 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 - - - SUBROUTINE h5dwrite_reference_obj(dset_id, mem_type_id, buf, dims, 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 - 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, 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 - 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 - INTEGER(HSIZE_T) :: 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) & - BIND(C,NAME='h5dwrite_ref_reg_c') - IMPORT :: HID_T, HSIZE_T, SIZE_T - IMPLICIT NONE - 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_char_scalar(dset_id, mem_type_id, buf, dims, 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 - 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, 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 - 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 h5dread_reference_obj(dset_id, mem_type_id, buf, dims, 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 - 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) - 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 - - INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf - INTEGER :: i - INTEGER(HSIZE_T) :: 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) & - BIND(C,NAME='h5dread_ref_reg_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE - 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_char_scalar(dset_id, mem_type_id, buf, dims, 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 - 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 - - 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 - - CALL h5dread_char_scalar_fix(dset_id, mem_type_id, buf, LEN(buf), hdferr, & - mem_space_id_default, file_space_id_default, xfer_prp_default) - - END SUBROUTINE h5dread_char_scalar - - SUBROUTINE h5dread_char_scalar_fix(dset_id, mem_type_id, buf, buf_len, 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 - 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 - - TYPE(C_PTR) :: f_ptr - - f_ptr = C_LOC(buf(1:1)) - - hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id, & - file_space_id, xfer_prp, f_ptr) - - END SUBROUTINE h5dread_char_scalar_fix - -!****s* H5D (F03)/h5dwrite_f_F03 -! -! NAME -! h5dwrite_f_F03 -! -! PURPOSE -! Writes raw data from a dataset into a buffer. -! -! Inputs: -! dset_id - Identifier of the dataset to write to. -! mem_type_id - Identifier of the memory datatype. -! buf - Buffer with data to be written to the file. -! -! Outputs: -! hdferr - Returns 0 if successful and -1 if fails -! -! Optional parameters: -! mem_space_id - Identifier of the memory dataspace. -! file_space_id - Identifier of the dataset's dataspace in the file. -! xfer_prp - Identifier of a transfer property list for this I/O operation. -! -! AUTHOR -! M. Scot Breitenfeld -! September 17, 2011 -! -! Fortran2003 Interface: -!! SUBROUTINE h5dwrite_f(dset_id, mem_type_id, buf, hdferr, & -!! mem_space_id, file_space_id, xfer_prp) -!! INTEGER(HID_T), INTENT(IN) :: dset_id -!! INTEGER(HID_T), INTENT(IN) :: mem_type_id -!! TYPE(C_PTR) , INTENT(IN) :: buf -!! INTEGER , INTENT(OUT) :: hdferr -!! INTEGER(HID_T), INTENT(IN) , OPTIONAL :: mem_space_id -!! INTEGER(HID_T), INTENT(IN) , OPTIONAL :: file_space_id -!! INTEGER(HID_T), INTENT(IN) , OPTIONAL :: xfer_prp -!***** - 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(IN) :: 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 - -!****s* H5D (F03)/h5dread_f_F03 -! -! NAME -! h5dread_f_F03 -! -! PURPOSE -! Reads raw data from a dataset into a buffer. -! -! Inputs: -! dset_id - Identifier of the dataset read from. -! mem_type_id - Identifier of the memory datatype. -! -! Outputs: -! buf - Buffer to receive data read from file. -! hdferr - Returns 0 if successful and -1 if fails -! -! Optional parameters: -! mem_space_id - Identifier of the memory dataspace. -! file_space_id - Identifier of the dataset's dataspace in the file. -! xfer_prp - Identifier of a transfer property list for this I/O operation. -! -! AUTHOR -! M. Scot Breitenfeld -! September 17, 2011 -! -! Fortran2003 Interface: -!! SUBROUTINE h5dread_f(dset_id, mem_type_id, buf, hdferr, & -!! mem_space_id, file_space_id, xfer_prp) -!! INTEGER(HID_T), INTENT(IN) :: dset_id -!! INTEGER(HID_T), INTENT(IN) :: mem_type_id -!! TYPE(C_PTR) , INTENT(INOUT) :: buf -!! INTEGER , INTENT(OUT) :: hdferr -!! INTEGER(HID_T), INTENT(IN) , OPTIONAL :: mem_space_id -!! INTEGER(HID_T), INTENT(IN) , OPTIONAL :: file_space_id -!! INTEGER(HID_T), INTENT(IN) , OPTIONAL :: xfer_prp -!***** - 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, INTRINSIC :: 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_c_float -! -! 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_c_float(fill_valuer, space_id, buf, hdferr) - USE, INTRINSIC :: ISO_C_BINDING - IMPLICIT NONE - REAL(KIND=C_FLOAT), INTENT(IN), TARGET :: fill_valuer ! Fill value - INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier - REAL(KIND=C_FLOAT), 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_c_float - - !---------------------------------------------------------------------- - ! Name: h5dfill_c_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 - ! - ! Programmer: Elena Pourmal - ! March 12, 2003 - ! - !---------------------------------------------------------------------- - - SUBROUTINE h5dfill_c_double(fill_value, space_id, buf, hdferr) - IMPLICIT NONE - REAL(KIND=C_DOUBLE), INTENT(IN), TARGET :: fill_value ! Fill value - INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier - REAL(KIND=C_DOUBLE), 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_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_valuer, fill_type_id, space_id, & - f_ptr_buf, mem_type_id) - - END SUBROUTINE h5dfill_c_double - -#ifdef H5_FORTRAN_HAVE_C_LONG_DOUBLE - SUBROUTINE h5dfill_c_long_double(fill_value, space_id, buf, hdferr) - IMPLICIT NONE - REAL(KIND=C_LONG_DOUBLE), INTENT(IN), TARGET :: fill_value ! Fill value - INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier - REAL(KIND=C_LONG_DOUBLE), 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_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_valuer, fill_type_id, space_id, & - f_ptr_buf, mem_type_id) - - END SUBROUTINE h5dfill_c_long_double -#endif -! -! 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, INTRINSIC :: 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 (F03)/h5dvlen_reclaim_f -! NAME -! h5dvlen_reclaim_f -! -! 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 - Returns 0 if successful and -1 if fails -! -! AUTHOR -! M. Scot Breitenfeld -! January 11, 2011 -! -! Fortran2003 Interface: - SUBROUTINE h5dvlen_reclaim_f(type_id, space_id, plist_id, buf, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER(HID_T), INTENT(IN) :: space_id - INTEGER(HID_T), INTENT(IN) :: plist_id - TYPE(C_PTR) , INTENT(INOUT) :: buf - INTEGER , INTENT(OUT) :: hdferr -!***** - - INTERFACE - INTEGER FUNCTION h5dvlen_reclaim_c(type_id, space_id, plist_id, buf) BIND(C, NAME='h5dvlen_reclaim_c') - IMPORT :: C_PTR - IMPORT :: HID_T - IMPLICIT NONE - 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 - - diff --git a/fortran/src/H5Dff.f90 b/fortran/src/H5Dff.f90 new file mode 100644 index 0000000..3ad868c --- /dev/null +++ b/fortran/src/H5Dff.f90 @@ -0,0 +1,1035 @@ +!****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. * +! 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 H5D function you must add the function name to the +! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory. +! This is needed for Windows based operating systems. +! +!***** + +MODULE H5D + USE H5GLOBAL + + INTERFACE h5dextend_f + MODULE PROCEDURE h5dset_extent_f + END INTERFACE + + INTERFACE h5dread_vl_f + MODULE PROCEDURE h5dread_vl_integer + MODULE PROCEDURE h5dread_vl_real + MODULE PROCEDURE h5dread_vl_string + END INTERFACE + + INTERFACE h5dwrite_vl_f + MODULE PROCEDURE h5dwrite_vl_integer + MODULE PROCEDURE h5dwrite_vl_real + MODULE PROCEDURE h5dwrite_vl_string + END INTERFACE + +CONTAINS + +! +!****s* H5D/h5dcreate_f +! +! NAME +! h5dcreate_f +! +! PURPOSE +! Creates a dataset at the specified location +! +! 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 +! +! 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 +! +! - 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 + INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier + CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the dataset + 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 + INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lcpl_id ! Link creation property list + INTEGER(HID_T), OPTIONAL, INTENT(IN) :: dapl_id ! Dataset access property list + + INTEGER(HID_T) :: lcpl_id_default + INTEGER(HID_T) :: dcpl_id_default + INTEGER(HID_T) :: dapl_id_default + + INTEGER :: namelen ! Name length + +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dcreate_c(loc_id, name, namelen, type_id, & + space_id, lcpl_id_default, dcpl_id_default, dapl_id_default, dset_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DCREATE_C'::h5dcreate_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) :: type_id + INTEGER(HID_T), INTENT(IN) :: space_id + + INTEGER(HID_T) :: lcpl_id_default + INTEGER(HID_T) :: dcpl_id_default + INTEGER(HID_T) :: dapl_id_default + + INTEGER(HID_T), INTENT(OUT) :: dset_id + END FUNCTION h5dcreate_c + END INTERFACE + + lcpl_id_default = H5P_DEFAULT_F + dcpl_id_default = H5P_DEFAULT_F + dapl_id_default = H5P_DEFAULT_F + + IF(PRESENT(lcpl_id)) lcpl_id_default = lcpl_id + IF(PRESENT(dcpl_id)) dcpl_id_default = dcpl_id + IF(PRESENT(dapl_id)) dapl_id_default = dapl_id + + namelen = LEN(name) + hdferr = h5dcreate_c(loc_id, name, namelen, type_id, space_id, & + lcpl_id_default, dcpl_id_default, dapl_id_default, dset_id) + + END SUBROUTINE h5dcreate_f + +! +!****s* H5D/h5dopen_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 - Returns 0 if successful and -1 if fails +! OPTIONAL PARAMETERS +! dapl_id - Dataset access property list +! +! 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 +! +! -Added 1.8 (optional) parameter dapl_id +! February, 2008, M. Scot Breitenfeld +! +! 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 + + INTEGER(HID_T) :: dapl_id_default + + 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 + +! +!****s* H5D/h5dclose_f +! +! NAME +! h5dclose_f +! +! PURPOSE +! Closes a dataset. +! +! INPUTS +! dset_id - dataset 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 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 + + hdferr = h5dclose_c(dset_id) + + END SUBROUTINE h5dclose_f + +! +!****s* H5D/h5dget_type_f +! +! NAME +! h5dget_type_f +! +! PURPOSE +! Returns an identifier for a copy of the datatype for a +! dataset. +! +! INPUTS +! dataset_id - dataset identifier +! OUTPUTS +! datatype_id - dataspace 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 +! +! NOTES +! +! 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 + + hdferr = h5dget_type_c (dataset_id, datatype_id) + END SUBROUTINE h5dget_type_f + +! +!****s* H5D/h5dset_extent +! +! NAME +! h5dset_extent (instead of obsolete name: h5dextend_f) +! +! PURPOSE +! Extends a dataset with unlimited dimension. +! +! INPUTS +! dataset_id - dataset identifier +! size - array containing the new magnitude of +! each dimension +! 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 +! +! Changed name from the now obsolete h5dextend_f +! to h5dset_extent_f. Provided interface to old name +! for backward compatability. -MSB- March 14, 2008 +! +! 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 + + hdferr = H5Dset_extent_c(dataset_id, size) + END SUBROUTINE h5dset_extent_f + +!****s* H5D/h5dget_create_plist_f +! +! NAME +! h5dget_create_plist_f +! +! PURPOSE +! Returns an identifier for a copy of the dataset creation +! property list for a dataset. +! +! INPUTS +! dataset_id - dataset identifier +! OUTPUTS +! plist_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 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_create_plist_c(dataset_id, plist_id) + END SUBROUTINE h5dget_create_plist_f + +! +!****s* H5D/h5dget_storage_size_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 - Returns 0 if successful and -1 if fails +! +! 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_storage_size_c(dataset_id, size) + END SUBROUTINE h5dget_storage_size_f + +! +!****s* H5D/h5dvlen_get_max_len_f +! +! NAME +! h5dvlen_get_max_len_f +! +! PURPOSE +! Returns maximum length of the VL array elements +! +! 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 +! +! AUTHOR +! Elena Pourmal +! October 15, 2002 +! +! 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(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 +!***** + 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 + + hdferr = h5dvlen_get_max_len_c(dataset_id, type_id, space_id, len) + END SUBROUTINE h5dvlen_get_max_len_f + +! +!****s* H5D/h5dget_space_status_f +! +! 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 - Returns 0 if successful and -1 if fails +! +! AUTHOR +! Elena Pourmal +! March 12, 2003 +! +! SOURCE + SUBROUTINE h5dget_space_status_f(dset_id, flag, hdferr) + IMPLICIT NONE + INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataspace identifier + INTEGER, INTENT(OUT) :: 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_space_status_c(dset_id, flag) + END SUBROUTINE h5dget_space_status_f + +! +!****s* H5D/h5dcreate_anon_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 - Returns 0 if successful and -1 if fails +! OPTIONAL PARAMETERS +! dcpl_id - Dataset creation property list identifier. +! dapl_id - Dataset access property list identifier. +! +! AUTHOR +! M. Scot Breitenfeld +! February 11, 2008 +! +! 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 + + dcpl_id_default = H5P_DEFAULT_F + dapl_id_default = H5P_DEFAULT_F + + IF(PRESENT(dcpl_id)) dcpl_id_default = dcpl_id + IF(PRESENT(dapl_id)) dapl_id_default = dapl_id + + hdferr = h5dcreate_anon_c(loc_id, type_id, space_id, dcpl_id_default, dapl_id_default, dset_id) + + END SUBROUTINE h5dcreate_anon_f + + 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), & + 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 + + 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_integer_c(dset_id, mem_type_id, mem_space_id_default, & + file_space_id_default, xfer_prp_default, & + buf, dims, len) + + END SUBROUTINE h5dwrite_vl_integer + + 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), & + DIMENSION(dims(1),dims(2)) :: buf + 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 + + 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) + + 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 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 + + 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 + + + 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_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 + + 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 + + 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 + + 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_real_c(dset_id, mem_type_id, mem_space_id_default, & + file_space_id_default, xfer_prp_default, & + buf, dims, len) + + END SUBROUTINE h5dread_vl_real + + 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(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 + + 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) + + END SUBROUTINE h5dwrite_vl_string + + 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 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 + + INTERFACE + 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:'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(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 + + 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 + +! +!****s* H5D/h5dget_space_f +! +! NAME +! h5dget_space_f +! +! PURPOSE +! Returns an identifier for a copy of the dataspace for a +! dataset. +! +! INPUTS +! dataset_id - dataset identifier +! OUTPUTS +! dataspace_id - dataspace 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 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 +!***** + 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 + + 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..7026ae3 --- /dev/null +++ b/fortran/src/H5Dff_F03.f90 @@ -0,0 +1,2389 @@ +!****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_F90.f90 but includes the +! Fortran 2003 functions and the interface listings. This file will be compiled +! instead of H5Dff_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 +! (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, INTRINSIC :: ISO_C_BINDING in the module header because it may +! conflict with the USE, INTRINSIC :: 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 +! +! *** IMPORTANT *** +! If you add a new H5D function you must add the function name to the +! Windows dll file 'hdf5_fortrandll.def.in' 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 ) BIND(C, NAME='h5dwrite_f_c') + USE H5GLOBAL + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr + 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) BIND(C, NAME='h5dread_f_c') + USE H5GLOBAL + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr + 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) BIND(C, NAME='h5dfill_c') + USE H5GLOBAL + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr + 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, 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 + 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, 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 + 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 + INTEGER(HSIZE_T) :: 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, 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 + 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, 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 + 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(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_integer_1 + + SUBROUTINE h5dwrite_integer_2(dset_id, mem_type_id, buf, dims, 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 + 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(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_integer_2 + + SUBROUTINE h5dwrite_integer_3(dset_id, mem_type_id, buf, dims, 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 + 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(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_integer_3 + + SUBROUTINE h5dwrite_integer_4(dset_id, mem_type_id, buf, dims, 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 + 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(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_integer_4 + + SUBROUTINE h5dwrite_integer_5(dset_id, mem_type_id, buf, dims, 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 + 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(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_integer_5 + + SUBROUTINE h5dwrite_integer_6(dset_id, mem_type_id, buf, dims, 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 + 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(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_integer_6 + + SUBROUTINE h5dwrite_integer_7(dset_id, mem_type_id, buf, dims, 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 + 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(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_integer_7 + + SUBROUTINE h5dwrite_char_scalar(dset_id, mem_type_id, buf, dims, 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 + 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, 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 + 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, 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 + 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, 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 + 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, 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 + 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, 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 + 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, 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 + 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, 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 + 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, 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 + 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, 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 + 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, 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 + 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(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_real_1 + + SUBROUTINE h5dwrite_real_2(dset_id, mem_type_id, buf, dims, 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 + 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(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_real_2 + + SUBROUTINE h5dwrite_real_3(dset_id, mem_type_id, buf, dims, 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 + 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(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_real_3 + + SUBROUTINE h5dwrite_real_4(dset_id, mem_type_id, buf, dims, 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 + 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(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_real_4 + + SUBROUTINE h5dwrite_real_5(dset_id, mem_type_id, buf, dims, 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 + 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(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_real_5 + + SUBROUTINE h5dwrite_real_6(dset_id, mem_type_id, buf, dims, 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 + 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(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_real_6 + + SUBROUTINE h5dwrite_real_7(dset_id, mem_type_id, buf, dims, 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 + 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(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_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. +! +! 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, 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 + 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, 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 + 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 + + INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf + INTEGER :: i + INTEGER(HSIZE_T) :: 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, 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 + 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, 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 + 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(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_integer_1 + + SUBROUTINE h5dread_integer_2(dset_id, mem_type_id, buf, dims, 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 + 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(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_integer_2 + + SUBROUTINE h5dread_integer_3(dset_id, mem_type_id, buf, dims, 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 + 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(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_integer_3 + + SUBROUTINE h5dread_integer_4(dset_id, mem_type_id, buf, dims, 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 + 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(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_integer_4 + + SUBROUTINE h5dread_integer_5(dset_id, mem_type_id, buf, dims, 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 + 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(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_integer_5 + + SUBROUTINE h5dread_integer_6(dset_id, mem_type_id, buf, dims, 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 + 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(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_integer_6 + + SUBROUTINE h5dread_integer_7(dset_id, mem_type_id, buf, dims, 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 + 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(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_integer_7 + + SUBROUTINE h5dread_char_scalar(dset_id, mem_type_id, buf, dims, 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 + 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 + + 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 + + CALL h5dread_char_scalar_fix(dset_id, mem_type_id, buf, LEN(buf), hdferr, & + mem_space_id_default, file_space_id_default, xfer_prp_default) + + END SUBROUTINE h5dread_char_scalar + + SUBROUTINE h5dread_char_scalar_fix(dset_id, mem_type_id, buf, buf_len, 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 + 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 + + TYPE(C_PTR) :: f_ptr + + f_ptr = C_LOC(buf(1:1)) + + hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id, & + file_space_id, xfer_prp, 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, 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 + 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, 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 + 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, 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 + 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, 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 + 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, 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 + 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, 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 + 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, 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 + 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, 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 + 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, 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 + 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(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_real_1 + + SUBROUTINE h5dread_real_2(dset_id, mem_type_id, buf, dims, 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 + 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(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_real_2 + + SUBROUTINE h5dread_real_3(dset_id, mem_type_id, buf, dims, 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 + 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(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_real_3 + + SUBROUTINE h5dread_real_4(dset_id, mem_type_id, buf, dims, 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 + 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(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_real_4 + + SUBROUTINE h5dread_real_5(dset_id, mem_type_id, buf, dims, 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 + 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(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_real_5 + + SUBROUTINE h5dread_real_6(dset_id, mem_type_id, buf, dims, 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 + 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(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_real_6 + + SUBROUTINE h5dread_real_7(dset_id, mem_type_id, buf, dims, 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 + 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(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_real_7 + +!****s* H5D (F03)/h5dwrite_f_F03 +! +! NAME +! h5dwrite_f_F03 +! +! PURPOSE +! Writes raw data from a dataset into a buffer. +! +! Inputs: +! dset_id - Identifier of the dataset to write to. +! mem_type_id - Identifier of the memory datatype. +! buf - Buffer with data to be written to the file. +! +! Outputs: +! hdferr - Returns 0 if successful and -1 if fails +! +! Optional parameters: +! mem_space_id - Identifier of the memory dataspace. +! file_space_id - Identifier of the dataset's dataspace in the file. +! xfer_prp - Identifier of a transfer property list for this I/O operation. +! +! AUTHOR +! M. Scot Breitenfeld +! September 17, 2011 +! +! Fortran2003 Interface: +!! SUBROUTINE h5dwrite_f(dset_id, mem_type_id, buf, hdferr, & +!! mem_space_id, file_space_id, xfer_prp) +!! INTEGER(HID_T), INTENT(IN) :: dset_id +!! INTEGER(HID_T), INTENT(IN) :: mem_type_id +!! TYPE(C_PTR) , INTENT(IN) :: buf +!! INTEGER , INTENT(OUT) :: hdferr +!! INTEGER(HID_T), INTENT(IN) , OPTIONAL :: mem_space_id +!! INTEGER(HID_T), INTENT(IN) , OPTIONAL :: file_space_id +!! INTEGER(HID_T), INTENT(IN) , OPTIONAL :: xfer_prp +!***** + 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(IN) :: 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 +!****s* H5D (F03)/h5dread_f_F03 +! +! NAME +! h5dread_f_F03 +! +! PURPOSE +! Reads raw data from a dataset into a buffer. +! +! Inputs: +! dset_id - Identifier of the dataset read from. +! mem_type_id - Identifier of the memory datatype. +! +! Outputs: +! buf - Buffer to receive data read from file. +! hdferr - Returns 0 if successful and -1 if fails +! +! Optional parameters: +! mem_space_id - Identifier of the memory dataspace. +! file_space_id - Identifier of the dataset's dataspace in the file. +! xfer_prp - Identifier of a transfer property list for this I/O operation. +! +! AUTHOR +! M. Scot Breitenfeld +! September 17, 2011 +! +! Fortran2003 Interface: +!! SUBROUTINE h5dread_f(dset_id, mem_type_id, buf, hdferr, & +!! mem_space_id, file_space_id, xfer_prp) +!! INTEGER(HID_T), INTENT(IN) :: dset_id +!! INTEGER(HID_T), INTENT(IN) :: mem_type_id +!! TYPE(C_PTR) , INTENT(INOUT) :: buf +!! INTEGER , INTENT(OUT) :: hdferr +!! INTEGER(HID_T), INTENT(IN) , OPTIONAL :: mem_space_id +!! INTEGER(HID_T), INTENT(IN) , OPTIONAL :: file_space_id +!! INTEGER(HID_T), INTENT(IN) , OPTIONAL :: xfer_prp +!***** + 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, INTRINSIC :: 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, INTRINSIC :: 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_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, INTRINSIC :: 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 (F03)/h5dvlen_reclaim_f +! NAME +! h5dvlen_reclaim_f +! +! 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 - Returns 0 if successful and -1 if fails +! +! AUTHOR +! M. Scot Breitenfeld +! January 11, 2011 +! +! Fortran2003 Interface: + SUBROUTINE h5dvlen_reclaim_f(type_id, space_id, plist_id, buf, hdferr) + USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR + IMPLICIT NONE + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER(HID_T), INTENT(IN) :: space_id + INTEGER(HID_T), INTENT(IN) :: plist_id + TYPE(C_PTR) , INTENT(INOUT) :: buf + INTEGER , INTENT(OUT) :: hdferr +!***** + + INTERFACE + INTEGER FUNCTION h5dvlen_reclaim_c(type_id, space_id, plist_id, buf) BIND(C, NAME='h5dvlen_reclaim_c') + USE H5GLOBAL + USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR + 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..66cfe62 --- /dev/null +++ b/fortran/src/H5Dff_F90.f90 @@ -0,0 +1,3004 @@ +!****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' 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(HSIZE_T) :: 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 + INTEGER(HSIZE_T) :: 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(HSIZE_T) :: 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 + INTEGER(HSIZE_T) :: 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 4b1d4c9..f5c0c45 100644 --- a/fortran/src/H5Ef.c +++ b/fortran/src/H5Ef.c @@ -1,6 +1,6 @@ /****h* H5Ef/H5Ef * PURPOSE - * This file contains C stubs for H5E Fortran APIs + * This file contains C stubs for H5E Fortran APIs * * COPYRIGHT * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -42,7 +42,7 @@ * SOURCE */ int_f -h5eclear_c(hid_t_f *estack_id ) +nh5eclear_c(hid_t_f *estack_id ) /******/ { int_f ret_value = 0; @@ -78,7 +78,7 @@ done: * SOURCE */ int_f -h5eprint_c1(_fcd name, int_f* namelen) +nh5eprint_c1(_fcd name, int_f* namelen) /******/ { FILE *file = NULL; @@ -124,7 +124,7 @@ done: * SOURCE */ int_f -h5eprint_c2(void) +nh5eprint_c2(void) /******/ { int_f ret_value = 0; @@ -159,7 +159,7 @@ done: * SOURCE */ int_f -h5eget_major_c(int_f* error_no, _fcd name, size_t_f* namelen) +nh5eget_major_c(int_f* error_no, _fcd name, size_t_f* namelen) /******/ { char *c_name = NULL; @@ -207,7 +207,7 @@ done: * SOURCE */ int_f -h5eget_minor_c(int_f* error_no, _fcd name, size_t_f* namelen) +nh5eget_minor_c(int_f* error_no, _fcd name, size_t_f* namelen) /******/ { char *c_name = NULL; @@ -235,25 +235,62 @@ done: return ret_value; } +/****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; + + if(*printflag == 1) + status = H5Eset_auto2(H5E_DEFAULT, (H5E_auto2_t)H5Eprint2, stderr); + else if(*printflag == 0) + status = H5Eset_auto2(H5E_DEFAULT, NULL, NULL); + if(status < 0) + HGOTO_DONE(FAIL) + +done: + return ret_value; +} + + /****if* H5Ef/h5eset_auto2_c * NAME - * h5eset_auto2_c + * h5eset_auto2_c * PURPOSE - * Calls H5Eset_auto2 + * 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. + * 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 + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * July 22, 2009 + * July 22, 2009 * SOURCE */ /* int_f */ -/* h5eset_auto2_c(hid_t_f *estack_id, H5E_auto2_t *func, void *client_data) */ +/* nh5eset_auto2_c(hid_t_f *estack_id, H5E_auto2_t *func, void *client_data) */ /* /\******\/ */ /* { */ /* int ret_val = -1; */ diff --git a/fortran/src/H5Eff.F90 b/fortran/src/H5Eff.f90 index a2efe61..7b56376 100644 --- a/fortran/src/H5Eff.F90 +++ b/fortran/src/H5Eff.f90 @@ -26,13 +26,7 @@ ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! ! 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' in the fortran/src directory. ! This is needed for Windows based operating systems. @@ -41,7 +35,6 @@ MODULE H5E - USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR, C_FUNPTR, C_CHAR USE H5GLOBAL !Turn on automatic printing of errors @@ -86,9 +79,11 @@ CONTAINS INTEGER(HID_T) :: estack_id_default INTERFACE - INTEGER FUNCTION h5eclear_c(estack_id_default) BIND(C,NAME='h5eclear_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -123,22 +118,29 @@ CONTAINS ! ! SOURCE SUBROUTINE h5eprint_f(hdferr, name) - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: name - INTEGER, INTENT(OUT) :: hdferr + CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: name ! File name + INTEGER, INTENT(OUT) :: hdferr ! Error code !***** INTEGER :: namelen INTERFACE - INTEGER FUNCTION h5eprint_c1(name, namelen) BIND(C,NAME='h5eprint_c1') - IMPORT :: C_CHAR - IMPLICIT NONE + INTEGER FUNCTION h5eprint_c1(name, namelen) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5EPRINT_C1'::h5eprint_c1 + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: name INTEGER :: namelen - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + CHARACTER(LEN=*),INTENT(IN) :: name END FUNCTION h5eprint_c1 END INTERFACE INTERFACE - INTEGER FUNCTION h5eprint_c2() BIND(C,NAME='h5eprint_c2') + INTEGER FUNCTION h5eprint_c2() + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5EPRINT_C2'::h5eprint_c2 + !DEC$ENDIF END FUNCTION h5eprint_c2 END INTERFACE namelen = LEN(NAME) @@ -184,12 +186,14 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code !***** INTERFACE - INTEGER FUNCTION h5eget_major_c(error_no, name, namelen) BIND(C,NAME='h5eget_major_c') - IMPORT :: C_CHAR - IMPORT :: SIZE_T - IMPLICIT NONE + INTEGER FUNCTION h5eget_major_c(error_no, name, namelen) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5EGET_MAJOR_C'::h5eget_major_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: name INTEGER :: error_no - CHARACTER(KIND=C_CHAR), DIMENSION(*) :: name + CHARACTER(LEN=*) :: name INTEGER(SIZE_T), INTENT(IN) :: namelen END FUNCTION h5eget_major_c END INTERFACE @@ -229,74 +233,19 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code !***** INTERFACE - INTEGER FUNCTION h5eget_minor_c(error_no, name) BIND(C,NAME='h5eget_minor_c') - IMPORT :: C_CHAR + INTEGER FUNCTION h5eget_minor_c(error_no, name) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5EGET_MINOR_C'::h5eget_minor_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: name INTEGER :: error_no - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: name + CHARACTER(LEN=*) :: name END FUNCTION h5eget_minor_c END INTERFACE hdferr = h5eget_minor_c(error_no, name) END SUBROUTINE h5eget_minor_f -!****s* H5E/h5eset_auto_f -! -! NAME -! h5eset_auto_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 -! -! Fortran2003 Interface: - SUBROUTINE h5eset_auto_f(printflag, hdferr, estack_id, func, client_data) - USE, INTRINSIC :: 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) & - BIND(C, NAME='h5eset_auto2_c') - IMPORT :: c_ptr, c_funptr - IMPORT :: HID_T - INTEGER :: printflag - INTEGER(HID_T) :: estack_id - 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 - END MODULE H5E diff --git a/fortran/src/H5Eff_F03.f90 b/fortran/src/H5Eff_F03.f90 new file mode 100644 index 0000000..ff8d11c --- /dev/null +++ b/fortran/src/H5Eff_F03.f90 @@ -0,0 +1,108 @@ +!****h* ROBODoc/H5E (F03) +! +! NAME +! H5E_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_F90.f90 but includes the +! Fortran 2003 functions and the interface listings. This file will be compiled +! instead of H5Eff_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 +! *** 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' 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 +! 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 +! +! Fortran2003 Interface: + SUBROUTINE h5eset_auto_f(printflag, hdferr, estack_id, func, client_data) + USE, INTRINSIC :: 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) & + BIND(C, NAME='h5eset_auto2_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, c_funptr + USE H5GLOBAL + 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 + +END MODULE H5E_PROVISIONAL diff --git a/fortran/src/H5Eff_F90.f90 b/fortran/src/H5Eff_F90.f90 new file mode 100644 index 0000000..158ec12 --- /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' 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 new file mode 100644 index 0000000..bbdb170 --- /dev/null +++ b/fortran/src/H5FDmpiof.c @@ -0,0 +1,258 @@ +/****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. * + * * + * 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. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * + ****** +*/ + +#include "H5f90.h" +#include <mpi.h> +#include "H5public.h" + + +/* Support for C to Fortran translation in MPI */ +#ifndef H5_HAVE_MPI_MULTI_LANG_Comm +#define MPI_Comm_c2f(comm) (int_f)(comm) +#define MPI_Comm_f2c(comm) (MPI_Comm)(comm) +#endif /*MPI Comm*/ +#ifndef H5_HAVE_MPI_MULTI_LANG_Info +#define MPI_Info_c2f(info) (int_f)(info) +#define MPI_Info_f2c(info) (MPI_Info)(info) +#endif /*MPI Info*/ + +/****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 + * comm - MPI communicator + * info - MPI info object + * RETURNS + * 0 on success, -1 on failure + * AUTHOR + * Elena Pourmal + * Thursday, October 26, 2000 + * 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; + herr_t ret; + MPI_Comm c_comm; + MPI_Info c_info; + c_comm = MPI_Comm_f2c(*comm); + c_info = MPI_Info_f2c(*info); + + /* + * Call H5Pset_mpi function. + */ + c_prp_id = *prp_id; + ret = H5Pset_fapl_mpio(c_prp_id, c_comm, c_info); + if (ret < 0) return ret_value; + ret_value = 0; + return ret_value; +} +/****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 + * AUTHOR + * Elena Pourmal + * Thursday, October 26, 2000 + * 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; + herr_t ret; + MPI_Comm c_comm; + MPI_Info c_info; + + /* + * Call H5Pget_mpi function. + */ + c_prp_id = *prp_id; + ret = H5Pget_fapl_mpio(c_prp_id, &c_comm, &c_info); + if (ret < 0) return ret_value; + *comm = (int_f) MPI_Comm_c2f(c_comm); + *info = (int_f) MPI_Info_c2f(c_info); + ret_value = 0; + return ret_value; +} +/****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 + * data_xfer_mode - transfer mode + * RETURNS + * 0 on success, -1 on failure + * AUTHOR + * Elena Pourmal + * Thursday, October 26, 2000 + * 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; + herr_t ret; + H5FD_mpio_xfer_t c_data_xfer_mode; +/* + switch (*data_xfer_mode) { + + case H5FD_MPIO_INDEPENDENT_F: + c_data_xfer_mode = H5FD_MPIO_INDEPENDENT; + break; + + case H5FD_MPIO_COLLECTIVE_F: + c_data_xfer_mode = H5FD_MPIO_COLLECTIVE; + break; + default: + return ret_value; + } +*/ + c_data_xfer_mode = (H5FD_mpio_xfer_t)*data_xfer_mode; + /* + * Call H5Pset_dxpl_mpio function. + */ + c_prp_id = *prp_id; + ret = H5Pset_dxpl_mpio(c_prp_id, c_data_xfer_mode); + if (ret < 0) return ret_value; + ret_value = 0; + return ret_value; +} + +/****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 + * data_xfer_mode - buffer to retrieve transfer mode + * RETURNS + * 0 on success, -1 on failure + * AUTHOR + * Elena Pourmal + * Thursday, June 15, 2000 + * 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; + herr_t ret; + H5FD_mpio_xfer_t c_data_xfer_mode; + + /* + * Call H5Pget_xfer function. + */ + c_prp_id = *prp_id; + ret = H5Pget_dxpl_mpio(c_prp_id, &c_data_xfer_mode); + if (ret < 0) return ret_value; + *data_xfer_mode = (int_f)c_data_xfer_mode; +/* + switch (c_data_xfer_mode) { + + case H5FD_MPIO_INDEPENDENT: + *data_xfer_mode = H5FD_MPIO_INDEPENDENT_F; + break; + + case H5FD_MPIO_COLLECTIVE: + *data_xfer_mode = H5FD_MPIO_COLLECTIVE_F; + break; + + default: + return ret_value; + } +*/ + ret_value = 0; + return ret_value; +} + +/****if* H5Pf/h5pget_mpio_actual_io_mode_c + * NAME + * h5pget_mpio_actual_io_mode_c + * PURPOSE + * Calls H5Pget_mpio_actual_io_mode + * + * INPUTS + * dxpl_id - Dataset transfer property list identifier. + * OUTPUTS + * actual_io_mode - The type of I/O performed by this process. + * + * RETURNS + * 0 on success, -1 on failure + * AUTHOR + * M. Scot Breitenfeld + * July 27, 2012 + * SOURCE +*/ +int_f +nh5pget_mpio_actual_io_mode_c(hid_t_f *dxpl_id, int_f *actual_io_mode) +/******/ +{ + int ret_value = -1; + H5D_mpio_actual_io_mode_t c_actual_io_mode; + + /* + * Call H5Pget_mpio_actual_io_mode_f function. + */ + if( (H5Pget_mpio_actual_io_mode((hid_t)*dxpl_id, &c_actual_io_mode)) <0 ) + return ret_value; /* error occurred */ + + *actual_io_mode =(int_f)c_actual_io_mode; + + ret_value = 0; + return ret_value; +} diff --git a/fortran/src/H5FDmpioff.f90 b/fortran/src/H5FDmpioff.f90 new file mode 100644 index 0000000..50a77d9 --- /dev/null +++ b/fortran/src/H5FDmpioff.f90 @@ -0,0 +1,212 @@ +!****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. * +! 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' 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* H5P/h5pget_mpio_actual_io_mode_f +! NAME +! h5pget_mpio_actual_io_mode_f +! +! PURPOSE +! Retrieves the type of I/O that HDF5 actually performed on the last +! parallel I/O call. This is not necessarily the type of I/O requested. +! +! INPUTS +! dxpl_id - Dataset transfer property list identifier. +! OUTPUTS +! actual_io_mode - The type of I/O performed by this process. +! hdferr - Returns 0 if successful and -1 if fails. +! +! AUTHOR +! M. Scot Breitenfeld +! July 27, 2012 +! +! HISTORY +! +! Fortran90 Interface: + SUBROUTINE h5pget_mpio_actual_io_mode_f(dxpl_id, actual_io_mode, hdferr) + IMPLICIT NONE + INTEGER(HID_T), INTENT(IN) :: dxpl_id + INTEGER , INTENT(OUT) :: actual_io_mode + INTEGER , INTENT(OUT) :: hdferr +!***** + INTERFACE + INTEGER FUNCTION h5pget_mpio_actual_io_mode_c(dxpl_id, actual_io_mode) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_MPIO_ACTUAL_IO_MODE_C'::h5pget_mpio_actual_io_mode_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: dxpl_id + INTEGER , INTENT(OUT) :: actual_io_mode + END FUNCTION h5pget_mpio_actual_io_mode_c + END INTERFACE + + actual_io_mode = -1 + + hdferr = h5pget_mpio_actual_io_mode_c(dxpl_id, actual_io_mode) + + END SUBROUTINE h5pget_mpio_actual_io_mode_f + +END MODULE H5FDMPIO diff --git a/fortran/src/H5Ff.c b/fortran/src/H5Ff.c index c1cdb91..1696672 100644 --- a/fortran/src/H5Ff.c +++ b/fortran/src/H5Ff.c @@ -1,6 +1,6 @@ /****h* H5Ff/H5Ff * PURPOSE - * This file contains C stubs for H5F Fortran APIs + * This file contains C stubs for H5F Fortran APIs * * COPYRIGHT * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -26,26 +26,26 @@ /****if* H5Ff/h5fcreate_c * NAME - * h5fcreate_c + * h5fcreate_c * PURPOSE - * Call H5Fcreate to create the file + * 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 + * 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 + * file_id - file identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Monday, July 26, 1999 + * Monday, July 26, 1999 * SOURCE */ int_f -h5fcreate_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) +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; @@ -95,23 +95,23 @@ h5fcreate_c(_fcd name, int_f *namelen, int_f *access_flags, hid_t_f* crt_prp, hi /****if* H5Ff/h5fflush_c * NAME - * h5fflush_c + * h5fflush_c * PURPOSE - * Call H5Fflush to flush the object + * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Friday, November 5, 1999 + * Friday, November 5, 1999 * SOURCE */ int_f -h5fflush_c (hid_t_f *object_id, int_f *scope) +nh5fflush_c (hid_t_f *object_id, int_f *scope) /******/ { int ret_value = -1; @@ -136,24 +136,24 @@ h5fflush_c (hid_t_f *object_id, int_f *scope) /****if* H5Ff/h5fmount_c * NAME - * h5fmount_c + * h5fmount_c * PURPOSE - * Call H5Fmount to mount the file + * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Monday, October 25, 1999 + * Monday, October 25, 1999 * HISTORY */ int_f -h5fmount_c (hid_t_f *loc_id, _fcd dsetname, int_f *namelen, hid_t_f *file_id, hid_t_f *acc_prp) +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; @@ -194,22 +194,22 @@ h5fmount_c (hid_t_f *loc_id, _fcd dsetname, int_f *namelen, hid_t_f *file_id, hi /****if* H5Ff/h5funmount_c * NAME - * h5funmount_c + * h5funmount_c * PURPOSE - * Call H5Funmount to unmount the file + * Call H5Funmount to unmount the file * INPUTS - * loc_id - Identifier for file or group - * dsetname - name of dataset - * namelen - dsetname length + * loc_id - Identifier for file or group + * dsetname - name of dataset + * namelen - dsetname length * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Monday, October 25, 1999 + * Monday, October 25, 1999 * SOURCE */ int_f -h5funmount_c (hid_t_f *loc_id, _fcd dsetname, int_f *namelen) +nh5funmount_c (hid_t_f *loc_id, _fcd dsetname, int_f *namelen) /******/ { int ret_value = -1; @@ -242,25 +242,25 @@ h5funmount_c (hid_t_f *loc_id, _fcd dsetname, int_f *namelen) /****if* H5Ff/h5fopen_c * NAME - * h5fopen_c + * h5fopen_c * PURPOSE - * Call H5Fopen to open the file + * 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 + * 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 + * file_id - file identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Tuesday, August 3, 1999 + * Tuesday, August 3, 1999 * SOURCE */ int_f -h5fopen_c (_fcd name, int_f *namelen, int_f *access_flags, hid_t_f *acc_prp, hid_t_f *file_id) +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; @@ -305,22 +305,22 @@ h5fopen_c (_fcd name, int_f *namelen, int_f *access_flags, hid_t_f *acc_prp, hid /****if* H5Ff/h5freopen_c * NAME - * h5freopen_c + * h5freopen_c * PURPOSE - * Call H5Freopen to open the file + * Call H5Freopen to open the file * INPUTS - * file_id1 - file identifier + * file_id1 - file identifier * OUTPUTS - * file_id2 - file identifier + * file_id2 - file identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Wednesday, November 3, 1999 + * Wednesday, November 3, 1999 * SOURCE */ int_f -h5freopen_c (hid_t_f *file_id1, hid_t_f *file_id2) +nh5freopen_c (hid_t_f *file_id1, hid_t_f *file_id2) /******/ { int ret_value = -1; @@ -338,22 +338,22 @@ h5freopen_c (hid_t_f *file_id1, hid_t_f *file_id2) /****if* H5Ff/h5fget_create_plist_c * NAME - * h5fget_create_plist_c + * h5fget_create_plist_c * PURPOSE - * Call H5Fget_create_plist to get the file creation property list + * Call H5Fget_create_plist to get the file creation property list * INPUTS - * file_id - file identifier + * file_id - file identifier * OUTPUTS - * prop_id - creation property list identifier + * prop_id - creation property list identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal, Xiangyang Su - * Wednesday, November 3, 1999 + * Wednesday, November 3, 1999 * SOURCE */ int_f -h5fget_create_plist_c (hid_t_f *file_id, hid_t_f *prop_id) +nh5fget_create_plist_c (hid_t_f *file_id, hid_t_f *prop_id) /******/ { int ret_value = -1; @@ -371,24 +371,24 @@ h5fget_create_plist_c (hid_t_f *file_id, hid_t_f *prop_id) /****if* H5Ff/h5fget_access_plist_c * NAME - * h5fget_access_plist_c + * h5fget_access_plist_c * PURPOSE - * Call H5Fget_access_plist to get the file access property list + * Call H5Fget_access_plist to get the file access property list * INPUTS - * file_id - file identifier + * file_id - file identifier * OUTPUTS - * access_id - access property list identifier + * access_id - access property list identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Monday, September 30, 2002 + * Monday, September 30, 2002 * HISTORY * * SOURCE */ int_f -h5fget_access_plist_c (hid_t_f *file_id, hid_t_f *access_id) +nh5fget_access_plist_c (hid_t_f *file_id, hid_t_f *access_id) /******/ { int ret_value = -1; @@ -406,26 +406,26 @@ h5fget_access_plist_c (hid_t_f *file_id, hid_t_f *access_id) /****if* H5Ff/h5fis_hdf5_c * NAME - * h5fis_hdf5_c + * h5fis_hdf5_c * PURPOSE - * Call H5Fis_hdf5 to determone if the file is an HDF5 file + * Call H5Fis_hdf5 to determone if the file is an HDF5 file * INPUTS - * name - name of the file - * namelen - name length + * name - name of the file + * namelen - name length * OUTPUTS - * flag - 0 if file is not HDF5 file , positive if a file - * is an HDF5 file, and negative on failure. + * 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 + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Tuesday, August 3, 1999 + * Tuesday, August 3, 1999 * HISTORY * * SOURCE */ int_f -h5fis_hdf5_c (_fcd name, int_f *namelen, int_f *flag) +nh5fis_hdf5_c (_fcd name, int_f *namelen, int_f *flag) /******/ { int ret_value = -1; @@ -452,23 +452,23 @@ h5fis_hdf5_c (_fcd name, int_f *namelen, int_f *flag) } /****if* H5Ff/h5fclose_c * NAME - * h5fclose_c + * h5fclose_c * PURPOSE - * Call H5Fclose to close the file + * Call H5Fclose to close the file * INPUTS - * file_id - identifier of the file to be closed + * file_id - identifier of the file to be closed * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Monday, July 26, 1999 + * Monday, July 26, 1999 * HISTORY * * SOURCE */ int_f -h5fclose_c ( hid_t_f *file_id ) +nh5fclose_c ( hid_t_f *file_id ) /******/ { int ret_value = 0; @@ -480,27 +480,27 @@ h5fclose_c ( hid_t_f *file_id ) } /****if* H5Ff/h5fget_obj_count_c * NAME - * h5fget_obj_count_c + * h5fget_obj_count_c * PURPOSE - * Call H5Fget_obj_count to get number of open objects within a file + * 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 + * file_id - identifier of the file to be closed + * obj_type - type of the object * RETURNS - * obj_count - number of objects - * 0 on success, -1 on failure + * obj_count - number of objects + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Monday, September 30, 2002 + * Monday, September 30, 2002 * HISTORY * - * Changed type of obj_count to size_t_f - * Thursday, September 25, 2008 + * Changed type of obj_count to size_t_f + * Thursday, September 25, 2008 * SOURCE */ int_f -h5fget_obj_count_c ( hid_t_f *file_id , int_f *obj_type, size_t_f * obj_count) +nh5fget_obj_count_c ( hid_t_f *file_id , int_f *obj_type, size_t_f * obj_count) /******/ { int ret_value = 0; @@ -525,7 +525,7 @@ h5fget_obj_count_c ( hid_t_f *file_id , int_f *obj_type, size_t_f * obj_count) * obj_type - type of the object * RETURNS * obj_ids - iarray of open objects identifiers - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal * Monday, September 30, 2002 @@ -538,7 +538,7 @@ h5fget_obj_count_c ( hid_t_f *file_id , int_f *obj_type, size_t_f * obj_count) * SOURCE */ int_f -h5fget_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) /******/ { @@ -569,22 +569,22 @@ h5fget_obj_ids_c ( hid_t_f *file_id , int_f *obj_type, size_t_f *max_objs, /****if* H5Ff/h5fget_freespace_c * NAME - * h5fget_freespace_c + * h5fget_freespace_c * PURPOSE - * Call H5Fget_freespace to get amount of free space within a file + * Call H5Fget_freespace to get amount of free space within a file * INPUTS - * file_id - identifier of the file to query + * file_id - identifier of the file to query * RETURNS - * free_space - amount of free space in file - * 0 on success, -1 on failure + * free_space - amount of free space in file + * 0 on success, -1 on failure * AUTHOR * Quincey Koziol - * Tuesday, October 7, 2003 + * Tuesday, October 7, 2003 * SOURCE */ int_f -h5fget_freespace_c ( hid_t_f *file_id , hssize_t_f *free_space) +nh5fget_freespace_c ( hid_t_f *file_id , hssize_t_f *free_space) /******/ { int ret_value = 0; @@ -599,24 +599,24 @@ h5fget_freespace_c ( hid_t_f *file_id , hssize_t_f *free_space) /****if* H5Ff/h5fget_name_c * NAME - * h5fget_name_c + * h5fget_name_c * PURPOSE - * Call H5Fget_name to get file's name + * Call H5Fget_name to get file's name * INPUTS - * obj_id - object identifier - * buflen -size of the buffer + * obj_id - object identifier + * buflen -size of the buffer * OUTPUTS - * buf - buffer to hold the name - * size - size of the file's name + * buf - buffer to hold the name + * size - size of the file's name * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Tuesday, July 6, 2004 + * Tuesday, July 6, 2004 * SOURCE */ int_f -h5fget_name_c(hid_t_f *obj_id, size_t_f *size, _fcd buf, size_t_f *buflen) +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 */ @@ -648,22 +648,22 @@ done: /****if* H5Ff/h5fget_filesize_c * NAME - * h5fget_filesize_c + * h5fget_filesize_c * PURPOSE - * Call H5Fget_filesize to get file size + * Call H5Fget_filesize to get file size * INPUTS - * file_id - file identifier + * file_id - file identifier * OUTPUTS - * size - size of the file + * size - size of the file * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, July 7, 2004 + * Wednesday, July 7, 2004 * SOURCE */ int_f -h5fget_filesize_c(hid_t_f *file_id, hsize_t_f *size) +nh5fget_filesize_c(hid_t_f *file_id, hsize_t_f *size) /******/ { hsize_t size_c; diff --git a/fortran/src/H5Fff.F90 b/fortran/src/H5Fff.f90 index c69ad82..faa1967 100644 --- a/fortran/src/H5Fff.F90 +++ b/fortran/src/H5Fff.f90 @@ -26,13 +26,7 @@ ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! ! NOTES -! _____ __ __ _____ ____ _____ _______ _ _ _______ -! |_ _| \/ | __ \ / __ \| __ \__ __|/\ | \ | |__ __| -! **** | | | \ / | |__) | | | | |__) | | | / \ | \| | | | **** -! **** | | | |\/| | ___/| | | | _ / | | / /\ \ | . ` | | | **** -! **** _| |_| | | | | | |__| | | \ \ | |/ ____ \| |\ | | | **** -! |_____|_| |_|_| \____/|_| \_\ |_/_/ \_\_| \_| |_| -! +! *** IMPORTANT *** ! If you add a new H5F function you must add the function name to the ! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory. ! This is needed for Windows based operating systems. @@ -40,9 +34,7 @@ !***** MODULE H5F - USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR, C_CHAR, C_NULL_PTR USE H5GLOBAL - IMPLICIT NONE CONTAINS !****s* H5F/h5fcreate_f @@ -96,10 +88,13 @@ CONTAINS INTERFACE INTEGER FUNCTION h5fcreate_c(name, namelen, access_flags, & - creation_prp_default, access_prp_default, file_id) BIND(C,NAME='h5fcreate_c') - IMPORT :: C_CHAR - IMPORT :: HID_T - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + 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 @@ -170,9 +165,11 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code !***** INTERFACE - INTEGER FUNCTION h5fflush_c(object_id, scope) BIND(C,NAME='h5fflush_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -227,12 +224,14 @@ CONTAINS INTERFACE INTEGER FUNCTION h5fmount_c(loc_id, name, namelen, & - child_id, access_prp_default) BIND(C,NAME='h5fmount_c') - IMPORT :: C_CHAR - IMPORT :: HID_T - IMPLICIT NONE + 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(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + CHARACTER(LEN=*), INTENT(IN) :: name INTEGER(HID_T), INTENT(IN) :: child_id INTEGER(HID_T), INTENT(IN) :: access_prp_default INTEGER :: namelen @@ -281,12 +280,14 @@ CONTAINS INTEGER :: namelen ! Length of the name character string INTERFACE - INTEGER FUNCTION h5funmount_c(loc_id, name, namelen) BIND(C,NAME='h5funmount_c') - IMPORT :: C_CHAR - IMPORT :: HID_T - IMPLICIT NONE + 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(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + CHARACTER(LEN=*), INTENT(IN) :: name INTEGER :: namelen END FUNCTION h5funmount_c END INTERFACE @@ -339,11 +340,13 @@ CONTAINS INTERFACE INTEGER FUNCTION h5fopen_c(name, namelen, access_flags, & - access_prp_default, file_id) BIND(C,NAME='h5fopen_c') - IMPORT :: C_CHAR - IMPORT :: HID_T - IMPLICIT NONE - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + 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 @@ -388,9 +391,11 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code !***** INTERFACE - INTEGER FUNCTION h5freopen_c(file_id, ret_file_id) BIND(C,NAME='h5freopen_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -431,9 +436,11 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code !***** INTERFACE - INTEGER FUNCTION h5fget_create_plist_c(file_id, prop_id) BIND(C,NAME='h5fget_create_plist_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -473,9 +480,11 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code !***** INTERFACE - INTEGER FUNCTION h5fget_access_plist_c(file_id, access_id) BIND(C,NAME='h5fget_access_plist_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -520,10 +529,13 @@ CONTAINS ! to define status value. INTERFACE - INTEGER FUNCTION h5fis_hdf5_c(name, namelen, flag) BIND(C,NAME='h5fis_hdf5_c') - IMPORT :: C_CHAR - IMPLICIT NONE - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + 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 @@ -563,9 +575,11 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code !***** INTERFACE - INTEGER FUNCTION h5fclose_c(file_id) BIND(C,NAME='h5fclose_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -604,18 +618,22 @@ CONTAINS ! SOURCE SUBROUTINE h5fget_obj_count_f(file_id, obj_type, obj_count, hdferr) IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: file_id - INTEGER, INTENT(IN) :: obj_type + INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier + INTEGER, INTENT(IN) :: obj_type ! Object type INTEGER(SIZE_T), INTENT(OUT) :: obj_count - INTEGER, INTENT(OUT) :: hdferr + ! Number of open objects + INTEGER, INTENT(OUT) :: hdferr ! Error code !***** INTERFACE - INTEGER FUNCTION h5fget_obj_count_c(file_id, obj_type, obj_count) BIND(C,NAME='h5fget_obj_count_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + 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 + 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 @@ -670,10 +688,11 @@ CONTAINS 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) & - BIND(C,NAME='h5fget_obj_ids_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + 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 @@ -713,10 +732,11 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code !***** INTERFACE - INTEGER FUNCTION h5fget_freespace_c(file_id, free_space) & - BIND(C,NAME='h5fget_freespace_c') - IMPORT :: HID_T, HSSIZE_T - IMPLICIT NONE + 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 @@ -756,15 +776,16 @@ CONTAINS INTEGER(SIZE_T) :: buflen INTERFACE - INTEGER FUNCTION h5fget_name_c(obj_id, size, buf, buflen) & - BIND(C,NAME='h5fget_name_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + 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(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: buf + CHARACTER(LEN=*), INTENT(OUT) :: buf END FUNCTION h5fget_name_c END INTERFACE buflen = LEN_TRIM(buf) @@ -797,10 +818,11 @@ CONTAINS ! -1 if fail !***** INTERFACE - INTEGER FUNCTION h5fget_filesize_c(file_id, size) & - BIND(C,NAME='h5fget_filesize_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE + 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 @@ -808,64 +830,5 @@ CONTAINS hdferr = h5fget_filesize_c(file_id, size) END SUBROUTINE h5fget_filesize_f -!****s* H5F (F03)/h5fget_file_image_f_F03 -! -! NAME -! h5fget_file_image_f -! -! PURPOSE -! Retrieves a copy of the image of an existing, open file. -! -! INPUTS -! file_id - Target file identifier. -! buf_ptr - Pointer to the buffer into which the image of the HDF5 file is to be copied. -! buf_len - Size of the supplied buffer. -! -! OUTPUTS -! hdferr - error code: -! 0 on success and -1 on failure -! OPTIONAL PARAMETERS -! buf_size - Returns the size in bytes of the buffer required to store the file image, -! no data will be copied. -! -! AUTHOR -! M. Scot Breitenfeld -! November 26, 2012 -! -! Fortran2003 Interface: - SUBROUTINE h5fget_file_image_f(file_id, buf_ptr, buf_len, hdferr, buf_size) - IMPLICIT NONE - INTEGER(HID_T) , INTENT(IN) :: file_id - TYPE(C_PTR) , INTENT(INOUT) :: buf_ptr - INTEGER(SIZE_T), INTENT(IN) :: buf_len - INTEGER , INTENT(OUT) :: hdferr - INTEGER(SIZE_T), INTENT(OUT) , OPTIONAL :: buf_size -!***** - - INTEGER(SIZE_T) :: buf_size_default - - INTERFACE - INTEGER FUNCTION h5fget_file_image_c(file_id, buf_ptr, buf_len, buf_size) BIND(C, NAME='h5fget_file_image_c') - IMPORT :: C_PTR - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE - INTEGER(HID_T) , INTENT(IN) :: file_id - TYPE(C_PTR) , VALUE :: buf_ptr - INTEGER(SIZE_T), INTENT(IN) :: buf_len - INTEGER(SIZE_T), INTENT(IN) :: buf_size - END FUNCTION h5fget_file_image_c - END INTERFACE - - IF(PRESENT(buf_size))THEN - buf_ptr = C_NULL_PTR - ENDIF - - hdferr = h5fget_file_image_c(file_id, buf_ptr, buf_len, buf_size_default) - - IF(PRESENT(buf_size))THEN - buf_size = buf_size_default - ENDIF - - END SUBROUTINE h5fget_file_image_f END MODULE H5F diff --git a/fortran/src/H5Fff_F03.f90 b/fortran/src/H5Fff_F03.f90 new file mode 100644 index 0000000..8544870 --- /dev/null +++ b/fortran/src/H5Fff_F03.f90 @@ -0,0 +1,99 @@ +!****h* ROBODoc/H5F (F03) +! +! NAME +! H5F_PROVISIONAL +! +! PURPOSE +! This file contains Fortran 2003 interfaces for H5F 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 H5T function you must add the function name to the +! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory. +! This is needed for Windows based operating systems. +! +!***** + +MODULE H5F_PROVISIONAL + + USE H5GLOBAL + USE, INTRINSIC :: ISO_C_BINDING + +CONTAINS +!****s* H5F (F03)/h5fget_file_image_f_F03 +! +! NAME +! h5fget_file_image_f +! +! PURPOSE +! Retrieves a copy of the image of an existing, open file. +! +! INPUTS +! file_id - Target file identifier. +! buf_ptr - Pointer to the buffer into which the image of the HDF5 file is to be copied. +! buf_len - Size of the supplied buffer. +! +! OUTPUTS +! hdferr - error code: +! 0 on success and -1 on failure +! OPTIONAL PARAMETERS +! buf_size - Returns the size in bytes of the buffer required to store the file image, +! no data will be copied. +! +! AUTHOR +! M. Scot Breitenfeld +! November 26, 2012 +! +! Fortran2003 Interface: + SUBROUTINE h5fget_file_image_f(file_id, buf_ptr, buf_len, hdferr, buf_size) + USE, INTRINSIC :: ISO_C_BINDING + IMPLICIT NONE + INTEGER(HID_T) , INTENT(IN) :: file_id + TYPE(C_PTR) , INTENT(INOUT) :: buf_ptr + INTEGER(SIZE_T), INTENT(IN) :: buf_len + INTEGER , INTENT(OUT) :: hdferr + INTEGER(SIZE_T), INTENT(OUT) , OPTIONAL :: buf_size +!***** + + INTEGER(SIZE_T) :: buf_size_default + + INTERFACE + INTEGER FUNCTION h5fget_file_image_c(file_id, buf_ptr, buf_len, buf_size) BIND(C, NAME='h5fget_file_image_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR + USE H5GLOBAL + INTEGER(HID_T) , INTENT(IN) :: file_id + TYPE(C_PTR) , VALUE :: buf_ptr + INTEGER(SIZE_T), INTENT(IN) :: buf_len + INTEGER(SIZE_T), INTENT(IN) :: buf_size + END FUNCTION h5fget_file_image_c + END INTERFACE + + IF(PRESENT(buf_size))THEN + buf_ptr = C_NULL_PTR + ENDIF + + hdferr = h5fget_file_image_c(file_id, buf_ptr, buf_len, buf_size_default) + + IF(PRESENT(buf_size))THEN + buf_size = buf_size_default + ENDIF + + END SUBROUTINE h5fget_file_image_f + +END MODULE H5F_PROVISIONAL diff --git a/fortran/src/H5Fff_F90.f90 b/fortran/src/H5Fff_F90.f90 new file mode 100644 index 0000000..b6e659b --- /dev/null +++ b/fortran/src/H5Fff_F90.f90 @@ -0,0 +1,43 @@ +!****h* ROBODoc/H5F (F90) +! +! NAME +! H5F_PROVISIONAL +! +! PURPOSE +! This file contains Fortran 90 interfaces for H5F functions. It +! containsthe same functions as H5Fff_F03.f90, when applicable, +! but excludes the Fortran 2003 functions and the interface listings. +! This file will be compiled instead of H5Fff_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 H5F function you must add the function name to the +! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory. +! This is needed for Windows based operating systems. +! +!***** + + +MODULE H5F_PROVISIONAL + + USE H5GLOBAL + IMPLICIT NONE + +END MODULE H5F_PROVISIONAL diff --git a/fortran/src/H5Gf.c b/fortran/src/H5Gf.c index b9c44bb..7f755b3 100644 --- a/fortran/src/H5Gf.c +++ b/fortran/src/H5Gf.c @@ -1,6 +1,6 @@ /****h* H5Gf/H5Gf * PURPOSE - * This file contains C stubs for H5G Fortran APIs + * This file contains C stubs for H5G Fortran APIs * * COPYRIGHT * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -26,29 +26,30 @@ /****if* H5Gf/h5gcreate_c * NAME - * h5gcreate_c + * h5gcreate_c * PURPOSE - * Call H5Gcreate to create a group + * 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 + * 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 + * grp_id - group identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, August 5, 1999 + * Wednesday, August 5, 1999 * HISTORY - * Changed to call H5Gcreate2 because H5Gcreate flip-flops and - * H5Gcreate1 can be compiled out of the library - * QAK - 2007/08/23 + * + * Changed to call H5Gcreate2 because H5Gcreate flip-flops and + * H5Gcreate1 can be compiled out of the library + * QAK - 2007/08/23 * SOURCE */ int_f -h5gcreate_c(hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *size_hint, +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 ) /******/ { @@ -97,26 +98,26 @@ DONE: /****if* H5Gf/h5gopen_c * NAME - * h5gopen_c + * h5gopen_c * PURPOSE - * Call H5Gopen to open a dataset + * 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 + * 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 + * grp_id - group identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, August 5, 1999 + * Wednesday, August 5, 1999 * * SOURCE */ int_f -h5gopen_c(hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *gapl_id, hid_t_f *grp_id) +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; @@ -147,28 +148,28 @@ DONE: /****if* H5Gf/h5gget_obj_info_idx_c * NAME - * h5gget_obj_info_idx_c + * h5gget_obj_info_idx_c * PURPOSE - * Call H5Gget_obj_info to return name and the type of group - * member + * Call H5Gget_obj_info to return name and the type of group + * member * INPUTS - * loc_id - file or group identifier - * name - name of the group - * namelen - name length - * idx - index of the group member + * 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 - * obj_namelen - length of the buffer - * obj_type - type of the object + * 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 + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, August 5, 1999 + * Wednesday, August 5, 1999 * SOURCE */ int_f -h5gget_obj_info_idx_c(hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *idx, +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) /******/ { @@ -206,7 +207,7 @@ h5gget_obj_info_idx_c(hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *idx, goto DONE; /* XXX: Switch from using H5Gget_objtype_by_idx() means that this routine won't - * work on non-hard links - QAK + * work on non-hard links - QAK */ *obj_type = oinfo.type; @@ -230,24 +231,24 @@ DONE: /****if* H5Gf/h5gn_members_c * NAME - * h5gn_members_c + * h5gn_members_c * PURPOSE - * Call H5Gget_info_by_name to find number of objects in the group + * 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 + * loc_id - file or group identifier + * name - name of the group + * namelen - name length * OUTPUTS - * nmemebers - number of members + * nmemebers - number of members * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, August 5, 1999 + * Wednesday, August 5, 1999 * SOURCE */ int_f -h5gn_members_c(hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *nmembers) +nh5gn_members_c(hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *nmembers) /******/ { char *c_name = NULL; @@ -275,21 +276,21 @@ DONE: /****if* H5Gf/h5gclose_c * NAME - * h5gclose_c + * h5gclose_c * PURPOSE - * Call H5Gclose to close the group + * Call H5Gclose to close the group * INPUTS - * grp_id - identifier of the group to be closed + * grp_id - identifier of the group to be closed * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, August 5, 1999 + * Wednesday, August 5, 1999 * SOURCE */ int_f -h5gclose_c(hid_t_f *grp_id) +nh5gclose_c(hid_t_f *grp_id) /******/ { int ret_value = 0; @@ -302,19 +303,19 @@ h5gclose_c(hid_t_f *grp_id) /****if* H5Gf/h5glink_c * NAME - * h5glink_c + * h5glink_c * PURPOSE - * Call H5Glink to link the specified type + * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Mingshi Chen * Friday, August 6, 1999 @@ -322,7 +323,7 @@ h5gclose_c(hid_t_f *grp_id) */ int_f -h5glink_c(hid_t_f *loc_id, int_f *link_type, _fcd current_name, +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) /******/ { @@ -384,32 +385,32 @@ DONE: /****if* H5Gf/h5glink2_c * NAME - * h5glink2_c + * h5glink2_c * PURPOSE - * Call H5Glink2 to link the specified type + * 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 - * current_namelen - current name lenghth - * link_type - link type - * new_loc_id - location identifier - * new_name - new name for the object releative to the new_loc_id - * location - * new_namelen - new_name lenghth + * 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 + * current_namelen - current name lenghth + * link_type - link type + * new_loc_id - location identifier + * 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 + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, September 25, 2002 + * Wednesday, September 25, 2002 * HISTORY * * SOURCE */ int_f -h5glink2_c(hid_t_f *cur_loc_id, _fcd cur_name, int_f *cur_namelen, +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) /******/ { @@ -469,14 +470,14 @@ DONE: /****if* H5Gf/h5gunlink_c * NAME - * h5gunlink_c + * h5gunlink_c * PURPOSE - * Call H5Gunlink to remove the specified name + * Call H5Gunlink to remove the specified name * INPUTS - * loc_id - identifier of file or group - * name - name of the object to unlink + * loc_id - identifier of file or group + * name - name of the object to unlink * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Mingshi Chen * Friday, August 6, 1999 @@ -484,7 +485,7 @@ DONE: */ int_f -h5gunlink_c(hid_t_f *loc_id, _fcd name, int_f *namelen) +nh5gunlink_c(hid_t_f *loc_id, _fcd name, int_f *namelen) /******/ { char *c_name = NULL; @@ -511,17 +512,17 @@ DONE: /****if* H5Gf/h5gmove_c * NAME - * h5gmove_c + * h5gmove_c * PURPOSE - * Call H5Gmove to rename an object within an HDF5 file + * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Mingshi Chen * Friday, August 6, 1999 @@ -529,7 +530,7 @@ DONE: */ int_f -h5gmove_c(hid_t_f *loc_id, _fcd src_name, int_f *src_namelen, _fcd dst_name, int_f*dst_namelen) +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; @@ -561,18 +562,18 @@ DONE: /****if* H5Gf/h5gmove2_c * NAME - * h5gmove2_c + * h5gmove2_c * PURPOSE - * Call H5Gmove2 to rename an object within an HDF5 file + * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal * Wednesday, September 25, 2002 @@ -581,7 +582,7 @@ DONE: */ int_f -h5gmove2_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) +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; @@ -613,18 +614,18 @@ DONE: /****if* H5Gf/h5gget_linkval_c * NAME - * h5gget_linkval_c + * h5gget_linkval_c * PURPOSE - * Call H5Gget_linkval to return the name of object + * 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 + * 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 + * value - name to be returned * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Mingshi Chen * Friday, August 6, 1999 @@ -632,7 +633,7 @@ DONE: */ int_f -h5gget_linkval_c(hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *size, +nh5gget_linkval_c(hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *size, _fcd value) /******/ { @@ -677,26 +678,26 @@ DONE: /****if* H5Gf/h5gset_comment_c * NAME - * h5gset_comment_c + * h5gset_comment_c * PURPOSE - * Call H5Oset_comment_by_name to set comments for the specified object + * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Mingshi Chen - * Friday, August 6, 1999 + * Friday, August 6, 1999 * HISTORY - * Elena Pourmal + * Elena Pourmal * SOURCE */ int_f -h5gset_comment_c(hid_t_f *loc_id, _fcd name, int_f *namelen, _fcd comment, +nh5gset_comment_c(hid_t_f *loc_id, _fcd name, int_f *namelen, _fcd comment, int_f *commentlen) /******/ { @@ -728,24 +729,24 @@ DONE: /****if* H5Gf/h5gget_comment_c * NAME - * h5gget_comment_c + * h5gget_comment_c * PURPOSE - * Call H5Oget_comment_by_name to retrieve comments for the specified object + * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Mingshi Chen - * Friday, August 6, 1999 + * Friday, August 6, 1999 * SOURCE */ int_f -h5gget_comment_c(hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *bufsize, +nh5gget_comment_c(hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *bufsize, _fcd comment) /******/ { @@ -790,26 +791,26 @@ DONE: /****if* H5Gf/h5gcreate_anon_c * NAME - * h5gcreate_anon_c + * h5gcreate_anon_c * PURPOSE - * Call H5Gcreate_anon + * Call H5Gcreate_anon * INPUTS * - * loc_id - Location identifier - * gcpl_id - Group creation property list identifier - * gapl_id - Group access property list identifier + * loc_id - Location identifier + * gcpl_id - Group creation property list identifier + * gapl_id - Group access property list identifier * * OUTPUTS - * grp_id - group identifier + * grp_id - group identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld * February 15, 2008 * SOURCE */ int_f -h5gcreate_anon_c(hid_t_f *loc_id, hid_t_f *gcpl_id, hid_t_f *gapl_id, hid_t_f *grp_id) +nh5gcreate_anon_c(hid_t_f *loc_id, hid_t_f *gcpl_id, hid_t_f *gapl_id, hid_t_f *grp_id) /******/ { @@ -824,24 +825,24 @@ done: /****if* H5Gf/h5gget_create_plist_c * NAME - * h5gget_create_plist_c + * h5gget_create_plist_c * PURPOSE - * Call H5Gget_create_plist + * Call H5Gget_create_plist * INPUTS * - * grp_id - group identifier + * grp_id - group identifier * * OUTPUTS - * gcpl_id - Group creation property list identifier + * gcpl_id - Group creation property list identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld * February 15, 2008 * SOURCE */ int_f -h5gget_create_plist_c(hid_t_f *grp_id, hid_t_f *gcpl_id ) +nh5gget_create_plist_c(hid_t_f *grp_id, hid_t_f *gcpl_id ) /******/ { int_f ret_value=0; /* Return value */ @@ -856,36 +857,36 @@ done: /****if* H5Gf/h5gget_info_c * NAME - * h5gget_info_c + * h5gget_info_c * PURPOSE - * Call H5Gget_info + * Call H5Gget_info * INPUTS - * group_id - Group identifier + * group_id - Group identifier * OUTPUTS * - * storage_type - Type of storage for links in 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 - * mounted - Whether group has a file mounted on it (0 = false, 1 = true) + * nlinks - Number of links in group + * 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 + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * February 15, 2008 + * February 15, 2008 * HISTORY * - * - Added 'mounted' paramater - * M. Scot Breitenfeld - * July 16, 2008 + * - Added 'mounted' paramater + * M. Scot Breitenfeld + * July 16, 2008 * SOURCE */ int_f -h5gget_info_c (hid_t_f *group_id, int_f *storage_type, int_f *nlinks, int_f *max_corder, int_f *mounted ) +nh5gget_info_c (hid_t_f *group_id, int_f *storage_type, int_f *nlinks, int_f *max_corder, int_f *mounted ) /******/ { @@ -913,43 +914,43 @@ done: /****if* H5Gf/h5gget_info_by_idx_c * NAME - * h5gget_info_by_idx_c + * h5gget_info_by_idx_c * PURPOSE - * Call H5Gget_info_by_idx + * 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 - * 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 - * lapl_id - Link access property list + * loc_id - File or group identifier + * group_name - Name of group containing group for which information is to be retrieved + * group_namelen - name length + * 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 + * lapl_id - Link access property list * OUTPUTS * - * storage_type - Type of storage for links in 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 - * mounted - Whether group has a file mounted on it (0 = false, 1 = true) + * nlinks - Number of links in group + * 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 + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * February 18, 2008 + * February 18, 2008 * HISTORY * - * - Added 'mounted' parameter - * M. Scot Breitenfeld - * July 16, 2008 + * - Added 'mounted' paramater + * M. Scot Breitenfeld + * July 16, 2008 * SOURCE */ int_f -h5gget_info_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, +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 ) /******/ @@ -986,40 +987,40 @@ h5gget_info_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, /****if* H5Gf/h5gget_info_by_name_c * NAME - * h5gget_info_by_name_c + * h5gget_info_by_name_c * PURPOSE - * Call H5Gget_info_by_name + * 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 + * 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 * - * storage_type - Type of storage for links in 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 - * mounted - Whether group has a file mounted on it (0 = false, 1 = true) + * nlinks - Number of links in group + * 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 + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * February 18, 2008 + * February 18, 2008 * HISTORY * - * - Added 'mounted' paramater - * M. Scot Breitenfeld - * July 16, 2008 + * - Added 'mounted' paramater + * M. Scot Breitenfeld + * July 16, 2008 * SOURCE */ int_f -h5gget_info_by_name_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, hid_t_f *lapl_id, +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) /******/ { diff --git a/fortran/src/H5Gff.F90 b/fortran/src/H5Gff.f90 index 2e002b5..d4d7496 100644 --- a/fortran/src/H5Gff.F90 +++ b/fortran/src/H5Gff.f90 @@ -26,13 +26,7 @@ ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! ! NOTES -! _____ __ __ _____ ____ _____ _______ _ _ _______ -! |_ _| \/ | __ \ / __ \| __ \__ __|/\ | \ | |__ __| -! **** | | | \ / | |__) | | | | |__) | | | / \ | \| | | | **** -! **** | | | |\/| | ___/| | | | _ / | | / /\ \ | . ` | | | **** -! **** _| |_| | | | | | |__| | | \ \ | |/ ____ \| |\ | | | **** -! |_____|_| |_|_| \____/|_| \_\ |_/_/ \_\_| \_| |_| -! +! *** IMPORTANT *** ! If you add a new H5G function you must add the function name to the ! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory. ! This is needed for Windows based operating systems. @@ -40,9 +34,16 @@ !***** MODULE H5G - USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_CHAR USE H5GLOBAL +! PRIVATE :: h5gcreate1_f +! PRIVATE :: h5gcreate2_f + +! INTERFACE h5gcreate_f +! MODULE PROCEDURE h5gcreate1_f +! MODULE PROCEDURE h5gcreate2_f +! END INTERFACE + CONTAINS !****s* H5G/h5gcreate_f @@ -107,12 +108,14 @@ CONTAINS INTERFACE INTEGER FUNCTION h5gcreate_c(loc_id, name, namelen, & - size_hint_default, grp_id, lcpl_id_default, gcpl_id_default, gapl_id_default) & - BIND(C,NAME='h5gcreate_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T + size_hint_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 + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: name INTEGER(HID_T), INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + CHARACTER(LEN=*), INTENT(IN) :: name INTEGER :: namelen INTEGER(SIZE_T) :: size_hint_default INTEGER(HID_T), INTENT(OUT) :: grp_id @@ -173,7 +176,7 @@ CONTAINS !!$ SUBROUTINE h5gcreate2_f(name, loc_id, grp_id, hdferr, & !!$ lcpl_id, gcpl_id, gapl_id) !!$ IMPLICIT NONE -!!$ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name ! Name of the group +!!$ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the group !!$ INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier !!$ INTEGER, INTENT(OUT) :: hdferr ! Error code !!$ INTEGER(HID_T), INTENT(OUT) :: grp_id ! Group identifier @@ -202,7 +205,7 @@ CONTAINS !!$ !DEC$ENDIF !!$ !DEC$ATTRIBUTES reference :: name !!$ INTEGER(HID_T), INTENT(IN) :: loc_id -!!$ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name +!!$ CHARACTER(LEN=*), INTENT(IN) :: name !!$ INTEGER :: namelen !!$ INTEGER(SIZE_T) :: OBJECT_NAME ! LEN_DEFAULT @@ -275,12 +278,14 @@ CONTAINS INTEGER :: namelen ! Length of the name character string INTERFACE - INTEGER FUNCTION h5gopen_c(loc_id, name, namelen, gapl_id_default, grp_id) & - BIND(C,NAME='h5gopen_c') - IMPORT :: C_CHAR - IMPORT :: HID_T + INTEGER FUNCTION h5gopen_c(loc_id, name, namelen, gapl_id_default, grp_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GOPEN_C'::h5gopen_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: name INTEGER(HID_T), INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + CHARACTER(LEN=*), INTENT(IN) :: name INTEGER :: namelen INTEGER(HID_T), INTENT(IN) :: gapl_id_default INTEGER(HID_T), INTENT(OUT) :: grp_id @@ -323,8 +328,11 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code !***** INTERFACE - INTEGER FUNCTION h5gclose_c(grp_id) BIND(C,NAME='h5gclose_c') - IMPORT :: HID_T + 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 @@ -376,14 +384,18 @@ CONTAINS INTERFACE INTEGER FUNCTION h5gget_obj_info_idx_c(loc_id, name, & namelen, idx, & - obj_name, obj_namelen, obj_type) BIND(C,NAME='h5gget_obj_info_idx_c') - IMPORT :: C_CHAR - IMPORT :: HID_T + 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(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + CHARACTER(LEN=*), INTENT(IN) :: name INTEGER :: namelen INTEGER, INTENT(IN) :: idx - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: obj_name + CHARACTER(LEN=*), INTENT(OUT) :: obj_name INTEGER :: obj_namelen INTEGER, INTENT(OUT) :: obj_type END FUNCTION h5gget_obj_info_idx_c @@ -432,15 +444,17 @@ CONTAINS INTEGER :: namelen ! Length of the name character string INTERFACE - INTEGER FUNCTION h5gn_members_c(loc_id, name, namelen, nmembers) & - BIND(C,NAME='h5gn_members_c') - IMPORT :: C_CHAR - IMPORT :: HID_T - INTEGER(HID_T), INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name - INTEGER :: namelen - INTEGER, INTENT(OUT) :: nmembers - END FUNCTION h5gn_members_c + INTEGER FUNCTION h5gn_members_c(loc_id, name, namelen, nmembers) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GN_MEMBERS_C'::h5gn_members_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: name + INTEGER(HID_T), INTENT(IN) :: loc_id + CHARACTER(LEN=*), INTENT(IN) :: name + INTEGER :: namelen + INTEGER, INTENT(OUT) :: nmembers + END FUNCTION h5gn_members_c END INTERFACE namelen = LEN(name) @@ -498,15 +512,19 @@ CONTAINS INTERFACE INTEGER FUNCTION h5glink_c(loc_id, link_type, current_name, & - current_namelen, new_name, new_namelen) & - BIND(C,NAME='h5glink_c') - IMPORT :: C_CHAR - IMPORT :: HID_T + current_namelen, new_name, new_namelen) + + 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(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: current_name + CHARACTER(LEN=*), INTENT(IN) :: current_name INTEGER :: current_namelen - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: new_name + CHARACTER(LEN=*), INTENT(IN) :: new_name INTEGER :: new_namelen END FUNCTION h5glink_c END INTERFACE @@ -567,14 +585,19 @@ CONTAINS INTERFACE INTEGER FUNCTION h5glink2_c(cur_loc_id, cur_name, cur_namelen, & link_type, new_loc_id, & - new_name, new_namelen) BIND(C,NAME='h5glink2_c') - IMPORT :: C_CHAR - IMPORT :: HID_T + 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(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: cur_name - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: new_name + CHARACTER(LEN=*), INTENT(IN) :: cur_name + CHARACTER(LEN=*), INTENT(IN) :: new_name INTEGER :: cur_namelen INTEGER :: new_namelen END FUNCTION h5glink2_c @@ -598,10 +621,10 @@ CONTAINS ! points ! ! INPUTS -! loc_id - location identifier -! name - name of the object to unlink +! loc_id - location identifier +! name - name of the object to unlink ! OUTPUTS -! hdferr - Returns 0 if successful and -1 if fails +! hdferr - Returns 0 if successful and -1 if fails ! ! AUTHOR ! Elena Pourmal @@ -622,11 +645,14 @@ CONTAINS INTEGER :: namelen ! Lenghth of the name character string INTERFACE - INTEGER FUNCTION h5gunlink_c(loc_id, name, namelen) BIND(C,NAME='h5gunlink_c') - IMPORT :: C_CHAR - IMPORT :: HID_T + 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(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + CHARACTER(LEN=*), INTENT(IN) :: name INTEGER :: namelen END FUNCTION h5gunlink_c END INTERFACE @@ -672,13 +698,17 @@ CONTAINS INTEGER :: new_namelen ! Lenghth of the new_name string INTERFACE - INTEGER FUNCTION h5gmove_c(loc_id, name, namelen, new_name, new_namelen) BIND(C,NAME='h5gmove_c') - IMPORT :: C_CHAR - IMPORT :: HID_T + 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(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + CHARACTER(LEN=*), INTENT(IN) :: name INTEGER :: namelen - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: new_name + CHARACTER(LEN=*), INTENT(IN) :: new_name INTEGER :: new_namelen END FUNCTION h5gmove_c END INTERFACE @@ -721,13 +751,17 @@ CONTAINS INTERFACE INTEGER FUNCTION h5gmove2_c(src_loc_id, src_name, src_namelen, & - dst_loc_id, dst_name, dst_namelen) BIND(C,NAME='h5gmove2_c') - IMPORT :: C_CHAR - IMPORT :: HID_T + 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(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: src_name - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: dst_name + CHARACTER(LEN=*), INTENT(IN) :: src_name + CHARACTER(LEN=*), INTENT(IN) :: dst_name INTEGER :: src_namelen INTEGER :: dst_namelen END FUNCTION h5gmove2_c @@ -781,14 +815,18 @@ CONTAINS INTEGER :: namelen ! Lenghth of the current_name string INTERFACE - INTEGER FUNCTION h5gget_linkval_c(loc_id, name, namelen, size, buffer) BIND(C,NAME='h5gget_linkval_c') - IMPORT :: C_CHAR, SIZE_T - IMPORT :: HID_T + 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(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + CHARACTER(LEN=*), INTENT(IN) :: name INTEGER :: namelen INTEGER(SIZE_T), INTENT(IN) :: size - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: buffer + CHARACTER(LEN=*), INTENT(OUT) :: buffer END FUNCTION h5gget_linkval_c END INTERFACE @@ -834,13 +872,17 @@ CONTAINS INTERFACE INTEGER FUNCTION h5gset_comment_c(loc_id, name, namelen, & - comment, commentlen) BIND(C,NAME='h5gset_comment_c') - IMPORT :: C_CHAR - IMPORT :: HID_T + 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(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + CHARACTER(LEN=*), INTENT(IN) :: name INTEGER :: namelen - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: comment + CHARACTER(LEN=*), INTENT(IN) :: comment INTEGER :: commentlen END FUNCTION h5gset_comment_c END INTERFACE @@ -888,14 +930,17 @@ CONTAINS INTEGER :: namelen ! Length of the current_name string INTERFACE - INTEGER FUNCTION h5gget_comment_c(loc_id, name, namelen, size, buffer) BIND(C,NAME='h5gget_comment_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T + 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(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + CHARACTER(LEN=*), INTENT(IN) :: name INTEGER :: namelen INTEGER(SIZE_T), INTENT(IN) :: size - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: buffer + CHARACTER(LEN=*), INTENT(OUT) :: buffer END FUNCTION h5gget_comment_c END INTERFACE @@ -938,9 +983,11 @@ CONTAINS INTEGER(HID_T) :: gapl_id_default INTERFACE - INTEGER FUNCTION h5gcreate_anon_c(loc_id, gcpl_id_default, gapl_id_default, grp_id) & - BIND(C,NAME='h5gcreate_anon_c') - IMPORT :: HID_T + INTEGER FUNCTION h5gcreate_anon_c(loc_id, gcpl_id_default, gapl_id_default, grp_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GCREATE_ANON_C'::h5gcreate_anon_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier INTEGER(HID_T), INTENT(IN) :: gcpl_id_default ! Property list for group creation INTEGER(HID_T), INTENT(IN) :: gapl_id_default ! Property list for group access @@ -983,8 +1030,11 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code !***** INTERFACE - INTEGER FUNCTION h5gget_create_plist_c(grp_id, gcpl_id ) BIND(C,NAME='h5gget_create_plist_c') - IMPORT :: HID_T + INTEGER FUNCTION h5gget_create_plist_c(grp_id, gcpl_id ) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GGET_CREATE_PLIST_C'::h5gget_create_plist_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: grp_id INTEGER(HID_T), INTENT(OUT) :: gcpl_id END FUNCTION h5gget_create_plist_c @@ -1048,9 +1098,11 @@ CONTAINS INTEGER :: mounted_c INTERFACE - INTEGER FUNCTION h5gget_info_c(group_id, storage_type, nlinks, max_corder, mounted_c) & - BIND(C,NAME='h5gget_info_c') - IMPORT :: HID_T + INTEGER FUNCTION h5gget_info_c(group_id, storage_type, nlinks, max_corder, mounted_c) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GGET_INFO_C'::h5gget_info_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: group_id INTEGER, INTENT(OUT) :: storage_type INTEGER, INTENT(OUT) :: nlinks @@ -1137,11 +1189,15 @@ CONTAINS 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) BIND(C,NAME='h5gget_info_by_idx_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T + storage_type, nlinks, max_corder, mounted_c) + USE H5GLOBAL + !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(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: group_name + CHARACTER(LEN=*), INTENT(IN) :: group_name INTEGER, INTENT(IN) :: index_type INTEGER, INTENT(IN) :: order INTEGER(HSIZE_T), INTENT(IN) :: n @@ -1235,11 +1291,14 @@ CONTAINS 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) BIND(C,NAME='h5gget_info_by_name_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T + storage_type, nlinks, max_corder, mounted_c) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GGET_INFO_BY_NAME_C'::h5gget_info_by_name_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: group_name INTEGER(HID_T), INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: group_name + CHARACTER(LEN=*), INTENT(IN) :: group_name INTEGER(HID_T), INTENT(IN) :: lapl_id_default INTEGER, INTENT(OUT) :: storage_type INTEGER, INTENT(OUT) :: nlinks diff --git a/fortran/src/H5If.c b/fortran/src/H5If.c index fdab0b6..55868dd 100644 --- a/fortran/src/H5If.c +++ b/fortran/src/H5If.c @@ -1,6 +1,6 @@ /****h* H5If/H5If * PURPOSE - * This file contains C stubs for H5I Fortran APIs + * This file contains C stubs for H5I Fortran APIs * * COPYRIGHT * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -25,15 +25,15 @@ /****if* H5If/h5iget_type_c * NAME - * h5iget_type_c + * h5iget_type_c * PURPOSE - * Call H5Iget_type to get the type of an object + * Call H5Iget_type to get the type of an object * INPUTS - * obj_id - object identifier + * obj_id - object identifier * OUTPUTS - * type - object type + * type - object type * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su * Thursday, March 24, 2000 @@ -42,7 +42,7 @@ * SOURCE */ int_f -h5iget_type_c (hid_t_f *obj_id, int_f *type) +nh5iget_type_c (hid_t_f *obj_id, int_f *type) /******/ { int ret_value = -1; @@ -61,29 +61,29 @@ h5iget_type_c (hid_t_f *obj_id, int_f *type) } /****if* H5If/h5iget_name_c * NAME - * h5iget_name_c + * h5iget_name_c * PURPOSE - * Call H5Iget_name to get object's name + * Call H5Iget_name to get object's name * INPUTS - * obj_id - object identifier - * buf_size - size of the buffer + * obj_id - object identifier + * buf_size - size of the buffer * OUTPUTS - * buf - buffer to hold the name + * buf - buffer to hold the name * RETURNS - * length of the name on success, -1 on failure + * length of the name on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, March 12, 2003 + * Wednesday, March 12, 2003 * 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. + * 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. Scot Breitenfeld, April 21, 2008 * SOURCE */ int_f -h5iget_name_c(hid_t_f *obj_id, _fcd buf, size_t_f *buf_size, size_t_f *name_size) +nh5iget_name_c(hid_t_f *obj_id, _fcd buf, size_t_f *buf_size, size_t_f *name_size) /******/ { int ret_value = -1; @@ -120,22 +120,22 @@ DONE: /****if* H5If/h5iinc_ref_c * NAME - * h5iinc_ref_c + * h5iinc_ref_c * PURPOSE - * Call H5Iinc_ref to increment object's reference count + * Call H5Iinc_ref to increment object's reference count * INPUTS - * obj_id - object identifier + * obj_id - object identifier * OUTPUTS - * ref_count - Reference count of ID + * ref_count - Reference count of ID * RETURNS - * current reference count on success, -1 on failure + * current reference count on success, -1 on failure * AUTHOR * Quincey Koziol * Tuesday, December 9, 2003 * SOURCE */ int_f -h5iinc_ref_c(hid_t_f *obj_id, int_f *ref_count) +nh5iinc_ref_c(hid_t_f *obj_id, int_f *ref_count) /******/ { int ret_value; @@ -156,22 +156,22 @@ done: /****if* H5If/h5idec_ref_c * NAME - * h5idec_ref_c + * h5idec_ref_c * PURPOSE - * Call H5Idec_ref to decrement object's reference count + * Call H5Idec_ref to decrement object's reference count * INPUTS - * obj_id - object identifier + * obj_id - object identifier * OUTPUTS - * ref_count - Reference count of ID + * ref_count - Reference count of ID * RETURNS - * current reference count on success, -1 on failure + * current reference count on success, -1 on failure * AUTHOR * Quincey Koziol - * Tuesday, December 9, 2003 + * Tuesday, December 9, 2003 * SOURCE */ int_f -h5idec_ref_c(hid_t_f *obj_id, int_f *ref_count) +nh5idec_ref_c(hid_t_f *obj_id, int_f *ref_count) /******/ { int ret_value; @@ -192,15 +192,15 @@ done: /****if* H5If/h5iget_ref_c * NAME - * h5iget_ref_c + * h5iget_ref_c * PURPOSE - * Call H5Iget_ref to retrieve object's reference count + * Call H5Iget_ref to retrieve object's reference count * INPUTS - * obj_id - object identifier + * obj_id - object identifier * OUTPUTS - * ref_count - Reference count of ID + * ref_count - Reference count of ID * RETURNS - * current reference count on success, -1 on failure + * current reference count on success, -1 on failure * AUTHOR * Quincey Koziol * Tuesday, December 9, 2003 @@ -208,7 +208,7 @@ done: * SOURCE */ int_f -h5iget_ref_c(hid_t_f *obj_id, int_f *ref_count) +nh5iget_ref_c(hid_t_f *obj_id, int_f *ref_count) /******/ { int ret_value; @@ -229,15 +229,15 @@ done: /****if* H5If/h5iget_file_id_c * NAME - * h5iget_file_id_c + * h5iget_file_id_c * PURPOSE - * Call H5Iget_file_id to obtain file identifier from object identifier + * Call H5Iget_file_id to obtain file identifier from object identifier * INPUTS - * obj_id - object identifier + * obj_id - object identifier * OUTPUTS - * file_id - file identifier + * file_id - file identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal * Tuesday, August 24, 2004 @@ -245,7 +245,7 @@ done: * SOURCE */ int_f -h5iget_file_id_c(hid_t_f *obj_id, hid_t_f *file_id) +nh5iget_file_id_c(hid_t_f *obj_id, hid_t_f *file_id) /******/ { int ret_value; @@ -266,17 +266,17 @@ done: } /*---------------------------------------------------------------------------- - * Name: h5iis_valid_c - * Purpose: Calls H5Iis_valid - * Inputs: obj_id - object identifier - * Outputs: 0 = false, 1 = true - * Returns: 0 on success, -1 on failure - * Programmer: Elena Pourmal - * Tuesday, August 24, 2004 - * Modifications: + * Name: h5iis_valid_c + * Purpose: Calls H5Iis_valid + * Inputs: obj_id - object identifier + * Outputs: 0 = false, 1 = true + * Returns: 0 on success, -1 on failure + * Programmer: Elena Pourmal + * Tuesday, August 24, 2004 + * Modifications: *---------------------------------------------------------------------------*/ int_f -h5iis_valid_c(hid_t_f *obj_id, int_f *c_valid) +nh5iis_valid_c(hid_t_f *obj_id, int_f *c_valid) { int ret_value; htri_t c_ret_value; diff --git a/fortran/src/H5Iff.F90 b/fortran/src/H5Iff.f90 index c91a8aa..7c9a843 100644 --- a/fortran/src/H5Iff.F90 +++ b/fortran/src/H5Iff.f90 @@ -4,7 +4,7 @@ ! MODULE H5I ! ! FILE -! fortran/src/H5Iff.F90 +! fortran/src/H5Iff.f90 ! ! PURPOSE ! This file contains Fortran interfaces for H5I functions. @@ -26,13 +26,7 @@ ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! ! NOTES -! _____ __ __ _____ ____ _____ _______ _ _ _______ -! |_ _| \/ | __ \ / __ \| __ \__ __|/\ | \ | |__ __| -! **** | | | \ / | |__) | | | | |__) | | | / \ | \| | | | **** -! **** | | | |\/| | ___/| | | | _ / | | / /\ \ | . ` | | | **** -! **** _| |_| | | | | | |__| | | \ \ | |/ ____ \| |\ | | | **** -! |_____|_| |_|_| \____/|_| \_\ |_/_/ \_\_| \_| |_| -! +! *** IMPORTANT *** ! If you add a new H5I function you must add the function name to the ! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory. ! This is needed for Windows based operating systems. @@ -40,8 +34,7 @@ !***** MODULE H5I - - USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR, C_CHAR + USE H5GLOBAL CONTAINS @@ -94,9 +87,11 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code !***** INTERFACE - INTEGER FUNCTION h5iget_type_c(obj_id, TYPE) BIND(C, NAME='h5iget_type_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -138,12 +133,14 @@ CONTAINS ! -1 if fail !***** INTERFACE - INTEGER FUNCTION h5iget_name_c(obj_id, buf, buf_size, name_size) BIND(C, NAME='h5iget_name_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + 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(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: buf + CHARACTER(LEN=*), INTENT(OUT) :: buf INTEGER(SIZE_T), INTENT(IN) :: buf_size INTEGER(SIZE_T), INTENT(OUT) :: name_size END FUNCTION h5iget_name_c @@ -179,9 +176,11 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code !***** INTERFACE - INTEGER FUNCTION h5iinc_ref_c(obj_id, ref_count) BIND(C, NAME='h5iinc_ref_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -216,9 +215,11 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code !***** INTERFACE - INTEGER FUNCTION h5idec_ref_c(obj_id, ref_count) BIND(C, NAME='h5idec_ref_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -253,9 +254,11 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code !***** INTERFACE - INTEGER FUNCTION h5iget_ref_c(obj_id, ref_count) BIND(C, NAME='h5iget_ref_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -289,9 +292,11 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code !***** INTERFACE - INTEGER FUNCTION h5iget_file_id_c(obj_id, file_id) BIND(C, NAME='h5iget_file_id_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -327,9 +332,11 @@ CONTAINS INTEGER :: c_valid ! 0 = .false, 1 = .true. INTERFACE - INTEGER FUNCTION h5iis_valid_c(id, c_valid) BIND(C, NAME='h5iis_valid_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 diff --git a/fortran/src/H5Lf.c b/fortran/src/H5Lf.c index 0d3aac2..6523ab4 100644 --- a/fortran/src/H5Lf.c +++ b/fortran/src/H5Lf.c @@ -1,6 +1,6 @@ /****h* H5Lf/H5Lf * PURPOSE - * This file contains C stubs for H5L Fortran APIs + * This file contains C stubs for H5L Fortran APIs * * COPYRIGHT * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -26,34 +26,34 @@ /****if* H5Lf/h5lcopy_c * NAME - * h5lcopy_c + * h5lcopy_c * PURPOSE - * Call H5Lcopy + * 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 - * dest_loc_id - Location identifier specifying the destination of the copy - * dest_name - Name to be assigned to the NEW copy - * dest_namelen - Length of the name - * loc_id - Identifier of the file or group containing the object - * name - Name of the link to delete - * lcpl_id - Link creation property list identifier - * lapl_id - Link access property list identifier + * src_loc_id - Location identifier of the source link + * src_name - Name of the link to be copied + * src_namelen - length of the name + * dest_loc_id - Location identifier specifying the destination of the copy + * dest_name - Name to be assigned to the NEW copy + * dest_namelen - Length of the name + * loc_id - Identifier of the file or group containing the object + * name - Name of the link to delete + * lcpl_id - Link creation property list identifier + * lapl_id - Link access property list identifier * * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * January, 2008 + * January, 2008 * HISTORY * * SOURCE */ int_f -h5lcopy_c(hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_namelen, hid_t_f *dest_loc_id, +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) /******/ @@ -88,21 +88,21 @@ done: /****if* H5Lf/h5lcreate_external_c * NAME - * h5lcreate_external_c + * h5lcreate_external_c * PURPOSE - * Call H5Lcreate_external_c + * 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. + * 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. - * lcpl_id - Link creation property list identifier. - * lapl_id - Link access property list identifier. + * link_name - The name of the new link. + * lcpl_id - Link creation property list identifier. + * lapl_id - Link access property list identifier. * * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld * February 29, 2008 @@ -110,7 +110,7 @@ done: */ int_f -h5lcreate_external_c(_fcd file_name, size_t_f *file_namelen, _fcd obj_name, size_t_f *obj_namelen, +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) /******/ @@ -150,27 +150,27 @@ done: /****if* H5Lf/h5ldelete_c * NAME - * h5ldelete_c + * h5ldelete_c * PURPOSE - * Call H5Ldelete + * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * January, 2008 + * January, 2008 * SOURCE */ int_f -h5ldelete_c ( hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id ) +nh5ldelete_c ( hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id ) /******/ { char *c_name = NULL; @@ -197,28 +197,28 @@ done: /****if* H5Lf/h5lcreate_soft_c * NAME - * h5lcreate_soft_c + * h5lcreate_soft_c * PURPOSE - * Call H5Lcreate_soft + * 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. - * link_name - The name of the new link. - * lcpl_id - Link creation property list identifier. - * lapl_id - Link access property list identifier. + * 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. + * lcpl_id - Link creation property list identifier. + * lapl_id - Link access property list identifier. * * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * February 20, 2008 + * February 20, 2008 * SOURCE */ int_f -h5lcreate_soft_c(_fcd target_path, size_t_f *target_path_len, +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 ) @@ -253,29 +253,29 @@ h5lcreate_soft_c(_fcd target_path, size_t_f *target_path_len, /****if* H5Lf/h5lcreate_hard_c * NAME - * h5lcreate_hard_c + * h5lcreate_hard_c * PURPOSE - * Call H5Lcreate_hard + * 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 - * link_loc_id - The file or group identifier for the new link. - * link_name - The name of the new link. - * link_namelen- Name length - * lcpl_id - Link creation property list identifier. - * lapl_id - Link access property list identifier. + * 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 + * link_loc_id - The file or group identifier for the new link. + * link_name - The name of the new link. + * link_namelen- Name length + * lcpl_id - Link creation property list identifier. + * lapl_id - Link access property list identifier. * * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld * February 27, 2008 * SOURCE */ int_f -h5lcreate_hard_c(hid_t_f *obj_loc_id, _fcd obj_name, size_t_f *obj_namelen, +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 ) @@ -310,41 +310,41 @@ h5lcreate_hard_c(hid_t_f *obj_loc_id, _fcd obj_name, size_t_f *obj_namelen, /****if* H5Lf/h5ldelete_by_idx_c * NAME - * h5ldelete_by_idx_c + * h5ldelete_by_idx_c * PURPOSE - * Calls h5ldelete_by_idx + * 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 - * index_field - Type of index; Possible values are: + * loc_id - File or group identifier specifying location of subject group + * group_name - Name of subject group + * group_namelen - Name length + * 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: + * 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 - * lapl_id - Link access property list + * n - Link for which to retrieve information + * lapl_id - Link access property list * * OUTPUTS * N/A * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * February 29, 2008 + * February 29, 2008 * HISTORY * N/A * SOURCE */ int_f -h5ldelete_by_idx_c (hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, +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) /******/ { @@ -376,28 +376,28 @@ done: /****if* H5Lf/h5lexists_c * NAME - * h5lexists_c + * h5lexists_c * PURPOSE - * Calls H5Lexists + * 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. + * loc_id - Identifier of the file or group to query. + * name - Link name to check + * lapl_id - Link access property list identifier. * OUTPUTS * - * link_exists_c - returns a positive value, for TRUE, or 0 (zero), for FALSE. + * link_exists_c - returns a positive value, for TRUE, or 0 (zero), for FALSE. * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * February 29, 2008 + * February 29, 2008 * HISTORY * * SOURCE */ int_f -h5lexists_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, int_f *link_exists) +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 */ @@ -423,40 +423,40 @@ done: /****if* H5Lf/h5lget_info_c * NAME - * h5lget_info_c + * h5lget_info_c * PURPOSE - * Call H5Lget_info + * 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 + * link_name - Name of the link for which information is being sought + * link_namelen - Name length + * lapl_id - Link access property list * OUTPUTS * * - * 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: + * 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_LINK_HARD_F - Hard link * H5L_LINK_SOFT_F - Soft link * H5L_LINK_EXTERNAL_F - External link * H5L_LINK_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 + * 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 + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * January, 2008 + * January, 2008 * HISTORY * N/A * SOURCE */ int_f -h5lget_info_c(hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen, +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) @@ -496,36 +496,36 @@ done: /****if* H5Lf/h5lget_info_by_idx_c * NAME - * h5lget_info_by_idx_c + * h5lget_info_by_idx_c * PURPOSE - * Call H5Lget_info_by_idx + * 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 + * group_name - Name of subject group + *group_namelen - Name length * index_field - Index or field which determines the order - * order - Order within field or index - * n - Link for which to retrieve information - * lapl_id - Link access property list + * order - Order within field or index + * n - Link for which to retrieve information + * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * January, 2008 + * January, 2008 * HISTORY * N/A * SOURCE */ int_f -h5lget_info_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, +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) /******/ @@ -570,7 +570,7 @@ done: * NAME * H5Lis_registered_c * PURPOSE - * Call H5Lis_registered + * Call H5Lis_registered * INPUTS * * link_cls_id - User-defined link class identifier @@ -578,17 +578,17 @@ done: * NONE * * RETURNS - * Returns a positive value if the link class has been registered - * and zero if it is unregistered. Otherwise returns a negative value + * Returns a positive value if the link class has been registered + * and zero if it is unregistered. Otherwise returns a negative value * AUTHOR * M. Scot Breitenfeld - * March 3, 2008 + * March 3, 2008 * HISTORY * N/A * SOURCE */ int_f -h5lis_registered_c(int_f *link_cls_id) +nh5lis_registered_c(int_f *link_cls_id) /******/ { int_f ret_value; /* Return value */ @@ -621,29 +621,29 @@ h5lis_registered_c(int_f *link_cls_id) /****if* H5Lf/h5lmove_c * NAME - * h5lmove_c + * h5lmove_c * PURPOSE - * Call H5Lmove + * 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 + * 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 * * * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * March 3, 2008 + * March 3, 2008 * SOURCE */ int_f -h5lmove_c(hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_namelen, hid_t_f *dest_loc_id, +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) /******/ { @@ -682,17 +682,17 @@ done: * 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 - * order - Order within field or index - * n - Link for which to retrieve information - * size - Maximum number of characters of link value to be returned. - * lapl_id - Link access property list + * 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. + * lapl_id - Link access property list * OUTPUTS * - * name - Buffer in which link value is returned - * size - The size of the link name on success + * name - Buffer in which link value is returned + * size - The size of the link name on success * RETURNS * 0 on success, -1 on failure * AUTHOR @@ -701,7 +701,7 @@ done: * SOURCE */ int_f -h5lget_name_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, +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) /******/ @@ -774,7 +774,7 @@ done: /* * SOURCE */ /* *\/ */ /* int_f */ -/* h5lget_val_c (hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen, */ +/* 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) */ /* { */ @@ -842,7 +842,7 @@ done: /* int_f */ -/* h5lregistered_c(int_f *version, int_f *class_id, */ +/* nh5lregistered_c(int_f *version, int_f *class_id, */ /* _fcd comment, size_t_f *comment_len, */ /* _fcd create_func, size_t_f *create_func_len, */ /* _fcd move_func, size_t_f *move_func_len, */ @@ -916,29 +916,29 @@ done: /****if* H5Lf/h5lget_val_c * NAME - * h5lget_val_c + * h5lget_val_c * PURPOSE - * Call H5Lget_val + * 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 + * 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 * - * linkval_buff - The buffer to hold the returned link value. + * linkval_buff - The buffer to hold the returned link value. * * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * April 11, 2008 + * April 11, 2008 * SOURCE */ int_f -h5lget_val_c(hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen, size_t_f *size, +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) /******/ { @@ -971,16 +971,16 @@ done: * 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 + * 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 + * idx - Position at which an interrupted iteration may be restarted * * RETURNS * >0 on success, 0< on failure @@ -1018,19 +1018,19 @@ h5literate_c(hid_t_f *group_id, int_f *index_type, int_f *order, hsize_t_f *idx, * 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 + * 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 + * idx - Position at which an interrupted iteration may be restarted * * RETURNS * >0 on success, 0< on failure diff --git a/fortran/src/H5Lff.F90 b/fortran/src/H5Lff.f90 index bc91072..4660e52 100644 --- a/fortran/src/H5Lff.F90 +++ b/fortran/src/H5Lff.f90 @@ -4,7 +4,9 @@ ! MODULE H5L ! ! PURPOSE -! This file contains Fortran interfaces for H5L functions. +! 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 ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -23,13 +25,7 @@ ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! ! NOTES -! _____ __ __ _____ ____ _____ _______ _ _ _______ -! |_ _| \/ | __ \ / __ \| __ \__ __|/\ | \ | |__ __| -! **** | | | \ / | |__) | | | | |__) | | | / \ | \| | | | **** -! **** | | | |\/| | ___/| | | | _ / | | / /\ \ | . ` | | | **** -! **** _| |_| | | | | | |__| | | \ \ | |/ ____ \| |\ | | | **** -! |_____|_| |_|_| \____/|_| \_\ |_/_/ \_\_| \_| |_| -! +! *** IMPORTANT *** ! If you add a new H5L function you must add the function name to the ! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory. ! This is needed for Windows based operating systems. @@ -38,39 +34,8 @@ MODULE H5L - USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR, C_FUNPTR, C_CHAR, C_INT64_T, C_INT USE H5GLOBAL - IMPLICIT NONE - -!****t* H5L (F03)/h5l_info_t -! -! Fortran2003 Derived Type: -! - 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 - -!***** - -!type specifies the link class. Valid values include the following: -! H5L_TYPE_HARD Hard link -! H5L_TYPE_SOFT Soft link -! H5L_TYPE_EXTERNAL External link -! H5L_TYPE_ERROR Error -!cset specifies the character set in which the link name is encoded. Valid values include the following: -! H5T_CSET_ASCII US ASCII -! H5T_CSET_UTF8 UTF-8 Unicode encoding - CONTAINS ! @@ -122,14 +87,16 @@ CONTAINS 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) BIND(C,name='h5lcopy_c') - IMPORT :: c_char - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + lcpl_id_default, lapl_id_default) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LCOPY_C'::h5lcopy_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: src_name, dest_name INTEGER(HID_T), INTENT(IN) :: src_loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: src_name + CHARACTER(LEN=*), INTENT(IN) :: src_name INTEGER(HID_T), INTENT(IN) :: dest_loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: dest_name + CHARACTER(LEN=*), INTENT(IN) :: dest_name INTEGER(HID_T) :: lcpl_id_default INTEGER(HID_T) :: lapl_id_default @@ -187,12 +154,14 @@ CONTAINS INTEGER(SIZE_T) :: namelen INTERFACE - INTEGER FUNCTION h5ldelete_c(loc_id, name, namelen, lapl_id_default) BIND(C,name='h5ldelete_c') - IMPORT :: c_char - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + INTEGER FUNCTION h5ldelete_c(loc_id, name, namelen, lapl_id_default) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LDELETE_C'::h5ldelete_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: name INTEGER(HID_T), INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + CHARACTER(LEN=*), INTENT(IN) :: name INTEGER(HID_T) :: lapl_id_default INTEGER(SIZE_T) :: namelen END FUNCTION h5ldelete_c @@ -251,14 +220,16 @@ CONTAINS INTEGER FUNCTION h5lcreate_soft_c(target_path, target_path_len, & link_loc_id, & link_name,link_name_len, & - lcpl_id_default, lapl_id_default ) BIND(C,NAME='h5lcreate_soft_c') - IMPORT :: c_char - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: target_path + lcpl_id_default, lapl_id_default ) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LCREATE_SOFT_C'::h5lcreate_soft_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: target_path, link_name + CHARACTER(LEN=*), INTENT(IN) :: target_path INTEGER(SIZE_T) :: target_path_len INTEGER(HID_T), INTENT(IN) :: link_loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: link_name + CHARACTER(LEN=*), INTENT(IN) :: link_name INTEGER(SIZE_T) :: link_name_len INTEGER(HID_T) :: lcpl_id_default INTEGER(HID_T) :: lapl_id_default @@ -328,14 +299,17 @@ CONTAINS 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) BIND(C,NAME='h5lcreate_hard_c') - IMPORT :: c_char - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + link_loc_id, link_name, link_namelen, lcpl_id_default, lapl_id_default) + + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LCREATE_HARD_C'::h5lcreate_hard_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: obj_name, link_name INTEGER(HID_T), INTENT(IN) :: obj_loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: obj_name + CHARACTER(LEN=*), INTENT(IN) :: obj_name INTEGER(HID_T), INTENT(IN) :: link_loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: link_name + CHARACTER(LEN=*), INTENT(IN) :: link_name INTEGER(SIZE_T) :: obj_namelen INTEGER(SIZE_T) :: link_namelen INTEGER(HID_T) :: lcpl_id_default @@ -406,14 +380,17 @@ CONTAINS 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) BIND(C,NAME='h5lcreate_external_c') - IMPORT :: c_char - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: file_name - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: obj_name + link_loc_id, link_name, link_namelen, lcpl_id_default, lapl_id_default) + + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LCREATE_EXTERNAL_C'::h5lcreate_external_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: file_name, obj_name, link_name + CHARACTER(LEN=*), INTENT(IN) :: file_name + CHARACTER(LEN=*), INTENT(IN) :: obj_name INTEGER(HID_T), INTENT(IN) :: link_loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: link_name + CHARACTER(LEN=*), INTENT(IN) :: link_name INTEGER(SIZE_T) :: file_namelen INTEGER(SIZE_T) :: obj_namelen INTEGER(SIZE_T) :: link_namelen @@ -494,13 +471,14 @@ CONTAINS INTEGER(SIZE_T) :: group_namelen INTERFACE - INTEGER FUNCTION h5ldelete_by_idx_c(loc_id, group_name, group_namelen, index_field, order, n, lapl_id_default) & - BIND(C,NAME='h5ldelete_by_idx_c') - IMPORT :: c_char - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE + INTEGER FUNCTION h5ldelete_by_idx_c(loc_id, group_name, group_namelen, index_field, order, n, lapl_id_default) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LDELETE_BY_IDX_C'::h5ldelete_by_idx_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: group_name INTEGER(HID_T), INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: group_name + CHARACTER(LEN=*), INTENT(IN) :: group_name INTEGER, INTENT(IN) :: index_field INTEGER, INTENT(IN) :: order INTEGER(HSIZE_T), INTENT(IN) :: n @@ -552,17 +530,18 @@ CONTAINS ! Link access property list identifier. !***** INTEGER :: link_exists_c - INTEGER(HID_T) :: lapl_id_default - INTEGER(SIZE_T) :: namelen + INTEGER(HID_T) :: lapl_id_default + INTEGER(SIZE_T) :: namelen INTERFACE - INTEGER FUNCTION h5lexists_c(loc_id, name, namelen, lapl_id_default, link_exists_c) & - BIND(C,NAME='h5lexists_c') - IMPORT :: c_char - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + INTEGER FUNCTION h5lexists_c(loc_id, name, namelen, lapl_id_default, link_exists_c) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LEXISTS_C'::h5lexists_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: name INTEGER(HID_T), INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + CHARACTER(LEN=*), INTENT(IN) :: name INTEGER(SIZE_T), INTENT(IN) :: namelen INTEGER, INTENT(OUT) :: link_exists_c INTEGER(HID_T) :: lapl_id_default @@ -657,12 +636,14 @@ CONTAINS INTERFACE INTEGER FUNCTION h5lget_info_c(link_loc_id, link_name, link_namelen, & cset, corder, corder_valid, link_type, address, val_size, & - lapl_id_default) BIND(C,NAME='h5lget_info_c') - IMPORT :: c_char - IMPORT :: HID_T, SIZE_T, HADDR_T - IMPLICIT NONE + lapl_id_default) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LGET_INFO_C'::h5lget_info_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: link_name INTEGER(HID_T), INTENT(IN) :: link_loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: link_name + CHARACTER(LEN=*), INTENT(IN) :: link_name INTEGER, INTENT(OUT) :: cset INTEGER, INTENT(OUT) :: corder INTEGER, INTENT(OUT) :: link_type @@ -769,13 +750,14 @@ CONTAINS ! INTERFACE INTEGER FUNCTION h5lget_info_by_idx_c(loc_id, group_name, group_namelen, index_field, order, n, & - link_type, corder_valid, corder, cset, address, val_size, lapl_id_default) & - BIND(C,NAME='h5lget_info_by_idx_c') - IMPORT :: c_char - IMPORT :: HID_T, SIZE_T, HSIZE_T, HADDR_T - IMPLICIT NONE + link_type, corder_valid, corder, cset, address, val_size, lapl_id_default) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LGET_INFO_BY_IDX_C'::h5lget_info_by_idx_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: group_name INTEGER(HID_T), INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: group_name + CHARACTER(LEN=*), INTENT(IN) :: group_name INTEGER(SIZE_T) :: group_namelen INTEGER, INTENT(IN) :: index_field INTEGER, INTENT(IN) :: order @@ -836,8 +818,11 @@ CONTAINS ! 0 on success and -1 on failure !***** INTERFACE - INTEGER FUNCTION h5lis_registered_c(link_cls_id) BIND(C,NAME='h5lis_registered_c') - IMPLICIT NONE + INTEGER FUNCTION h5lis_registered_c(link_cls_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LIS_REGISTERED_C'::h5lis_registered_c + !DEC$ENDIF INTEGER, INTENT(IN) :: link_cls_id ! User-defined link class identifier END FUNCTION h5lis_registered_c END INTERFACE @@ -901,16 +886,18 @@ CONTAINS 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) BIND(C,NAME='h5lmove_c') - IMPORT :: c_char - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + dest_name, dest_namelen, lcpl_id_default, lapl_id_default) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LMOVE_C'::h5lmove_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: src_name, dest_name INTEGER(HID_T), INTENT(IN) :: src_loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: src_name + CHARACTER(LEN=*), INTENT(IN) :: src_name INTEGER(SIZE_T) :: src_namelen INTEGER(HID_T), INTENT(IN) :: dest_loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: dest_name + CHARACTER(LEN=*), INTENT(IN) :: dest_name INTEGER(SIZE_T) :: dest_namelen INTEGER(HID_T) :: lcpl_id_default @@ -989,19 +976,21 @@ CONTAINS INTERFACE INTEGER FUNCTION h5lget_name_by_idx_c(loc_id, group_name, group_namelen, index_field, order, n, & - size_default, name, lapl_id_default) BIND(C,NAME='h5lget_name_by_idx_c') - IMPORT :: c_char - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE + size_default, name, lapl_id_default) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LGET_NAME_BY_IDX_C'::h5lget_name_by_idx_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: group_name, name INTEGER(HID_T), INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: group_name + CHARACTER(LEN=*), INTENT(IN) :: group_name INTEGER(SIZE_T) :: group_namelen INTEGER, INTENT(IN) :: index_field INTEGER, INTENT(IN) :: order INTEGER(HSIZE_T), INTENT(IN) :: n INTEGER(SIZE_T) :: size_default - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: name + CHARACTER(LEN=*), INTENT(OUT) :: name INTEGER(HID_T) :: lapl_id_default END FUNCTION h5lget_name_by_idx_c END INTERFACE @@ -1096,7 +1085,7 @@ CONTAINS !!$ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LGET_VAL_BY_IDX_C'::h5lget_val_by_idx_c !!$ !DEC$ENDIF !!$ INTEGER(HID_T), INTENT(IN) :: loc_id -!!$ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: group_name +!!$ CHARACTER(LEN=*), INTENT(IN) :: group_name !!$ INTEGER(SIZE_T) :: group_namelen !!$ INTEGER, INTENT(IN) :: index_field !!$ INTEGER, INTENT(IN) :: order @@ -1177,7 +1166,7 @@ CONTAINS !!$ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LGET_VAL_C'::h5lget_val_c !!$ !DEC$ENDIF !!$ INTEGER(HID_T), INTENT(IN) :: link_loc_id ! File or group identifier. -!!$ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: link_name ! Link whose value is to be returned. +!!$ CHARACTER(LEN=*), INTENT(IN) :: link_name ! Link whose value is to be returned. !!$ INTEGER :: link_namelen !!$ INTEGER(SIZE_T), INTENT(IN) :: size ! Maximum number of characters of link value to be returned. !!$ @@ -1270,13 +1259,13 @@ CONTAINS !!$ !DEC$ENDIF !!$ INTEGER, INTENT(IN) :: version ! Version number of this struct !!$ INTEGER, INTENT(IN) :: class_id ! Link class identifier -!!$ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: comment ! Comment for debugging -!!$ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: create_func ! Callback during link creation -!!$ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: move_func ! Callback after moving link -!!$ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: copy_func ! Callback after copying link -!!$ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: trav_func ! The main traversal function -!!$ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: del_func ! Callback for link deletion -!!$ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: query_func ! Callback for queries +!!$ CHARACTER(LEN=*), INTENT(IN) :: comment ! Comment for debugging +!!$ CHARACTER(LEN=*), INTENT(IN) :: create_func ! Callback during link creation +!!$ CHARACTER(LEN=*), INTENT(IN) :: move_func ! Callback after moving link +!!$ CHARACTER(LEN=*), INTENT(IN) :: copy_func ! Callback after copying link +!!$ CHARACTER(LEN=*), INTENT(IN) :: trav_func ! The main traversal function +!!$ CHARACTER(LEN=*), INTENT(IN) :: del_func ! Callback for link deletion +!!$ CHARACTER(LEN=*), INTENT(IN) :: query_func ! Callback for queries !!$ INTEGER, INTENT(OUT) :: hdferr ! Error code: !!$ ! 0 on success and -1 on failure !!$ INTEGER :: comment_len @@ -1308,171 +1297,4 @@ CONTAINS !!$ !!$ END SUBROUTINE H5Lregistered_f -!****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: -! H5_INDEX_NAME_F - Alpha-numeric index on name -! H5_INDEX_CRT_ORDER_F - Index on creation order -! order - Order within index: -! H5_ITER_INC_F - Increasing order -! H5_ITER_DEC_F - Decreasing order -! H5_ITER_NATIVE_F - Fastest available order -! idx - IN: 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 - OUT: Position at which an interrupted iteration may be restarted -! 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. -! -! hdferr - Returns 0 if successful and -1 if fails -! -! AUTHOR -! M. Scot Breitenfeld -! July 8, 2008 -! -! Fortran2003 Interface: - SUBROUTINE h5literate_f(group_id, index_type, order, idx, op, op_data, return_value, hdferr) - USE, INTRINSIC :: 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 - TYPE(C_FUNPTR) , INTENT(IN) :: op - TYPE(C_PTR) , INTENT(IN) :: op_data - INTEGER , INTENT(OUT) :: return_value - INTEGER , INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5literate_c(group_id, index_type, order, idx, op, op_data) & - BIND(C, NAME='h5literate_c') - IMPORT :: c_ptr, c_funptr - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE - 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: -! H5_INDEX_NAME_F - Alpha-numeric index on name -! H5_INDEX_CRT_ORDER_F - Index on creation order -! order - Order within index: -! H5_ITER_INC_F - Increasing order -! H5_ITER_DEC_F - Decreasing order -! H5_ITER_NATIVE_F - Fastest available order -! idx - IN: 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 - OUT: Position at which an interrupted iteration may be restarted -! 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. -! -! hdferr - Returns 0 if successful and -1 if fails -! -! Optional parameters: -! lapl_id - Link access property list -! -! AUTHOR -! M. Scot Breitenfeld -! Augest 18, 2008 -! -! Fortran2003 Interface: - SUBROUTINE h5literate_by_name_f(loc_id, group_name, index_type, order, & - idx, op, op_data, return_value, hdferr, lapl_id) - USE, INTRINSIC :: ISO_C_BINDING - IMPLICIT NONE - INTEGER(HID_T) , INTENT(IN) :: loc_id - CHARACTER(LEN=*), INTENT(IN) :: group_name - INTEGER , INTENT(IN) :: index_type - INTEGER , INTENT(IN) :: order - INTEGER(HSIZE_T), INTENT(INOUT) :: idx - TYPE(C_FUNPTR) , INTENT(IN) :: op - TYPE(C_PTR) , INTENT(IN) :: op_data - INTEGER , INTENT(OUT) :: return_value - INTEGER , INTENT(OUT) :: hdferr - INTEGER(HID_T) , INTENT(IN), OPTIONAL :: lapl_id -!***** - 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) BIND(C, NAME='h5literate_by_name_c') - IMPORT :: c_char, c_ptr, c_funptr - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(HID_T) , INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name - INTEGER(SIZE_T) , INTENT(IN) :: 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) , INTENT(IN) :: lapl_id_default - END FUNCTION - 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 diff --git a/fortran/src/H5Lff_F03.f90 b/fortran/src/H5Lff_F03.f90 new file mode 100644 index 0000000..fa95717 --- /dev/null +++ b/fortran/src/H5Lff_F03.f90 @@ -0,0 +1,242 @@ +!****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_F90.f90 but includes the +! Fortran 2003 functions and the interface listings. This file will be compiled +! instead of H5Lff_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 +! *** IMPORTANT *** +! If you add a new H5A function you must add the function name to the +! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory. +! This is needed for Windows based operating systems. +! +!***** + +MODULE H5L_PROVISIONAL + + USE H5GLOBAL + USE ISO_C_BINDING + + IMPLICIT NONE + +!****t* H5L (F03)/h5l_info_t +! +! Fortran2003 Derived Type: +! + 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 + +!***** + +!type specifies the link class. Valid values include the following: +! H5L_TYPE_HARD Hard link +! H5L_TYPE_SOFT Soft link +! H5L_TYPE_EXTERNAL External link +! H5L_TYPE_ERROR Error +!cset specifies the character set in which the link name is encoded. Valid values include the following: +! H5T_CSET_ASCII US ASCII +! H5T_CSET_UTF8 UTF-8 Unicode encoding + +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: +! H5_INDEX_NAME_F - Alpha-numeric index on name +! H5_INDEX_CRT_ORDER_F - Index on creation order +! order - Order within index: +! H5_ITER_INC_F - Increasing order +! H5_ITER_DEC_F - Decreasing order +! H5_ITER_NATIVE_F - Fastest available order +! idx - IN: 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 - OUT: Position at which an interrupted iteration may be restarted +! 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. +! +! hdferr - Returns 0 if successful and -1 if fails +! +! AUTHOR +! M. Scot Breitenfeld +! July 8, 2008 +! +! Fortran2003 Interface: + SUBROUTINE h5literate_f(group_id, index_type, order, idx, op, op_data, return_value, hdferr) + USE, INTRINSIC :: 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 + TYPE(C_FUNPTR) , INTENT(IN) :: op + TYPE(C_PTR) , INTENT(IN) :: op_data + INTEGER , INTENT(OUT) :: return_value + INTEGER , INTENT(OUT) :: hdferr +!***** + INTERFACE + INTEGER FUNCTION h5literate_c(group_id, index_type, order, idx, op, op_data) & + BIND(C, NAME='h5literate_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, c_funptr + USE H5GLOBAL + 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: +! H5_INDEX_NAME_F - Alpha-numeric index on name +! H5_INDEX_CRT_ORDER_F - Index on creation order +! order - Order within index: +! H5_ITER_INC_F - Increasing order +! H5_ITER_DEC_F - Decreasing order +! H5_ITER_NATIVE_F - Fastest available order +! idx - IN: 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 - OUT: Position at which an interrupted iteration may be restarted +! 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. +! +! hdferr - Returns 0 if successful and -1 if fails +! +! Optional parameters: +! lapl_id - Link access property list +! +! AUTHOR +! M. Scot Breitenfeld +! Augest 18, 2008 +! +! Fortran2003 Interface: + SUBROUTINE h5literate_by_name_f(loc_id, group_name, index_type, order, & + idx, op, op_data, return_value, hdferr, lapl_id) + USE, INTRINSIC :: ISO_C_BINDING + IMPLICIT NONE + INTEGER(HID_T) , INTENT(IN) :: loc_id + CHARACTER(LEN=*), INTENT(IN) :: group_name + INTEGER , INTENT(IN) :: index_type + INTEGER , INTENT(IN) :: order + INTEGER(HSIZE_T), INTENT(INOUT) :: idx + TYPE(C_FUNPTR) , INTENT(IN) :: op + TYPE(C_PTR) , INTENT(IN) :: op_data + INTEGER , INTENT(OUT) :: return_value + INTEGER , INTENT(OUT) :: hdferr + INTEGER(HID_T) , INTENT(IN), OPTIONAL :: lapl_id +!***** + 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) BIND(C, NAME='h5literate_by_name_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr, c_funptr + USE H5GLOBAL + INTEGER(HID_T) , INTENT(IN) :: loc_id + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + INTEGER(SIZE_T) , INTENT(IN) :: 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) , INTENT(IN) :: lapl_id_default + END FUNCTION + 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..dd62b7b --- /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' 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 4801f7d..ae344a5 100644 --- a/fortran/src/H5Of.c +++ b/fortran/src/H5Of.c @@ -1,6 +1,6 @@ /****h* H5Of/H5Of * PURPOSE - * This file contains C stubs for H5O Fortran APIs + * This file contains C stubs for H5O Fortran APIs * * COPYRIGHT * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -109,12 +109,12 @@ fill_h5o_info_t_f(H5O_info_t Oinfo, H5O_info_t_f *object_info) { * 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. + * 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. * RETURNS * 0 on success, -1 on failure * AUTHOR @@ -123,7 +123,7 @@ fill_h5o_info_t_f(H5O_info_t Oinfo, H5O_info_t_f *object_info) { * SOURCE */ int_f -h5olink_c (hid_t_f *object_id, hid_t_f *new_loc_id, _fcd name, size_t_f *namelen, +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) /******/ { @@ -169,7 +169,7 @@ h5olink_c (hid_t_f *object_id, hid_t_f *new_loc_id, _fcd name, size_t_f *namelen * SOURCE */ int_f -h5oopen_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, hid_t_f *obj_id) +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 */ @@ -194,20 +194,20 @@ h5oopen_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, hid_ } /****if* H5Of/h5oclose_c * NAME - * h5oclose_c + * h5oclose_c * PURPOSE - * Call H5Oclose + * Call H5Oclose * INPUTS - * object_id - Object identifier + * object_id - Object identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * December 17, 2008 + * December 17, 2008 * SOURCE */ int_f -h5oclose_c ( hid_t_f *object_id ) +nh5oclose_c ( hid_t_f *object_id ) /******/ { int_f ret_value=0; /* Return value */ @@ -225,15 +225,15 @@ h5oclose_c ( hid_t_f *object_id ) * 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 + * 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 + * idx - Position at which an interrupted iteration may be restarted * * RETURNS * >0 on success, 0< on failure @@ -266,20 +266,20 @@ h5ovisit_c(hid_t_f *group_id, int_f *index_type, int_f *order, H5O_iterate_t op, * Calls H5open_by_addr * INPUTS * loc_id - File or group identifier - * addr - Object’s address in the file + * addr - Object’s address in the file * * OUTPUTS * obj_id - Dataset identifier * * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld * September 14, 2009 * SOURCE */ int_f -h5oopen_by_addr_c (hid_t_f *loc_id, haddr_t_f *addr, hid_t_f *obj_id) +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 */ @@ -458,7 +458,7 @@ h5oget_info_c (hid_t_f *object_id, H5O_info_t_f *object_info) * SOURCE */ int_f -h5ocopy_c (hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_name_len, +nh5ocopy_c (hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_name_len, hid_t_f *dst_loc_id, _fcd dst_name, size_t_f *dst_name_len, hid_t_f *ocpypl_id, hid_t_f *lcpl_id ) /******/ @@ -499,15 +499,15 @@ h5ocopy_c (hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_name_len, * PURPOSE * Calls H5Ovisit_by_name * 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 + * 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 + * idx - Position at which an interrupted iteration may be restarted * * RETURNS * >0 on success, 0< on failure @@ -560,7 +560,7 @@ h5ovisit_by_name_c(hid_t_f *loc_id, _fcd object_name, size_t_f *namelen, int_f * SOURCE */ int_f -h5odecr_refcount_c (hid_t_f *object_id) +nh5odecr_refcount_c (hid_t_f *object_id) /******/ { int_f ret_value = 0; /* Return value */ @@ -594,7 +594,7 @@ h5odecr_refcount_c (hid_t_f *object_id) * SOURCE */ int_f -h5oexists_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id) +nh5oexists_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id) /******/ { char *c_name = NULL; /* Buffer to hold C string */ @@ -633,7 +633,7 @@ h5oexists_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lap * SOURCE */ int_f -h5oincr_refcount_c (hid_t_f *object_id) +nh5oincr_refcount_c (hid_t_f *object_id) /******/ { int_f ret_value = 0; /* Return value */ @@ -665,7 +665,7 @@ h5oincr_refcount_c (hid_t_f *object_id) * SOURCE */ int_f -h5oset_comment_c (hid_t_f *object_id, _fcd comment, size_t_f *commentlen) +nh5oset_comment_c (hid_t_f *object_id, _fcd comment, size_t_f *commentlen) /******/ { char *c_comment = NULL; /* Buffer to hold C string */ @@ -697,7 +697,7 @@ h5oset_comment_c (hid_t_f *object_id, _fcd comment, size_t_f *commentlen) * INPUTS * object_id - Identifier of the target object. * name - Name of the object whose comment is to be set or reset, - * specified as a path relative to loc_id. + * specified as a path relative to loc_id. * namelen - Length of the name. * comment - The new comment. * commentlen - Length of the comment. @@ -710,7 +710,7 @@ h5oset_comment_c (hid_t_f *object_id, _fcd comment, size_t_f *commentlen) * SOURCE */ int_f -h5oset_comment_by_name_c (hid_t_f *object_id, _fcd name, size_t_f *namelen, _fcd comment, size_t_f *commentlen, hid_t_f *lapl_id) +nh5oset_comment_by_name_c (hid_t_f *object_id, _fcd name, size_t_f *namelen, _fcd comment, size_t_f *commentlen, hid_t_f *lapl_id) /******/ { char *c_comment = NULL; /* Buffer to hold C string */ @@ -755,7 +755,7 @@ h5oset_comment_by_name_c (hid_t_f *object_id, _fcd name, size_t_f *namelen, _fc * n - Object to open. * lapl_id - Link access property list. * OUTPUTS - * obj_id - An object identifier for the opened object. + * obj_id - An object identifier for the opened object. * RETURNS * 0 on success, -1 on failure * AUTHOR @@ -764,7 +764,7 @@ h5oset_comment_by_name_c (hid_t_f *object_id, _fcd name, size_t_f *namelen, _fc * SOURCE */ int_f -h5oopen_by_idx_c (hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, +nh5oopen_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 *obj_id, hid_t_f *lapl_id) /******/ { @@ -813,7 +813,7 @@ h5oopen_by_idx_c (hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, * SOURCE */ int_f -h5oget_comment_c (hid_t_f *object_id, _fcd comment, size_t_f *commentsize, hssize_t_f *bufsize) +nh5oget_comment_c (hid_t_f *object_id, _fcd comment, size_t_f *commentsize, hssize_t_f *bufsize) /******/ { char *c_comment = NULL; /* Buffer to hold C string */ @@ -869,7 +869,7 @@ h5oget_comment_c (hid_t_f *object_id, _fcd comment, size_t_f *commentsize, hssi * SOURCE */ int_f -h5oget_comment_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *name_size, +nh5oget_comment_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *name_size, _fcd comment, size_t_f *commentsize, size_t_f *bufsize, hid_t_f *lapl_id) /******/ { diff --git a/fortran/src/H5Off.F90 b/fortran/src/H5Off.f90 index da940df..8a40079 100644 --- a/fortran/src/H5Off.F90 +++ b/fortran/src/H5Off.f90 @@ -7,7 +7,9 @@ ! fortran/src/H5Off.f90 ! ! PURPOSE -! This file contains Fortran interfaces for H5O functions. +! 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 @@ -27,13 +29,7 @@ ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! ! NOTES -! _____ __ __ _____ ____ _____ _______ _ _ _______ -! |_ _| \/ | __ \ / __ \| __ \__ __|/\ | \ | |__ __| -! **** | | | \ / | |__) | | | | |__) | | | / \ | \| | | | **** -! **** | | | |\/| | ___/| | | | _ / | | / /\ \ | . ` | | | **** -! **** _| |_| | | | | | |__| | | \ \ | |/ ____ \| |\ | | | **** -! |_____|_| |_|_| \____/|_| \_\ |_/_/ \_\_| \_| |_| -! +! *** IMPORTANT *** ! If you add a new H5O function you must add the function name to the ! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory. ! This is needed for Windows based operating systems. @@ -42,65 +38,7 @@ MODULE H5O - USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR, C_FUNPTR, C_CHAR, C_INT64_T, C_LONG, C_INT, C_LOC USE H5GLOBAL - IMPLICIT NONE - -!****t* H5T (F03)/h5o_info_t -! -! Fortran2003 Derived Type: -! - 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 :: version ! Version number of header format in file - INTEGER :: nmesgs ! Number of object header messages - INTEGER :: nchunks ! Number of object header chunks - INTEGER :: flags ! Object header status 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(C_LONG) :: fileno ! File number that object is located in - INTEGER(haddr_t) :: addr ! Object address in file - INTEGER(C_INT) :: type ! Basic object type (group, dataset, etc.) - INTEGER :: rc ! Reference count of object - - INTEGER, DIMENSION(8) :: atime ! Access time ! -- NOTE -- - INTEGER, DIMENSION(8) :: mtime ! Modification time ! Returns an integer array - INTEGER, DIMENSION(8) :: ctime ! Change time ! as specified in the Fortran - INTEGER, DIMENSION(8) :: btime ! Birth time ! intrinsic DATE_AND_TIME(VALUES) - - 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 @@ -145,13 +83,15 @@ CONTAINS INTERFACE INTEGER FUNCTION h5olink_c(object_id, new_loc_id, new_link_name, new_link_namelen, & - lcpl_id_default, lapl_id_default) BIND(C,NAME='h5olink_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + lcpl_id_default, lapl_id_default) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OLINK_C'::h5olink_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: new_link_name INTEGER(HID_T), INTENT(IN) :: object_id INTEGER(HID_T), INTENT(IN) :: new_loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: new_link_name + CHARACTER(LEN=*), INTENT(IN) :: new_link_name INTEGER(SIZE_T) :: new_link_namelen INTEGER(HID_T) :: lapl_id_default INTEGER(HID_T) :: lcpl_id_default @@ -206,12 +146,14 @@ CONTAINS INTEGER(SIZE_T) :: namelen INTERFACE - INTEGER FUNCTION h5oopen_c(loc_id, name, namelen, lapl_id_default, obj_id) BIND(C,NAME='h5oopen_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + INTEGER FUNCTION h5oopen_c(loc_id, name, namelen, lapl_id_default, obj_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OOPEN_C'::h5oopen_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: name INTEGER(HID_T), INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + CHARACTER(LEN=*), INTENT(IN) :: name INTEGER(HID_T) :: lapl_id_default INTEGER(SIZE_T) :: namelen INTEGER(HID_T), INTENT(OUT) :: obj_id @@ -252,9 +194,11 @@ CONTAINS INTEGER , INTENT(OUT) :: hdferr !***** INTERFACE - INTEGER FUNCTION h5oclose_c(object_id) BIND(C,NAME='h5oclose_c') - IMPORT :: HID_T - IMPLICIT NONE + INTEGER FUNCTION h5oclose_c(object_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OCLOSE_C'::h5oclose_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: object_id END FUNCTION h5oclose_c END INTERFACE @@ -291,9 +235,11 @@ CONTAINS INTEGER , INTENT(OUT) :: hdferr !***** INTERFACE - INTEGER FUNCTION h5oopen_by_addr_c(loc_id, addr, obj_id) BIND(C,NAME='h5oopen_by_addr_c') - IMPORT :: HID_T, HADDR_T - IMPLICIT NONE + INTEGER FUNCTION h5oopen_by_addr_c(loc_id, addr, obj_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OOPEN_BY_ADDR_C'::h5oopen_by_addr_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: loc_id INTEGER(HADDR_T), INTENT(IN) :: addr INTEGER(HID_T), INTENT(OUT) :: obj_id @@ -345,15 +291,16 @@ CONTAINS INTERFACE INTEGER FUNCTION h5ocopy_c(src_loc_id, src_name, src_name_len, & - dst_loc_id, dst_name, dst_name_len, ocpypl_id_default, lcpl_id_default) & - BIND(C,NAME='h5ocopy_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + dst_loc_id, dst_name, dst_name_len, ocpypl_id_default, lcpl_id_default) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OCOPY_C'::h5ocopy_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: src_name, dst_name INTEGER(HID_T) , INTENT(IN) :: src_loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: src_name + CHARACTER(LEN=*), INTENT(IN) :: src_name INTEGER(HID_T) , INTENT(IN) :: dst_loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: dst_name + CHARACTER(LEN=*), INTENT(IN) :: dst_name INTEGER(HID_T) , INTENT(IN) :: ocpypl_id_default INTEGER(HID_T) , INTENT(IN) :: lcpl_id_default INTEGER(SIZE_T) :: src_name_len, dst_name_len @@ -399,9 +346,11 @@ CONTAINS !***** INTERFACE - INTEGER FUNCTION h5odecr_refcount_c(object_id) BIND(C,NAME='h5odecr_refcount_c') - IMPORT :: HID_T - IMPLICIT NONE + INTEGER FUNCTION h5odecr_refcount_c(object_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ODECR_REFCOUNT_C'::h5odecr_refcount_c + !DEC$ENDIF INTEGER(HID_T) , INTENT(IN) :: object_id END FUNCTION h5odecr_refcount_c END INTERFACE @@ -448,13 +397,14 @@ CONTAINS INTEGER(HID_T) :: lapl_id_default INTERFACE - INTEGER FUNCTION h5oexists_by_name_c(loc_id, name, namelen, lapl_id) & - BIND(C,NAME='h5oexists_by_name_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + INTEGER FUNCTION h5oexists_by_name_c(loc_id, name, namelen, lapl_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OEXISTS_BY_NAME_C'::h5oexists_by_name_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: name INTEGER(HID_T) , INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + CHARACTER(LEN=*), INTENT(IN) :: name INTEGER(SIZE_T) , INTENT(IN) :: namelen INTEGER(HID_T) , INTENT(IN) :: lapl_id @@ -514,13 +464,14 @@ CONTAINS INTEGER(HSSIZE_T) :: bufsize_default INTERFACE - INTEGER FUNCTION h5oget_comment_c(obj_id, comment, commentsize_default, bufsize) & - BIND(C,NAME='h5oget_comment_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSSIZE_T - IMPLICIT NONE + INTEGER FUNCTION h5oget_comment_c(obj_id, comment, commentsize_default, bufsize) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OGET_COMMENT_C'::h5oget_comment_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: comment INTEGER(HID_T) , INTENT(IN) :: obj_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: comment + CHARACTER(LEN=*), INTENT(OUT) :: comment INTEGER(SIZE_T) , INTENT(IN) :: commentsize_default INTEGER(HSSIZE_T) , INTENT(OUT) :: bufsize END FUNCTION h5oget_comment_c @@ -574,14 +525,16 @@ CONTAINS INTEGER(HID_T) :: lapl_id_default INTERFACE INTEGER FUNCTION h5oget_comment_by_name_c(loc_id, name, name_size, & - comment, commentsize_default, bufsize_default, lapl_id) BIND(C,NAME='h5oget_comment_by_name_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + comment, commentsize_default, bufsize_default, lapl_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OGET_COMMENT_BY_NAME_C'::h5oget_comment_by_name_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: comment, name INTEGER(HID_T) , INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + CHARACTER(LEN=*), INTENT(IN) :: name INTEGER(SIZE_T) , INTENT(IN) :: name_size - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: comment + CHARACTER(LEN=*), INTENT(OUT) :: comment INTEGER(SIZE_T) , INTENT(IN) :: commentsize_default INTEGER(SIZE_T) , INTENT(OUT) :: bufsize_default INTEGER(HID_T) , INTENT(IN) :: lapl_id @@ -626,9 +579,11 @@ CONTAINS !***** INTERFACE - INTEGER FUNCTION h5oincr_refcount_c(obj_id) BIND(C,NAME='h5oincr_refcount_c') - IMPORT :: HID_T - IMPLICIT NONE + INTEGER FUNCTION h5oincr_refcount_c(obj_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OINCR_REFCOUNT_C'::h5oincr_refcount_c + !DEC$ENDIF INTEGER(HID_T) , INTENT(IN) :: obj_id END FUNCTION h5oincr_refcount_c END INTERFACE @@ -680,13 +635,14 @@ CONTAINS INTEGER(HID_T) :: lapl_id_default INTERFACE - INTEGER FUNCTION h5oopen_by_idx_c(loc_id, group_name, group_namelen, index_type, order, n, obj_id, lapl_id_default) & - BIND(C,NAME='h5oopen_by_idx_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE + INTEGER FUNCTION h5oopen_by_idx_c(loc_id, group_name, group_namelen, index_type, order, n, obj_id, lapl_id_default) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OOPEN_BY_IDX_C'::h5oopen_by_idx_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: group_name INTEGER(HID_T) , INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: group_name + CHARACTER(LEN=*), INTENT(IN) :: group_name INTEGER(SIZE_T) , INTENT(IN) :: group_namelen INTEGER , INTENT(IN) :: index_type INTEGER , INTENT(IN) :: order @@ -734,12 +690,14 @@ CONTAINS INTEGER(SIZE_T) :: commentlen INTERFACE - INTEGER FUNCTION h5oset_comment_c(obj_id, comment, commentlen) BIND(C,NAME='h5oset_comment_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + INTEGER FUNCTION h5oset_comment_c(obj_id, comment, commentlen) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OSET_COMMENT_C'::h5oset_comment_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: comment INTEGER(HID_T) , INTENT(IN) :: obj_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: comment + CHARACTER(LEN=*), INTENT(IN) :: comment INTEGER(SIZE_T) , INTENT(IN) :: commentlen END FUNCTION h5oset_comment_c @@ -788,15 +746,16 @@ CONTAINS INTEGER(HID_T) :: lapl_id_default INTERFACE - INTEGER FUNCTION h5oset_comment_by_name_c(loc_id, name, namelen, comment, commentlen, lapl_id) & - BIND(C,NAME='h5oset_comment_by_name_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + INTEGER FUNCTION h5oset_comment_by_name_c(loc_id, name, namelen, comment, commentlen, lapl_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OSET_COMMENT_BY_NAME_C'::h5oset_comment_by_name_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: name, comment INTEGER(HID_T) , INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: comment + CHARACTER(LEN=*), INTENT(IN) :: comment INTEGER(SIZE_T) , INTENT(IN) :: commentlen - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + CHARACTER(LEN=*), INTENT(IN) :: name INTEGER(SIZE_T) , INTENT(IN) :: namelen INTEGER(HID_T) , INTENT(IN) :: lapl_id END FUNCTION h5oset_comment_by_name_c @@ -812,338 +771,5 @@ CONTAINS END SUBROUTINE h5oset_comment_by_name_f -!****s* H5O (F03)/h5ovisit_f_F03 -! -! NAME -! h5ovisit_f -! -! PURPOSE -! Recursively visits all objects starting from a specified object. -! -! Inputs: -! object_id - Identifier of the object 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: -! return_value - 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 - Returns 0 if successful and -1 if fails -! AUTHOR -! M. Scot Breitenfeld -! November 19, 2008 -! -! Fortran2003 Interface: - SUBROUTINE h5ovisit_f(object_id, index_type, order, op, op_data, return_value, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: object_id - INTEGER, INTENT(IN) :: index_type - INTEGER, INTENT(IN) :: order - - TYPE(C_FUNPTR):: op - TYPE(C_PTR) :: op_data - INTEGER, INTENT(OUT) :: return_value - INTEGER, INTENT(OUT) :: hdferr -!***** - - INTERFACE - INTEGER FUNCTION h5ovisit_c(object_id, index_type, order, op, op_data) & - BIND(C, NAME='h5ovisit_c') - IMPORT :: C_FUNPTR, C_PTR - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: object_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(object_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 (F03)/h5oget_info_by_name_f_F03 -! -! 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: -! object_info - Buffer in which to return object information. -! hdferr - Returns 0 if successful and -1 if fails. -! -! Optional parameters: -! lapl_id - Link access property list. -! -! AUTHOR -! M. Scot Breitenfeld -! December 1, 2008 -! -! Fortran2003 Interface: - SUBROUTINE h5oget_info_by_name_f(loc_id, name, object_info, hdferr, lapl_id) - IMPLICIT NONE - INTEGER(HID_T) , INTENT(IN) :: loc_id - CHARACTER(LEN=*), INTENT(IN) :: name - TYPE(h5o_info_t), INTENT(OUT), TARGET :: object_info - INTEGER , INTENT(OUT) :: hdferr - INTEGER(HID_T) , INTENT(IN) , OPTIONAL :: lapl_id -!***** - INTEGER(SIZE_T) :: namelen - INTEGER(HID_T) :: lapl_id_default - TYPE(C_PTR) :: ptr - - INTERFACE - INTEGER FUNCTION h5oget_info_by_name_c(loc_id, name, namelen, lapl_id_default, object_info) & - BIND(C, NAME='h5oget_info_by_name_c') - IMPORT :: c_char, c_ptr - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE - INTEGER(HID_T) , INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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 - - ptr = C_LOC(object_info) - - hdferr = H5Oget_info_by_name_c(loc_id, name, namelen, lapl_id_default, ptr) - - END SUBROUTINE H5Oget_info_by_name_f - -!****s* H5O (F03)/h5oget_info_f_F03 -! -! NAME -! h5oget_info_f -! -! PURPOSE -! Retrieves the metadata for an object specified by an identifier. -! -! Inputs: -! object_id - Identifier for target object. -! -! Outputs: -! object_info - Buffer in which to return object information. -! hdferr - Returns 0 if successful and -1 if fails. -! -! AUTHOR -! M. Scot Breitenfeld -! May 11, 2012 -! -! Fortran2003 Interface: - SUBROUTINE h5oget_info_f(object_id, object_info, hdferr) - - USE, INTRINSIC :: ISO_C_BINDING - IMPLICIT NONE - INTEGER(HID_T) , INTENT(IN) :: object_id - TYPE(h5o_info_t), INTENT(OUT), TARGET :: object_info - INTEGER , INTENT(OUT) :: hdferr -!***** - TYPE(C_PTR) :: ptr - - INTERFACE - INTEGER FUNCTION h5oget_info_c(object_id, object_info) & - BIND(C, NAME='h5oget_info_c') - IMPORT :: C_PTR - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: object_id - TYPE(C_PTR), VALUE :: object_info - END FUNCTION h5oget_info_c - END INTERFACE - - ptr = C_LOC(object_info) - hdferr = H5Oget_info_c(object_id, ptr) - - END SUBROUTINE H5Oget_info_f - -!****s* H5O (F03)/h5oget_info_by_idx_f_F03 -! -! NAME -! h5oget_info_by_idx_f -! -! PURPOSE -! Retrieves the metadata for an object, identifying the object by an index position. -! -! Inputs: -! loc_id - File or group identifier specifying location of group -! in which object is located. -! group_name - Name of group in which object is located. -! index_field - Index or field that determines the order. -! order - Order within field or index. -! n - Object for which information is to be returned -! -! Outputs: -! object_info - Buffer in which to return object information. -! hdferr - Returns 0 if successful and -1 if fails. -! -! Optional parameters: -! lapl_id - Link access property list. (Not currently used.) -! -! AUTHOR -! M. Scot Breitenfeld -! May 11, 2012 -! -! Fortran2003 Interface: - SUBROUTINE h5oget_info_by_idx_f(loc_id, group_name, index_field, order, n, & - object_info, hdferr, lapl_id) - - USE, INTRINSIC :: ISO_C_BINDING - IMPLICIT NONE - INTEGER(HID_T) , INTENT(IN) :: loc_id - CHARACTER(LEN=*), INTENT(IN) :: group_name - INTEGER , INTENT(IN) :: index_field - INTEGER , INTENT(IN) :: order - INTEGER(HSIZE_T), INTENT(IN) :: n - TYPE(h5o_info_t), INTENT(OUT), TARGET :: object_info - INTEGER , INTENT(OUT) :: hdferr - INTEGER(HID_T) , INTENT(IN) , OPTIONAL :: lapl_id -!***** - INTEGER(SIZE_T) :: namelen - INTEGER(HID_T) :: lapl_id_default - TYPE(C_PTR) :: ptr - - INTERFACE - INTEGER FUNCTION h5oget_info_by_idx_c(loc_id, group_name, namelen, & - index_field, order, n, lapl_id_default, object_info) BIND(C, NAME='h5oget_info_by_idx_c') - IMPORT :: c_char, c_ptr, c_funptr - IMPORT :: HID_T, SIZE_T, HSIZE_T - INTEGER(HID_T) , INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: group_name - INTEGER(SIZE_T) , INTENT(IN) :: namelen - INTEGER , INTENT(IN) :: index_field - INTEGER , INTENT(IN) :: order - INTEGER(HSIZE_T), INTENT(IN) :: n - INTEGER(HID_T) , INTENT(IN) :: lapl_id_default - TYPE(C_PTR), VALUE :: object_info - - END FUNCTION h5oget_info_by_idx_c - END INTERFACE - - namelen = LEN(group_name) - - lapl_id_default = H5P_DEFAULT_F - IF(PRESENT(lapl_id)) lapl_id_default = lapl_id - - ptr = C_LOC(object_info) - hdferr = H5Oget_info_by_idx_c(loc_id, group_name, namelen, index_field, order, n, lapl_id_default, ptr) - - END SUBROUTINE H5Oget_info_by_idx_f - - -!****s* H5O (F03)/h5ovisit_by_name_f_F03 -! -! NAME -! h5ovisit_by_name_f -! -! PURPOSE -! Recursively visits all objects starting from a specified object. -! -! Inputs: -! loc_id - Identifier of a file or group. -! object_name - Name of the object, generally relative to loc_id, that will serve as root of the iteration -! 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: -! return_value - 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 - Returns 0 if successful and -1 if fails -! -! Optional parameters: -! lapl_id - Link access property list identifier. -! -! AUTHOR -! M. Scot Breitenfeld -! November 19, 2008 -! -! Fortran2003 Interface: - SUBROUTINE h5ovisit_by_name_f(loc_id, object_name, index_type, order, op, op_data, & - return_value, hdferr, lapl_id) - IMPLICIT NONE - INTEGER(HID_T) , INTENT(IN) :: loc_id - CHARACTER(LEN=*), INTENT(IN) :: object_name - INTEGER , INTENT(IN) :: index_type - INTEGER , INTENT(IN) :: order - - TYPE(C_FUNPTR) :: op - TYPE(C_PTR) :: op_data - INTEGER , INTENT(OUT) :: return_value - INTEGER , INTENT(OUT) :: hdferr - INTEGER(HID_T) , INTENT(IN) , OPTIONAL :: lapl_id -!***** - - INTEGER(SIZE_T) :: namelen - INTEGER(HID_T) :: lapl_id_default - - INTERFACE - INTEGER FUNCTION h5ovisit_by_name_c(loc_id, object_name, namelen, index_type, order, & - op, op_data, lapl_id) BIND(C, NAME='h5ovisit_by_name_c') - IMPORT :: C_CHAR, C_PTR, C_FUNPTR - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE - INTEGER(HID_T) , INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: object_name - INTEGER(SIZE_T) :: namelen - INTEGER , INTENT(IN) :: index_type - INTEGER , INTENT(IN) :: order - TYPE(C_FUNPTR) , VALUE :: op - TYPE(C_PTR) , VALUE :: op_data - INTEGER(HID_T) , INTENT(IN) :: lapl_id - END FUNCTION h5ovisit_by_name_c - END INTERFACE - - namelen = LEN(object_name) - - lapl_id_default = H5P_DEFAULT_F - IF(PRESENT(lapl_id)) lapl_id_default = lapl_id - - return_value = h5ovisit_by_name_c(loc_id, object_name, namelen, index_type, order, & - op, op_data, lapl_id_default) - - IF(return_value.GE.0)THEN - hdferr = 0 - ELSE - hdferr = -1 - END IF - - END SUBROUTINE h5ovisit_by_name_f - END MODULE H5O diff --git a/fortran/src/H5Off_F03.f90 b/fortran/src/H5Off_F03.f90 new file mode 100644 index 0000000..36b6246 --- /dev/null +++ b/fortran/src/H5Off_F03.f90 @@ -0,0 +1,435 @@ +!****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_F90.f90 but includes the +! Fortran 2003 functions and the interface listings. This file will be compiled +! instead of H5Off_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 +! *** IMPORTANT *** +! If you add a new H5P function you must add the function name to the +! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory. +! This is needed for Windows based operating systems. +! +!***** + +MODULE H5O_PROVISIONAL + + USE H5GLOBAL + USE, INTRINSIC :: ISO_C_BINDING + + IMPLICIT NONE + +!****t* H5T (F03)/h5o_info_t +! +! Fortran2003 Derived Type: +! + 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 :: version ! Version number of header format in file + INTEGER :: nmesgs ! Number of object header messages + INTEGER :: nchunks ! Number of object header chunks + INTEGER :: flags ! Object header status 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(C_LONG) :: fileno ! File number that object is located in + INTEGER(haddr_t) :: addr ! Object address in file + INTEGER(C_INT) :: type ! Basic object type (group, dataset, etc.) + INTEGER :: rc ! Reference count of object + + INTEGER, DIMENSION(8) :: atime ! Access time ! -- NOTE -- + INTEGER, DIMENSION(8) :: mtime ! Modification time ! Returns an integer array + INTEGER, DIMENSION(8) :: ctime ! Change time ! as specified in the Fortran + INTEGER, DIMENSION(8) :: btime ! Birth time ! intrinsic DATE_AND_TIME(VALUES) + + 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_F03 +! +! NAME +! h5ovisit_f +! +! PURPOSE +! Recursively visits all objects starting from a specified object. +! +! Inputs: +! object_id - Identifier of the object 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: +! return_value - 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 - Returns 0 if successful and -1 if fails +! AUTHOR +! M. Scot Breitenfeld +! November 19, 2008 +! +! Fortran2003 Interface: + SUBROUTINE h5ovisit_f(object_id, index_type, order, op, op_data, return_value, hdferr) + USE, INTRINSIC :: ISO_C_BINDING + IMPLICIT NONE + INTEGER(HID_T), INTENT(IN) :: object_id + INTEGER, INTENT(IN) :: index_type + INTEGER, INTENT(IN) :: order + + TYPE(C_FUNPTR):: op + TYPE(C_PTR) :: op_data + INTEGER, INTENT(OUT) :: return_value + INTEGER, INTENT(OUT) :: hdferr +!***** + + INTERFACE + INTEGER FUNCTION h5ovisit_c(object_id, index_type, order, op, op_data) & + BIND(C, NAME='h5ovisit_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, c_funptr + USE H5GLOBAL + INTEGER(HID_T), INTENT(IN) :: object_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(object_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 (F03)/h5oget_info_by_name_f_F03 +! +! 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: +! object_info - Buffer in which to return object information. +! hdferr - Returns 0 if successful and -1 if fails. +! +! Optional parameters: +! lapl_id - Link access property list. +! +! AUTHOR +! M. Scot Breitenfeld +! December 1, 2008 +! +! Fortran2003 Interface: + SUBROUTINE h5oget_info_by_name_f(loc_id, name, object_info, hdferr, lapl_id) + + USE, INTRINSIC :: ISO_C_BINDING + IMPLICIT NONE + INTEGER(HID_T) , INTENT(IN) :: loc_id + CHARACTER(LEN=*), INTENT(IN) :: name + TYPE(h5o_info_t), INTENT(OUT), TARGET :: object_info + INTEGER , INTENT(OUT) :: hdferr + INTEGER(HID_T) , INTENT(IN) , OPTIONAL :: lapl_id +!***** + INTEGER(SIZE_T) :: namelen + INTEGER(HID_T) :: lapl_id_default + TYPE(C_PTR) :: ptr + + INTERFACE + INTEGER FUNCTION h5oget_info_by_name_c(loc_id, name, namelen, lapl_id_default, object_info) & + BIND(C, NAME='h5oget_info_by_name_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr + USE H5GLOBAL + INTEGER(HID_T) , INTENT(IN) :: loc_id + CHARACTER(KIND=C_CHAR), DIMENSION(*), 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 + + ptr = C_LOC(object_info) + + hdferr = H5Oget_info_by_name_c(loc_id, name, namelen, lapl_id_default, ptr) + + END SUBROUTINE H5Oget_info_by_name_f + +!****s* H5O (F03)/h5oget_info_f_F03 +! +! NAME +! h5oget_info_f +! +! PURPOSE +! Retrieves the metadata for an object specified by an identifier. +! +! Inputs: +! object_id - Identifier for target object. +! +! Outputs: +! object_info - Buffer in which to return object information. +! hdferr - Returns 0 if successful and -1 if fails. +! +! AUTHOR +! M. Scot Breitenfeld +! May 11, 2012 +! +! Fortran2003 Interface: + SUBROUTINE h5oget_info_f(object_id, object_info, hdferr) + + USE, INTRINSIC :: ISO_C_BINDING + IMPLICIT NONE + INTEGER(HID_T) , INTENT(IN) :: object_id + TYPE(h5o_info_t), INTENT(OUT), TARGET :: object_info + INTEGER , INTENT(OUT) :: hdferr +!***** + TYPE(C_PTR) :: ptr + + INTERFACE + INTEGER FUNCTION h5oget_info_c(object_id, object_info) & + BIND(C, NAME='h5oget_info_c') + USE H5GLOBAL + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr + INTEGER(HID_T), INTENT(IN) :: object_id + TYPE(C_PTR), VALUE :: object_info + END FUNCTION h5oget_info_c + END INTERFACE + + ptr = C_LOC(object_info) + hdferr = H5Oget_info_c(object_id, ptr) + + END SUBROUTINE H5Oget_info_f + +!****s* H5O (F03)/h5oget_info_by_idx_f_F03 +! +! NAME +! h5oget_info_by_idx_f +! +! PURPOSE +! Retrieves the metadata for an object, identifying the object by an index position. +! +! Inputs: +! loc_id - File or group identifier specifying location of group +! in which object is located. +! group_name - Name of group in which object is located. +! index_field - Index or field that determines the order. +! order - Order within field or index. +! n - Object for which information is to be returned +! +! Outputs: +! object_info - Buffer in which to return object information. +! hdferr - Returns 0 if successful and -1 if fails. +! +! Optional parameters: +! lapl_id - Link access property list. (Not currently used.) +! +! AUTHOR +! M. Scot Breitenfeld +! May 11, 2012 +! +! Fortran2003 Interface: + SUBROUTINE h5oget_info_by_idx_f(loc_id, group_name, index_field, order, n, & + object_info, hdferr, lapl_id) + + USE, INTRINSIC :: ISO_C_BINDING + IMPLICIT NONE + INTEGER(HID_T) , INTENT(IN) :: loc_id + CHARACTER(LEN=*), INTENT(IN) :: group_name + INTEGER , INTENT(IN) :: index_field + INTEGER , INTENT(IN) :: order + INTEGER(HSIZE_T), INTENT(IN) :: n + TYPE(h5o_info_t), INTENT(OUT), TARGET :: object_info + INTEGER , INTENT(OUT) :: hdferr + INTEGER(HID_T) , INTENT(IN) , OPTIONAL :: lapl_id +!***** + INTEGER(SIZE_T) :: namelen + INTEGER(HID_T) :: lapl_id_default + TYPE(C_PTR) :: ptr + + INTERFACE + INTEGER FUNCTION h5oget_info_by_idx_c(loc_id, group_name, namelen, & + index_field, order, n, lapl_id_default, object_info) BIND(C, NAME='h5oget_info_by_idx_c') + USE H5GLOBAL + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr, c_funptr + INTEGER(HID_T) , INTENT(IN) :: loc_id + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: group_name + INTEGER(SIZE_T) , INTENT(IN) :: namelen + INTEGER , INTENT(IN) :: index_field + INTEGER , INTENT(IN) :: order + INTEGER(HSIZE_T), INTENT(IN) :: n + INTEGER(HID_T) , INTENT(IN) :: lapl_id_default + TYPE(C_PTR), VALUE :: object_info + + END FUNCTION h5oget_info_by_idx_c + END INTERFACE + + namelen = LEN(group_name) + + lapl_id_default = H5P_DEFAULT_F + IF(PRESENT(lapl_id)) lapl_id_default = lapl_id + + ptr = C_LOC(object_info) + hdferr = H5Oget_info_by_idx_c(loc_id, group_name, namelen, index_field, order, n, lapl_id_default, ptr) + + END SUBROUTINE H5Oget_info_by_idx_f + + +!****s* H5O (F03)/h5ovisit_by_name_f_F03 +! +! NAME +! h5ovisit_by_name_f +! +! PURPOSE +! Recursively visits all objects starting from a specified object. +! +! Inputs: +! loc_id - Identifier of a file or group. +! object_name - Name of the object, generally relative to loc_id, that will serve as root of the iteration +! 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: +! return_value - 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 - Returns 0 if successful and -1 if fails +! +! Optional parameters: +! lapl_id - Link access property list identifier. +! +! AUTHOR +! M. Scot Breitenfeld +! November 19, 2008 +! +! Fortran2003 Interface: + SUBROUTINE h5ovisit_by_name_f(loc_id, object_name, index_type, order, op, op_data, & + return_value, hdferr, lapl_id) + USE, INTRINSIC :: ISO_C_BINDING + IMPLICIT NONE + INTEGER(HID_T) , INTENT(IN) :: loc_id + CHARACTER(LEN=*), INTENT(IN) :: object_name + INTEGER , INTENT(IN) :: index_type + INTEGER , INTENT(IN) :: order + + TYPE(C_FUNPTR) :: op + TYPE(C_PTR) :: op_data + INTEGER , INTENT(OUT) :: return_value + INTEGER , INTENT(OUT) :: hdferr + INTEGER(HID_T) , INTENT(IN) , OPTIONAL :: lapl_id +!***** + + INTEGER(SIZE_T) :: namelen + INTEGER(HID_T) :: lapl_id_default + + INTERFACE + INTEGER FUNCTION h5ovisit_by_name_c(loc_id, object_name, namelen, index_type, order, & + op, op_data, lapl_id) BIND(C, NAME='h5ovisit_by_name_c') + USE, INTRINSIC :: ISO_C_BINDING + USE H5GLOBAL + INTEGER(HID_T) , INTENT(IN) :: loc_id + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: object_name + INTEGER(SIZE_T) :: namelen + INTEGER , INTENT(IN) :: index_type + INTEGER , INTENT(IN) :: order + TYPE(C_FUNPTR) , VALUE :: op + TYPE(C_PTR) , VALUE :: op_data + INTEGER(HID_T) , INTENT(IN) :: lapl_id + END FUNCTION h5ovisit_by_name_c + END INTERFACE + + namelen = LEN(object_name) + + lapl_id_default = H5P_DEFAULT_F + IF(PRESENT(lapl_id)) lapl_id_default = lapl_id + + return_value = h5ovisit_by_name_c(loc_id, object_name, namelen, index_type, order, & + op, op_data, lapl_id_default) + + IF(return_value.GE.0)THEN + hdferr = 0 + ELSE + hdferr = -1 + END IF + + END SUBROUTINE h5ovisit_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..5688c5d --- /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' 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 9735f48..fe2f21a 100644 --- a/fortran/src/H5Pf.c +++ b/fortran/src/H5Pf.c @@ -1,6 +1,6 @@ /****h* H5Pf/H5Pf * PURPOSE - * This file contains C stubs for H5P Fortran APIs + * This file contains C stubs for H5P Fortran APIs * * COPYRIGHT * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -23,35 +23,18 @@ #include "H5f90.h" #include "H5Eprivate.h" -#include "H5public.h" - -#ifdef H5_HAVE_PARALLEL - -#include <mpi.h> -/* Support for C to Fortran translation in MPI */ -#ifndef H5_HAVE_MPI_MULTI_LANG_Comm -#define MPI_Comm_c2f(comm) (int_f)(comm) -#define MPI_Comm_f2c(comm) (MPI_Comm)(comm) -#endif /*MPI Comm*/ - -#ifndef H5_HAVE_MPI_MULTI_LANG_Info -#define MPI_Info_c2f(info) (int_f)(info) -#define MPI_Info_f2c(info) (MPI_Info)(info) -#endif /*MPI Info*/ - -#endif /*H5_HAVE_PARALLEL*/ /****if* H5Pf/h5pcreate_c * NAME - * h5pcreate_c + * h5pcreate_c * PURPOSE - * Call H5Pcreate to create a property list + * Call H5Pcreate to create a property list * INPUTS - * cls - property list class identifier + * cls - property list class identifier * OUTPUTS - * prp_id - identifier of the created property list + * prp_id - identifier of the created property list * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal * Wednesday, October 9, 2002 @@ -60,7 +43,7 @@ */ int_f -h5pcreate_c ( hid_t_f *cls, hid_t_f *prp_id ) +nh5pcreate_c ( hid_t_f *cls, hid_t_f *prp_id ) /******/ { hid_t c_prp_id; @@ -78,22 +61,22 @@ done: /****if* H5Pf/h5pclose_c * NAME - * h5pclose_c + * h5pclose_c * PURPOSE - * Call H5Pclose to close property lis + * Call H5Pclose to close property lis * INPUTS - * prp_id - identifier of the property list to be closed + * prp_id - identifier of the property list to be closed * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Saturday, August 14, 1999 + * Saturday, August 14, 1999 * * SOURCE */ int_f -h5pclose_c ( hid_t_f *prp_id ) +nh5pclose_c ( hid_t_f *prp_id ) /******/ { int_f ret_value = 0; @@ -107,23 +90,23 @@ h5pclose_c ( hid_t_f *prp_id ) /****if* H5Pf/h5pcopy_c * NAME - * h5pcopy_c + * h5pcopy_c * PURPOSE - * Call H5Pcopy to copy property list + * Call H5Pcopy to copy property list * INPUTS - * prp_id - identifier of the property list to be copied + * prp_id - identifier of the property list to be copied * OUTPUTS - * new_prp_id - identifier of the new property list + * new_prp_id - identifier of the new property list * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Saturday, August 14, 1999 + * Saturday, August 14, 1999 * * SOURCE */ int_f -h5pcopy_c ( hid_t_f *prp_id , hid_t_f *new_prp_id) +nh5pcopy_c ( hid_t_f *prp_id , hid_t_f *new_prp_id) /******/ { hid_t c_new_prp_id; @@ -141,24 +124,24 @@ done: /****if* H5Pf/h5pequal_c * NAME - * h5pequal_c + * h5pequal_c * PURPOSE - * Call H5Pequal to check if two property lists are equal + * Call H5Pequal to check if two property lists are equal * INPUTS - * plist1_id - property list identifier - * plist2_id - property list identifier + * plist1_id - property list identifier + * plist2_id - property list identifier * OUTPUTS - * c_flag - flag to indicate that lists are eqaul + * c_flag - flag to indicate that lists are eqaul * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Monday, September 30, 2002 + * Monday, September 30, 2002 * * SOURCE */ int_f -h5pequal_c ( hid_t_f *plist1_id , hid_t_f *plist2_id, int_f * c_flag) +nh5pequal_c ( hid_t_f *plist1_id , hid_t_f *plist2_id, int_f * c_flag) /******/ { htri_t c_c_flag; @@ -193,7 +176,7 @@ done: */ int_f -h5pget_class_c ( hid_t_f *prp_id , hid_t_f *classtype) +nh5pget_class_c ( hid_t_f *prp_id , hid_t_f *classtype) /******/ { hid_t c_classtype; @@ -210,15 +193,15 @@ done: /****if* H5Pf/h5pset_preserve_c * NAME - * h5pset_preserve_c + * h5pset_preserve_c * PURPOSE - * Call H5Pset_preserve to set transfer property for compound - * datatype + * Call H5Pset_preserve to set transfer property for compound + * datatype * INPUTS - * prp_id - property list identifier - * flag - TRUE/FALSE flag + * prp_id - property list identifier + * flag - TRUE/FALSE flag * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal * Thursday, February 17, 2000 @@ -226,7 +209,7 @@ done: */ int_f -h5pset_preserve_c ( hid_t_f *prp_id , int_f *flag) +nh5pset_preserve_c ( hid_t_f *prp_id , int_f *flag) /******/ { int ret_value = 0; @@ -244,16 +227,16 @@ h5pset_preserve_c ( hid_t_f *prp_id , int_f *flag) /****if* H5Pf/h5pget_preserve_c * NAME - * h5pget_preserve_c + * h5pget_preserve_c * PURPOSE - * Call H5Pget_preserve to set transfer property for compound - * datatype + * Call H5Pget_preserve to set transfer property for compound + * datatype * INPUTS - * prp_id - property list identifier + * prp_id - property list identifier * OUTPUTS - * flag - TRUE/FALSE flag + * flag - TRUE/FALSE flag * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal * Thursday, February 17, 2000 @@ -261,7 +244,7 @@ h5pset_preserve_c ( hid_t_f *prp_id , int_f *flag) */ int_f -h5pget_preserve_c ( hid_t_f *prp_id , int_f *flag) +nh5pget_preserve_c ( hid_t_f *prp_id , int_f *flag) /******/ { int ret_value = 0; @@ -277,22 +260,22 @@ h5pget_preserve_c ( hid_t_f *prp_id , int_f *flag) /****if* H5Pf/h5pset_deflate_c * NAME - * h5pset_deflate_c + * h5pset_deflate_c * PURPOSE - * Call H5Pset_deflate to set deflate level + * Call H5Pset_deflate to set deflate level * INPUTS - * prp_id - property list identifier - * level - level of deflation + * prp_id - property list identifier + * level - level of deflation * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Saturday, August 14, 1999 + * Saturday, August 14, 1999 * SOURCE */ int_f -h5pset_deflate_c ( hid_t_f *prp_id , int_f *level) +nh5pset_deflate_c ( hid_t_f *prp_id , int_f *level) /******/ { int ret_value = 0; @@ -311,24 +294,24 @@ h5pset_deflate_c ( hid_t_f *prp_id , int_f *level) /****if* H5Pf/h5pset_chunk_c * NAME - * h5pset_chunk_c + * h5pset_chunk_c * PURPOSE - * Call H5Pset_chunk to set the sizes of chunks for a chunked - * layout dataset + * Call H5Pset_chunk to set the sizes of chunks for a chunked + * layout dataset * INPUTS - * prp_id - property list identifier - * rank - number of dimensions of each chunk - * dims - array of the size of each chunk + * 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 - * Saturday, August 14, 1999 + * 0 on success, -1 on failure + * Saturday, August 14, 1999 * AUTHOR * Elena Pourmal * SOURCE */ int_f -h5pset_chunk_c ( hid_t_f *prp_id, int_f *rank, hsize_t_f *dims ) +nh5pset_chunk_c ( hid_t_f *prp_id, int_f *rank, hsize_t_f *dims ) /******/ { int ret_value = -1; @@ -355,24 +338,24 @@ DONE: /****if* H5Pf/h5pget_chunk_c * NAME - * h5pget_chunk_c + * 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 + * 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 - * max rank - maximum number of dimensions to return - * dims - array of the size of each chunk + * 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 - * Saturday, August 14, 1999 + * number of chunk's dimnesion on success, -1 on failure + * Saturday, August 14, 1999 * AUTHOR * Elena Pourmal * SOURCE */ int_f -h5pget_chunk_c ( hid_t_f *prp_id, int_f *max_rank, hsize_t_f *dims ) +nh5pget_chunk_c ( hid_t_f *prp_id, int_f *max_rank, hsize_t_f *dims ) /******/ { int ret_value = -1; @@ -394,6 +377,36 @@ h5pget_chunk_c ( hid_t_f *prp_id, int_f *max_rank, hsize_t_f *dims ) return ret_value; } +/****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 + * Saturday, August 14, 1999 + * 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; + + /* + * Call h5pset_fill_value_c function. + */ + ret_value = h5pset_fill_value_c(prp_id, type_id, _fcdtocp(fillvalue)); + + return ret_value; +} + /****if* H5Pf/h5pset_fill_value_c * NAME * h5pset_fill_value_c @@ -431,6 +444,68 @@ h5pset_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue) return ret_value; } +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. + */ + return h5pset_fill_value_c(prp_id, type_id, fillvalue); +} + +int_f +nh5pset_fill_value_real_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue) +{ + /* + * Call h5pset_fill_value_c function. + */ + return h5pset_fill_value_c(prp_id, type_id, fillvalue); +} + +int_f +nh5pset_fill_value_double_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue) +{ + /* + * Call h5pset_fill_value_c function. + */ + return h5pset_fill_value_c(prp_id, type_id, fillvalue); +} + +/****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 + * AUTHOR + * Elena Pourmal + * Saturday, August 14, 1999 + * HISTORY + * Fixed wrong call to C wrapper, was nh5pset_fill_value_c, changed + * to nh5pget_fill_value_c. MSB - 7/21/2014 + * + * SOURCE +*/ +int_f +nh5pget_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue) +/******/ +{ + int ret_value = -1; + + /* + * Call h5pget_fill_value_c function. + */ + ret_value = h5pget_fill_value_c(prp_id, type_id, _fcdtocp(fillvalue)); + + return ret_value; +} + /****if* H5Pf/h5pget_fill_value_c * NAME * h5pget_fill_value_c @@ -468,30 +543,57 @@ h5pget_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue) return ret_value; } +int_f +nh5pget_fill_value_integer_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue) +{ + /* + * Call h5pget_fill_value_c function. + */ + return h5pget_fill_value_c(prp_id, type_id, fillvalue); +} + +int_f +nh5pget_fill_value_real_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue) +{ + /* + * Call h5pget_fill_value_c function. + */ + return h5pget_fill_value_c(prp_id, type_id, fillvalue); +} + +int_f +nh5pget_fill_value_double_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue) +{ + /* + * Call h5pget_fill_value_c function. + */ + return h5pget_fill_value_c(prp_id, type_id, fillvalue); +} + /****if* H5Pf/h5pget_version_c * NAME - * h5pget_version_c + * h5pget_version_c * PURPOSE - * Call H5Pget_version to get the version information - * of various objects for a file creation property list + * Call H5Pget_version to get the version information + * of various objects for a file creation property list * INPUTS - * prp_id - property list identifier + * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Wednesday, February 23, 2000 + * Wednesday, February 23, 2000 * HISTORY - * Removed extra length parameters EP 7/6/00 + * Removed extra length parameters EP 7/6/00 * SOURCE */ int_f -h5pget_version_c (hid_t_f *prp_id, int_f * boot,int_f * freelist, int_f * stab, int_f *shhdr) +nh5pget_version_c (hid_t_f *prp_id, int_f * boot,int_f * freelist, int_f * stab, int_f *shhdr) /******/ { int ret_value = -1; @@ -528,22 +630,22 @@ h5pget_version_c (hid_t_f *prp_id, int_f * boot,int_f * freelist, int_f * stab, /****if* H5Pf/h5pget_userblock_c * NAME - * h5pget_userblock_c + * h5pget_userblock_c * PURPOSE - * Call H5Pget_userblock to get the size of a user block in - * a file creation property list + * Call H5Pget_userblock to get the size of a user block in + * a file creation property list * INPUTS - * prp_id - property list identifier - * Outputs size - Size of the user-block in bytes + * prp_id - property list identifier + * Outputs size - Size of the user-block in bytes * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Wednesday, February 23, 2000 + * Wednesday, February 23, 2000 * SOURCE */ int_f -h5pget_userblock_c (hid_t_f *prp_id, hsize_t_f * size) +nh5pget_userblock_c (hid_t_f *prp_id, hsize_t_f * size) /******/ { int ret_value = -1; @@ -566,22 +668,22 @@ h5pget_userblock_c (hid_t_f *prp_id, hsize_t_f * size) /****if* H5Pf/h5pset_userblock_c * NAME - * h5pset_userblock_c + * h5pset_userblock_c * PURPOSE - * Call H5Pset_userblock to set the size of a user block in - * a file creation property list + * Call H5Pset_userblock to set the size of a user block in + * a file creation property list * INPUTS - * prp_id - property list identifier - * size - Size of the user-block in bytes + * prp_id - property list identifier + * size - Size of the user-block in bytes * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Wednesday, February 23, 2000 + * Wednesday, February 23, 2000 * SOURCE */ int_f -h5pset_userblock_c (hid_t_f *prp_id, hsize_t_f * size) +nh5pset_userblock_c (hid_t_f *prp_id, hsize_t_f * size) /******/ { int ret_value = -1; @@ -603,25 +705,25 @@ h5pset_userblock_c (hid_t_f *prp_id, hsize_t_f * size) /****if* H5Pf/h5pget_sizes_c * NAME - * h5pget_sizes_c + * h5pget_sizes_c * PURPOSE - * Call H5Pget_sizes to get the size of the offsets - * and lengths used in an HDF5 file + * Call H5Pget_sizes to get the size of the offsets + * and lengths used in an HDF5 file * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Wednesday, February 23, 2000 + * Wednesday, February 23, 2000 * HISTORY - * Deleted extra length parameters. EP 6/7/00 + * Deleted extra length parameters. EP 6/7/00 * SOURCE */ int_f -h5pget_sizes_c (hid_t_f *prp_id, size_t_f * sizeof_addr, size_t_f * sizeof_size) +nh5pget_sizes_c (hid_t_f *prp_id, size_t_f * sizeof_addr, size_t_f * sizeof_size) /******/ { int ret_value = -1; @@ -646,24 +748,24 @@ h5pget_sizes_c (hid_t_f *prp_id, size_t_f * sizeof_addr, size_t_f * sizeof_size) /****if* H5Pf/h5pset_sizes_c * NAME - * h5pset_sizes_c + * h5pset_sizes_c * PURPOSE - * Call H5Pset_sizes to set the size of the offsets + * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Wednesday, February 23, 2000 + * Wednesday, February 23, 2000 * HISTORY * * SOURCE */ int_f -h5pset_sizes_c (hid_t_f *prp_id, size_t_f * sizeof_addr, size_t_f * sizeof_size) +nh5pset_sizes_c (hid_t_f *prp_id, size_t_f * sizeof_addr, size_t_f * sizeof_size) /******/ { int ret_value = -1; @@ -686,23 +788,23 @@ h5pset_sizes_c (hid_t_f *prp_id, size_t_f * sizeof_addr, size_t_f * sizeof_size) /****if* H5Pf/h5pset_sym_k_c * NAME - * h5pset_sym_k_c + * h5pset_sym_k_c * PURPOSE - * Call H5Pset_sym_k to set the size of parameters used - * to control the symbol table node + * Call H5Pset_sym_k to set the size of parameters used + * to control the symbol table node * INPUTS - * prp_id - property list identifier - * ik - Symbol table tree rank - * lk - Symbol table node size + * prp_id - property list identifier + * ik - Symbol table tree rank + * lk - Symbol table node size * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Friday, February 25, 2000 + * Friday, February 25, 2000 * SOURCE */ int_f -h5pset_sym_k_c (hid_t_f *prp_id, int_f* ik, int_f* lk) +nh5pset_sym_k_c (hid_t_f *prp_id, int_f* ik, int_f* lk) /******/ { int ret_value = -1; @@ -726,26 +828,26 @@ h5pset_sym_k_c (hid_t_f *prp_id, int_f* ik, int_f* lk) /****if* H5Pf/h5pget_sym_k_c * NAME - * h5pget_sym_k_c + * h5pget_sym_k_c * PURPOSE - * Call H5Pget_sym_k to get the size of parameters used - * to control the symbol table node + * Call H5Pget_sym_k to get the size of parameters used + * to control the symbol table node * INPUTS - * prp_id - property list identifier + * prp_id - property list identifier * OUTPUTS - * ik - Symbol table tree rank - * lk - Symbol table node size + * ik - Symbol table tree rank + * lk - Symbol table node size * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Friday, February 25, 2000 + * Friday, February 25, 2000 * HISTORY * * SOURCE */ int_f -h5pget_sym_k_c (hid_t_f *prp_id, int_f* ik, int_f* lk) +nh5pget_sym_k_c (hid_t_f *prp_id, int_f* ik, int_f* lk) /******/ { int ret_value = -1; @@ -768,24 +870,24 @@ h5pget_sym_k_c (hid_t_f *prp_id, int_f* ik, int_f* lk) /****if* H5Pf/h5pset_istore_k_c * NAME - * h5pset_istore_k_c + * 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 + * 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 - * ik - Symbol table tree rank + * prp_id - property list identifier + * ik - Symbol table tree rank * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Friday, February 25, 2000 + * Friday, February 25, 2000 * HISTORY * * SOURCE */ int_f -h5pset_istore_k_c (hid_t_f *prp_id, int_f* ik) +nh5pset_istore_k_c (hid_t_f *prp_id, int_f* ik) /******/ { int ret_value = -1; @@ -807,25 +909,25 @@ h5pset_istore_k_c (hid_t_f *prp_id, int_f* ik) /****if* H5Pf/h5pget_istore_k_c * NAME - * h5pget_istore_k_c + * 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 + * 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 + * prp_id - property list identifier * OUTPUTS - * ik - Symbol table tree rank + * ik - Symbol table tree rank * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Friday, February 25, 2000 + * Friday, February 25, 2000 * HISTORY * * SOURCE */ int_f -h5pget_istore_k_c (hid_t_f *prp_id, int_f* ik) +nh5pget_istore_k_c (hid_t_f *prp_id, int_f* ik) /******/ { int ret_value = -1; @@ -846,24 +948,24 @@ h5pget_istore_k_c (hid_t_f *prp_id, int_f* ik) /****if* H5Pf/h5pget_driver_c * NAME - * h5pget_driver_c + * h5pget_driver_c * PURPOSE - * Call H5Pget_driver to get low-level file driver identifier + * Call H5Pget_driver to get low-level file driver identifier * INPUTS - * prp_id - property list identifier + * prp_id - property list identifier * OUTPUTS - * driver - low-level file driver identifier + * driver - low-level file driver identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Friday, February 25, 2000 + * Friday, February 25, 2000 * HISTORY * * SOURCE */ int_f -h5pget_driver_c (hid_t_f *prp_id, hid_t_f* driver) +nh5pget_driver_c (hid_t_f *prp_id, hid_t_f* driver) /******/ { int ret_value = -1; @@ -884,23 +986,23 @@ DONE: /****if* H5Pf/h5pset_fapl_stdio_c * NAME - * h5pset_fapl_stdio_c + * h5pset_fapl_stdio_c * PURPOSE - * Call H5Pset_stdio to set the low level file driver to - * use the functions declared in the stdio.h + * 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 + * prp_id - property list identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * March 7, 2001 + * March 7, 2001 * HISTORY * * SOURCE */ int_f -h5pset_fapl_stdio_c (hid_t_f *prp_id) +nh5pset_fapl_stdio_c (hid_t_f *prp_id) /******/ { int ret_value = -1; @@ -918,26 +1020,26 @@ h5pset_fapl_stdio_c (hid_t_f *prp_id) #ifdef NO_SUCH_F90_FUNCTION /****if* H5Pf/h5pget_fapl_stdio_c * NAME - * h5pget_fapl_stdio_c + * 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 + * 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 + * prp_id - property list identifier * OUTPUTS - * io - value indicates whether the file driver uses - * the functions declared in the stdio.h + * io - value indicates whether the file driver uses + * the functions declared in the stdio.h * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * March 9, 2001 + * March 9, 2001 * HISTORY * * SOURCE */ int_f -h5pget_fapl_stdio_c (hid_t_f *prp_id, int_f* io) +nh5pget_fapl_stdio_c (hid_t_f *prp_id, int_f* io) /******/ { int ret_value = -1; @@ -958,23 +1060,23 @@ h5pget_fapl_stdio_c (hid_t_f *prp_id, int_f* io) /****if* H5Pf/h5pset_fapl_sec2_c * NAME - * h5pset_fapl_sec2_c + * 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 + * 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 + * prp_id - property list identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * March 9, 2001 + * March 9, 2001 * HISTORY * * SOURCE */ int_f -h5pset_fapl_sec2_c (hid_t_f *prp_id) +nh5pset_fapl_sec2_c (hid_t_f *prp_id) /******/ { int ret_value = -1; @@ -993,26 +1095,26 @@ h5pset_fapl_sec2_c (hid_t_f *prp_id) #ifdef NO_SUCH_F90_FUNCTION /****if* H5Pf/h5pget_fapl_sec2_c * NAME - * h5pget_fapl_sec2_c + * 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 + * 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 + * prp_id - property list identifier * OUTPUTS - * sec2 - value indicates whether the file driver uses - * the functions declared in the unistd.h + * sec2 - value indicates whether the file driver uses + * the functions declared in the unistd.h * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * March 9, 2001 + * March 9, 2001 * HISTORY * * SOURCE */ int_f -h5pget_fapl_sec2_c (hid_t_f *prp_id, int_f* sec2) +nh5pget_fapl_sec2_c (hid_t_f *prp_id, int_f* sec2) /******/ { int ret_value = -1; @@ -1032,25 +1134,25 @@ h5pget_fapl_sec2_c (hid_t_f *prp_id, int_f* sec2) /****if* H5Pf/h5pset_alignment_c * NAME - * h5pset_alignment_c + * h5pset_alignment_c * PURPOSE - * Call H5Pset_alignment to set alignment properties of - * a file access property list + * Call H5Pset_alignment to set alignment properties of + * a file access property list * INPUTS - * prp_id - property list identifier - * threshold - Threshold value - * alignment - Alignment value + * prp_id - property list identifier + * threshold - Threshold value + * alignment - Alignment value * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Friday, February 25, 2000 + * Friday, February 25, 2000 * HISTORY * * SOURCE */ int_f -h5pset_alignment_c (hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment) +nh5pset_alignment_c (hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment) /******/ { int ret_value = -1; @@ -1071,25 +1173,25 @@ h5pset_alignment_c (hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment) /****if* H5Pf/h5pget_alignment_c * NAME - * h5pget_alignment_c + * h5pget_alignment_c * PURPOSE - * Call H5Pget_alignment to get alignment properties of - * a file access property list + * Call H5Pget_alignment to get alignment properties of + * a file access property list * INPUTS - * prp_id - property list identifier - * threshold - Threshold value - * alignment - Alignment value + * prp_id - property list identifier + * threshold - Threshold value + * alignment - Alignment value * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Friday, February 25, 2000 + * Friday, February 25, 2000 * HISTORY * * SOURCE */ int_f -h5pget_alignment_c (hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment) +nh5pget_alignment_c (hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment) /******/ { int ret_value = -1; @@ -1111,26 +1213,26 @@ h5pget_alignment_c (hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment) /****if* H5Pf/h5pset_fapl_core_c * NAME - * h5pset_fapl_core_c + * h5pset_fapl_core_c * PURPOSE - * Call H5Pset_fapl_core to set the low-level file driver - * to use malloc() and free() + * Call H5Pset_fapl_core to set the low-level file driver + * to use malloc() and free() * 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. + * 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 + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * March 9, 2001 + * March 9, 2001 * HISTORY * * SOURCE */ int_f -h5pset_fapl_core_c (hid_t_f *prp_id, size_t_f* increment, int_f *flag) +nh5pset_fapl_core_c (hid_t_f *prp_id, size_t_f* increment, int_f *flag) /******/ { int ret_value = -1; @@ -1153,24 +1255,24 @@ h5pset_fapl_core_c (hid_t_f *prp_id, size_t_f* increment, int_f *flag) /****if* H5Pf/h5pget_fapl_core_c * NAME - * h5pget_fapl_core_c + * h5pget_fapl_core_c * PURPOSE - * Call H5Pget_fapl_core to determine whether the file access - * property list is set to the core drive + * Call H5Pget_fapl_core to determine whether the file access + * property list is set to the core drive * INPUTS - * prp_id - property list identifier - * Outputs increment - File block size in bytes + * prp_id - property list identifier + * Outputs increment - File block size in bytes * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * March 9, 2001 + * March 9, 2001 * HISTORY * * SOURCE */ int_f -h5pget_fapl_core_c (hid_t_f *prp_id, size_t_f* increment, int_f *flag) +nh5pget_fapl_core_c (hid_t_f *prp_id, size_t_f* increment, int_f *flag) /******/ { int ret_value = -1; @@ -1193,26 +1295,26 @@ h5pget_fapl_core_c (hid_t_f *prp_id, size_t_f* increment, int_f *flag) /****if* H5Pf/h5pset_fapl_family_c * NAME - * h5pset_fapl_family_c + * h5pset_fapl_family_c * PURPOSE - * Call H5Pset_fapl_family to set the file access properties list - * to the family driver + * Call H5Pset_fapl_family to set the file access properties list + * to the family driver * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * March 9, 2001 + * March 9, 2001 * HISTORY * * SOURCE */ int_f -h5pset_fapl_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist ) +nh5pset_fapl_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist ) /******/ { int ret_value = -1; @@ -1234,26 +1336,26 @@ h5pset_fapl_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist /****if* H5Pf/h5pget_fapl_family_c * NAME - * h5pget_fapl_family_c + * h5pget_fapl_family_c * PURPOSE - * Call H5Pget_fapl_family to determine whether the file access - * property list is set to the family driver + * Call H5Pget_fapl_family to determine whether the file access + * property list is set to the family driver * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * March 9, 2001 + * March 9, 2001 * HISTORY * * SOURCE */ int_f -h5pget_fapl_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist) +nh5pget_fapl_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist) /******/ { int ret_value = -1; @@ -1276,29 +1378,29 @@ h5pget_fapl_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist) /****if* H5Pf/h5pset_cache_c * NAME - * h5pset_cache_c + * 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 + * 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 - * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Friday, February 25, 2000 + * Friday, February 25, 2000 * HISTORY - * Changed the type of the rdcc_w0 parameter to be real_f EP 7/7/00 - * instead of double + * Changed the type of the rdcc_w0 parameter to be real_f EP 7/7/00 + * instead of double * SOURCE */ int_f -h5pset_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 ) +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; @@ -1325,32 +1427,32 @@ h5pset_cache_c(hid_t_f *prp_id, int_f* mdc_nelmts, size_t_f* rdcc_nelmts, size_ /****if* H5Pf/h5pget_cache_c * NAME - * h5pget_cache_c + * 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 + * 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 + * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Friday, February 25, 2000 + * Friday, February 25, 2000 * 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. + * 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 -h5pget_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) +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; @@ -1377,29 +1479,29 @@ h5pget_cache_c(hid_t_f *prp_id, int_f* mdc_nelmts, size_t_f* rdcc_nelmts, size_t /****if* H5Pf/h5pset_fapl_split_c * NAME - * h5pset_fapl_split_c + * h5pset_fapl_split_c * PURPOSE - * Call H5Pset_fapl_split to set he low-level driver to split meta data - * from raw data + * Call H5Pset_fapl_split to set he low-level driver to split meta data + * from raw data * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * March 9, 2001 + * March 9, 2001 * HISTORY * * SOURCE */ int_f -h5pset_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) +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; @@ -1438,32 +1540,32 @@ DONE: #ifdef NO_SUCH_F90_FUNCTION /****if* H5Pf/h5pget_fapl_split_c * NAME - * h5pget_fapl_split_c + * h5pget_fapl_split_c * PURPOSE - * Call H5Pget_fapl_split to determine whether the file access - * property list is set to the split driver + * Call H5Pget_fapl_split to determine whether the file access + * property list is set to the split driver * 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 + * 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 *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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * March 9 , 2001 + * March 9 , 2001 * HISTORY * * SOURCE */ int_f -h5pget_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) +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; @@ -1501,25 +1603,25 @@ h5pget_fapl_split_c(hid_t_f *prp_id, size_t_f* meta_ext_size , _fcd meta_ext, hi /****if* H5Pf/h5pset_gc_references_c * NAME - * h5pset_gc_references_c + * h5pset_gc_references_c * PURPOSE - * Call H5Pset_gc_references to set garbage - * collecting references flag + * Call H5Pset_gc_references to set garbage + * collecting references flag * INPUTS - * prp_id - property list identifier - * gc_reference - flag for garbage collecting references - * for the file + * prp_id - property list identifier + * gc_reference - flag for garbage collecting references + * for the file * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Friday, February 25, 2000 + * Friday, February 25, 2000 * HISTORY * * SOURCE */ int_f -h5pset_gc_references_c (hid_t_f *prp_id, int_f* gc_references) +nh5pset_gc_references_c (hid_t_f *prp_id, int_f* gc_references) /******/ { int ret_value = -1; @@ -1541,25 +1643,25 @@ h5pset_gc_references_c (hid_t_f *prp_id, int_f* gc_references) /****if* H5Pf/h5pget_gc_references_c * NAME - * h5pget_gc_references_c + * h5pget_gc_references_c * PURPOSE - * Call H5Pget_gc_references to set garbage - * collecting references flag + * Call H5Pget_gc_references to set garbage + * collecting references flag * INPUTS - * prp_id - property list identifier - * Outputs gc_reference - flag for garbage collecting references - * for the file + * prp_id - property list identifier + * Outputs gc_reference - flag for garbage collecting references + * for the file * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Friday, February 25, 2000 + * Friday, February 25, 2000 * HISTORY * * SOURCE */ int_f -h5pget_gc_references_c (hid_t_f *prp_id, int_f* gc_references) +nh5pget_gc_references_c (hid_t_f *prp_id, int_f* gc_references) /******/ { int ret_value = -1; @@ -1579,24 +1681,24 @@ h5pget_gc_references_c (hid_t_f *prp_id, int_f* gc_references) /****if* H5Pf/h5pset_layout_c * NAME - * h5pset_layout_c + * h5pset_layout_c * PURPOSE - * Call H5Pset_layout to the type of storage used - * store the raw data for a dataset + * Call H5Pset_layout to the type of storage used + * store the raw data for a dataset * INPUTS - * prp_id - property list identifier - * layout - Type of storage layout for raw data. + * prp_id - property list identifier + * layout - Type of storage layout for raw data. * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Friday, February 25, 2000 + * Friday, February 25, 2000 * HISTORY * * SOURCE */ int_f -h5pset_layout_c (hid_t_f *prp_id, int_f* layout) +nh5pset_layout_c (hid_t_f *prp_id, int_f* layout) /******/ { int ret_value = -1; @@ -1617,25 +1719,25 @@ h5pset_layout_c (hid_t_f *prp_id, int_f* layout) /****if* H5Pf/h5pget_layout_c * NAME - * h5pget_layout_c + * h5pget_layout_c * PURPOSE - * Call H5Pget_layout to the type of storage used - * store the raw data for a dataset + * Call H5Pget_layout to the type of storage used + * store the raw data for a dataset * INPUTS - * prp_id - property list identifier + * prp_id - property list identifier * OUTPUTS - * layout - Type of storage layout for raw data. + * layout - Type of storage layout for raw data. * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Friday, February 25, 2000 + * Friday, February 25, 2000 * HISTORY * * SOURCE */ int_f -h5pget_layout_c (hid_t_f *prp_id, int_f* layout) +nh5pget_layout_c (hid_t_f *prp_id, int_f* layout) /******/ { int ret_value = -1; @@ -1654,27 +1756,27 @@ h5pget_layout_c (hid_t_f *prp_id, int_f* layout) /****if* H5Pf/h5pset_filter_c * NAME - * h5pset_filter_c + * h5pset_filter_c * PURPOSE - * Call H5Pset_filter to add a filter to the filter pipeline. + * 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. + * 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 + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Wednesday, February 23, 2000 + * Wednesday, February 23, 2000 * HISTORY * * SOURCE */ int_f -h5pset_filter_c (hid_t_f *prp_id, int_f* filter, int_f* flags, size_t_f* cd_nelmts, int_f* cd_values ) +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; @@ -1722,7 +1824,7 @@ DONE: * SOURCE */ int_f -h5pget_nfilters_c (hid_t_f *prp_id, int_f* nfilters) +nh5pget_nfilters_c (hid_t_f *prp_id, int_f* nfilters) /******/ { int ret_value = -1; @@ -1742,30 +1844,30 @@ h5pget_nfilters_c (hid_t_f *prp_id, int_f* nfilters) } /*---------------------------------------------------------------------------- - * Name: h5pget_filter_c - * Purpose: Call H5Pget_filter2 to get information about a filter - * in a pipeline - * Inputs: prp_id - property list identifier - * filter_number - Sequence number within the filter - * pipeline of the filter for which - * information is sought. - * namelen - Anticipated number of characters in name. - * Outputs: 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 - * filter_id - filter identification number - * Returns: 0 on success, -1 on failure - * Programmer: Xiangyang Su - * Friday, February 25, 2000 - * Modifications: - * Since cd_nelmts has IN/OUT attributes, fixed the input and - * returned value of cd_nelmnts to satisfy this specification. + * Name: h5pget_filter_c + * Purpose: Call H5Pget_filter2 to get information about a filter + * in a pipeline + * Inputs: prp_id - property list identifier + * filter_number - Sequence number within the filter + * pipeline of the filter for which + * information is sought. + * namelen - Anticipated number of characters in name. + *Outputs: 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 + * filter_id - filter identification number + * Returns: 0 on success, -1 on failure + * Programmer: Xiangyang Su + * Friday, February 25, 2000 + * Modifications: + * Since cd_nelmts has IN/OUT attributes, fixed the input and + * returned value of cd_nelmnts to satisfy this specification. * MSB January 27, 2009 *---------------------------------------------------------------------------*/ int_f -h5pget_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) +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; @@ -1819,7 +1921,7 @@ DONE: * 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. + * 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 @@ -1832,7 +1934,7 @@ DONE: * SOURCE */ int_f -h5pset_external_c (hid_t_f *prp_id, _fcd name, int_f* namelen, off_t_f* offset, hsize_t_f*bytes) +nh5pset_external_c (hid_t_f *prp_id, _fcd name, int_f* namelen, off_t_f* offset, hsize_t_f*bytes) /******/ { int ret_value = -1; @@ -1865,25 +1967,25 @@ DONE: /****if* H5Pf/h5pget_external_count_c * NAME - * h5pget_external_count_c + * h5pget_external_count_c * PURPOSE - * Call H5Pget_external_count to get the number of external - * files for the specified dataset. + * Call H5Pget_external_count to get the number of external + * files for the specified dataset. * INPUTS - * prp_id - property list identifier + * prp_id - property list identifier * OUTPUTS - * count - number of external files + * count - number of external files * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Friday, February 25, 2000 + * Friday, February 25, 2000 * HISTORY * * SOURCE */ int_f -h5pget_external_count_c (hid_t_f *prp_id, int_f* count) +nh5pget_external_count_c (hid_t_f *prp_id, int_f* count) /******/ { int ret_value = -1; @@ -1906,14 +2008,14 @@ h5pget_external_count_c (hid_t_f *prp_id, int_f* count) * 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. + * 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. + * 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 @@ -1925,7 +2027,7 @@ h5pget_external_count_c (hid_t_f *prp_id, int_f* count) * SOURCE */ int_f -h5pget_external_c(hid_t_f *prp_id, int_f *idx, size_t_f* name_size, _fcd name, off_t_f* offset, hsize_t_f*bytes) +nh5pget_external_c(hid_t_f *prp_id, int_f *idx, size_t_f* name_size, _fcd name, off_t_f* offset, hsize_t_f*bytes) /******/ { int ret_value = -1; @@ -1969,27 +2071,27 @@ DONE: /****if* H5Pf/h5pset_btree_ratios_c * NAME - * h5pset_btree_ratios_c + * 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. + * 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 - * 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. + * 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 + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Friday, February 25, 2000 + * Friday, February 25, 2000 * HISTORY - * Changed the type of the last three parameters from double to real_f + * Changed the type of the last three parameters from double to real_f * SOURCE */ int_f -h5pset_btree_ratios_c(hid_t_f *prp_id, real_f* left, real_f* middle, real_f* right) +nh5pset_btree_ratios_c(hid_t_f *prp_id, real_f* left, real_f* middle, real_f* right) /******/ { int ret_value = -1; @@ -2014,27 +2116,27 @@ h5pset_btree_ratios_c(hid_t_f *prp_id, real_f* left, real_f* middle, real_f* rig /****if* H5Pf/h5pget_btree_ratios_c * NAME - * h5pget_btree_ratios_c + * h5pget_btree_ratios_c * PURPOSE - * Call H5Pget_btree_ratios to Gets B-tree split ratios - * for a dataset transfer property list. + * Call H5Pget_btree_ratios to Gets B-tree split ratios + * for a dataset transfer property list. * 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. + * 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 + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Friday, February 25, 2000 + * Friday, February 25, 2000 * HISTORY - * Changed the type of the last three parameters from double to real_f + * Changed the type of the last three parameters from double to real_f * SOURCE */ int_f -h5pget_btree_ratios_c(hid_t_f *prp_id, real_f* left, real_f* middle, real_f* right) +nh5pget_btree_ratios_c(hid_t_f *prp_id, real_f* left, real_f* middle, real_f* right) /******/ { int ret_value = -1; @@ -2056,30 +2158,30 @@ h5pget_btree_ratios_c(hid_t_f *prp_id, real_f* left, real_f* middle, real_f* rig } /****if* H5Pf/h5pget_fclose_degree_c * NAME - * h5pget_fclose_degree_c + * h5pget_fclose_degree_c * PURPOSE - * Call H5Pget_fclose_degree to determine file close behavior + * Call H5Pget_fclose_degree to determine file close behavior * INPUTS - * fapl_id - file access identifier + * fapl_id - file access identifier * OUTPUTS * - * degree - possible values are: + * degree - possible values are: * H5F_CLOSE_DEFAULT * H5F_CLOSE_WEAK * H5F_CLOSE_SEMI * H5F_CLOSE_STRONG * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Thursday, September 26, 2002 + * Thursday, September 26, 2002 * HISTORY * * SOURCE */ int_f -h5pget_fclose_degree_c ( hid_t_f *fapl_id , int_f *degree) +nh5pget_fclose_degree_c ( hid_t_f *fapl_id , int_f *degree) /******/ { int ret_value = -1; @@ -2096,28 +2198,28 @@ h5pget_fclose_degree_c ( hid_t_f *fapl_id , int_f *degree) /****if* H5Pf/h5pset_fclose_degree_c * NAME - * h5pset_fclose_degree_c + * h5pset_fclose_degree_c * PURPOSE - * Call H5Pset_fclose_degree to set file close behavior + * Call H5Pset_fclose_degree to set file close behavior * INPUTS - * fapl_id - file access identifier - * degree - possible values are: + * 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 + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Thursday, September 26, 2002 + * Thursday, September 26, 2002 * HISTORY * * SOURCE */ int_f -h5pset_fclose_degree_c ( hid_t_f *fapl_id , int_f *degree) +nh5pset_fclose_degree_c ( hid_t_f *fapl_id , int_f *degree) /******/ { int ret_value = -1; @@ -2134,26 +2236,26 @@ h5pset_fclose_degree_c ( hid_t_f *fapl_id , int_f *degree) /****if* H5Pf/h5pset_buffer_c * NAME - * h5pset_buffer_c + * h5pset_buffer_c * PURPOSE - * Call H5Pset_buffer to set size of conversion buffer + * Call H5Pset_buffer to set size of conversion buffer * INPUTS - * prp_id - t`dataset trasfer property list identifier - * size - size of the buffer + * prp_id - t`dataset trasfer property list identifier + * size - size of the buffer * OUTPUTS * NONE * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, October 2, 2002 + * Wednesday, October 2, 2002 * HISTORY * * SOURCE */ int_f -h5pset_buffer_c ( hid_t_f *prp_id , hsize_t_f *size) +nh5pset_buffer_c ( hid_t_f *prp_id , hsize_t_f *size) /******/ { int ret_value = 0; @@ -2168,25 +2270,25 @@ h5pset_buffer_c ( hid_t_f *prp_id , hsize_t_f *size) /****if* H5Pf/h5pget_buffer_c * NAME - * h5pget_buffer_c + * h5pget_buffer_c * PURPOSE - * Call H5Pget_buffer to get size of conversion buffer + * Call H5Pget_buffer to get size of conversion buffer * INPUTS - * prp_id - t`dataset trasfer property list identifier + * prp_id - t`dataset trasfer property list identifier * OUTPUTS - * size - size of conversion buffer + * size - size of conversion buffer * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, October 2, 2002 + * Wednesday, October 2, 2002 * HISTORY * * SOURCE */ int_f -h5pget_buffer_c ( hid_t_f *prp_id , hsize_t_f *size) +nh5pget_buffer_c ( hid_t_f *prp_id , hsize_t_f *size) /******/ { int ret_value = -1; @@ -2202,25 +2304,25 @@ h5pget_buffer_c ( hid_t_f *prp_id , hsize_t_f *size) } /****if* H5Pf/h5pfill_value_defined_c * NAME - * h5pfill_value_defined_c + * h5pfill_value_defined_c * PURPOSE - * Call H5Pfill_value_defined to check if fill value is defined + * Call H5Pfill_value_defined to check if fill value is defined * INPUTS - * prp_id - dataset creation property list identifier + * prp_id - dataset creation property list identifier * OUTPUTS - * flag - fill value status flag + * flag - fill value status flag * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Friday, October 4, 2002 + * Friday, October 4, 2002 * HISTORY * * SOURCE */ int_f -h5pfill_value_defined_c ( hid_t_f *prp_id , int_f *flag) +nh5pfill_value_defined_c ( hid_t_f *prp_id , int_f *flag) /******/ { int ret_value = -1; @@ -2235,26 +2337,26 @@ h5pfill_value_defined_c ( hid_t_f *prp_id , int_f *flag) } /****if* H5Pf/h5pget_alloc_time_c * NAME - * h5pget_alloc_time_c + * h5pget_alloc_time_c * PURPOSE - * Call H5Pget_alloc_time to get space allocation - * time for dataset during creation + * Call H5Pget_alloc_time to get space allocation + * time for dataset during creation * INPUTS - * prp_id - dataset creation property list identifier + * prp_id - dataset creation property list identifier * OUTPUTS - * flag - allocation time flag + * flag - allocation time flag * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Friday, October 4, 2002 + * Friday, October 4, 2002 * HISTORY * * SOURCE */ int_f -h5pget_alloc_time_c ( hid_t_f *prp_id , int_f *flag) +nh5pget_alloc_time_c ( hid_t_f *prp_id , int_f *flag) /******/ { int ret_value = -1; @@ -2269,25 +2371,25 @@ h5pget_alloc_time_c ( hid_t_f *prp_id , int_f *flag) } /****if* H5Pf/h5pset_alloc_time_c * NAME - * h5pset_alloc_time_c + * h5pset_alloc_time_c * PURPOSE - * Call H5Pset_alloc_time to get space allocation - * time for dataset during creation + * Call H5Pset_alloc_time to get space allocation + * time for dataset during creation * INPUTS - * prp_id - dataset creation property list identifier - * flag - allocation time flag + * prp_id - dataset creation property list identifier + * flag - allocation time flag * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Friday, October 4, 2002 + * Friday, October 4, 2002 * HISTORY * * SOURCE */ int_f -h5pset_alloc_time_c ( hid_t_f *prp_id , int_f *flag) +nh5pset_alloc_time_c ( hid_t_f *prp_id , int_f *flag) /******/ { int ret_value = -1; @@ -2302,26 +2404,26 @@ h5pset_alloc_time_c ( hid_t_f *prp_id , int_f *flag) } /****if* H5Pf/h5pget_fill_time_c * NAME - * h5pget_fill_time_c + * h5pget_fill_time_c * PURPOSE - * Call H5Pget_fill_time to get fill value writing - * time for dataset during creation + * Call H5Pget_fill_time to get fill value writing + * time for dataset during creation * INPUTS - * prp_id - dataset creation property list identifier + * prp_id - dataset creation property list identifier * OUTPUTS - * flag - fill value writing time flag + * flag - fill value writing time flag * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Friday, October 4, 2002 + * Friday, October 4, 2002 * HISTORY * * SOURCE */ int_f -h5pget_fill_time_c ( hid_t_f *prp_id , int_f *flag) +nh5pget_fill_time_c ( hid_t_f *prp_id , int_f *flag) /******/ { int ret_value = -1; @@ -2336,25 +2438,25 @@ h5pget_fill_time_c ( hid_t_f *prp_id , int_f *flag) } /****if* H5Pf/h5pset_fill_time_c * NAME - * h5pset_fill_time_c + * h5pset_fill_time_c * PURPOSE - * Call H5Pset_fill_time to set fill value writing - * time for dataset during creation + * Call H5Pset_fill_time to set fill value writing + * time for dataset during creation * INPUTS - * prp_id - dataset creation property list identifier - * flag - fill value writing time flag + * prp_id - dataset creation property list identifier + * flag - fill value writing time flag * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Friday, October 4, 2002 + * Friday, October 4, 2002 * HISTORY * * SOURCE */ int_f -h5pset_fill_time_c ( hid_t_f *prp_id , int_f *flag) +nh5pset_fill_time_c ( hid_t_f *prp_id , int_f *flag) /******/ { int ret_value = -1; @@ -2369,26 +2471,26 @@ h5pset_fill_time_c ( hid_t_f *prp_id , int_f *flag) } /****if* H5Pf/h5pset_meta_block_size_c * NAME - * h5pset_meta_block_size_c + * h5pset_meta_block_size_c * PURPOSE - * Call H5Pset_meta_block_size to set size of metadata block + * 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 + * prp_id - file access property list identifier + * size - size of the metadata block * OUTPUTS * NONE * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Monday, October 7, 2002 + * Monday, October 7, 2002 * HISTORY * * SOURCE */ int_f -h5pset_meta_block_size_c ( hid_t_f *prp_id , hsize_t_f *size) +nh5pset_meta_block_size_c ( hid_t_f *prp_id , hsize_t_f *size) /******/ { int ret_value = 0; @@ -2402,26 +2504,26 @@ h5pset_meta_block_size_c ( hid_t_f *prp_id , hsize_t_f *size) } /****if* H5Pf/h5pget_meta_block_size_c * NAME - * h5pget_meta_block_size_c + * h5pget_meta_block_size_c * PURPOSE - * Call H5Pget_meta_block_size to get size of metadata block + * Call H5Pget_meta_block_size to get size of metadata block * INPUTS - * prp_id - file access property list identifier + * prp_id - file access property list identifier * OUTPUTS * - * size - size of the metadata block + * size - size of the metadata block * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Monday, October 7, 2002 + * Monday, October 7, 2002 * HISTORY * * SOURCE */ int_f -h5pget_meta_block_size_c ( hid_t_f *prp_id , hsize_t_f *size) +nh5pget_meta_block_size_c ( hid_t_f *prp_id , hsize_t_f *size) /******/ { int ret_value = 0; @@ -2435,26 +2537,26 @@ h5pget_meta_block_size_c ( hid_t_f *prp_id , hsize_t_f *size) } /****if* H5Pf/h5pset_sieve_buf_size_c * NAME - * h5pset_sieve_buf_size_c + * h5pset_sieve_buf_size_c * PURPOSE - * Call H5Pset_sieve_buf_size to set size of datasieve buffer + * Call H5Pset_sieve_buf_size to set size of datasieve buffer * INPUTS - * prp_id - file access property list identifier - * size - size of the buffer + * prp_id - file access property list identifier + * size - size of the buffer * OUTPUTS * NONE * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Monday, October 7, 2002 + * Monday, October 7, 2002 * HISTORY * * SOURCE */ int_f -h5pset_sieve_buf_size_c ( hid_t_f *prp_id , size_t_f *size) +nh5pset_sieve_buf_size_c ( hid_t_f *prp_id , size_t_f *size) /******/ { int ret_value = 0; @@ -2468,26 +2570,26 @@ h5pset_sieve_buf_size_c ( hid_t_f *prp_id , size_t_f *size) } /****if* H5Pf/h5pget_sieve_buf_size_c * NAME - * h5pget_sieve_buf_size_c + * h5pget_sieve_buf_size_c * PURPOSE - * Call H5Pget_sieve_buf_size to get size of datasieve buffer + * Call H5Pget_sieve_buf_size to get size of datasieve buffer * INPUTS - * prp_id - file access property list identifier + * prp_id - file access property list identifier * OUTPUTS * - * size - size of the buffer + * size - size of the buffer * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Monday, October 7, 2002 + * Monday, October 7, 2002 * HISTORY * * SOURCE */ int_f -h5pget_sieve_buf_size_c ( hid_t_f *prp_id , size_t_f *size) +nh5pget_sieve_buf_size_c ( hid_t_f *prp_id , size_t_f *size) /******/ { int ret_value = 0; @@ -2501,26 +2603,26 @@ h5pget_sieve_buf_size_c ( hid_t_f *prp_id , size_t_f *size) } /****if* H5Pf/h5pset_small_data_block_size_c * NAME - * h5pset_small_data_block_size_c + * h5pset_small_data_block_size_c * PURPOSE - * Call H5Pset_small_data_block_size to set size of raw small data block + * 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 + * prp_id - file access property list identifier + * size - size of the block * OUTPUTS * NONE * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Monday, October 7, 2002 + * Monday, October 7, 2002 * HISTORY * * SOURCE */ int_f -h5pset_small_data_block_size_c ( hid_t_f *prp_id , hsize_t_f *size) +nh5pset_small_data_block_size_c ( hid_t_f *prp_id , hsize_t_f *size) /******/ { int ret_value = 0; @@ -2534,26 +2636,26 @@ h5pset_small_data_block_size_c ( hid_t_f *prp_id , hsize_t_f *size) } /****if* H5Pf/h5pget_small_data_block_size_c * NAME - * h5pget_small_data_block_size_c + * h5pget_small_data_block_size_c * PURPOSE - * Call H5Pget_small_data_block_size to get size of raw small data block + * Call H5Pget_small_data_block_size to get size of raw small data block * INPUTS - * prp_id - file access property list identifier + * prp_id - file access property list identifier * OUTPUTS * - * size - size of the block + * size - size of the block * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Monday, October 7, 2002 + * Monday, October 7, 2002 * HISTORY * * SOURCE */ int_f -h5pget_small_data_block_size_c ( hid_t_f *prp_id , hsize_t_f *size) +nh5pget_small_data_block_size_c ( hid_t_f *prp_id , hsize_t_f *size) /******/ { int ret_value = 0; @@ -2567,26 +2669,26 @@ h5pget_small_data_block_size_c ( hid_t_f *prp_id , hsize_t_f *size) } /****if* H5Pf/h5pset_hyper_vector_size_c * NAME - * h5pset_hyper_vector_size_c + * h5pset_hyper_vector_size_c * PURPOSE - * Call H5Pset_hyper_vector_size to set size of the hyper vector + * 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 + * prp_id - dataset transfer property list identifier + * size - size of the vector * OUTPUTS * NONE * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Monday, October 7, 2002 + * Monday, October 7, 2002 * HISTORY * * SOURCE */ int_f -h5pset_hyper_vector_size_c ( hid_t_f *prp_id , size_t_f *size) +nh5pset_hyper_vector_size_c ( hid_t_f *prp_id , size_t_f *size) /******/ { int ret_value = 0; @@ -2600,26 +2702,26 @@ h5pset_hyper_vector_size_c ( hid_t_f *prp_id , size_t_f *size) } /****if* H5Pf/h5pget_hyper_vector_size_c * NAME - * h5pget_hyper_vector_size_c + * h5pget_hyper_vector_size_c * PURPOSE - * Call H5Pget_hyper_vector_size to get size of the hyper vector + * Call H5Pget_hyper_vector_size to get size of the hyper vector * INPUTS - * prp_id - dataset transfer property list identifier + * prp_id - dataset transfer property list identifier * OUTPUTS * - * size - size of the vector + * size - size of the vector * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Monday, October 7, 2002 + * Monday, October 7, 2002 * HISTORY * * SOURCE */ int_f -h5pget_hyper_vector_size_c ( hid_t_f *prp_id , size_t_f *size) +nh5pget_hyper_vector_size_c ( hid_t_f *prp_id , size_t_f *size) /******/ { int ret_value = 0; @@ -2631,6 +2733,36 @@ h5pget_hyper_vector_size_c ( hid_t_f *prp_id , size_t_f *size) *size = (size_t_f)c_size; return ret_value; } +/****if* H5Pf/h5pcreate_class_c + * NAME + * h5pcreate_class_c + * PURPOSE + * Call H5Pcreate_class to 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 + * AUTHOR + * Elena Pourmal + * October 11, 2002 + * + * HISTORY + * SOURCE +*/ +int_f +nh5pcreate_class_f90_c(hid_t_f *parent, _fcd name, int_f *name_len, hid_t_f *cls) +/******/ +{ + int ret_value = -1; + + ret_value = h5pcreate_class_c(parent, name, name_len, cls, NULL, NULL, NULL, NULL, NULL, NULL); + return ret_value; +} + /****if* H5Pf/h5pcreate_class_c * NAME @@ -2682,6 +2814,40 @@ DONE: return ret_value; } + +/****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 + * 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 H5_ATTR_UNUSED *value_len) +/******/ +{ + int ret_value = -1; + + /* + * Call h5pregister_c function + */ + ret_value = h5pregister_c(cls, name, name_len, size, _fcdtocp(value)); + return ret_value; +} + /****if* H5Pf/h5pregister_c * NAME * h5pregister_c @@ -2725,6 +2891,66 @@ DONE: return ret_value; } +int_f +nh5pregister_integer_c(hid_t_f *cls, _fcd name, int_f *name_len, size_t_f *size, void *value) +{ + /* + * Call h5pregister_c function + */ + return h5pregister_c(cls, name, name_len, size, value); +} + +int_f +nh5pregister_real_c(hid_t_f *cls, _fcd name, int_f *name_len, size_t_f *size, void *value) +{ + /* + * Call h5pregister_c function + */ + return h5pregister_c(cls, name, name_len, size, value); +} + +int_f +nh5pregister_double_c(hid_t_f *cls, _fcd name, int_f *name_len, size_t_f *size, void *value) +{ + /* + * Call h5pregister_c function + */ + return h5pregister_c(cls, name, name_len, size, value); +} + +/****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 + * AUTHOR + * Elena Pourmal + * October 11, 2002 + * HISTORY + * + * SOURCE +*/ +int_f +nh5pinsertc_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, _fcd value, int_f H5_ATTR_UNUSED *value_len) +/******/ +{ + int_f ret_value = -1; + + /* + * Call h5pinsert_c function + */ + ret_value = h5pinsert_c(plist, name, name_len, size, _fcdtocp(value)); + return ret_value; +} + /****if* H5Pf/h5pinsert_c * NAME * h5pinsert_c @@ -2768,27 +2994,54 @@ DONE: return ret_value; } +int_f +nh5pinsert_integer_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void *value) +{ + /* + * Call h5pinsert_c function + */ + return h5pinsert_c(plist, name, name_len, size, value); +} + +int_f +nh5pinsert_real_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void *value) +{ + /* + * Call h5pinsert_c function + */ + return h5pinsert_c(plist, name, name_len, size, value); +} + +int_f +nh5pinsert_double_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void *value) +{ + /* + * Call h5pinsert_c function + */ + return h5pinsert_c(plist, name, name_len, size, value); +} + /****if* H5Pf/h5pexist_c * NAME - * h5pexist_c + * h5pexist_c * PURPOSE - * Call H5Pexist to querie whether a property name exists - * in a property list or class + * Call H5Pexist to querie whether a property name exists + * in a property list or class * INPUTS - * plist - property list or property class identifier - * name - name of the new property - * name_len - length of the "name" buffer + * 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 + * nonnegative on success, -1 on failure * AUTHOR * Elena Pourmal - * October 11, 2002 + * October 11, 2002 * HISTORY * * SOURCE */ int_f -h5pexist_c(hid_t_f *cls, _fcd name, int_f *name_len) +nh5pexist_c(hid_t_f *cls, _fcd name, int_f *name_len) /******/ { int_f ret_value = -1; @@ -2812,24 +3065,24 @@ DONE: } /****if* H5Pf/h5pisa_class_c * NAME - * h5pisa_class_c + * h5pisa_class_c * PURPOSE - * Call H5Pisa_class to querie whether a property is a - * member of a class + * Call H5Pisa_class to querie whether a property is a + * member of a class * INPUTS - * plist - property list identifier - * cls - property class identifier + * plist - property list identifier + * cls - property class identifier * RETURNS - * nonnegative on success, -1 on failure + * nonnegative on success, -1 on failure * AUTHOR * Elena Pourmal - * October 11, 2002 + * October 11, 2002 * HISTORY * * SOURCE */ int_f -h5pisa_class_c(hid_t_f *plist, hid_t_f *cls) +nh5pisa_class_c(hid_t_f *plist, hid_t_f *cls) /******/ { int_f ret_value = -1; @@ -2849,26 +3102,26 @@ h5pisa_class_c(hid_t_f *plist, hid_t_f *cls) } /****if* H5Pf/h5pget_size_c * NAME - * h5pget_size_c + * h5pget_size_c * PURPOSE - * Call H5Pget_size to querie the size of the property + * 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 + * 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 + * size - size of the property in bytes * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * October 11, 2002 + * October 11, 2002 * HISTORY * * SOURCE */ int_f -h5pget_size_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size) +nh5pget_size_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size) /******/ { int_f ret_value = -1; @@ -2893,24 +3146,24 @@ DONE: } /****if* H5Pf/h5pget_nprops_c * NAME - * h5pget_nprops_c + * h5pget_nprops_c * PURPOSE - * Call H5Pget_nporps to get number of the properties in the list + * Call H5Pget_nporps to get number of the properties in the list * INPUTS - * plist - property list to query + * plist - property list to query * OUTPUTS - * nprops - number of properties in the list + * nprops - number of properties in the list * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * October 11, 2002 + * October 11, 2002 * HISTORY * * SOURCE */ int_f -h5pget_nprops_c(hid_t_f *plist, size_t_f *nprops) +nh5pget_nprops_c(hid_t_f *plist, size_t_f *nprops) /******/ { int_f ret_value = -1; @@ -2930,25 +3183,25 @@ h5pget_nprops_c(hid_t_f *plist, size_t_f *nprops) } /****if* H5Pf/h5pget_class_parent_c * NAME - * h5pget_class_parent_c + * h5pget_class_parent_c * PURPOSE - * Call H5Pget_class_parent to get the parent class of - * a genereic property class + * Call H5Pget_class_parent to get the parent class of + * a genereic property class * INPUTS - * prp_id - property list to query + * prp_id - property list to query * OUTPUTS - * parent_id - parent classs identifier + * parent_id - parent classs identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * October 11, 2002 + * October 11, 2002 * HISTORY * * SOURCE */ int_f -h5pget_class_parent_c(hid_t_f *prp_id, hid_t_f *parent_id) +nh5pget_class_parent_c(hid_t_f *prp_id, hid_t_f *parent_id) /******/ { int_f ret_value = -1; @@ -2969,26 +3222,26 @@ h5pget_class_parent_c(hid_t_f *prp_id, hid_t_f *parent_id) } /****if* H5Pf/h5pcopy_prop_c * NAME - * h5pcopy_prop_c + * h5pcopy_prop_c * PURPOSE - * Call H5Pcopy_prop to copy a property from one list or - * class to another + * Call H5Pcopy_prop to copy a property from one list or + * class to another * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * October 11, 2002 + * October 11, 2002 * HISTORY * * SOURCE */ int_f -h5pcopy_prop_c(hid_t_f *dst_id, hid_t_f *src_id, _fcd name, int_f *name_len) +nh5pcopy_prop_c(hid_t_f *dst_id, hid_t_f *src_id, _fcd name, int_f *name_len) /******/ { int_f ret_value = -1; @@ -3012,24 +3265,24 @@ DONE: } /****if* H5Pf/h5premove_c * NAME - * h5premove_c + * h5premove_c * PURPOSE - * Call H5Premove to remove a property from a list + * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * October 11, 2002 + * October 11, 2002 * HISTORY * * SOURCE */ int_f -h5premove_c(hid_t_f *plid, _fcd name, int_f *name_len) +nh5premove_c(hid_t_f *plid, _fcd name, int_f *name_len) /******/ { int_f ret_value = -1; @@ -3052,15 +3305,15 @@ DONE: } /****if* H5Pf/h5punregister_c * NAME - * h5punregister_c + * h5punregister_c * PURPOSE - * Call H5Punregister to remove a property from a property class + * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal * October 11, 2002 @@ -3069,7 +3322,7 @@ DONE: * SOURCE */ int_f -h5punregister_c(hid_t_f *cls, _fcd name, int_f *name_len) +nh5punregister_c(hid_t_f *cls, _fcd name, int_f *name_len) /******/ { int_f ret_value = -1; @@ -3092,13 +3345,13 @@ DONE: } /****if* H5Pf/h5pclose_class_c * NAME - * h5pclose_class_c + * h5pclose_class_c * PURPOSE - * Call H5Pclose_class to close property class + * Call H5Pclose_class to close property class * INPUTS - * class - identifier of property class to close + * class - identifier of property class to close * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal * October 11, 2002 @@ -3107,7 +3360,7 @@ DONE: * SOURCE */ int_f -h5pclose_class_c(hid_t_f *cls) +nh5pclose_class_c(hid_t_f *cls) /******/ { int_f ret_value = -1; @@ -3124,15 +3377,15 @@ h5pclose_class_c(hid_t_f *cls) /****if* H5Pf/h5pget_class_name_c * NAME - * h5pget_class_name_c + * h5pget_class_name_c * PURPOSE - * Call H5Pget_class_name to get property class name + * Call H5Pget_class_name to get property class name * INPUTS - * cls - identifier of property class - * name - buffer to retrieve name in - * name_len - length of the "name" buffer + * cls - identifier of property class + * name - buffer to retrieve name in + * name_len - length of the "name" buffer * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal * October 11, 2002 @@ -3141,7 +3394,7 @@ h5pclose_class_c(hid_t_f *cls) * SOURCE */ int_f -h5pget_class_name_c(hid_t_f *cls, _fcd name, int_f *name_len) +nh5pget_class_name_c(hid_t_f *cls, _fcd name, int_f *name_len) /******/ { int_f ret_value = -1; @@ -3164,6 +3417,38 @@ DONE: return ret_value; } +/****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 + * AUTHOR + * Elena Pourmal + * October 11, 2002 + * HISTORY + * + * SOURCE +*/ +int_f +nh5psetc_c(hid_t_f *plist, _fcd name, int_f *name_len, _fcd value, int_f H5_ATTR_UNUSED *value_len) +/******/ +{ + int_f ret_value = -1; + + /* + * Call h5pset_c function + */ + ret_value = h5pset_c(plist, name, name_len, _fcdtocp(value)); + return ret_value; +} + /****if* H5Pf/h5pset_c * NAME * h5pset_c @@ -3204,6 +3489,64 @@ DONE: return ret_value; } +int_f +nh5pset_integer_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value) +{ + /* + * Call h5pset_c function + */ + return h5pset_c(plist, name, name_len, value); +} + +int_f +nh5pset_real_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value) +{ + /* + * Call h5pset_c function + */ + return h5pset_c(plist, name, name_len, value); +} + +int_f +nh5pset_double_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value) +{ + /* + * Call h5pset_c function + */ + return h5pset_c(plist, name, name_len, value); +} +/****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 + * AUTHOR + * Elena Pourmal + * October 11, 2002 + * HISTORY + * + * SOURCE +*/ +int_f +nh5pgetc_c(hid_t_f *plist, _fcd name, int_f *name_len, _fcd value, int_f H5_ATTR_UNUSED *value_len) +/******/ +{ + int_f ret_value = -1; + + /* + * Call h5pget_c function + */ + ret_value = h5pget_c(plist, name, name_len, _fcdtocp(value)); + return ret_value; +} + /****if* H5Pf/h5pget_c * NAME * h5pget_c @@ -3213,7 +3556,7 @@ DONE: * plist - property list class identifier * name - name of the new property * name_len - length of the "name" buffer - * Output: + * Output: * value - property value * RETURNS * 0 on success, -1 on failure @@ -3245,26 +3588,54 @@ DONE: return ret_value; } +int_f +nh5pget_integer_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value) +{ + /* + * Call h5pget_c function + */ + return h5pget_c(plist, name, name_len, value); +} + +int_f +nh5pget_real_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value) +{ + /* + * Call h5pget_c function + */ + return h5pget_c(plist, name, name_len, value); +} + +int_f +nh5pget_double_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value) +{ + /* + * Call h5pget_c function + */ + return h5pget_c(plist, name, name_len, value); +} + + /****if* H5Pf/h5pset_shuffle_c * NAME - * h5pset_shuffle_c + * h5pset_shuffle_c * PURPOSE - * Call H5Pset_shuffle + * Call H5Pset_shuffle * INPUTS - * prp_id - property list identifier - * type_size - size of the datatype in bytes + * prp_id - property list identifier + * type_size - size of the datatype in bytes * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, March 12, 2003 + * Wednesday, March 12, 2003 * HISTORY * * SOURCE */ int_f -h5pset_shuffle_c ( hid_t_f *prp_id ) +nh5pset_shuffle_c ( hid_t_f *prp_id ) /******/ { int_f ret_value = 0; @@ -3278,23 +3649,23 @@ h5pset_shuffle_c ( hid_t_f *prp_id ) } /****if* H5Pf/h5pset_fletcher32_c * NAME - * h5pset_fletcher32_c + * h5pset_fletcher32_c * PURPOSE - * Call H5Pset_fletcher32 to enable EDC + * Call H5Pset_fletcher32 to enable EDC * INPUTS - * prp_id - dataset creation property list identifier + * prp_id - dataset creation property list identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Thursday, March 13, 2003 + * Thursday, March 13, 2003 * HISTORY * * SOURCE */ int_f -h5pset_fletcher32_c ( hid_t_f *prp_id ) +nh5pset_fletcher32_c ( hid_t_f *prp_id ) /******/ { int_f ret_value = 0; @@ -3309,24 +3680,24 @@ h5pset_fletcher32_c ( hid_t_f *prp_id ) /****if* H5Pf/h5pset_edc_check_c * NAME - * h5pset_edc_check_c + * h5pset_edc_check_c * PURPOSE - * Call H5Pset_edc_check to enable EDC + * Call H5Pset_edc_check to enable EDC * INPUTS - * prp_id - dataset transfer property list identifier - * flag - EDC flag + * prp_id - dataset transfer property list identifier + * flag - EDC flag * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Thursday, March 13, 2003 + * Thursday, March 13, 2003 * HISTORY * * SOURCE */ int_f -h5pset_edc_check_c ( hid_t_f *prp_id, int_f *flag ) +nh5pset_edc_check_c ( hid_t_f *prp_id, int_f *flag ) /******/ { int_f ret_value = 0; @@ -3343,24 +3714,24 @@ h5pset_edc_check_c ( hid_t_f *prp_id, int_f *flag ) /****if* H5Pf/h5pget_edc_check_c * NAME - * h5pget_edc_check_c + * h5pget_edc_check_c * PURPOSE - * Call H5Pget_edc_check to query EDC + * Call H5Pget_edc_check to query EDC * INPUTS - * prp_id - dataset transfer property list identifier - * Outouts: flag - EDC flag + * prp_id - dataset transfer property list identifier + * Outouts: flag - EDC flag * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Thursday, March 13, 2003 + * Thursday, March 13, 2003 * HISTORY * * SOURCE */ int_f -h5pget_edc_check_c ( hid_t_f *prp_id, int_f *flag ) +nh5pget_edc_check_c ( hid_t_f *prp_id, int_f *flag ) /******/ { int_f ret_value = 0; @@ -3375,24 +3746,24 @@ h5pget_edc_check_c ( hid_t_f *prp_id, int_f *flag ) } /****if* H5Pf/h5pset_family_offset_c * NAME - * h5pset_family_offset_c + * h5pset_family_offset_c * PURPOSE - * Call H5Pset_family_offset to set and offset for family driver + * Call H5Pset_family_offset to set and offset for family driver * INPUTS - * prp_id - property list identifier - * offset - offset in bytes + * prp_id - property list identifier + * offset - offset in bytes * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, 19 March 2003 + * Wednesday, 19 March 2003 * HISTORY * * SOURCE */ int_f -h5pset_family_offset_c ( hid_t_f *prp_id , hsize_t_f *offset) +nh5pset_family_offset_c ( hid_t_f *prp_id , hsize_t_f *offset) /******/ { int_f ret_value = 0; @@ -3409,30 +3780,30 @@ h5pset_family_offset_c ( hid_t_f *prp_id , hsize_t_f *offset) /****if* H5Pf/h5pset_fapl_multi_c * NAME - * h5pset_fapl_multi_c + * h5pset_fapl_multi_c * PURPOSE - * Call H5Pset_fapl_multi to set multi file dirver + * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Monday 24, March 2003 + * Monday 24, March 2003 * HISTORY * * SOURCE */ int_f -/*h5pset_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) */ -h5pset_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) +/*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; @@ -3450,13 +3821,13 @@ h5pset_fapl_multi_c ( hid_t_f *prp_id , int_f *memb_map, hid_t_f *memb_fapl, _fc c_lenmax = (int)*lenmax; relax = (hbool_t)*flag; /* - * Check that we got correct values from Fortran for memb_addr array + * Check that we got correct values from Fortran for memb_addr array */ for (i=0; i < H5FD_MEM_NTYPES; i++) { if(memb_addr[i] >= 1.0f) return ret_value; } /* - * Take care of names array + * Take care of names array */ tmp = (char *)HD5f2cstring(memb_name, (size_t)c_lenmax*(H5FD_MEM_NTYPES)); @@ -3470,7 +3841,7 @@ h5pset_fapl_multi_c ( hid_t_f *prp_id , int_f *memb_map, hid_t_f *memb_fapl, _fc tmp_p = tmp_p + c_lenmax; } /* - * Take care of othe arguments + * Take care of othe arguments */ tmp_max_addr = (long double)(HADDR_MAX); c_prp_id = (hid_t)*prp_id; @@ -3481,7 +3852,7 @@ h5pset_fapl_multi_c ( hid_t_f *prp_id , int_f *memb_map, hid_t_f *memb_fapl, _fc else c_memb_addr[i] = (haddr_t)(((float)memb_addr[i])*(tmp_max_addr)); } /* - * Call H5Pset_fapl_multi function + * Call H5Pset_fapl_multi function */ status = H5Pset_fapl_multi(c_prp_id, c_memb_map, c_memb_fapl, (const char * const *)c_memb_name, c_memb_addr, relax); @@ -3497,23 +3868,23 @@ DONE: /****if* H5Pf/h5pset_fapl_multi_sc * NAME - * h5pset_fapl_multi_sc + * h5pset_fapl_multi_sc * PURPOSE - * Call H5Pset_fapl_multi to set multi file dirver + * Call H5Pset_fapl_multi to set multi file dirver * INPUTS - * prp_id - file_creation property list identifier + * prp_id - file_creation property list identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * March 31 2003 + * March 31 2003 * HISTORY * * SOURCE */ int_f -h5pset_fapl_multi_sc ( hid_t_f *prp_id , int_f *flag) +nh5pset_fapl_multi_sc ( hid_t_f *prp_id , int_f *flag) /******/ { int_f ret_value = -1; @@ -3524,7 +3895,7 @@ h5pset_fapl_multi_sc ( hid_t_f *prp_id , int_f *flag) relax = (hbool_t)*flag; c_prp_id = (hid_t)*prp_id; /* - * Call H5Pset_fapl_multi function + * Call H5Pset_fapl_multi function */ status = H5Pset_fapl_multi(c_prp_id, NULL, NULL, NULL, NULL, relax); @@ -3534,30 +3905,30 @@ h5pset_fapl_multi_sc ( hid_t_f *prp_id , int_f *flag) } /****if* H5Pf/h5pget_fapl_multi_c * NAME - * h5pget_fapl_multi_c + * h5pget_fapl_multi_c * PURPOSE - * Call H5Pget_fapl_multi to set multi file dirver + * 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 + * prp_id - file_creation property list identifier + * lenmax - lenght of the name a sdeclared in Fortran * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Monday 24, March 2003 + * Monday 24, March 2003 * HISTORY * * SOURCE */ int_f -h5pget_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) +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; @@ -3576,14 +3947,14 @@ h5pget_fapl_multi_c ( hid_t_f *prp_id , int_f *memb_map, hid_t_f *memb_fapl, _fc c_prp_id = (hid_t)*prp_id; /* - * Call H5Pget_fapl_multi function + * Call H5Pget_fapl_multi function */ status = H5Pget_fapl_multi(c_prp_id, c_memb_map, c_memb_fapl, c_memb_name, c_memb_addr, &relax); if ( status < 0 ) return ret_value; /* - * Take care of names array + * Take care of names array */ tmp = (char *)HDmalloc(c_lenmax*H5FD_MEM_NTYPES + 1); tmp_p = tmp; @@ -3598,7 +3969,7 @@ h5pget_fapl_multi_c ( hid_t_f *prp_id , int_f *memb_map, hid_t_f *memb_fapl, _fc HD5packFstring(tmp, _fcdtocp(memb_name), (size_t)(c_lenmax*H5FD_MEM_NTYPES)); /* - * Take care of other arguments + * Take care of other arguments */ for (i=0; i < H5FD_MEM_NTYPES; i++) { @@ -3618,25 +3989,25 @@ HD5packFstring(tmp, _fcdtocp(memb_name), (size_t)(c_lenmax*H5FD_MEM_NTYPES)); /****if* H5Pf/h5pset_szip_c * NAME - * h5pset_szip_c + * h5pset_szip_c * PURPOSE - * Call H5Pset_szip to set szip compression + * Call H5Pset_szip to set szip compression * INPUTS - * prp_id - dataset creation property list identifier - * options_mask - * pixels_per_block -szip compression parameters + * prp_id - dataset creation property list identifier + * options_mask + * pixels_per_block -szip compression parameters * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * April 8 2003 + * April 8 2003 * HISTORY * * SOURCE */ int_f -h5pset_szip_c ( hid_t_f *prp_id , int_f *options_mask, int_f *pixels_per_block) +nh5pset_szip_c ( hid_t_f *prp_id , int_f *options_mask, int_f *pixels_per_block) /******/ { int_f ret_value = -1; @@ -3649,7 +4020,7 @@ h5pset_szip_c ( hid_t_f *prp_id , int_f *options_mask, int_f *pixels_per_block) c_options_mask = (unsigned)*options_mask; c_pixels_per_block = (unsigned)*pixels_per_block; /* - * Call H5Pset_szip function + * Call H5Pset_szip function */ status = H5Pset_szip(c_prp_id, c_options_mask, c_pixels_per_block); @@ -3659,25 +4030,25 @@ h5pset_szip_c ( hid_t_f *prp_id , int_f *options_mask, int_f *pixels_per_block) } /****if* H5Pf/h5pall_filters_avail_c * NAME - * h5pall_filters_avail_c + * h5pall_filters_avail_c * PURPOSE - * Call H5Pall_filters_avail + * Call H5Pall_filters_avail * INPUTS - * prp_id - dataset creation property list identifier + * prp_id - dataset creation property list identifier * OUTPUTS - * status - logical flag + * status - logical flag * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * April 10 2003 + * April 10 2003 * HISTORY * * SOURCE */ int_f -h5pall_filters_avail_c ( hid_t_f *prp_id , int_f *status) +nh5pall_filters_avail_c ( hid_t_f *prp_id , int_f *status) /******/ { int_f ret_value = -1; @@ -3687,7 +4058,7 @@ h5pall_filters_avail_c ( hid_t_f *prp_id , int_f *status) c_prp_id = (hid_t)*prp_id; /* - * Call H5Pall_filters_avail function + * Call H5Pall_filters_avail function */ c_status = H5Pall_filters_avail(c_prp_id); @@ -3700,31 +4071,31 @@ h5pall_filters_avail_c ( hid_t_f *prp_id , int_f *status) /****if* H5Pf/h5pget_filter_by_id_c * NAME - * h5pget_filter_by_id_c + * h5pget_filter_by_id_c * PURPOSE - * Call H5Pget_filter_by_id2 to get information about a filter - * in a pipeline + * Call H5Pget_filter_by_id2 to get information about a filter + * in a pipeline * INPUTS - * prp_id - property list identifier - * filter_id - filter id - * namelen - Anticipated number of characters in name. + * prp_id - property list identifier + * filter_id - filter id + * namelen - Anticipated number of characters in name. *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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Elena POurmal - * April 10, 2003 + * April 10, 2003 * HISTORY * * SOURCE */ int_f -h5pget_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) +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; @@ -3767,27 +4138,27 @@ DONE: /****if* H5Pf/h5pmodify_filter_c * NAME - * h5pmodify_filter_c + * h5pmodify_filter_c * PURPOSE - * Call H5Pmodify_filter to modify a filter + * 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. + * 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 + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * April 10 2003 + * April 10 2003 * HISTORY * * SOURCE */ int_f -h5pmodify_filter_c (hid_t_f *prp_id, int_f* filter, int_f* flags, size_t_f* cd_nelmts, int_f* cd_values ) +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; @@ -3819,23 +4190,23 @@ DONE: /****if* H5Pf/h5premove_filter_c * NAME - * h5premove_filter_c + * h5premove_filter_c * PURPOSE - * Call H5Premove_filter to delete one or more filters + * Call H5Premove_filter to delete one or more filters * INPUTS - * prp_id - property list identifier - * filter - Filter to be deleted + * prp_id - property list identifier + * filter - Filter to be deleted * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Quincey Koziol - * January 27 2004 + * January 27 2004 * HISTORY * * SOURCE */ int_f -h5premove_filter_c (hid_t_f *prp_id, int_f* filter) +nh5premove_filter_c (hid_t_f *prp_id, int_f* filter) /******/ { int_f ret_value = -1; @@ -3857,25 +4228,25 @@ DONE: /****if* H5Pf/h5pget_attr_phase_change_c * NAME - * h5pget_attr_phase_change_c + * h5pget_attr_phase_change_c * PURPOSE - * Calls H5Pget_attr_phase_change + * Calls H5Pget_attr_phase_change * * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * January, 2008 + * January, 2008 * HISTORY * * SOURCE */ int_f -h5pget_attr_phase_change_c(hid_t_f *ocpl_id, int_f *max_compact, int_f *min_dense ) +nh5pget_attr_phase_change_c(hid_t_f *ocpl_id, int_f *max_compact, int_f *min_dense ) /******/ { int ret_value = -1; @@ -3898,24 +4269,24 @@ h5pget_attr_phase_change_c(hid_t_f *ocpl_id, int_f *max_compact, int_f *min_dens /****if* H5Pf/h5pset_attr_creation_order_c * NAME - * h5pset_attr_creation_order_c + * h5pset_attr_creation_order_c * PURPOSE - * Calls H5Ppset_attr_creation_order + * Calls H5Ppset_attr_creation_order * * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * January, 2008 + * January, 2008 * HISTORY * * SOURCE */ int_f -h5pset_attr_creation_order_c(hid_t_f *ocpl_id, int_f *crt_order_flags ) +nh5pset_attr_creation_order_c(hid_t_f *ocpl_id, int_f *crt_order_flags ) /******/ { int ret_value = -1; @@ -3935,29 +4306,29 @@ h5pset_attr_creation_order_c(hid_t_f *ocpl_id, int_f *crt_order_flags ) /****if* H5Pf/h5pset_shared_mesg_nindexes_c * NAME - * h5pset_shared_mesg_nindexes_c + * h5pset_shared_mesg_nindexes_c * PURPOSE - * Calls h5pset_shared_mesg_nindexes + * Calls h5pset_shared_mesg_nindexes * * INPUTS * - * plist_id - file creation property list - * nindexes - Number of shared object header message indexes - * available in files created WITH this property list + * 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 + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * January, 2008 + * January, 2008 * HISTORY * * SOURCE */ int_f -h5pset_shared_mesg_nindexes_c(hid_t_f *plist_id, int_f *nindexes ) +nh5pset_shared_mesg_nindexes_c(hid_t_f *plist_id, int_f *nindexes ) /******/ { int ret_value = -1; @@ -3978,30 +4349,30 @@ h5pset_shared_mesg_nindexes_c(hid_t_f *plist_id, int_f *nindexes ) /****if* H5Pf/h5pset_shared_mesg_index_c * NAME - * h5pset_shared_mesg_index_c + * h5pset_shared_mesg_index_c * PURPOSE - * Calls H5Pset_shared_mesg_index + * Calls H5Pset_shared_mesg_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. + * 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 + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * January, 2008 + * January, 2008 * HISTORY * * SOURCE */ int_f -h5pset_shared_mesg_index_c(hid_t_f *fcpl_id, int_f *index_num, int_f *mesg_type_flags, int_f *min_mesg_size) +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; @@ -4018,28 +4389,28 @@ h5pset_shared_mesg_index_c(hid_t_f *fcpl_id, int_f *index_num, int_f *mesg_type_ /****if* H5Pf/h5pget_attr_creation_order_c * NAME - * h5pget_attr_creation_order_c + * h5pget_attr_creation_order_c * PURPOSE - * Calls H5Pget_attr_creation_order + * Calls H5Pget_attr_creation_order * * INPUTS * - * ocpl_id - Object (group or dataset) creation property list identifier + * ocpl_id - Object (group or dataset) creation property list identifier * OUTPUTS * - * crt_order_flags - Flags specifying whether to track and index attribute creation order + * crt_order_flags - Flags specifying whether to track and index attribute creation order * * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * February, 2008 + * February, 2008 * HISTORY * * SOURCE */ int_f -h5pget_attr_creation_order_c(hid_t_f *ocpl_id, int_f *crt_order_flags) +nh5pget_attr_creation_order_c(hid_t_f *ocpl_id, int_f *crt_order_flags) /******/ { int ret_value = -1; @@ -4060,29 +4431,29 @@ h5pget_attr_creation_order_c(hid_t_f *ocpl_id, int_f *crt_order_flags) } /****if* H5Pf/h5pset_libver_bounds_c * NAME - * h5pset_libver_bounds_c + * h5pset_libver_bounds_c * PURPOSE - * Calls H5Pset_libver_bounds + * Calls H5Pset_libver_bounds * * 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. + * 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 * * * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * February 18, 2008 + * February 18, 2008 * HISTORY * * SOURCE */ int_f -h5pset_libver_bounds_c(hid_t_f *fapl_id, int_f *low, int_f *high ) +nh5pset_libver_bounds_c(hid_t_f *fapl_id, int_f *low, int_f *high ) /******/ { int ret_value = -1; @@ -4100,26 +4471,26 @@ h5pset_libver_bounds_c(hid_t_f *fapl_id, int_f *low, int_f *high ) /****if* H5Pf/h5pset_link_creation_order_c * NAME - * h5pset_link_creation_order_c + * h5pset_link_creation_order_c * PURPOSE - * Calls H5Pset_link_creation_order + * Calls H5Pset_link_creation_order * * INPUTS - * gcpl_id - Group creation property list identifier - * crt_order_flags - Creation order flag(s) + * gcpl_id - Group creation property list identifier + * crt_order_flags - Creation order flag(s) * OUTPUTS * * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * February 18, 2008 + * February 18, 2008 * HISTORY * * SOURCE */ int_f -h5pset_link_creation_order_c(hid_t_f *gcpl_id, int_f *crt_order_flags ) +nh5pset_link_creation_order_c(hid_t_f *gcpl_id, int_f *crt_order_flags ) /******/ { int ret_value = -1; @@ -4136,25 +4507,25 @@ h5pset_link_creation_order_c(hid_t_f *gcpl_id, int_f *crt_order_flags ) /****if* H5Pf/h5pget_link_phase_change_c * NAME - * h5pget_link_phase_change_c + * h5pget_link_phase_change_c * PURPOSE - * Calls H5Pget_link_phase_change + * Calls H5Pget_link_phase_change * * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * February 20, 2008 + * February 20, 2008 * HISTORY * * SOURCE */ int_f -h5pget_link_phase_change_c(hid_t_f *gcpl_id, int_f *max_compact, int_f *min_dense ) +nh5pget_link_phase_change_c(hid_t_f *gcpl_id, int_f *max_compact, int_f *min_dense ) /******/ { int ret_value = -1; @@ -4176,27 +4547,27 @@ h5pget_link_phase_change_c(hid_t_f *gcpl_id, int_f *max_compact, int_f *min_dens /****if* H5Pf/h5pget_obj_track_times_c * NAME - * h5pget_obj_track_times_c + * h5pget_obj_track_times_c * PURPOSE - * Call H5Pget_obj_track_times + * Call H5Pget_obj_track_times * * INPUTS - * plist_id - property list id + * plist_id - property list id * OUTPUTS * - * flag - TRUE/FALSE flag + * flag - TRUE/FALSE flag * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * February 22, 2008 + * February 22, 2008 * HISTORY * * SOURCE */ int_f -h5pget_obj_track_times_c(hid_t_f *plist_id, int_f *flag) +nh5pget_obj_track_times_c(hid_t_f *plist_id, int_f *flag) /******/ { int ret_value = -1; @@ -4218,25 +4589,25 @@ h5pget_obj_track_times_c(hid_t_f *plist_id, int_f *flag) /****if* H5Pf/h5pset_obj_track_times_c * NAME - * h5pset_obj_track_times_c + * h5pset_obj_track_times_c * PURPOSE - * Call H5Pset_obj_track_times + * Call H5Pset_obj_track_times * * INPUTS - * plist_id - property list id - * flag - TRUE/FALSE flag + * plist_id - property list id + * flag - TRUE/FALSE flag * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * February 22, 2008 + * February 22, 2008 * HISTORY * * SOURCE */ int_f -h5pset_obj_track_times_c(hid_t_f *plist_id, int_f *flag) +nh5pset_obj_track_times_c(hid_t_f *plist_id, int_f *flag) /******/ { int ret_value = -1; @@ -4258,28 +4629,28 @@ h5pset_obj_track_times_c(hid_t_f *plist_id, int_f *flag) /****if* H5Pf/h5pset_create_inter_group_c * NAME - * h5pset_create_inter_group_c + * h5pset_create_inter_group_c * PURPOSE - * Calls H5Pset_create_intermediate_group + * Calls H5Pset_create_intermediate_group * * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * February 22, 2008 + * February 22, 2008 * HISTORY * * SOURCE */ int_f -h5pset_create_inter_group_c(hid_t_f *lcpl_id, int_f *crt_intermed_group) +nh5pset_create_inter_group_c(hid_t_f *lcpl_id, int_f *crt_intermed_group) /******/ { int ret_value = -1; @@ -4297,28 +4668,28 @@ h5pset_create_inter_group_c(hid_t_f *lcpl_id, int_f *crt_intermed_group) /****if* H5Pf/h5pget_link_creation_order_c * NAME - * h5pget_link_creation_order_c + * h5pget_link_creation_order_c * PURPOSE - * Calls H5Pget_link_creation_order + * Calls H5Pget_link_creation_order * * INPUTS * - * gcpl_id - Group creation property list identifier + * gcpl_id - Group creation property list identifier * OUTPUTS * - * crt_order_flags - Creation order flag(s) + * crt_order_flags - Creation order flag(s) * * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * March 3, 2008 + * March 3, 2008 * HISTORY * * SOURCE */ int_f -h5pget_link_creation_order_c(hid_t_f *gcpl_id, int_f *crt_order_flags) +nh5pget_link_creation_order_c(hid_t_f *gcpl_id, int_f *crt_order_flags) /******/ { int ret_value = -1; @@ -4340,30 +4711,30 @@ h5pget_link_creation_order_c(hid_t_f *gcpl_id, int_f *crt_order_flags) /****if* H5Pf/h5pset_char_encoding_c * NAME - * h5pset_char_encoding_c + * h5pset_char_encoding_c * PURPOSE * Calls H5Pset_char_encoding * * INPUTS * - * plist_id - Property list identifier - * encoding - String encoding character set: + * 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 * * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * March 3, 2008 + * March 3, 2008 * HISTORY * * SOURCE */ int_f -h5pset_char_encoding_c(hid_t_f *plist_id, int_f *encoding) +nh5pset_char_encoding_c(hid_t_f *plist_id, int_f *encoding) /******/ { int ret_value = -1; @@ -4382,30 +4753,30 @@ h5pset_char_encoding_c(hid_t_f *plist_id, int_f *encoding) /****if* H5Pf/h5pget_char_encoding_c * NAME - * h5pget_char_encoding_c + * h5pget_char_encoding_c * PURPOSE * Calls H5Pget_char_encoding * * INPUTS * - * plist_id - Property list identifier + * plist_id - Property list identifier * OUTPUTS * - * encoding - Encoding character set: + * 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 + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * March 3, 2008 + * March 3, 2008 * HISTORY * * SOURCE */ int_f -h5pget_char_encoding_c(hid_t_f *plist_id, int_f *encoding) +nh5pget_char_encoding_c(hid_t_f *plist_id, int_f *encoding) /******/ { int ret_value = -1; @@ -4425,30 +4796,30 @@ h5pget_char_encoding_c(hid_t_f *plist_id, int_f *encoding) /****if* H5Pf/h5pset_copy_object_c * NAME - * h5pset_copy_object_c + * h5pset_copy_object_c * PURPOSE * Calls H5Pset_copy_object * * INPUTS * - * ocp_plist_id - Object copy property list identifier - * copy_options - Copy option(s) to be set + * ocp_plist_id - Object copy property list identifier + * copy_options - Copy option(s) to be set * * OUTPUTS * * NONE * * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * March 3, 2008 + * March 3, 2008 * HISTORY * * SOURCE */ int_f -h5pset_copy_object_c(hid_t_f *ocp_plist_id, int_f *copy_options) +nh5pset_copy_object_c(hid_t_f *ocp_plist_id, int_f *copy_options) /******/ { int ret_value = -1; @@ -4465,29 +4836,29 @@ h5pset_copy_object_c(hid_t_f *ocp_plist_id, int_f *copy_options) /****if* H5Pf/h5pget_copy_object_c * NAME - * h5pget_copy_object_c + * h5pget_copy_object_c * PURPOSE * Calls H5Pget_copy_object * * INPUTS * - * ocp_plist_id - Object copy property list identifier + * ocp_plist_id - Object copy property list identifier * * OUTPUTS * - * copy_options - Copy option(s) to be get + * copy_options - Copy option(s) to be get * * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * March 3, 2008 + * March 3, 2008 * HISTORY * * SOURCE */ int_f -h5pget_copy_object_c(hid_t_f *ocp_plist_id, int_f *copy_options) +nh5pget_copy_object_c(hid_t_f *ocp_plist_id, int_f *copy_options) /******/ { int ret_value = -1; @@ -4507,31 +4878,31 @@ h5pget_copy_object_c(hid_t_f *ocp_plist_id, int_f *copy_options) /****if* H5Pf/h5pget_data_transform_c * NAME - * h5pget_data_transform_c + * h5pget_data_transform_c * PURPOSE - * Calls H5Pget_data_transform + * Calls H5Pget_data_transform * INPUTS * - * prp_id - property list identifier to query - * expression_len - buffer size transorm expression + * prp_id - property list identifier to query + * expression_len - buffer size transorm expression * - * Output: - * expression - buffer to hold transform expression + * Output: + * expression - buffer to hold transform expression * * RETURNS * - * Success: 0 + * Success: 0 * Failure: -1 * * AUTHOR * M. Scot Breitenfeld - * March 19, 2008 + * March 19, 2008 * HISTORY * * SOURCE */ int_f -h5pget_data_transform_c(hid_t_f *plist_id, _fcd expression, int_f *expression_len, size_t_f *size) +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 */ @@ -4569,31 +4940,31 @@ done: /****if* H5Pf/h5pset_data_transform_c * NAME - * h5pset_data_transform_c + * h5pset_data_transform_c * PURPOSE - * Calls H5Pset_data_transform + * Calls H5Pset_data_transform * INPUTS * - * prp_id - property list identifier to query - * expression - buffer to hold transform expression - * expression_len - buffer size transorm expression + * prp_id - property list identifier to query + * expression - buffer to hold transform expression + * expression_len - buffer size transorm expression * - * Output: + * Output: * * RETURNS * - * Success: 0 + * Success: 0 * Failure: -1 * * AUTHOR * M. Scot Breitenfeld - * March 19, 2008 + * March 19, 2008 * HISTORY * * SOURCE */ int_f -h5pset_data_transform_c(hid_t_f *plist_id, _fcd expression, int_f *expression_len) +nh5pset_data_transform_c(hid_t_f *plist_id, _fcd expression, int_f *expression_len) /******/ { char* c_expression = NULL; /* Buffer to hold C string */ @@ -4620,29 +4991,29 @@ done: /****if* H5Pf/h5pget_local_heap_size_hint_c * NAME - * h5pget_local_heap_size_hint_c + * h5pget_local_heap_size_hint_c * PURPOSE - * Calls H5Pget_local_heap_size_hint + * Calls H5Pget_local_heap_size_hint * INPUTS * - * gcpl_id - Group creation property list identifier + * gcpl_id - Group creation property list identifier * - * Output: - * size_hint - Hint for size of local heap + * Output: + * size_hint - Hint for size of local heap * RETURNS * - * Success: 0 + * Success: 0 * Failure: -1 * * AUTHOR * M. Scot Breitenfeld - * March 21, 2008 + * March 21, 2008 * HISTORY * * SOURCE */ int_f -h5pget_local_heap_size_hint_c(hid_t_f *gcpl_id, size_t_f *size_hint) +nh5pget_local_heap_size_hint_c(hid_t_f *gcpl_id, size_t_f *size_hint) /******/ { int_f ret_value = -1; /* Return value */ @@ -4661,30 +5032,30 @@ h5pget_local_heap_size_hint_c(hid_t_f *gcpl_id, size_t_f *size_hint) /****if* H5Pf/h5pget_est_link_info_c * NAME - * h5pget_est_link_info_c + * h5pget_est_link_info_c * PURPOSE - * Calls H5Pget_est_link_info + * Calls H5Pget_est_link_info * INPUTS * - * gcpl_id - Group creation property list identifier + * 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 + * Output: + * est_num_entries - Estimated number of links to be inserted into group + * est_name_len - Estimated average length of link names * RETURNS * - * Success: 0 + * Success: 0 * Failure: -1 * * AUTHOR * M. Scot Breitenfeld - * March 21, 2008 + * March 21, 2008 * HISTORY * * SOURCE */ int_f -h5pget_est_link_info_c(hid_t_f *gcpl_id, int_f *est_num_entries, int_f *est_name_len) +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 */ @@ -4706,30 +5077,30 @@ h5pget_est_link_info_c(hid_t_f *gcpl_id, int_f *est_num_entries, int_f *est_name /****if* H5Pf/h5pset_local_heap_size_hint_c * NAME - * h5pset_local_heap_size_hint_c + * h5pset_local_heap_size_hint_c * PURPOSE - * Calls H5Pset_local_heap_size_hint + * Calls H5Pset_local_heap_size_hint * INPUTS * - * gcpl_id - Group creation property list identifier - * size_hint - Hint for size of local heap + * gcpl_id - Group creation property list identifier + * size_hint - Hint for size of local heap * - * Output: + * Output: * * RETURNS * - * Success: 0 + * Success: 0 * Failure: -1 * * AUTHOR * M. Scot Breitenfeld - * March 21, 2008 + * March 21, 2008 * HISTORY * * SOURCE */ int_f -h5pset_local_heap_size_hint_c(hid_t_f *gcpl_id, size_t_f *size_hint) +nh5pset_local_heap_size_hint_c(hid_t_f *gcpl_id, size_t_f *size_hint) /******/ { int_f ret_value = -1; /* Return value */ @@ -4746,30 +5117,30 @@ h5pset_local_heap_size_hint_c(hid_t_f *gcpl_id, size_t_f *size_hint) /****if* H5Pf/h5pset_est_link_info_c * NAME - * h5pset_est_link_info_c + * h5pset_est_link_info_c * PURPOSE - * Calls H5Pset_est_link_info + * 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 + * 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: + * Output: * RETURNS * - * Success: 0 + * Success: 0 * Failure: -1 * * AUTHOR * M. Scot Breitenfeld - * March 21, 2008 + * March 21, 2008 * HISTORY * * SOURCE */ int_f -h5pset_est_link_info_c(hid_t_f *gcpl_id, int_f *est_num_entries, int_f *est_name_len) +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 */ @@ -4786,26 +5157,26 @@ h5pset_est_link_info_c(hid_t_f *gcpl_id, int_f *est_num_entries, int_f *est_name /****if* H5Pf/h5pset_link_phase_change_c * NAME - * h5pset_link_phase_change_c + * h5pset_link_phase_change_c * PURPOSE - * Calls H5Pset_link_phase_change + * Calls H5Pset_link_phase_change * * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * March 21, 2008 + * March 21, 2008 * HISTORY * * SOURCE */ int_f -h5pset_link_phase_change_c(hid_t_f *gcpl_id, int_f *max_compact, int_f *min_dense ) +nh5pset_link_phase_change_c(hid_t_f *gcpl_id, int_f *max_compact, int_f *min_dense ) /******/ { int ret_value = -1; @@ -4823,28 +5194,28 @@ h5pset_link_phase_change_c(hid_t_f *gcpl_id, int_f *max_compact, int_f *min_dens /****if* H5Pf/h5pset_fapl_direct_c * NAME - * h5pset_fapl_direct_c + * h5pset_fapl_direct_c * PURPOSE - * Calls H5Pset_fapl_direct + * Calls H5Pset_fapl_direct * * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * March 21, 2008 + * March 21, 2008 * HISTORY * * SOURCE */ int_f -h5pset_fapl_direct_c(hid_t_f H5_ATTR_UNUSED *fapl_id, size_t_f H5_ATTR_UNUSED *alignment, size_t_f H5_ATTR_UNUSED *block_size, size_t_f H5_ATTR_UNUSED *cbuf_size) +nh5pset_fapl_direct_c(hid_t_f H5_ATTR_UNUSED *fapl_id, size_t_f H5_ATTR_UNUSED *alignment, size_t_f H5_ATTR_UNUSED *block_size, size_t_f H5_ATTR_UNUSED *cbuf_size) /******/ { int ret_value = -1; @@ -4865,29 +5236,29 @@ h5pset_fapl_direct_c(hid_t_f H5_ATTR_UNUSED *fapl_id, size_t_f H5_ATTR_UNUSED *a /****if* H5Pf/h5pget_fapl_direct_c * NAME - * h5pget_fapl_direct_c + * h5pget_fapl_direct_c * PURPOSE - * Calls H5Pget_fapl_direct + * Calls H5Pget_fapl_direct * * INPUTS * - * fapl_id - File access property list identifier + * fapl_id - File access property list identifier * OUTPUTS * - * alignment - Required memory alignment boundary - * block_size - File system block size - * cbuf_size - Copy buffer size + * alignment - Required memory alignment boundary + * block_size - File system block size + * cbuf_size - Copy buffer size * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * March 21, 2008 + * March 21, 2008 * HISTORY * * SOURCE */ int_f -h5pget_fapl_direct_c(hid_t_f H5_ATTR_UNUSED *fapl_id, size_t_f H5_ATTR_UNUSED *alignment, size_t_f H5_ATTR_UNUSED *block_size, size_t_f H5_ATTR_UNUSED *cbuf_size) +nh5pget_fapl_direct_c(hid_t_f H5_ATTR_UNUSED *fapl_id, size_t_f H5_ATTR_UNUSED *alignment, size_t_f H5_ATTR_UNUSED *block_size, size_t_f H5_ATTR_UNUSED *cbuf_size) /******/ { int ret_value = -1; @@ -4914,27 +5285,27 @@ h5pget_fapl_direct_c(hid_t_f H5_ATTR_UNUSED *fapl_id, size_t_f H5_ATTR_UNUSED *a /****if* H5Pf/h5pset_attr_phase_change_c * NAME - * h5pset_attr_phase_change_c + * h5pset_attr_phase_change_c * PURPOSE - * Calls H5Pset_attr_phase_change + * Calls H5Pset_attr_phase_change * * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * March 21, 2008 + * March 21, 2008 * HISTORY * * SOURCE */ int_f -h5pset_attr_phase_change_c(hid_t_f *ocpl_id, int_f *max_compact, int_f *min_dense ) +nh5pset_attr_phase_change_c(hid_t_f *ocpl_id, int_f *max_compact, int_f *min_dense ) /******/ { int ret_value = -1; @@ -4951,25 +5322,25 @@ h5pset_attr_phase_change_c(hid_t_f *ocpl_id, int_f *max_compact, int_f *min_dens /****if* H5Pf/h5pset_nbit_c * NAME - * h5pset_nbit_c + * h5pset_nbit_c * PURPOSE - * Calls H5Pset_nbit + * Calls H5Pset_nbit * * INPUTS - * plist_id - Dataset creation property list identifier + * plist_id - Dataset creation property list identifier * OUTPUTS * * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * March 21, 2008 + * March 21, 2008 * HISTORY * * SOURCE */ int_f -h5pset_nbit_c(hid_t_f *plist_id ) +nh5pset_nbit_c(hid_t_f *plist_id ) /******/ { int ret_value = -1; @@ -5002,7 +5373,7 @@ h5pset_nbit_c(hid_t_f *plist_id ) * SOURCE */ int_f -h5pset_scaleoffset_c(hid_t_f *plist_id, int_f *scale_type, int_f *scale_factor ) +nh5pset_scaleoffset_c(hid_t_f *plist_id, int_f *scale_type, int_f *scale_factor ) /******/ { int ret_value = -1; @@ -5037,7 +5408,7 @@ h5pset_scaleoffset_c(hid_t_f *plist_id, int_f *scale_type, int_f *scale_factor ) * SOURCE */ int_f -h5pset_nlinks_c(hid_t_f *lapl_id, size_t_f *nlinks) +nh5pset_nlinks_c(hid_t_f *lapl_id, size_t_f *nlinks) /******/ { int ret_value = -1; @@ -5054,29 +5425,29 @@ h5pset_nlinks_c(hid_t_f *lapl_id, size_t_f *nlinks) /****if* H5Pf/h5pget_nlinks * NAME - * h5pget_nlinks + * h5pget_nlinks * PURPOSE - * Calls H5Pget_nlinks + * Calls H5Pget_nlinks * * INPUTS * - * lapl_id - File access property list identifier + * lapl_id - File access property list identifier * * OUTPUTS * - * nlinks - Maximum number of links to traverse + * nlinks - Maximum number of links to traverse * * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * March 24, 2008 + * March 24, 2008 * HISTORY * * SOURCE */ int_f -h5pget_nlinks_c(hid_t_f *lapl_id, size_t_f *nlinks) +nh5pget_nlinks_c(hid_t_f *lapl_id, size_t_f *nlinks) /******/ { int ret_value = -1; @@ -5095,26 +5466,26 @@ h5pget_nlinks_c(hid_t_f *lapl_id, size_t_f *nlinks) /****if* H5Pf/h5pget_create_inter_group_c * NAME - * h5pget_create_inter_group_c + * h5pget_create_inter_group_c * PURPOSE - * Calls H5Pget_create_intermediate_group + * Calls H5Pget_create_intermediate_group * * INPUTS * * lcpl_id - Link creation property list identifier - * crt_intermed_group - Specifying whether to create intermediate groups upon - * the creation of an object + * crt_intermed_group - Specifying whether to create intermediate groups upon + * the creation of an object * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * April 4, 2008 + * April 4, 2008 * HISTORY * * SOURCE */ int_f -h5pget_create_inter_group_c(hid_t_f *lcpl_id, int_f *crt_intermed_group) +nh5pget_create_inter_group_c(hid_t_f *lcpl_id, int_f *crt_intermed_group) /******/ { int ret_value = -1; @@ -5134,22 +5505,22 @@ h5pget_create_inter_group_c(hid_t_f *lcpl_id, int_f *crt_intermed_group) } /*---------------------------------------------------------------------------- - * Name: h5pset_chunk_cache_c - * Purpose: Calls H5Pset_chunk_cache - * - * Inputs: dapl_id - Link creation property list identifier - * rdcc_nslots - - * rdcc_nbytes - - * rdcc_w0 - - * - * Returns: 0 on success, -1 on failure - * Programmer: M. Scot Breitenfeld - * April 13, 2009 - * Modifications: + * Name: h5pset_chunk_cache_c + * Purpose: Calls H5Pset_chunk_cache + * + * Inputs: dapl_id - Link creation property list identifier + * rdcc_nslots - + * rdcc_nbytes - + * rdcc_w0 - + * + * Returns: 0 on success, -1 on failure + * Programmer: M. Scot Breitenfeld + * April 13, 2009 + * Modifications: *---------------------------------------------------------------------------*/ int_f -h5pset_chunk_cache_c(hid_t_f *dapl_id, size_t_f *rdcc_nslots, size_t_f *rdcc_nbytes, real_f *rdcc_w0) +nh5pset_chunk_cache_c(hid_t_f *dapl_id, size_t_f *rdcc_nslots, size_t_f *rdcc_nbytes, real_f *rdcc_w0) { int ret_value = -1; @@ -5164,23 +5535,23 @@ h5pset_chunk_cache_c(hid_t_f *dapl_id, size_t_f *rdcc_nslots, size_t_f *rdcc_nby } /*---------------------------------------------------------------------------- - * Name: h5pget_chunk_cache_c - * Purpose: Calls H5Pget_chunk_cache - * - * Inputs: dapl_id - Link creation property list identifier - * Outputs: - * rdcc_nslots - - * rdcc_nbytes - - * rdcc_w0 - - * - * Returns: 0 on success, -1 on failure - * Programmer: M. Scot Breitenfeld - * April 13, 2009 - * Modifications: + * Name: h5pget_chunk_cache_c + * Purpose: Calls H5Pget_chunk_cache + * + * Inputs: dapl_id - Link creation property list identifier + * Outputs: + * rdcc_nslots - + * rdcc_nbytes - + * rdcc_w0 - + * + * Returns: 0 on success, -1 on failure + * Programmer: M. Scot Breitenfeld + * April 13, 2009 + * Modifications: *---------------------------------------------------------------------------*/ int_f -h5pget_chunk_cache_c(hid_t_f *dapl_id, size_t_f *rdcc_nslots, size_t_f *rdcc_nbytes, real_f *rdcc_w0) +nh5pget_chunk_cache_c(hid_t_f *dapl_id, size_t_f *rdcc_nslots, size_t_f *rdcc_nbytes, real_f *rdcc_w0) { int ret_value = -1; size_t c_rdcc_nslots; @@ -5201,18 +5572,18 @@ h5pget_chunk_cache_c(hid_t_f *dapl_id, size_t_f *rdcc_nslots, size_t_f *rdcc_nby } /*---------------------------------------------------------------------------- - * Name: h5pset_file_image_c - * Purpose: Calls H5Pset_file_image + * Name: h5pset_file_image_c + * Purpose: Calls H5Pset_file_image * - * Inputs: + * Inputs: * fapl_id - File access property list identifier * buf_ptr - Pointer to the initial file image, - * or NULL if no initial file image is desired + * or NULL if no initial file image is desired * buf_len - Size of the supplied buffer, or 0 (zero) if no initial image is desired * - * Returns: 0 on success, -1 on failure - * Programmer: M. Scot Breitenfeld - * February 19, 2012 + * Returns: 0 on success, -1 on failure + * Programmer: M. Scot Breitenfeld + * February 19, 2012 *---------------------------------------------------------------------------*/ int_f @@ -5230,19 +5601,19 @@ h5pset_file_image_c(hid_t_f *fapl_id, void *buf_ptr, size_t_f *buf_len) } /*---------------------------------------------------------------------------- - * Name: h5pget_file_image_c - * Purpose: Calls H5Pget_file_image + * Name: h5pget_file_image_c + * Purpose: Calls H5Pget_file_image * - * Inputs: + * Inputs: * fapl_id - File access property list identifier - * Outputs: + * Outputs: * buf_ptr - Pointer to the initial file image, - * or NULL if no initial file image is desired + * or NULL if no initial file image is desired * buf_len - Size of the supplied buffer, or 0 (zero) if no initial image is desired * - * Returns: 0 on success, -1 on failure - * Programmer: M. Scot Breitenfeld - * February 19, 2012 + * Returns: 0 on success, -1 on failure + * Programmer: M. Scot Breitenfeld + * February 19, 2012 *---------------------------------------------------------------------------*/ int_f @@ -5269,225 +5640,3 @@ h5pget_file_image_c(hid_t_f *fapl_id, void **buf_ptr, size_t_f *buf_len_ptr) return ret_value; } - -#ifdef H5_HAVE_PARALLEL -/****if* H5Pf/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 - * comm - MPI communicator - * info - MPI info object - * RETURNS - * 0 on success, -1 on failure - * AUTHOR - * Elena Pourmal - * Thursday, October 26, 2000 - * HISTORY - * - * SOURCE -*/ -int_f -h5pset_fapl_mpio_c(hid_t_f *prp_id, int_f* comm, int_f* info) -/******/ -{ - int ret_value = -1; - hid_t c_prp_id; - herr_t ret; - MPI_Comm c_comm; - MPI_Info c_info; - c_comm = MPI_Comm_f2c(*comm); - c_info = MPI_Info_f2c(*info); - - /* - * Call H5Pset_mpi function. - */ - c_prp_id = *prp_id; - ret = H5Pset_fapl_mpio(c_prp_id, c_comm, c_info); - if (ret < 0) return ret_value; - ret_value = 0; - return ret_value; -} -/****if* H5Pf/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 - * AUTHOR - * Elena Pourmal - * Thursday, October 26, 2000 - * HISTORY - * - * SOURCE -*/ -int_f -h5pget_fapl_mpio_c(hid_t_f *prp_id, int_f* comm, int_f* info) -/******/ -{ - int ret_value = -1; - hid_t c_prp_id; - herr_t ret; - MPI_Comm c_comm; - MPI_Info c_info; - - /* - * Call H5Pget_mpi function. - */ - c_prp_id = *prp_id; - ret = H5Pget_fapl_mpio(c_prp_id, &c_comm, &c_info); - if (ret < 0) return ret_value; - *comm = (int_f) MPI_Comm_c2f(c_comm); - *info = (int_f) MPI_Info_c2f(c_info); - ret_value = 0; - return ret_value; -} -/****if* H5Pf/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 - * data_xfer_mode - transfer mode - * RETURNS - * 0 on success, -1 on failure - * AUTHOR - * Elena Pourmal - * Thursday, October 26, 2000 - * HISTORY - * - * SOURCE -*/ -int_f -h5pset_dxpl_mpio_c(hid_t_f *prp_id, int_f* data_xfer_mode) -/******/ -{ - int ret_value = -1; - hid_t c_prp_id; - herr_t ret; - H5FD_mpio_xfer_t c_data_xfer_mode; -/* - switch (*data_xfer_mode) { - - case H5FD_MPIO_INDEPENDENT_F: - c_data_xfer_mode = H5FD_MPIO_INDEPENDENT; - break; - - case H5FD_MPIO_COLLECTIVE_F: - c_data_xfer_mode = H5FD_MPIO_COLLECTIVE; - break; - default: - return ret_value; - } -*/ - c_data_xfer_mode = (H5FD_mpio_xfer_t)*data_xfer_mode; - /* - * Call H5Pset_dxpl_mpio function. - */ - c_prp_id = *prp_id; - ret = H5Pset_dxpl_mpio(c_prp_id, c_data_xfer_mode); - if (ret < 0) return ret_value; - ret_value = 0; - return ret_value; -} - -/****if* H5Pf/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 - * data_xfer_mode - buffer to retrieve transfer mode - * RETURNS - * 0 on success, -1 on failure - * AUTHOR - * Elena Pourmal - * Thursday, June 15, 2000 - * HISTORY - * - * SOURCE -*/ -int_f -h5pget_dxpl_mpio_c(hid_t_f *prp_id, int_f* data_xfer_mode) -/******/ -{ - int ret_value = -1; - hid_t c_prp_id; - herr_t ret; - H5FD_mpio_xfer_t c_data_xfer_mode; - - /* - * Call H5Pget_xfer function. - */ - c_prp_id = *prp_id; - ret = H5Pget_dxpl_mpio(c_prp_id, &c_data_xfer_mode); - if (ret < 0) return ret_value; - *data_xfer_mode = (int_f)c_data_xfer_mode; -/* - switch (c_data_xfer_mode) { - - case H5FD_MPIO_INDEPENDENT: - *data_xfer_mode = H5FD_MPIO_INDEPENDENT_F; - break; - - case H5FD_MPIO_COLLECTIVE: - *data_xfer_mode = H5FD_MPIO_COLLECTIVE_F; - break; - - default: - return ret_value; - } -*/ - ret_value = 0; - return ret_value; -} - -/****if* H5Pf/h5pget_mpio_actual_io_mode_c - * NAME - * h5pget_mpio_actual_io_mode_c - * PURPOSE - * Calls H5Pget_mpio_actual_io_mode - * - * INPUTS - * dxpl_id - Dataset transfer property list identifier. - * OUTPUTS - * actual_io_mode - The type of I/O performed by this process. - * - * RETURNS - * 0 on success, -1 on failure - * AUTHOR - * M. Scot Breitenfeld - * July 27, 2012 - * SOURCE -*/ -int_f -h5pget_mpio_actual_io_mode_c(hid_t_f *dxpl_id, int_f *actual_io_mode) -/******/ -{ - int ret_value = -1; - H5D_mpio_actual_io_mode_t c_actual_io_mode; - - /* - * Call H5Pget_mpio_actual_io_mode_f function. - */ - if( (H5Pget_mpio_actual_io_mode((hid_t)*dxpl_id, &c_actual_io_mode)) <0 ) - return ret_value; /* error occurred */ - - *actual_io_mode =(int_f)c_actual_io_mode; - - ret_value = 0; - return ret_value; -} -#endif /*H5_HAVE_PARALLEL*/ diff --git a/fortran/src/H5Pff.F90 b/fortran/src/H5Pff.f90 index 97f907b..3409f15 100644 --- a/fortran/src/H5Pff.F90 +++ b/fortran/src/H5Pff.f90 @@ -1,15 +1,17 @@ -!****h* ROBODoc/H5Pff +!****h* ROBODoc/H5P (F90) ! ! NAME -! H5P +! H5P_PROVISIONAL ! ! PURPOSE -! This file contains Fortran interfaces for H5P functions. +! 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. *S +! 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 * @@ -23,24 +25,14 @@ ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! ! NOTES -! -! _____ __ __ _____ ____ _____ _______ _ _ _______ -! |_ _| \/ | __ \ / __ \| __ \__ __|/\ | \ | |__ __| -! **** | | | \ / | |__) | | | | |__) | | | / \ | \| | | | **** -! **** | | | |\/| | ___/| | | | _ / | | / /\ \ | . ` | | | **** -! **** _| |_| | | | | | |__| | | \ \ | |/ ____ \| |\ | | | **** -! |_____|_| |_|_| \____/|_| \_\ |_/_/ \_\_| \_| |_| -! +! *** IMPORTANT *** ! If you add a new H5P function you must add the function name to the ! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory. ! This is needed for Windows based operating systems. !***** -#include <H5config_f.inc> - MODULE H5P - USE, INTRINSIC :: ISO_C_BINDING USE H5GLOBAL INTERFACE h5pset_fapl_multi_f @@ -48,127 +40,6 @@ MODULE H5P MODULE PROCEDURE h5pset_fapl_multi_s END INTERFACE - INTERFACE h5pset_fill_value_f - MODULE PROCEDURE h5pset_fill_value_integer - 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_char - ! Recommended procedure: - MODULE PROCEDURE h5pget_fill_value_ptr - - END INTERFACE - - INTERFACE h5pset_f - MODULE PROCEDURE h5pset_integer - MODULE PROCEDURE h5pset_char - ! Recommended procedure: - MODULE PROCEDURE h5pset_ptr - - END INTERFACE - - INTERFACE h5pget_f - MODULE PROCEDURE h5pget_integer - MODULE PROCEDURE h5pget_char - ! Recommended procedure: - MODULE PROCEDURE h5pget_ptr - END INTERFACE - - INTERFACE h5pregister_f - MODULE PROCEDURE h5pregister_integer - ! Recommended procedure: - MODULE PROCEDURE h5pregister_ptr - END INTERFACE - - INTERFACE h5pinsert_f - MODULE PROCEDURE h5pinsert_integer - MODULE PROCEDURE h5pinsert_char - ! Recommended procedure: - MODULE PROCEDURE h5pinsert_ptr - END INTERFACE - - INTERFACE - INTEGER FUNCTION h5pget_fill_value_c(prp_id, type_id, fillvalue) & - BIND(C, NAME='h5pget_fill_value_c') - IMPORT :: c_ptr - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: prp_id - INTEGER(HID_T), INTENT(IN) :: type_id - TYPE(C_PTR), VALUE :: fillvalue - END FUNCTION h5pget_fill_value_c - END INTERFACE - - INTERFACE - INTEGER FUNCTION h5pset_fill_value_c(prp_id, type_id, fillvalue) & - BIND(C, NAME='h5pset_fill_value_c') - IMPORT :: c_ptr - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: prp_id - INTEGER(HID_T), INTENT(IN) :: type_id - TYPE(C_PTR), VALUE :: fillvalue - END FUNCTION h5pset_fill_value_c - END INTERFACE - - INTERFACE - INTEGER FUNCTION h5pset_c(prp_id, name, name_len, value) & - BIND(C, NAME='h5pset_c') - IMPORT :: c_char, c_ptr - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: prp_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name - INTEGER :: name_len - TYPE(C_PTR), VALUE :: value - END FUNCTION h5pset_c - END INTERFACE - - INTERFACE - INTEGER FUNCTION h5pget_c(prp_id, name, name_len, value) & - BIND(C, NAME='h5pget_c') - IMPORT :: c_char, c_ptr - IMPORT :: HID_T - INTEGER(HID_T), INTENT(IN) :: prp_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name - INTEGER :: name_len - TYPE(C_PTR), VALUE :: value - END FUNCTION h5pget_c - END INTERFACE - - INTERFACE - INTEGER FUNCTION h5pregister_c(class, name, name_len, size, value) & - BIND(C, NAME='h5pregister_c') - IMPORT :: c_char, c_ptr - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: class - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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) & - BIND(C, NAME='h5pinsert_c') - IMPORT :: c_char, c_ptr - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: plist - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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/h5pcreate_f @@ -221,11 +92,15 @@ CONTAINS INTEGER(HID_T), INTENT(OUT) :: prp_id INTEGER , INTENT(OUT) :: hdferr !***** +! INTEGER, EXTERNAL :: h5pcreate_c +! MS FORTRAN needs explicit interface for C functions called here. +! INTERFACE - INTEGER FUNCTION h5pcreate_c(class, prp_id) & - BIND(C,NAME='h5pcreate_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -277,11 +152,15 @@ CONTAINS !***** 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) & - BIND(C,NAME='h5pset_preserve_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -331,11 +210,15 @@ CONTAINS !***** 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) & - BIND(C,NAME='h5pget_preserve_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -382,10 +265,11 @@ CONTAINS !***** INTERFACE - INTEGER FUNCTION h5pget_class_c(prp_id, classtype) & - BIND(C,NAME='h5pget_class_c') - IMPORT :: HID_T - IMPLICIT NONE + 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(HID_T), INTENT(OUT) :: classtype END FUNCTION h5pget_class_c @@ -428,11 +312,15 @@ CONTAINS ! 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) & - BIND(C,NAME='h5pcopy_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -472,11 +360,16 @@ CONTAINS 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) & - BIND(C,NAME='h5pclose_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -521,11 +414,16 @@ CONTAINS 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) & - BIND(C,NAME='h5pset_chunk_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE + 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 @@ -574,12 +472,15 @@ CONTAINS ! 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) & - BIND(C,NAME='h5pget_chunk_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE + 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 @@ -627,10 +528,11 @@ CONTAINS ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5pset_deflate_c(prp_id, level) & - BIND(C,NAME='h5pset_deflate_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -685,16 +587,20 @@ CONTAINS ! 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 h5pget_version_c(prp_id, boot, freelist, stab, shhdr) & - BIND(C,NAME='h5pget_version_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 + 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 @@ -734,11 +640,16 @@ CONTAINS 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) & - BIND(C,NAME='h5pset_userblock_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE + 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 @@ -782,11 +693,15 @@ CONTAINS 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) & - BIND(C,NAME='h5pget_userblock_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE + 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 @@ -832,11 +747,15 @@ CONTAINS 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) & - BIND(C,NAME='h5pset_sizes_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + 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 @@ -884,11 +803,15 @@ CONTAINS 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) & - BIND(C,NAME='h5pget_sizes_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + 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 @@ -935,11 +858,16 @@ CONTAINS 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) & - BIND(C,NAME='h5pset_sym_k_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -985,11 +913,16 @@ CONTAINS 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) & - BIND(C,NAME='h5pget_sym_k_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -1033,11 +966,16 @@ CONTAINS 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) & - BIND(C,NAME='h5pset_istore_k_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -1080,11 +1018,16 @@ CONTAINS 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) & - BIND(C,NAME='h5pget_istore_k_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -1128,11 +1071,15 @@ CONTAINS 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) & - BIND(C,NAME='h5pget_driver_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -1173,11 +1120,16 @@ CONTAINS 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) & - BIND(C,NAME='h5pset_fapl_stdio_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -1256,11 +1208,16 @@ CONTAINS 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) & - BIND(C,NAME='h5pset_fapl_sec2_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -1341,11 +1298,16 @@ CONTAINS 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) & - BIND(C,NAME='h5pset_alignment_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE + 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 @@ -1391,11 +1353,15 @@ CONTAINS 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) & - BIND(C,NAME='h5pget_alignment_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE + 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 @@ -1443,12 +1409,17 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure !***** - INTEGER :: backing_store_flag + 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) & - BIND(C,NAME='h5pset_fapl_core_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + 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 @@ -1500,10 +1471,11 @@ CONTAINS INTEGER :: backing_store_flag INTERFACE - INTEGER FUNCTION h5pget_fapl_core_c(prp_id, increment, backing_store_flag) & - BIND(C,NAME='h5pget_fapl_core_c') - IMPORT :: HID_T,SIZE_T - IMPLICIT NONE + 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 @@ -1553,11 +1525,16 @@ CONTAINS 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) & - BIND(C,NAME='h5pset_fapl_family_c') - IMPORT :: HID_T,HSIZE_T - IMPLICIT NONE + 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 @@ -1604,11 +1581,16 @@ CONTAINS 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) & - BIND(C,NAME='h5pget_fapl_family_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE + 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 @@ -1664,11 +1646,16 @@ CONTAINS 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) & - BIND(C,NAME='h5pset_cache_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + 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 @@ -1728,11 +1715,15 @@ CONTAINS 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) & - BIND(C,NAME='h5pget_cache_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + 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 @@ -1791,16 +1782,22 @@ CONTAINS ! 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) & - BIND(C,NAME='h5pset_fapl_split_c') - IMPORT :: C_CHAR - IMPORT :: HID_T - IMPLICIT NONE + 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(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: meta_ext + CHARACTER(LEN=*), INTENT(IN) :: meta_ext INTEGER(HID_T), INTENT(IN) :: meta_plist - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: raw_ext + CHARACTER(LEN=*), INTENT(IN) :: raw_ext INTEGER(HID_T), INTENT(IN) :: raw_plist INTEGER :: meta_len, raw_len END FUNCTION h5pset_fapl_split_c @@ -1899,11 +1896,16 @@ CONTAINS 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) & - BIND(C,NAME='h5pset_gc_references_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -1948,11 +1950,16 @@ CONTAINS 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) & - BIND(C,NAME='h5pget_gc_references_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -2004,11 +2011,16 @@ CONTAINS 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) & - BIND(C,NAME='h5pset_layout_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -2059,11 +2071,16 @@ CONTAINS 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) & - BIND(C,NAME='h5pget_layout_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -2110,11 +2127,16 @@ CONTAINS 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) & - BIND(C,NAME='h5pset_filter_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + 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 @@ -2161,11 +2183,16 @@ CONTAINS 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) & - BIND(C,NAME='h5pget_nfilters_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -2234,18 +2261,19 @@ CONTAINS ! INTERFACE INTEGER FUNCTION h5pget_filter_c(prp_id, filter_number, flags, cd_nelmts, & - cd_values, namelen, name, filter_id ) & - BIND(C,NAME='h5pget_filter_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + 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(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: name + CHARACTER(LEN=*), INTENT(OUT) :: name INTEGER, INTENT(OUT) :: filter_id END FUNCTION h5pget_filter_c END INTERFACE @@ -2298,16 +2326,18 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure !***** + INTEGER :: namelen INTERFACE - INTEGER FUNCTION h5pset_external_c(prp_id, name,namelen, offset, bytes) & - BIND(C,NAME='h5pset_external_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, OFF_T, HSIZE_T - IMPLICIT NONE + 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(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + CHARACTER(LEN=*), INTENT(IN) :: name INTEGER :: namelen INTEGER(OFF_T), INTENT(IN) :: offset INTEGER(HSIZE_T), INTENT(IN) :: bytes @@ -2354,11 +2384,15 @@ CONTAINS 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) & - BIND(C,NAME='h5pget_external_count_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -2417,16 +2451,21 @@ CONTAINS 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) & - BIND(C,NAME='h5pget_external_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T, HSIZE_T, OFF_T - IMPLICIT NONE + 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(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: name + CHARACTER(LEN=*), INTENT(OUT) :: name INTEGER(OFF_T), INTENT(OUT) :: offset INTEGER(HSIZE_T), INTENT(OUT) :: bytes END FUNCTION h5pget_external_c @@ -2475,11 +2514,16 @@ CONTAINS 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) & - BIND(C,NAME='h5pset_btree_ratios_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -2530,11 +2574,17 @@ CONTAINS 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) & - BIND(C,NAME='h5pget_btree_ratios_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -2585,11 +2635,16 @@ CONTAINS 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) & - BIND(C,NAME='h5pget_fclose_degree_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -2634,11 +2689,13 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure !***** + INTERFACE - INTEGER FUNCTION h5pset_fclose_degree_c(fapl_id, degree) & - BIND(C,NAME='h5pset_fclose_degree_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -2682,10 +2739,11 @@ CONTAINS INTEGER :: c_flag INTERFACE - INTEGER FUNCTION h5pequal_c(plist1_id, plist2_id, c_flag) & - BIND(C,NAME='h5pequal_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -2729,10 +2787,11 @@ CONTAINS !***** INTERFACE - INTEGER FUNCTION h5pset_buffer_c(plist_id, size) & - BIND(C,NAME='h5pset_buffer_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE + 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 @@ -2774,10 +2833,11 @@ CONTAINS !***** INTERFACE - INTEGER FUNCTION h5pget_buffer_c(plist_id, size) & - BIND(C,NAME='h5pget_buffer_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE + 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 @@ -2825,10 +2885,11 @@ CONTAINS ! 0 on success and -1 on failure !***** INTERFACE - INTEGER FUNCTION h5pfill_value_defined_c(plist_id, flag) & - BIND(C,NAME='h5pfill_value_defined_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -2878,10 +2939,11 @@ CONTAINS !***** INTERFACE - INTEGER FUNCTION h5pset_alloc_time_c(plist_id, flag) & - BIND(C,NAME='h5pset_alloc_time_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -2931,10 +2993,11 @@ CONTAINS !***** INTERFACE - INTEGER FUNCTION h5pget_alloc_time_c(plist_id, flag) & - BIND(C,NAME='h5pget_alloc_time_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -2980,10 +3043,11 @@ CONTAINS !***** INTERFACE - INTEGER FUNCTION h5pset_fill_time_c(plist_id, flag) & - BIND(C,NAME='h5pset_fill_time_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -3030,10 +3094,11 @@ CONTAINS !***** INTERFACE - INTEGER FUNCTION h5pget_fill_time_c(plist_id, flag) & - BIND(C,NAME='h5pget_fill_time_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -3072,10 +3137,11 @@ CONTAINS ! 0 on success and -1 on failure !***** INTERFACE - INTEGER FUNCTION h5pset_meta_block_size_c(plist_id, size) & - BIND(C,NAME='h5pset_meta_block_size_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE + 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 @@ -3114,10 +3180,11 @@ CONTAINS ! 0 on success and -1 on failure !***** INTERFACE - INTEGER FUNCTION h5pget_meta_block_size_c(plist_id, size) & - BIND(C,NAME='h5pget_meta_block_size_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE + 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 @@ -3155,11 +3222,13 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure !***** + INTERFACE - INTEGER FUNCTION h5pset_sieve_buf_size_c(plist_id, size) & - BIND(C,NAME='h5pset_sieve_buf_size_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + 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 @@ -3197,11 +3266,13 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure !***** + INTERFACE - INTEGER FUNCTION h5pget_sieve_buf_size_c(plist_id, size) & - BIND(C,NAME='h5pget_sieve_buf_size_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + 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 @@ -3239,11 +3310,13 @@ CONTAINS 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) & - BIND(C,NAME='h5pset_small_data_block_size_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE + 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 @@ -3281,11 +3354,13 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure !***** + INTERFACE - INTEGER FUNCTION h5pget_small_data_block_size_c(plist_id, size) & - BIND(C,NAME='h5pget_small_data_block_size_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE + 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 @@ -3323,11 +3398,13 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure !***** + INTERFACE - INTEGER FUNCTION h5pset_hyper_vector_size_c(plist_id, size) & - BIND(C,NAME='h5pset_hyper_vector_size_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + 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 @@ -3365,11 +3442,13 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure !***** + INTERFACE - INTEGER FUNCTION h5pget_hyper_vector_size_c(plist_id, size) & - BIND(C,NAME='h5pget_hyper_vector_size_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + 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 @@ -3412,13 +3491,14 @@ CONTAINS INTEGER :: name_len INTERFACE - INTEGER FUNCTION h5pexist_c(prp_id, name, name_len) & - BIND(C,NAME='h5pexist_c') - IMPORT :: C_CHAR - IMPORT :: HID_T - IMPLICIT NONE + 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(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + CHARACTER(LEN=*), INTENT(IN) :: name INTEGER, INTENT(IN) :: name_len END FUNCTION h5pexist_c END INTERFACE @@ -3469,13 +3549,14 @@ CONTAINS INTEGER :: name_len INTERFACE - INTEGER FUNCTION h5pget_size_c(prp_id, name, name_len, size) & - BIND(C,NAME='h5pget_size_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + 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(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + CHARACTER(LEN=*), INTENT(IN) :: name INTEGER, INTENT(IN) :: name_len INTEGER(SIZE_T), INTENT(OUT) :: size END FUNCTION h5pget_size_c @@ -3513,11 +3594,13 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure !***** + INTERFACE - INTEGER FUNCTION h5pget_nprops_c(prp_id, nprops) & - BIND(C,NAME='h5pget_nprops_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + 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 @@ -3565,13 +3648,14 @@ CONTAINS INTEGER :: name_len INTERFACE - INTEGER FUNCTION h5pget_class_name_c(prp_id, name, name_len) & - BIND(C,NAME='h5pget_class_name_c') - IMPORT :: C_CHAR - IMPORT :: HID_T - IMPLICIT NONE + 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(KIND=C_CHAR), DIMENSION(*), INTENT(INOUT) :: name + CHARACTER(LEN=*), INTENT(INOUT) :: name INTEGER, INTENT(IN) :: name_len END FUNCTION h5pget_class_name_c END INTERFACE @@ -3614,11 +3698,13 @@ CONTAINS INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure !***** + INTERFACE - INTEGER FUNCTION h5pget_class_parent_c(prp_id, parent_id) & - BIND(C,NAME='h5pget_class_parent_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -3658,10 +3744,11 @@ CONTAINS ! 0 on success and -1 on failure !***** INTERFACE - INTEGER FUNCTION h5pisa_class_c(plist, pclass) & - BIND(C,NAME='h5pisa_class_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -3709,14 +3796,15 @@ CONTAINS INTEGER :: name_len INTERFACE - INTEGER FUNCTION h5pcopy_prop_c(dst_id, src_id, name, name_len) & - BIND(C,NAME='h5pcopy_prop_c') - IMPORT :: C_CHAR - IMPORT :: HID_T - IMPLICIT NONE + 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(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + CHARACTER(LEN=*), INTENT(IN) :: name INTEGER, INTENT(IN) :: name_len END FUNCTION h5pcopy_prop_c END INTERFACE @@ -3757,13 +3845,14 @@ CONTAINS INTEGER :: name_len INTERFACE - INTEGER FUNCTION h5premove_c(plid, name, name_len) & - BIND(C,NAME='h5premove_c') - IMPORT :: C_CHAR - IMPORT :: HID_T - IMPLICIT NONE + 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(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + CHARACTER(LEN=*), INTENT(IN) :: name INTEGER, INTENT(IN) :: name_len END FUNCTION h5premove_c END INTERFACE @@ -3803,13 +3892,14 @@ CONTAINS INTEGER :: name_len INTERFACE - INTEGER FUNCTION h5punregister_c(class, name, name_len) & - BIND(C,NAME='h5punregister_c') - IMPORT :: C_CHAR - IMPORT :: HID_T - IMPLICIT NONE + 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(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + CHARACTER(LEN=*), INTENT(IN) :: name INTEGER, INTENT(IN) :: name_len END FUNCTION h5punregister_c END INTERFACE @@ -3845,10 +3935,11 @@ CONTAINS ! 0 on success and -1 on failure !***** INTERFACE - INTEGER FUNCTION h5pclose_class_c(class) & - BIND(C,NAME='h5pclose_class_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -3880,11 +3971,16 @@ CONTAINS 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) & - BIND(C,NAME='h5pset_shuffle_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -3922,11 +4018,16 @@ CONTAINS 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) & - BIND(C,NAME='h5pset_edc_check_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -3967,11 +4068,16 @@ CONTAINS 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 h5pget_edc_check_c(prp_id, flag) & - BIND(C,NAME='h5pget_edc_check_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -4006,12 +4112,17 @@ CONTAINS 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) & - BIND(C,NAME='h5pset_fletcher32_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -4047,11 +4158,16 @@ CONTAINS 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) & - BIND(C,NAME='h5pset_family_offset_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE + 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 @@ -4101,15 +4217,17 @@ CONTAINS INTERFACE INTEGER FUNCTION h5pset_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, & - maxlen, memb_addr, flag) & - BIND(C,NAME='h5pset_fapl_multi_c') - IMPORT :: C_CHAR - IMPORT :: HID_T + maxlen, memb_addr, flag) + USE H5GLOBAL IMPLICIT NONE + !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(*), INTENT(IN) :: memb_map INTEGER(HID_T), DIMENSION(*), INTENT(IN) :: memb_fapl - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: memb_name + CHARACTER(LEN=*), DIMENSION(*), INTENT(IN) :: memb_name REAL, DIMENSION(*), INTENT(IN) :: memb_addr INTEGER, DIMENSION(*) :: lenm INTEGER :: maxlen @@ -4155,11 +4273,16 @@ CONTAINS !***** 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) & - BIND(C,NAME='h5pset_fapl_multi_sc') - IMPORT :: HID_T + INTEGER FUNCTION h5pset_fapl_multi_sc(prp_id,flag) + USE H5GLOBAL IMPLICIT NONE + !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 @@ -4217,15 +4340,17 @@ CONTAINS ! INTERFACE INTEGER FUNCTION h5pget_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, & - maxlen, memb_addr, flag, c_maxlen_out) & - BIND(C,NAME='h5pget_fapl_multi_c') - IMPORT :: C_CHAR - IMPORT :: HID_T + maxlen, memb_addr, flag, c_maxlen_out) + USE H5GLOBAL IMPLICIT NONE + !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(*), INTENT(OUT) :: memb_map INTEGER(HID_T), DIMENSION(*), INTENT(OUT) :: memb_fapl - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: memb_name + CHARACTER(LEN=*), DIMENSION(*), INTENT(OUT) :: memb_name REAL, DIMENSION(*), INTENT(OUT) :: memb_addr INTEGER, DIMENSION(*) :: lenm INTEGER :: maxlen @@ -4282,12 +4407,17 @@ CONTAINS ! 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) & - BIND(C,NAME='h5pset_szip_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -4332,12 +4462,16 @@ CONTAINS !***** 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) & - BIND(C,NAME='h5pall_filters_avail_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: prp_id + 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 @@ -4388,21 +4522,27 @@ CONTAINS 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) & - BIND(C,NAME='h5pget_filter_by_id_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + 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(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: name + CHARACTER(LEN=*), INTENT(OUT) :: name END FUNCTION h5pget_filter_by_id_c END INTERFACE @@ -4446,12 +4586,17 @@ CONTAINS 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) & - BIND(C,NAME='h5pmodify_filter_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + 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 @@ -4492,12 +4637,17 @@ CONTAINS 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) & - BIND(C,NAME='h5premove_filter_c') - IMPORT :: HID_T - IMPLICIT NONE + 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 @@ -4540,12 +4690,16 @@ CONTAINS ! (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. +! INTERFACE - INTEGER FUNCTION h5pget_attr_phase_change_c(ocpl_id, max_compact, min_dense) & - BIND(C,NAME='h5pget_attr_phase_change_c') - IMPORT :: HID_T - IMPLICIT NONE + INTEGER FUNCTION h5pget_attr_phase_change_c(ocpl_id, max_compact, min_dense) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_ATTR_PHASE_CHANGE_C'::h5pget_attr_phase_change_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: ocpl_id INTEGER, INTENT(OUT) :: max_compact INTEGER, INTENT(OUT) :: min_dense @@ -4584,12 +4738,16 @@ CONTAINS INTEGER, INTENT(IN) :: 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. +! INTERFACE - INTEGER FUNCTION H5Pset_attr_creation_order_c(ocpl_id, crt_order_flags) & - BIND(C,NAME='h5pset_attr_creation_order_c') - IMPORT :: HID_T - IMPLICIT NONE + INTEGER FUNCTION H5Pset_attr_creation_order_c(ocpl_id, crt_order_flags) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_ATTR_CREATION_ORDER_C'::h5pset_attr_creation_order_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: ocpl_id INTEGER, INTENT(IN) :: crt_order_flags @@ -4633,10 +4791,12 @@ CONTAINS ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5pset_shared_mesg_nindexes_c(plist_id, nindexes) & - BIND(C,NAME='h5pset_shared_mesg_nindexes_c') - IMPORT :: HID_T - IMPLICIT NONE + INTEGER FUNCTION h5pset_shared_mesg_nindexes_c(plist_id, nindexes) + USE H5GLOBAL + !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 @@ -4685,14 +4845,18 @@ CONTAINS ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5pset_shared_mesg_index_c(fcpl_id, index_num, mesg_type_flags, min_mesg_size) & - BIND(C,NAME='h5pset_shared_mesg_index_c') - IMPORT :: HID_T - IMPLICIT NONE + INTEGER FUNCTION h5pset_shared_mesg_index_c(fcpl_id, index_num, mesg_type_flags, min_mesg_size) + + USE H5GLOBAL + !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, INTENT(IN) :: index_num INTEGER, INTENT(IN) :: mesg_type_flags INTEGER, INTENT(IN) :: min_mesg_size + END FUNCTION H5pset_shared_mesg_index_c END INTERFACE @@ -4734,12 +4898,15 @@ CONTAINS ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5pget_attr_creation_order_c(ocpl_id, crt_order_flags) & - BIND(C,NAME='h5pget_attr_creation_order_c') - IMPORT :: HID_T - IMPLICIT NONE + INTEGER FUNCTION h5pget_attr_creation_order_c(ocpl_id, crt_order_flags) + + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_ATTR_CREATION_ORDER_C'::h5pget_attr_creation_order_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: ocpl_id INTEGER, INTENT(OUT) :: crt_order_flags + END FUNCTION H5pget_attr_creation_order_c END INTERFACE @@ -4788,10 +4955,12 @@ CONTAINS ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5pset_libver_bounds_c(fapl_id, low, high) & - BIND(C,NAME='h5pset_libver_bounds_c') - IMPORT :: HID_T - IMPLICIT NONE + INTEGER FUNCTION h5pset_libver_bounds_c(fapl_id, low, high) + + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_LIBVER_BOUNDS_C'::h5pset_libver_bounds_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: fapl_id INTEGER, INTENT(IN) :: low INTEGER, INTENT(IN) :: high @@ -4832,12 +5001,17 @@ CONTAINS 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. +! INTERFACE - INTEGER FUNCTION h5pset_link_creation_order_c(gcpl_id, crt_order_flags) & - BIND(C,NAME='h5pset_link_creation_order_c') - IMPORT :: HID_T - IMPLICIT NONE + INTEGER FUNCTION h5pset_link_creation_order_c(gcpl_id, crt_order_flags) + + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_LINK_CREATION_ORDER_C'::h5pset_link_creation_order_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: gcpl_id INTEGER, INTENT(IN) :: crt_order_flags @@ -4878,12 +5052,16 @@ CONTAINS 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. +! INTERFACE - INTEGER FUNCTION h5pget_link_phase_change_c(gcpl_id, max_compact, min_dense) & - BIND(C,NAME='h5pget_link_phase_change_c') - IMPORT :: HID_T - IMPLICIT NONE + INTEGER FUNCTION h5pget_link_phase_change_c(gcpl_id, max_compact, min_dense) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_LINK_PHASE_CHANGE_C'::h5pget_link_phase_change_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: gcpl_id INTEGER, INTENT(OUT) :: max_compact INTEGER, INTENT(OUT) :: min_dense @@ -4930,9 +5108,11 @@ CONTAINS ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5pget_obj_track_times_c(plist_id, status) & - BIND(C,NAME='h5pget_obj_track_times_c') - IMPORT :: HID_T + INTEGER FUNCTION h5pget_obj_track_times_c(plist_id, status) + USE H5GLOBAL + !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, INTENT(OUT) :: status END FUNCTION h5pget_obj_track_times_c @@ -4994,10 +5174,11 @@ CONTAINS ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5pset_obj_track_times_c(plist_id, status) & - BIND(C,NAME='h5pset_obj_track_times_c') - IMPORT :: HID_T - IMPLICIT NONE + INTEGER FUNCTION h5pset_obj_track_times_c(plist_id, status) + USE H5GLOBAL + !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, INTENT(IN) :: status END FUNCTION h5pset_obj_track_times_c @@ -5044,12 +5225,16 @@ CONTAINS ! 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. +! INTERFACE - INTEGER FUNCTION h5pset_create_inter_group_c(lcpl_id, crt_intermed_group) & - BIND(C,NAME='h5pset_create_inter_group_c') - IMPORT :: HID_T - IMPLICIT NONE + INTEGER FUNCTION h5pset_create_inter_group_c(lcpl_id, crt_intermed_group) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_CREATE_INTER_GROUP_C'::h5pset_create_inter_group_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: lcpl_id INTEGER, INTENT(IN) :: crt_intermed_group END FUNCTION h5pset_create_inter_group_c @@ -5088,12 +5273,17 @@ CONTAINS 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. +! INTERFACE - INTEGER FUNCTION h5pget_link_creation_order_c(gcpl_id, crt_order_flags) & - BIND(C,NAME='h5pget_link_creation_order_c') - IMPORT :: HID_T - IMPLICIT NONE + INTEGER FUNCTION h5pget_link_creation_order_c(gcpl_id, crt_order_flags) + + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_LINK_CREATION_ORDER_C'::h5pget_link_creation_order_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: gcpl_id INTEGER, INTENT(OUT) :: crt_order_flags @@ -5136,12 +5326,17 @@ CONTAINS ! 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. +! INTERFACE - INTEGER FUNCTION h5pset_char_encoding_c(plist_id, encoding) & - BIND(C,NAME='h5pset_char_encoding_c') - IMPORT :: HID_T - IMPLICIT NONE + INTEGER FUNCTION h5pset_char_encoding_c(plist_id, encoding) + + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_CHAR_ENCODING_C'::h5pset_char_encoding_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: plist_id INTEGER, INTENT(IN) :: encoding @@ -5186,12 +5381,17 @@ CONTAINS ! 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. +! INTERFACE - INTEGER FUNCTION h5pget_char_encoding_c(plist_id, encoding) & - BIND(C,NAME='h5pget_char_encoding_c') - IMPORT :: HID_T - IMPLICIT NONE + INTEGER FUNCTION h5pget_char_encoding_c(plist_id, encoding) + + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_CHAR_ENCODING_C'::h5pget_char_encoding_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: plist_id INTEGER, INTENT(OUT) :: encoding @@ -5238,12 +5438,16 @@ CONTAINS ! 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. +! INTERFACE - INTEGER FUNCTION h5pset_copy_object_c(ocp_plist_id, copy_options) & - BIND(C,NAME='h5pset_copy_object_c') - IMPORT :: HID_T - IMPLICIT NONE + INTEGER FUNCTION h5pset_copy_object_c(ocp_plist_id, copy_options) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_COPY_OBJECT_C'::h5pset_copy_object_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: ocp_plist_id INTEGER, INTENT(IN) :: copy_options END FUNCTION h5pset_copy_object_c @@ -5287,12 +5491,16 @@ CONTAINS ! 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. +! INTERFACE - INTEGER FUNCTION h5pget_copy_object_c(ocp_plist_id, copy_options) & - BIND(C,NAME='h5pget_copy_object_c') - IMPORT :: HID_T - IMPLICIT NONE + INTEGER FUNCTION h5pget_copy_object_c(ocp_plist_id, copy_options) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_COPY_OBJECT_C'::h5pget_copy_object_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: ocp_plist_id INTEGER, INTENT(OUT) :: copy_options END FUNCTION h5pget_copy_object_c @@ -5340,14 +5548,18 @@ SUBROUTINE h5pget_data_transform_f(plist_id, expression, hdferr, size) INTEGER :: expression_len INTEGER(SIZE_T) :: size_default + +! MS FORTRAN needs explicit interface for C functions called here. +! INTERFACE - INTEGER FUNCTION h5pget_data_transform_c(plist_id, expression, expression_len, size_default) & - BIND(C,NAME='h5pget_data_transform_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + INTEGER FUNCTION h5pget_data_transform_c(plist_id, expression, expression_len, size_default) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !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(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: expression + CHARACTER(LEN=*), INTENT(OUT) :: expression INTEGER(SIZE_T) :: size_default INTEGER :: expression_len END FUNCTION h5pget_data_transform_c @@ -5393,14 +5605,17 @@ SUBROUTINE h5pget_data_transform_f(plist_id, expression, hdferr, size) !***** INTEGER :: expression_len +! MS FORTRAN needs explicit interface for C functions called here. +! INTERFACE - INTEGER FUNCTION h5pset_data_transform_c(plist_id, expression, expression_len) & - BIND(C,NAME='h5pset_data_transform_c') - IMPORT :: C_CHAR - IMPORT :: HID_T - IMPLICIT NONE + INTEGER FUNCTION h5pset_data_transform_c(plist_id, expression, expression_len) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !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 - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: expression + CHARACTER(LEN=*), INTENT(IN) :: expression INTEGER :: expression_len END FUNCTION h5pset_data_transform_c END INTERFACE @@ -5438,12 +5653,16 @@ SUBROUTINE h5pget_data_transform_f(plist_id, expression, hdferr, size) INTEGER(SIZE_T), INTENT(OUT) :: size_hint ! Hint for size of local heap 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 h5pget_local_heap_size_hint_c(gcpl_id, size_hint) & - BIND(C,NAME='h5pget_local_heap_size_hint_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + INTEGER FUNCTION h5pget_local_heap_size_hint_c(gcpl_id, size_hint) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_LOCAL_HEAP_SIZE_HINT_C'::h5pget_local_heap_size_hint_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: gcpl_id INTEGER(SIZE_T), INTENT(OUT) :: size_hint END FUNCTION H5Pget_local_heap_size_hint_c @@ -5486,12 +5705,16 @@ SUBROUTINE h5pget_data_transform_f(plist_id, expression, hdferr, size) INTEGER, INTENT(OUT) :: est_name_len ! Estimated average length of link names 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 h5pget_est_link_info_c(gcpl_id, est_num_entries, est_name_len) & - BIND(C,NAME='h5pget_est_link_info_c') - IMPORT :: HID_T - IMPLICIT NONE + INTEGER FUNCTION h5pget_est_link_info_c(gcpl_id, est_num_entries, est_name_len) + USE H5GLOBAL + !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, INTENT(OUT) :: est_num_entries INTEGER, INTENT(OUT) :: est_name_len @@ -5530,12 +5753,16 @@ SUBROUTINE h5pget_data_transform_f(plist_id, expression, hdferr, size) INTEGER(SIZE_T), INTENT(IN) :: size_hint ! Hint for size of local heap 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 h5pset_local_heap_size_hint_c(gcpl_id, size_hint) & - BIND(C,NAME='h5pset_local_heap_size_hint_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + INTEGER FUNCTION h5pset_local_heap_size_hint_c(gcpl_id, size_hint) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_LOCAL_HEAP_SIZE_HINT_C'::h5pset_local_heap_size_hint_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: gcpl_id INTEGER(SIZE_T), INTENT(IN) :: size_hint END FUNCTION h5pset_local_heap_size_hint_c @@ -5575,12 +5802,16 @@ SUBROUTINE h5pget_data_transform_f(plist_id, expression, hdferr, size) INTEGER, INTENT(IN) :: est_name_len ! Estimated average length of link names 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 h5pset_est_link_info_c(gcpl_id, est_num_entries, est_name_len) & - BIND(C,NAME='h5pset_est_link_info_c') - IMPORT :: HID_T - IMPLICIT NONE + INTEGER FUNCTION h5pset_est_link_info_c(gcpl_id, est_num_entries, est_name_len) + USE H5GLOBAL + !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, INTENT(IN) :: est_num_entries INTEGER, INTENT(IN) :: est_name_len @@ -5621,15 +5852,20 @@ SUBROUTINE h5pset_link_phase_change_f(gcpl_id, max_compact, min_dense, hdferr) 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. +! INTERFACE - INTEGER FUNCTION h5pset_link_phase_change_c(gcpl_id, max_compact, min_dense) & - BIND(C,NAME='h5pset_link_phase_change_c') - IMPORT :: HID_T - IMPLICIT NONE + INTEGER FUNCTION h5pset_link_phase_change_c(gcpl_id, max_compact, min_dense) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_LINK_PHASE_CHANGE_C'::h5pset_link_phase_change_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: gcpl_id INTEGER, INTENT(IN) :: max_compact INTEGER, INTENT(IN) :: min_dense + END FUNCTION h5pset_link_phase_change_c END INTERFACE @@ -5668,12 +5904,16 @@ SUBROUTINE h5pset_fapl_direct_f(fapl_id, alignment, block_size, cbuf_size, hdfer 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. +! INTERFACE - INTEGER FUNCTION h5pset_fapl_direct_c(fapl_id, alignment, block_size, cbuf_size) & - BIND(C,NAME='h5pset_fapl_direct_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + INTEGER FUNCTION h5pset_fapl_direct_c(fapl_id, alignment, block_size, cbuf_size) + USE H5GLOBAL + !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(SIZE_T), INTENT(IN) :: alignment INTEGER(SIZE_T), INTENT(IN) :: block_size @@ -5716,12 +5956,16 @@ SUBROUTINE h5pset_fapl_direct_f(fapl_id, alignment, block_size, cbuf_size, hdfer 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. +! INTERFACE - INTEGER FUNCTION h5pget_fapl_direct_c(fapl_id, alignment, block_size, cbuf_size) & - BIND(C,NAME='h5pget_fapl_direct_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + INTEGER FUNCTION h5pget_fapl_direct_c(fapl_id, alignment, block_size, cbuf_size) + USE H5GLOBAL + !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(SIZE_T), INTENT(OUT) :: alignment INTEGER(SIZE_T), INTENT(OUT) :: block_size @@ -5766,12 +6010,16 @@ SUBROUTINE h5pset_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr) ! (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. +! INTERFACE - INTEGER FUNCTION h5pset_attr_phase_change_c(ocpl_id, max_compact, min_dense) & - BIND(C,NAME='h5pset_attr_phase_change_c') - IMPORT :: HID_T - IMPLICIT NONE + INTEGER FUNCTION h5pset_attr_phase_change_c(ocpl_id, max_compact, min_dense) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_ATTR_PHASE_CHANGE_C'::h5pset_attr_phase_change_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: ocpl_id INTEGER, INTENT(IN) :: max_compact INTEGER, INTENT(IN) :: min_dense @@ -5808,10 +6056,11 @@ SUBROUTINE h5pset_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr) INTEGER , INTENT(OUT) :: hdferr !***** INTERFACE - INTEGER FUNCTION H5Pset_nbit_c(plist_id) & - BIND(C,NAME='h5pset_nbit_c') - IMPORT :: HID_T - IMPLICIT NONE + INTEGER FUNCTION H5Pset_nbit_c(plist_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_NBIT_C'::h5pset_nbit_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: plist_id END FUNCTION H5Pset_nbit_c END INTERFACE @@ -5853,10 +6102,11 @@ SUBROUTINE h5pset_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr) !***** INTERFACE - INTEGER FUNCTION h5pset_scaleoffset_c(plist_id, scale_type, scale_factor) & - BIND(C,NAME='h5pset_scaleoffset_c') - IMPORT :: HID_T - IMPLICIT NONE + INTEGER FUNCTION h5pset_scaleoffset_c(plist_id, scale_type, scale_factor) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_SCALEOFFSET_C'::h5pset_scaleoffset_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: plist_id INTEGER, INTENT(IN) :: scale_type INTEGER, INTENT(IN) :: scale_factor @@ -5899,12 +6149,16 @@ SUBROUTINE h5pset_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr) INTEGER(SIZE_T), INTENT(IN) :: nlinks ! Maximum number of links to traverse 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 h5pset_nlinks_c(lapl_id, nlinks) & - BIND(C,NAME='h5pset_nlinks_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + INTEGER FUNCTION h5pset_nlinks_c(lapl_id, nlinks) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_NLINKS_C'::h5pset_nlinks_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: lapl_id INTEGER(SIZE_T), INTENT(IN) :: nlinks END FUNCTION h5pset_nlinks_c @@ -5943,12 +6197,15 @@ SUBROUTINE h5pset_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr) INTEGER(SIZE_T), INTENT(OUT) :: nlinks ! Maximum number of links to traverse 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 h5pget_nlinks_c(lapl_id, nlinks) & - BIND(C,NAME='h5pget_nlinks_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + INTEGER FUNCTION h5pget_nlinks_c(lapl_id, nlinks) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_NLINKS_C'::h5pget_nlinks_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: lapl_id INTEGER(SIZE_T), INTENT(OUT) :: nlinks END FUNCTION h5pget_nlinks_c @@ -5994,10 +6251,11 @@ SUBROUTINE h5pset_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr) ! 0 on success and -1 on failure !***** INTERFACE - INTEGER FUNCTION h5pget_create_inter_group_c(lcpl_id, crt_intermed_group) & - BIND(C,NAME='h5pget_create_inter_group_c') - IMPORT :: HID_T - IMPLICIT NONE + INTEGER FUNCTION h5pget_create_inter_group_c(lcpl_id, crt_intermed_group) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_CREATE_INTER_GROUP_C'::h5pget_create_inter_group_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: lcpl_id INTEGER, INTENT(IN) :: crt_intermed_group END FUNCTION h5pget_create_inter_group_c @@ -6062,10 +6320,11 @@ SUBROUTINE h5pset_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr) !***** INTERFACE - INTEGER FUNCTION h5pset_chunk_cache_c(dapl_id, rdcc_nslots, rdcc_nbytes, rdcc_w0) & - BIND(C,NAME='h5pset_chunk_cache_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + INTEGER FUNCTION h5pset_chunk_cache_c(dapl_id, rdcc_nslots, rdcc_nbytes, rdcc_w0) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_CHUNK_CACHE_C'::h5pset_chunk_cache_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: dapl_id INTEGER(SIZE_T), INTENT(IN) :: rdcc_nslots INTEGER(SIZE_T), INTENT(IN) :: rdcc_nbytes @@ -6119,10 +6378,11 @@ SUBROUTINE h5pset_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr) ! 0 on success and -1 on failure !***** INTERFACE - INTEGER FUNCTION h5pget_chunk_cache_c(dapl_id, rdcc_nslots, rdcc_nbytes, rdcc_w0) & - BIND(C,NAME='h5pget_chunk_cache_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + INTEGER FUNCTION h5pget_chunk_cache_c(dapl_id, rdcc_nslots, rdcc_nbytes, rdcc_w0) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_CHUNK_CACHE_C'::h5pget_chunk_cache_c + !DEC$ENDIF INTEGER(HID_T), INTENT(IN) :: dapl_id INTEGER(SIZE_T), INTENT(OUT) :: rdcc_nslots INTEGER(SIZE_T), INTENT(OUT) :: rdcc_nbytes @@ -6134,1193 +6394,6 @@ SUBROUTINE h5pset_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr) END SUBROUTINE h5pget_chunk_cache_f -! -!****s* H5P (F03)/h5pset_fill_value_f_F90 -! -! NAME -! h5pset_fill_value_f -! -! PURPOSE -! Sets fill value for a dataset creation property list -! -! Inputs: -! prp_id - Property list identifier -! type_id - Datatype identifier of fill value datatype (in memory) -! fillvalue - Fillvalue -! -! 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 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. -! -! Fortran90 Interface: -!! SUBROUTINE h5pset_fill_value_f(prp_id, type_id, fillvalue, hdferr) -!! IMPLICIT NONE -!! INTEGER(HID_T), INTENT(IN) :: prp_id -!! INTEGER(HID_T), INTENT(IN) :: type_id -!! TYPE(VOID) , INTENT(IN) :: fillvalue -!! INTEGER , INTENT(OUT) :: hdferr -!***** - - - 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), 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 -! -!****s* H5P (F03)/h5pget_fill_value_f_F90 -! -! NAME -! h5pget_fill_value_f -! -! PURPOSE -! Gets fill value for a dataset creation property list -! -! Inputs: -! prp_id - Property list identifier -! type_id - Datatype identifier of fill value datatype (in memory) -! -! Outputs: -! fillvalue - Fillvalue -! 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 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 -! h5pget(get)fill_value_f function is overloaded to support -! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes. -! -! Fortran90 Interface: -!! SUBROUTINE h5pget_fill_value_f(prp_id, type_id, fillvalue, hdferr) -!! INTEGER(HID_T), INTENT(IN) :: prp_id -!! INTEGER(HID_T), INTENT(IN) :: type_id -!! TYPE(VOID) , INTENT(OUT) :: fillvalue -!! INTEGER , INTENT(OUT) :: hdferr -!***** - - 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(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_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), 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) - 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(1)(1:1)) - 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 -! -!****s* H5P (F03)/h5pset_fill_value_f_F03 -! -! NAME -! h5pset_fill_value_f -! -! PURPOSE -! Sets fill value for a dataset creation property list -! -! Inputs: -! prp_id - Property list identifier -! type_id - Datatype identifier of fill value datatype (in memory) -! fillvalue - Fillvalue -! -! 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 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. -! -! Fortran2003 Interface: -!! SUBROUTINE h5pset_fill_value_f(prp_id, type_id, fillvalue, hdferr) -!! INTEGER(HID_T), INTENT(IN) :: prp_id -!! INTEGER(HID_T), INTENT(IN) :: type_id -!! TYPE(C_PTR) , INTENT(IN) :: fillvalue -!! INTEGER , INTENT(OUT) :: hdferr -!***** - - SUBROUTINE h5pset_fill_value_ptr(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) - TYPE(C_PTR), INTENT(IN) :: fillvalue ! Fillvalue - INTEGER, INTENT(OUT) :: hdferr ! Error code - - hdferr = h5pset_fill_value_c(prp_id, type_id, fillvalue) - - END SUBROUTINE h5pset_fill_value_ptr - -! -!****s* H5P (F03)/h5pget_fill_value_f_F03 -! -! NAME -! h5pget_fill_value_f -! -! PURPOSE -! Gets fill value for a dataset creation property list -! -! Inputs: -! prp_id - Property list identifier -! type_id - Datatype identifier of fill value datatype (in memory) -! -! Outputs: -! fillvalue - Fillvalue -! 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 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 -! h5pget(get)fill_value_f function is overloaded to support -! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes. -! -! Fortran2003 Interface: -!! SUBROUTINE h5pget_fill_value_f(prp_id, type_id, fillvalue, hdferr) -!! INTEGER(HID_T), INTENT(IN) :: prp_id -!! INTEGER(HID_T), INTENT(IN) :: type_id -!! TYPE(C_PTR) , INTENT(OUT) :: fillvalue -!! INTEGER , INTENT(OUT) :: hdferr -!***** - - SUBROUTINE h5pget_fill_value_ptr(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) - 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_f_F90 -! -! NAME -! h5pset_f -! -! PURPOSE -! Sets a property list value -! -! Inputs: -! prp_id - Property list identifier to modify -! name - Name of property to modify -! value - Property value, supported types are: -! INTEGER -! REAL -! DOUBLE PRECISION -! CHARACTER(LEN=*) -! Outputs: -! hdferr - Returns 0 if successful and -1 if fails -! -! AUTHOR -! Elena Pourmal -! October 9, 2002 -! -! Fortran90 Interface: -!! SUBROUTINE h5pset_f(plid, name, value, hdferr) -!! INTEGER(HID_T) , INTENT(IN) :: plid -!! CHARACTER(LEN=*), INTENT(IN) :: name -!! TYPE , INTENT(IN) :: value -!! INTEGER , INTENT(OUT) :: hdferr -!***** - 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), 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 - - 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 :: 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(1)(1:1)) - - name_len = LEN(name) - hdferr = h5pget_c(prp_id, name, name_len, f_ptr) - - DEALLOCATE(chr) - - END SUBROUTINE h5pset_char -! -!****s* H5P (F03)/h5pget_f_F90 -! -! NAME -! h5pget_f -! -! PURPOSE -! Queries the value of a property. -! -! Inputs: -! prp_id - Property list identifier to modify -! name - Name of property to get -! value - Property value, supported types are: -! INTEGER -! REAL -! DOUBLE PRECISION -! CHARACTER(LEN=*) -! Outputs: -! hdferr - Returns 0 if successful and -1 if fails -! -! AUTHOR -! Elena Pourmal -! October 9, 2002 -! -! Fortran90 Interface: -!! SUBROUTINE h5pget_f(plid, name, value, hdferr) -!! INTEGER(HID_T) , INTENT(IN) :: plid -!! CHARACTER(LEN=*), INTENT(IN) :: name -!! TYPE , INTENT(OUT) :: value -!! INTEGER , INTENT(OUT) :: hdferr -!***** - - 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), 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 - - 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 :: 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(1)(1:1)) - - 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 - -! -!****s* H5P (F03)/h5pset_f_F03 -! -! NAME -! h5pset_f -! -! PURPOSE -! Sets a property list value -! -! Inputs: -! prp_id - Property list identifier to modify -! name - Name of property to modify -! value - Pointer to value to set the property to -! Outputs: -! hdferr - Returns 0 if successful and -1 if fails -! -! AUTHOR -! Elena Pourmal -! October 9, 2002 -! -! Fortran2003 Interface: -!! SUBROUTINE h5pset_f(plid, name, value, hdferr) -!! INTEGER(HID_T) , INTENT(IN) :: plid -!! CHARACTER(LEN=*), INTENT(IN) :: name -!! TYPE(C_PTR) , INTENT(IN) :: value -!! INTEGER , INTENT(OUT) :: hdferr -!***** - SUBROUTINE h5pset_ptr(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 - TYPE(C_PTR), INTENT(IN) :: 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 -! -!****s* H5P (F03)/h5pget_f_F03 -! -! NAME -! h5pget_f (F03) -! -! PURPOSE -! Queries the value of a property. -! -! Inputs: -! prp_id - Property list identifier to modify -! name - Name of property to get -! value - Pointer to a location to which to copy the value of of the property -! Outputs: -! hdferr - Returns 0 if successful and -1 if fails -! -! AUTHOR -! Elena Pourmal -! October 9, 2002 -! -! Fortran2003 Interface: -!! SUBROUTINE h5pget_f(plid, name, value, hdferr) -!! INTEGER(HID_T) , INTENT(IN) :: plid -!! CHARACTER(LEN=*), INTENT(IN) :: name -!! TYPE(C_PTR) , INTENT(OUT) :: value -!! INTEGER , INTENT(OUT) :: hdferr -!***** - SUBROUTINE h5pget_ptr(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 - 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_f_F90 -! -! NAME -! h5pregister -! -! PURPOSE -! Registers a permanent property with a property list class. -! -! Inputs: -! class - Property list class identifier -! name - Name of property to register -! size - Size of the property value -! value - Property value, supported types are: -! INTEGER -! REAL -! DOUBLE PRECISION -! CHARACTER(LEN=*) -! -! Outputs: -! hdferr - Returns 0 if successful and -1 if fails -! -! AUTHOR -! Elena Pourmal -! October 10, 2002 -! -! Fortran90 Interface: -!! SUBROUTINE h5pregister_f(class, name, size, value, hdferr) -!! INTEGER(HID_T) , INTENT(IN) :: class -!! CHARACTER(LEN=*), INTENT(IN) :: name -!! INTEGER(SIZE_T) , INTENT(IN) :: size -!! TYPE , INTENT(IN) :: value -!! INTEGER , INTENT(OUT) :: hdferr -!***** - 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), 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 - - - 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 :: 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(1)(1:1)) - - name_len = LEN(name) - hdferr = h5pregister_c(class, name, name_len, size, f_ptr) - DEALLOCATE(chr) - END SUBROUTINE h5pregister_char -! -!****s* H5P (F03)/h5pregister_f_F03 -! -! NAME -! h5pregister (F03) -! -! PURPOSE -! Registers a permanent property with a property list class. -! -! Inputs: -! class - Property list class identifier -! name - Name of property to register -! size - Size of the property value -! value - Pointer to value to set the property to -! -! Outputs: -! hdferr - Returns 0 if successful and -1 if fails -! -! AUTHOR -! M. Scot Breitenfeld -! June 24, 2008 -! -! Fortran2003 Interface: -!! SUBROUTINE h5pregister_f(class, name, size, value, hdferr) -!! INTEGER(HID_T) , INTENT(IN) :: class -!! CHARACTER(LEN=*), INTENT(IN) :: name -!! INTEGER(SIZE_T) , INTENT(IN) :: size -!! TYPE(C_PTR) , INTENT(IN) :: value -!! INTEGER , INTENT(OUT) :: hdferr -!***** - - SUBROUTINE h5pregister_ptr(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 - 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_f_F90 -! -! NAME -! h5pinsert (f90) -! -! PURPOSE -! Registers a temporary property with a property list class. -! -! Inputs: -! plist - Property list class identifier -! name - Name of property to insert -! size - Size of the property value -! value - Property value, supported types are: -! INTEGER -! REAL -! DOUBLE PRECISION -! CHARACTER(LEN=*) -! Outputs: -! hdferr - Returns 0 if successful and -1 if fails -! AUTHOR -! Elena Pourmal -! October 10, 2002 -! -! Fortran90 Interface: -!! SUBROUTINE h5pinsert_f -!! INTEGER(HID_T) , INTENT(IN) :: plist -!! CHARACTER(LEN=*), INTENT(IN) :: name -!! INTEGER(SIZE_T) , INTENT(IN) :: size -!! TYPE , INTENT(IN) :: value -!! INTEGER , INTENT(OUT) :: hdferr -!***** - 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), 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 - - 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 :: 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(1)(1:1)) - - name_len = LEN(name) - hdferr = h5pinsert_c(plist, name , name_len, size, f_ptr) - - DEALLOCATE(chr) - - END SUBROUTINE h5pinsert_char - -! -!****s* H5P (F03)/h5pinsert_f_F03 -! -! NAME -! h5pinsert (f03) -! -! PURPOSE -! Registers a temporary property with a property list class. -! -! Inputs: -! plist - Property list class identifier -! name - Name of property to insert -! size - Size of the property value -! value - Pointer to new value pointer for the property being modified -! -! Outputs: -! hdferr - Returns 0 if successful and -1 if fails -! -! AUTHOR -! M. Scot Breitenfeld -! June 24, 2008 -! -! Fortran90 Interface: -!! SUBROUTINE h5pinsert_f -!! INTEGER(HID_T) , INTENT(IN) :: plist -!! CHARACTER(LEN=*), INTENT(IN) :: name -!! INTEGER(SIZE_T) , INTENT(IN) :: size -!! TYPE(C_PTR) , INTENT(IN) :: value -!! INTEGER , INTENT(OUT) :: hdferr -!***** - SUBROUTINE h5pinsert_ptr(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 - 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_F03 -! -! NAME -! h5pcreate_class_f -! -! PURPOSE -! Create a new property list class -! -! Inputs: -! parent - Parent property list class identifier -! 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 property to create -! -! Outputs: -! class - Property list class identifier -! hdferr - Returns 0 if successful and -1 if fails -! -! 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 -! -! Fortran2003 Interface: - SUBROUTINE h5pcreate_class_f(parent, name, class, hdferr, create, create_data, & - copy, copy_data, CLOSE, close_data) - IMPLICIT NONE - INTEGER(HID_T) , INTENT(IN) :: parent - CHARACTER(LEN=*), INTENT(IN) :: name - INTEGER(HID_T) , INTENT(OUT) :: class - INTEGER , INTENT(OUT) :: hdferr - 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) & - BIND(C, NAME='h5pcreate_class_c') - IMPORT :: c_char, c_ptr, c_funptr - IMPORT :: HID_T - INTEGER(HID_T), INTENT(IN) :: parent - CHARACTER(KIND=C_CHAR), DIMENSION(*), 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 - -! -!****s* H5P (F03)/h5pset_file_image_f_F03 -! -! NAME -! h5pset_file_image_f -! -! PURPOSE -! Sets an initial file image in a memory buffer. -! -! Inputs: -! fapl_id - File access property list identifier -! buf_ptr - Pointer to the initial file image, -! or C_NULL_PTR if no initial file image is desired -! buf_len - Size of the supplied buffer, or 0 (zero) if no initial image is desired -! -! Outputs: -! hdferr - Returns 0 if successful and -1 if fails -! -! AUTHOR -! M. Scot Breitenfeld -! February 19, 2012 -! -! Fortran2003 Interface: - SUBROUTINE h5pset_file_image_f(fapl_id, buf_ptr, buf_len, hdferr) - IMPLICIT NONE - INTEGER(HID_T) , INTENT(IN) :: fapl_id - TYPE(C_PTR) , INTENT(IN) :: buf_ptr - INTEGER(SIZE_T), INTENT(IN) :: buf_len - INTEGER , INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5pset_file_image_c(fapl_id, buf_ptr, buf_len) & - BIND(C, NAME='h5pset_file_image_c') - IMPORT :: c_ptr - IMPORT :: HID_T, SIZE_T - INTEGER(HID_T), INTENT(IN) :: fapl_id - TYPE(C_PTR), VALUE :: buf_ptr - INTEGER(SIZE_T), INTENT(IN) :: buf_len - END FUNCTION h5pset_file_image_c - END INTERFACE - - hdferr = h5pset_file_image_c(fapl_id, buf_ptr, buf_len) - - END SUBROUTINE h5pset_file_image_f -! -!****s* H5P (F03)/h5pget_file_image_f_F03 -! -! NAME -! h5pget_file_image_f -! -! PURPOSE -! Retrieves a copy of the file image designated as the initial content and structure of a file. -! -! Inputs: -! fapl_id - File access property list identifier. -! -! Outputs: -! buf_ptr - Will hold either a C_NULL_PTR or a scalar of type -! c_loc. If buf_ptr is not C_NULL_PTR, on successful -! return, buf_ptr shall contain a C pointer to a copy -! of the initial image provided in the last call to -! H5Pset_file_image_f for the supplied fapl_id, or -! buf_ptr shall contain a C_NULL_PTR if there is no -! initial image set. -! -! buf_len_ptr - Contains the value of the buffer parameter for -! the initial image in the supplied fapl_id. The value -! will be 0 if no initial image is set. -! -! -! hdferr - Returns 0 if successful and -1 if fails -! -! AUTHOR -! M. Scot Breitenfeld -! February 19, 2012 -! -! Fortran2003 Interface: - SUBROUTINE h5pget_file_image_f(fapl_id, buf_ptr, buf_len_ptr, hdferr) - IMPLICIT NONE - INTEGER(HID_T) , INTENT(IN) :: fapl_id - TYPE(C_PTR) , INTENT(OUT), DIMENSION(*) :: buf_ptr - INTEGER(SIZE_T), INTENT(OUT) :: buf_len_ptr - INTEGER , INTENT(OUT) :: hdferr - -!***** - INTERFACE - INTEGER FUNCTION h5pget_file_image_c(fapl_id, buf_ptr, buf_len_ptr) & - BIND(C, NAME='h5pget_file_image_c') - IMPORT :: c_ptr - IMPORT :: HID_T, SIZE_T - INTEGER(HID_T), INTENT(IN) :: fapl_id - TYPE(C_PTR), DIMENSION(*), INTENT(OUT) :: buf_ptr - INTEGER(SIZE_T), INTENT(OUT) :: buf_len_ptr - END FUNCTION h5pget_file_image_c - END INTERFACE - - hdferr = h5pget_file_image_c(fapl_id, buf_ptr, buf_len_ptr) - - END SUBROUTINE h5pget_file_image_f - -! ********************************************************************* -! Fortran interfaces for H5P functions needed by parallel MPI programs. -! ********************************************************************* - -#ifdef H5_HAVE_PARALLEL -!****s* H5P/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 -!***** - INTERFACE - INTEGER FUNCTION h5pset_fapl_mpio_c(prp_id, comm, info) & - BIND(C,NAME='h5pset_fapl_mpio_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: prp_id - INTEGER , INTENT(IN) :: comm - INTEGER , INTENT(IN) :: info - END FUNCTION h5pset_fapl_mpio_c - END INTERFACE - - hdferr = h5pset_fapl_mpio_c(prp_id, comm, info) - - END SUBROUTINE h5pset_fapl_mpio_f - -!****s* H5P/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 -!***** - INTERFACE - INTEGER FUNCTION h5pget_fapl_mpio_c(prp_id, comm, info) & - BIND(C,NAME='h5pget_fapl_mpio_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: prp_id - INTEGER , INTENT(OUT) :: comm - INTEGER , INTENT(OUT) :: info - END FUNCTION h5pget_fapl_mpio_c - END INTERFACE - - hdferr = h5pget_fapl_mpio_c(prp_id, comm, info) - - END SUBROUTINE h5pget_fapl_mpio_f - -!****s* H5P/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 -!***** - INTERFACE - INTEGER FUNCTION h5pset_dxpl_mpio_c(prp_id, data_xfer_mode) & - BIND(C,NAME='h5pset_dxpl_mpio_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: prp_id - INTEGER , INTENT(IN) :: data_xfer_mode - END FUNCTION h5pset_dxpl_mpio_c - END INTERFACE - - hdferr = h5pset_dxpl_mpio_c(prp_id, data_xfer_mode) - END SUBROUTINE h5pset_dxpl_mpio_f - -!****s* H5P/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 -!***** - INTERFACE - INTEGER FUNCTION h5pget_dxpl_mpio_c(prp_id, data_xfer_mode) & - BIND(C,NAME='h5pget_dxpl_mpio_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: prp_id - INTEGER , INTENT(OUT) :: data_xfer_mode - END FUNCTION h5pget_dxpl_mpio_c - END INTERFACE - - hdferr = h5pget_dxpl_mpio_c(prp_id, data_xfer_mode) - END SUBROUTINE h5pget_dxpl_mpio_f - -!****s* H5P/h5pget_mpio_actual_io_mode_f -! NAME -! h5pget_mpio_actual_io_mode_f -! -! PURPOSE -! Retrieves the type of I/O that HDF5 actually performed on the last -! parallel I/O call. This is not necessarily the type of I/O requested. -! -! INPUTS -! dxpl_id - Dataset transfer property list identifier. -! OUTPUTS -! actual_io_mode - The type of I/O performed by this process. -! hdferr - Returns 0 if successful and -1 if fails. -! -! AUTHOR -! M. Scot Breitenfeld -! July 27, 2012 -! -! HISTORY -! -! Fortran90 Interface: - SUBROUTINE h5pget_mpio_actual_io_mode_f(dxpl_id, actual_io_mode, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: dxpl_id - INTEGER , INTENT(OUT) :: actual_io_mode - INTEGER , INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5pget_mpio_actual_io_mode_c(dxpl_id, actual_io_mode) & - BIND(C,NAME='h5pget_mpio_actual_io_mode_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: dxpl_id - INTEGER , INTENT(OUT) :: actual_io_mode - END FUNCTION h5pget_mpio_actual_io_mode_c - END INTERFACE - - actual_io_mode = -1 - - hdferr = h5pget_mpio_actual_io_mode_c(dxpl_id, actual_io_mode) - - END SUBROUTINE h5pget_mpio_actual_io_mode_f -#endif - END MODULE H5P diff --git a/fortran/src/H5Pff_F03.f90 b/fortran/src/H5Pff_F03.f90 new file mode 100644 index 0000000..01d1d98 --- /dev/null +++ b/fortran/src/H5Pff_F03.f90 @@ -0,0 +1,1267 @@ +!****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_F90.f90 but includes the +! Fortran 2003 functions and the interface listings. This file will be compiled +! instead of H5Pff_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 +! *** IMPORTANT *** +! If you add a new H5P function you must add the function name to the +! Windows dll file 'hdf5_fortrandll.def.in' 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) & + BIND(C, NAME='h5pget_fill_value_c') + USE H5GLOBAL + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr + 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) & + BIND(C, NAME='h5pset_fill_value_c') + USE H5GLOBAL + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr + 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) & + BIND(C, NAME='h5pset_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr + USE H5GLOBAL + INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier + CHARACTER(KIND=C_CHAR), DIMENSION(*), 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) & + BIND(C, NAME='h5pget_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr + USE H5GLOBAL + INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier + CHARACTER(KIND=C_CHAR), DIMENSION(*), 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) & + BIND(C, NAME='h5pregister_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr + USE H5GLOBAL + INTEGER(HID_T), INTENT(IN) :: class + CHARACTER(KIND=C_CHAR), DIMENSION(*), 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) & + BIND(C, NAME='h5pinsert_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr + USE H5GLOBAL + INTEGER(HID_T), INTENT(IN) :: plist + CHARACTER(KIND=C_CHAR), DIMENSION(*), 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_fill_value_f_F90 +! +! NAME +! h5pset_fill_value_f +! +! PURPOSE +! Sets fill value for a dataset creation property list +! +! Inputs: +! prp_id - Property list identifier +! type_id - Datatype identifier of fill value datatype (in memory) +! fillvalue - Fillvalue +! +! 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 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. +! +! Fortran90 Interface: +!! SUBROUTINE h5pset_fill_value_f(prp_id, type_id, fillvalue, hdferr) +!! IMPLICIT NONE +!! INTEGER(HID_T), INTENT(IN) :: prp_id +!! INTEGER(HID_T), INTENT(IN) :: type_id +!! TYPE(VOID) , INTENT(IN) :: fillvalue +!! INTEGER , INTENT(OUT) :: hdferr +!***** + + + 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 +! +!****s* H5P (F03)/h5pget_fill_value_f_F90 +! +! NAME +! h5pget_fill_value_f +! +! PURPOSE +! Gets fill value for a dataset creation property list +! +! Inputs: +! prp_id - Property list identifier +! type_id - Datatype identifier of fill value datatype (in memory) +! +! Outputs: +! fillvalue - Fillvalue +! 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 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 +! h5pget(get)fill_value_f function is overloaded to support +! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes. +! +! Fortran90 Interface: +!! SUBROUTINE h5pget_fill_value_f(prp_id, type_id, fillvalue, hdferr) +!! INTEGER(HID_T), INTENT(IN) :: prp_id +!! INTEGER(HID_T), INTENT(IN) :: type_id +!! TYPE(VOID) , INTENT(OUT) :: fillvalue +!! INTEGER , INTENT(OUT) :: hdferr +!***** + + 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_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(1)(1:1)) + + 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 +! +!****s* H5P (F03)/h5pset_fill_value_f_F03 +! +! NAME +! h5pset_fill_value_f +! +! PURPOSE +! Sets fill value for a dataset creation property list +! +! Inputs: +! prp_id - Property list identifier +! type_id - Datatype identifier of fill value datatype (in memory) +! fillvalue - Fillvalue +! +! 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 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. +! +! Fortran2003 Interface: +!! SUBROUTINE h5pset_fill_value_f(prp_id, type_id, fillvalue, hdferr) +!! INTEGER(HID_T), INTENT(IN) :: prp_id +!! INTEGER(HID_T), INTENT(IN) :: type_id +!! TYPE(C_PTR) , INTENT(IN) :: fillvalue +!! INTEGER , INTENT(OUT) :: hdferr +!***** + + 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), INTENT(IN) :: fillvalue ! Fillvalue + INTEGER, INTENT(OUT) :: hdferr ! Error code + + hdferr = h5pset_fill_value_c(prp_id, type_id, fillvalue) + + END SUBROUTINE h5pset_fill_value_ptr + +! +!****s* H5P (F03)/h5pget_fill_value_f_F03 +! +! NAME +! h5pget_fill_value_f +! +! PURPOSE +! Gets fill value for a dataset creation property list +! +! Inputs: +! prp_id - Property list identifier +! type_id - Datatype identifier of fill value datatype (in memory) +! +! Outputs: +! fillvalue - Fillvalue +! 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 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 +! h5pget(get)fill_value_f function is overloaded to support +! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes. +! +! Fortran2003 Interface: +!! SUBROUTINE h5pget_fill_value_f(prp_id, type_id, fillvalue, hdferr) +!! INTEGER(HID_T), INTENT(IN) :: prp_id +!! INTEGER(HID_T), INTENT(IN) :: type_id +!! TYPE(C_PTR) , INTENT(OUT) :: fillvalue +!! INTEGER , INTENT(OUT) :: hdferr +!***** + + 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_f_F90 +! +! NAME +! h5pset_f +! +! PURPOSE +! Sets a property list value +! +! Inputs: +! prp_id - Property list identifier to modify +! name - Name of property to modify +! value - Property value, supported types are: +! INTEGER +! REAL +! DOUBLE PRECISION +! CHARACTER(LEN=*) +! Outputs: +! hdferr - Returns 0 if successful and -1 if fails +! +! AUTHOR +! Elena Pourmal +! October 9, 2002 +! +! Fortran90 Interface: +!! SUBROUTINE h5pset_f(plid, name, value, hdferr) +!! INTEGER(HID_T) , INTENT(IN) :: plid +!! CHARACTER(LEN=*), INTENT(IN) :: name +!! TYPE , INTENT(IN) :: value +!! INTEGER , INTENT(OUT) :: hdferr +!***** + 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 + + 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 + + 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(1)(1:1)) + + name_len = LEN(name) + hdferr = h5pget_c(prp_id, name, name_len, f_ptr) + + DEALLOCATE(chr) + + END SUBROUTINE h5pset_char +! +!****s* H5P (F03)/h5pget_f_F90 +! +! NAME +! h5pget_f +! +! PURPOSE +! Queries the value of a property. +! +! Inputs: +! prp_id - Property list identifier to modify +! name - Name of property to get +! value - Property value, supported types are: +! INTEGER +! REAL +! DOUBLE PRECISION +! CHARACTER(LEN=*) +! Outputs: +! hdferr - Returns 0 if successful and -1 if fails +! +! AUTHOR +! Elena Pourmal +! October 9, 2002 +! +! Fortran90 Interface: +!! SUBROUTINE h5pget_f(plid, name, value, hdferr) +!! INTEGER(HID_T) , INTENT(IN) :: plid +!! CHARACTER(LEN=*), INTENT(IN) :: name +!! TYPE , INTENT(OUT) :: value +!! INTEGER , INTENT(OUT) :: hdferr +!***** + + 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 + + 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 + + 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(1)(1:1)) + + 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 + + +! +!****s* H5P (F03)/h5pset_f_F03 +! +! NAME +! h5pset_f +! +! PURPOSE +! Sets a property list value +! +! Inputs: +! prp_id - Property list identifier to modify +! name - Name of property to modify +! value - Pointer to value to set the property to +! Outputs: +! hdferr - Returns 0 if successful and -1 if fails +! +! AUTHOR +! Elena Pourmal +! October 9, 2002 +! +! Fortran2003 Interface: +!! SUBROUTINE h5pset_f(plid, name, value, hdferr) +!! INTEGER(HID_T) , INTENT(IN) :: plid +!! CHARACTER(LEN=*), INTENT(IN) :: name +!! TYPE(C_PTR) , INTENT(IN) :: value +!! INTEGER , INTENT(OUT) :: hdferr +!***** + 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(IN) :: 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 +! +!****s* H5P (F03)/h5pget_f_F03 +! +! NAME +! h5pget_f (F03) +! +! PURPOSE +! Queries the value of a property. +! +! Inputs: +! prp_id - Property list identifier to modify +! name - Name of property to get +! value - Pointer to a location to which to copy the value of of the property +! Outputs: +! hdferr - Returns 0 if successful and -1 if fails +! +! AUTHOR +! Elena Pourmal +! October 9, 2002 +! +! Fortran2003 Interface: +!! SUBROUTINE h5pget_f(plid, name, value, hdferr) +!! INTEGER(HID_T) , INTENT(IN) :: plid +!! CHARACTER(LEN=*), INTENT(IN) :: name +!! TYPE(C_PTR) , INTENT(OUT) :: value +!! INTEGER , INTENT(OUT) :: hdferr +!***** + 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_f_F90 +! +! NAME +! h5pregister +! +! PURPOSE +! Registers a permanent property with a property list class. +! +! Inputs: +! class - Property list class identifier +! name - Name of property to register +! size - Size of the property value +! value - Property value, supported types are: +! INTEGER +! REAL +! DOUBLE PRECISION +! CHARACTER(LEN=*) +! +! Outputs: +! hdferr - Returns 0 if successful and -1 if fails +! +! AUTHOR +! Elena Pourmal +! October 10, 2002 +! +! Fortran90 Interface: +!! SUBROUTINE h5pregister_f(class, name, size, value, hdferr) +!! INTEGER(HID_T) , INTENT(IN) :: class +!! CHARACTER(LEN=*), INTENT(IN) :: name +!! INTEGER(SIZE_T) , INTENT(IN) :: size +!! TYPE , INTENT(IN) :: value +!! INTEGER , INTENT(OUT) :: hdferr +!***** + SUBROUTINE h5pregister_integer(class, name, size, value, hdferr) + USE, INTRINSIC :: 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 + + SUBROUTINE h5pregister_real(class, name, size, value, hdferr) + USE, INTRINSIC :: 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 + + SUBROUTINE h5pregister_char(class, name, size, value, hdferr) + USE, INTRINSIC :: 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(1)(1:1)) + + name_len = LEN(name) + hdferr = h5pregister_c(class, name, name_len, size, f_ptr) + DEALLOCATE(chr) + END SUBROUTINE h5pregister_char +! +!****s* H5P (F03)/h5pregister_f_F03 +! +! NAME +! h5pregister (F03) +! +! PURPOSE +! Registers a permanent property with a property list class. +! +! Inputs: +! class - Property list class identifier +! name - Name of property to register +! size - Size of the property value +! value - Pointer to value to set the property to +! +! Outputs: +! hdferr - Returns 0 if successful and -1 if fails +! +! AUTHOR +! M. Scot Breitenfeld +! June 24, 2008 +! +! Fortran2003 Interface: +!! SUBROUTINE h5pregister_f(class, name, size, value, hdferr) +!! INTEGER(HID_T) , INTENT(IN) :: class +!! CHARACTER(LEN=*), INTENT(IN) :: name +!! INTEGER(SIZE_T) , INTENT(IN) :: size +!! TYPE(C_PTR) , INTENT(IN) :: value +!! INTEGER , INTENT(OUT) :: hdferr +!***** + + SUBROUTINE h5pregister_ptr(class, name, size, value, hdferr) + USE, INTRINSIC :: 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_f_F90 +! +! NAME +! h5pinsert (f90) +! +! PURPOSE +! Registers a temporary property with a property list class. +! +! Inputs: +! plist - Property list class identifier +! name - Name of property to insert +! size - Size of the property value +! value - Property value, supported types are: +! INTEGER +! REAL +! DOUBLE PRECISION +! CHARACTER(LEN=*) +! Outputs: +! hdferr - Returns 0 if successful and -1 if fails +! AUTHOR +! Elena Pourmal +! October 10, 2002 +! +! Fortran90 Interface: +!! SUBROUTINE h5pinsert_f +!! INTEGER(HID_T) , INTENT(IN) :: plist +!! CHARACTER(LEN=*), INTENT(IN) :: name +!! INTEGER(SIZE_T) , INTENT(IN) :: size +!! TYPE , INTENT(IN) :: value +!! INTEGER , INTENT(OUT) :: hdferr +!***** + 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 + + 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 + + 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(1)(1:1)) + + name_len = LEN(name) + hdferr = h5pinsert_c(plist, name , name_len, size, f_ptr) + + DEALLOCATE(chr) + + END SUBROUTINE h5pinsert_char + +! +!****s* H5P (F03)/h5pinsert_f_F03 +! +! NAME +! h5pinsert (f03) +! +! PURPOSE +! Registers a temporary property with a property list class. +! +! Inputs: +! plist - Property list class identifier +! name - Name of property to insert +! size - Size of the property value +! value - Pointer to new value pointer for the property being modified +! +! Outputs: +! hdferr - Returns 0 if successful and -1 if fails +! +! AUTHOR +! M. Scot Breitenfeld +! June 24, 2008 +! +! Fortran90 Interface: +!! SUBROUTINE h5pinsert_f +!! INTEGER(HID_T) , INTENT(IN) :: plist +!! CHARACTER(LEN=*), INTENT(IN) :: name +!! INTEGER(SIZE_T) , INTENT(IN) :: size +!! TYPE(C_PTR) , INTENT(IN) :: value +!! INTEGER , INTENT(OUT) :: hdferr +!***** + 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_F03 +! +! NAME +! h5pcreate_class_f +! +! PURPOSE +! Create a new property list class +! +! Inputs: +! parent - Parent property list class identifier +! 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 property to create +! +! Outputs: +! class - Property list class identifier +! hdferr - Returns 0 if successful and -1 if fails +! +! 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 +! +! Fortran2003 Interface: + 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 + CHARACTER(LEN=*), INTENT(IN) :: name + INTEGER(HID_T) , INTENT(OUT) :: class + INTEGER , INTENT(OUT) :: hdferr + 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) & + BIND(C, NAME='h5pcreate_class_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr, c_funptr + USE H5GLOBAL + INTEGER(HID_T), INTENT(IN) :: parent + CHARACTER(KIND=C_CHAR), DIMENSION(*), 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 + +! +!****s* H5P (F03)/h5pset_file_image_f_F03 +! +! NAME +! h5pset_file_image_f +! +! PURPOSE +! Sets an initial file image in a memory buffer. +! +! Inputs: +! fapl_id - File access property list identifier +! buf_ptr - Pointer to the initial file image, +! or C_NULL_PTR if no initial file image is desired +! buf_len - Size of the supplied buffer, or 0 (zero) if no initial image is desired +! +! Outputs: +! hdferr - Returns 0 if successful and -1 if fails +! +! AUTHOR +! M. Scot Breitenfeld +! February 19, 2012 +! +! Fortran2003 Interface: + SUBROUTINE h5pset_file_image_f(fapl_id, buf_ptr, buf_len, hdferr) + USE iso_c_binding + IMPLICIT NONE + INTEGER(HID_T) , INTENT(IN) :: fapl_id + TYPE(C_PTR) , INTENT(IN) :: buf_ptr + INTEGER(SIZE_T), INTENT(IN) :: buf_len + INTEGER , INTENT(OUT) :: hdferr +!***** + INTERFACE + INTEGER FUNCTION h5pset_file_image_c(fapl_id, buf_ptr, buf_len) & + BIND(C, NAME='h5pset_file_image_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr + USE H5GLOBAL + INTEGER(HID_T), INTENT(IN) :: fapl_id + TYPE(C_PTR), VALUE :: buf_ptr + INTEGER(SIZE_T), INTENT(IN) :: buf_len + END FUNCTION h5pset_file_image_c + END INTERFACE + + hdferr = h5pset_file_image_c(fapl_id, buf_ptr, buf_len) + + END SUBROUTINE h5pset_file_image_f +! +!****s* H5P (F03)/h5pget_file_image_f_F03 +! +! NAME +! h5pget_file_image_f +! +! PURPOSE +! Retrieves a copy of the file image designated as the initial content and structure of a file. +! +! Inputs: +! fapl_id - File access property list identifier. +! +! Outputs: +! buf_ptr - Will hold either a C_NULL_PTR or a scalar of type +! c_loc. If buf_ptr is not C_NULL_PTR, on successful +! return, buf_ptr shall contain a C pointer to a copy +! of the initial image provided in the last call to +! H5Pset_file_image_f for the supplied fapl_id, or +! buf_ptr shall contain a C_NULL_PTR if there is no +! initial image set. +! +! buf_len_ptr - Contains the value of the buffer parameter for +! the initial image in the supplied fapl_id. The value +! will be 0 if no initial image is set. +! +! +! hdferr - Returns 0 if successful and -1 if fails +! +! AUTHOR +! M. Scot Breitenfeld +! February 19, 2012 +! +! Fortran2003 Interface: + SUBROUTINE h5pget_file_image_f(fapl_id, buf_ptr, buf_len_ptr, hdferr) + USE iso_c_binding + IMPLICIT NONE + INTEGER(HID_T) , INTENT(IN) :: fapl_id + TYPE(C_PTR) , INTENT(OUT), DIMENSION(*) :: buf_ptr + INTEGER(SIZE_T), INTENT(OUT) :: buf_len_ptr + INTEGER , INTENT(OUT) :: hdferr + +!***** + INTERFACE + INTEGER FUNCTION h5pget_file_image_c(fapl_id, buf_ptr, buf_len_ptr) & + BIND(C, NAME='h5pget_file_image_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr + USE H5GLOBAL + INTEGER(HID_T), INTENT(IN) :: fapl_id + TYPE(C_PTR), DIMENSION(*), INTENT(OUT) :: buf_ptr + INTEGER(SIZE_T), INTENT(OUT) :: buf_len_ptr + END FUNCTION h5pget_file_image_c + END INTERFACE + + hdferr = h5pget_file_image_c(fapl_id, buf_ptr, buf_len_ptr) + + END SUBROUTINE h5pget_file_image_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..b5ea13d --- /dev/null +++ b/fortran/src/H5Pff_F90.f90 @@ -0,0 +1,949 @@ +!****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' 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_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_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_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_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_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_f90_c(parent, name, name_len, class) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PCREATE_CLASS_F90_C'::h5pcreate_class_f90_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_f90_c + END INTERFACE + + name_len = LEN(name) + hdferr = h5pcreate_class_f90_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 9cd9950..068f24e 100644 --- a/fortran/src/H5Rf.c +++ b/fortran/src/H5Rf.c @@ -1,6 +1,6 @@ /****h* H5Rf/H5Rf * PURPOSE - * This file contains C stubs for H5R Fortran APIs + * This file contains C stubs for H5R Fortran APIs * * COPYRIGHT * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -24,21 +24,68 @@ #include "H5f90.h" #include "H5Eprivate.h" +/****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; + int_f ret_value = 0; + + /* + * Convert FORTRAN name to C name + */ + if(NULL == (c_name = (char *)HD5f2cstring(name, (size_t)*namelen))) + HGOTO_DONE(FAIL) + + /* + * Call H5Rcreate function. + */ + if(H5Rcreate(&ref_c, *loc_id, c_name, H5R_OBJECT, (hid_t)-1) < 0) + HGOTO_DONE(FAIL) + + /* Copy the reference created */ + *ref = (haddr_t_f)ref_c; + +done: + if(c_name) + HDfree(c_name); + return ret_value; +} /* nh5rcreate_object_c() */ + /****if* H5Rf/h5rcreate_region_c * NAME - * h5rcreate_region_c + * h5rcreate_region_c * PURPOSE - * Call H5Rcreate to create a reference to dataset region - * region + * Call H5Rcreate to create a reference to dataset region + * region * INPUTS - * loc_id - file or group identifier - * name - name of the dataset - * namelen - name length - * space_id - dataset space identifier + * 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 + * ref - reference to the dataset region * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal * Wednesday, December 1, 1999 @@ -47,7 +94,7 @@ * SOURCE */ int_f -h5rcreate_region_c(int_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *space_id) +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; @@ -73,7 +120,7 @@ done: if(c_name) HDfree(c_name); return ret_value; -} /* end h5rcreate_region_c() */ +} /* end nh5rcreate_region_c() */ /****if* H5Rf/h5rcreate_ptr_c * NAME @@ -118,6 +165,89 @@ h5rcreate_ptr_c (void *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *r 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 + * 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; + int_f ret_value = 0; + + /* Copy the reference to dereference */ + HDmemcpy(&ref_c, ref, H5R_DSET_REG_REF_BUF_SIZE); + + /* + * Call H5Rdereference function. + */ + if((c_obj_id = H5Rdereference2((hid_t)*dset_id, H5P_DEFAULT, H5R_DATASET_REGION, &ref_c)) < 0) + HGOTO_DONE(FAIL) + + /* Copy the object's ID */ + *obj_id = (hid_t_f)c_obj_id; + +done: + return ret_value; +} /* end nh5rdereference_region_c() */ + +/****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 + * 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; + int_f ret_value = 0; + + /* + * Call H5Rdereference function. + */ + if((c_obj_id = H5Rdereference2((hid_t)*dset_id, H5P_DEFAULT, H5R_OBJECT, &ref_c)) < 0) + HGOTO_DONE(FAIL) + + /* Copy the object's ID */ + *obj_id = (hid_t_f)c_obj_id; + +done: + return ret_value; +} /* end nh5rdereference_object_c() */ + /****if* H5Rf/h5rdereference_ptr_c * NAME * h5rdereference_ptr_c @@ -125,7 +255,7 @@ h5rcreate_ptr_c (void *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *r * Call H5Rdereference * INPUTS * obj_id - Valid identifier for the file containing the - * referenced object or any object in that file. + * referenced object or any object in that file. * ref_typ - The reference type of ref. * ref - Object reference * OUTPUTS @@ -162,8 +292,8 @@ h5rdereference_ptr_c (hid_t_f *obj_id, int_f *ref_type, void *ref, hid_t_f *ref_ * PURPOSE * Call H5Rget_region to dereference dataspace region * INPUTS - * dset_id - dataset identifier - * ref - reference to the dataset region + * dset_id - dataset identifier + * ref - reference to the dataset region * OUTPUTS * space_id - dereferenced dataset dataspace identifier * RETURNS @@ -176,7 +306,7 @@ h5rdereference_ptr_c (hid_t_f *obj_id, int_f *ref_type, void *ref, hid_t_f *ref_ * SOURCE */ int_f -h5rget_region_region_c(hid_t_f *dset_id, int_f *ref, hid_t_f *space_id) +nh5rget_region_region_c(hid_t_f *dset_id, int_f *ref, hid_t_f *space_id) /******/ { hid_t c_space_id; @@ -197,7 +327,7 @@ h5rget_region_region_c(hid_t_f *dset_id, int_f *ref, hid_t_f *space_id) done: return ret_value; -} /* end h5rget_region_region_c() */ +} /* end nh5rget_region_region_c() */ /****if* H5Rf/h5rget_region_ptr_c * NAME @@ -205,8 +335,8 @@ done: * PURPOSE * Call H5Rget_region to dereference dataspace region * INPUTS - * dset_id - dataset identifier - * ref - reference to the dataset region + * dset_id - dataset identifier + * ref - reference to the dataset region * OUTPUTS * space_id - dereferenced dataset dataspace identifier * RETURNS @@ -236,22 +366,22 @@ h5rget_region_ptr_c(hid_t_f *dset_id, void *ref, hid_t_f *space_id) done: return ret_value; -} /* end h5rget_region_ptr_c() */ +} /* end nh5rget_region_ptr_c() */ /****if* H5Rf/h5rget_object_type_obj_c * NAME - * h5rget_object_type_obj_c + * h5rget_object_type_obj_c * PURPOSE - * Call H5Rget_object_type to retrieve the type of the object reference points - * to + * Call H5Rget_object_type to retrieve the type of the object reference points + * to * INPUTS - * dset_id - dataset identifier - * ref - reference to the dataset region + * dset_id - dataset identifier + * ref - reference to the dataset region * OUTPUTS - * obj_type - type of dereferenced object + * obj_type - type of dereferenced object * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal * Wednesday, December 1, 1999 @@ -260,7 +390,7 @@ done: * SOURCE */ int_f -h5rget_object_type_obj_c(hid_t_f *dset_id, haddr_t_f *ref, int_f *obj_type) +nh5rget_object_type_obj_c(hid_t_f *dset_id, haddr_t_f *ref, int_f *obj_type) /******/ { H5O_type_t c_obj_type; @@ -278,7 +408,125 @@ h5rget_object_type_obj_c(hid_t_f *dset_id, haddr_t_f *ref, int_f *obj_type) done: return ret_value; -} /* end h5rget_object_type_obj_c() */ +} /* end nh5rget_object_type_obj_c() */ + +/****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. + * size - The size of the name buffer. + * + * 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; + size_t c_bufsize = (size_t)*name_len + 1; + char *c_buf = NULL; /* Buffer to hold C string */ + int_f ret_value = 0; + + + /* + * Allocate buffer to hold name of an attribute + */ + if(NULL == (c_buf = (char *)HDmalloc(c_bufsize))) + HGOTO_DONE(FAIL) + + /* + * Call H5Rget_name function. + */ + if((c_size = H5Rget_name((hid_t)*loc_id, H5R_OBJECT, &ref_c, c_buf, c_bufsize)) < 0) + HGOTO_DONE(FAIL) + + /* + * 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; + +done: + if(c_buf) + HDfree(c_buf); + return ret_value; +} /* end nh5rget_name_object_c() */ + +/****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. + * size - The size of the name buffer. + * + * 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; + size_t c_bufsize = (size_t)*name_len + 1; + char *c_buf = NULL; /* Buffer to hold C string */ + int_f ret_value = 0; + + /* Copy the reference to query */ + HDmemcpy(&ref_c, ref, H5R_DSET_REG_REF_BUF_SIZE); + + /* + * Allocate buffer to hold name of an attribute + */ + if(NULL == (c_buf = (char *)HDmalloc(c_bufsize))) + HGOTO_DONE(FAIL) + + /* + * Call H5Rget_name function. + */ + if((c_size = H5Rget_name((hid_t)*loc_id, H5R_DATASET_REGION, &ref_c, c_buf, c_bufsize)) < 0) + HGOTO_DONE(FAIL) + + /* + * 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; + +done: + if(c_buf) + HDfree(c_buf); + return ret_value; +} /****if* H5Rf/h5rget_name_ptr_c * NAME @@ -287,13 +535,13 @@ done: * 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. + * 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. + * 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 @@ -341,24 +589,24 @@ h5rget_name_ptr_c (hid_t_f *loc_id, int_f *ref_type, void *ref, _fcd name, size_ /****if* H5Rf/h5rget_obj_type_c * NAME - * h5rget_obj_type_c + * h5rget_obj_type_c * PURPOSE - * Call H5Rget_obj_type + * 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. + * 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. These are defined in H5Opublic.h, - * enum H5O_type_t + * obj_type - Type of referenced object. These are defined in H5Opublic.h, + * enum H5O_type_t * * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR - * M. Scot Breitenfeld - * December 17, 2008 + * M. Scot Breitenfeld + * December 17, 2008 * * SOURCE */ diff --git a/fortran/src/H5Rff.f90 b/fortran/src/H5Rff.f90 new file mode 100644 index 0000000..77a1ff8 --- /dev/null +++ b/fortran/src/H5Rff.f90 @@ -0,0 +1,128 @@ +!****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. * +! 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' in the fortran/src directory. +! This is needed for Windows based operating systems. +! +!***** + +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 h5rget_object_type_f + + MODULE PROCEDURE h5rget_object_type_obj_f + + END INTERFACE + +CONTAINS + +!****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 +! H5G_GROUP_F +! H5G_DATASET_F +! H5G_TYPE_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). 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) :: dset_id ! Dataset identifier + TYPE(hobj_ref_t_f), INTENT(IN) :: ref ! Object reference + INTEGER, INTENT(OUT) :: obj_type ! Object type + ! H5G_UNKNOWN_F + ! H5G_GROUP_F + ! H5G_DATASET_F + ! H5G_TYPE_F + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + INTEGER(HADDR_T) :: ref_f ! Local buffer to pass reference + + 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 + +END MODULE H5R diff --git a/fortran/src/H5Rff.F90 b/fortran/src/H5Rff_F03.f90 index a90bd9a..8f40607 100644 --- a/fortran/src/H5Rff.F90 +++ b/fortran/src/H5Rff_F03.f90 @@ -1,48 +1,43 @@ -!****h* ROBODoc/H5R +!****h* ROBODoc/H5R (F03) ! ! NAME -! MODULE H5R +! MODULE H5R_PROVISIONAL ! ! FILE -! fortran/src/H5Rff.f90 +! fortran/src/H5Rff_F03.f90 ! ! PURPOSE -! This file contains Fortran interfaces for H5R functions. +! 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. * -! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +! 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' in the fortran/src directory. ! This is needed for Windows based operating systems. ! !***** - -MODULE H5R - USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR, C_CHAR, C_SIGNED_CHAR +MODULE H5R_PROVISIONAL USE H5GLOBAL + USE, INTRINSIC :: ISO_C_BINDING ! If you change the value of these parameters, do not forget to change corresponding ! values in the H5f90.h file. @@ -58,12 +53,6 @@ MODULE H5R ! END TYPE ! - INTERFACE h5rget_object_type_f - - MODULE PROCEDURE h5rget_object_type_obj_f - - END INTERFACE - TYPE :: hdset_reg_ref_t_f03 INTEGER(C_SIGNED_CHAR), DIMENSION(1:H5R_DSET_REG_REF_BUF_SIZE_F) :: ref END TYPE hdset_reg_ref_t_f03 @@ -103,9 +92,8 @@ MODULE H5R INTERFACE INTEGER FUNCTION h5rget_name_ptr_c(loc_id, ref_type, ref, name, name_len, size_default) & BIND(C, NAME='h5rget_name_ptr_c') - IMPORT :: c_char, c_ptr - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr + USE H5GLOBAL INTEGER(HID_T), INTENT(IN) :: loc_id INTEGER, INTENT(IN) :: ref_type TYPE(C_PTR), INTENT(IN), VALUE :: ref @@ -118,9 +106,8 @@ MODULE H5R INTERFACE INTEGER FUNCTION h5rdereference_ptr_c(obj_id, ref_type, ref, ref_obj_id) & BIND(C, NAME='h5rdereference_ptr_c') - IMPORT :: c_ptr - IMPORT :: HID_T - IMPLICIT NONE + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr + USE H5GLOBAL INTEGER(HID_T), INTENT(IN) :: obj_id INTEGER, INTENT(IN) :: ref_type TYPE(C_PTR), INTENT(IN), VALUE :: ref @@ -131,9 +118,8 @@ MODULE H5R INTERFACE INTEGER FUNCTION h5rcreate_ptr_c(ref, loc_id, name, namelen, ref_type, space_id) & BIND(C, NAME='h5rcreate_ptr_c') - IMPORT :: c_ptr, c_char - IMPORT :: HID_T - IMPLICIT NONE + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr + USE H5GLOBAL TYPE(C_PTR), VALUE :: ref INTEGER(HID_T), INTENT(IN) :: loc_id CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name @@ -146,80 +132,16 @@ MODULE H5R INTERFACE INTEGER FUNCTION h5rget_region_ptr_c(dset_id, ref, space_id) & BIND(C, NAME='h5rget_region_ptr_c') - IMPORT :: c_ptr - IMPORT :: HID_T - IMPLICIT NONE + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr + USE H5GLOBAL INTEGER(HID_T), INTENT(IN) :: dset_id TYPE(C_PTR), VALUE :: ref INTEGER(HID_T), INTENT(OUT) :: space_id END FUNCTION h5rget_region_ptr_c END INTERFACE - CONTAINS -!****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 -! H5G_GROUP_F -! H5G_DATASET_F -! H5G_TYPE_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). 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) :: dset_id ! Dataset identifier - TYPE(hobj_ref_t_f), INTENT(IN) :: ref ! Object reference - INTEGER, INTENT(OUT) :: obj_type ! Object type - ! H5G_UNKNOWN_F - ! H5G_GROUP_F - ! H5G_DATASET_F - ! H5G_TYPE_F - INTEGER, INTENT(OUT) :: hdferr ! Error code -!***** - INTEGER(HADDR_T) :: ref_f ! Local buffer to pass reference - - INTERFACE - INTEGER FUNCTION h5rget_object_type_obj_c(dset_id, ref_f, obj_type) BIND(C, NAME='h5rget_object_type_obj_c') - IMPORT :: HID_T, HADDR_T - IMPLICIT NONE - 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 - - !****s* H5R/h5rget_region_region_f ! ! NAME @@ -258,10 +180,13 @@ CONTAINS INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference INTERFACE - INTEGER FUNCTION h5rget_region_region_c(dset_id, ref_f, space_id) BIND(C, NAME='h5rget_region_region_c') - IMPORT :: HID_T, REF_REG_BUF_LEN - IMPLICIT NONE + 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 @@ -397,13 +322,16 @@ CONTAINS 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) BIND(C,NAME='h5rcreate_region_c') - IMPORT :: HID_T, REF_REG_BUF_LEN - IMPORT :: C_CHAR - IMPLICIT NONE + 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(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + CHARACTER(LEN=*), INTENT(IN) :: name INTEGER :: namelen INTEGER(HID_T), INTENT(IN) :: space_id END FUNCTION h5rcreate_region_c @@ -775,9 +703,8 @@ CONTAINS INTERFACE INTEGER FUNCTION h5rget_obj_type_c(loc_id, ref_type, ref, obj_type) & BIND(C, NAME='h5rget_obj_type_c') - IMPORT :: C_PTR - IMPORT :: HID_T - IMPLICIT NONE + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr + USE H5GLOBAL INTEGER(HID_T), INTENT(IN) :: loc_id INTEGER, INTENT(IN) :: ref_type TYPE(C_PTR), VALUE :: ref @@ -789,4 +716,4 @@ CONTAINS END SUBROUTINE h5rget_obj_type_f -END MODULE H5R +END MODULE H5R_PROVISIONAL diff --git a/fortran/src/H5Rff_F90.f90 b/fortran/src/H5Rff_F90.f90 new file mode 100644 index 0000000..ac45857 --- /dev/null +++ b/fortran/src/H5Rff_F90.f90 @@ -0,0 +1,514 @@ +!****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' 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 + + INTERFACE h5rget_region_f + + MODULE PROCEDURE h5rget_region_region_f + + END INTERFACE + + +CONTAINS + + +!****s* H5R/h5rget_region_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 - 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_region_f subroutine. +! +! SOURCE + 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 + + 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 + + + +!****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 file containing the reference or for any object in that file. +! 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, returning 0 (zero) if +! no name is associated with the identifier +! +! 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 file containing the reference or + ! for any object in that file. + ! 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 file containing the reference or +! for any object in that file. +! 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, returning 0 (zero) if no +! name is associated with the identifier +! +! 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 + TYPE(hdset_reg_ref_t_f), INTENT(IN) :: ref + INTEGER(SIZE_T), OPTIONAL, INTENT(OUT) :: size + CHARACTER(LEN=*), INTENT(OUT) :: name + INTEGER, INTENT(OUT) :: hdferr +!***** + 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 67427a7..6947d64 100644 --- a/fortran/src/H5Sf.c +++ b/fortran/src/H5Sf.c @@ -1,6 +1,6 @@ /****h* H5Sf/H5Sf * PURPOSE - * This file contains C stubs for H5S Fortran APIs + * This file contains C stubs for H5S Fortran APIs * * COPYRIGHT * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -26,27 +26,27 @@ /****if* H5Sf/h5screate_simple_c * NAME - * h5screate_simple_c + * h5screate_simple_c * PURPOSE - * Call H5Screate_simple to create a dataspace + * Call H5Screate_simple to create a dataspace * INPUTS - * rank - number of dimensions of dataspace - * dims - array of the size of each dimension + * 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 + * space_id - identifier of the created dataspace * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, August 4, 1999 + * Wednesday, August 4, 1999 * HISTORY * * SOURCE */ int_f -h5screate_simple_c ( int_f *rank, hsize_t_f *dims, hsize_t_f *maxdims, hid_t_f *space_id ) +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]; @@ -75,23 +75,23 @@ done: /****if* H5Sf/h5sclose_c * NAME - * h5sclose_c + * h5sclose_c * PURPOSE - * Call H5Sclose to close the dataspace + * Call H5Sclose to close the dataspace * INPUTS - * space_id - identifier of the dataspace to be closed + * space_id - identifier of the dataspace to be closed * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, August 4, 1999 + * Wednesday, August 4, 1999 * HISTORY * * SOURCE */ int_f -h5sclose_c ( hid_t_f *space_id ) +nh5sclose_c ( hid_t_f *space_id ) /******/ { int ret_value = 0; @@ -104,25 +104,25 @@ h5sclose_c ( hid_t_f *space_id ) /****if* H5Sf/h5screate_c * NAME - * h5screate_c + * h5screate_c * PURPOSE - * Call H5Screate to create a dataspace + * Call H5Screate to create a dataspace * INPUTS - * classtype - type of the dataspace class + * classtype - type of the dataspace class * OUTPUTS - * space_id - identifier of the created dataspace + * space_id - identifier of the created dataspace * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Tuesday, August 10, 1999 + * Tuesday, August 10, 1999 * HISTORY * * SOURCE */ int_f -h5screate_c ( int_f *classtype, hid_t_f *space_id ) +nh5screate_c ( int_f *classtype, hid_t_f *space_id ) /******/ { H5S_class_t c_classtype; @@ -138,25 +138,25 @@ h5screate_c ( int_f *classtype, hid_t_f *space_id ) /****if* H5Sf/h5scopy_c * NAME - * h5scopy_c + * h5scopy_c * PURPOSE - * Call H5Scopy to copy dataspace + * Call H5Scopy to copy dataspace * INPUTS - * space_id - identifier of the dataspace to be copied + * space_id - identifier of the dataspace to be copied * OUTPUTS - * new_space_id - identifier of the new datspace + * new_space_id - identifier of the new datspace * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Tuesday, August 10, 1999 + * Tuesday, August 10, 1999 * HISTORY * * SOURCE */ int_f -h5scopy_c( hid_t_f *space_id , hid_t_f *new_space_id) +nh5scopy_c( hid_t_f *space_id , hid_t_f *new_space_id) /******/ { int ret_value = 0; @@ -173,28 +173,28 @@ h5scopy_c( hid_t_f *space_id , hid_t_f *new_space_id) /****if* H5Sf/h5sget_select_hyper_nblocks_c * NAME - * h5sget_select_hyper_nblocks_c + * 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 + * 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 + * space_id - identifier of the dataspace * OUTPUTS - * num_blocks - number of hyperslab blocks in - * the current dataspace selection + * num_blocks - number of hyperslab blocks in + * the current dataspace selection * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Friday, November 12, 1999 + * Friday, November 12, 1999 * HISTORY * * SOURCE */ int_f -h5sget_select_hyper_nblocks_c( hid_t_f *space_id , hssize_t_f * num_blocks) +nh5sget_select_hyper_nblocks_c( hid_t_f *space_id , hssize_t_f * num_blocks) /******/ { int ret_value = 0; @@ -211,28 +211,28 @@ h5sget_select_hyper_nblocks_c( hid_t_f *space_id , hssize_t_f * num_blocks) /****if* H5Sf/h5sget_select_elem_npoints_c * NAME - * h5sget_select_elem_npoints_c + * 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 + * 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 + * space_id - identifier of the dataspace * OUTPUTS - * num_points - number of element points in - * the current dataspace selection + * num_points - number of element points in + * the current dataspace selection * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Monday, November 15, 1999 + * Monday, November 15, 1999 * HISTORY * * SOURCE */ int_f -h5sget_select_elem_npoints_c( hid_t_f *space_id , hssize_t_f * num_points) +nh5sget_select_elem_npoints_c( hid_t_f *space_id , hssize_t_f * num_points) /******/ { int ret_value = 0; @@ -249,36 +249,36 @@ h5sget_select_elem_npoints_c( hid_t_f *space_id , hssize_t_f * num_points) /****if* H5Sf/h5sget_select_hyper_blocklist_c * NAME - * h5sget_select_hyper_blocklist_c + * 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. + * 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 - * startblock - Hyperslab block to start with - * num_blocks - number of hyperslab blocks in - * the current dataspace selection + * 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 + * buf - List of hyperslab blocks selected * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Monday, November 15, 1999 + * Monday, November 15, 1999 * HISTORY * - * Transpose dimension arrays because of C-FORTRAN storage order - * M. Scot Breitenfeld + * Transpose dimension arrays because of C-FORTRAN storage order + * M. Scot Breitenfeld * SOURCE */ int_f -h5sget_select_hyper_blocklist_c( hid_t_f *space_id ,hsize_t_f *startblock, +nh5sget_select_hyper_blocklist_c( hid_t_f *space_id ,hsize_t_f *startblock, hsize_t_f *num_blocks, hsize_t_f *buf) /******/ { @@ -327,31 +327,31 @@ h5sget_select_hyper_blocklist_c( hid_t_f *space_id ,hsize_t_f *startblock, /****if* H5Sf/h5sget_select_bounds_c * NAME - * h5sget_select_bounds_c + * 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 + * 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 + * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Wednesday, November 17, 1999 + * Wednesday, November 17, 1999 * HISTORY - * swapped array bounds to account for C and Fortran reversed - * matrix notation. - * M. Scot Breitenfeld + * swapped array bounds to account for C and Fortran reversed + * matrix notation. + * M. Scot Breitenfeld * SOURCE */ int_f -h5sget_select_bounds_c( hid_t_f *space_id , hsize_t_f * start, hsize_t_f * end) +nh5sget_select_bounds_c( hid_t_f *space_id , hsize_t_f * start, hsize_t_f * end) /******/ { hid_t c_space_id; @@ -379,34 +379,34 @@ done: /****if* H5Sf/h5sget_select_elem_pointlist_c * NAME - * h5sget_select_elem_pointlist_c + * 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 - * list of points, numpoints points are put into the user's - * buffer. If the user's buffer fills up before numpoints - * points are inserted, the buffer - * will contain only as many points as fit. + * Call H5Sget_select_elem_pointlist + * get a list of element points in the + * current dataspace selectin. + * Starting with the startpoint-th point in the + * list of points, numpoints points are put into the user's + * 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 - * startpoint - Element point to start with - * numpoints - Number of element points to get + * 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 + * buf - List of element points selected * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Wednesday, November 17, 1999 + * Wednesday, November 17, 1999 * HISTORY * * SOURCE */ int_f -h5sget_select_elem_pointlist_c( hid_t_f *space_id ,hsize_t_f * startpoint, +nh5sget_select_elem_pointlist_c( hid_t_f *space_id ,hsize_t_f * startpoint, hsize_t_f * numpoints, hsize_t_f * buf) /******/ { @@ -451,23 +451,23 @@ h5sget_select_elem_pointlist_c( hid_t_f *space_id ,hsize_t_f * startpoint, /****if* H5Sf/h5sselect_all_c * NAME - * h5sselect_all_c + * h5sselect_all_c * PURPOSE - * Call H5Sselect_all to select entire dataspace + * Call H5Sselect_all to select entire dataspace * INPUTS - * space_id - identifier of the dataspace + * space_id - identifier of the dataspace * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Tuesday, August 10, 1999 + * Tuesday, August 10, 1999 * HISTORY * * SOURCE */ int_f -h5sselect_all_c ( hid_t_f *space_id ) +nh5sselect_all_c ( hid_t_f *space_id ) /******/ { int ret_value = 0; @@ -480,23 +480,23 @@ h5sselect_all_c ( hid_t_f *space_id ) /****if* H5Sf/h5sselect_none_c * NAME - * h5sselect_none_c + * h5sselect_none_c * PURPOSE - * Call H5Sselect_none to reset the selection region + * Call H5Sselect_none to reset the selection region * INPUTS - * space_id - identifier of the dataspace + * space_id - identifier of the dataspace * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Tuesday, August 10, 1999 + * Tuesday, August 10, 1999 * HISTORY * * SOURCE */ int_f -h5sselect_none_c ( hid_t_f *space_id ) +nh5sselect_none_c ( hid_t_f *space_id ) /******/ { int ret_value = 0; @@ -509,27 +509,27 @@ h5sselect_none_c ( hid_t_f *space_id ) /****if* H5Sf/h5sselect_valid_c * NAME - * h5sselect_valid_c + * h5sselect_valid_c * PURPOSE - * Call H5Sselect_valid to verify that selection - * is within dataspace extent. + * Call H5Sselect_valid to verify that selection + * is within dataspace extent. * INPUTS - * space_id - identifier of the dataspace + * space_id - identifier of the dataspace * OUTPUTS - * flag - 0 if not valid selection, 1 if is valid selection, - * and negative on failure. + * flag - 0 if not valid selection, 1 if is valid selection, + * and negative on failure. * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Tuesday, August 10, 1999 + * Tuesday, August 10, 1999 * HISTORY * * SOURCE */ int_f -h5sselect_valid_c ( hid_t_f *space_id , int_f *flag ) +nh5sselect_valid_c ( hid_t_f *space_id , int_f *flag ) /******/ { int ret_value = 0; @@ -545,26 +545,26 @@ h5sselect_valid_c ( hid_t_f *space_id , int_f *flag ) /****if* H5Sf/h5sget_simple_extent_npoints_c * NAME - * h5sget_simple_extent_npoints_c + * h5sget_simple_extent_npoints_c * PURPOSE - * Call H5Sget_simple_extent_npoints to determine the number - * of elements in a dataspace + * Call H5Sget_simple_extent_npoints to determine the number + * of elements in a dataspace * INPUTS - * space_id - identifier of the dataspace + * space_id - identifier of the dataspace * OUTPUTS - * npoints - number of points in a dataspace + * npoints - number of points in a dataspace * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, August 11, 1999 + * Wednesday, August 11, 1999 * HISTORY * * SOURCE */ int_f -h5sget_simple_extent_npoints_c ( hid_t_f *space_id , hsize_t_f *npoints ) +nh5sget_simple_extent_npoints_c ( hid_t_f *space_id , hsize_t_f *npoints ) /******/ { int ret_value = 0; @@ -580,26 +580,26 @@ h5sget_simple_extent_npoints_c ( hid_t_f *space_id , hsize_t_f *npoints ) /****if* H5Sf/h5sget_select_npoints_c * NAME - * h5sget_select_npoints_c + * h5sget_select_npoints_c * PURPOSE - * Call H5Sget_select_npoints to determine the number - * of elements in a dataspace selection + * Call H5Sget_select_npoints to determine the number + * of elements in a dataspace selection * INPUTS - * space_id - identifier of the dataspace + * space_id - identifier of the dataspace * OUTPUTS - * npoints - number of points in a dataspace selection + * npoints - number of points in a dataspace selection * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, August 11, 1999 + * Wednesday, August 11, 1999 * HISTORY * * SOURCE */ int_f -h5sget_select_npoints_c ( hid_t_f *space_id , hssize_t_f *npoints ) +nh5sget_select_npoints_c ( hid_t_f *space_id , hssize_t_f *npoints ) /******/ { int ret_value = 0; @@ -615,26 +615,26 @@ h5sget_select_npoints_c ( hid_t_f *space_id , hssize_t_f *npoints ) /****if* H5Sf/h5sget_simple_extent_ndims_c * NAME - * h5sget_simple_extent_ndims_c + * h5sget_simple_extent_ndims_c * PURPOSE - * Call H5Sget_simple_extent_ndims to determine the number - * dimensions + * Call H5Sget_simple_extent_ndims to determine the number + * dimensions * INPUTS - * space_id - identifier of the dataspace + * space_id - identifier of the dataspace * OUTPUTS - * rank - number of dataspace dimensions + * rank - number of dataspace dimensions * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, August 11, 1999 + * Wednesday, August 11, 1999 * HISTORY * * SOURCE */ int_f -h5sget_simple_extent_ndims_c ( hid_t_f *space_id , int_f *ndims ) +nh5sget_simple_extent_ndims_c ( hid_t_f *space_id , int_f *ndims ) /******/ { int ret_value = 0; @@ -650,27 +650,27 @@ h5sget_simple_extent_ndims_c ( hid_t_f *space_id , int_f *ndims ) /****if* H5Sf/h5sget_simple_extent_type_c * NAME - * h5sget_simple_extent_type_c + * h5sget_simple_extent_type_c * PURPOSE - * Call H5Sget_simple_extent_type to determine the class type - * of a dataspace + * Call H5Sget_simple_extent_type to determine the class type + * of a dataspace * INPUTS - * space_id - identifier of the dataspace + * space_id - identifier of the dataspace * OUTPUTS - * classtype - class type; possible values are: + * 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 + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, August 11, 1999 + * Wednesday, August 11, 1999 * HISTORY * * SOURCE */ int_f -h5sget_simple_extent_type_c ( hid_t_f *space_id , int_f *classtype) +nh5sget_simple_extent_type_c ( hid_t_f *space_id , int_f *classtype) /******/ { int ret_value = 0; @@ -691,25 +691,25 @@ h5sget_simple_extent_type_c ( hid_t_f *space_id , int_f *classtype) /****if* H5Sf/h5soffset_simple_c * NAME - * h5soffset_simple_c + * h5soffset_simple_c * PURPOSE - * Call H5Soffset_simple to set the offset of a simple - * dataspace + * Call H5Soffset_simple to set the offset of a simple + * dataspace * INPUTS - * space_id - identifier of the dataspace - * offset - offset array + * space_id - identifier of the dataspace + * offset - offset array * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, August 11, 1999 + * Wednesday, August 11, 1999 * HISTORY * * SOURCE */ int_f -h5soffset_simple_c ( hid_t_f *space_id , hssize_t_f *offset) +nh5soffset_simple_c ( hid_t_f *space_id , hssize_t_f *offset) /******/ { hid_t c_space_id; @@ -738,27 +738,27 @@ done: /****if* H5Sf/h5sset_extent_simple_c * NAME - * h5sset_extent_simple_c + * h5sset_extent_simple_c * PURPOSE - * Call H5Sset_extent_simple to set or reset size of - * existing dataspace + * Call H5Sset_extent_simple to set or reset size of + * existing 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, August 11, 1999 + * Wednesday, August 11, 1999 * HISTORY * * SOURCE */ int_f -h5sset_extent_simple_c ( hid_t_f *space_id , int_f *rank, hsize_t_f *current_size, hsize_t_f *maximum_size) +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]; @@ -784,27 +784,27 @@ done: /****if* H5Sf/h5sget_simple_extent_dims_c * NAME - * h5sget_simple_extent_dims_c + * h5sget_simple_extent_dims_c * PURPOSE - * Call H5Sget_simple_extent_dims to retrieve sizes of an - * existing dataspace + * Call H5Sget_simple_extent_dims to retrieve sizes of an + * existing dataspace * INPUTS - * space_id - identifier of the dataspace + * space_id - identifier of the dataspace * OUTPUTS - * dims - array with the dimension sizes - * maxdims - aray with maximum sizes of dimensions + * dims - array with the dimension sizes + * maxdims - aray with maximum sizes of dimensions * RETURNS - * number of dataspace dimensions (rank) on success, -1 on failure + * number of dataspace dimensions (rank) on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, August 11, 1999 + * Wednesday, August 11, 1999 * HISTORY * * SOURCE */ int_f -h5sget_simple_extent_dims_c ( hid_t_f *space_id , hsize_t_f *dims, hsize_t_f *maxdims) +nh5sget_simple_extent_dims_c ( hid_t_f *space_id , hsize_t_f *dims, hsize_t_f *maxdims) /******/ { hid_t c_space_id; @@ -838,27 +838,27 @@ done: /****if* H5Sf/h5sis_simple_c * NAME - * h5sis_simple_c + * h5sis_simple_c * PURPOSE - * Call H5Sis_simple to detrmine if the dataspace - * is simple. + * Call H5Sis_simple to detrmine if the dataspace + * is simple. * INPUTS - * space_id - identifier of the dataspace + * space_id - identifier of the dataspace * OUTPUTS - * flag - 0 if not simple, 1 if is simple, - * and negative on failure. + * flag - 0 if not simple, 1 if is simple, + * and negative on failure. * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, August 11, 1999 + * Wednesday, August 11, 1999 * HISTORY * * SOURCE */ int_f -h5sis_simple_c ( hid_t_f *space_id , int_f *flag ) +nh5sis_simple_c ( hid_t_f *space_id , int_f *flag ) /******/ { int ret_value = 0; @@ -875,24 +875,24 @@ h5sis_simple_c ( hid_t_f *space_id , int_f *flag ) /****if* H5Sf/h5sextent_copy_c * NAME - * h5sextent_copy_c + * h5sextent_copy_c * PURPOSE - * Call H5Sextent_copy to copy an extent of dataspace + * 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 + * dest_space_id - identifier of the destination dataspace + * source_space_id - identifier of the source dataspace * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, August 11, 1999 + * Wednesday, August 11, 1999 * HISTORY * * SOURCE */ int_f -h5sextent_copy_c ( hid_t_f *dest_space_id , hid_t_f *source_space_id) +nh5sextent_copy_c ( hid_t_f *dest_space_id , hid_t_f *source_space_id) /******/ { int ret_value = 0; @@ -908,23 +908,23 @@ h5sextent_copy_c ( hid_t_f *dest_space_id , hid_t_f *source_space_id) /****if* H5Sf/h5sset_extent_none_c * NAME - * h5sset_extent_none_c + * h5sset_extent_none_c * PURPOSE - * Call H5Sset_extent_none to remove extent from a dataspace + * Call H5Sset_extent_none to remove extent from a dataspace * INPUTS - * space_id - dataspace identifier + * space_id - dataspace identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, August 11, 1999 + * Wednesday, August 11, 1999 * HISTORY * * SOURCE */ int_f -h5sset_extent_none_c ( hid_t_f *space_id ) +nh5sset_extent_none_c ( hid_t_f *space_id ) /******/ { int ret_value = 0; @@ -939,30 +939,30 @@ h5sset_extent_none_c ( hid_t_f *space_id ) /****if* H5Sf/h5sselect_hyperslab_c * NAME - * h5sselect_hyperslab_c + * h5sselect_hyperslab_c * PURPOSE - * Call H5Sselect_hyperslab to select a hyperslab + * 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 + * 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) - * 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 + * 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 * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, August 11, 1999 + * Wednesday, August 11, 1999 * HISTORY * * SOURCE */ int_f -h5sselect_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) +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]; @@ -1000,30 +1000,30 @@ done: #ifdef NEW_HYPERSLAB_API /****if* H5Sf/h5scombine_hyperslab_c * NAME - * h5scombine_hyperslab_c + * h5scombine_hyperslab_c * PURPOSE - * Call H5Scombine_hyperslab + * 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 + * 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 + * hyper_id - identifier for the new dataspace * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Monday, October 7, 2002 + * Monday, October 7, 2002 * HISTORY * * SOURCE */ int_f -h5scombine_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) +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; @@ -1082,27 +1082,27 @@ DONE: } /****if* H5Sf/h5scombine_select_c * NAME - * h5scombine_select_c + * h5scombine_select_c * PURPOSE - * Call H5Scombine_ select + * 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 + * 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 + * ds_id - identifier for the new dataspace * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Monday, October 7, 2002 + * Monday, October 7, 2002 * HISTORY * * SOURCE */ int_f -h5scombine_select_c ( hid_t_f *space1_id , int_f *op, hid_t_f *space2_id, hid_t_f *ds_id) +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; @@ -1123,25 +1123,25 @@ h5scombine_select_c ( hid_t_f *space1_id , int_f *op, hid_t_f *space2_id, hid_t_ } /****if* H5Sf/h5sselect_select_c * NAME - * h5sselect_select_c + * h5sselect_select_c * PURPOSE - * Call H5Sselect_ select + * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Monday, October 7, 2002 + * Monday, October 7, 2002 * HISTORY * * SOURCE */ int_f -h5sselect_select_c ( hid_t_f *space1_id , int_f *op, hid_t_f *space2_id) +nh5sselect_select_c ( hid_t_f *space1_id , int_f *op, hid_t_f *space2_id) /******/ { int ret_value = -1; @@ -1160,24 +1160,24 @@ h5sselect_select_c ( hid_t_f *space1_id , int_f *op, hid_t_f *space2_id) #endif /*NEW_HYPERSLAB_API*/ /****if* H5Sf/h5sget_select_type_c * NAME - * h5sget_select_type_c + * h5sget_select_type_c * PURPOSE - * Call H5Sget_select_type + * Call H5Sget_select_type * INPUTS - * space_id - identifier of the dataspace + * space_id - identifier of the dataspace * OUTPUTS - * type - type of selection + * type - type of selection * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Monday, October 7, 2002 + * Monday, October 7, 2002 * HISTORY * * SOURCE */ int_f -h5sget_select_type_c ( hid_t_f *space_id , int_f *type) +nh5sget_select_type_c ( hid_t_f *space_id , int_f *type) /******/ { int ret_value = -1; @@ -1195,28 +1195,28 @@ h5sget_select_type_c ( hid_t_f *space_id , int_f *type) /****if* H5Sf/h5sselect_elements_c * NAME - * h5sselect_elements_c + * h5sselect_elements_c * PURPOSE - * Call H5Sselect_elements to select elements of a dataspace + * 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 + * 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 + * nelements - number of elements in the selection + * coord - arrays with the elements coordinates * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, August 11, 1999 + * Wednesday, August 11, 1999 * HISTORY * * SOURCE */ int_f -h5sselect_elements_c ( hid_t_f *space_id , int_f *op, size_t_f *nelements, hsize_t_f *coord) +nh5sselect_elements_c ( hid_t_f *space_id , int_f *op, size_t_f *nelements, hsize_t_f *coord) /******/ { int ret_value = -1; @@ -1251,28 +1251,28 @@ h5sselect_elements_c ( hid_t_f *space_id , int_f *op, size_t_f *nelements, hsiz /****if* H5Sf/h5sdecode_c * NAME - * h5sdecode_c + * h5sdecode_c * PURPOSE - * Call H5Sdecode + * Call H5Sdecode * INPUTS * * buf - Buffer for the data space object to be decoded. * OUTPUTS * - * obj_id - Object_id (non-negative) + * obj_id - Object_id (non-negative) * * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * March 26, 2008 + * March 26, 2008 * HISTORY * * SOURCE */ int_f -h5sdecode_c ( _fcd buf, hid_t_f *obj_id ) +nh5sdecode_c ( _fcd buf, hid_t_f *obj_id ) /******/ { int ret_value = -1; @@ -1297,26 +1297,26 @@ h5sdecode_c ( _fcd buf, hid_t_f *obj_id ) /****if* H5Sf/h5sencode_c * NAME - * h5sencode_c + * h5sencode_c * PURPOSE - * Call H5Sencode + * Call H5Sencode * INPUTS * - * obj_id - Identifier of the object to be encoded. + * 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. + * nalloc - The size of the allocated buffer. * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * March 26, 2008 + * March 26, 2008 * HISTORY * * SOURCE */ int_f -h5sencode_c (_fcd buf, hid_t_f *obj_id, size_t_f *nalloc ) +nh5sencode_c (_fcd buf, hid_t_f *obj_id, size_t_f *nalloc ) /******/ { int ret_value = -1; @@ -1366,28 +1366,28 @@ h5sencode_c (_fcd buf, hid_t_f *obj_id, size_t_f *nalloc ) /****if* H5Sf/h5sextent_equal_c * NAME - * h5sextent_equal_c + * h5sextent_equal_c * PURPOSE - * Call H5Sextent_equal + * Call H5Sextent_equal * INPUTS * * space1_id - First dataspace identifier. - * space2_id - Second dataspace identifier. + * space2_id - Second dataspace identifier. * OUTPUTS * - * equal - TRUE if equal, FALSE if unequal. + * equal - TRUE if equal, FALSE if unequal. * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld - * April 4, 2008 + * April 4, 2008 * HISTORY * * SOURCE */ int_f -h5sextent_equal_c ( hid_t_f * space1_id, hid_t_f *space2_id, hid_t_f *c_equal) +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 deleted file mode 100644 index aeb3314..0000000 --- a/fortran/src/H5Sff.F90 +++ /dev/null @@ -1,1754 +0,0 @@ -!****h* ROBODoc/H5S -! -! NAME -! MODULE H5S -! -! FILE -! fortran/src/H5Sff.f90 -! -! PURPOSE -! This file contains Fortran interfaces for H5S 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 -! -! _____ __ __ _____ ____ _____ _______ _ _ _______ -! |_ _| \/ | __ \ / __ \| __ \__ __|/\ | \ | |__ __| -! **** | | | \ / | |__) | | | | |__) | | | / \ | \| | | | **** -! **** | | | |\/| | ___/| | | | _ / | | / /\ \ | . ` | | | **** -! **** _| |_| | | | | | |__| | | \ \ | |/ ____ \| |\ | | | **** -! |_____|_| |_|_| \____/|_| \_\ |_/_/ \_\_| \_| |_| -! -! If you add a new H5S function you must add the function name to the -! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory. -! This is needed for Windows based operating systems. -! -!***** - -MODULE H5S - USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR, C_CHAR - USE H5GLOBAL - -CONTAINS -! -!****s* H5S/h5screate_simple_f -! -! NAME -! h5screate_simple_f -! -! PURPOSE -! Creates a new simple data space and opens it for access . -! -! 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 -! -! 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 h5screate_simple_f(rank, dims, space_id, hdferr, maxdims) - - IMPLICIT NONE - INTEGER, INTENT(IN) :: rank - INTEGER(HSIZE_T), INTENT(IN) :: dims(rank) - INTEGER(HID_T), INTENT(OUT) :: space_id - INTEGER, INTENT(OUT) :: hdferr - INTEGER(HSIZE_T), OPTIONAL, INTENT(IN) :: maxdims(rank) -!***** - INTEGER(HSIZE_T), ALLOCATABLE, DIMENSION(:) :: f_maxdims - - INTERFACE - INTEGER FUNCTION h5screate_simple_c(rank, dims, maxdims, space_id) BIND(C,NAME='h5screate_simple_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE - INTEGER, INTENT(IN) :: rank - INTEGER(HSIZE_T), INTENT(IN) :: dims(rank) - INTEGER(HSIZE_T), DIMENSION(:),INTENT(IN) :: maxdims(rank) - INTEGER(HID_T), INTENT(OUT) :: space_id - END FUNCTION h5screate_simple_c - END INTERFACE - - ALLOCATE (f_maxdims(rank), stat=hdferr) - IF (hdferr .NE. 0) THEN - hdferr = -1 - RETURN - ENDIF - IF (PRESENT(maxdims)) THEN - f_maxdims = maxdims - ELSE - f_maxdims = dims - ENDIF - hdferr = h5screate_simple_c(rank, dims, f_maxdims, space_id) - DEALLOCATE(f_maxdims) - - END SUBROUTINE h5screate_simple_f - -! -!****s* H5S/h5sclose_f -! -! NAME -! h5sclose_f -! -! PURPOSE -! Releases and terminates access to a dataspace. -! -! INPUTS -! space_id - identifier of dataspace to release -! 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 h5sclose_f(space_id, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier - INTEGER, INTENT(OUT) :: hdferr ! Error code -!***** - INTERFACE - INTEGER FUNCTION h5sclose_c(space_id) BIND(C,NAME='h5sclose_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id - END FUNCTION h5sclose_c - END INTERFACE - - hdferr = h5sclose_c(space_id) - - END SUBROUTINE h5sclose_f - -! -!****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 -! Possible values are: -! H5S_SCALAR_F -! H5S_SIMPLE_F -! H5S_NULL_F -! OUTPUTS -! space_id - Dataspace 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 6, 2001 -! -! NOTES -! - -! SOURCE - SUBROUTINE h5screate_f(classtype, space_id, hdferr) - IMPLICIT NONE - INTEGER, INTENT(IN) :: classtype - INTEGER(HID_T), INTENT(OUT) :: space_id - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5screate_c(classtype, space_id) BIND(C,NAME='h5screate_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER, INTENT(IN) :: classtype - INTEGER(HID_T), INTENT(OUT) :: space_id - END FUNCTION h5screate_c - END INTERFACE - - hdferr = h5screate_c(classtype, space_id) - - END SUBROUTINE h5screate_f - -! -!****s* H5S/h5scopy_f -! -! NAME -! h5scopy_f -! -! PURPOSE -! Creates an exact copy of a dataspace. -! -! INPUTS -! space_id - dataspace identifier -! OUTPUTS -! new_space_id - identifier of dataspace's copy -! 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 -! -! NOTES -! - -! SOURCE - SUBROUTINE h5scopy_f(space_id, new_space_id, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id - INTEGER(HID_T), INTENT(OUT) :: new_space_id - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5scopy_c(space_id, new_space_id) BIND(C,NAME='h5scopy_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id - INTEGER(HID_T), INTENT(OUT):: new_space_id - END FUNCTION h5scopy_c - END INTERFACE - - hdferr = h5scopy_c(space_id, new_space_id) - - END SUBROUTINE h5scopy_f - -! -!****s* H5S/h5sget_select_hyper_nblocks_f -! -! NAME -! h5sget_select_hyper_nblocks_f -! -! PURPOSE -! Get number of hyperslab blocks. -! -! 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 -! -! 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 - INTEGER(HSSIZE_T), INTENT(OUT) :: num_blocks - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5sget_select_hyper_nblocks_c (space_id, num_blocks) & - BIND(C,NAME='h5sget_select_hyper_nblocks_c') - IMPORT :: HID_T, HSSIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id - INTEGER(HSSIZE_T), INTENT(OUT) :: num_blocks - END FUNCTION h5sget_select_hyper_nblocks_c - END INTERFACE - - hdferr = h5sget_select_hyper_nblocks_c (space_id, num_blocks) - - END SUBROUTINE h5sget_select_hyper_nblocks_f - -! -!****s* H5S/h5sget_select_hyper_blocklist_f -! -! NAME -! h5sget_select_hyper_blocklist_f -! -! PURPOSE -! Gets the list of hyperslab blocks currently selected. -! -! 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 -! -! 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 - INTEGER(HID_T), INTENT(IN) :: space_id - INTEGER(HSIZE_T), INTENT(IN) :: startblock - INTEGER(HSIZE_T), INTENT(IN) :: num_blocks - INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: buf - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5sget_select_hyper_blocklist_c(space_id, startblock, & - num_blocks, buf ) BIND(C,NAME='h5sget_select_hyper_blocklist_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id - INTEGER(HSIZE_T), INTENT(IN) :: startblock - INTEGER(HSIZE_T), INTENT(IN) :: num_blocks - INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: buf - END FUNCTION h5sget_select_hyper_blocklist_c - END INTERFACE - - hdferr = h5sget_select_hyper_blocklist_c(space_id, startblock, num_blocks, buf ) - - END SUBROUTINE h5sget_select_hyper_blocklist_f - -! -!****s* H5S/h5sget_select_bounds_f -! -! NAME -! h5sget_select_bounds_f -! -! PURPOSE -! Gets the bounding box containing the current selection. -! -! INPUTS -! space_id - dataspace identifier -! -! OUTPUTS -! start - starting coordinates of bounding box -! end - ending coordinates of bounding box -! i.e., the coordinates of the diagonally opposite corner -! hdferr - Returns 0 if successful and -1 if fails -! OPTIONAL PARAMETERS -! NONE -! -! 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 - INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: start - INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: END - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5sget_select_bounds_c(space_id, start, end) & - BIND(C,NAME='h5sget_select_bounds_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id - INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: start - INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: END - END FUNCTION h5sget_select_bounds_c - END INTERFACE - - hdferr = h5sget_select_bounds_c(space_id, start, END) - - END SUBROUTINE h5sget_select_bounds_f - -! -!****s* H5S/h5sget_select_elem_npoints_f -! -! NAME -! h5sget_select_elem_npoints_f -! -! PURPOSE -! Gets the number of element points in the current selection -! -! 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 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 6, 2001 -! -! SOURCE - SUBROUTINE h5sget_select_elem_npoints_f(space_id, num_points, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id - INTEGER(HSSIZE_T), INTENT(OUT) :: num_points - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5sget_select_elem_npoints_c (space_id, num_points) BIND(C,NAME='h5sget_select_elem_npoints_c') - IMPORT :: HID_T, HSSIZE_T - INTEGER(HID_T), INTENT(IN) :: space_id - INTEGER(HSSIZE_T), INTENT(OUT) :: num_points - END FUNCTION h5sget_select_elem_npoints_c - END INTERFACE - - hdferr = h5sget_select_elem_npoints_c (space_id, num_points) - - END SUBROUTINE h5sget_select_elem_npoints_f - -! -!****s* H5S/h5sget_select_elem_pointlist_f -! -! NAME -! h5sget_select_elem_pointlist_f -! -! PURPOSE -! Gets the list of element points currently selected. -! -! 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 -! -! 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 - INTEGER(HID_T), INTENT(IN) :: space_id - INTEGER(HSIZE_T), INTENT(IN) :: startpoint - INTEGER(HSIZE_T), INTENT(IN) :: num_points - INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: buf - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5sget_select_elem_pointlist_c(space_id, startpoint, & - num_points, buf ) BIND(C,NAME='h5sget_select_elem_pointlist_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id - INTEGER(HSIZE_T), INTENT(IN) :: startpoint - INTEGER(HSIZE_T), INTENT(IN) :: num_points - INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: buf - END FUNCTION h5sget_select_elem_pointlist_c - END INTERFACE - - hdferr = h5sget_select_elem_pointlist_c(space_id, startpoint, & - num_points, buf ) - - END SUBROUTINE h5sget_select_elem_pointlist_f - -! -!****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 - 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 - - INTERFACE - INTEGER FUNCTION h5sselect_elements_c(space_id, OPERATOR,& - num_elements,c_c_coord) BIND(C,NAME='h5sselect_elements_c') - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id - INTEGER, INTENT(IN) :: OPERATOR - INTEGER(SIZE_T), INTENT(IN) :: num_elements - INTEGER(HSIZE_T),DIMENSION(*) :: c_c_coord - END FUNCTION h5sselect_elements_c - END INTERFACE - - ALLOCATE(c_coord(rank,num_elements), STAT = error) - IF (error.NE. 0) THEN - hdferr = -1 - RETURN - ENDIF - DO i = 1, rank - c_coord(i,:) = coord(rank-i+1, :) - 1 - 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 - -! -!****s* H5S/h5sselect_all_f -! -! NAME -! h5sselect_all_f -! -! PURPOSE -! Selects the entire dataspace. -! -! 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 -! -! 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 - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5sselect_all_c(space_id) BIND(C,NAME='h5sselect_all_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id - END FUNCTION h5sselect_all_c - END INTERFACE - - hdferr = h5sselect_all_c(space_id) - - END SUBROUTINE h5sselect_all_f - -! -!****s* H5S/h5sselect_none_f -! -! NAME -! h5sselect_none_f -! -! PURPOSE -! Resets the selection region to include no elements. -! -! 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 -! -! 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 - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5sselect_none_c(space_id) BIND(C,NAME='h5sselect_none_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id - END FUNCTION h5sselect_none_c - END INTERFACE - - hdferr = h5sselect_none_c(space_id) - - END SUBROUTINE h5sselect_none_f - -! -!****s* H5S/h5sselect_valid_f -! -! NAME -! h5sselect_valid_f -! -! PURPOSE -! Verifies that the selection is within the extent of -! the dataspace. -! -! INPUTS -! space_id - identifier for the dataspace for which -! selection is verified -! OUTPUTS -! status - TRUE if the selection is contained within -! the extent, FALSE otherwise. -! 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_valid_f(space_id, status, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id - LOGICAL, INTENT(OUT) :: status - INTEGER, INTENT(OUT) :: hdferr -!***** - INTEGER :: flag ! "TRUE/FALSE/ERROR" flag from C routine - - INTERFACE - INTEGER FUNCTION h5sselect_valid_c(space_id, flag) BIND(C,NAME='h5sselect_valid_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id - INTEGER :: flag - END FUNCTION h5sselect_valid_c - END INTERFACE - - hdferr = h5sselect_valid_c(space_id, flag) - status = .TRUE. - IF (flag .EQ. 0) status = .FALSE. - - END SUBROUTINE h5sselect_valid_f - -! -!****s* H5S/h5sget_simple_extent_npoints_f -! -! NAME -! h5sget_simple_extent_npoints_f -! -! PURPOSE -! Determines the number of elements in a dataspace. -! -! INPUTS -! space_id - dataspace identifier -! OUTPUTS -! npoints - number of elements in the dataspace -! 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 h5sget_simple_extent_npoints_f(space_id, npoints, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id - INTEGER(HSIZE_T), INTENT(OUT) :: npoints - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5sget_simple_extent_npoints_c( space_id, npoints) BIND(C,NAME='h5sget_simple_extent_npoints_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id - INTEGER(HSIZE_T), INTENT(OUT) :: npoints - END FUNCTION h5sget_simple_extent_npoints_c - END INTERFACE - - hdferr = h5sget_simple_extent_npoints_c( space_id, npoints) - - END SUBROUTINE h5sget_simple_extent_npoints_f - -! -!****s* H5S/h5sget_select_npoints_f -! -! NAME -! h5sget_select_npoints_f -! -! PURPOSE -! Determines the number of elements in a dataspace selection. -! -! 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 -! -! 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 - INTEGER(HSSIZE_T), INTENT(OUT) :: npoints - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5sget_select_npoints_c(space_id, npoints) BIND(C,NAME='h5sget_select_npoints_c') - IMPORT :: HID_T, HSSIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id - INTEGER(HSSIZE_T), INTENT(OUT) :: npoints - END FUNCTION h5sget_select_npoints_c - END INTERFACE - - hdferr = h5sget_select_npoints_c(space_id, npoints) - - END SUBROUTINE h5sget_select_npoints_f - -! -!****s* H5S/h5sget_simple_extent_ndims_f -! -! NAME -! h5sget_simple_extent_ndims_f -! -! PURPOSE -! Determines the dimensionality of a dataspace -! -! 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 -! -! 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 - INTEGER, INTENT(OUT) :: rank - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5sget_simple_extent_ndims_c(space_id, rank) BIND(C,NAME='h5sget_simple_extent_ndims_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id - INTEGER, INTENT(OUT) :: rank - END FUNCTION h5sget_simple_extent_ndims_c - END INTERFACE - - hdferr = h5sget_simple_extent_ndims_c(space_id, rank) - - END SUBROUTINE h5sget_simple_extent_ndims_f -! -!****s* H5S/h5sget_simple_extent_dims_f -! -! NAME -! h5sget_simple_extent_dims_f -! -! PURPOSE -! Retrieves dataspace dimension size and maximum size. -! -! 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 -! -! 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 - INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: dims - INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: maxdims - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5sget_simple_extent_dims_c(space_id, dims, maxdims) BIND(C,NAME='h5sget_simple_extent_dims_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id - INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: dims - INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: maxdims - END FUNCTION h5sget_simple_extent_dims_c - END INTERFACE - - hdferr = h5sget_simple_extent_dims_c(space_id, dims, maxdims) - - END SUBROUTINE h5sget_simple_extent_dims_f - -! -!****s* H5S/h5sget_simple_extent_type_f -! -! NAME -! h5sget_simple_extent_type_f -! -! PURPOSE -! Determine the current class of a dataspace -! -! INPUTS -! space_id - dataspace identifier -! OUTPUTS -! classtype - class type, possible values are: -! H5S_NO_CLASS_F -! H5S_SCALAR_F -! H5S_SIMPLE_F -! H5S_NULL_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 6, 2001 -! -! SOURCE - SUBROUTINE h5sget_simple_extent_type_f(space_id, classtype, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id - INTEGER, INTENT(OUT) :: classtype - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5sget_simple_extent_type_c(space_id, classtype) BIND(C,NAME='h5sget_simple_extent_type_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id - INTEGER, INTENT(OUT) :: classtype - END FUNCTION h5sget_simple_extent_type_c - END INTERFACE - - hdferr = h5sget_simple_extent_type_c(space_id, classtype) - - END SUBROUTINE h5sget_simple_extent_type_f - ! -!****s* H5S/h5sset_extent_simple_f -! -! NAME -! h5sset_extent_simple_f -! -! PURPOSE -! Sets or resets the size of an existing dataspace. -! -! 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 -! -! 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 - INTEGER(HID_T), INTENT(IN) :: space_id - INTEGER, INTENT(IN) :: rank - INTEGER(HSIZE_T), DIMENSION(rank), INTENT(IN) :: current_size - INTEGER(HSIZE_T), DIMENSION(rank), INTENT(IN) :: maximum_size - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5sset_extent_simple_c(space_id, rank, & - current_size, maximum_size) BIND(C,NAME='h5sset_extent_simple_c') - IMPORT :: HID_T, HSIZE_T - INTEGER(HID_T), INTENT(IN) :: space_id - INTEGER, INTENT(IN) :: rank - INTEGER(HSIZE_T), DIMENSION(rank), INTENT(IN) :: current_size - INTEGER(HSIZE_T), DIMENSION(rank), INTENT(IN) :: maximum_size - END FUNCTION h5sset_extent_simple_c - END INTERFACE - - hdferr = h5sset_extent_simple_c(space_id, rank, current_size, & - maximum_size) - - END SUBROUTINE h5sset_extent_simple_f -! -!****s* H5S/h5sis_simple_f -! -! NAME -! h5sis_simple_f -! -! PURPOSE -! Determines whether a dataspace is a simple dataspace. -! -! INPUTS -! space_id - dataspace identifier -! OUTPUTS -! status - flag to indicate if dataspace -! is simple or not (TRUE or FALSE) -! 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 h5sis_simple_f(space_id, status, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id - LOGICAL, INTENT(OUT) :: status - INTEGER, INTENT(OUT) :: hdferr -!***** - INTEGER :: flag ! "TRUE/FALSE/ERROR from C" - - INTERFACE - INTEGER FUNCTION h5sis_simple_c(space_id, flag) BIND(C,NAME='h5sis_simple_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id - INTEGER :: flag - END FUNCTION h5sis_simple_c - END INTERFACE - - hdferr = h5sis_simple_c(space_id, flag) - status = .TRUE. - IF (flag .EQ. 0) status = .FALSE. - - END SUBROUTINE h5sis_simple_f - -! -!****s* H5S/h5soffset_simple_f -! -! NAME -! h5soffset_simple_f -! -! PURPOSE -! Sets the offset of a simple dataspace. -! -! 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 -! -! 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 - INTEGER(HSSIZE_T), DIMENSION(*), INTENT(IN) :: offset - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5soffset_simple_c(space_id, offset) BIND(C,NAME='h5soffset_simple_c') - IMPORT :: HID_T, HSSIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id - INTEGER(HSSIZE_T), DIMENSION(*), INTENT(IN) :: offset - END FUNCTION h5soffset_simple_c - END INTERFACE - - hdferr = h5soffset_simple_c(space_id, offset) - - END SUBROUTINE h5soffset_simple_f - -! -!****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 -! -! 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 -! - -! SOURCE - SUBROUTINE h5sextent_copy_f(dest_space_id, source_space_id, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: dest_space_id - INTEGER(HID_T), INTENT(IN) :: source_space_id - INTEGER, INTENT(OUT) :: hdferr ! Error code -!***** - INTERFACE - INTEGER FUNCTION h5sextent_copy_c(dest_space_id, source_space_id) BIND(C,NAME='h5sextent_copy_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: dest_space_id - INTEGER(HID_T), INTENT(IN) :: source_space_id - END FUNCTION h5sextent_copy_c - END INTERFACE - - hdferr = h5sextent_copy_c(dest_space_id, source_space_id) - - END SUBROUTINE h5sextent_copy_f - -! -!****s* H5S/h5sset_extent_none_f -! -! NAME -! h5sset_extent_none_f -! -! PURPOSE -! Removes the extent from a dataspace. -! -! INPUTS -! space_id - dataspace 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). March 6, 2001 -! -! SOURCE - SUBROUTINE h5sset_extent_none_f(space_id, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5sset_extent_none_c(space_id) BIND(C,NAME='h5sset_extent_none_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id - END FUNCTION h5sset_extent_none_c - END INTERFACE - - hdferr = h5sset_extent_none_c(space_id) - - END SUBROUTINE h5sset_extent_none_f -! -!****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 -! H5S_SELECT_OR_F -! 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 - 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, INTENT(OUT) :: hdferr - INTEGER(HSIZE_T), DIMENSION(:), OPTIONAL, INTENT(IN) :: stride - INTEGER(HSIZE_T), DIMENSION(:), OPTIONAL, INTENT(IN) :: BLOCK -!***** - INTEGER(HSIZE_T), DIMENSION(:), ALLOCATABLE :: def_block - INTEGER(HSIZE_T), DIMENSION(:), ALLOCATABLE :: def_stride - INTEGER :: rank - INTEGER :: error1, error2 - - INTERFACE - INTEGER FUNCTION h5sselect_hyperslab_c(space_id, OPERATOR, & - start, count, stride, BLOCK) BIND(C,NAME='h5sselect_hyperslab_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE - 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(*), INTENT(IN) :: stride - INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: BLOCK - END FUNCTION h5sselect_hyperslab_c - END INTERFACE - - IF (PRESENT(stride).AND. PRESENT(BLOCK)) THEN - hdferr = h5sselect_hyperslab_c(space_id, OPERATOR, start, count, & - stride, BLOCK) - 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 - ! - 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 = h5sselect_hyperslab_c(space_id, OPERATOR, start, count, & - stride, def_block) - 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 = h5sselect_hyperslab_c(space_id, OPERATOR, start, count, & - def_stride, BLOCK) - 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 = h5sselect_hyperslab_c(space_id, OPERATOR, start, count, & - def_stride, def_block) - DEALLOCATE(def_block) - DEALLOCATE(def_stride) - - END SUBROUTINE h5sselect_hyperslab_f -! !$! -! !$!****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 - ! H5S_SELECT_AND_F - ! H5S_SELECT_XOR_F - ! H5S_SELECT_NOTB_F - ! H5S_SELECT_NOTA_F - ! H5S_SELECT_APPEND_F - ! H5S_SELECT_PREPEND_F - ! -! INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: start - ! Starting coordinates of the hyperslab -! 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 - ! Array of how many elements to move - ! 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 - -! 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 - ! -! 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 - ! H5S_SELECT_AND_F - ! H5S_SELECT_XOR_F - ! H5S_SELECT_NOTB_F - ! H5S_SELECT_NOTA_F - ! 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 - -! !$! -! !$!****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: - ! 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 - ! -! 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 identifier with selection -! OUTPUTS -! type - selection 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 - INTEGER, INTENT(OUT) :: TYPE - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5sget_select_type_c(space_id, TYPE) BIND(C,NAME='h5sget_select_type_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space_id - INTEGER, INTENT(OUT) :: TYPE - END FUNCTION h5sget_select_type_c - END INTERFACE - - hdferr = h5sget_select_type_c(space_id, TYPE) - RETURN - - END SUBROUTINE h5sget_select_type_f - -! -!****s* H5S/H5Sdecode_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 - Returns 0 if successful and -1 if fails -! -! AUTHOR -! M. Scot Breitenfeld -! March 26, 2008 -! SOURCE - SUBROUTINE h5sdecode_f(buf, obj_id, hdferr) - IMPLICIT NONE - CHARACTER(LEN=*), INTENT(IN) :: buf - INTEGER(HID_T), INTENT(OUT) :: obj_id - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5sdecode_c(buf, obj_id) BIND(C,NAME='h5sdecode_c') - IMPORT :: C_CHAR - IMPORT :: HID_T - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: buf - INTEGER(HID_T), INTENT(OUT) :: obj_id ! Object ID - END FUNCTION h5sdecode_c - END INTERFACE - - hdferr = h5sdecode_c(buf, obj_id) - - END SUBROUTINE h5sdecode_f - -! -!****s* H5S/H5Sencode_f -! -! NAME -! H5Sencode_f -! -! PURPOSE -! Encode a data space 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 - Returns 0 if successful and -1 if fails. -! -! 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 - CHARACTER(LEN=*), INTENT(OUT) :: buf - INTEGER(SIZE_T), INTENT(INOUT) :: nalloc - INTEGER, INTENT(OUT) :: hdferr -!***** - - INTERFACE - INTEGER FUNCTION h5sencode_c(buf, obj_id, nalloc) BIND(C,NAME='h5sencode_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T - INTEGER(HID_T), INTENT(IN) :: obj_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: buf - INTEGER(SIZE_T), INTENT(INOUT) :: nalloc - END FUNCTION h5sencode_c - END INTERFACE - - hdferr = h5sencode_c(buf, obj_id, nalloc) - - END SUBROUTINE h5sencode_f - -!****s* H5S/h5sextent_equal_f -! -! NAME -! h5sextent_equal_f -! -! PURPOSE -! Determines whether two dataspace extents are equal. -! -! 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 -! -! SOURCE - SUBROUTINE h5sextent_equal_f(space1_id, space2_id, equal, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space1_id - INTEGER(HID_T), INTENT(IN) :: space2_id - LOGICAL, INTENT(OUT) :: Equal - INTEGER, INTENT(OUT) :: hdferr -!***** - INTEGER(HID_T) :: c_equal - - INTERFACE - INTEGER FUNCTION h5sextent_equal_c(space1_id, space2_id, c_equal) BIND(C,NAME='h5sextent_equal_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: space1_id - INTEGER(HID_T), INTENT(IN) :: space2_id - INTEGER(HID_T) :: c_equal - END FUNCTION h5sextent_equal_c - END INTERFACE - - hdferr = h5sextent_equal_c(space1_id, space2_id, c_equal) - equal = .FALSE. - IF(c_equal.GT.0) equal = .TRUE. - - END SUBROUTINE h5sextent_equal_f - -END MODULE H5S diff --git a/fortran/src/H5Sff.f90 b/fortran/src/H5Sff.f90 new file mode 100644 index 0000000..c493d46 --- /dev/null +++ b/fortran/src/H5Sff.f90 @@ -0,0 +1,1875 @@ +!****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. * +! 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 H5S function you must add the function name to the +! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory. +! This is needed for Windows based operating systems. +! +!***** + +MODULE H5S + USE H5GLOBAL + +CONTAINS + +! +!****s* H5S/h5screate_simple_f +! +! NAME +! h5screate_simple_f +! +! PURPOSE +! Creates a new simple data space and opens it for access . +! +! 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 +! +! 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 h5screate_simple_f(rank, dims, space_id, hdferr, maxdims) + + IMPLICIT NONE + INTEGER, INTENT(IN) :: rank ! Number of dataspace dimensions + INTEGER(HSIZE_T), INTENT(IN) :: dims(rank) + ! Array with the dimension + ! sizes + INTEGER(HID_T), INTENT(OUT) :: space_id ! Dataspace identifier + INTEGER, INTENT(OUT) :: hdferr ! Error code + INTEGER(HSIZE_T), OPTIONAL, INTENT(IN) :: maxdims(rank) + ! Array with the maximum + ! dimension sizes +!***** + INTEGER(HSIZE_T), ALLOCATABLE, DIMENSION(:) :: f_maxdims + + INTERFACE + INTEGER FUNCTION h5screate_simple_c(rank, dims, maxdims, space_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SCREATE_SIMPLE_C'::h5screate_simple_c + !DEC$ENDIF + INTEGER, INTENT(IN) :: rank + INTEGER(HSIZE_T), INTENT(IN) :: dims(rank) + INTEGER(HSIZE_T), DIMENSION(:),INTENT(IN) :: maxdims(rank) + INTEGER(HID_T), INTENT(OUT) :: space_id + END FUNCTION h5screate_simple_c + END INTERFACE + + allocate (f_maxdims(rank), stat=hdferr) + if (hdferr .NE. 0) then + hdferr = -1 + return + endif + if (present(maxdims)) then + f_maxdims = maxdims + else + f_maxdims = dims + endif + hdferr = h5screate_simple_c(rank, dims, f_maxdims, space_id) + deallocate(f_maxdims) + + END SUBROUTINE h5screate_simple_f + +! +!****s* H5S/h5sclose_f +! +! NAME +! h5sclose_f +! +! PURPOSE +! Releases and terminates access to a dataspace. +! +! INPUTS +! space_id - identifier of dataspace to release +! 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 h5sclose_f(space_id, hdferr) + IMPLICIT NONE + INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + INTERFACE + INTEGER FUNCTION h5sclose_c(space_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SCLOSE_C'::h5sclose_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: space_id + END FUNCTION h5sclose_c + END INTERFACE + + hdferr = h5sclose_c(space_id) + + END SUBROUTINE h5sclose_f + +! +!****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 - 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 +! +! NOTES +! + +! SOURCE + SUBROUTINE h5screate_f(classtype, space_id, hdferr) + IMPLICIT NONE + INTEGER, INTENT(IN) :: classtype ! The type of the dataspace + ! to be created. + ! Possible values are: + ! H5S_SCALAR_F (0) + ! H5S_SIMPLE_F(1) + ! H5S_NULL_F(2) + INTEGER(HID_T), INTENT(OUT) :: space_id ! Dataspace identifier + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + INTERFACE + INTEGER FUNCTION h5screate_c(classtype, space_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SCREATE_C'::h5screate_c + !DEC$ENDIF + INTEGER, INTENT(IN) :: classtype + INTEGER(HID_T), INTENT(OUT) :: space_id + END FUNCTION h5screate_c + END INTERFACE + + hdferr = h5screate_c(classtype, space_id) + + END SUBROUTINE h5screate_f + +! +!****s* H5S/h5scopy_f +! +! NAME +! h5scopy_f +! +! PURPOSE +! Creates an exact copy of a dataspace. +! +! INPUTS +! space_id - dataspace identifier +! OUTPUTS +! new_space_id - identifier of dataspace's copy +! 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 +! +! NOTES +! + +! 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 +!***** + INTERFACE + INTEGER FUNCTION h5scopy_c(space_id, new_space_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SCOPY_C'::h5scopy_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: space_id + INTEGER(HID_T), INTENT(OUT):: new_space_id + END FUNCTION h5scopy_c + END INTERFACE + + hdferr = h5scopy_c(space_id, new_space_id) + + END SUBROUTINE h5scopy_f + +! +!****s* H5S/h5sget_select_hyper_nblocks_f +! +! NAME +! h5sget_select_hyper_nblocks_f +! +! PURPOSE +! Get number of hyperslab blocks. +! +! 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 +! +! 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 + INTEGER(HSSIZE_T), INTENT(OUT) :: num_blocks + !number of hyperslab blocks + !in the current dataspace + !selection + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + 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$ENDIF + INTEGER(HID_T), INTENT(IN) :: space_id + INTEGER(HSSIZE_T), INTENT(OUT) :: num_blocks + END FUNCTION h5sget_select_hyper_nblocks_c + END INTERFACE + + hdferr = h5sget_select_hyper_nblocks_c (space_id, num_blocks) + + END SUBROUTINE h5sget_select_hyper_nblocks_f + +! +!****s* H5S/h5sget_select_hyper_blocklist_f +! +! NAME +! h5sget_select_hyper_blocklist_f +! +! PURPOSE +! Gets the list of hyperslab blocks currently selected. +! +! 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 +! +! 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 + INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier + INTEGER(HSIZE_T), INTENT(IN) :: startblock + !Hyperslab block to start with. + INTEGER(HSIZE_T), INTENT(IN) :: num_blocks + !number of hyperslab blocks + !to get in the current dataspace + !selection + INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: buf + !List of hyperslab blocks selected + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + + INTERFACE + INTEGER FUNCTION h5sget_select_hyper_blocklist_c(space_id, startblock, & + num_blocks, buf ) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SGET_SELECT_HYPER_BLOCKLIST_C'::h5sget_select_hyper_blocklist_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: space_id + INTEGER(HSIZE_T), INTENT(IN) :: startblock + INTEGER(HSIZE_T), INTENT(IN) :: num_blocks + INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: buf + END FUNCTION h5sget_select_hyper_blocklist_c + END INTERFACE + + + hdferr = h5sget_select_hyper_blocklist_c(space_id, startblock, & + num_blocks, buf ) + + END SUBROUTINE h5sget_select_hyper_blocklist_f + +! +!****s* H5S/h5sget_select_bounds_f +! +! NAME +! h5sget_select_bounds_f +! +! PURPOSE +! Gets the bounding box containing the current selection. +! +! INPUTS +! space_id - dataspace identifier +! +! 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 +! +! 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 + INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: start + ! Starting coordinates of the bounding box. + INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: END + !Ending coordinates of the bounding box, + !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 + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SGET_SELECT_BOUNDS_C'::h5sget_select_bounds_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: space_id + INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: start + INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: END + END FUNCTION h5sget_select_bounds_c + END INTERFACE + + hdferr = h5sget_select_bounds_c(space_id, start, END) + + END SUBROUTINE h5sget_select_bounds_f + +! +!****s* H5S/h5sget_select_elem_npoints_f +! +! NAME +! h5sget_select_elem_npoints_f +! +! PURPOSE +! Gets the number of element points in the current selection +! +! 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 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 6, 2001 +! +! SOURCE + SUBROUTINE h5sget_select_elem_npoints_f(space_id, num_points, hdferr) + IMPLICIT NONE + INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier + INTEGER(HSSIZE_T), INTENT(OUT) :: num_points + !number of element points + !in the current dataspace + !selection + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + 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$ENDIF + INTEGER(HID_T), INTENT(IN) :: space_id + INTEGER(HSSIZE_T), INTENT(OUT) :: num_points + END FUNCTION h5sget_select_elem_npoints_c + END INTERFACE + + hdferr = h5sget_select_elem_npoints_c (space_id, num_points) + + END SUBROUTINE h5sget_select_elem_npoints_f + +! +!****s* H5S/h5sget_select_elem_pointlist_f +! +! NAME +! h5sget_select_elem_pointlist_f +! +! PURPOSE +! Gets the list of element points currently selected. +! +! 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 +! +! 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 + INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier + INTEGER(HSIZE_T), INTENT(IN) :: startpoint + !Element point to start with. + INTEGER(HSIZE_T), INTENT(IN) :: num_points + !Number of element points to get + 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$ENDIF + INTEGER(HID_T), INTENT(IN) :: space_id + INTEGER(HSIZE_T), INTENT(IN) :: startpoint + INTEGER(HSIZE_T), INTENT(IN) :: num_points + INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: buf + END FUNCTION h5sget_select_elem_pointlist_c + END INTERFACE + + hdferr = h5sget_select_elem_pointlist_c(space_id, startpoint, & + num_points, buf ) + + END SUBROUTINE h5sget_select_elem_pointlist_f + +! +!****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 + 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 + + INTERFACE + INTEGER FUNCTION h5sselect_elements_c(space_id, OPERATOR,& + num_elements,c_c_coord) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SSELECT_ELEMENTS_C'::h5sselect_elements_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: space_id + INTEGER, INTENT(IN) :: OPERATOR + INTEGER(SIZE_T), INTENT(IN) :: num_elements + INTEGER(HSIZE_T),DIMENSION(*) :: c_c_coord + END FUNCTION h5sselect_elements_c + END INTERFACE + + ALLOCATE(c_coord(rank,num_elements), STAT = error) + IF (error.NE. 0) THEN + hdferr = -1 + RETURN + ENDIF + DO i = 1, rank + c_coord(i,:) = coord(rank-i+1, :) - 1 + 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 + +! +!****s* H5S/h5sselect_all_f +! +! NAME +! h5sselect_all_f +! +! PURPOSE +! Selects the entire dataspace. +! +! 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 +! +! 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 +!***** + INTERFACE + INTEGER FUNCTION h5sselect_all_c(space_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SSELECT_ALL_C'::h5sselect_all_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: space_id + END FUNCTION h5sselect_all_c + END INTERFACE + + hdferr = h5sselect_all_c(space_id) + + END SUBROUTINE h5sselect_all_f + +! +!****s* H5S/h5sselect_none_f +! +! NAME +! h5sselect_none_f +! +! PURPOSE +! Resets the selection region to include no elements. +! +! 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 +! +! 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 +!***** + INTERFACE + INTEGER FUNCTION h5sselect_none_c(space_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SSELECT_NONE_C'::h5sselect_none_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: space_id + END FUNCTION h5sselect_none_c + END INTERFACE + + hdferr = h5sselect_none_c(space_id) + + END SUBROUTINE h5sselect_none_f + +! +!****s* H5S/h5sselect_valid_f +! +! NAME +! h5sselect_valid_f +! +! PURPOSE +! Verifies that the selection is within the extent of +! the dataspace. +! +! INPUTS +! space_id - identifier for the dataspace for which +! selection is verified +! 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_valid_f(space_id, status, hdferr) + IMPLICIT NONE + INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier + LOGICAL, INTENT(OUT) :: status ! TRUE if the selection is + ! contained within the extent, + ! FALSE otherwise. + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + INTEGER :: flag ! "TRUE/FALSE/ERROR" flag from C routine + + INTERFACE + INTEGER FUNCTION h5sselect_valid_c(space_id, flag) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SSELECT_VALID_C'::h5sselect_valid_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: space_id + INTEGER :: flag + END FUNCTION h5sselect_valid_c + END INTERFACE + + hdferr = h5sselect_valid_c(space_id, flag) + status = .TRUE. + if (flag .EQ. 0) status = .FALSE. + + END SUBROUTINE h5sselect_valid_f + +! +!****s* H5S/h5sget_simple_extent_npoints_f +! +! NAME +! h5sget_simple_extent_npoints_f +! +! PURPOSE +! Determines the number of elements in a dataspace. +! +! INPUTS +! space_id - dataspace identifier +! OUTPUTS +! npoints - number of elements in the dataspace +! 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 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 +!***** + INTERFACE + INTEGER FUNCTION h5sget_simple_extent_npoints_c( space_id, npoints) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SGET_SIMPLE_EXTENT_NPOINTS_C'::h5sget_simple_extent_npoints_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: space_id + INTEGER(HSIZE_T), INTENT(OUT) :: npoints + END FUNCTION h5sget_simple_extent_npoints_c + END INTERFACE + + hdferr = h5sget_simple_extent_npoints_c( space_id, npoints) + + END SUBROUTINE h5sget_simple_extent_npoints_f + +! +!****s* H5S/h5sget_select_npoints_f +! +! NAME +! h5sget_select_npoints_f +! +! PURPOSE +! Determines the number of elements in a dataspace selection. +! +! 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 +! +! 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 +!***** + INTERFACE + INTEGER FUNCTION h5sget_select_npoints_c(space_id, npoints) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SGET_SELECT_NPOINTS_C'::h5sget_select_npoints_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: space_id + INTEGER(HSSIZE_T), INTENT(OUT) :: npoints + END FUNCTION h5sget_select_npoints_c + END INTERFACE + + hdferr = h5sget_select_npoints_c(space_id, npoints) + + END SUBROUTINE h5sget_select_npoints_f + +! +!****s* H5S/h5sget_simple_extent_ndims_f +! +! NAME +! h5sget_simple_extent_ndims_f +! +! PURPOSE +! Determines the dimensionality of a dataspace +! +! 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 +! +! 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 +!***** + INTERFACE + INTEGER FUNCTION h5sget_simple_extent_ndims_c(space_id, rank) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SGET_SIMPLE_EXTENT_NDIMS_C'::h5sget_simple_extent_ndims_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: space_id + INTEGER, INTENT(OUT) :: rank + END FUNCTION h5sget_simple_extent_ndims_c + END INTERFACE + + hdferr = h5sget_simple_extent_ndims_c(space_id, rank) + + END SUBROUTINE h5sget_simple_extent_ndims_f +! +!****s* H5S/h5sget_simple_extent_dims_f +! +! NAME +! h5sget_simple_extent_dims_f +! +! PURPOSE +! Retrieves dataspace dimension size and maximum size. +! +! 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 +! +! 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 + INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: dims + ! Array to store dimension sizes + INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: maxdims + ! Array to store max dimension + ! sizes + INTEGER, INTENT(OUT) :: hdferr ! Error code: -1 on failure, + ! number of dimensions on + ! on success +!***** + INTERFACE + INTEGER FUNCTION h5sget_simple_extent_dims_c(space_id, dims, maxdims) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SGET_SIMPLE_EXTENT_DIMS_C'::h5sget_simple_extent_dims_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: space_id + INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: dims + INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: maxdims + END FUNCTION h5sget_simple_extent_dims_c + END INTERFACE + + hdferr = h5sget_simple_extent_dims_c(space_id, dims, maxdims) + + END SUBROUTINE h5sget_simple_extent_dims_f + +! +!****s* H5S/h5sget_simple_extent_type_f +! +! NAME +! h5sget_simple_extent_type_f +! +! PURPOSE +! Determine the current class of a dataspace +! +! 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 +! +! 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 + INTEGER, INTENT(OUT) :: classtype ! Class type , possible values + ! are: + ! H5S_NO_CLASS_F (-1) + ! H5S_SCALAR_F (0) + ! H5S_SIMPLE_F (1) + ! H5S_NULL_F (2) + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + INTERFACE + INTEGER FUNCTION h5sget_simple_extent_type_c(space_id, classtype) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SGET_SIMPLE_EXTENT_TYPE_C'::h5sget_simple_extent_type_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: space_id + INTEGER, INTENT(OUT) :: classtype + END FUNCTION h5sget_simple_extent_type_c + END INTERFACE + + hdferr = h5sget_simple_extent_type_c(space_id, classtype) + + END SUBROUTINE h5sget_simple_extent_type_f +! +!****s* H5S/h5sset_extent_simple_f +! +! NAME +! h5sset_extent_simple_f +! +! PURPOSE +! Sets or resets the size of an existing dataspace. +! +! 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 +! +! 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 + INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier + INTEGER, INTENT(IN) :: rank ! Dataspace rank + INTEGER(HSIZE_T), DIMENSION(rank), INTENT(IN) :: current_size + ! Array with the new sizes + ! of dimensions + INTEGER(HSIZE_T), DIMENSION(rank), INTENT(IN) :: maximum_size + ! Array with the new maximum + ! sizes of dimensions + ! sizes + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + INTERFACE + INTEGER FUNCTION h5sset_extent_simple_c(space_id, rank, & + current_size, maximum_size) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SSET_EXTENT_SIMPLE_C'::h5sset_extent_simple_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: space_id + INTEGER, INTENT(IN) :: rank + INTEGER(HSIZE_T), DIMENSION(rank), INTENT(IN) :: current_size + INTEGER(HSIZE_T), DIMENSION(rank), INTENT(IN) :: maximum_size + END FUNCTION h5sset_extent_simple_c + END INTERFACE + + hdferr = h5sset_extent_simple_c(space_id, rank, current_size, & + maximum_size) + + END SUBROUTINE h5sset_extent_simple_f +! +!****s* H5S/h5sis_simple_f +! +! NAME +! h5sis_simple_f +! +! PURPOSE +! Determines whether a dataspace is a simple dataspace. +! +! 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 +! +! 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 + LOGICAL, INTENT(OUT) :: status ! Flag, idicates if dataspace + ! is simple or not ( TRUE or + ! FALSE) + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + INTEGER :: flag ! "TRUE/FALSE/ERROR from C" + + INTERFACE + INTEGER FUNCTION h5sis_simple_c(space_id, flag) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SIS_SIMPLE_C'::h5sis_simple_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: space_id + INTEGER :: flag + END FUNCTION h5sis_simple_c + END INTERFACE + + hdferr = h5sis_simple_c(space_id, flag) + status = .TRUE. + if (flag .EQ. 0) status = .FALSE. + + END SUBROUTINE h5sis_simple_f + +! +!****s* H5S/h5soffset_simple_f +! +! NAME +! h5soffset_simple_f +! +! PURPOSE +! Sets the offset of a simple dataspace. +! +! 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 +! +! 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 + INTEGER(HSSIZE_T), DIMENSION(*), INTENT(IN) :: offset + ! The offset at which to position + ! the selection + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + INTERFACE + INTEGER FUNCTION h5soffset_simple_c(space_id, offset) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SOFFSET_SIMPLE_C'::h5soffset_simple_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: space_id + INTEGER(HSSIZE_T), DIMENSION(*), INTENT(IN) :: offset + END FUNCTION h5soffset_simple_c + END INTERFACE + + hdferr = h5soffset_simple_c(space_id, offset) + + END SUBROUTINE h5soffset_simple_f + +! +!****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 +! +! 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 +! + +! 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 + ! dataspace + INTEGER(HID_T), INTENT(IN) :: source_space_id ! Identifier of source + ! dataspace + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + INTERFACE + INTEGER FUNCTION h5sextent_copy_c(dest_space_id, source_space_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SEXTENT_COPY_C'::h5sextent_copy_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: dest_space_id + INTEGER(HID_T), INTENT(IN) :: source_space_id + END FUNCTION h5sextent_copy_c + END INTERFACE + + hdferr = h5sextent_copy_c(dest_space_id, source_space_id) + + END SUBROUTINE h5sextent_copy_f + +! +!****s* H5S/h5sset_extent_none_f +! +! NAME +! h5sset_extent_none_f +! +! PURPOSE +! Removes the extent from a dataspace. +! +! INPUTS +! space_id - dataspace 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). 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 +!***** + INTERFACE + INTEGER FUNCTION h5sset_extent_none_c(space_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SSET_EXTENT_NONE_C'::h5sset_extent_none_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: space_id + END FUNCTION h5sset_extent_none_c + END INTERFACE + + hdferr = h5sset_extent_none_c(space_id) + + END SUBROUTINE h5sset_extent_none_f + +! +!****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 + 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(HSIZE_T), DIMENSION(*), INTENT(IN) :: start + ! Starting coordinates of the hyperslab + INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: count + ! Number of blocks to select + ! from dataspace + 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 + ! 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 h5sselect_hyperslab_c(space_id, operator, & + start, count, stride, block) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SSELECT_HYPERSLAB_C'::h5sselect_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(*), INTENT(IN) :: stride + INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: block + END FUNCTION h5sselect_hyperslab_c + END INTERFACE + + if (present(stride).and. present(block)) then + hdferr = h5sselect_hyperslab_c(space_id, operator, start, count, & + stride, block) + 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 + ! + 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 = h5sselect_hyperslab_c(space_id, operator, start, count, & + stride, def_block) + 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 = h5sselect_hyperslab_c(space_id, operator, start, count, & + def_stride, block) + 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 = h5sselect_hyperslab_c(space_id, operator, start, count, & + def_stride, def_block) + deallocate(def_block) + deallocate(def_stride) + + END SUBROUTINE h5sselect_hyperslab_f +! !$! +! !$!****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 + ! H5S_SELECT_AND_F + ! H5S_SELECT_XOR_F + ! H5S_SELECT_NOTB_F + ! H5S_SELECT_NOTA_F + ! H5S_SELECT_APPEND_F + ! H5S_SELECT_PREPEND_F + ! +! INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: start + ! Starting coordinates of the hyperslab +! 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 + ! Array of how many elements to move + ! 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 + +! 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 + ! +! 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 + ! H5S_SELECT_AND_F + ! H5S_SELECT_XOR_F + ! H5S_SELECT_NOTB_F + ! H5S_SELECT_NOTA_F + ! 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 + +! !$! +! !$!****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: + ! 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 + ! +! 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 + INTEGER, INTENT(OUT) :: type ! Selection type + ! H5S_SEL_ERROR_F + ! H5S_SEL_NONE_F + ! H5S_SEL_POINTS_F + ! 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 + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SGET_SELECT_TYPE_C'::h5sget_select_type_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: space_id + INTEGER, INTENT(OUT) :: type + END FUNCTION h5sget_select_type_c + END INTERFACE + + hdferr = h5sget_select_type_c(space_id, type) + return + + END SUBROUTINE h5sget_select_type_f + +! +!****s* H5S/H5Sdecode_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 - Returns 0 if successful and -1 if fails +! +! 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 + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SDECODE_C'::h5sdecode_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: buf + CHARACTER(LEN=*), INTENT(IN) :: buf + INTEGER(HID_T), INTENT(OUT) :: obj_id ! Object ID + END FUNCTION h5sdecode_c + END INTERFACE + + hdferr = h5sdecode_c(buf, obj_id) + + END SUBROUTINE h5sdecode_f + +! +!****s* H5S/H5Sencode_f +! +! NAME +! H5Sencode_f +! +! PURPOSE +! Encode a data space 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 - Returns 0 if successful and -1 if fails. +! +! 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) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SENCODE_C'::h5sencode_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: buf + INTEGER(HID_T), INTENT(IN) :: obj_id + CHARACTER(LEN=*), INTENT(OUT) :: buf + INTEGER(SIZE_T), INTENT(INOUT) :: nalloc + END FUNCTION h5sencode_c + END INTERFACE + + hdferr = h5sencode_c(buf, obj_id, nalloc) + + END SUBROUTINE h5sencode_f + +!****s* H5S/h5sextent_equal_f +! +! NAME +! h5sextent_equal_f +! +! PURPOSE +! Determines whether two dataspace extents are equal. +! +! 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 +! +! 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 + INTEGER FUNCTION h5sextent_equal_c(space1_id, space2_id, c_equal) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5SEXTENT_EQUAL_C'::h5sextent_equal_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: space1_id + INTEGER(HID_T), INTENT(IN) :: space2_id + INTEGER(HID_T) :: c_equal + END FUNCTION h5sextent_equal_c + END INTERFACE + + hdferr = h5sextent_equal_c(space1_id, space2_id, c_equal) + + + equal = .FALSE. + IF(c_equal.GT.0) equal = .TRUE. + + + END SUBROUTINE h5sextent_equal_f + +END MODULE H5S diff --git a/fortran/src/H5Tf.c b/fortran/src/H5Tf.c index b6389258..7e1aa42 100644 --- a/fortran/src/H5Tf.c +++ b/fortran/src/H5Tf.c @@ -1,6 +1,6 @@ /****h* H5Tf/H5Tf * PURPOSE - * This file contains C stubs for H5T Fortran APIs + * This file contains C stubs for H5T Fortran APIs * * COPYRIGHT * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -23,29 +23,30 @@ #include "H5f90.h" + /****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 + * 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 + * type_id - dataset identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Saturday, August 14, 1999 + * Saturday, August 14, 1999 * HISTORY * * SOURCE */ int_f -h5topen_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *type_id, hid_t_f *tapl_id) +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; @@ -74,24 +75,25 @@ done: return ret_value; } + /****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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Saturday, August 14, 1999 + * Saturday, August 14, 1999 * HISTORY * * - Added passing optional parameters for version 1.8 @@ -99,7 +101,7 @@ done: * SOURCE */ int_f -h5tcommit_c(hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *type_id, +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) /******/ { @@ -128,19 +130,19 @@ done: * PURPOSE * Call H5Tclose to close the datatype * INPUTS - * type_id - identifier of the datatype to be closed + * type_id - identifier of the datatype to be closed * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Saturday, August 14, 1999 + * Saturday, August 14, 1999 * HISTORY * * SOURCE */ int_f -h5tclose_c ( hid_t_f *type_id ) +nh5tclose_c ( hid_t_f *type_id ) /******/ { int ret_value = 0; @@ -151,27 +153,28 @@ h5tclose_c ( hid_t_f *type_id ) return ret_value; } + /****if* H5Tf/h5tcopy_c * NAME * h5tcopy_c * PURPOSE * Call H5Tcopy to copy a datatype * INPUTS - * type_id - identifier of the datatype to be copied + * type_id - identifier of the datatype to be copied * OUTPUTS - * new_type_id - identifier of the new datatype + * new_type_id - identifier of the new datatype * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Saturday, August 14, 1999 + * Saturday, August 14, 1999 * HISTORY * * SOURCE */ int_f -h5tcopy_c ( hid_t_f *type_id , hid_t_f *new_type_id) +nh5tcopy_c ( hid_t_f *type_id , hid_t_f *new_type_id) /******/ { int ret_value = 0; @@ -191,22 +194,22 @@ h5tcopy_c ( hid_t_f *type_id , hid_t_f *new_type_id) * PURPOSE * Call H5Tequal to copy a datatype * INPUTS - * type1_id - datatype identifier - * type2_id - datatype identifier + * type1_id - datatype identifier + * type2_id - datatype identifier * OUTPUTS - * c_flag - flag; indicates if two datatypes are equal or not. + * c_flag - flag; indicates if two datatypes are equal or not. * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Tuesday, February 22, 2000 + * Tuesday, February 22, 2000 * HISTORY * * SOURCE */ int_f -h5tequal_c ( hid_t_f *type1_id , hid_t_f *type2_id, int_f *c_flag) +nh5tequal_c ( hid_t_f *type1_id , hid_t_f *type2_id, int_f *c_flag) /******/ { int ret_value = -1; @@ -254,7 +257,7 @@ h5tequal_c ( hid_t_f *type1_id , hid_t_f *type2_id, int_f *c_flag) */ int_f -h5tget_class_c ( hid_t_f *type_id , int_f *classtype) +nh5tget_class_c ( hid_t_f *type_id , int_f *classtype) /******/ { int ret_value = 0; @@ -290,24 +293,24 @@ h5tget_class_c ( hid_t_f *type_id , int_f *classtype) * PURPOSE * Call H5Tget_order to determine byte order * INPUTS - * type_id - identifier of the dataspace + * type_id - identifier of the dataspace * OUTPUTS - * order; possible values are: + * 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 + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Saturday, August 14, 1999 + * Saturday, August 14, 1999 * HISTORY * * SOURCE */ int_f -h5tget_order_c ( hid_t_f *type_id , int_f *order) +nh5tget_order_c ( hid_t_f *type_id , int_f *order) /******/ { int ret_value = -1; @@ -334,23 +337,23 @@ h5tget_order_c ( hid_t_f *type_id , int_f *order) * PURPOSE * Call H5Tset_order to set byte order * INPUTS - * type_id - identifier of the dataspace - * order; possible values are: + * 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 + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Saturday, August 14, 1999 + * Saturday, August 14, 1999 * HISTORY * * SOURCE */ int_f -h5tset_order_c ( hid_t_f *type_id , int_f *order) +nh5tset_order_c ( hid_t_f *type_id , int_f *order) /******/ { int ret_value = 0; @@ -375,21 +378,21 @@ h5tset_order_c ( hid_t_f *type_id , int_f *order) * PURPOSE * Call H5Tget_size to get size of the datatype * INPUTS - * type_id - identifier of the dataspace + * type_id - identifier of the dataspace * OUTPUTS - * size (in bytes) + * size (in bytes) * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Saturday, August 14, 1999 + * Saturday, August 14, 1999 * HISTORY * * SOURCE */ int_f -h5tget_size_c ( hid_t_f *type_id , size_t_f *size) +nh5tget_size_c ( hid_t_f *type_id , size_t_f *size) /******/ { int ret_value = -1; @@ -410,21 +413,21 @@ h5tget_size_c ( hid_t_f *type_id , size_t_f *size) * PURPOSE * Call H5Tget_size to get size of the datatype * INPUTS - * type_id - identifier of the dataspace + * type_id - identifier of the dataspace * OUTPUTS - * size (in bytes) + * size (in bytes) * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Saturday, August 14, 1999 + * Saturday, August 14, 1999 * HISTORY * * SOURCE */ int_f -h5tset_size_c ( hid_t_f *type_id , size_t_f *size) +nh5tset_size_c ( hid_t_f *type_id , size_t_f *size) /******/ { int ret_value = -1; @@ -446,21 +449,21 @@ h5tset_size_c ( hid_t_f *type_id , size_t_f *size) * PURPOSE * Call H5Tget_precision to get precision of the datatype * INPUTS - * type_id - identifier of the dataspace + * type_id - identifier of the dataspace * OUTPUTS - * precision - number of significant bits + * precision - number of significant bits * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Tuesday, January 25, 2000 + * Tuesday, January 25, 2000 * HISTORY * * SOURCE */ int_f -h5tget_precision_c ( hid_t_f *type_id , size_t_f *precision) +nh5tget_precision_c ( hid_t_f *type_id , size_t_f *precision) /******/ { int ret_value = -1; @@ -481,20 +484,20 @@ h5tget_precision_c ( hid_t_f *type_id , size_t_f *precision) * PURPOSE * Call H5Tset_precision to set precision of the datatype * INPUTS - * type_id - identifier of the dataspace - * precision - number of significant bits + * type_id - identifier of the dataspace + * precision - number of significant bits * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Tuesday, January 25, 2000 + * Tuesday, January 25, 2000 * HISTORY * * SOURCE */ int_f -h5tset_precision_c ( hid_t_f *type_id , size_t_f *precision) +nh5tset_precision_c ( hid_t_f *type_id , size_t_f *precision) /******/ { int ret_value = -1; @@ -515,23 +518,23 @@ h5tset_precision_c ( hid_t_f *type_id , size_t_f *precision) * h5tget_offset_c * PURPOSE * Call H5Tget_offset to get bit offset of the first - * significant bit of the datatype + * significant bit of the datatype * INPUTS - * type_id - identifier of the dataspace + * type_id - identifier of the dataspace * OUTPUTS - * offset - bit offset of the first significant bit + * offset - bit offset of the first significant bit * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Tuesday, January 25, 2000 + * Tuesday, January 25, 2000 * HISTORY * * SOURCE */ int_f -h5tget_offset_c ( hid_t_f *type_id , size_t_f *offset) +nh5tget_offset_c ( hid_t_f *type_id , size_t_f *offset) /******/ { int ret_value = -1; @@ -552,22 +555,22 @@ h5tget_offset_c ( hid_t_f *type_id , size_t_f *offset) * h5tset_offset_c * PURPOSE * Call H5Tset_offset to set bit offset of the first - * significant bit of the datatype + * significant bit of the datatype * INPUTS - * type_id - identifier of the dataspace - * offset - bit offset of the first significant bit + * type_id - identifier of the dataspace + * offset - bit offset of the first significant bit * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Tuesday, January 25, 2000 + * Tuesday, January 25, 2000 * HISTORY * * SOURCE */ int_f -h5tset_offset_c ( hid_t_f *type_id , size_t_f *offset) +nh5tset_offset_c ( hid_t_f *type_id , size_t_f *offset) /******/ { int ret_value = -1; @@ -588,25 +591,25 @@ h5tset_offset_c ( hid_t_f *type_id , size_t_f *offset) * h5tget_pad_c * PURPOSE * Call H5Tget_pad to get the padding type of the least and - * most-significant bit padding + * most-significant bit padding * * INPUTS - * type_id - identifier of the dataspace + * type_id - identifier of the dataspace * OUTPUTS - * lsbpad - padding type of the least significant bit - * msbpad - padding type of the least significant bit + * lsbpad - padding type of the least significant bit + * msbpad - padding type of the least significant bit * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Wednesday, January 26, 2000 + * Wednesday, January 26, 2000 * HISTORY * * SOURCE */ int_f -h5tget_pad_c ( hid_t_f *type_id , int_f * lsbpad, int_f * msbpad) +nh5tget_pad_c ( hid_t_f *type_id , int_f * lsbpad, int_f * msbpad) /******/ { int ret_value = -1; @@ -628,27 +631,27 @@ h5tget_pad_c ( hid_t_f *type_id , int_f * lsbpad, int_f * msbpad) * NAME * h5tset_pad_c * INPUTS - * type_id - identifier of the dataspace + * type_id - identifier of the dataspace * PURPOSE * Call H5Tset_pad to set the padding type of the least and - * most-significant bit padding + * most-significant bit padding * * INPUTS - * type_id - identifier of the dataspace - * lsbpad - padding type of the least significant bit - * msbpad - padding type of the least significant bit + * 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 + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Wednesday, January 26, 2000 + * Wednesday, January 26, 2000 * HISTORY * * SOURCE */ int_f -h5tset_pad_c ( hid_t_f *type_id, int_f * lsbpad, int_f* msbpad ) +nh5tset_pad_c ( hid_t_f *type_id, int_f * lsbpad, int_f* msbpad ) /******/ { int ret_value = -1; @@ -671,21 +674,21 @@ h5tset_pad_c ( hid_t_f *type_id, int_f * lsbpad, int_f* msbpad ) * PURPOSE * Call H5Tget_sign to get sign type for an integer type * INPUTS - * type_id - identifier of the dataspace + * type_id - identifier of the dataspace * OUTPUTS - * sign - sign type for an integer type + * sign - sign type for an integer type * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Wednesday, January 26, 2000 + * Wednesday, January 26, 2000 * HISTORY * * SOURCE */ int_f -h5tget_sign_c ( hid_t_f *type_id , int_f *sign) +nh5tget_sign_c ( hid_t_f *type_id , int_f *sign) /******/ { int ret_value = -1; @@ -706,20 +709,20 @@ h5tget_sign_c ( hid_t_f *type_id , int_f *sign) * 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 + * type_id - identifier of the dataspace + * sign - sign type for an integer typ * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Wednesday, January 26, 2000 + * Wednesday, January 26, 2000 * HISTORY * * SOURCE */ int_f -h5tset_sign_c ( hid_t_f *type_id , int_f* sign) +nh5tset_sign_c ( hid_t_f *type_id , int_f* sign) /******/ { int ret_value = -1; @@ -741,26 +744,26 @@ h5tset_sign_c ( hid_t_f *type_id , int_f* sign) * h5tget_fields_c * PURPOSE * Call H5Tget_fields to get floating point datatype - * bit field information + * bit field information * INPUTS - * type_id - identifier of the dataspace + * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Thursday, January 27, 2000 + * Thursday, January 27, 2000 * HISTORY * * SOURCE */ int_f -h5tget_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) +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; @@ -785,25 +788,25 @@ h5tget_fields_c ( hid_t_f *type_id , size_t_f *spos, size_t_f *epos, size_t_f* e * h5tset_fields_c * PURPOSE * Call H5Tset_fields to set floating point datatype - * bit field information + * bit field information * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Wednesday, January 26, 2000 + * Wednesday, January 26, 2000 * HISTORY * * SOURCE */ int_f -h5tset_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) +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; @@ -829,23 +832,23 @@ h5tset_fields_c ( hid_t_f *type_id, size_t_f *spos, size_t_f *epos, size_t_f* es * h5tget_ebias_c * PURPOSE * Call H5Tget_ebias to get exponent bias of a - * floating-point type of the datatype + * floating-point type of the datatype * INPUTS - * type_id - identifier of the dataspace + * type_id - identifier of the dataspace * OUTPUTS - * ebias - exponent bias of a floating-point type of the datatype + * ebias - exponent bias of a floating-point type of the datatype * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Friday, January 27, 2000 + * Friday, January 27, 2000 * HISTORY * * SOURCE */ int_f -h5tget_ebias_c ( hid_t_f *type_id , size_t_f *ebias) +nh5tget_ebias_c ( hid_t_f *type_id , size_t_f *ebias) /******/ { int ret_value = -1; @@ -866,22 +869,22 @@ h5tget_ebias_c ( hid_t_f *type_id , size_t_f *ebias) * h5tset_ebias_c * PURPOSE * Call H5Tset_ebias to set exponent bias of a - * floating-point type of the datatype + * floating-point type of the datatype * INPUTS - * type_id - identifier of the dataspace - * ebias - exponent bias of a floating-point type of the datatyp + * type_id - identifier of the dataspace + * ebias - exponent bias of a floating-point type of the datatyp * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Friday, January 27, 2000 + * Friday, January 27, 2000 * HISTORY * * SOURCE */ int_f -h5tset_ebias_c ( hid_t_f *type_id , size_t_f *ebias) +nh5tset_ebias_c ( hid_t_f *type_id , size_t_f *ebias) /******/ { int ret_value = -1; @@ -903,23 +906,23 @@ h5tset_ebias_c ( hid_t_f *type_id , size_t_f *ebias) * h5tget_norm_c * PURPOSE * Call H5Tget_norm to get mantissa normalization - * of a floating-point datatype + * of a floating-point datatype * INPUTS - * type_id - identifier of the dataspace + * type_id - identifier of the dataspace * OUTPUTS - * norm - mantissa normalization of a floating-point type + * norm - mantissa normalization of a floating-point type * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Friday, January 27, 2000 + * Friday, January 27, 2000 * HISTORY * * SOURCE */ int_f -h5tget_norm_c ( hid_t_f *type_id , int_f *norm) +nh5tget_norm_c ( hid_t_f *type_id , int_f *norm) /******/ { int ret_value = -1; @@ -940,22 +943,22 @@ h5tget_norm_c ( hid_t_f *type_id , int_f *norm) * h5tset_norm_c * PURPOSE * Call H5Tset_norm to set mantissa normalization of - * floating-point type of the datatype + * floating-point type of the datatype * INPUTS - * type_id - identifier of the dataspace - * norm - mantissa normalization of a floating-point type + * type_id - identifier of the dataspace + * norm - mantissa normalization of a floating-point type * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Xiangyang Su - * Friday, January 27, 2000 + * Friday, January 27, 2000 * HISTORY * * SOURCE */ int_f -h5tset_norm_c ( hid_t_f *type_id , int_f *norm) +nh5tset_norm_c ( hid_t_f *type_id , int_f *norm) /******/ { int ret_value = -1; @@ -977,25 +980,25 @@ h5tset_norm_c ( hid_t_f *type_id , int_f *norm) * h5tget_inpad_c * PURPOSE * Call H5Tget_inpad to get the padding type for - * unused bits in floating-point datatypes + * unused bits in floating-point datatypes * * INPUTS - * type_id - identifier of the dataspace + * type_id - identifier of the dataspace * OUTPUTS - * padtype - padding type for - * unused bits in floating-point datatype + * padtype - padding type for + * unused bits in floating-point datatype * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Wednesday, January 26, 2000 + * Wednesday, January 26, 2000 * HISTORY * * SOURCE */ int_f -h5tget_inpad_c ( hid_t_f *type_id , int_f * padtype) +nh5tget_inpad_c ( hid_t_f *type_id , int_f * padtype) /******/ { int ret_value = -1; @@ -1015,27 +1018,27 @@ h5tget_inpad_c ( hid_t_f *type_id , int_f * padtype) * NAME * h5tset_inpad_c * INPUTS - * type_id - identifier of the dataspace + * type_id - identifier of the dataspace * PURPOSE * Call H5Tset_inpad to set the padding type - * unused bits in floating-point datatype + * unused bits in floating-point datatype * * INPUTS - * type_id - identifier of the dataspace - * padtype - padding type for unused bits - * in floating-point datatypes + * type_id - identifier of the dataspace + * padtype - padding type for unused bits + * in floating-point datatypes * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Wednesday, January 26, 2000 + * Wednesday, January 26, 2000 * HISTORY * * SOURCE */ int_f -h5tset_inpad_c ( hid_t_f *type_id, int_f * padtype) +nh5tset_inpad_c ( hid_t_f *type_id, int_f * padtype) /******/ { int ret_value = -1; @@ -1057,24 +1060,24 @@ h5tset_inpad_c ( hid_t_f *type_id, int_f * padtype) * h5tget_cset_c * PURPOSE * Call H5Tget_cset to get character set - * type of a string datatype + * type of a string datatype * * INPUTS - * type_id - identifier of the dataspace + * type_id - identifier of the dataspace * OUTPUTS - * cset - character set type of a string datatype + * cset - character set type of a string datatype * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Wednesday, January 26, 2000 + * Wednesday, January 26, 2000 * HISTORY * * SOURCE */ int_f -h5tget_cset_c ( hid_t_f *type_id , int_f * cset) +nh5tget_cset_c ( hid_t_f *type_id , int_f * cset) /******/ { int ret_value = -1; @@ -1094,26 +1097,26 @@ h5tget_cset_c ( hid_t_f *type_id , int_f * cset) * NAME * h5tset_cset_c * INPUTS - * type_id - identifier of the dataspace + * type_id - identifier of the dataspace * PURPOSE * Call H5Tset_cset to set character set - * type of a string datatype + * type of a string datatype * * INPUTS - * type_id - identifier of the dataspace - * cset - character set type of a string datatype + * type_id - identifier of the dataspace + * cset - character set type of a string datatype * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Wednesday, January 26, 2000 + * Wednesday, January 26, 2000 * HISTORY * * SOURCE */ int_f -h5tset_cset_c ( hid_t_f *type_id, int_f * cset) +nh5tset_cset_c ( hid_t_f *type_id, int_f * cset) /******/ { int ret_value = -1; @@ -1135,22 +1138,22 @@ h5tset_cset_c ( hid_t_f *type_id, int_f * cset) * h5tget_strpad_c * PURPOSE * Call H5Tget_strpad to get string padding method - * for a string datatype + * for a string datatype * INPUTS - * type_id - identifier of the dataspace + * type_id - identifier of the dataspace * OUTPUTS - * strpad - string padding method for a string datatype + * strpad - string padding method for a string datatype * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Wednesday, January 26, 2000 + * Wednesday, January 26, 2000 * HISTORY * * SOURCE */ int_f -h5tget_strpad_c ( hid_t_f *type_id , int_f * strpad) +nh5tget_strpad_c ( hid_t_f *type_id , int_f * strpad) /******/ { int ret_value = -1; @@ -1170,26 +1173,26 @@ h5tget_strpad_c ( hid_t_f *type_id , int_f * strpad) * NAME * h5tset_strpad_c * INPUTS - * type_id - identifier of the dataspace + * type_id - identifier of the dataspace * PURPOSE * Call H5Tset_strpad to set string padding method - * for a string datatype + * for a string datatype * * INPUTS - * type_id - identifier of the dataspace - * strpad - string padding method for a string datatype + * type_id - identifier of the dataspace + * strpad - string padding method for a string datatype * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Wednesday, January 26, 2000 + * Wednesday, January 26, 2000 * HISTORY * * SOURCE */ int_f -h5tset_strpad_c ( hid_t_f *type_id, int_f * strpad) +nh5tset_strpad_c ( hid_t_f *type_id, int_f * strpad) /******/ { int ret_value = -1; @@ -1211,23 +1214,23 @@ h5tset_strpad_c ( hid_t_f *type_id, int_f * strpad) * h5tget_nmembers_c * PURPOSE * Call H5Tget_nmembers to get number of fields - * in a compound datatype + * in a compound datatype * INPUTS - * type_id - identifier of the dataspace + * type_id - identifier of the dataspace * OUTPUTS - * num_members - number of fields in a compound datatype + * num_members - number of fields in a compound datatype * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Thursday, February 3, 2000 + * Thursday, February 3, 2000 * HISTORY * * SOURCE */ int_f -h5tget_nmembers_c ( hid_t_f *type_id , int_f * num_members) +nh5tget_nmembers_c ( hid_t_f *type_id , int_f * num_members) /******/ { int ret_value = -1; @@ -1246,24 +1249,24 @@ h5tget_nmembers_c ( hid_t_f *type_id , int_f * num_members) * h5tget_member_name_c * PURPOSE * Call H5Tget_member_name to get name - * of a compound datatype + * of a compound datatype * INPUTS - * type_id - identifier of the dataspace + * type_id - identifier of the dataspace * OUTPUTS - * member_name - name of a field of a compound datatype + * member_name - name of a field of a compound datatype * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Thursday, February 3, 2000 + * Thursday, February 3, 2000 * HISTORY - * Elena Pourmal - * Added namelen parameter to return length of the name to Fortran user + * Elena Pourmal + * Added namelen parameter to return length of the name to Fortran user * SOURCE */ int_f -h5tget_member_name_c ( hid_t_f *type_id ,int_f* idx, _fcd member_name, int_f *namelen) +nh5tget_member_name_c ( hid_t_f *type_id ,int_f* idx, _fcd member_name, int_f *namelen) /******/ { int ret_value = -1; @@ -1287,15 +1290,15 @@ h5tget_member_name_c ( hid_t_f *type_id ,int_f* idx, _fcd member_name, int_f *na * h5tget_member_index_c * PURPOSE * Call H5Tget_member_index to get an index of - * the specified datatype filed or member. + * the specified datatype filed or member. * INPUTS - * type_id - datatype identifier - * name - name of the datatype within file or group - * namelen - name length + * type_id - datatype identifier + * name - name of the datatype within file or group + * namelen - name length * OUTPUTS - * index - 0-based index + * index - 0-based index * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal * Thursday, September 26, 2002 @@ -1304,7 +1307,7 @@ h5tget_member_name_c ( hid_t_f *type_id ,int_f* idx, _fcd member_name, int_f *na * SOURCE */ int_f -h5tget_member_index_c (hid_t_f *type_id, _fcd name, int_f *namelen, int_f *idx) +nh5tget_member_index_c (hid_t_f *type_id, _fcd name, int_f *namelen, int_f *idx) /******/ { int ret_value = -1; @@ -1338,26 +1341,26 @@ DONE: * 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 + * 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 - * member_no - Number of the field whose offset is requested + * 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 - * a compound datatype + * offset - byte offset of the the beginning of the field of + * a compound datatype * RETURNS - * always 0 + * always 0 * AUTHOR * XIANGYANG SU - * Thursday, February 3, 2000 + * Thursday, February 3, 2000 * HISTORY * * SOURCE */ int_f -h5tget_member_offset_c ( hid_t_f *type_id ,int_f* member_no, size_t_f * offset) +nh5tget_member_offset_c ( hid_t_f *type_id ,int_f* member_no, size_t_f * offset) /******/ { int ret_value = -1; @@ -1374,23 +1377,23 @@ h5tget_member_offset_c ( hid_t_f *type_id ,int_f* member_no, size_t_f * offset) * h5tget_array_dims_c * PURPOSE * Call H5Tget_array_dims2 to get - * dimensions of array datatype + * dimensions of array datatype * INPUTS - * type_id - identifier of the array datatype + * type_id - identifier of the array datatype * OUTPUTS - * dims - dimensions(sizes of dimensions) of the array + * dims - dimensions(sizes of dimensions) of the array * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Thursday, November 16, 2000 + * Thursday, November 16, 2000 * HISTORY * * SOURCE */ int_f -h5tget_array_dims_c ( hid_t_f *type_id , hsize_t_f * dims) +nh5tget_array_dims_c ( hid_t_f *type_id , hsize_t_f * dims) /******/ { hsize_t c_dims[H5S_MAX_RANK]; @@ -1417,23 +1420,23 @@ DONE: * h5tget_array_ndims_c * PURPOSE * Call H5Tget_array_ndims to get number - * of dimensions of array datatype + * of dimensions of array datatype * INPUTS - * type_id - identifier of the array datatype + * type_id - identifier of the array datatype * OUTPUTS - * ndims - number of dimensions of the array + * ndims - number of dimensions of the array * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Thursday, November 16, 2000 + * Thursday, November 16, 2000 * HISTORY * * SOURCE */ int_f -h5tget_array_ndims_c ( hid_t_f *type_id , int_f * ndims) +nh5tget_array_ndims_c ( hid_t_f *type_id , int_f * ndims) /******/ { int ret_value = -1; @@ -1454,23 +1457,23 @@ h5tget_array_ndims_c ( hid_t_f *type_id , int_f * ndims) * h5tget_super_c * PURPOSE * Call H5Tget_super to get base datatype from which - * datatype was derived + * datatype was derived * INPUTS - * type_id - identifier of the array datatype + * type_id - identifier of the array datatype * OUTPUTS - * base_type_id - base datatype identifier + * base_type_id - base datatype identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Thursday, November 16, 2000 + * Thursday, November 16, 2000 * HISTORY * * SOURCE */ int_f -h5tget_super_c ( hid_t_f *type_id , hid_t_f *base_type_id) +nh5tget_super_c ( hid_t_f *type_id , hid_t_f *base_type_id) /******/ { int ret_value = -1; @@ -1492,14 +1495,14 @@ h5tget_super_c ( hid_t_f *type_id , hid_t_f *base_type_id) * h5tget_member_type_c * PURPOSE * Call H5Tget_member_type to get the identifier of a copy of - * the datatype of the field + * the datatype of the field * INPUTS - * type_id - identifier of the datatype - * field_idx - Field index (0-based) of the field type to retrieve + * 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 + * datatype - identifier of a copy of the datatype of the field * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU * Thursday, February 3, 2000 @@ -1509,7 +1512,7 @@ h5tget_super_c ( hid_t_f *type_id , hid_t_f *base_type_id) */ int_f -h5tget_member_type_c ( hid_t_f *type_id ,int_f* field_idx, hid_t_f * datatype) +nh5tget_member_type_c ( hid_t_f *type_id ,int_f* field_idx, hid_t_f * datatype) /******/ { int ret_value = -1; @@ -1528,10 +1531,10 @@ h5tget_member_type_c ( hid_t_f *type_id ,int_f* field_idx, hid_t_f * datatype) * PURPOSE * Call H5Tcreate to create a datatype * INPUTS - * cls - class type - * size - size of the class memeber + * cls - class type + * size - size of the class memeber * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal * Thursday, February 17, 2000 @@ -1541,7 +1544,7 @@ h5tget_member_type_c ( hid_t_f *type_id ,int_f* field_idx, hid_t_f * datatype) */ int_f -h5tcreate_c(int_f *cls, size_t_f *size, hid_t_f *type_id) +nh5tcreate_c(int_f *cls, size_t_f *size, hid_t_f *type_id) /******/ { int ret_value = -1; @@ -1580,7 +1583,7 @@ h5tcreate_c(int_f *cls, size_t_f *size, hid_t_f *type_id) */ int_f -h5tinsert_c(hid_t_f *type_id, _fcd name, int_f* namelen, size_t_f *offset, hid_t_f * field_id) +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; @@ -1619,7 +1622,7 @@ h5tinsert_c(hid_t_f *type_id, _fcd name, int_f* namelen, size_t_f *offset, hid_t */ int_f -h5tpack_c(hid_t_f * type_id) +nh5tpack_c(hid_t_f * type_id) /******/ { int ret_value = -1; @@ -1640,12 +1643,12 @@ h5tpack_c(hid_t_f * type_id) * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal * Thursday, November 16, 2000 @@ -1654,7 +1657,7 @@ h5tpack_c(hid_t_f * type_id) * SOURCE */ int_f -h5tarray_create_c(hid_t_f * base_id, int_f *rank, hsize_t_f* dims, hid_t_f* type_id) +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]; @@ -1689,7 +1692,7 @@ DONE: * parent_id - Datatype identifier for the base datatype * OUTPUTS * new_type_id - datatype identifier for the new - * enumeration datatype + * enumeration datatype * RETURNS * 0 on success, -1 on failure * AUTHOR @@ -1701,7 +1704,7 @@ DONE: */ int_f -h5tenum_create_c ( hid_t_f *parent_id , hid_t_f *new_type_id) +nh5tenum_create_c ( hid_t_f *parent_id , hid_t_f *new_type_id) /******/ { int ret_value = 0; @@ -1737,7 +1740,7 @@ h5tenum_create_c ( hid_t_f *parent_id , hid_t_f *new_type_id) */ int_f -h5tenum_insert_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value) +nh5tenum_insert_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value) /******/ { int ret_value = -1; @@ -1764,24 +1767,24 @@ h5tenum_insert_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value) * h5tenum_nameof_c * PURPOSE * Call H5Tenum_nameof to find the symbol name that corresponds to - * the specified value of the enumeration datatype type + * the specified value of the enumeration datatype type * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Thursday, February 3, 2000 + * Thursday, February 3, 2000 * HISTORY * * SOURCE */ int_f -h5tenum_nameof_c(hid_t_f *type_id, int_f* value, _fcd name, size_t_f* namelen) +nh5tenum_nameof_c(hid_t_f *type_id, int_f* value, _fcd name, size_t_f* namelen) /******/ { int ret_value = -1; @@ -1808,24 +1811,24 @@ h5tenum_nameof_c(hid_t_f *type_id, int_f* value, _fcd name, size_t_f* namelen) * h5tenum_valueof_c * PURPOSE * Call H5Tenum_valueof to find the value of that corresponds to - * the specified name of the enumeration datatype type + * the specified name of the enumeration datatype type * INPUTS - * type_id - identifier of the datatype - * name - Name of the enumeration datatype - * namelen - length of name - * Output: value - value of the enumeration datatype + * 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 + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Thursday, February 3, 2000 + * Thursday, February 3, 2000 * HISTORY * * SOURCE */ int_f -h5tenum_valueof_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value) +nh5tenum_valueof_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value) /******/ { int ret_value = -1; @@ -1848,23 +1851,23 @@ h5tenum_valueof_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value) * h5tget_member_value_c * PURPOSE * Call H5Tget_member_value to get the value of an - * enumeration datatype member + * enumeration datatype member * INPUTS - * type_id - identifier of the datatype - * member_no - Number of the enumeration datatype member. - * Output: value - value of the enumeration datatype + * 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 + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Thursday, February 3, 2000 + * Thursday, February 3, 2000 * HISTORY * * SOURCE */ int_f -h5tget_member_value_c(hid_t_f *type_id, int_f* member_no, int_f* value) +nh5tget_member_value_c(hid_t_f *type_id, int_f* member_no, int_f* value) /******/ { int ret_value = -1; @@ -1883,25 +1886,25 @@ h5tget_member_value_c(hid_t_f *type_id, int_f* member_no, int_f* value) * NAME * h5tset_tag_c * INPUTS - * type_id - identifier of the dataspace + * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU - * Wednesday, January 26, 2000 + * Wednesday, January 26, 2000 * HISTORY * * SOURCE */ int_f -h5tset_tag_c(hid_t_f* type_id, _fcd tag, int_f* namelen) +nh5tset_tag_c(hid_t_f* type_id, _fcd tag, int_f* namelen) /******/ { int ret_value = -1; @@ -1926,11 +1929,11 @@ h5tset_tag_c(hid_t_f* type_id, _fcd tag, int_f* namelen) * 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 + * tag - Unique ASCII string with which the opaque + * datatype is to be tagged + * taglen - length of tag * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * XIANGYANG SU * Wednesday, January 26, 2000 @@ -1939,7 +1942,7 @@ h5tset_tag_c(hid_t_f* type_id, _fcd tag, int_f* namelen) * SOURCE */ int_f -h5tget_tag_c(hid_t_f* type_id, _fcd tag, size_t_f* tag_size, 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; @@ -1962,20 +1965,20 @@ h5tget_tag_c(hid_t_f* type_id, _fcd tag, size_t_f* tag_size, int_f* taglen) * PURPOSE * Call H5Tvlen_create to create VL dtatype * INPUTS - * type_id - identifier of the base datatype + * type_id - identifier of the base datatype * OUTPUTS - * vltype_id - identifier of the VL datatype + * vltype_id - identifier of the VL datatype * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, October 23, 2002 + * Wednesday, October 23, 2002 * HISTORY * * SOURCE */ int_f -h5tvlen_create_c(hid_t_f* type_id, hid_t_f *vltype_id) +nh5tvlen_create_c(hid_t_f* type_id, hid_t_f *vltype_id) /******/ { int ret_value = -1; @@ -1994,24 +1997,24 @@ h5tvlen_create_c(hid_t_f* type_id, hid_t_f *vltype_id) * h5tis_variable_str_c * PURPOSE * Call H5Tis_variable_str to detrmine if the datatype - * is a variable string. + * is a variable string. * INPUTS - * type_id - identifier of the dataspace + * type_id - identifier of the dataspace * OUTPUTS - * flag - 0 if not VL str, 1 if is not - * and negative on failure. + * flag - 0 if not VL str, 1 if is not + * and negative on failure. * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, March 12 , 2003 + * Wednesday, March 12 , 2003 * HISTORY * * SOURCE */ int_f -h5tis_variable_str_c ( hid_t_f *type_id , int_f *flag ) +nh5tis_variable_str_c ( hid_t_f *type_id , int_f *flag ) /******/ { int ret_value = 0; @@ -2031,13 +2034,13 @@ h5tis_variable_str_c ( hid_t_f *type_id , int_f *flag ) * Call H5Tget_member_class to detrmine ithe class of the compound * datatype member * INPUTS - * type_id - identifier of the dataspace - * member_no - member's index + * type_id - identifier of the dataspace + * member_no - member's index * OUTPUTS - * class - member's class - * and negative on failure. + * class - member's class + * and negative on failure. * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal * Wednesday, April 6, 2005 @@ -2047,7 +2050,7 @@ h5tis_variable_str_c ( hid_t_f *type_id , int_f *flag ) */ int_f -h5tget_member_class_c ( hid_t_f *type_id , int_f *member_no, int_f *cls ) +nh5tget_member_class_c ( hid_t_f *type_id , int_f *member_no, int_f *cls ) /******/ { int ret_value = 0; @@ -2070,12 +2073,12 @@ h5tget_member_class_c ( hid_t_f *type_id , int_f *member_no, int_f *cls ) * 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 + * 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 + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld * February 25, 2008 @@ -2084,7 +2087,7 @@ h5tget_member_class_c ( hid_t_f *type_id , int_f *member_no, int_f *cls ) * SOURCE */ int_f -h5tcommit_anon_c(hid_t_f *loc_id, hid_t_f *dtype_id, +nh5tcommit_anon_c(hid_t_f *loc_id, hid_t_f *dtype_id, hid_t_f *tcpl_id, hid_t_f *tapl_id) /******/ { @@ -2105,10 +2108,10 @@ h5tcommit_anon_c(hid_t_f *loc_id, hid_t_f *dtype_id, * h5tcommitted_c * PURPOSE * Call H5Tcommitted - * dtype_id - dataset identifier + * dtype_id - dataset identifier * RETURNS - * a positive value, for TRUE, if the datatype has been committed, - * or 0 (zero), for FALSE, if the datatype has not been committed. + * 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. * AUTHOR * M. Scot Breitenfeld @@ -2118,7 +2121,7 @@ h5tcommit_anon_c(hid_t_f *loc_id, hid_t_f *dtype_id, * SOURCE */ int_f -h5tcommitted_c(hid_t_f *dtype_id) +nh5tcommitted_c(hid_t_f *dtype_id) /******/ { int_f ret_value; @@ -2141,10 +2144,10 @@ h5tcommitted_c(hid_t_f *dtype_id) * buf - Buffer for the data space object to be decoded. * OUTPUTS * - * obj_id - Object_id (non-negative) + * obj_id - Object_id (non-negative) * * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld * April 9, 2008 @@ -2154,7 +2157,7 @@ h5tcommitted_c(hid_t_f *dtype_id) */ int_f -h5tdecode_c ( _fcd buf, hid_t_f *obj_id ) +nh5tdecode_c ( _fcd buf, hid_t_f *obj_id ) /******/ { int ret_value = -1; @@ -2184,11 +2187,11 @@ h5tdecode_c ( _fcd buf, hid_t_f *obj_id ) * Call H5Tencode * INPUTS * - * obj_id - Identifier of the object to be encoded. + * 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. + * nalloc - The size of the allocated buffer. * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld * April 9, 2008 @@ -2198,7 +2201,7 @@ h5tdecode_c ( _fcd buf, hid_t_f *obj_id ) */ int_f -h5tencode_c (_fcd buf, hid_t_f *obj_id, size_t_f *nalloc ) +nh5tencode_c (_fcd buf, hid_t_f *obj_id, size_t_f *nalloc ) /******/ { int ret_value = -1; @@ -2253,11 +2256,11 @@ h5tencode_c (_fcd buf, hid_t_f *obj_id, size_t_f *nalloc ) * PURPOSE * Call H5Tget_create_plist * INPUTS - * dtype_id - Datatype identifier + * dtype_id - Datatype identifier * OUTPUTS - * dtpl_id - Datatype property list identifier + * dtpl_id - Datatype property list identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld * April 9, 2008 @@ -2267,7 +2270,7 @@ h5tencode_c (_fcd buf, hid_t_f *obj_id, size_t_f *nalloc ) */ int_f -h5tget_create_plist_c ( hid_t_f *dtype_id, hid_t_f *dtpl_id) +nh5tget_create_plist_c ( hid_t_f *dtype_id, hid_t_f *dtpl_id) /******/ { int_f ret_value=-1; /* Return value */ @@ -2286,12 +2289,12 @@ h5tget_create_plist_c ( hid_t_f *dtype_id, hid_t_f *dtpl_id) * Call H5Tcompiler_conv * INPUTS * - * src_id - Identifier for the source datatype. - * dst_id - Identifier for the destination datatype. + * 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 + * c_flag - flag; TRUE for compiler conversion, FALSE for library conversion * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M.Scot Breitenfeld * April 9, 2008 @@ -2301,7 +2304,7 @@ h5tget_create_plist_c ( hid_t_f *dtype_id, hid_t_f *dtpl_id) */ int_f -h5tcompiler_conv_c ( hid_t_f *src_id, hid_t_f *dst_id, int_f *c_flag) +nh5tcompiler_conv_c ( hid_t_f *src_id, hid_t_f *dst_id, int_f *c_flag) /******/ { int ret_value = -1; @@ -2320,12 +2323,12 @@ h5tcompiler_conv_c ( hid_t_f *src_id, hid_t_f *dst_id, int_f *c_flag) * Call H5Tget_native_type * INPUTS * - * dtype_id - Datatype identifier for the dataset datatype. - * direction - Direction of search. + * 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 + * native_dtype_id - The native datatype identifier for the specified dataset datatype * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * M. Scot Breitenfeld * June 18, 2008 @@ -2335,7 +2338,7 @@ h5tcompiler_conv_c ( hid_t_f *src_id, hid_t_f *dst_id, int_f *c_flag) */ int_f -h5tget_native_type_c(hid_t_f *dtype_id, int_f *direction, hid_t_f *native_dtype_id) +nh5tget_native_type_c(hid_t_f *dtype_id, int_f *direction, hid_t_f *native_dtype_id) /******/ { int ret_value = -1; diff --git a/fortran/src/H5Tff.F90 b/fortran/src/H5Tff.F90 deleted file mode 100644 index 6b8f896..0000000 --- a/fortran/src/H5Tff.F90 +++ /dev/null @@ -1,3082 +0,0 @@ -!****h* ROBODoc/H5T -! -! NAME -! MODULE H5T -! -! PURPOSE -! This file contains Fortran interfaces for H5T 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 -! -! _____ __ __ _____ ____ _____ _______ _ _ _______ -! |_ _| \/ | __ \ / __ \| __ \__ __|/\ | \ | |__ __| -! **** | | | \ / | |__) | | | | |__) | | | / \ | \| | | | **** -! **** | | | |\/| | ___/| | | | _ / | | / /\ \ | . ` | | | **** -! **** _| |_| | | | | | |__| | | \ \ | |/ ____ \| |\ | | | **** -! |_____|_| |_|_| \____/|_| \_\ |_/_/ \_\_| \_| |_| -! -! If you add a new function here then you MUST add the function name to the -! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory. -! This is needed for Windows based operating systems. -! -!***** - -MODULE H5T - - USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR, C_CHAR, C_NULL_PTR - USE H5GLOBAL - IMPLICIT NONE - -!****t* H5T/hvl_t -! Fortran2003 Derived Type: - 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 - -!***** - - INTERFACE h5tenum_insert_f - MODULE PROCEDURE h5tenum_insert_f03 - MODULE PROCEDURE h5tenum_insert_f90 - END INTERFACE - -CONTAINS - -! -!****s* H5T/h5topen_f -! -! NAME -! h5topen_f -! -! PURPOSE -! Opens named datatype. -! -! 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. -! -! 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 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 - CHARACTER(LEN=*), INTENT(IN) :: name - INTEGER(HID_T), INTENT(OUT) :: type_id - INTEGER, INTENT(OUT) :: hdferr - INTEGER(HID_T), OPTIONAL, INTENT(IN) :: tapl_id -!***** - INTEGER :: namelen ! Name length - INTEGER(HID_T) :: tapl_id_default - - INTERFACE - INTEGER FUNCTION h5topen_c(loc_id, name, namelen, type_id, tapl_id_default) BIND(C,NAME='h5topen_c') - IMPORT :: C_CHAR - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), INTENT(IN) :: name - INTEGER :: namelen - INTEGER(HID_T), INTENT(OUT) :: type_id - INTEGER(HID_T) :: tapl_id_default - END FUNCTION h5topen_c - END INTERFACE - - namelen = LEN(name) - - tapl_id_default = H5P_DEFAULT_F - IF(PRESENT(tapl_id)) tapl_id_default = tapl_id - - hdferr = h5topen_c(loc_id, name, namelen, type_id, tapl_id_default) - END SUBROUTINE h5topen_f -! -!****s* H5T/h5tcommit_f -! -! NAME -! h5tcommit_f -! -! PURPOSE -! Commits a transient datatype to a file, creating a -! new named datatype. -! -! 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 -! -! 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 -! -! SOURCE - SUBROUTINE h5tcommit_f(loc_id, name, type_id, hdferr, & - lcpl_id, tcpl_id, tapl_id ) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier - CHARACTER(LEN=*), INTENT(IN) :: name - ! Datatype name within file or group - INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier - INTEGER, INTENT(OUT) :: hdferr ! Error code - 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 - - INTEGER(HID_T) :: lcpl_id_default - INTEGER(HID_T) :: tcpl_id_default - INTEGER(HID_T) :: tapl_id_default - - INTERFACE - INTEGER FUNCTION h5tcommit_c(loc_id, name, namelen, type_id, & - lcpl_id_default, tcpl_id_default, tapl_id_default ) BIND(C,NAME='h5tcommit_c') - IMPORT :: C_CHAR - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: loc_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name - INTEGER :: namelen - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER(HID_T) :: lcpl_id_default - INTEGER(HID_T) :: tcpl_id_default - INTEGER(HID_T) :: tapl_id_default - END FUNCTION h5tcommit_c - END INTERFACE - - lcpl_id_default = H5P_DEFAULT_F - tcpl_id_default = H5P_DEFAULT_F - tapl_id_default = H5P_DEFAULT_F - - IF (PRESENT(lcpl_id)) lcpl_id_default = lcpl_id - IF (PRESENT(tcpl_id)) tcpl_id_default = tcpl_id - IF (PRESENT(tapl_id)) tapl_id_default = tapl_id - - namelen = LEN(name) - - hdferr = h5tcommit_c(loc_id, name, namelen, type_id, & - lcpl_id_default, tcpl_id_default, tapl_id_default ) - - END SUBROUTINE h5tcommit_f -! -!****s* H5T/h5tcopy_f -! -! NAME -! h5tcopy_f -! -! PURPOSE -! Creates a copy of exisiting datatype. -! -! 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 -! -! 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 - INTEGER(HID_T), INTENT(OUT) :: new_type_id - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tcopy_c(type_id, new_type_id) BIND(C,NAME='h5tcopy_c') - IMPORT :: HID_T - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER(HID_T), INTENT(OUT) :: new_type_id - END FUNCTION h5tcopy_c - END INTERFACE - - hdferr = h5tcopy_c(type_id, new_type_id) - END SUBROUTINE h5tcopy_f -! -!****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 - INTEGER(HID_T), INTENT(IN) :: type2_id - LOGICAL, INTENT(OUT) :: flag - INTEGER, INTENT(OUT) :: hdferr -!***** - INTEGER :: c_flag - INTERFACE - INTEGER FUNCTION h5tequal_c(type1_id, type2_id, c_flag) BIND(C,NAME='h5tequal_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type1_id - INTEGER(HID_T), INTENT(IN) :: type2_id - INTEGER :: c_flag - END FUNCTION h5tequal_c - END INTERFACE - - flag = .FALSE. - hdferr = h5tequal_c(type1_id, type2_id, c_flag) - IF(c_flag .GT. 0) flag = .TRUE. - END SUBROUTINE h5tequal_f -! -!****s* H5T/h5tclose_f -! -! NAME -! h5tclose_f -! -! PURPOSE -! Releases a datatype. -! -! INPUTS -! type_id - datatype 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). March 7, 2001 -! -! SOURCE - SUBROUTINE h5tclose_f(type_id, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tclose_c(type_id) BIND(C,NAME='h5tclose_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - END FUNCTION h5tclose_c - END INTERFACE - - hdferr = h5tclose_c(type_id) - END SUBROUTINE h5tclose_f -! -!****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) -! H5T_VLEN_F (9) -! H5T_ARRAY_F (10) -! 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 - INTEGER, INTENT(OUT) :: class - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tget_class_c(type_id, class) BIND(C,NAME='h5tget_class_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(OUT) :: class - END FUNCTION h5tget_class_c - END INTERFACE - - hdferr = h5tget_class_c(type_id, class) - END SUBROUTINE h5tget_class_f -! -!****s* H5T/h5tget_size_f -! -! NAME -! h5tget_size_f -! -! PURPOSE -! Returns the size of a datatype. -! -! INPUTS -! type_id - datatype identifier -! OUTPUTS -! size - datatype size -! 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_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 -!***** - INTERFACE - INTEGER FUNCTION h5tget_size_c(type_id, size) BIND(C,NAME='h5tget_size_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER(SIZE_T), INTENT(OUT) :: size - END FUNCTION h5tget_size_c - END INTERFACE - - hdferr = h5tget_size_c(type_id, size) - END SUBROUTINE h5tget_size_f - -! -!****s* H5T/h5tset_size_f -! -! NAME -! h5tset_size_f -! -! PURPOSE -! Sets the total size for an atomic datatype. -! -! INPUTS -! type_id - datatype identifier -! size - size of the datatype -! 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_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 -!***** - INTERFACE - INTEGER FUNCTION h5tset_size_c(type_id, size) BIND(C,NAME='h5tset_size_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER(SIZE_T), INTENT(IN) :: size - END FUNCTION h5tset_size_c - END INTERFACE - - hdferr = h5tset_size_c(type_id, size) - END SUBROUTINE h5tset_size_f - -! -!****s* H5T/h5tget_order_f -! -! NAME -! h5tget_order_f -! -! PURPOSE -! Returns the byte order of an atomic datatype. -! -! 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 -! -! HISTORY -! Explicit Fortran interfaces were added for -! called C functions (it is needed for Windows -! port). March 7, 2001 -! -! 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) BIND(C,NAME='h5tget_order_c') - IMPORT :: HID_T - IMPLICIT NONE - 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) BIND(C,NAME='h5tset_order_c') - IMPORT :: HID_T - IMPLICIT NONE - 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 - -! -!****s* H5T/h5tget_precision_f -! -! NAME -! h5tget_precision_f -! -! PURPOSE -! Returns the precision of an atomic datatype. -! -! INPUTS -! type_id - datatype identifier -! OUTPUTS -! precision - precision of the datatype -! 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_precision_f(type_id, PRECISION, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER(SIZE_T), INTENT(OUT) :: precision - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tget_precision_c(type_id, PRECISION) BIND(C,NAME='h5tget_precision_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER(SIZE_T), INTENT(OUT) :: PRECISION - END FUNCTION h5tget_precision_c - END INTERFACE - - hdferr = h5tget_precision_c(type_id, PRECISION) - END SUBROUTINE h5tget_precision_f - -! -!****s* H5T/h5tset_precision_f -! -! NAME -! h5tset_precision_f -! -! PURPOSE -! Sets the precision of an atomic datatype. -! -! INPUTS -! type_id - datatype identifier -! precision - datatype precision -! 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_precision_f(type_id, PRECISION, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER(SIZE_T), INTENT(IN) :: PRECISION - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tset_precision_c (type_id, PRECISION) BIND(C,NAME='h5tset_precision_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER(SIZE_T), INTENT(IN) :: PRECISION - END FUNCTION h5tset_precision_c - END INTERFACE - - hdferr = h5tset_precision_c(type_id, PRECISION) - END SUBROUTINE h5tset_precision_f - -! -!****s* H5T/h5tget_offset_f -! -! NAME -! h5tget_offset_f -! -! PURPOSE -! Retrieves the bit offset of the first significant bit. -! -! INPUTS -! type_id - datatype identifier -! OUTPUTS -! offset - offset value -! 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_offset_f(type_id, offset, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER(SIZE_T), INTENT(OUT) :: offset - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tget_offset_c(type_id, offset) BIND(C,NAME='h5tget_offset_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER(SIZE_T), INTENT(OUT) :: offset - END FUNCTION h5tget_offset_c - END INTERFACE - - hdferr = h5tget_offset_c(type_id, offset) - END SUBROUTINE h5tget_offset_f - -! -!****s* H5T/h5tset_offset_f -! -! NAME -! h5tset_offset_f -! -! PURPOSE -! Sets the bit offset of the first significant bit. -! -! INPUTS -! type_id - datatype identifier -! offset - offset value -! 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_offset_f(type_id, offset, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER(SIZE_T), INTENT(IN) :: offset - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tset_offset_c(type_id, offset) BIND(C,NAME='h5tset_offset_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER(SIZE_T), INTENT(IN) :: offset - END FUNCTION h5tset_offset_c - END INTERFACE - - hdferr = h5tset_offset_c(type_id, offset) - END SUBROUTINE h5tset_offset_f - -! -!****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 -! H5T_PAD_ZERO_F -! H5T_PAD_ONE_F -! H5T_PAD_BACKGROUND_F -! H5T_PAD_NPAD_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_pad_f(type_id, lsbpad, msbpad, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(OUT) :: lsbpad - INTEGER, INTENT(OUT) :: msbpad - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tget_pad_c(type_id, lsbpad, msbpad) BIND(C,NAME='h5tget_pad_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(OUT) :: lsbpad - INTEGER, INTENT(OUT) :: msbpad - END FUNCTION h5tget_pad_c - END INTERFACE - - hdferr = h5tget_pad_c(type_id, lsbpad, msbpad) - END SUBROUTINE h5tget_pad_f - -! -!****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 - INTEGER, INTENT(IN) :: lsbpad - INTEGER, INTENT(IN) :: msbpad - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tset_pad_c(type_id, lsbpad, msbpad) BIND(C,NAME='h5tset_pad_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(IN) :: lsbpad - INTEGER, INTENT(IN) :: msbpad - END FUNCTION h5tset_pad_c - END INTERFACE - - hdferr = h5tset_pad_c(type_id, lsbpad, msbpad) - END SUBROUTINE h5tset_pad_f - -! -!****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 - INTEGER, INTENT(OUT) :: sign - INTEGER, INTENT(OUT) :: hdferr -!***** - - INTERFACE - INTEGER FUNCTION h5tget_sign_c(type_id, sign) BIND(C,NAME='h5tget_sign_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(OUT) :: sign - END FUNCTION h5tget_sign_c - END INTERFACE - - hdferr = h5tget_sign_c(type_id, sign) - END SUBROUTINE h5tget_sign_f - -! -!****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 - INTEGER, INTENT(IN) :: sign - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tset_sign_c(type_id, sign) BIND(C,NAME='h5tset_sign_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(IN) :: sign - END FUNCTION h5tset_sign_c - END INTERFACE - - hdferr = h5tset_sign_c(type_id, sign) - END SUBROUTINE h5tset_sign_f - -! -!****s* H5T/h5tget_fields_f -! -! NAME -! h5tget_fields_f -! -! PURPOSE -! Retrieves floating point datatype bit field information. -! -! 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 -! -! 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 - INTEGER(SIZE_T), INTENT(OUT) :: spos - INTEGER(SIZE_T), INTENT(OUT) :: epos - INTEGER(SIZE_T), INTENT(OUT) :: esize - INTEGER(SIZE_T), INTENT(OUT) :: mpos - INTEGER(SIZE_T), INTENT(OUT) :: msize - INTEGER, INTENT(OUT) :: hdferr -!***** - - INTERFACE - INTEGER FUNCTION h5tget_fields_c(type_id, spos, epos, esize, mpos, msize) & - BIND(C,NAME='h5tget_fields_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER(SIZE_T), INTENT(OUT) :: spos - INTEGER(SIZE_T), INTENT(OUT) :: epos - INTEGER(SIZE_T), INTENT(OUT) :: esize - INTEGER(SIZE_T), INTENT(OUT) :: mpos - INTEGER(SIZE_T), INTENT(OUT) :: msize - END FUNCTION h5tget_fields_c - END INTERFACE - - hdferr = h5tget_fields_c(type_id, spos, epos, esize, mpos, msize) - END SUBROUTINE h5tget_fields_f - -! -!****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 - INTEGER(SIZE_T), INTENT(IN) :: spos - INTEGER(SIZE_T), INTENT(IN) :: epos - INTEGER(SIZE_T), INTENT(IN) :: esize - INTEGER(SIZE_T), INTENT(IN) :: mpos - INTEGER(SIZE_T), INTENT(IN) :: msize - INTEGER, INTENT(OUT) :: hdferr -!***** - - INTERFACE - INTEGER FUNCTION h5tset_fields_c(type_id, spos, epos, esize, mpos, msize) & - BIND(C,NAME='h5tset_fields_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER(SIZE_T), INTENT(IN) :: spos - INTEGER(SIZE_T), INTENT(IN) :: epos - INTEGER(SIZE_T), INTENT(IN) :: esize - INTEGER(SIZE_T), INTENT(IN) :: mpos - INTEGER(SIZE_T), INTENT(IN) :: msize - END FUNCTION h5tset_fields_c - END INTERFACE - - hdferr = h5tset_fields_c(type_id, spos, epos, esize, mpos, msize) - END SUBROUTINE h5tset_fields_f - -! -!****s* H5T/h5tget_ebias_f -! -! NAME -! h5tget_ebias_f -! -! PURPOSE -! Retrieves the exponent bias of a floating-point type. -! -! INPUTS -! type_id - datatype identifier -! OUTPUTS -! ebias - datatype exponent bias -! 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_ebias_f(type_id, ebias, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER(SIZE_T), INTENT(OUT) :: ebias - INTEGER, INTENT(OUT) :: hdferr -!***** - - INTERFACE - INTEGER FUNCTION h5tget_ebias_c(type_id, ebias) BIND(C,NAME='h5tget_ebias_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER(SIZE_T), INTENT(OUT) :: ebias - END FUNCTION h5tget_ebias_c - END INTERFACE - - hdferr = h5tget_ebias_c(type_id, ebias) - END SUBROUTINE h5tget_ebias_f - -! -!****s* H5T/h5tset_ebias_f -! -! NAME -! h5tset_ebias_f -! -! PURPOSE -! Sets the exponent bias of a floating-point type. -! -! INPUTS -! type_id - datatype identifier -! ebias - datatype exponent bias -! 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_ebias_f(type_id, ebias, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER(SIZE_T), INTENT(IN) :: ebias - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tset_ebias_c(type_id, ebias) BIND(C,NAME='h5tset_ebias_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER(SIZE_T), INTENT(IN) :: ebias - END FUNCTION h5tset_ebias_c - END INTERFACE - - hdferr = h5tset_ebias_c(type_id, ebias) - END SUBROUTINE h5tset_ebias_f - -! -!****s* H5T/h5tget_norm_f -! -! NAME -! h5tget_norm_f -! -! PURPOSE -! Retrieves mantissa normalization of a floating-point -! datatype. -! -! INPUTS -! type_id - datatype identifier -! OUTPUTS -! norm - normalization types, valid values are: -! H5T_NORM_IMPLIED_F -! H5T_NORM_MSBSET_F -! H5T_NORM_NONE_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_norm_f(type_id, norm, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(OUT) :: norm - INTEGER, INTENT(OUT) :: hdferr -!***** - - INTERFACE - INTEGER FUNCTION h5tget_norm_c(type_id, norm) BIND(C,NAME='h5tget_norm_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(OUT) :: norm - END FUNCTION h5tget_norm_c - END INTERFACE - - hdferr = h5tget_norm_c(type_id, norm) - END SUBROUTINE h5tget_norm_f - -! -!****s* H5T/h5tset_norm_f -! -! NAME -! h5tset_norm_f -! -! PURPOSE -! Sets the mantissa normalization of a floating-point datatype. -! -! INPUTS -! type_id - datatype identifier -! norm - normalization types, valid values are: -! H5T_NORM_IMPLIED_F -! H5T_NORM_MSBSET_F -! H5T_NORM_NONE_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_norm_f(type_id, norm, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(IN) :: norm - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tset_norm_c(type_id, norm) BIND(C,NAME='h5tset_norm_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(IN) :: norm - END FUNCTION h5tset_norm_c - END INTERFACE - - hdferr = h5tset_norm_c(type_id, norm) - END SUBROUTINE h5tset_norm_f - -! -!****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 -! H5T_PAD_ONE_F -! H5T_PAD_BACKGROUND_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_inpad_f(type_id, padtype, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(OUT) :: padtype - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tget_inpad_c(type_id, padtype) BIND(C,NAME='h5tget_inpad_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(OUT) :: padtype - END FUNCTION h5tget_inpad_c - END INTERFACE - - hdferr = h5tget_inpad_c(type_id, padtype) - END SUBROUTINE h5tget_inpad_f - -! -!****s* H5T/h5tset_inpad_f -! -! NAME -! h5tset_inpad_f -! -! PURPOSE -! Fills unused internal floating point bits. -! -! INPUTS -! type_id - datatype identifier -! padtype - padding type for unused bits -! Possible values of padding type are: -! H5T_PAD_ZERO_F -! H5T_PAD_ONE_F -! H5T_PAD_BACKGROUND_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_inpad_f(type_id, padtype, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(IN) :: padtype - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tset_inpad_c(type_id, padtype) BIND(C,NAME='h5tset_inpad_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(IN) :: padtype - END FUNCTION h5tset_inpad_c - END INTERFACE - - hdferr = h5tset_inpad_c(type_id, padtype) - END SUBROUTINE h5tset_inpad_f - -! -!****s* H5T/h5tget_cset_f -! -! NAME -! h5tget_cset_f -! -! PURPOSE -! Retrieves the character set type of a string datatype. -! -! INPUTS -! type_id - Datatype identifier -! OUTPUTS -! cset - Character set type of a string datatype -! Possible values are: -! H5T_CSET_ASCII_F -! H5T_CSET_UTF8_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_cset_f(type_id, cset, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(OUT) :: cset - INTEGER, INTENT(OUT) :: hdferr ! Error code -!***** - INTERFACE - INTEGER FUNCTION h5tget_cset_c(type_id, cset) BIND(C,NAME='h5tget_cset_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(OUT) :: cset - END FUNCTION h5tget_cset_c - END INTERFACE - - hdferr = h5tget_cset_c(type_id, cset) - END SUBROUTINE h5tget_cset_f - -! -!****s* H5T/h5tset_cset_f -! -! NAME -! h5tset_cset_f -! -! PURPOSE -! Sets character set to be used. -! -! INPUTS -! type_id - datatype identifier -! cset - character set type of a string datatype -! Possible values are: -! H5T_CSET_ASCII_F -! H5T_CSET_UTF8_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_cset_f(type_id, cset, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(IN) :: cset - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tset_cset_c(type_id, cset) BIND(C,NAME='h5tset_cset_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(IN) :: cset - END FUNCTION h5tset_cset_c - END INTERFACE - - hdferr = h5tset_cset_c(type_id, cset) - END SUBROUTINE h5tset_cset_f -! -!****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 - INTEGER, INTENT(OUT) :: strpad - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tget_strpad_c(type_id, strpad) BIND(C,NAME='h5tget_strpad_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(OUT) :: strpad - END FUNCTION h5tget_strpad_c - END INTERFACE - - hdferr = h5tget_strpad_c(type_id, strpad) - END SUBROUTINE h5tget_strpad_f - -! -!****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 - INTEGER, INTENT(IN) :: strpad - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tset_strpad_c(type_id, strpad) BIND(C,NAME='h5tset_strpad_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(IN) :: strpad - END FUNCTION h5tset_strpad_c - END INTERFACE - - hdferr = h5tset_strpad_c(type_id, strpad) - END SUBROUTINE h5tset_strpad_f - -! -!****s* H5T/h5tget_nmembers_f -! -! NAME -! h5tget_nmembers_f -! -! PURPOSE -! Retrieves the number of fields in a compound datatype. -! -! INPUTS -! type_id - datatype identifier -! OUTPUTS -! num_members - number of members -! 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_nmembers_f(type_id, num_members, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(OUT) :: num_members - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tget_nmembers_c(type_id, num_members) BIND(C,NAME='h5tget_nmembers_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(OUT) :: num_members - END FUNCTION h5tget_nmembers_c - END INTERFACE - - hdferr = h5tget_nmembers_c(type_id, num_members) - END SUBROUTINE h5tget_nmembers_f - -! -!****s* H5T/h5tget_member_name_f -! -! NAME -! h5tget_member_name_f -! -! PURPOSE -! Retrieves the name of a field of a compound datatype. -! -! 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 -! -! 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 - INTEGER, INTENT(IN) :: index - CHARACTER(LEN=*), INTENT(OUT) :: member_name - INTEGER, INTENT(OUT) :: namelen - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tget_member_name_c(type_id, index, member_name, namelen) BIND(C,NAME='h5tget_member_name_c') - IMPORT :: C_CHAR - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(IN) :: index - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: member_name - INTEGER, INTENT(OUT) :: namelen - END FUNCTION h5tget_member_name_c - END INTERFACE - - hdferr = h5tget_member_name_c(type_id, index, member_name, namelen) - END SUBROUTINE h5tget_member_name_f - -! -!****s* H5T/h5tget_member_offset_f -! -! NAME -! h5tget_member_offset_f -! -! PURPOSE -! Retrieves the offset of a field of a compound datatype. -! -! 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 -! -! 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 - INTEGER, INTENT(IN) :: member_no - INTEGER(SIZE_T), INTENT(OUT) :: offset - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tget_member_offset_c(type_id, member_no, offset ) BIND(C,NAME='h5tget_member_offset_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(IN) :: member_no - INTEGER(SIZE_T), INTENT(OUT) :: offset - END FUNCTION h5tget_member_offset_c - END INTERFACE - - hdferr = h5tget_member_offset_c(type_id, member_no, offset ) - END SUBROUTINE h5tget_member_offset_f -! -!****s* H5T/h5tget_member_index_f -! -! NAME -! h5tget_member_index_f -! -! PURPOSE -! Retrieves the index of a compound or enumeration datatype member. -! -! 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 -! -! 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 - CHARACTER(LEN=*), INTENT(IN) :: name - INTEGER, INTENT(OUT) :: index - INTEGER, INTENT(OUT) :: hdferr -!***** - INTEGER :: namelen ! Name length - - INTERFACE - INTEGER FUNCTION h5tget_member_index_c(type_id, name, namelen, index) BIND(C,NAME='h5tget_member_index_c') - IMPORT :: C_CHAR - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name - INTEGER, INTENT(IN) :: namelen - INTEGER, INTENT(OUT) :: index - END FUNCTION h5tget_member_index_c - END INTERFACE - - namelen = LEN(name) - hdferr = h5tget_member_index_c(type_id, name, namelen, index) - END SUBROUTINE h5tget_member_index_f - - -! !$! -! !$!****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 - INTEGER(HSIZE_T),DIMENSION(*), INTENT(OUT) :: dims - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tget_array_dims_c(type_id, dims) BIND(C,NAME='h5tget_array_dims_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER(HSIZE_T),DIMENSION(*), INTENT(OUT) :: dims - END FUNCTION h5tget_array_dims_c - END INTERFACE - - hdferr = h5tget_array_dims_c(type_id, dims) - - END SUBROUTINE h5tget_array_dims_f - -! -!****s* H5T/h5tget_array_ndims_f -! -! NAME -! h5tget_array_ndims_f -! -! PURPOSE -! Returns the rank of an array datatype. -! -! INPUTS -! type_id - array datatype identifier -! OUTPUTS -! ndims - number of array 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_ndims_f(type_id, ndims, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(OUT) :: ndims - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tget_array_ndims_c(type_id, ndims) BIND(C,NAME='h5tget_array_ndims_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(OUT) :: ndims - END FUNCTION h5tget_array_ndims_c - END INTERFACE - - hdferr = h5tget_array_ndims_c(type_id, ndims) - - END SUBROUTINE h5tget_array_ndims_f - -! -!****s* H5T/h5tget_super_f -! -! NAME -! h5tget_super_f -! -! PURPOSE -! Returns the base datatype from which a datatype is derived. -! -! INPUTS -! type_id - datatype identifier -! OUTPUTS -! base_type_id - identifier of the base type -! 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_super_f(type_id, base_type_id, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER(HID_T), INTENT(OUT) :: base_type_id - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tget_super_c(type_id, base_type_id) BIND(C,NAME='h5tget_super_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER(HID_T), INTENT(OUT) :: base_type_id - END FUNCTION h5tget_super_c - END INTERFACE - - hdferr = h5tget_super_c(type_id, base_type_id) - - END SUBROUTINE h5tget_super_f - -! -!****s* H5T/h5tget_member_type_f -! -! NAME -! h5tget_member_type_f -! -! PURPOSE -! Returns the datatype of the specified member. -! -! INPUTS -! type_id - compound datatype identifier -! field_idx - field index (0-based) -! -! OUTPUTS -! datatype - identifier of the member's datatype -! 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_member_type_f(type_id, field_idx, datatype, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(IN) :: field_idx - INTEGER(HID_T), INTENT(OUT) :: datatype - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tget_member_type_c(type_id, field_idx , datatype) & - BIND(C,NAME='h5tget_member_type_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(IN) :: field_idx - INTEGER(HID_T), INTENT(OUT) :: datatype - END FUNCTION h5tget_member_type_c - END INTERFACE - - hdferr = h5tget_member_type_c(type_id, field_idx , datatype) - END SUBROUTINE h5tget_member_type_f - -! -!****s* H5T/h5tcreate_f -! -! NAME -! h5tcreate_f -! -! PURPOSE -! Creates a new datatype. -! -! INPUTS -! class - Datatype class can be one of: -! H5T_COMPOUND_F -! H5T_ENUM_F -! H5T_OPAQUE_F -! H5T_STRING_F -! -! size - Size of the datatype. -! OUTPUTS -! type_id - 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 h5tcreate_f(class, size, type_id, hdferr) - IMPLICIT NONE - INTEGER , INTENT(IN) :: class - INTEGER(SIZE_T), INTENT(IN) :: size - INTEGER(HID_T) , INTENT(OUT) :: type_id - INTEGER , INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tcreate_c(class, size, type_id) BIND(C,NAME='h5tcreate_c') - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE - INTEGER, INTENT(IN) :: class - INTEGER(SIZE_T), INTENT(IN) :: size - INTEGER(HID_T), INTENT(OUT) :: type_id - END FUNCTION h5tcreate_c - END INTERFACE - - hdferr = h5tcreate_c(class, size, type_id) - END SUBROUTINE h5tcreate_f - -! -!****s* H5T/h5tinsert_f -! -! NAME -! h5tinsert_f -! -! PURPOSE -! Adds a new member to a compound datatype. -! -! INPUTS -! type_id - compound datatype 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 -! -! 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 - CHARACTER(LEN=*), INTENT(IN) :: name - INTEGER(SIZE_T), INTENT(IN) :: offset - INTEGER(HID_T), INTENT(IN) :: field_id - INTEGER, INTENT(OUT) :: hdferr -!***** - INTEGER :: namelen - - INTERFACE - INTEGER FUNCTION h5tinsert_c(type_id, name, namelen, offset, field_id) BIND(C,NAME='h5tinsert_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name - INTEGER(SIZE_T), INTENT(IN) :: offset - INTEGER(HID_T), INTENT(IN) :: field_id - INTEGER :: namelen - END FUNCTION h5tinsert_c - END INTERFACE - - namelen = LEN(name) - hdferr = h5tinsert_c(type_id, name, namelen, offset, field_id ) - END SUBROUTINE h5tinsert_f - -! -!****s* H5T/h5tpack_f -! -! NAME -! h5tpack_f -! -! PURPOSE -! Recursively removes padding from within a compound datatype. -! -! INPUTS -! type_id - compound datatype 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). March 7, 2001 -! SOURCE - SUBROUTINE h5tpack_f(type_id, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tpack_c(type_id) BIND(C,NAME='h5tpack_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - END FUNCTION h5tpack_c - END INTERFACE - - hdferr = h5tpack_c(type_id) - END SUBROUTINE h5tpack_f - -! !$! -! !$!****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 - INTEGER, INTENT(IN) :: rank - INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: dims - INTEGER(HID_T), INTENT(OUT) :: type_id - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tarray_create_c(base_id, rank, dims, type_id) BIND(C,NAME='h5tarray_create_c') - IMPORT :: HID_T, HSIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: base_id - INTEGER, INTENT(IN) :: rank - INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: dims - INTEGER(HID_T), INTENT(OUT) :: type_id - END FUNCTION h5tarray_create_c - END INTERFACE - - hdferr = h5tarray_create_c(base_id, rank, dims, type_id) - - END SUBROUTINE h5tarray_create_f - -! -!****s* H5T/h5tenum_create_f -! -! NAME -! h5tenum_create_f -! -! PURPOSE -! Creates a new enumeration datatype. -! -! 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 -! -! 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 - INTEGER(HID_T), INTENT(OUT) :: new_type_id - INTEGER, INTENT(OUT) :: hdferr -!***** - - INTERFACE - INTEGER FUNCTION h5tenum_create_c(parent_id, new_type_id) BIND(C,NAME='h5tenum_create_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: parent_id - INTEGER(HID_T), INTENT(OUT) :: new_type_id - END FUNCTION h5tenum_create_c - END INTERFACE - - hdferr = h5tenum_create_c(parent_id, new_type_id) - END SUBROUTINE h5tenum_create_f -! -!****s* H5T/h5tenum_nameof_f -! -! NAME -! h5tenum_nameof_f -! -! PURPOSE -! Returns the symbol name corresponding to a specified -! member of an enumeration datatype. -! -! 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 -! -! 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 - CHARACTER(LEN=*), INTENT(OUT) :: name - INTEGER(SIZE_T), INTENT(IN) :: namelen - INTEGER, INTENT(IN) :: value - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tenum_nameof_c(type_id, value, name, namelen) BIND(C,NAME='h5tenum_nameof_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: name - INTEGER(SIZE_T), INTENT(IN) :: namelen - INTEGER, INTENT(IN) :: value - 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 -! -!****s* H5T/h5tenum_valuof_f -! -! NAME -! h5tenum_valuof_f -! -! PURPOSE -! Returns the value corresponding to a specified -! member of an enumeration datatype. -! -! INPUTS -! type_id - datatype identifier -! name - symbol name -! OUTPUTS -! value - value of the enumeration datatype -! 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 h5tenum_valueof_f(type_id, name, value, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - CHARACTER(LEN=*), INTENT(IN) :: name - INTEGER, INTENT(OUT) :: value - INTEGER, INTENT(OUT) :: hdferr -!***** - INTEGER :: namelen - - INTERFACE - INTEGER FUNCTION h5tenum_valueof_c(type_id, name, namelen, value) & - BIND(C,NAME='h5tenum_valueof_c') - IMPORT :: C_CHAR - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name - INTEGER, INTENT(IN) :: namelen - INTEGER, INTENT(OUT) :: value - END FUNCTION h5tenum_valueof_c - END INTERFACE - - namelen = LEN(name) - hdferr = h5tenum_valueof_c(type_id, name, namelen, value) - END SUBROUTINE h5tenum_valueof_f - -! -!****s* H5T/h5tget_member_value_f -! -! NAME -! h5tget_member_value_f -! -! PURPOSE -! Returns the value of an enumeration datatype member. -! -! 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 -! -! 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 - INTEGER, INTENT(IN) :: member_no - INTEGER, INTENT(OUT) :: value - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tget_member_value_c(type_id, member_no, value) & - BIND(C,NAME='h5tget_member_value_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(IN) :: member_no - INTEGER, INTENT(OUT) :: value - END FUNCTION h5tget_member_value_c - END INTERFACE - - hdferr = h5tget_member_value_c(type_id, member_no, value) - END SUBROUTINE h5tget_member_value_f - -! -!****s* H5T/h5tset_tag_f -! -! NAME -! h5tset_tag_f -! -! PURPOSE -! Tags an opaque datatype. -! -! 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 -! -! 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 - CHARACTER(LEN=*), INTENT(IN) :: tag - INTEGER, INTENT(OUT) :: hdferr -!***** - INTEGER :: taglen - - INTERFACE - INTEGER FUNCTION h5tset_tag_c(type_id, tag, taglen) BIND(C,NAME='h5tset_tag_c') - IMPORT :: C_CHAR - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: tag - INTEGER :: taglen - END FUNCTION h5tset_tag_c - END INTERFACE - - taglen = LEN(tag) - hdferr = h5tset_tag_c(type_id, tag, taglen) - END SUBROUTINE h5tset_tag_f - -! -!****s* H5T/h5tget_tag_f -! -! NAME -! h5tget_tag_f -! -! PURPOSE -! Gets the tag associated with an opaque datatype. -! -! INPUTS -! type_id - identifier for opaque datatype -! OUTPUTS -! tag - unique ASCII string associated with opaque -! datatype -! taglen - Length of tag -! 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_tag_f(type_id, tag,taglen, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - CHARACTER(LEN=*), INTENT(OUT) :: tag - INTEGER, INTENT(OUT) :: taglen - INTEGER, INTENT(OUT) :: hdferr -!***** - INTEGER(SIZE_T):: tag_size ! Declared character length of tab - INTERFACE - INTEGER FUNCTION h5tget_tag_c(type_id, tag, tag_size, taglen) & - BIND(C,NAME='h5tget_tag_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: tag - INTEGER(SIZE_T), INTENT(IN) :: tag_size - INTEGER, INTENT(OUT) :: taglen - END FUNCTION h5tget_tag_c - END INTERFACE - - tag_size = LEN(tag) - hdferr = h5tget_tag_c(type_id, tag, tag_size, taglen ) - END SUBROUTINE h5tget_tag_f - -! -!****s* H5T/h5tvlen_create_f -! -! NAME -! h5tvlen_create_f -! -! PURPOSE -! Creates a new variable-length datatype. -! -! INPUTS -! type_id - identifier iof base datatype -! OUTPUTS -! vltype_id - identifier for VL datatype -! hdferr - Returns 0 if successful and -1 if fails -! -! 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 - INTEGER(HID_T), INTENT(OUT) :: vltype_id - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tvlen_create_c(type_id, vltype_id) BIND(C,NAME='h5tvlen_create_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER(HID_T), INTENT(OUT) :: vltype_id - END FUNCTION h5tvlen_create_c - END INTERFACE - - hdferr = h5tvlen_create_c(type_id, vltype_id) - END SUBROUTINE h5tvlen_create_f - -! -!****s* H5T/h5tis_variable_str_f -! -! NAME -! h5tis_variable_str_f -! -! PURPOSE -! Determines whether a dattype is a variable string. -! -! INPUTS -! type_id - datartpe identifier -! OUTPUTS -! status - flag to indicate if datatype -! is a variable string ( TRUE or FALSE) -! hdferr - Returns 0 if successful and -1 if fails -! -! 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 - LOGICAL, INTENT(OUT) :: status - INTEGER, INTENT(OUT) :: hdferr -!***** - INTEGER :: flag ! "TRUE/FALSE/ERROR from C" - - INTERFACE - INTEGER FUNCTION h5tis_variable_str_c(type_id, flag) & - BIND(C,NAME='h5tis_variable_str_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER :: flag - END FUNCTION h5tis_variable_str_c - END INTERFACE - - hdferr = h5tis_variable_str_c(type_id, flag) - status = .TRUE. - IF (flag .EQ. 0) status = .FALSE. - - END SUBROUTINE h5tis_variable_str_f - -! -!****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 - INTEGER, INTENT(IN) :: member_no - INTEGER, INTENT(OUT) :: class - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tget_member_class_c(type_id, member_no, class) & - BIND(C,NAME='h5tget_member_class_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(IN) :: member_no - INTEGER, INTENT(OUT) :: class - END FUNCTION h5tget_member_class_c - END INTERFACE - - hdferr = h5tget_member_class_c(type_id, member_no, class) - - END SUBROUTINE h5tget_member_class_f - -! -!****s* H5T/h5tcommit_anon_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. -! -! 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. -! -! 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. -! -! 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 - INTEGER(HID_T), INTENT(IN) :: dtype_id - INTEGER, INTENT(OUT) :: hdferr - INTEGER(HID_T), OPTIONAL, INTENT(IN) :: tcpl_id - INTEGER(HID_T), OPTIONAL, INTENT(IN) :: tapl_id -!***** - INTEGER(HID_T) :: tcpl_id_default - INTEGER(HID_T) :: tapl_id_default - - INTERFACE - INTEGER FUNCTION h5tcommit_anon_c(loc_id, dtype_id, & - tcpl_id_default, tapl_id_default) BIND(C,NAME='h5tcommit_anon_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: loc_id - INTEGER(HID_T), INTENT(IN) :: dtype_id - INTEGER(HID_T) :: tcpl_id_default - INTEGER(HID_T) :: tapl_id_default - END FUNCTION h5tcommit_anon_c - END INTERFACE - - tcpl_id_default = H5P_DEFAULT_F - tapl_id_default = H5P_DEFAULT_F - - IF(PRESENT(tcpl_id)) tcpl_id_default = tcpl_id - IF(PRESENT(tapl_id)) tapl_id_default = tapl_id - - hdferr = h5tcommit_anon_c(loc_id, dtype_id, & - tcpl_id_default, tapl_id_default ) - - END SUBROUTINE h5tcommit_anon_f - -! -!****s* H5T/h5tcommitted_f -! -! NAME -! h5tcommitted_f -! -! PURPOSE -! Determines whether a datatype is a named type or a transient type. -! -! INPUTS -! dtype_id - A datatype identifier. -! -! 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 -! -! SOURCE - SUBROUTINE h5tcommitted_f(dtype_id, committed, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: dtype_id - LOGICAL, INTENT(OUT) :: committed - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tcommitted_c(dtype_id) BIND(C,NAME='h5tcommitted_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: dtype_id - END FUNCTION h5tcommitted_c - END INTERFACE - - hdferr = h5tcommitted_c(dtype_id) - - IF(hdferr.GT.0)THEN - committed = .TRUE. - hdferr = 0 - ELSE IF(hdferr.EQ.0)THEN - committed = .FALSE. - hdferr = 0 - ELSE - hdferr = -1 - ENDIF - - END SUBROUTINE h5tcommitted_f - -! -!****s* H5T/H5Tdecode_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 - Returns 0 if successful and -1 if fails -! -! AUTHOR -! M. Scot Breitenfeld -! April 9, 2008 -! -! SOURCE - SUBROUTINE h5tdecode_f(buf, obj_id, hdferr) - IMPLICIT NONE - CHARACTER(LEN=*), INTENT(IN) :: buf - INTEGER(HID_T), INTENT(OUT) :: obj_id - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tdecode_c(buf, obj_id) BIND(C,NAME='h5tdecode_c') - IMPORT :: C_CHAR - IMPORT :: HID_T - IMPLICIT NONE - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: buf - INTEGER(HID_T), INTENT(OUT) :: obj_id ! Object ID - END FUNCTION h5tdecode_c - END INTERFACE - - hdferr = h5tdecode_c(buf, obj_id) - - END SUBROUTINE h5tdecode_f - -! -!****s* H5T/H5Tencode_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 - Returns 0 if successful and -1 if fails. -! -! 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 - CHARACTER(LEN=*), INTENT(OUT) :: buf - INTEGER(SIZE_T), INTENT(INOUT) :: nalloc - INTEGER, INTENT(OUT) :: hdferr -!***** - - INTERFACE - INTEGER FUNCTION h5tencode_c(buf, obj_id, nalloc) BIND(C,NAME='h5tencode_c') - IMPORT :: C_CHAR - IMPORT :: HID_T, SIZE_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: obj_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: buf - INTEGER(SIZE_T), INTENT(INOUT) :: nalloc - END FUNCTION h5tencode_c - END INTERFACE - - hdferr = h5tencode_c(buf, obj_id, nalloc) - - END SUBROUTINE h5tencode_f - -! -!****s* H5T/h5tget_create_plist_f -! -! NAME -! h5tget_create_plist_f -! -! PURPOSE -! Returns a copy of a datatype creation property list. -! -! 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 - INTEGER(HID_T), INTENT(OUT) :: dtpl_id - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tget_create_plist_c(dtype_id, dtpl_id) BIND(C,NAME='h5tget_create_plist_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: dtype_id - INTEGER(HID_T), INTENT(OUT) :: dtpl_id - END FUNCTION h5tget_create_plist_c - END INTERFACE - - hdferr = h5tget_create_plist_c(dtype_id, dtpl_id) - END SUBROUTINE h5tget_create_plist_f - -! -!****s* H5T/h5tcompiler_conv_f -! -! NAME -! h5tcompiler_conv_f -! -! PURPOSE -! Check whether the library’s default conversion is hard conversion.R -! -! 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 - INTEGER(HID_T), INTENT(IN) :: dst_id - LOGICAL, INTENT(OUT) :: flag - INTEGER, INTENT(OUT) :: hdferr -!***** - INTEGER :: c_flag - - INTERFACE - INTEGER FUNCTION h5tcompiler_conv_c(src_id, dst_id, c_flag) BIND(C,NAME='h5tcompiler_conv_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: src_id - INTEGER(HID_T), INTENT(IN) :: dst_id - INTEGER :: c_flag - END FUNCTION h5tcompiler_conv_c - END INTERFACE - - hdferr = h5tcompiler_conv_c(src_id, dst_id, c_flag) - - flag = .FALSE. - IF(c_flag .GT. 0) flag = .TRUE. - - END SUBROUTINE h5tcompiler_conv_f - -! -!****s* H5T/h5tget_native_type_f -! -! NAME -! h5tget_native_type_f -! -! PURPOSE -! Returns the native datatype of a specified datatype. -! -! INPUTS -! dtype_id - Datatype identifier for the dataset datatype. -! -! direction - Direction of search: -! H5T_DIR_DEFAULT, default direction is inscendent, -! H5T_DIR_ASCEND , in inscendent order, -! H5T_DIR_DESCEND, in descendent order. -! -! * NOTE: In C it is defined as a structure: H5T_direction_t -! -! 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 - INTEGER, INTENT(IN) :: direction - INTEGER(HID_T), INTENT(OUT) :: native_dtype_id - INTEGER, INTENT(OUT) :: hdferr -!***** - INTERFACE - INTEGER FUNCTION h5tget_native_type_c(dtype_id, direction, native_dtype_id) BIND(C,NAME='h5tget_native_type_c') - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: dtype_id - INTEGER, INTENT(IN) :: direction - INTEGER(HID_T), INTENT(OUT) :: native_dtype_id - END FUNCTION h5tget_native_type_c - END INTERFACE - - hdferr = h5tget_native_type_c(dtype_id, direction, native_dtype_id) - END SUBROUTINE h5tget_native_type_f - -!****s* H5T/H5Tconvert_f_F03 -! -! 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 -! -! Fortran2003 Interface: - SUBROUTINE h5tconvert_f(src_id, dst_id, nelmts, buf, hdferr, background, plist_id) - 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) & - BIND(C, NAME='h5tconvert_c') - IMPORT :: c_ptr - IMPORT :: HID_T, SIZE_T - 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) , 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 -! -!****s* H5T/h5tenum_insert_f90 -! -! NAME -! h5tenum_insert_f -! -! PURPOSE -! Inserts a new enumeration datatype member. -! -! INPUTS -! type_id - Datatype identifier for the enumeration datatype. -! name - Datatype identifier. -! value - Value of the new member. -! 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 h5tenum_insert_f90(type_id, name, value, hdferr) - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - CHARACTER(LEN=*), INTENT(IN) :: name - INTEGER, INTENT(IN) :: value - INTEGER, INTENT(OUT) :: hdferr -!***** - INTEGER :: namelen - INTERFACE - INTEGER FUNCTION h5tenum_insert_c(type_id, name, namelen, value) BIND(C,NAME='h5tenum_insert_c') - IMPORT :: C_CHAR - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name - INTEGER, INTENT(IN) :: value - INTEGER :: namelen - END FUNCTION h5tenum_insert_c - END INTERFACE - - namelen = LEN(name) - hdferr = h5tenum_insert_c(type_id, name, namelen, value) - END SUBROUTINE h5tenum_insert_f90 - -! -!****s* H5T/h5tenum_insert_f03 -! -! NAME -! h5tenum_insert_f -! -! PURPOSE -! Inserts a new enumeration datatype member. -! -! INPUTS -! type_id - Datatype identifier for the enumeration datatype. -! name - Datatype identifier. -! value - Pointer to the value of the new member. -! OUTPUTS -! hdferr - Returns 0 if successful and -1 if fails -! -! AUTHOR -! M. Scot Breitenfeld -! February 6, 2015 -! -! HISTORY -! F2003 implementation of function -! SOURCE - SUBROUTINE h5tenum_insert_f03(type_id, name, value, hdferr) - IMPLICIT NONE - INTEGER(HID_T) , INTENT(IN) :: type_id - CHARACTER(LEN=*), INTENT(IN) :: name - TYPE(C_PTR) , INTENT(IN) :: value - INTEGER, INTENT(OUT) :: hdferr -!***** - INTEGER :: namelen - - INTERFACE - INTEGER FUNCTION h5tenum_insert_ptr_c(type_id, name, namelen, value) & - BIND(C, NAME='h5tenum_insert_ptr_c') - IMPORT :: C_CHAR, C_PTR - IMPORT :: HID_T - IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: type_id - CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name - INTEGER :: namelen - TYPE(C_PTR), VALUE :: value - END FUNCTION h5tenum_insert_ptr_c - END INTERFACE - - namelen = LEN(name) - hdferr = h5tenum_insert_ptr_c(type_id, name, namelen, value) - END SUBROUTINE h5tenum_insert_f03 - -END MODULE H5T diff --git a/fortran/src/H5Tff.f90 b/fortran/src/H5Tff.f90 new file mode 100644 index 0000000..4b4c0b6 --- /dev/null +++ b/fortran/src/H5Tff.f90 @@ -0,0 +1,3105 @@ +!****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. * +! 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' in the fortran/src directory. +! This is needed for Windows based operating systems. +! +!***** + +MODULE H5T + + USE H5GLOBAL + +CONTAINS + +! +!****s* H5T/h5topen_f +! +! NAME +! h5topen_f +! +! PURPOSE +! Opens named datatype. +! +! 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. +! +! 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 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 + CHARACTER(LEN=*), INTENT(IN) :: name ! Datatype name within file or group + 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 + + INTERFACE + INTEGER FUNCTION h5topen_c(loc_id, name, namelen, type_id, tapl_id_default) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TOPEN_C'::h5topen_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(OUT) :: type_id + INTEGER(HID_T) :: tapl_id_default + END FUNCTION h5topen_c + END INTERFACE + + namelen = LEN(name) + + tapl_id_default = H5P_DEFAULT_F + IF(PRESENT(tapl_id)) tapl_id_default = tapl_id + + hdferr = h5topen_c(loc_id, name, namelen, type_id, tapl_id_default) + END SUBROUTINE h5topen_f +! +!****s* H5T/h5tcommit_f +! +! NAME +! h5tcommit_f +! +! PURPOSE +! Commits a transient datatype to a file, creating a +! new named datatype. +! +! 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 +! +! 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 +! +! SOURCE + SUBROUTINE h5tcommit_f(loc_id, name, type_id, hdferr, & + lcpl_id, tcpl_id, tapl_id ) + IMPLICIT NONE + INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier + CHARACTER(LEN=*), INTENT(IN) :: name + ! Datatype name within file or group + INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier + INTEGER, INTENT(OUT) :: hdferr ! Error code + 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 + + INTEGER(HID_T) :: lcpl_id_default + INTEGER(HID_T) :: tcpl_id_default + INTEGER(HID_T) :: tapl_id_default + + INTERFACE + INTEGER FUNCTION h5tcommit_c(loc_id, name, namelen, type_id, & + lcpl_id_default, tcpl_id_default, tapl_id_default ) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TCOMMIT_C'::h5tcommit_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) :: type_id + INTEGER(HID_T) :: lcpl_id_default + INTEGER(HID_T) :: tcpl_id_default + INTEGER(HID_T) :: tapl_id_default + END FUNCTION h5tcommit_c + END INTERFACE + + lcpl_id_default = H5P_DEFAULT_F + tcpl_id_default = H5P_DEFAULT_F + tapl_id_default = H5P_DEFAULT_F + + IF (PRESENT(lcpl_id)) lcpl_id_default = lcpl_id + IF (PRESENT(tcpl_id)) tcpl_id_default = tcpl_id + IF (PRESENT(tapl_id)) tapl_id_default = tapl_id + + namelen = LEN(name) + + hdferr = h5tcommit_c(loc_id, name, namelen, type_id, & + lcpl_id_default, tcpl_id_default, tapl_id_default ) + + END SUBROUTINE h5tcommit_f +! +!****s* H5T/h5tcopy_f +! +! NAME +! h5tcopy_f +! +! PURPOSE +! Creates a copy of exisiting datatype. +! +! 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 +! +! 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 +!***** + INTERFACE + INTEGER FUNCTION h5tcopy_c(type_id, new_type_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TCOPY_C'::h5tcopy_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER(HID_T), INTENT(OUT) :: new_type_id + END FUNCTION h5tcopy_c + END INTERFACE + + hdferr = h5tcopy_c(type_id, new_type_id) + END SUBROUTINE h5tcopy_f +! +!****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 + INTERFACE + INTEGER FUNCTION h5tequal_c(type1_id, type2_id, c_flag) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TEQUAL_C'::h5tequal_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type1_id + INTEGER(HID_T), INTENT(IN) :: type2_id + INTEGER :: c_flag + END FUNCTION h5tequal_c + END INTERFACE + + flag = .FALSE. + hdferr = h5tequal_c(type1_id, type2_id, c_flag) + if(c_flag .gt. 0) flag = .TRUE. + END SUBROUTINE h5tequal_f +! +!****s* H5T/h5tclose_f +! +! NAME +! h5tclose_f +! +! PURPOSE +! Releases a datatype. +! +! INPUTS +! type_id - datatype 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). 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 +!***** + INTERFACE + INTEGER FUNCTION h5tclose_c(type_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TCLOSE_C'::h5tclose_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + END FUNCTION h5tclose_c + END INTERFACE + + hdferr = h5tclose_c(type_id) + END SUBROUTINE h5tclose_f +! +!****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) +! H5T_VLEN_F (9) +! H5T_ARRAY_F (10) +! 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 + INTEGER, INTENT(OUT) :: class + INTEGER, INTENT(OUT) :: hdferr +!***** + INTERFACE + INTEGER FUNCTION h5tget_class_c(type_id, class) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_CLASS_C'::h5tget_class_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER, INTENT(OUT) :: class + END FUNCTION h5tget_class_c + END INTERFACE + + hdferr = h5tget_class_c(type_id, class) + END SUBROUTINE h5tget_class_f +! +!****s* H5T/h5tget_size_f +! +! NAME +! h5tget_size_f +! +! PURPOSE +! Returns the size of a datatype. +! +! INPUTS +! type_id - datatype identifier +! OUTPUTS +! size - datatype size +! 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_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 +!***** + INTERFACE + INTEGER FUNCTION h5tget_size_c(type_id, size) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_SIZE_C'::h5tget_size_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER(SIZE_T), INTENT(OUT) :: size + END FUNCTION h5tget_size_c + END INTERFACE + + hdferr = h5tget_size_c(type_id, size) + END SUBROUTINE h5tget_size_f + +! +!****s* H5T/h5tset_size_f +! +! NAME +! h5tset_size_f +! +! PURPOSE +! Sets the total size for an atomic datatype. +! +! INPUTS +! type_id - datatype identifier +! size - size of the datatype +! 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_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 +!***** + INTERFACE + INTEGER FUNCTION h5tset_size_c(type_id, size) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TSET_SIZE_C'::h5tset_size_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER(SIZE_T), INTENT(IN) :: size + END FUNCTION h5tset_size_c + END INTERFACE + + hdferr = h5tset_size_c(type_id, size) + END SUBROUTINE h5tset_size_f + +! +!****s* H5T/h5tget_order_f +! +! NAME +! h5tget_order_f +! +! PURPOSE +! Returns the byte order of an atomic datatype. +! +! 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 +! +! HISTORY +! Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). March 7, 2001 +! +! 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 + +! +!****s* H5T/h5tget_precision_f +! +! NAME +! h5tget_precision_f +! +! PURPOSE +! Returns the precision of an atomic datatype. +! +! INPUTS +! type_id - datatype identifier +! OUTPUTS +! precision - precision of the datatype +! 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_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 +!***** + INTERFACE + INTEGER FUNCTION h5tget_precision_c (type_id, precision) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_PRECISION_C'::h5tget_precision_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER(SIZE_T), INTENT(OUT) :: precision + END FUNCTION h5tget_precision_c + END INTERFACE + + hdferr = h5tget_precision_c(type_id, precision) + END SUBROUTINE h5tget_precision_f + +! +!****s* H5T/h5tset_precision_f +! +! NAME +! h5tset_precision_f +! +! PURPOSE +! Sets the precision of an atomic datatype. +! +! INPUTS +! type_id - datatype identifier +! precision - datatype precision +! 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_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 +!***** + INTERFACE + INTEGER FUNCTION h5tset_precision_c (type_id, precision) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TSET_PRECISION_C'::h5tset_precision_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER(SIZE_T), INTENT(IN) :: precision + END FUNCTION h5tset_precision_c + END INTERFACE + + hdferr = h5tset_precision_c(type_id, precision) + END SUBROUTINE h5tset_precision_f + +! +!****s* H5T/h5tget_offset_f +! +! NAME +! h5tget_offset_f +! +! PURPOSE +! Retrieves the bit offset of the first significant bit. +! +! INPUTS +! type_id - datatype identifier +! OUTPUTS +! offset - offset value +! 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_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 +!***** + INTERFACE + INTEGER FUNCTION h5tget_offset_c(type_id, offset) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_OFFSET_C'::h5tget_offset_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER(SIZE_T), INTENT(OUT) :: offset + END FUNCTION h5tget_offset_c + END INTERFACE + + hdferr = h5tget_offset_c(type_id, offset) + END SUBROUTINE h5tget_offset_f + +! +!****s* H5T/h5tset_offset_f +! +! NAME +! h5tset_offset_f +! +! PURPOSE +! Sets the bit offset of the first significant bit. +! +! INPUTS +! type_id - datatype identifier +! offset - offset value +! 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_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 +!***** + INTERFACE + INTEGER FUNCTION h5tset_offset_c(type_id, offset) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TSET_OFFSET_C'::h5tset_offset_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER(SIZE_T), INTENT(IN) :: offset + END FUNCTION h5tset_offset_c + END INTERFACE + + hdferr = h5tset_offset_c(type_id, offset) + END SUBROUTINE h5tset_offset_f + +! +!****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 + ! least significant bit + INTEGER, INTENT(OUT) :: msbpad ! padding type of the + ! most significant bit + ! Possible values of padding type are: + ! H5T__PAD_ZERO_F = 0 + ! H5T__PAD_ONE_F = 1 + ! H5T__PAD_BACKGROUND_F = 2 + ! H5T_PAD_ERROR_F = -1 + ! H5T_PAD_NPAD_F = 3 + + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + INTERFACE + INTEGER FUNCTION h5tget_pad_c(type_id, lsbpad, msbpad) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_PAD_C'::h5tget_pad_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER, INTENT(OUT) :: lsbpad + INTEGER, INTENT(OUT) :: msbpad + END FUNCTION h5tget_pad_c + END INTERFACE + + hdferr = h5tget_pad_c(type_id, lsbpad, msbpad) + END SUBROUTINE h5tget_pad_f + +! +!****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 + ! least significant bit + INTEGER, INTENT(IN) :: msbpad ! padding type of the + ! most significant bit + ! Possible values of padding type are: + ! H5T_PAD_ZERO_F = 0 + ! H5T_PAD_ONE_F = 1 + ! H5T_PAD_BACKGROUND_F = 2 + ! H5T_PAD_ERROR_F = -1 + ! H5T_PAD_NPAD_F = 3 + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + INTERFACE + INTEGER FUNCTION h5tset_pad_c(type_id, lsbpad, msbpad) + USE H5GLOBAL + INTEGER(HID_T), INTENT(IN) :: type_id + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TSET_PAD_C'::h5tset_pad_c + !DEC$ENDIF + INTEGER, INTENT(IN) :: lsbpad + INTEGER, INTENT(IN) :: msbpad + END FUNCTION h5tset_pad_c + END INTERFACE + + hdferr = h5tset_pad_c(type_id, lsbpad, msbpad) + END SUBROUTINE h5tset_pad_f + +! +!****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 + !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 + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + + INTERFACE + INTEGER FUNCTION h5tget_sign_c(type_id, sign) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_SIGN_C'::h5tget_sign_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER, INTENT(OUT) :: sign + END FUNCTION h5tget_sign_c + END INTERFACE + + hdferr = h5tget_sign_c(type_id, sign) + END SUBROUTINE h5tget_sign_f + +! +!****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 + !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 + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + + INTERFACE + INTEGER FUNCTION h5tset_sign_c(type_id, sign) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TSET_SIGN_C'::h5tset_sign_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER, INTENT(IN) :: sign + END FUNCTION h5tset_sign_c + END INTERFACE + + hdferr = h5tset_sign_c(type_id, sign) + END SUBROUTINE h5tset_sign_f + +! +!****s* H5T/h5tget_fields_f +! +! NAME +! h5tget_fields_f +! +! PURPOSE +! Retrieves floating point datatype bit field information. +! +! 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 +! +! 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 + INTEGER(SIZE_T), INTENT(OUT) :: epos ! exponent bit-position + INTEGER(SIZE_T), INTENT(OUT) :: esize ! size of exponent in bits + 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 +!***** + + INTERFACE + INTEGER FUNCTION h5tget_fields_c(type_id, spos, epos, esize, mpos, msize) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_FIELDS_C'::h5tget_fields_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER(SIZE_T), INTENT(OUT) :: spos + INTEGER(SIZE_T), INTENT(OUT) :: epos + INTEGER(SIZE_T), INTENT(OUT) :: esize + INTEGER(SIZE_T), INTENT(OUT) :: mpos + INTEGER(SIZE_T), INTENT(OUT) :: msize + END FUNCTION h5tget_fields_c + END INTERFACE + + hdferr = h5tget_fields_c(type_id, spos, epos, esize, mpos, msize) + END SUBROUTINE h5tget_fields_f + +! +!****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 + INTEGER(SIZE_T), INTENT(IN) :: epos ! exponent bit-position + INTEGER(SIZE_T), INTENT(IN) :: esize ! size of exponent in bits + 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 +!***** + + INTERFACE + INTEGER FUNCTION h5tset_fields_c(type_id, spos, epos, esize, mpos, msize) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TSET_FIELDS_C'::h5tset_fields_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER(SIZE_T), INTENT(IN) :: spos + INTEGER(SIZE_T), INTENT(IN) :: epos + INTEGER(SIZE_T), INTENT(IN) :: esize + INTEGER(SIZE_T), INTENT(IN) :: mpos + INTEGER(SIZE_T), INTENT(IN) :: msize + END FUNCTION h5tset_fields_c + END INTERFACE + + hdferr = h5tset_fields_c(type_id, spos, epos, esize, mpos, msize) + END SUBROUTINE h5tset_fields_f + +! +!****s* H5T/h5tget_ebias_f +! +! NAME +! h5tget_ebias_f +! +! PURPOSE +! Retrieves the exponent bias of a floating-point type. +! +! INPUTS +! type_id - datatype identifier +! OUTPUTS +! ebias - datatype exponent bias +! 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_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 +!***** + + INTERFACE + INTEGER FUNCTION h5tget_ebias_c(type_id, ebias) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_EBIAS_C'::h5tget_ebias_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER(SIZE_T), INTENT(OUT) :: ebias + END FUNCTION h5tget_ebias_c + END INTERFACE + + hdferr = h5tget_ebias_c(type_id, ebias) + END SUBROUTINE h5tget_ebias_f + +! +!****s* H5T/h5tset_ebias_f +! +! NAME +! h5tset_ebias_f +! +! PURPOSE +! Sets the exponent bias of a floating-point type. +! +! INPUTS +! type_id - datatype identifier +! ebias - datatype exponent bias +! 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_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 +!***** + + INTERFACE + INTEGER FUNCTION h5tset_ebias_c(type_id, ebias) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TSET_EBIAS_C'::h5tset_ebias_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER(SIZE_T), INTENT(IN) :: ebias + END FUNCTION h5tset_ebias_c + END INTERFACE + + hdferr = h5tset_ebias_c(type_id, ebias) + END SUBROUTINE h5tset_ebias_f + +! +!****s* H5T/h5tget_norm_f +! +! NAME +! h5tget_norm_f +! +! PURPOSE +! Retrieves mantissa normalization of a floating-point +! datatype. +! +! 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 +! +! 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 + !Valid normalization types are: + !H5T_NORM_IMPLIED_F(0),MSB of mantissa is not + !stored, always 1, H5T_NORM_MSBSET_F(1), MSB of + !mantissa is always 1, H5T_NORM_NONE_F(2) + !Mantissa is not normalize + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + + INTERFACE + INTEGER FUNCTION h5tget_norm_c(type_id, norm) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_NORM_C'::h5tget_norm_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER, INTENT(OUT) :: norm + END FUNCTION h5tget_norm_c + END INTERFACE + + hdferr = h5tget_norm_c(type_id, norm) + END SUBROUTINE h5tget_norm_f + +! +!****s* H5T/h5tset_norm_f +! +! NAME +! h5tset_norm_f +! +! PURPOSE +! Sets the mantissa normalization of a floating-point datatype. +! +! 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 +! +! 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 + !Valid normalization types are: + !H5T_NORM_IMPLIED_F(0),MSB of mantissa is not + !stored, always 1, H5T_NORM_MSBSET_F(1), MSB of + !mantissa is always 1, H5T_NORM_NONE_F(2) + !Mantissa is not normalize + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + INTERFACE + INTEGER FUNCTION h5tset_norm_c(type_id, norm) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TSET_NORM_C'::h5tset_norm_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER, INTENT(IN) :: norm + END FUNCTION h5tset_norm_c + END INTERFACE + + hdferr = h5tset_norm_c(type_id, norm) + END SUBROUTINE h5tset_norm_f + +! +!****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 + ! in floating-point datatypes. + ! Possible values of padding type are: + ! H5T__PAD_ZERO_F = 0 + ! H5T__PAD_ONE_F = 1 + ! H5T__PAD_BACKGROUND_F = 2 + + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + INTERFACE + INTEGER FUNCTION h5tget_inpad_c(type_id, padtype) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_INPAD_C'::h5tget_inpad_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER, INTENT(OUT) :: padtype + END FUNCTION h5tget_inpad_c + END INTERFACE + + hdferr = h5tget_inpad_c(type_id, padtype) + END SUBROUTINE h5tget_inpad_f + +! +!****s* H5T/h5tset_inpad_f +! +! NAME +! h5tset_inpad_f +! +! PURPOSE +! Fills unused internal floating point bits. +! +! 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 +! +! 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 + ! in floating-point datatypes. + ! Possible values of padding type are: + ! H5T__PAD_ZERO_F = 0 + ! H5T__PAD_ONE_F = 1 + ! H5T__PAD_BACKGROUND_F = 2 + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + INTERFACE + INTEGER FUNCTION h5tset_inpad_c(type_id, padtype) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TSET_INPAD_C'::h5tset_inpad_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER, INTENT(IN) :: padtype + END FUNCTION h5tset_inpad_c + END INTERFACE + + hdferr = h5tset_inpad_c(type_id, padtype) + END SUBROUTINE h5tset_inpad_f + +! +!****s* H5T/h5tget_cset_f +! +! NAME +! h5tget_cset_f +! +! PURPOSE +! Retrieves the character set type of a string datatype. +! +! 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 +! +! 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 +!***** + INTERFACE + INTEGER FUNCTION h5tget_cset_c(type_id, cset) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_CSET_C'::h5tget_cset_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER, INTENT(OUT) :: cset + END FUNCTION h5tget_cset_c + END INTERFACE + + hdferr = h5tget_cset_c(type_id, cset) + END SUBROUTINE h5tget_cset_f + +! +!****s* H5T/h5tset_cset_f +! +! NAME +! h5tset_cset_f +! +! PURPOSE +! Sets character set to be used. +! +! 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 +! +! 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 of padding type are: + ! H5T_CSET_ASCII_F = 0 + ! H5T_CSET_UTF8_F + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + INTERFACE + INTEGER FUNCTION h5tset_cset_c(type_id, cset) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TSET_CSET_C'::h5tset_cset_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER, INTENT(IN) :: cset + END FUNCTION h5tset_cset_c + END INTERFACE + + hdferr = h5tset_cset_c(type_id, cset) + END SUBROUTINE h5tset_cset_f + +! +!****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 +!***** + INTERFACE + INTEGER FUNCTION h5tget_strpad_c(type_id, strpad) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_STRPAD_C'::h5tget_strpad_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER, INTENT(OUT) :: strpad + END FUNCTION h5tget_strpad_c + END INTERFACE + + hdferr = h5tget_strpad_c(type_id, strpad) + END SUBROUTINE h5tget_strpad_f + +! +!****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 +!***** + INTERFACE + INTEGER FUNCTION h5tset_strpad_c(type_id, strpad) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TSET_STRPAD_C'::h5tset_strpad_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER, INTENT(IN) :: strpad + END FUNCTION h5tset_strpad_c + END INTERFACE + + hdferr = h5tset_strpad_c(type_id, strpad) + END SUBROUTINE h5tset_strpad_f + +! +!****s* H5T/h5tget_nmembers_f +! +! NAME +! h5tget_nmembers_f +! +! PURPOSE +! Retrieves the number of fields in a compound datatype. +! +! INPUTS +! type_id - datatype identifier +! OUTPUTS +! num_members - number of members +! 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_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 +!***** + + INTERFACE + INTEGER FUNCTION h5tget_nmembers_c(type_id, num_members) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_NMEMBERS_C'::h5tget_nmembers_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER, INTENT(OUT) :: num_members + END FUNCTION h5tget_nmembers_c + END INTERFACE + + hdferr = h5tget_nmembers_c(type_id, num_members) + END SUBROUTINE h5tget_nmembers_f + +! +!****s* H5T/h5tget_member_name_f +! +! NAME +! h5tget_member_name_f +! +! PURPOSE +! Retrieves the name of a field of a compound datatype. +! +! 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 +! +! 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 + CHARACTER(LEN=*), INTENT(OUT) :: member_name !name of a field of + !a compound datatype + INTEGER, INTENT(OUT) :: namelen ! Length of the name + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + INTERFACE + INTEGER FUNCTION h5tget_member_name_c(type_id, index, member_name, namelen) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_MEMBER_NAME_C'::h5tget_member_name_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: member_name + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER, INTENT(IN) :: index + CHARACTER(LEN=*), INTENT(OUT) :: member_name + INTEGER, INTENT(OUT) :: namelen + END FUNCTION + END INTERFACE + + hdferr = h5tget_member_name_c(type_id, index, member_name, namelen) + END SUBROUTINE h5tget_member_name_f + +! +!****s* H5T/h5tget_member_offset_f +! +! NAME +! h5tget_member_offset_f +! +! PURPOSE +! Retrieves the offset of a field of a compound datatype. +! +! 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 +! +! 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 +!***** + INTERFACE + INTEGER FUNCTION h5tget_member_offset_c(type_id, member_no, offset ) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_MEMBER_OFFSET_C'::h5tget_member_offset_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER, INTENT(IN) :: member_no + INTEGER(SIZE_T), INTENT(OUT) :: offset + END FUNCTION h5tget_member_offset_c + END INTERFACE + + hdferr = h5tget_member_offset_c(type_id, member_no, offset ) + END SUBROUTINE h5tget_member_offset_f +! +!****s* H5T/h5tget_member_index_f +! +! NAME +! h5tget_member_index_f +! +! PURPOSE +! Retrieves the index of a compound or enumeration datatype member. +! +! 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 +! +! 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 + INTEGER FUNCTION h5tget_member_index_c(type_id, name, namelen, index) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_MEMBER_INDEX_C'::h5tget_member_index_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference ::name + INTEGER(HID_T), INTENT(IN) :: type_id + CHARACTER(LEN=*), INTENT(IN) :: name + INTEGER, INTENT(IN) :: namelen + INTEGER, INTENT(OUT) :: index + END FUNCTION h5tget_member_index_c + END INTERFACE + + namelen = LEN(name) + hdferr = h5tget_member_index_c(type_id, name, namelen, index) + END SUBROUTINE h5tget_member_index_f + + +! !$! +! !$!****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 +!***** + + INTERFACE + INTEGER FUNCTION h5tget_array_dims_c(type_id, dims) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_ARRAY_DIMS_C'::h5tget_array_dims_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER(HSIZE_T),DIMENSION(*), INTENT(OUT) :: dims + END FUNCTION h5tget_array_dims_c + END INTERFACE + + hdferr = h5tget_array_dims_c(type_id, dims) + + END SUBROUTINE h5tget_array_dims_f + +! +!****s* H5T/h5tget_array_ndims_f +! +! NAME +! h5tget_array_ndims_f +! +! PURPOSE +! Returns the rank of an array datatype. +! +! INPUTS +! type_id - array datatype identifier +! OUTPUTS +! ndims - number of array 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_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 +!***** + INTERFACE + INTEGER FUNCTION h5tget_array_ndims_c(type_id, ndims) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_ARRAY_NDIMS_C'::h5tget_array_ndims_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER, INTENT(OUT) :: ndims + END FUNCTION h5tget_array_ndims_c + END INTERFACE + + hdferr = h5tget_array_ndims_c(type_id, ndims) + + END SUBROUTINE h5tget_array_ndims_f + +! +!****s* H5T/h5tget_super_f +! +! NAME +! h5tget_super_f +! +! PURPOSE +! Returns the base datatype from which a datatype is derived. +! +! INPUTS +! type_id - datatype identifier +! OUTPUTS +! base_type_id - identifier of the base type +! 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_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 +!***** + INTERFACE + INTEGER FUNCTION h5tget_super_c(type_id, base_type_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_SUPER_C'::h5tget_super_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER(HID_T), INTENT(OUT) :: base_type_id + END FUNCTION h5tget_super_c + END INTERFACE + + hdferr = h5tget_super_c(type_id, base_type_id) + + END SUBROUTINE h5tget_super_f + +! +!****s* H5T/h5tget_member_type_f +! +! NAME +! h5tget_member_type_f +! +! PURPOSE +! Returns the datatype of the specified member. +! +! INPUTS +! type_id - compound datatype identifier +! field_idx - field index (0-based) +! +! OUTPUTS +! datatype - idnetifier of the member's datatype +! 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_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 +!***** + INTERFACE + INTEGER FUNCTION h5tget_member_type_c(type_id, field_idx , datatype) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_MEMBER_TYPE_C'::h5tget_member_type_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER, INTENT(IN) :: field_idx + INTEGER(HID_T), INTENT(OUT) :: datatype + END FUNCTION h5tget_member_type_c + END INTERFACE + + hdferr = h5tget_member_type_c(type_id, field_idx , datatype) + END SUBROUTINE h5tget_member_type_f + +! +!****s* H5T/h5tcreate_f +! +! NAME +! h5tcreate_f +! +! PURPOSE +! Creates a new datatype. +! +! INPUTS +! class - Datatype class can be one of: +! H5T_COMPOUND_F +! H5T_ENUM_F +! H5T_OPAQUE_F +! H5T_STRING_F +! +! size - Size of the datatype. +! OUTPUTS +! type_id - 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 h5tcreate_f(class, size, type_id, hdferr) + IMPLICIT NONE + INTEGER , INTENT(IN) :: class + INTEGER(SIZE_T), INTENT(IN) :: size + INTEGER(HID_T) , INTENT(OUT) :: type_id + INTEGER , INTENT(OUT) :: hdferr +!***** + INTERFACE + INTEGER FUNCTION h5tcreate_c(class, size, type_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TCREATE_C'::h5tcreate_c + !DEC$ENDIF + INTEGER, INTENT(IN) :: class + INTEGER(SIZE_T), INTENT(IN) :: size + INTEGER(HID_T), INTENT(OUT) :: type_id + END FUNCTION h5tcreate_c + END INTERFACE + + hdferr = h5tcreate_c(class, size, type_id) + END SUBROUTINE h5tcreate_f + +! +!****s* H5T/h5tinsert_f +! +! NAME +! h5tinsert_f +! +! PURPOSE +! Adds a new member to a compound datatype. +! +! 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 +! +! 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 + INTEGER(SIZE_T), INTENT(IN) :: offset !start of the member in an instance of + !the compound datatype + INTEGER(HID_T), INTENT(IN) :: field_id !datatype identifier of the new member + + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + INTEGER :: namelen + + INTERFACE + INTEGER FUNCTION h5tinsert_c(type_id, name, namelen, offset, field_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TINSERT_C'::h5tinsert_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: name + INTEGER(HID_T), INTENT(IN) :: type_id + CHARACTER(LEN=*), INTENT(IN) :: name + INTEGER(SIZE_T), INTENT(IN) :: offset + INTEGER(HID_T), INTENT(IN) :: field_id + INTEGER :: namelen + END FUNCTION h5tinsert_c + END INTERFACE + + namelen = LEN(name) + hdferr = h5tinsert_c(type_id, name, namelen, offset, field_id ) + END SUBROUTINE h5tinsert_f + +! +!****s* H5T/h5tpack_f +! +! NAME +! h5tpack_f +! +! PURPOSE +! Recursively removes padding from within a compound datatype. +! +! INPUTS +! type_id - compound datatype 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). 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 +!***** + + INTERFACE + INTEGER FUNCTION h5tpack_c(type_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TPACK_C'::h5tpack_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + END FUNCTION h5tpack_c + END INTERFACE + + hdferr = h5tpack_c(type_id) + END SUBROUTINE h5tpack_f + +! !$! +! !$!****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 +!***** + INTERFACE + INTEGER FUNCTION h5tarray_create_c(base_id, rank, dims, type_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TARRAY_CREATE_C'::h5tarray_create_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: base_id + INTEGER, INTENT(IN) :: rank + INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: dims + INTEGER(HID_T), INTENT(OUT) :: type_id + END FUNCTION h5tarray_create_c + END INTERFACE + + hdferr = h5tarray_create_c(base_id, rank, dims, type_id) + + END SUBROUTINE h5tarray_create_f + +! +!****s* H5T/h5tenum_create_f +! +! NAME +! h5tenum_create_f +! +! PURPOSE +! Creates a new enumeration datatype. +! +! 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 +! +! 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 + INTEGER(HID_T), INTENT(OUT) :: new_type_id + !datatype identifier for the + ! new enumeration datatype + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + + INTERFACE + INTEGER FUNCTION h5tenum_create_c(parent_id, new_type_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TENUM_CREATE_C'::h5tenum_create_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: parent_id + INTEGER(HID_T), INTENT(OUT) :: new_type_id + END FUNCTION h5tenum_create_c + END INTERFACE + + hdferr = h5tenum_create_c(parent_id, new_type_id) + END SUBROUTINE h5tenum_create_f +! +!****s* H5T/h5tenum_nameof_f +! +! NAME +! h5tenum_nameof_f +! +! PURPOSE +! Returns the symbol name corresponding to a specified +! member of an enumeration datatype. +! +! 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 +! +! 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 +!***** + + INTERFACE + INTEGER FUNCTION h5tenum_nameof_c(type_id, value, name, namelen) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TENUM_NAMEOF_C'::h5tenum_nameof_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: name + INTEGER(HID_T), INTENT(IN) :: type_id + CHARACTER(LEN=*), INTENT(OUT) :: name + INTEGER(SIZE_T), INTENT(IN) :: namelen + INTEGER, INTENT(IN) :: value + 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 + +! +!****s* H5T/h5tenum_valuof_f +! +! NAME +! h5tenum_valuof_f +! +! PURPOSE +! Returns the value corresponding to a specified +! member of an enumeration datatype. +! +! INPUTS +! type_id - datatype identifier +! name - symbol name +! OUTPUTS +! value - value of the enumeration datatype +! 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 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 + + INTERFACE + INTEGER FUNCTION h5tenum_valueof_c(type_id, name, namelen, value) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TENUM_VALUEOF_C'::h5tenum_valueof_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: name + INTEGER(HID_T), INTENT(IN) :: type_id + CHARACTER(LEN=*), INTENT(IN) :: name + INTEGER, INTENT(IN) :: namelen + INTEGER, INTENT(OUT) :: value + END FUNCTION h5tenum_valueof_c + END INTERFACE + + namelen = LEN(name) + hdferr = h5tenum_valueof_c(type_id, name, namelen, value) + END SUBROUTINE h5tenum_valueof_f + +! +!****s* H5T/h5tget_member_value_f +! +! NAME +! h5tget_member_value_f +! +! PURPOSE +! Returns the value of an enumeration datatype member. +! +! 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 +! +! 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 +!***** + + INTERFACE + INTEGER FUNCTION h5tget_member_value_c(type_id, member_no, value) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_MEMBER_VALUE_C'::h5tget_member_value_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER, INTENT(IN) :: member_no + INTEGER, INTENT(OUT) :: value + END FUNCTION + END INTERFACE + + hdferr = h5tget_member_value_c(type_id, member_no, value) + END SUBROUTINE h5tget_member_value_f + +! +!****s* H5T/h5tset_tag_f +! +! NAME +! h5tset_tag_f +! +! PURPOSE +! Tags an opaque datatype. +! +! 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 +! +! 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 + + INTERFACE + INTEGER FUNCTION h5tset_tag_c(type_id, tag, taglen) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TSET_TAG_C'::h5tset_tag_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: tag + INTEGER(HID_T), INTENT(IN) :: type_id + CHARACTER(LEN=*), INTENT(IN) :: tag + INTEGER :: taglen + END FUNCTION h5tset_tag_c + END INTERFACE + + taglen = LEN(tag) + hdferr = h5tset_tag_c(type_id, tag, taglen) + END SUBROUTINE h5tset_tag_f + +! +!****s* H5T/h5tget_tag_f +! +! NAME +! h5tget_tag_f +! +! PURPOSE +! Gets the tag associated with an opaque datatype. +! +! 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 +! +! 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 + INTEGER(SIZE_T) :: tag_size ! Declared character length of tab + INTEGER, INTENT(OUT) :: hdferr ! Error code +!***** + INTERFACE + 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 + !DEC$ENDIF + !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 + + tag_size = LEN(tag) + + hdferr = h5tget_tag_c(type_id, tag, tag_size, taglen ) + END SUBROUTINE h5tget_tag_f + +! +!****s* H5T/h5tvlen_create_f +! +! NAME +! h5tvlen_create_f +! +! PURPOSE +! Creates a new variable-length datatype. +! +! INPUTS +! type_id - identifier iof base datatype +! OUTPUTS +! vltype_id - identifier for VL datatype +! hdferr - Returns 0 if successful and -1 if fails +! +! 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 + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TVLEN_CREATE_C'::h5tvlen_create_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER(HID_T), INTENT(OUT) :: vltype_id + END FUNCTION h5tvlen_create_c + END INTERFACE + + hdferr = h5tvlen_create_c(type_id, vltype_id) + END SUBROUTINE h5tvlen_create_f + +! +!****s* H5T/h5tis_variable_str_f +! +! NAME +! h5tis_variable_str_f +! +! PURPOSE +! Determines whether a dattype is a variable string. +! +! 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 +! +! 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" + + INTERFACE + INTEGER FUNCTION h5tis_variable_str_c(type_id, flag) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TIS_VARIABLE_STR_C'::h5tis_variable_str_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER :: flag + END FUNCTION h5tis_variable_str_c + END INTERFACE + + hdferr = h5tis_variable_str_c(type_id, flag) + status = .TRUE. + if (flag .EQ. 0) status = .FALSE. + + END SUBROUTINE h5tis_variable_str_f + +! +!****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 +!***** + INTERFACE + INTEGER FUNCTION h5tget_member_class_c(type_id, member_no, class) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_MEMBER_CLASS_C'::h5tget_member_class_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER, INTENT(IN) :: member_no + INTEGER, INTENT(OUT) :: class + END FUNCTION h5tget_member_class_c + END INTERFACE + + hdferr = h5tget_member_class_c(type_id, member_no, class) + + END SUBROUTINE h5tget_member_class_f + +! +!****s* H5T/h5tcommit_anon_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. +! +! 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. +! +! 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. +! +! 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 + ! the file in which the new named datatype + ! is to be created. + INTEGER(HID_T), INTENT(IN) :: dtype_id ! Datatype identifier + INTEGER, INTENT(OUT) :: hdferr ! Error code + INTEGER(HID_T), OPTIONAL, INTENT(IN) :: tcpl_id ! A datatype creation property + ! list identifier. + ! (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 + + INTERFACE + INTEGER FUNCTION h5tcommit_anon_c(loc_id, dtype_id, & + tcpl_id_default, tapl_id_default) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TCOMMIT_ANON_C'::h5tcommit_anon_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: loc_id + INTEGER(HID_T), INTENT(IN) :: dtype_id + INTEGER(HID_T) :: tcpl_id_default + INTEGER(HID_T) :: tapl_id_default + END FUNCTION h5tcommit_anon_c + END INTERFACE + + tcpl_id_default = H5P_DEFAULT_F + tapl_id_default = H5P_DEFAULT_F + + IF(PRESENT(tcpl_id)) tcpl_id_default = tcpl_id + IF(PRESENT(tapl_id)) tapl_id_default = tapl_id + + hdferr = h5tcommit_anon_c(loc_id, dtype_id, & + tcpl_id_default, tapl_id_default ) + + END SUBROUTINE h5tcommit_anon_f + +! +!****s* H5T/h5tcommitted_f +! +! NAME +! h5tcommitted_f +! +! PURPOSE +! Determines whether a datatype is a named type or a transient type. +! +! INPUTS +! dtype_id - A datatype identifier. +! +! 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 +! +! 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 +!***** + INTERFACE + INTEGER FUNCTION h5tcommitted_c(dtype_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TCOMMITTED_C'::h5tcommitted_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: dtype_id + END FUNCTION h5tcommitted_c + END INTERFACE + + hdferr = h5tcommitted_c(dtype_id) + + IF(hdferr.GT.0)THEN + committed = .TRUE. + hdferr = 0 + ELSE IF(hdferr.EQ.0)THEN + committed = .FALSE. + hdferr = 0 + ELSE + hdferr = -1 + ENDIF + + + END SUBROUTINE h5tcommitted_f + +! +!****s* H5T/H5Tdecode_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 - Returns 0 if successful and -1 if fails +! +! AUTHOR +! M. Scot Breitenfeld +! April 9, 2008 +! +! 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 + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TDECODE_C'::h5tdecode_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: buf + CHARACTER(LEN=*), INTENT(IN) :: buf + INTEGER(HID_T), INTENT(OUT) :: obj_id ! Object ID + END FUNCTION h5tdecode_c + END INTERFACE + + hdferr = h5tdecode_c(buf, obj_id) + + END SUBROUTINE h5tdecode_f + +! +!****s* H5T/H5Tencode_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 - Returns 0 if successful and -1 if fails. +! +! 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) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TENCODE_C'::h5tencode_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: buf + INTEGER(HID_T), INTENT(IN) :: obj_id + CHARACTER(LEN=*), INTENT(OUT) :: buf + INTEGER(SIZE_T), INTENT(INOUT) :: nalloc + END FUNCTION h5tencode_c + END INTERFACE + + hdferr = h5tencode_c(buf, obj_id, nalloc) + + END SUBROUTINE h5tencode_f + +! +!****s* H5T/h5tget_create_plist_f +! +! NAME +! h5tget_create_plist_f +! +! PURPOSE +! Returns a copy of a datatype creation property list. +! +! 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 +!***** + INTERFACE + INTEGER FUNCTION h5tget_create_plist_c(dtype_id, dtpl_id) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_CREATE_PLIST_C'::h5tget_create_plist_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: dtype_id + INTEGER(HID_T), INTENT(OUT) :: dtpl_id + END FUNCTION h5tget_create_plist_c + END INTERFACE + + hdferr = h5tget_create_plist_c(dtype_id, dtpl_id) + END SUBROUTINE h5tget_create_plist_f + +! +!****s* H5T/h5tcompiler_conv_f +! +! NAME +! h5tcompiler_conv_f +! +! PURPOSE +! Check whether the library’s default conversion is hard conversion.R +! +! 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. + INTEGER(HID_T), INTENT(IN) :: dst_id ! Identifier for the destination datatype. + 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 + INTEGER FUNCTION h5tcompiler_conv_c(src_id, dst_id, c_flag) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TCOMPILER_CONV_C'::h5tcompiler_conv_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: src_id + INTEGER(HID_T), INTENT(IN) :: dst_id + INTEGER :: c_flag + END FUNCTION h5tcompiler_conv_c + END INTERFACE + + hdferr = h5tcompiler_conv_c(src_id, dst_id, c_flag) + + flag = .FALSE. + IF(c_flag .GT. 0) flag = .TRUE. + + END SUBROUTINE h5tcompiler_conv_f + +! +!****s* H5T/h5tget_native_type_f +! +! NAME +! h5tget_native_type_f +! +! PURPOSE +! Returns the native datatype of a specified datatype. +! +! 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 +! +! 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 + INTEGER, INTENT(IN) :: direction ! Direction of search: + ! H5T_DIR_ASCEND_F = 1 in inscendent order + ! H5T_DIR_DESCEND_F = 2 in descendent order + 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 + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_NATIVE_TYPE_C'::h5tget_native_type_c + !DEC$ENDIF + INTEGER(HID_T), INTENT(IN) :: dtype_id + INTEGER, INTENT(IN) :: direction + INTEGER(HID_T), INTENT(OUT) :: native_dtype_id + END FUNCTION h5tget_native_type_c + END INTERFACE + + hdferr = h5tget_native_type_c(dtype_id, direction, native_dtype_id) + END SUBROUTINE h5tget_native_type_f + +END MODULE H5T diff --git a/fortran/src/H5Tff_F03.f90 b/fortran/src/H5Tff_F03.f90 new file mode 100644 index 0000000..2c9f212 --- /dev/null +++ b/fortran/src/H5Tff_F03.f90 @@ -0,0 +1,223 @@ +!****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_F90.f90 but includes the +! Fortran 2003 functions and the interface listings. This file will be compiled +! instead of H5Tff_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 +! *** IMPORTANT *** +! If you add a new H5T function you must add the function name to the +! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory. +! This is needed for Windows based operating systems. +! +!***** + +MODULE H5T_PROVISIONAL + + USE H5GLOBAL + USE, INTRINSIC :: ISO_C_BINDING + +!****t* H5T (F03)/hvl_t +! Fortran2003 Derived Type: + 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 + +!***** + + INTERFACE h5tenum_insert_f + MODULE PROCEDURE h5tenum_insert_f03 + MODULE PROCEDURE h5tenum_insert_f90 + END INTERFACE + +CONTAINS + +!****s* H5T (F03)/H5Tconvert_f_F03 +! +! 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 +! +! Fortran2003 Interface: + SUBROUTINE h5tconvert_f(src_id, dst_id, nelmts, buf, hdferr, background, plist_id) + USE, INTRINSIC :: 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) & + BIND(C, NAME='h5tconvert_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr + USE H5GLOBAL + 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) , 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 +! +!****s* (F03) H5T/h5tenum_insert_f90 +! +! NAME +! h5tenum_insert_f +! +! PURPOSE +! Inserts a new enumeration datatype member. +! +! INPUTS +! type_id - Datatype identifier for the enumeration datatype. +! name - Datatype identifier. +! value - Value of the new member. +! 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 h5tenum_insert_f90(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 + INTERFACE + INTEGER FUNCTION h5tenum_insert_c(type_id, name, namelen, value) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TENUM_INSERT_C'::h5tenum_insert_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: name + INTEGER(HID_T), INTENT(IN) :: type_id + CHARACTER(LEN=*), INTENT(IN) :: name + INTEGER, INTENT(IN) :: value + INTEGER :: namelen + END FUNCTION h5tenum_insert_c + END INTERFACE + + namelen = LEN(name) + hdferr = h5tenum_insert_c(type_id, name, namelen, value) + END SUBROUTINE h5tenum_insert_f90 + +! +!****s* (F03) H5T/h5tenum_insert_f03 +! +! NAME +! h5tenum_insert_f +! +! PURPOSE +! Inserts a new enumeration datatype member. +! +! INPUTS +! type_id - Datatype identifier for the enumeration datatype. +! name - Datatype identifier. +! value - Pointer to the value of the new member. +! OUTPUTS +! hdferr - Returns 0 if successful and -1 if fails +! +! AUTHOR +! M. Scot Breitenfeld +! February 6, 2015 +! +! HISTORY +! F2003 implementation of function +! SOURCE + SUBROUTINE h5tenum_insert_f03(type_id, name, value, hdferr) + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, c_char + USE H5GLOBAL + IMPLICIT NONE + INTEGER(HID_T) , INTENT(IN) :: type_id + CHARACTER(LEN=*), INTENT(IN) :: name + TYPE(C_PTR) , INTENT(IN) :: value + INTEGER, INTENT(OUT) :: hdferr +!***** + INTEGER :: namelen + + INTERFACE + INTEGER FUNCTION h5tenum_insert_ptr_c(type_id, name, namelen, value) & + BIND(C, NAME='h5tenum_insert_ptr_c') + USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, c_char + USE H5GLOBAL + IMPLICIT NONE + INTEGER(HID_T) , INTENT(IN) :: type_id + CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name + INTEGER :: namelen + TYPE(C_PTR), VALUE :: value + END FUNCTION h5tenum_insert_ptr_c + END INTERFACE + + namelen = LEN(name) + hdferr = h5tenum_insert_ptr_c(type_id, name, namelen, value) + END SUBROUTINE h5tenum_insert_f03 + +END MODULE H5T_PROVISIONAL + diff --git a/fortran/src/H5Tff_F90.f90 b/fortran/src/H5Tff_F90.f90 new file mode 100644 index 0000000..380fbec --- /dev/null +++ b/fortran/src/H5Tff_F90.f90 @@ -0,0 +1,95 @@ +!****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' in the fortran/src directory. +! This is needed for Windows based operating systems. +!***** + +MODULE H5T_PROVISIONAL + + USE H5GLOBAL + +CONTAINS + +! +!****s* H5T/h5tenum_insert_f +! +! NAME +! h5tenum_insert_f +! +! PURPOSE +! Inserts a new enumeration datatype member. +! +! INPUTS +! type_id - Datatype identifier for the enumeration datatype. +! name - Datatype identifier. +! value - Value of the new member. +! 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 h5tenum_insert_f(type_id, name, value, hdferr) + IMPLICIT NONE + INTEGER(HID_T), INTENT(IN) :: type_id + CHARACTER(LEN=*), INTENT(IN) :: name + INTEGER, INTENT(IN) :: value + INTEGER, INTENT(OUT) :: hdferr +!***** + INTEGER :: namelen + + INTERFACE + INTEGER FUNCTION h5tenum_insert_c(type_id, name, namelen, value) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TENUM_INSERT_C'::h5tenum_insert_c + !DEC$ENDIF + !DEC$ATTRIBUTES reference :: name + INTEGER(HID_T), INTENT(IN) :: type_id + CHARACTER(LEN=*), INTENT(IN) :: name + INTEGER, INTENT(IN) :: value + INTEGER :: namelen + END FUNCTION h5tenum_insert_c + END INTERFACE + + namelen = LEN(name) + hdferr = h5tenum_insert_c(type_id, name, namelen, value) + END SUBROUTINE h5tenum_insert_f + +END MODULE H5T_PROVISIONAL diff --git a/fortran/src/H5Zf.c b/fortran/src/H5Zf.c index a8cf1c2..169e018 100644 --- a/fortran/src/H5Zf.c +++ b/fortran/src/H5Zf.c @@ -1,6 +1,6 @@ /****h* H5Zf/H5Zf * PURPOSE - * This file contains C stubs for H5Z Fortran APIs + * This file contains C stubs for H5Z Fortran APIs * * COPYRIGHT * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -25,22 +25,22 @@ /****if* H5Zf/h5zunregister_c * NAME - * h5zunregister_c + * h5zunregister_c * PURPOSE - * Call H5Zunregister to unregister filter + * Call H5Zunregister to unregister filter * INPUTS - * filter identifier + * filter identifier * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, March 12, 2003 + * Wednesday, March 12, 2003 * HISTORY * * SOURCE */ int_f -h5zunregister_c (int_f *filter) +nh5zunregister_c (int_f *filter) /******/ { int ret_value = -1; @@ -58,25 +58,25 @@ h5zunregister_c (int_f *filter) } /****if* H5Zf/h5zfiletr_avail_c * NAME - * h5zfiletr_avail_c + * h5zfiletr_avail_c * PURPOSE - * Call H5Zfilter_avail to find if filter is available + * Call H5Zfilter_avail to find if filter is available * INPUTS - * filter - filter identifier + * filter - filter identifier * OUTPUTS - * flag - status flag + * flag - status flag * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Elena Pourmal - * Wednesday, March 12, 2003 + * Wednesday, March 12, 2003 * HISTORY * * SOURCE */ int_f -h5zfilter_avail_c ( int_f *filter , int_f *flag ) +nh5zfilter_avail_c ( int_f *filter , int_f *flag ) /******/ { int ret_value = 0; @@ -92,26 +92,26 @@ h5zfilter_avail_c ( int_f *filter , int_f *flag ) /****if* H5Zf/h5zget_filter_info_c * NAME - * h5zget_filter_info_c + * h5zget_filter_info_c * PURPOSE - * Call H5Zget_filter_info to find if filter has its encoder - * and/or its decoder available + * Call H5Zget_filter_info to find if filter has its encoder + * and/or its decoder available * INPUTS - * filter - filter identifier + * filter - filter identifier * OUTPUTS - * flag - status flag + * flag - status flag * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR * Nat Furrer and James Laird - * Wednesday, June 16, 2004 + * Wednesday, June 16, 2004 * HISTORY * * SOURCE */ int_f -h5zget_filter_info_c ( int_f *filter , int_f *flag ) +nh5zget_filter_info_c ( int_f *filter , int_f *flag ) /******/ { int ret_value = 0; diff --git a/fortran/src/H5Zff.F90 b/fortran/src/H5Zff.f90 index 0259959..7b67b5b 100644 --- a/fortran/src/H5Zff.F90 +++ b/fortran/src/H5Zff.f90 @@ -4,32 +4,29 @@ ! MODULE H5Z ! ! PURPOSE -! This file contains Fortran interfaces for H5Z functions. +! 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. * +! 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! -! _____ __ __ _____ ____ _____ _______ _ _ _______ -! |_ _| \/ | __ \ / __ \| __ \__ __|/\ | \ | |__ __| -! **** | | | \ / | |__) | | | | |__) | | | / \ | \| | | | **** -! **** | | | |\/| | ___/| | | | _ / | | / /\ \ | . ` | | | **** -! **** _| |_| | | | | | |__| | | \ \ | |/ ____ \| |\ | | | **** -! |_____|_| |_|_| \____/|_| \_\ |_/_/ \_\_| \_| |_| -! +! NOTES +! *** IMPORTANT *** ! If you add a new H5Z function you must add the function name to the ! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory. ! This is needed for Windows based operating systems. @@ -51,7 +48,7 @@ CONTAINS ! Unregisters specified filetr ! ! INPUTS -! filter - Filter; may have one of the following values: +! filter - filter; may have one of the following values: ! H5Z_FILTER_DEFLATE_F ! H5Z_FILTER_SZIP_F ! H5Z_FILTER_NBIT_F @@ -60,7 +57,7 @@ CONTAINS ! H5Z_FILTER_FLETCHER32_F ! ! OUTPUTS -! hdferr - Error code +! hdferr - error code ! Success: 0 ! Failure: -1 ! @@ -72,14 +69,18 @@ CONTAINS SUBROUTINE h5zunregister_f(filter, hdferr) IMPLICIT NONE INTEGER, INTENT(IN) :: filter - INTEGER, INTENT(OUT) :: hdferr + INTEGER, INTENT(OUT) :: hdferr ! Error code !***** INTERFACE - INTEGER FUNCTION h5zunregister_c(filter) BIND(C,NAME='h5zunregister_c') + 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) + hdferr = h5zunregister_c (filter) END SUBROUTINE h5zunregister_f !****s* H5Z/h5zfilter_avail_f @@ -90,17 +91,11 @@ CONTAINS ! Queries if filter is available ! ! INPUTS -! 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 +! filter - filter ! OUTPUTS -! status - Flag; .TRUE. if filter is available, +! status - status; .TRUE. if filter is available, ! .FALSE. otherwise -! hdferr: - Error code +! hdferr: - error code ! Success: 0 ! Failure: -1 ! @@ -111,15 +106,26 @@ CONTAINS ! SOURCE SUBROUTINE h5zfilter_avail_f(filter, status, hdferr) IMPLICIT NONE - INTEGER, INTENT(IN) :: filter - LOGICAL, INTENT(OUT) :: status - INTEGER, INTENT(OUT) :: hdferr + 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) BIND(C,NAME='h5zfilter_avail_c') - IMPLICIT NONE + 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 @@ -130,7 +136,6 @@ CONTAINS IF (flag .EQ. 0) status = .FALSE. END SUBROUTINE h5zfilter_avail_f - !****s* H5Z/h5zget_filter_info_f ! ! NAME @@ -141,20 +146,13 @@ CONTAINS ! available ! ! INPUTS -! 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_Ffilter +! filter - filter ! OUTPUTS -! config_flags - Flag, indicates if filter has its encoder -! and/or decoder available, possibly containing the +! config_flags - Bit vector possibly containing the ! following values: ! H5Z_FILTER_ENCODE_ENABLED_F ! H5Z_FILTER_DECODE_ENABLED_F -! hdferr: - Error code +! hdferr: - error code ! Success: 0 ! Failure: -1 ! @@ -164,14 +162,25 @@ CONTAINS ! SOURCE SUBROUTINE h5zget_filter_info_f(filter, config_flags, hdferr) IMPLICIT NONE - INTEGER, INTENT(IN) :: filter - INTEGER, INTENT(OUT) :: config_flags - INTEGER, INTENT(OUT) :: hdferr + 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) BIND(C,NAME='h5zget_filter_info_c') - IMPLICIT NONE + 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 diff --git a/fortran/src/H5_DBLE_InterfaceExclude.f90 b/fortran/src/H5_DBLE_InterfaceExclude.f90 new file mode 100644 index 0000000..2a3e26f --- /dev/null +++ b/fortran/src/H5_DBLE_InterfaceExclude.f90 @@ -0,0 +1,39 @@ +!****h* fortran/src/H5_DBLE_InterfaceExclude.f90 +! +! NAME +! H5_DBLE_INTERFACE +! +! FUNCTION +! 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. +! +! NOTES +! Empty module. +! +! 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. * +! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +! +! AUTHOR +! M. Scot Breitenfeld +! +!***** + +MODULE H5_DBLE_INTERFACE + + +END MODULE H5_DBLE_INTERFACE diff --git a/fortran/src/H5_DBLE_InterfaceInclude.f90 b/fortran/src/H5_DBLE_InterfaceInclude.f90 new file mode 100644 index 0000000..11e0a85 --- /dev/null +++ b/fortran/src/H5_DBLE_InterfaceInclude.f90 @@ -0,0 +1,1859 @@ +!****h* fortran/src/H5_DBLE_InterfaceInclude.f90 +! +! NAME +! H5_DBLE_INTERFACE +! +! FUNCTION +! 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. +! +! NOTES +! This module contains all the DOUBLE PRECISION interfaces and corresponding subroutines +! from the HDF function catagory H5A, H5D and H5P. +! +! 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. * +! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +! +! AUTHOR +! M. Scot Breitenfeld +! +!***** + +MODULE H5_DBLE_INTERFACE + + USE H5GLOBAL + + ! + ! ----- H5A ---- + ! + INTERFACE h5awrite_f + MODULE PROCEDURE h5awrite_double_scalar + MODULE PROCEDURE h5awrite_double_1 + MODULE PROCEDURE h5awrite_double_2 + MODULE PROCEDURE h5awrite_double_3 + MODULE PROCEDURE h5awrite_double_4 + MODULE PROCEDURE h5awrite_double_5 + MODULE PROCEDURE h5awrite_double_6 + MODULE PROCEDURE h5awrite_double_7 + END INTERFACE + + INTERFACE h5aread_f + MODULE PROCEDURE h5aread_double_scalar + MODULE PROCEDURE h5aread_double_1 + MODULE PROCEDURE h5aread_double_2 + MODULE PROCEDURE h5aread_double_3 + MODULE PROCEDURE h5aread_double_4 + MODULE PROCEDURE h5aread_double_5 + MODULE PROCEDURE h5aread_double_6 + MODULE PROCEDURE h5aread_double_7 + END INTERFACE + ! + ! ----- H5D ---- + ! + INTERFACE h5dwrite_f + MODULE PROCEDURE h5dwrite_double_scalar + MODULE PROCEDURE h5dwrite_double_1 + MODULE PROCEDURE h5dwrite_double_2 + MODULE PROCEDURE h5dwrite_double_3 + MODULE PROCEDURE h5dwrite_double_4 + MODULE PROCEDURE h5dwrite_double_5 + MODULE PROCEDURE h5dwrite_double_6 + MODULE PROCEDURE h5dwrite_double_7 + END INTERFACE + + INTERFACE h5dread_f + MODULE PROCEDURE h5dread_double_scalar + MODULE PROCEDURE h5dread_double_1 + MODULE PROCEDURE h5dread_double_2 + MODULE PROCEDURE h5dread_double_3 + MODULE PROCEDURE h5dread_double_4 + MODULE PROCEDURE h5dread_double_5 + MODULE PROCEDURE h5dread_double_6 + MODULE PROCEDURE h5dread_double_7 + END INTERFACE + + INTERFACE h5dfill_f + MODULE PROCEDURE h5dfill_double + END INTERFACE + + ! + ! ----- H5P ---- + ! + INTERFACE h5pset_fill_value_f + MODULE PROCEDURE h5pset_fill_value_double + END INTERFACE + + INTERFACE h5pget_fill_value_f + MODULE PROCEDURE h5pget_fill_value_double + END INTERFACE + + INTERFACE h5pset_f + MODULE PROCEDURE h5pset_double + END INTERFACE + + INTERFACE h5pget_f + MODULE PROCEDURE h5pget_double + END INTERFACE + + INTERFACE h5pregister_f + MODULE PROCEDURE h5pregister_double + END INTERFACE + + INTERFACE h5pinsert_f + MODULE PROCEDURE h5pinsert_double + END INTERFACE + +CONTAINS + + ! + ! ----- H5A ---- + ! + SUBROUTINE h5awrite_double_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 + DOUBLE PRECISION, INTENT(IN) :: buf ! Attribute data + INTEGER, INTENT(OUT) :: hdferr ! Error code + + ! INTEGER, EXTERNAL :: h5awrite_double_s_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5awrite_double_s_c(attr_id, memtype_id, buf, dims) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_DOUBLE_S_C'::h5awrite_double_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 + DOUBLE PRECISION, INTENT(IN)::buf + END FUNCTION h5awrite_double_s_c + END INTERFACE + + hdferr = h5awrite_double_s_c(attr_id, memtype_id, buf, dims) + END SUBROUTINE h5awrite_double_scalar + + SUBROUTINE h5awrite_double_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 + DOUBLE PRECISION, INTENT(IN), & + DIMENSION(dims(1)) :: buf ! Attribute data + INTEGER, INTENT(OUT) :: hdferr ! Error code + + ! INTEGER, EXTERNAL :: h5awrite_double_1_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5awrite_double_1_c(attr_id, memtype_id, buf, dims) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_DOUBLE_1_C'::h5awrite_double_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 + DOUBLE PRECISION, INTENT(IN), & + DIMENSION(dims(1)) :: buf + END FUNCTION h5awrite_double_1_c + END INTERFACE + + hdferr = h5awrite_double_1_c(attr_id, memtype_id, buf, dims) + END SUBROUTINE h5awrite_double_1 + + + SUBROUTINE h5awrite_double_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 + DOUBLE PRECISION, INTENT(IN), & + DIMENSION(dims(1),dims(2)) :: buf + ! Attribute data + INTEGER, INTENT(OUT) :: hdferr ! Error code + + ! INTEGER, EXTERNAL :: h5awrite_double_2_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5awrite_double_2_c(attr_id, memtype_id, buf, dims) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_DOUBLE_2_C'::h5awrite_double_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 + DOUBLE PRECISION, INTENT(IN), & + DIMENSION(dims(1),dims(2)) :: buf + END FUNCTION h5awrite_double_2_c + END INTERFACE + + hdferr = h5awrite_double_2_c(attr_id, memtype_id, buf, dims) + END SUBROUTINE h5awrite_double_2 + + + SUBROUTINE h5awrite_double_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 + DOUBLE PRECISION, INTENT(IN), & + DIMENSION(dims(1),dims(2),dims(3)) :: buf + ! Attribute data + INTEGER, INTENT(OUT) :: hdferr ! Error code + + ! INTEGER, EXTERNAL :: h5awrite_double_3_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5awrite_double_3_c(attr_id, memtype_id, buf, dims) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_DOUBLE_3_C'::h5awrite_double_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 + DOUBLE PRECISION, INTENT(IN), & + DIMENSION(dims(1),dims(2),dims(3)) :: buf + END FUNCTION h5awrite_double_3_c + END INTERFACE + + hdferr = h5awrite_double_3_c(attr_id, memtype_id, buf, dims) + END SUBROUTINE h5awrite_double_3 + + + SUBROUTINE h5awrite_double_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 + DOUBLE PRECISION, INTENT(IN), & + DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf + ! Attribute data + INTEGER, INTENT(OUT) :: hdferr ! Error code + + ! INTEGER, EXTERNAL :: h5awrite_double_4_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5awrite_double_4_c(attr_id, memtype_id, buf, dims) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_DOUBLE_4_C'::h5awrite_double_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 + DOUBLE PRECISION, INTENT(IN), & + DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf + END FUNCTION h5awrite_double_4_c + END INTERFACE + + hdferr = h5awrite_double_4_c(attr_id, memtype_id, buf, dims) + END SUBROUTINE h5awrite_double_4 + + + SUBROUTINE h5awrite_double_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 + DOUBLE PRECISION, 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_double_5_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5awrite_double_5_c(attr_id, memtype_id, buf, dims) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_DOUBLE_5_C'::h5awrite_double_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 + DOUBLE PRECISION, INTENT(IN), & + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf + END FUNCTION h5awrite_double_5_c + END INTERFACE + + hdferr = h5awrite_double_5_c(attr_id, memtype_id, buf, dims) + END SUBROUTINE h5awrite_double_5 + + + SUBROUTINE h5awrite_double_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 + DOUBLE PRECISION, 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_double_6_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5awrite_double_6_c(attr_id, memtype_id, buf, dims) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_DOUBLE_6_C'::h5awrite_double_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 + DOUBLE PRECISION, INTENT(IN), & + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf + END FUNCTION h5awrite_double_6_c + END INTERFACE + + hdferr = h5awrite_double_6_c(attr_id, memtype_id, buf, dims) + END SUBROUTINE h5awrite_double_6 + + + SUBROUTINE h5awrite_double_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 + DOUBLE PRECISION, 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_double_7_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5awrite_double_7_c(attr_id, memtype_id, buf, dims) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_DOUBLE_7_C'::h5awrite_double_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 + DOUBLE PRECISION, INTENT(IN), & + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf + END FUNCTION h5awrite_double_7_c + END INTERFACE + + hdferr = h5awrite_double_7_c(attr_id, memtype_id, buf, dims) + END SUBROUTINE h5awrite_double_7 + + + SUBROUTINE h5aread_double_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 + DOUBLE PRECISION, INTENT(INOUT) :: buf ! Attribute data + INTEGER, INTENT(OUT) :: hdferr ! Error code + + ! INTEGER, EXTERNAL :: h5aread_double_s_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5aread_double_s_c(attr_id, memtype_id, buf, dims) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_DOUBLE_S_C'::h5aread_double_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 + DOUBLE PRECISION, INTENT(INOUT)::buf + END FUNCTION h5aread_double_s_c + END INTERFACE + + hdferr = h5aread_double_s_c(attr_id, memtype_id, buf, dims) + END SUBROUTINE h5aread_double_scalar + + SUBROUTINE h5aread_double_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 + DOUBLE PRECISION, INTENT(INOUT), & + DIMENSION(dims(1)) :: buf + ! Attribute data + INTEGER, INTENT(OUT) :: hdferr ! Error code + + ! INTEGER, EXTERNAL :: h5aread_double_1_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5aread_double_1_c(attr_id, memtype_id, buf, dims) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_DOUBLE_1_C'::h5aread_double_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 + DOUBLE PRECISION, INTENT(INOUT), & + DIMENSION(dims(1)) :: buf + END FUNCTION h5aread_double_1_c + END INTERFACE + + hdferr = h5aread_double_1_c(attr_id, memtype_id, buf, dims) + END SUBROUTINE h5aread_double_1 + + + SUBROUTINE h5aread_double_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 + DOUBLE PRECISION, INTENT(INOUT), & + DIMENSION(dims(1),dims(2)) :: buf + ! Attribute data + INTEGER, INTENT(OUT) :: hdferr ! Error code + + ! INTEGER, EXTERNAL :: h5aread_double_2_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5aread_double_2_c(attr_id, memtype_id, buf, dims) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_DOUBLE_2_C'::h5aread_double_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 + DOUBLE PRECISION, INTENT(INOUT), & + DIMENSION(dims(1),dims(2)) :: buf + END FUNCTION h5aread_double_2_c + END INTERFACE + + hdferr = h5aread_double_2_c(attr_id, memtype_id, buf, dims) + END SUBROUTINE h5aread_double_2 + + + SUBROUTINE h5aread_double_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 + DOUBLE PRECISION, INTENT(INOUT), & + DIMENSION(dims(1),dims(2),dims(3)) :: buf + ! Attribute data + INTEGER, INTENT(OUT) :: hdferr ! Error code + + ! INTEGER, EXTERNAL :: h5aread_double_3_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5aread_double_3_c(attr_id, memtype_id, buf, dims) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_DOUBLE_3_C'::h5aread_double_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 + DOUBLE PRECISION, INTENT(INOUT), & + DIMENSION(dims(1),dims(2),dims(3)) :: buf + END FUNCTION h5aread_double_3_c + END INTERFACE + + hdferr = h5aread_double_3_c(attr_id, memtype_id, buf, dims) + END SUBROUTINE h5aread_double_3 + + + SUBROUTINE h5aread_double_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 + DOUBLE PRECISION, INTENT(INOUT), & + DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf + ! Attribute data + INTEGER, INTENT(OUT) :: hdferr ! Error code + + ! INTEGER, EXTERNAL :: h5aread_double_4_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5aread_double_4_c(attr_id, memtype_id, buf, dims) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_DOUBLE_4_C'::h5aread_double_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 + DOUBLE PRECISION, INTENT(INOUT), & + DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf + END FUNCTION h5aread_double_4_c + END INTERFACE + + hdferr = h5aread_double_4_c(attr_id, memtype_id, buf, dims) + END SUBROUTINE h5aread_double_4 + + + SUBROUTINE h5aread_double_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 + DOUBLE PRECISION, 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_double_5_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5aread_double_5_c(attr_id, memtype_id, buf, dims) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_DOUBLE_5_C'::h5aread_double_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 + DOUBLE PRECISION, INTENT(INOUT), & + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf + END FUNCTION h5aread_double_5_c + END INTERFACE + + hdferr = h5aread_double_5_c(attr_id, memtype_id, buf, dims) + END SUBROUTINE h5aread_double_5 + + + SUBROUTINE h5aread_double_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 + DOUBLE PRECISION, 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_double_6_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5aread_double_6_c(attr_id, memtype_id, buf, dims) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_DOUBLE_6_C'::h5aread_double_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 + DOUBLE PRECISION, INTENT(INOUT), & + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf + END FUNCTION h5aread_double_6_c + END INTERFACE + + hdferr = h5aread_double_6_c(attr_id, memtype_id, buf, dims) + END SUBROUTINE h5aread_double_6 + + + SUBROUTINE h5aread_double_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 + DOUBLE PRECISION, 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_double_7_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5aread_double_7_c(attr_id, memtype_id, buf, dims) + USE H5GLOBAL + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_DOUBLE_7_C'::h5aread_double_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 + DOUBLE PRECISION, INTENT(INOUT), & + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf + END FUNCTION h5aread_double_7_c + END INTERFACE + + hdferr = h5aread_double_7_c(attr_id, memtype_id, buf, dims) + END SUBROUTINE h5aread_double_7 + + + ! + ! ----- H5D ---- + ! + SUBROUTINE h5dwrite_double_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 + DOUBLE PRECISION, 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_double_s_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5dwrite_double_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_DOUBLE_S_C'::h5dwrite_double_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 + DOUBLE PRECISION, INTENT(IN) :: buf + END FUNCTION h5dwrite_double_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_double_s_c(dset_id, mem_type_id, mem_space_id_default, & + file_space_id_default, xfer_prp_default, buf, dims) + + 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) + 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)) :: 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_double_1_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5dwrite_double_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_DOUBLE_1_C'::h5dwrite_double_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 + DOUBLE PRECISION, INTENT(IN), & + DIMENSION(dims(1)) :: buf + END FUNCTION h5dwrite_double_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_double_1_c(dset_id, mem_type_id, mem_space_id_default, & + file_space_id_default, xfer_prp_default, buf, dims) + + 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) + 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)) :: 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_double_2_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5dwrite_double_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_DOUBLE_2_C'::h5dwrite_double_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 + DOUBLE PRECISION, INTENT(IN), & + DIMENSION(dims(1),dims(2)) :: buf + END FUNCTION h5dwrite_double_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_double_2_c(dset_id, mem_type_id, mem_space_id_default, & + file_space_id_default, xfer_prp_default, buf, dims) + + 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) + 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)) :: 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_double_3_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5dwrite_double_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_DOUBLE_3_C'::h5dwrite_double_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 + DOUBLE PRECISION, INTENT(IN), & + DIMENSION(dims(1),dims(2),dims(3)) :: buf + END FUNCTION h5dwrite_double_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_double_3_c(dset_id, mem_type_id, mem_space_id_default, & + file_space_id_default, xfer_prp_default, buf, dims) + + 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) + 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)) :: 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_double_4_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5dwrite_double_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_DOUBLE_4_C'::h5dwrite_double_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 + DOUBLE PRECISION, INTENT(IN), & + DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf + END FUNCTION h5dwrite_double_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_double_4_c(dset_id, mem_type_id, mem_space_id_default, & + file_space_id_default, xfer_prp_default, buf, dims) + + 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) + 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)) :: 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_double_5_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5dwrite_double_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_DOUBLE_5_C'::h5dwrite_double_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 + DOUBLE PRECISION, INTENT(IN), & + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf + END FUNCTION h5dwrite_double_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_double_5_c(dset_id, mem_type_id, mem_space_id_default, & + file_space_id_default, xfer_prp_default, buf, dims) + + 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) + 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)) :: 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_double_6_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5dwrite_double_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_DOUBLE_6_C'::h5dwrite_double_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 + DOUBLE PRECISION, INTENT(IN), & + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf + END FUNCTION h5dwrite_double_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_double_6_c(dset_id, mem_type_id, mem_space_id_default, & + file_space_id_default, xfer_prp_default, buf, dims) + + 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) + 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)) :: 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_double_7_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5dwrite_double_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_DOUBLE_7_C'::h5dwrite_double_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 + DOUBLE PRECISION, INTENT(IN), & + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf + END FUNCTION h5dwrite_double_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_double_7_c(dset_id, mem_type_id, mem_space_id_default, & + file_space_id_default, xfer_prp_default, buf, dims) + + END SUBROUTINE h5dwrite_double_7 + + SUBROUTINE h5dread_double_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 + DOUBLE PRECISION, 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 + + ! INTEGER, EXTERNAL :: h5dread_double_s_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5dread_double_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_DOUBLE_S_C'::h5dread_double_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 + DOUBLE PRECISION, INTENT(OUT) :: buf + END FUNCTION h5dread_double_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_double_s_c(dset_id, mem_type_id, mem_space_id_default, & + file_space_id_default, xfer_prp_default, buf, dims) + + 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) + 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)) :: 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_double_1_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5dread_double_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_DOUBLE_1_C'::h5dread_double_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 + DOUBLE PRECISION, INTENT(INOUT), & + DIMENSION(dims(1)) :: buf + END FUNCTION h5dread_double_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_double_1_c(dset_id, mem_type_id, mem_space_id_default, & + file_space_id_default, xfer_prp_default, buf, dims) + + 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) + 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)) :: 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_double_2_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5dread_double_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_DOUBLE_2_C'::h5dread_double_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 + DOUBLE PRECISION, INTENT(INOUT), & + DIMENSION(dims(1),dims(2)) :: buf + END FUNCTION h5dread_double_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_double_2_c(dset_id, mem_type_id, mem_space_id_default, & + file_space_id_default, xfer_prp_default, buf, dims) + + 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) + 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)) :: 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_double_3_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5dread_double_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_DOUBLE_3_C'::h5dread_double_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 + DOUBLE PRECISION, INTENT(INOUT), & + DIMENSION(dims(1),dims(2),dims(3)) :: buf + END FUNCTION h5dread_double_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_double_3_c(dset_id, mem_type_id, mem_space_id_default, & + file_space_id_default, xfer_prp_default, buf, dims) + + 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) + 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)) :: 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 :: h5dread_double_4_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5dread_double_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_DOUBLE_4_C'::h5dread_double_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 + DOUBLE PRECISION, INTENT(INOUT), & + DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf + END FUNCTION h5dread_double_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_double_4_c(dset_id, mem_type_id, mem_space_id_default, & + file_space_id_default, xfer_prp_default, buf, dims) + + 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) + 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)) :: 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_double_5_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5dread_double_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_DOUBLE_5_C'::h5dread_double_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 + DOUBLE PRECISION, INTENT(INOUT), & + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf + END FUNCTION h5dread_double_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_double_5_c(dset_id, mem_type_id, mem_space_id_default, & + file_space_id_default, xfer_prp_default, buf, dims) + + 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) + 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)) :: 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 :: h5dread_double_6_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5dread_double_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_DOUBLE_6_C'::h5dread_double_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 + DOUBLE PRECISION, INTENT(INOUT), & + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf + END FUNCTION h5dread_double_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_double_6_c(dset_id, mem_type_id, mem_space_id_default, & + file_space_id_default, xfer_prp_default, buf, dims) + + 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) + 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)) :: 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 :: h5dread_double_7_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5dread_double_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_DOUBLE_7_C'::h5dread_double_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 + DOUBLE PRECISION, INTENT(INOUT), & + DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf + END FUNCTION h5dread_double_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_double_7_c(dset_id, mem_type_id, mem_space_id_default, & + file_space_id_default, xfer_prp_default, buf, dims) + + END SUBROUTINE h5dread_double_7 + + !---------------------------------------------------------------------- + ! 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 + ! + ! Programmer: Elena Pourmal + ! March 12, 2003 + ! + !---------------------------------------------------------------------- + + SUBROUTINE h5dfill_double(fill_value, space_id, buf, hdferr) + IMPLICIT NONE + DOUBLE PRECISION, INTENT(IN) :: fill_value ! Fill value + INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier + DOUBLE PRECISION, 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_double_c + ! MS FORTRAN needs explicit interface for C functions called here. + ! + INTERFACE + INTEGER FUNCTION h5dfill_double_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_DOUBLE_C'::h5dfill_double_c + !DEC$ENDIF + DOUBLE PRECISION, 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 + DOUBLE PRECISION, INTENT(IN), DIMENSION(*) :: buf ! Memory buffer to fill in + INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier + END FUNCTION h5dfill_double_c + END INTERFACE + fill_type_id = H5T_NATIVE_DOUBLE + mem_type_id = H5T_NATIVE_DOUBLE + + hdferr = h5dfill_double_c(fill_value, fill_type_id, space_id, & + buf, mem_type_id) + + + END SUBROUTINE h5dfill_double + + ! + ! -- H5P --- + ! + + 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 + +! +!****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)/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)/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)/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 + +END MODULE H5_DBLE_INTERFACE diff --git a/fortran/src/H5_buildiface.F90 b/fortran/src/H5_buildiface.F90 deleted file mode 100644 index 9a42cbf..0000000 --- a/fortran/src/H5_buildiface.F90 +++ /dev/null @@ -1,1024 +0,0 @@ -!****p* Program/H5_buildiface -! -! NAME -! Executable: H5_buildiface -! -! FILE -! fortran/src/H5_buildiface.f90 -! -! PURPOSE -! This stand alone program is used at build time to generate the module -! H5_gen (H5_gen.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. -! -! NOTES -! This program uses the Fortran 2008 intrinsic function STORAGE_SIZE or SIZEOF -! depending on availablity.It generates code that makes use of -! STORAGE_SIZE/SIZEOF in H5_gen.F90. STORAGE_SIZE is standard -! compliant and should always be chosen over SIZEOF. -! -! The availability of STORAGE_SIZE/SIZEOF is checked at configure time and the TRUE/FALSE -! condition is set in the configure variable "FORTRAN_HAVE_STORAGE_SIZE" or -! "FORTRAN_HAVE_SIZEOF". -! -! The use of C_SIZOF(X) is not used since the argument X must be an interoperable -! data entity. -! -! 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. * -! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -! -! AUTHOR -! M. Scot Breitenfeld -! -!***** - -#include <H5config_f.inc> - -PROGRAM H5_buildiface - USE, INTRINSIC :: ISO_C_BINDING - IMPLICIT NONE - -! These values are valid REAL KINDs (with corresponding C float) found during configure - H5_H5CONFIG_F_NUM_RKIND - H5_H5CONFIG_F_RKIND -! These values are valid INTEGER KINDs (with corresponding C integer) found during configure - H5_H5CONFIG_F_NUM_IKIND - H5_H5CONFIG_F_IKIND - - INTEGER :: i, j, k - INTEGER :: ji, jr, jd -#ifdef H5_FORTRAN_HAVE_C_LONG_DOUBLE - REAL(KIND=C_LONG_DOUBLE) :: c_longdble -#endif - REAL(KIND=C_DOUBLE) :: c_dble - REAL(KIND=C_FLOAT) :: c_flt - INTEGER :: sizeof_var - CHARACTER(LEN=2) :: chr2 -! subroutine rank of array being passed in - CHARACTER(LEN=2), DIMENSION(1:8), PARAMETER :: chr_rank=(/"_0","_1","_2","_3","_4","_5","_6","_7"/) -! rank definitions - CHARACTER(LEN=70), DIMENSION(1:8), PARAMETER :: rank_dim_line=(/ & - ' ', & - ', DIMENSION(dims(1)) ', & - ', DIMENSION(dims(1),dims(2)) ', & - ', DIMENSION(dims(1),dims(2),dims(3)) ', & - ', DIMENSION(dims(1),dims(2),dims(3),dims(4)) ', & - ', DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) ', & - ', DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) ', & - ', DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7))' & - /) -! pointer to the buffer - CHARACTER(LEN=37), DIMENSION(1:8), PARAMETER :: f_ptr_line=(/ & - ' f_ptr = C_LOC(buf) ', & - ' f_ptr = C_LOC(buf(1)) ', & - ' f_ptr = C_LOC(buf(1,1)) ', & - ' f_ptr = C_LOC(buf(1,1,1)) ', & - ' f_ptr = C_LOC(buf(1,1,1,1)) ', & - ' f_ptr = C_LOC(buf(1,1,1,1,1)) ', & - ' f_ptr = C_LOC(buf(1,1,1,1,1,1)) ', & - ' f_ptr = C_LOC(buf(1,1,1,1,1,1,1))' & - /) - CHARACTER(LEN=42), DIMENSION(1:8), PARAMETER :: fchr_ptr_line=(/ & - ' f_ptr = C_LOC(buf(1:1)) ', & - ' f_ptr = C_LOC(buf(1)(1:1)) ', & - ' f_ptr = C_LOC(buf(1,1)(1:1)) ', & - ' f_ptr = C_LOC(buf(1,1,1)(1:1)) ', & - ' f_ptr = C_LOC(buf(1,1,1,1)(1:1)) ', & - ' f_ptr = C_LOC(buf(1,1,1,1,1)(1:1)) ', & - ' f_ptr = C_LOC(buf(1,1,1,1,1,1)(1:1)) ', & - ' f_ptr = C_LOC(buf(1,1,1,1,1,1,1)(1:1))' & - /) - -! (a) Generate Fortran H5* interfaces having multiple KIND interfaces. -! -! DEVELOPER'S NOTES: -! -! Only interfaces with arrays of rank 7 and less are provided. Even-though, the F2008 -! standard extended the maximum rank to 15, it was decided that user's should use the -! new APIs to handle those use cases. Handling rank 7 and less is for backward compatibility -! with the Fortran 90/95 APIs codes which could never handle ranks greater than 7. - - OPEN(11,FILE='H5_gen.F90') - WRITE(11,'(40(A,/))') & -'!****h* ROBODoc/H5_gen.F90',& -'!',& -'! NAME',& -'! H5_gen',& -'! ',& -'! PURPOSE',& -'! This module is generated at build by H5_buildiface.F90 to handle all the',& -'! detected KINDs for APIs being passed INTEGERs, REALs and CHARACTERs. Currently ',& -'! these are H5A, H5D and H5P APIs',& -'!',& -'! COPYRIGHT',& -'! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *',& -'! Copyright by The HDF Group. *',& -'! 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',& -'! H5_buildiface.F90',& -'!',& -'!*****' - - WRITE(11,'(A)') "MODULE H5_GEN" - - WRITE(11,'(A)') ' USE, INTRINSIC :: ISO_C_BINDING' - WRITE(11,'(A)') ' USE H5GLOBAL' - - WRITE(11,'(A)') ' USE H5A' - WRITE(11,'(A)') ' USE H5D' - WRITE(11,'(A)') ' USE H5P' - WRITE(11,'(A)') ' IMPLICIT NONE' -!*************** -! H5A INTERFACES -!*************** -! -! H5Awrite_f -! - WRITE(11,'(A)') " INTERFACE h5awrite_f" - DO i = 1, num_rkinds - j = rkind(i) - WRITE(chr2,'(I2)') j - DO k = 1, 8 - WRITE(11,'(A)') " MODULE PROCEDURE h5awrite_rkind_"//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(k) - ENDDO - END DO - DO i = 1, num_ikinds - j = ikind(i) - WRITE(chr2,'(I2)') j - DO k = 1, 8 - WRITE(11,'(A)') " MODULE PROCEDURE h5awrite_ikind_"//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(k) - ENDDO - END DO - DO k = 2, 8 - WRITE(11,'(A)') " MODULE PROCEDURE h5awrite_ckind_rank"//chr_rank(k) - ENDDO - WRITE(11,'(A)') " END INTERFACE" - -! H5Aread_f - WRITE(11,'(A)') " INTERFACE h5aread_f" - DO i = 1, num_rkinds - j = rkind(i) - WRITE(chr2,'(I2)') j - DO k = 1, 8 - WRITE(11,'(A)') " MODULE PROCEDURE h5aread_rkind_"//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(k) - ENDDO - END DO - DO i = 1, num_ikinds - j = ikind(i) - WRITE(chr2,'(I2)') j - DO k = 1, 8 - WRITE(11,'(A)') " MODULE PROCEDURE h5aread_ikind_"//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(k) - ENDDO - END DO - DO k = 2, 8 - WRITE(11,'(A)') " MODULE PROCEDURE h5aread_ckind_rank"//chr_rank(k) - ENDDO - WRITE(11,'(A)') " END INTERFACE" -!*************** -! H5D INTERFACES -!*************** -! -! H5Dwrite_f - WRITE(11,'(A)') " INTERFACE h5dwrite_f" - DO i = 1, num_rkinds - j = rkind(i) - WRITE(chr2,'(I2)') j - DO k = 1, 8 - WRITE(11,'(A)') " MODULE PROCEDURE h5dwrite_rkind_"//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(k) - ENDDO - END DO - DO i = 1, num_ikinds - j = ikind(i) - WRITE(chr2,'(I2)') j - DO k = 1, 8 - WRITE(11,'(A)') " MODULE PROCEDURE h5dwrite_ikind_"//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(k) - ENDDO - END DO - DO k = 2, 8 - WRITE(11,'(A)') " MODULE PROCEDURE h5dwrite_ckind_rank"//chr_rank(k) - END DO - WRITE(11,'(A)') " END INTERFACE" - -! H5Dread_f - WRITE(11,'(A)') " INTERFACE h5dread_f" - DO i = 1, num_rkinds - j = rkind(i) - WRITE(chr2,'(I2)') j - DO k = 1, 8 - WRITE(11,'(A)') " MODULE PROCEDURE h5dread_rkind_"//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(k) - ENDDO - END DO - DO i = 1, num_ikinds - j = ikind(i) - WRITE(chr2,'(I2)') j - DO k = 1, 8 - WRITE(11,'(A)') " MODULE PROCEDURE h5dread_ikind_"//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(k) - ENDDO - END DO - DO k = 2, 8 - WRITE(11,'(A)') " MODULE PROCEDURE h5dread_ckind_rank"//chr_rank(k) - ENDDO - WRITE(11,'(A)') " END INTERFACE" - -!*************** -! H5P INTERFACES -!*************** -! -! H5Pset_fill_value_f - WRITE(11,'(A)') " INTERFACE h5pset_fill_value_f" - DO i = 1, num_rkinds - j = rkind(i) - WRITE(chr2,'(I2)') j - WRITE(11,'(A)') " MODULE PROCEDURE h5pset_fill_value_kind_"//TRIM(ADJUSTL(chr2)) - END DO - WRITE(11,'(A)') " END INTERFACE" - -! H5Pget_fill_value_f - WRITE(11,'(A)') " INTERFACE h5pget_fill_value_f" - DO i = 1, num_rkinds - j = rkind(i) - WRITE(chr2,'(I2)') j - WRITE(11,'(A)') " MODULE PROCEDURE h5pget_fill_value_kind_"//TRIM(ADJUSTL(chr2)) - END DO - WRITE(11,'(A)') " END INTERFACE" - -! H5Pset_f - WRITE(11,'(A)') " INTERFACE h5pset_f" - DO i = 1, num_rkinds - j = rkind(i) - WRITE(chr2,'(I2)') j - WRITE(11,'(A)') " MODULE PROCEDURE h5pset_kind_"//TRIM(ADJUSTL(chr2)) - END DO - WRITE(11,'(A)') " END INTERFACE" - -! H5Pget_f - WRITE(11,'(A)') " INTERFACE h5pget_f" - DO i = 1, num_rkinds - j = rkind(i) - WRITE(chr2,'(I2)') j - WRITE(11,'(A)') " MODULE PROCEDURE h5pget_kind_"//TRIM(ADJUSTL(chr2)) - END DO - WRITE(11,'(A)') " END INTERFACE" - -! H5Pregister_f - WRITE(11,'(A)') " INTERFACE h5pregister_f" - DO i = 1, num_rkinds - j = rkind(i) - WRITE(chr2,'(I2)') j - WRITE(11,'(A)') " MODULE PROCEDURE h5pregister_kind_"//TRIM(ADJUSTL(chr2)) - END DO - WRITE(11,'(A)') " END INTERFACE" - -! H5Pinsert_f - WRITE(11,'(A)') " INTERFACE h5pinsert_f" - DO i = 1, num_rkinds - j = rkind(i) - WRITE(chr2,'(I2)') j - WRITE(11,'(A)') " MODULE PROCEDURE h5pinsert_kind_"//TRIM(ADJUSTL(chr2)) - END DO - WRITE(11,'(A)') " END INTERFACE" - - WRITE(11,'(A)') 'CONTAINS' - -!********************** -! H5A APIs -!********************** -! -! H5Awrite_f - -!****s* H5A (F03)/H5Awrite_f_F90 -! -! NAME -! H5Awrite_f_F90 -! -! PURPOSE -! Writes an attribute. -! -! Inputs: -! attr_id - Attribute identifier -! memtype_id - Attribute datatype identifier (in memory) -! dims - Array to hold corresponding dimension sizes of data buffer buf; -! dim(k) has value of the k-th dimension of buffer buf; -! values are ignored if buf is a scalar -! buf - Data buffer; may be a scalar or an array -! -! Outputs: -! 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, REAL(KIND=C_DOUBLE) and CHARACTER buffers -! up to 7 dimensions. -! -! Fortran90 Interface: -!! SUBROUTINE H5Awrite_f(attr_id, memtype_id, buf, dims, hdferr) -!! INTEGER(HID_T) , INTENT(IN) :: attr_id -!! INTEGER(HID_T) , INTENT(IN) :: memtype_id -!! TYPE , INTENT(IN) :: buf -!! INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims -!! INTEGER , INTENT(OUT) :: hdferr -!***** - - DO i = 1, num_rkinds - k = rkind(i) - WRITE(chr2,'(I2)') k - DO j = 1, 8 - -! DLL definitions for windows - WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' - WRITE(11,'(A)') '!DEC$attributes dllexport :: h5awrite_rkind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) - WRITE(11,'(A)') '!DEC$endif' - -! Subroutine API - WRITE(11,'(A)') ' SUBROUTINE h5awrite_rkind_'//TRIM(ADJUSTL(chr2))& - &//'_rank'//chr_rank(j)//'(attr_id, memtype_id, buf, dims, hdferr)' - WRITE(11,'(A)') ' IMPLICIT NONE' - WRITE(11,'(A)') ' INTEGER(HID_T) , INTENT(IN) :: attr_id' - WRITE(11,'(A)') ' INTEGER(HID_T) , INTENT(IN) :: memtype_id' - WRITE(11,'(A)') ' INTEGER(HSIZE_T) , INTENT(IN), DIMENSION(*) :: dims' - WRITE(11,'(A)') ' REAL(KIND='//TRIM(ADJUSTL(chr2))//'),INTENT(IN)'//TRIM(rank_dim_line(j))//', TARGET :: buf' - WRITE(11,'(A)') ' INTEGER , INTENT(OUT) :: hdferr' - WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' - - WRITE(11,'(A)') f_ptr_line(j) - WRITE(11,'(A)') ' hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)' - WRITE(11,'(A)') ' END SUBROUTINE h5awrite_rkind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) - ENDDO - ENDDO - DO i = 1, num_ikinds - k = ikind(i) - WRITE(chr2,'(I2)') k - DO j = 1, 8 - -! DLL definitions for windows - WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' - WRITE(11,'(A)') '!DEC$attributes dllexport :: h5awrite_ikind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) - WRITE(11,'(A)') '!DEC$endif' - -! Subroutine API - WRITE(11,'(A)') ' SUBROUTINE h5awrite_ikind_'//TRIM(ADJUSTL(chr2))& - &//'_rank'//chr_rank(j)//'(attr_id, memtype_id, buf, dims, hdferr)' - WRITE(11,'(A)') ' IMPLICIT NONE' - WRITE(11,'(A)') ' INTEGER(HID_T) , INTENT(IN) :: attr_id' - WRITE(11,'(A)') ' INTEGER(HID_T) , INTENT(IN) :: memtype_id' - WRITE(11,'(A)') ' INTEGER(HSIZE_T) , INTENT(IN), DIMENSION(*) :: dims' - WRITE(11,'(A)') ' INTEGER(KIND='//TRIM(ADJUSTL(chr2))//'),INTENT(INOUT)'//TRIM(rank_dim_line(j))//', TARGET :: buf' - WRITE(11,'(A)') ' INTEGER , INTENT(OUT) :: hdferr' - WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' - - WRITE(11,'(A)') f_ptr_line(j) - WRITE(11,'(A)') ' hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)' - WRITE(11,'(A)') ' END SUBROUTINE h5awrite_ikind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) - ENDDO - ENDDO - DO j = 2, 8 - -! DLL definitions for windows - WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' - WRITE(11,'(A)') '!DEC$attributes dllexport :: h5awrite_ckind_rank'//chr_rank(j) - WRITE(11,'(A)') '!DEC$endif' - -! Subroutine API - WRITE(11,'(A)') ' SUBROUTINE h5awrite_ckind_rank'//chr_rank(j)//'(attr_id, memtype_id, buf, dims, hdferr)' - WRITE(11,'(A)') ' IMPLICIT NONE' - WRITE(11,'(A)') ' INTEGER(HID_T) , INTENT(IN) :: attr_id' - WRITE(11,'(A)') ' INTEGER(HID_T) , INTENT(IN) :: memtype_id' - WRITE(11,'(A)') ' INTEGER(HSIZE_T) , INTENT(IN), DIMENSION(*) :: dims' - WRITE(11,'(A)') ' CHARACTER(LEN=*) , INTENT(IN)'//TRIM(rank_dim_line(j))//', TARGET :: buf' - WRITE(11,'(A)') ' INTEGER , INTENT(OUT) :: hdferr' - WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' - - WRITE(11,'(A)') fchr_ptr_line(j) - WRITE(11,'(A)') ' hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)' - WRITE(11,'(A)') ' END SUBROUTINE h5awrite_ckind_rank'//chr_rank(j) - ENDDO - -! -! H5Aread_f - -!****s* H5A (F03)/H5Aread_f_F90 -! -! NAME -! H5Aread_f_F90 -! -! PURPOSE -! Reads an attribute. -! -! Inputs: -! attr_id - Attribute identifier -! memtype_id - Attribute datatype identifier (in memory) -! dims - Array to hold corresponding dimension sizes of data buffer buf; -! dim(k) has value of the k-th dimension of buffer buf; -! values are ignored if buf is a scalar -! -! Outputs: -! buf - Data buffer; may be a scalar or an array -! 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, REAL(KIND=C_DOUBLE) and CHARACTER buffers -! up to 7 dimensions. -! Fortran90 Interface: -!! SUBROUTINE H5Aread_f(attr_id, memtype_id, buf, dims, hdferr) -!! INTEGER(HID_T) , INTENT(IN) :: attr_id -!! INTEGER(HID_T) , INTENT(IN) :: memtype_id -!! TYPE , INTENT(INOUT) :: buf -!! INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims -!! INTEGER , INTENT(OUT) :: hdferr -!***** - DO i = 1, num_rkinds - k = rkind(i) - WRITE(chr2,'(I2)') k - DO j = 1, 8 -! DLL definitions for windows - WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' - WRITE(11,'(A)') '!DEC$attributes dllexport :: h5aread_rkind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) - WRITE(11,'(A)') '!DEC$endif' -! Subroutine API - WRITE(11,'(A)') ' SUBROUTINE h5aread_rkind_'//TRIM(ADJUSTL(chr2))& - &//'_rank'//chr_rank(j)//'(attr_id, memtype_id, buf, dims, hdferr)' - WRITE(11,'(A)') ' IMPLICIT NONE' - WRITE(11,'(A)') ' INTEGER(HID_T) , INTENT(IN) :: attr_id' - WRITE(11,'(A)') ' INTEGER(HID_T) , INTENT(IN) :: memtype_id' - WRITE(11,'(A)') ' INTEGER(HSIZE_T) , INTENT(IN), DIMENSION(*) :: dims' - WRITE(11,'(A)') ' REAL(KIND='//TRIM(ADJUSTL(chr2))//'),INTENT(INOUT)'//TRIM(rank_dim_line(j))//', TARGET :: buf' - WRITE(11,'(A)') ' INTEGER , INTENT(OUT) :: hdferr' - WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' - - WRITE(11,'(A)') f_ptr_line(j) - WRITE(11,'(A)') ' hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)' - WRITE(11,'(A)') ' END SUBROUTINE h5aread_rkind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) - ENDDO - ENDDO - DO i = 1, num_ikinds - k = ikind(i) - WRITE(chr2,'(I2)') k - DO j = 1, 8 -! DLL definitions for windows - WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' - WRITE(11,'(A)') '!DEC$attributes dllexport :: h5aread_ikind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) - WRITE(11,'(A)') '!DEC$endif' -! Subroutine API - WRITE(11,'(A)') ' SUBROUTINE h5aread_ikind_'//TRIM(ADJUSTL(chr2))& - &//'_rank'//chr_rank(j)//'(attr_id, memtype_id, buf, dims, hdferr)' - WRITE(11,'(A)') ' IMPLICIT NONE' - WRITE(11,'(A)') ' INTEGER(HID_T) , INTENT(IN) :: attr_id' - WRITE(11,'(A)') ' INTEGER(HID_T) , INTENT(IN) :: memtype_id' - WRITE(11,'(A)') ' INTEGER(HSIZE_T) , INTENT(IN), DIMENSION(*) :: dims' - WRITE(11,'(A)') ' INTEGER(KIND='//TRIM(ADJUSTL(chr2))//'),INTENT(INOUT)'//TRIM(rank_dim_line(j))//', TARGET :: buf' - WRITE(11,'(A)') ' INTEGER , INTENT(OUT) :: hdferr' - WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' - - WRITE(11,'(A)') f_ptr_line(j) - WRITE(11,'(A)') ' hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)' - WRITE(11,'(A)') ' END SUBROUTINE h5aread_ikind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) - ENDDO - ENDDO - DO j = 2, 8 -! DLL definitions for windows - WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' - WRITE(11,'(A)') '!DEC$attributes dllexport :: h5aread_ckind_rank'//chr_rank(j) - WRITE(11,'(A)') '!DEC$endif' -! Subroutine API - WRITE(11,'(A)') ' SUBROUTINE h5aread_ckind_rank'//chr_rank(j)//'(attr_id, memtype_id, buf, dims, hdferr)' - WRITE(11,'(A)') ' IMPLICIT NONE' - WRITE(11,'(A)') ' INTEGER(HID_T) , INTENT(IN) :: attr_id' - WRITE(11,'(A)') ' INTEGER(HID_T) , INTENT(IN) :: memtype_id' - WRITE(11,'(A)') ' INTEGER(HSIZE_T) , INTENT(IN), DIMENSION(*) :: dims' - WRITE(11,'(A)') ' CHARACTER(LEN=*), INTENT(IN)'//TRIM(rank_dim_line(j))//', TARGET :: buf' - WRITE(11,'(A)') ' INTEGER , INTENT(OUT) :: hdferr' - WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' - - WRITE(11,'(A)') fchr_ptr_line(j) - WRITE(11,'(A)') ' hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)' - WRITE(11,'(A)') ' END SUBROUTINE h5aread_ckind_rank'//chr_rank(j) - ENDDO - -!********************** -! H5D APIs -!********************** -! -! 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. -! - DO i = 1, num_rkinds - k = rkind(i) - WRITE(chr2,'(I2)') k - DO j = 1, 8 -! DLL definitions for windows - WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' - WRITE(11,'(A)') '!DEC$attributes dllexport :: h5dread_rkind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) - WRITE(11,'(A)') '!DEC$endif' -! Subroutine API - WRITE(11,'(A)') ' SUBROUTINE h5dread_rkind_'//TRIM(ADJUSTL(chr2))& - &//'_rank'//chr_rank(j)//'(dset_id, mem_type_id, buf, dims, hdferr, &' - WRITE(11,'(A)') ' mem_space_id, file_space_id, xfer_prp)' - WRITE(11,'(A)') ' USE, INTRINSIC :: ISO_C_BINDING' - WRITE(11,'(A)') ' IMPLICIT NONE' - WRITE(11,'(A)') ' INTEGER(HID_T), INTENT(IN) :: dset_id' - WRITE(11,'(A)') ' INTEGER(HID_T), INTENT(IN) :: mem_type_id' - WRITE(11,'(A)') ' INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims' - WRITE(11,'(A)') ' REAL(KIND='//TRIM(ADJUSTL(chr2))//'),INTENT(INOUT)'//TRIM(rank_dim_line(j))//', TARGET :: buf' - WRITE(11,'(A)') ' INTEGER, INTENT(OUT) :: hdferr' - WRITE(11,'(A)') ' INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id' - WRITE(11,'(A)') ' INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id' - WRITE(11,'(A)') ' INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp' - WRITE(11,'(A)') ' INTEGER(HID_T) :: xfer_prp_default' - WRITE(11,'(A)') ' INTEGER(HID_T) :: mem_space_id_default' - WRITE(11,'(A)') ' INTEGER(HID_T) :: file_space_id_default' - WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' - WRITE(11,'(A)') ' xfer_prp_default = H5P_DEFAULT_F' - WRITE(11,'(A)') ' mem_space_id_default = H5S_ALL_F' - WRITE(11,'(A)') ' file_space_id_default = H5S_ALL_F' - WRITE(11,'(A)') ' IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp' - WRITE(11,'(A)') ' IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id' - WRITE(11,'(A)') ' IF(PRESENT(file_space_id)) file_space_id_default = file_space_id' - WRITE(11,'(A)') f_ptr_line(j) - WRITE(11,'(A)') ' hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &' - WRITE(11,'(A)') ' file_space_id_default, xfer_prp_default, f_ptr)' - WRITE(11,'(A)') ' END SUBROUTINE h5dread_rkind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) - - ENDDO - ENDDO - - DO i = 1, num_ikinds - k = ikind(i) - WRITE(chr2,'(I2)') k - DO j = 1, 8 -! DLL definitions for windows - WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' - WRITE(11,'(A)') '!DEC$attributes dllexport :: h5dread_ikind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) - WRITE(11,'(A)') '!DEC$endif' -! Subroutine API - WRITE(11,'(A)') ' SUBROUTINE h5dread_ikind_'//TRIM(ADJUSTL(chr2))& - &//'_rank'//chr_rank(j)//'(dset_id, mem_type_id, buf, dims, hdferr, &' - WRITE(11,'(A)') ' mem_space_id, file_space_id, xfer_prp)' - WRITE(11,'(A)') ' USE, INTRINSIC :: ISO_C_BINDING' - WRITE(11,'(A)') ' IMPLICIT NONE' - WRITE(11,'(A)') ' INTEGER(HID_T), INTENT(IN) :: dset_id' - WRITE(11,'(A)') ' INTEGER(HID_T), INTENT(IN) :: mem_type_id' - WRITE(11,'(A)') ' INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims' - WRITE(11,'(A)') ' INTEGER(KIND='//TRIM(ADJUSTL(chr2))//'),INTENT(INOUT)'//TRIM(rank_dim_line(j))//', TARGET :: buf' - WRITE(11,'(A)') ' INTEGER, INTENT(OUT) :: hdferr' - WRITE(11,'(A)') ' INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id' - WRITE(11,'(A)') ' INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id' - WRITE(11,'(A)') ' INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp' - WRITE(11,'(A)') ' INTEGER(HID_T) :: xfer_prp_default' - WRITE(11,'(A)') ' INTEGER(HID_T) :: mem_space_id_default' - WRITE(11,'(A)') ' INTEGER(HID_T) :: file_space_id_default' - WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' - WRITE(11,'(A)') ' xfer_prp_default = H5P_DEFAULT_F' - WRITE(11,'(A)') ' mem_space_id_default = H5S_ALL_F' - WRITE(11,'(A)') ' file_space_id_default = H5S_ALL_F' - WRITE(11,'(A)') ' IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp' - WRITE(11,'(A)') ' IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id' - WRITE(11,'(A)') ' IF(PRESENT(file_space_id)) file_space_id_default = file_space_id' - WRITE(11,'(A)') f_ptr_line(j) - WRITE(11,'(A)') ' hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &' - WRITE(11,'(A)') ' file_space_id_default, xfer_prp_default, f_ptr)' - WRITE(11,'(A)') ' END SUBROUTINE h5dread_ikind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) - - ENDDO - ENDDO - DO j = 2, 8 -! DLL definitions for windows - WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' - WRITE(11,'(A)') '!DEC$attributes dllexport :: h5dread_ckind_rank'//chr_rank(j) - WRITE(11,'(A)') '!DEC$endif' -! Subroutine API - WRITE(11,'(A)') ' SUBROUTINE h5dread_ckind_rank'//chr_rank(j)//'(dset_id, mem_type_id, buf, dims, hdferr, &' - WRITE(11,'(A)') ' mem_space_id, file_space_id, xfer_prp)' - WRITE(11,'(A)') ' USE, INTRINSIC :: ISO_C_BINDING' - WRITE(11,'(A)') ' IMPLICIT NONE' - WRITE(11,'(A)') ' INTEGER(HID_T), INTENT(IN) :: dset_id' - WRITE(11,'(A)') ' INTEGER(HID_T), INTENT(IN) :: mem_type_id' - WRITE(11,'(A)') ' INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims' - WRITE(11,'(A)') ' CHARACTER(LEN=*), INTENT(INOUT)'//TRIM(rank_dim_line(j))//', TARGET :: buf' - WRITE(11,'(A)') ' INTEGER, INTENT(OUT) :: hdferr' - WRITE(11,'(A)') ' INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id' - WRITE(11,'(A)') ' INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id' - WRITE(11,'(A)') ' INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp' - WRITE(11,'(A)') ' INTEGER(HID_T) :: xfer_prp_default' - WRITE(11,'(A)') ' INTEGER(HID_T) :: mem_space_id_default' - WRITE(11,'(A)') ' INTEGER(HID_T) :: file_space_id_default' - WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' - WRITE(11,'(A)') ' xfer_prp_default = H5P_DEFAULT_F' - WRITE(11,'(A)') ' mem_space_id_default = H5S_ALL_F' - WRITE(11,'(A)') ' file_space_id_default = H5S_ALL_F' - WRITE(11,'(A)') ' IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp' - WRITE(11,'(A)') ' IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id' - WRITE(11,'(A)') ' IF(PRESENT(file_space_id)) file_space_id_default = file_space_id' - WRITE(11,'(A)') fchr_ptr_line(j) - WRITE(11,'(A)') ' hdferr = h5dread_f_c(dset_id, mem_type_id, mem_space_id_default, &' - WRITE(11,'(A)') ' file_space_id_default, xfer_prp_default, f_ptr)' - WRITE(11,'(A)') ' END SUBROUTINE h5dread_ckind_rank'//chr_rank(j) - ENDDO -! -! h5dwrite_f - -!****s* H5D (F03)/h5dwrite_f_F03 -! -! NAME -! h5dwrite_f_F03 -! -! PURPOSE -! Writes raw data from a dataset into a buffer. -! -! Inputs: -! dset_id - Identifier of the dataset to write to. -! mem_type_id - Identifier of the memory datatype. -! buf - Buffer with data to be written to the file. -! -! Outputs: -! hdferr - Returns 0 if successful and -1 if fails -! -! Optional parameters: -! mem_space_id - Identifier of the memory dataspace. -! file_space_id - Identifier of the dataset's dataspace in the file. -! xfer_prp - Identifier of a transfer property list for this I/O operation. -! -! AUTHOR -! M. Scot Breitenfeld -! September 17, 2011 -! -! Fortran2003 Interface: -!! SUBROUTINE h5dwrite_f(dset_id, mem_type_id, buf, hdferr, & -!! mem_space_id, file_space_id, xfer_prp) -!! INTEGER(HID_T), INTENT(IN) :: dset_id -!! INTEGER(HID_T), INTENT(IN) :: mem_type_id -!! TYPE(C_PTR) , INTENT(IN) :: buf -!! INTEGER , INTENT(OUT) :: hdferr -!! INTEGER(HID_T), INTENT(IN) , OPTIONAL :: mem_space_id -!! INTEGER(HID_T), INTENT(IN) , OPTIONAL :: file_space_id -!! INTEGER(HID_T), INTENT(IN) , OPTIONAL :: xfer_prp -!***** - DO i = 1, num_rkinds - k = rkind(i) - WRITE(chr2,'(I2)') k - DO j = 1, 8 -! DLL definitions for windows - WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' - WRITE(11,'(A)') '!DEC$attributes dllexport :: h5dwrite_rkind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) - WRITE(11,'(A)') '!DEC$endif' -! Subroutine API - WRITE(11,'(A)') ' SUBROUTINE h5dwrite_rkind_'//TRIM(ADJUSTL(chr2))& - &//'_rank'//chr_rank(j)//'(dset_id, mem_type_id, buf, dims, hdferr, &' - WRITE(11,'(A)') ' mem_space_id, file_space_id, xfer_prp)' - WRITE(11,'(A)') ' USE, INTRINSIC :: ISO_C_BINDING' - WRITE(11,'(A)') ' IMPLICIT NONE' - WRITE(11,'(A)') ' INTEGER(HID_T), INTENT(IN) :: dset_id' - WRITE(11,'(A)') ' INTEGER(HID_T), INTENT(IN) :: mem_type_id' - WRITE(11,'(A)') ' INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims' - WRITE(11,'(A)') ' REAL(KIND='//TRIM(ADJUSTL(chr2))//'),INTENT(IN)'//TRIM(rank_dim_line(j))//', TARGET :: buf' - WRITE(11,'(A)') ' INTEGER, INTENT(OUT) :: hdferr' - WRITE(11,'(A)') ' INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id' - WRITE(11,'(A)') ' INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id' - WRITE(11,'(A)') ' INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp' - WRITE(11,'(A)') ' INTEGER(HID_T) :: xfer_prp_default' - WRITE(11,'(A)') ' INTEGER(HID_T) :: mem_space_id_default' - WRITE(11,'(A)') ' INTEGER(HID_T) :: file_space_id_default' - WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' - WRITE(11,'(A)') ' xfer_prp_default = H5P_DEFAULT_F' - WRITE(11,'(A)') ' mem_space_id_default = H5S_ALL_F' - WRITE(11,'(A)') ' file_space_id_default = H5S_ALL_F' - WRITE(11,'(A)') ' IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp' - WRITE(11,'(A)') ' IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id' - WRITE(11,'(A)') ' IF(PRESENT(file_space_id)) file_space_id_default = file_space_id' - WRITE(11,'(A)') f_ptr_line(j) - WRITE(11,'(A)') ' hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &' - WRITE(11,'(A)') ' file_space_id_default, xfer_prp_default, f_ptr)' - WRITE(11,'(A)') ' END SUBROUTINE h5dwrite_rkind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) - ENDDO - ENDDO - - DO i = 1, num_ikinds - k = ikind(i) - WRITE(chr2,'(I2)') k - DO j = 1, 8 -! DLL definitions for windows - WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' - WRITE(11,'(A)') '!DEC$attributes dllexport :: h5dwrite_ikind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) - WRITE(11,'(A)') '!DEC$endif' -! Subroutine API - WRITE(11,'(A)') ' SUBROUTINE h5dwrite_ikind_'//TRIM(ADJUSTL(chr2))& - &//'_rank'//chr_rank(j)//'(dset_id, mem_type_id, buf, dims, hdferr, &' - WRITE(11,'(A)') ' mem_space_id, file_space_id, xfer_prp)' - WRITE(11,'(A)') ' USE, INTRINSIC :: ISO_C_BINDING' - WRITE(11,'(A)') ' IMPLICIT NONE' - WRITE(11,'(A)') ' INTEGER(HID_T), INTENT(IN) :: dset_id' - WRITE(11,'(A)') ' INTEGER(HID_T), INTENT(IN) :: mem_type_id' - WRITE(11,'(A)') ' INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims' - WRITE(11,'(A)') ' INTEGER(KIND='//TRIM(ADJUSTL(chr2))//'),INTENT(IN)'//TRIM(rank_dim_line(j))//', TARGET :: buf' - WRITE(11,'(A)') ' INTEGER, INTENT(OUT) :: hdferr' - WRITE(11,'(A)') ' INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id' - WRITE(11,'(A)') ' INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id' - WRITE(11,'(A)') ' INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp' - WRITE(11,'(A)') ' INTEGER(HID_T) :: xfer_prp_default' - WRITE(11,'(A)') ' INTEGER(HID_T) :: mem_space_id_default' - WRITE(11,'(A)') ' INTEGER(HID_T) :: file_space_id_default' - WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' - WRITE(11,'(A)') ' xfer_prp_default = H5P_DEFAULT_F' - WRITE(11,'(A)') ' mem_space_id_default = H5S_ALL_F' - WRITE(11,'(A)') ' file_space_id_default = H5S_ALL_F' - WRITE(11,'(A)') ' IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp' - WRITE(11,'(A)') ' IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id' - WRITE(11,'(A)') ' IF(PRESENT(file_space_id)) file_space_id_default = file_space_id' - WRITE(11,'(A)') f_ptr_line(j) - WRITE(11,'(A)') ' hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &' - WRITE(11,'(A)') ' file_space_id_default, xfer_prp_default, f_ptr)' - WRITE(11,'(A)') ' END SUBROUTINE h5dwrite_ikind_'//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(j) - ENDDO - ENDDO - DO j = 2, 8 -! DLL definitions for windows - WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' - WRITE(11,'(A)') '!DEC$attributes dllexport :: h5dwrite_ckind_rank'//chr_rank(j) - WRITE(11,'(A)') '!DEC$endif' -! Subroutine API - WRITE(11,'(A)') ' SUBROUTINE h5dwrite_ckind_rank'//chr_rank(j)//'(dset_id, mem_type_id, buf, dims, hdferr, &' - WRITE(11,'(A)') ' mem_space_id, file_space_id, xfer_prp)' - WRITE(11,'(A)') ' USE, INTRINSIC :: ISO_C_BINDING' - WRITE(11,'(A)') ' IMPLICIT NONE' - WRITE(11,'(A)') ' INTEGER(HID_T), INTENT(IN) :: dset_id' - WRITE(11,'(A)') ' INTEGER(HID_T), INTENT(IN) :: mem_type_id' - WRITE(11,'(A)') ' INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims' - WRITE(11,'(A)') ' CHARACTER(LEN=*),INTENT(IN)'//TRIM(rank_dim_line(j))//', TARGET :: buf' - WRITE(11,'(A)') ' INTEGER, INTENT(OUT) :: hdferr' - WRITE(11,'(A)') ' INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id' - WRITE(11,'(A)') ' INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id' - WRITE(11,'(A)') ' INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp' - WRITE(11,'(A)') ' INTEGER(HID_T) :: xfer_prp_default' - WRITE(11,'(A)') ' INTEGER(HID_T) :: mem_space_id_default' - WRITE(11,'(A)') ' INTEGER(HID_T) :: file_space_id_default' - WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' - WRITE(11,'(A)') ' xfer_prp_default = H5P_DEFAULT_F' - WRITE(11,'(A)') ' mem_space_id_default = H5S_ALL_F' - WRITE(11,'(A)') ' file_space_id_default = H5S_ALL_F' - WRITE(11,'(A)') ' IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp' - WRITE(11,'(A)') ' IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id' - WRITE(11,'(A)') ' IF(PRESENT(file_space_id)) file_space_id_default = file_space_id' - WRITE(11,'(A)') fchr_ptr_line(j) - WRITE(11,'(A)') ' hdferr = h5dwrite_f_c(dset_id, mem_type_id, mem_space_id_default, &' - WRITE(11,'(A)') ' file_space_id_default, xfer_prp_default, f_ptr)' - WRITE(11,'(A)') ' END SUBROUTINE h5dwrite_ckind_rank'//chr_rank(j) - ENDDO - -!********************** -! H5P APIs -!********************** -! -! H5Pset_fill_value_f - DO i = 1, num_rkinds - k = rkind(i) - WRITE(chr2,'(I2)') k -! DLL definitions for windows - WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' - WRITE(11,'(A)') '!DEC$attributes dllexport :: h5pset_fill_value_kind_'//TRIM(ADJUSTL(chr2)) - WRITE(11,'(A)') '!DEC$endif' -! Subroutine API - WRITE(11,'(A)') ' SUBROUTINE h5pset_fill_value_kind_'//TRIM(ADJUSTL(chr2))& - &//'(prp_id, type_id, fillvalue, hdferr)' - WRITE(11,'(A)') ' IMPLICIT NONE' - WRITE(11,'(A)') ' INTEGER(HID_T), INTENT(IN) :: prp_id' - WRITE(11,'(A)') ' INTEGER(HID_T), INTENT(IN) :: type_id' - WRITE(11,'(A)') ' REAL(KIND='//TRIM(ADJUSTL(chr2))//'), INTENT(IN), TARGET :: fillvalue' - WRITE(11,'(A)') ' INTEGER, INTENT(OUT) :: hdferr ' - WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr ' - WRITE(11,'(A)') ' f_ptr = C_LOC(fillvalue)' - WRITE(11,'(A)') ' hdferr = h5pset_fill_value_c(prp_id, type_id, f_ptr)' - WRITE(11,'(A)') ' END SUBROUTINE h5pset_fill_value_kind_'//TRIM(ADJUSTL(chr2)) - ENDDO - -! H5Pget_fill_value_f - DO i = 1, num_rkinds - k = rkind(i) - WRITE(chr2,'(I2)') k -! DLL definitions for windows - WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' - WRITE(11,'(A)') '!DEC$attributes dllexport :: h5pget_fill_value_kind_'//TRIM(ADJUSTL(chr2)) - WRITE(11,'(A)') '!DEC$endif' -! Subroutine API - WRITE(11,'(A)') ' SUBROUTINE h5pget_fill_value_kind_'//TRIM(ADJUSTL(chr2))& - &//'(prp_id, type_id, fillvalue, hdferr)' - WRITE(11,'(A)') ' IMPLICIT NONE' - WRITE(11,'(A)') ' INTEGER(HID_T), INTENT(IN) :: prp_id' - WRITE(11,'(A)') ' INTEGER(HID_T), INTENT(IN) :: type_id' - WRITE(11,'(A)') ' REAL(KIND='//TRIM(ADJUSTL(chr2))//'), INTENT(OUT), TARGET :: fillvalue' - WRITE(11,'(A)') ' INTEGER, INTENT(OUT) :: hdferr' - WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' - WRITE(11,'(A)') ' f_ptr = C_LOC(fillvalue)' - WRITE(11,'(A)') ' hdferr = h5pget_fill_value_c(prp_id, type_id, f_ptr)' - WRITE(11,'(A)') ' END SUBROUTINE h5pget_fill_value_kind_'//TRIM(ADJUSTL(chr2)) - ENDDO - -! H5Pset_f - DO i = 1, num_rkinds - k = rkind(i) - WRITE(chr2,'(I2)') k -! DLL definitions for windows - WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' - WRITE(11,'(A)') '!DEC$attributes dllexport :: h5pset_kind_'//TRIM(ADJUSTL(chr2)) - WRITE(11,'(A)') '!DEC$endif' -! Subroutine API - WRITE(11,'(A)') ' SUBROUTINE h5pset_kind_'//TRIM(ADJUSTL(chr2))& - &//'(prp_id, name, value, hdferr)' - WRITE(11,'(A)') ' IMPLICIT NONE' - WRITE(11,'(A)') ' INTEGER(HID_T), INTENT(IN) :: prp_id' - WRITE(11,'(A)') ' CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name' - WRITE(11,'(A)') ' REAL(KIND='//TRIM(ADJUSTL(chr2))//'), INTENT(IN), TARGET :: value' - WRITE(11,'(A)') ' INTEGER, INTENT(OUT) :: hdferr' - WRITE(11,'(A)') ' INTEGER :: name_len' - WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' - WRITE(11,'(A)') ' f_ptr = C_LOC(value)' - WRITE(11,'(A)') ' name_len = LEN(name)' - WRITE(11,'(A)') ' hdferr = h5pget_c(prp_id, name, name_len, f_ptr)' - - WRITE(11,'(A)') ' END SUBROUTINE h5pset_kind_'//TRIM(ADJUSTL(chr2)) - ENDDO - -! H5Pget_f - DO i = 1, num_rkinds - k = rkind(i) - WRITE(chr2,'(I2)') k -! DLL definitions for windows - WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' - WRITE(11,'(A)') '!DEC$attributes dllexport :: h5pget_kind_'//TRIM(ADJUSTL(chr2)) - WRITE(11,'(A)') '!DEC$endif' -! Subroutine API - WRITE(11,'(A)') ' SUBROUTINE h5pget_kind_'//TRIM(ADJUSTL(chr2))& - &//'(prp_id, name, value, hdferr)' - WRITE(11,'(A)') ' IMPLICIT NONE' - WRITE(11,'(A)') ' INTEGER(HID_T), INTENT(IN) :: prp_id' - WRITE(11,'(A)') ' CHARACTER(LEN=*), INTENT(IN) :: name' - WRITE(11,'(A)') ' REAL(KIND='//TRIM(ADJUSTL(chr2))//'), INTENT(OUT), TARGET :: value' - WRITE(11,'(A)') ' INTEGER, INTENT(OUT) :: hdferr' - WRITE(11,'(A)') ' INTEGER :: name_len' - WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' - WRITE(11,'(A)') ' f_ptr = C_LOC(value)' - WRITE(11,'(A)') ' name_len = LEN(name)' - WRITE(11,'(A)') ' hdferr = h5pget_c(prp_id, name, name_len, f_ptr)' - WRITE(11,'(A)') ' END SUBROUTINE h5pget_kind_'//TRIM(ADJUSTL(chr2)) - ENDDO - -! H5Pregister_f - DO i = 1, num_rkinds - k = rkind(i) - WRITE(chr2,'(I2)') k -! DLL definitions for windows - WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' - WRITE(11,'(A)') '!DEC$attributes dllexport :: h5pregister_kind_'//TRIM(ADJUSTL(chr2)) - WRITE(11,'(A)') '!DEC$endif' -! Subroutine API - WRITE(11,'(A)') 'SUBROUTINE h5pregister_kind_'//TRIM(ADJUSTL(chr2))& - &//'(class, name, size, value, hdferr)' - WRITE(11,'(A)') ' IMPLICIT NONE' - WRITE(11,'(A)') ' INTEGER(HID_T), INTENT(IN) :: class' - WRITE(11,'(A)') ' CHARACTER(LEN=*), INTENT(IN) :: name' - WRITE(11,'(A)') ' INTEGER(SIZE_T), INTENT(IN) :: size' - WRITE(11,'(A)') ' REAL(KIND='//TRIM(ADJUSTL(chr2))//'), INTENT(IN), TARGET :: value' - WRITE(11,'(A)') ' INTEGER, INTENT(OUT) :: hdferr' - WRITE(11,'(A)') ' INTEGER :: name_len' - WRITE(11,'(A)') ' TYPE(C_PTR) :: f_ptr' - WRITE(11,'(A)') ' f_ptr = C_LOC(value)' - WRITE(11,'(A)') ' name_len = LEN(name)' - WRITE(11,'(A)') ' hdferr = h5pregister_c(class, name, name_len, size, f_ptr)' - WRITE(11,'(A)') 'END SUBROUTINE h5pregister_kind_'//TRIM(ADJUSTL(chr2)) - ENDDO - -! H5Pinsert_f - DO i = 1, num_rkinds - k = rkind(i) - WRITE(chr2,'(I2)') k -! DLL definitions for windows - WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)' - WRITE(11,'(A)') '!DEC$attributes dllexport :: h5pinsert_kind_'//TRIM(ADJUSTL(chr2)) - WRITE(11,'(A)') '!DEC$endif' -! Subroutine API - WRITE(11,'(A)') ' SUBROUTINE h5pinsert_kind_'//TRIM(ADJUSTL(chr2))& - &//'(plist, name, size, value, hdferr)' - WRITE(11,'(A)') ' IMPLICIT NONE' - WRITE(11,'(A)') ' INTEGER(HID_T), INTENT(IN) :: plist' - WRITE(11,'(A)') ' CHARACTER(LEN=*), INTENT(IN) :: name' - WRITE(11,'(A)') ' INTEGER(SIZE_T), INTENT(IN) :: size' - WRITE(11,'(A)') ' REAL(KIND='//TRIM(ADJUSTL(chr2))//'), INTENT(IN), TARGET :: value' - WRITE(11,'(A)') ' INTEGER, INTENT(OUT) :: hdferr' - WRITE(11,'(A)') ' INTEGER :: name_len' - WRITE(11,'(A)') ' TYPE(c_ptr) :: f_ptr' - WRITE(11,'(A)') ' f_ptr = c_loc(value)' - WRITE(11,'(A)') ' name_len = LEN(name)' - WRITE(11,'(A)') ' hdferr = h5pinsert_c(plist, name , name_len, size, f_ptr)' - WRITE(11,'(A)') ' END SUBROUTINE h5pinsert_kind_'//TRIM(ADJUSTL(chr2)) - ENDDO - - WRITE(11,'(A)') 'END MODULE H5_gen' - - CLOSE(11) - -END PROGRAM H5_buildiface - - - diff --git a/fortran/src/H5_f.c b/fortran/src/H5_f.c index e527dce..1641989 100644 --- a/fortran/src/H5_f.c +++ b/fortran/src/H5_f.c @@ -1,6 +1,6 @@ /****ih* H5_f/H5_f * PURPOSE - * This file contains C stubs for H5 Fortran APIs + * This file contains C stubs for H5 Fortran APIs * * COPYRIGHT * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -22,7 +22,7 @@ */ #include "H5f90.h" -#include "H5fort_type_defines.h" + /****if* H5_f/h5init_types_c * NAME * h5init_types_c @@ -30,17 +30,17 @@ * 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 + * 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 + * 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 + * 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 @@ -49,14 +49,14 @@ * SOURCE */ int_f -h5init_types_c( hid_t_f * types, hid_t_f * floatingtypes, hid_t_f * integertypes ) +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; -/* Fortran INTEGER may not be the same as C; do all checking to find +/* Fortran INTEGER is may not be the same as C in; do all checking to find an appropriate size */ if (sizeof(int_f) == sizeof(int)) { @@ -92,12 +92,6 @@ h5init_types_c( hid_t_f * types, hid_t_f * floatingtypes, hid_t_f * integertypes if ((types[2] = (hid_t_f)H5Tcopy(H5T_NATIVE_LDOUBLE)) < 0) return ret_value; }/*end else */ #endif -#ifdef H5_HAVE_FLOAT128 - else if(sizeof(double_f)==sizeof(__float128)) { - if ((types[2] = H5Tcopy (H5T_NATIVE_FLOAT)) < 0) return ret_value; - if ( H5Tset_precision (types[2], 128) < 0) return ret_value; - }/*end else */ -#endif /* if ((types[3] = H5Tcopy(H5T_NATIVE_UINT8)) < 0) return ret_value; @@ -132,11 +126,7 @@ h5init_types_c( hid_t_f * types, hid_t_f * floatingtypes, hid_t_f * integertypes if ((types[6] = (hid_t_f)H5Tcopy(H5T_NATIVE_INT)) < 0) return ret_value; } /*end if */ else if (sizeof(int_1_f) == sizeof(long long)) { - if ((types[6] = (hid_t_f)H5Tcopy(H5T_NATIVE_LLONG)) < 0) return ret_value; - } /*end if */ - else { - if ((types[6] = H5Tcopy (H5T_NATIVE_INT)) < 0) return ret_value; - if ( H5Tset_precision (types[6], 128) < 0) return ret_value; + if ((types[6] = (hid_t_f)H5Tcopy(H5T_NATIVE_LLONG)) < 0) return ret_value; } /*end else */ /* * FIND H5T_NATIVE_INTEGER_2 @@ -153,10 +143,6 @@ h5init_types_c( hid_t_f * types, hid_t_f * floatingtypes, hid_t_f * integertypes 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 */ - else { - if ((types[7] = H5Tcopy (H5T_NATIVE_INT)) < 0) return ret_value; - if ( H5Tset_precision (types[7], 128) < 0) return ret_value; - } /*end else */ /* * FIND H5T_NATIVE_INTEGER_4 */ @@ -172,10 +158,6 @@ h5init_types_c( hid_t_f * types, hid_t_f * floatingtypes, hid_t_f * integertypes 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 */ - else { - if ((types[8] = H5Tcopy (H5T_NATIVE_INT)) < 0) return ret_value; - if ( H5Tset_precision (types[8], 128) < 0) return ret_value; - } /*end else */ /* * FIND H5T_NATIVE_INTEGER_8 */ @@ -191,65 +173,47 @@ h5init_types_c( hid_t_f * types, hid_t_f * floatingtypes, hid_t_f * integertypes 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 */ - else { - if ((types[9] = H5Tcopy (H5T_NATIVE_INT)) < 0) return ret_value; - if ( H5Tset_precision (types[9], 128) < 0) return ret_value; - } /*end else */ - /* - * FIND H5T_NATIVE_REAL_C_FLOAT + * FIND H5T_NATIVE_REAL_4 */ - if (sizeof(real_C_FLOAT_f) == sizeof(float)) { + if (sizeof(real_4_f) == sizeof(float)) { if ((types[10] = (hid_t_f)H5Tcopy(H5T_NATIVE_FLOAT)) < 0) return ret_value; } /*end if */ - else if (sizeof(real_C_FLOAT_f) == sizeof(double)) { + else if (sizeof(real_4_f) == sizeof(double)) { if ((types[10] = (hid_t_f)H5Tcopy(H5T_NATIVE_DOUBLE)) < 0) return ret_value; } /*end if */ #if H5_SIZEOF_LONG_DOUBLE!=0 - else if (sizeof(real_C_FLOAT_f) == sizeof(long double)) { + else if (sizeof(real_4_f) == sizeof(long double)) { if ((types[10] = (hid_t_f)H5Tcopy(H5T_NATIVE_LDOUBLE)) < 0) return ret_value; } /*end else */ #endif /* - * FIND H5T_NATIVE_REAL_C_DOUBLE + * FIND H5T_NATIVE_REAL_8 */ - if (sizeof(real_C_DOUBLE_f) == sizeof(float)) { + if (sizeof(real_8_f) == sizeof(float)) { if ((types[11] = (hid_t_f)H5Tcopy(H5T_NATIVE_FLOAT)) < 0) return ret_value; } /*end if */ - else if (sizeof(real_C_DOUBLE_f) == sizeof(double)) { + else if (sizeof(real_8_f) == sizeof(double)) { if ((types[11] = (hid_t_f)H5Tcopy(H5T_NATIVE_DOUBLE)) < 0) return ret_value; } /*end if */ #if H5_SIZEOF_LONG_DOUBLE!=0 - else if (sizeof(real_C_DOUBLE_f) == sizeof(long double)) { + else if (sizeof(real_8_f) == sizeof(long double)) { if ((types[11] = (hid_t_f)H5Tcopy(H5T_NATIVE_LDOUBLE)) < 0) return ret_value; } /*end else */ #endif /* - * FIND H5T_NATIVE_REAL_C_LONG_DOUBLE + * FIND H5T_NATIVE_REAL_16 */ -#if H5_FORTRAN_C_LONG_DOUBLE_IS_UNIQUE!=0 - if (sizeof(real_C_LONG_DOUBLE_f) == sizeof(float)) { + if (sizeof(real_16_f) == sizeof(float)) { if ((types[12] = (hid_t_f)H5Tcopy(H5T_NATIVE_FLOAT)) < 0) return ret_value; } /*end if */ - else if (sizeof(real_C_LONG_DOUBLE_f) == sizeof(double)) { + else if (sizeof(real_16_f) == sizeof(double)) { if ((types[12] = (hid_t_f)H5Tcopy(H5T_NATIVE_DOUBLE)) < 0) return ret_value; } /*end if */ -# if H5_FORTRAN_HAVE_C_LONG_DOUBLE!=0 - else if (sizeof(real_C_LONG_DOUBLE_f) == sizeof(long double)) { - if ( H5_PAC_C_MAX_REAL_PRECISION >= H5_PAC_FC_MAX_REAL_PRECISION) { +#if H5_SIZEOF_LONG_DOUBLE!=0 + else if (sizeof(real_16_f) == sizeof(long double)) { if ((types[12] = (hid_t_f)H5Tcopy(H5T_NATIVE_LDOUBLE)) < 0) return ret_value; - } - else { - if ((types[12] = H5Tcopy (H5T_NATIVE_FLOAT)) < 0) return ret_value; - if ( H5Tset_precision (types[12], 128) < 0) return ret_value; - } - } -# else - if ((types[12] = H5Tcopy (H5T_NATIVE_FLOAT)) < 0) return ret_value; - if ( H5Tset_precision (types[12], 64) < 0) return ret_value; -# endif -#else - if ((types[12] = H5Tcopy(H5T_NATIVE_DOUBLE)) < 0) return ret_value; + } /*end else */ #endif /* * FIND H5T_NATIVE_B_8 @@ -257,38 +221,7 @@ h5init_types_c( hid_t_f * types, hid_t_f * floatingtypes, hid_t_f * integertypes 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 H5_HAVE_Fortran_INTEGER_SIZEOF_16!=0 - /* - * FIND H5T_NATIVE_INTEGER_16 - */ - if (sizeof(int_16_f) == sizeof(char)) { - if ((types[17] = (hid_t_f)H5Tcopy(H5T_NATIVE_CHAR)) < 0) return ret_value; - } /*end if */ - else if (sizeof(int_16_f) == sizeof(short)) { - if ((types[17] = (hid_t_f)H5Tcopy(H5T_NATIVE_SHORT)) < 0) return ret_value; - } /*end if */ - else if (sizeof(int_16_f) == sizeof(int)) { - if ((types[17] = (hid_t_f)H5Tcopy(H5T_NATIVE_INT)) < 0) return ret_value; - } /*end if */ - else if (sizeof(int_16_f) == sizeof(long long)) { - if ((types[17] = (hid_t_f)H5Tcopy(H5T_NATIVE_LLONG)) < 0) return ret_value; - } /*end else */ - else { - if ((types[17] = H5Tcopy (H5T_NATIVE_INT)) < 0) return ret_value; - if ( H5Tset_precision (types[17], 128) < 0) return ret_value; - } /*end else */ -#else - if ((types[17] = H5Tcopy (H5T_NATIVE_INT)) < 0) return ret_value; - if ( H5Tset_precision (types[17], 128) < 0) return ret_value; -#endif - - /* - * FIND H5T_NATIVE_FLOAT_128 - */ - if ((types[18] = H5Tcopy (H5T_NATIVE_FLOAT)) < 0) return ret_value; - if ( H5Tset_precision (types[18], 128) < 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; @@ -339,35 +272,35 @@ h5init_types_c( hid_t_f * types, hid_t_f * floatingtypes, hid_t_f * integertypes * 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 + * 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 + * 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 + * 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 + * 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 + * 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 + * same as the length of floatingtypes array defined + * in the H5f90global.f90 * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR - * Elena Pourmal - * Tuesday, August 3, 1999 + * Elena Pourmal + * Tuesday, August 3, 1999 * SOURCE */ int_f -h5close_types_c( hid_t_f * types, int_f *lentypes, +nh5close_types_c( hid_t_f * types, int_f *lentypes, hid_t_f * floatingtypes, int_f* floatinglen, hid_t_f * integertypes, int_f * integerlen ) /******/ @@ -377,16 +310,16 @@ h5close_types_c( hid_t_f * types, int_f *lentypes, int i; for (i = 0; i < *lentypes; i++) { - c_type_id = types[i]; - if ( H5Tclose(c_type_id) < 0) return ret_value; + c_type_id = types[i]; + if ( H5Tclose(c_type_id) < 0) return ret_value; } for (i = 0; i < *floatinglen; i++) { - c_type_id = floatingtypes[i]; - if ( H5Tclose(c_type_id) < 0) return ret_value; + c_type_id = floatingtypes[i]; + if ( H5Tclose(c_type_id) < 0) return ret_value; } for (i = 0; i < *integerlen; i++) { - c_type_id = integertypes[i]; - if ( H5Tclose(c_type_id) < 0) return ret_value; + c_type_id = integertypes[i]; + if ( H5Tclose(c_type_id) < 0) return ret_value; } ret_value = 0; return ret_value; @@ -435,7 +368,7 @@ h5close_types_c( hid_t_f * types, int_f *lentypes, * SOURCE */ int_f -h5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags, +nh5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_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, @@ -591,11 +524,11 @@ h5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags, h5o_flags[6] = (int_f)H5O_COPY_ALL; /* All object copying flags (for internal checking) */ /* Flags for shared message indexes. - * Pass these flags in using the mesg_type_flags parameter in + * Pass these flags in using the mesg_type_flags parameter in * H5P_set_shared_mesg_index. * (Developers: These flags correspond to object header message type IDs, - * but we need to assign each kind of message to a different bit so that - * one index can hold multiple types.) + * but we need to assign each kind of message to a different bit so that + * one index can hold multiple types.) */ h5o_flags[7] = (int_f)H5O_SHMESG_NONE_FLAG; /* No shared messages */ h5o_flags[8] = (int_f)H5O_SHMESG_SDSPACE_FLAG; /* Simple Dataspace Message. */ @@ -614,7 +547,7 @@ h5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags, h5o_flags[19] = (int_f)H5O_HDR_ALL_FLAGS; /* Maximum shared message values. Number of indexes is 8 to allow room to add - * new types of messages. + * new types of messages. */ h5o_flags[20] = (int_f)H5O_SHMESG_MAX_NINDEXES; h5o_flags[21] = (int_f)H5O_SHMESG_MAX_LIST_SIZE; @@ -756,7 +689,7 @@ h5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags, /* - * H5 Generic flags introduced in version 1.8 + * H5 Generic flags introduced in version 1.8 -MSB- */ /* H5_index_t enum struct */ @@ -780,7 +713,7 @@ h5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags, } int_f -h5init1_flags_c(int_f *h5lib_flags) +nh5init1_flags_c(int_f *h5lib_flags) /******/ { int ret_value = -1; @@ -794,19 +727,19 @@ h5init1_flags_c(int_f *h5lib_flags) /****if* H5_f/h5open_c * NAME - * h5open_c + * h5open_c * PURPOSE - * Calls H5open call to initialize C HDF5 library + * Calls H5open call to initialize C HDF5 library * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR - * Elena Pourmal - * Friday, November 17, 2000 + * Elena Pourmal + * Friday, November 17, 2000 * * SOURCE */ int_f -h5open_c(void) +nh5open_c(void) /******/ { int ret_value = -1; @@ -817,17 +750,17 @@ h5open_c(void) } /****if* H5_f/h5close_c * NAME - * h5close_c + * h5close_c * PURPOSE - * Calls H5close call to close C HDF5 library + * Calls H5close call to close C HDF5 library * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR - * Elena Pourmal + * Elena Pourmal * SOURCE */ int_f -h5close_c(void) +nh5close_c(void) /******/ { int ret_value = -1; @@ -839,28 +772,28 @@ h5close_c(void) /****if* H5_f/h5get_libversion_c * NAME - * h5get_libversion_c + * h5get_libversion_c * PURPOSE - * Calls H5get_libversion function + * Calls H5get_libversion function * to retrieve library version info. * INPUTS * - * None + * None * OUTPUTS * - * majnum - the major version of the library - * minnum - the minor version of the library - * relnum - the release version of the library + * 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 + * 0 on success, -1 on failure * AUTHOR - * Elena Pourmal - * Tuesday, September 24, 2002 + * Elena Pourmal + * Tuesday, September 24, 2002 * SOURCE * */ int_f -h5get_libversion_c(int_f *majnum, int_f *minnum, int_f *relnum) +nh5get_libversion_c(int_f *majnum, int_f *minnum, int_f *relnum) /******/ { @@ -878,27 +811,27 @@ h5get_libversion_c(int_f *majnum, int_f *minnum, int_f *relnum) /****if* H5_f/h5check_version_c * NAME - * h5check_version_c + * h5check_version_c * PURPOSE - * Calls H5check_version function + * Calls H5check_version function * to verify library version info. * INPUTS * - * majnum - the major version of the library - * minnum - the minor version of the library - * relnum - the release version of the library + * majnum - the major version of the library + * minnum - the minor version of the library + * relnum - the release version of the library * OUTPUTS * - * None + * None * RETURNS - * 0 on success, aborts on failure + * 0 on success, aborts on failure * AUTHOR - * Elena Pourmal - * Tuesday, September 24, 2002 + * Elena Pourmal + * Tuesday, September 24, 2002 * SOURCE */ int_f -h5check_version_c(int_f *majnum, int_f *minnum, int_f *relnum) +nh5check_version_c(int_f *majnum, int_f *minnum, int_f *relnum) /******/ { int ret_value = -1; @@ -916,18 +849,18 @@ h5check_version_c(int_f *majnum, int_f *minnum, int_f *relnum) /****if* H5_f/h5garbage_collect_c * NAME - * h5garbage_collect_c + * h5garbage_collect_c * PURPOSE - * Calls H5garbage_collect to collect on all free-lists of all types + * Calls H5garbage_collect to collect on all free-lists of all types * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR - * Elena Pourmal - * Tuesday, September 24, 2002 + * Elena Pourmal + * Tuesday, September 24, 2002 * SOURCE */ int_f -h5garbage_collect_c(void) +nh5garbage_collect_c(void) /******/ { int ret_value = -1; @@ -939,18 +872,18 @@ h5garbage_collect_c(void) /****if* H5_f/h5dont_atexit_c * NAME - * h5dont_atexit_c + * h5dont_atexit_c * PURPOSE - * Calls H5dont_atexit not to install atexit cleanup routine + * Calls H5dont_atexit not to install atexit cleanup routine * RETURNS - * 0 on success, -1 on failure + * 0 on success, -1 on failure * AUTHOR - * Elena Pourmal - * Tuesday, September 24, 2002 + * Elena Pourmal + * Tuesday, September 24, 2002 * SOURCE */ int_f -h5dont_atexit_c(void) +nh5dont_atexit_c(void) /******/ { int ret_value = -1; diff --git a/fortran/src/H5_ff.F90 b/fortran/src/H5_ff.f90 index 39e23a7..49e64a3 100644 --- a/fortran/src/H5_ff.F90 +++ b/fortran/src/H5_ff.f90 @@ -6,6 +6,11 @@ ! 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. * @@ -23,26 +28,19 @@ ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! ! NOTES -! _____ __ __ _____ ____ _____ _______ _ _ _______ -! |_ _| \/ | __ \ / __ \| __ \__ __|/\ | \ | |__ __| -! **** | | | \ / | |__) | | | | |__) | | | / \ | \| | | | **** -! **** | | | |\/| | ___/| | | | _ / | | / /\ \ | . ` | | | **** -! **** _| |_| | | | | | |__| | | \ \ | |/ ____ \| |\ | | | **** -! |_____|_| |_|_| \____/|_| \_\ |_/_/ \_\_| \_| |_| -! +! *** IMPORTANT *** ! If you add a new function you must add the function name to the ! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory. ! This is needed for Windows based operating systems. ! !***** -#include <H5config_f.inc> - MODULE H5LIB - USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, C_INTPTR_T + USE H5LIB_PROVISIONAL ! helper functions for Fortran 2003 features: + ! pre-Fortran 2003 - empty module + ! Forttran 2003 - contains functions USE H5GLOBAL - IMPLICIT NONE CONTAINS !****s* H5LIB/h5open_f @@ -70,20 +68,21 @@ CONTAINS ! October 13, 2011 ! Fortran90 Interface: SUBROUTINE h5open_f(error) + USE H5GLOBAL IMPLICIT NONE INTEGER, INTENT(OUT) :: error !***** INTEGER :: error_1, error_2, error_3 INTERFACE - INTEGER FUNCTION h5init_types_c(p_types, f_types, i_types) & - BIND(C,NAME='h5init_types_c') - IMPORT :: HID_T - IMPORT :: PREDEF_TYPES_LEN, FLOATING_TYPES_LEN, INTEGER_TYPES_LEN - IMPLICIT NONE + INTEGER FUNCTION h5init_types_c(p_types, f_types, i_types) + USE H5GLOBAL INTEGER(HID_T), DIMENSION(PREDEF_TYPES_LEN) :: p_types INTEGER(HID_T), DIMENSION(FLOATING_TYPES_LEN) :: f_types INTEGER(HID_T), DIMENSION(INTEGER_TYPES_LEN) :: i_types + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5INIT_TYPES_C'::h5init_types_c + !DEC$ENDIF END FUNCTION h5init_types_c END INTERFACE INTERFACE @@ -105,17 +104,8 @@ CONTAINS i_H5S_hsize_flags, & i_H5T_flags, & i_H5Z_flags, & - i_H5generic_flags) & - BIND(C,NAME='h5init_flags_c') - IMPORT :: HID_T, SIZE_T, HSIZE_T - IMPORT :: H5D_FLAGS_LEN, H5D_SIZE_FLAGS_LEN, & - H5E_FLAGS_LEN, H5E_HID_FLAGS_LEN, & - H5F_FLAGS_LEN, H5G_FLAGS_LEN, H5FD_FLAGS_LEN, & - H5FD_HID_FLAGS_LEN, H5I_FLAGS_LEN, H5L_FLAGS_LEN, & - H5O_FLAGS_LEN, H5P_FLAGS_LEN, H5P_FLAGS_INT_LEN, & - H5R_FLAGS_LEN, H5S_FLAGS_LEN, H5S_HSIZE_FLAGS_LEN, & - H5T_FLAGS_LEN, H5Z_FLAGS_LEN, H5generic_FLAGS_LEN - IMPLICIT NONE + i_H5generic_flags) + USE H5GLOBAL INTEGER i_H5D_flags(H5D_FLAGS_LEN) INTEGER(SIZE_T) i_H5D_size_flags(H5D_SIZE_FLAGS_LEN) INTEGER i_H5E_flags(H5E_FLAGS_LEN) @@ -135,14 +125,18 @@ 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 END FUNCTION h5init_flags_c END INTERFACE INTERFACE - INTEGER FUNCTION h5init1_flags_c( i_H5LIB_flags ) & - BIND(C,NAME='h5init1_flags_c') - IMPORT :: H5LIB_FLAGS_LEN - IMPLICIT NONE + INTEGER FUNCTION h5init1_flags_c( i_H5LIB_flags ) + USE H5GLOBAL INTEGER i_H5LIB_flags(H5LIB_FLAGS_LEN) + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5INIT1_FLAGS_C'::h5init1_flags_c + !DEC$ENDIF END FUNCTION h5init1_flags_c END INTERFACE error_1 = h5init_types_c(predef_types, floating_types, integer_types) @@ -194,6 +188,7 @@ CONTAINS ! October 13, 2011 ! Fortran90 Interface: SUBROUTINE h5close_f(error) + USE H5GLOBAL IMPLICIT NONE INTEGER, INTENT(OUT) :: error !***** @@ -201,15 +196,17 @@ CONTAINS INTERFACE INTEGER FUNCTION h5close_types_c(p_types, P_TYPES_LEN, & f_types, F_TYPES_LEN, & - i_types, I_TYPES_LEN ) & - BIND(C,NAME='h5close_types_c') - IMPORT :: HID_T + i_types, I_TYPES_LEN ) + USE H5GLOBAL INTEGER P_TYPES_LEN INTEGER F_TYPES_LEN INTEGER I_TYPES_LEN INTEGER(HID_T), DIMENSION(P_TYPES_LEN) :: p_types INTEGER(HID_T), DIMENSION(F_TYPES_LEN) :: f_types INTEGER(HID_T), DIMENSION(I_TYPES_LEN) :: i_types + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5CLOSE_TYPES_C'::h5close_types_c + !DEC$ENDIF END FUNCTION h5close_types_c END INTERFACE error_1 = h5close_types_c(predef_types, PREDEF_TYPES_LEN, & @@ -239,13 +236,15 @@ CONTAINS ! ! Fortran90 Interface: 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) & - BIND(C,NAME='h5get_libversion_c') - IMPLICIT NONE + INTEGER FUNCTION h5get_libversion_c(majnum, minnum, relnum) + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GET_LIBVERSION_C'::h5get_libversion_c + !DEC$ENDIF INTEGER, INTENT(OUT) :: majnum, minnum, relnum END FUNCTION h5get_libversion_c END INTERFACE @@ -276,14 +275,16 @@ CONTAINS ! ! Fortran90 Interface: 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) & - BIND(C,NAME='h5check_version_c') - IMPLICIT NONE + INTEGER FUNCTION h5check_version_c(majnum, minnum, relnum) + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5CHECK_VERSION_C'::h5check_version_c + !DEC$ENDIF INTEGER, INTENT(IN) :: majnum, minnum, relnum END FUNCTION h5check_version_c END INTERFACE @@ -308,12 +309,15 @@ CONTAINS ! ! Fortran90 Interface: SUBROUTINE h5garbage_collect_f(error) + USE H5GLOBAL IMPLICIT NONE INTEGER, INTENT(OUT) :: error !***** INTERFACE - INTEGER FUNCTION h5garbage_collect_c() & - BIND(C,NAME='h5garbage_collect_c') + INTEGER FUNCTION h5garbage_collect_c() + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5GARBAGE_COLLECT_C'::h5garbage_collect_c + !DEC$ENDIF END FUNCTION h5garbage_collect_c END INTERFACE @@ -337,12 +341,15 @@ CONTAINS ! ! Fortran90 Interface: SUBROUTINE h5dont_atexit_f(error) + USE H5GLOBAL IMPLICIT NONE INTEGER, INTENT(OUT) :: error !***** INTERFACE - INTEGER FUNCTION h5dont_atexit_c() & - BIND(C,NAME='h5dont_atexit_c') + INTEGER FUNCTION h5dont_atexit_c() + !DEC$IF DEFINED(HDF5F90_WINDOWS) + !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DONT_ATEXIT_C'::h5dont_atexit_c + !DEC$ENDIF END FUNCTION h5dont_atexit_c END INTERFACE @@ -372,6 +379,7 @@ CONTAINS ! ! Fortran90 Interface: INTEGER(HID_T) FUNCTION h5kind_to_type(kind, flag) RESULT(h5_type) + USE H5GLOBAL IMPLICIT NONE INTEGER, INTENT(IN) :: kind INTEGER, INTENT(IN) :: flag @@ -385,67 +393,17 @@ CONTAINS h5_type = H5T_NATIVE_INTEGER_4 ELSE IF(kind.EQ.Fortran_INTEGER_8)THEN h5_type = H5T_NATIVE_INTEGER_8 -#if H5_HAVE_Fortran_INTEGER_SIZEOF_16!=0 - ELSE IF(kind.EQ.Fortran_INTEGER_16)THEN - h5_type = H5T_NATIVE_INTEGER_16 -#endif ENDIF ELSE IF(flag.EQ.H5_REAL_KIND)THEN - IF(kind.EQ.Fortran_REAL_C_FLOAT)THEN - h5_type = H5T_NATIVE_REAL_C_FLOAT - ELSE IF(kind.EQ.Fortran_REAL_C_DOUBLE)THEN - h5_type = H5T_NATIVE_REAL_C_DOUBLE -#if H5_FORTRAN_C_LONG_DOUBLE_IS_UNIQUE!=0 - ELSE IF(kind.EQ.Fortran_REAL_C_LONG_DOUBLE)THEN - h5_type = H5T_NATIVE_REAL_C_LONG_DOUBLE -#endif -#if H5_PAC_FC_MAX_REAL_PRECISION > 28 -#if H5_HAVE_FLOAT128 == 1 - ELSE IF(kind.EQ.Fortran_REAL_C_FLOAT128)THEN - h5_type = H5T_NATIVE_FLOAT_128 -#endif -#endif - ELSE - h5_type = -1 + 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 -!****f* H5LIB_PROVISIONAL/h5offsetof -! -! NAME -! h5offsetof -! -! PURPOSE -! Computes the offset in memory -! -! Inputs: -! start - starting pointer address -! end - ending pointer address -! -! Outputs: -! offset - offset of a member within the derived type -! -! AUTHOR -! M. Scot Breitenfeld -! Augest 25, 2008 -! -! ACKNOWLEDGEMENTS -! Joe Krahn -! -! Fortran2003 Interface: - FUNCTION h5offsetof(start,end) RESULT(offset) - 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 diff --git a/fortran/src/H5_ff_F03.f90 b/fortran/src/H5_ff_F03.f90 new file mode 100644 index 0000000..d418ed5 --- /dev/null +++ b/fortran/src/H5_ff_F03.f90 @@ -0,0 +1,75 @@ +!****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' 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 of a member within the derived type +! +! AUTHOR +! M. Scot Breitenfeld +! Augest 25, 2008 +! +! ACKNOWLEDGEMENTS +! Joe Krahn +! +! Fortran2003 Interface: + 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/H5config_f.inc.cmake b/fortran/src/H5config_f.inc.cmake deleted file mode 100644 index cc36889..0000000 --- a/fortran/src/H5config_f.inc.cmake +++ /dev/null @@ -1,84 +0,0 @@ -! fortran/src/H5config_f.inc. Generated from fortran/src/H5config_f.inc.in by configure - -! Define if we have parallel support -#define H5_HAVE_PARALLEL @CMAKE_H5_HAVE_PARALLEL@ - -#if H5_HAVE_PARALLEL==0 -#undef H5_HAVE_PARALLEL -#endif - -! Define if the intrinsic function STORAGE_SIZE exists -#define H5_FORTRAN_HAVE_STORAGE_SIZE @FORTRAN_HAVE_STORAGE_SIZE@ - -#if H5_FORTRAN_HAVE_STORAGE_SIZE==0 -#undef H5_FORTRAN_HAVE_STORAGE_SIZE -#endif - -! Define if the intrinsic function SIZEOF exists -#define H5_FORTRAN_HAVE_SIZEOF @FORTRAN_HAVE_SIZEOF@ - -#if H5_FORTRAN_HAVE_SIZEOF==0 -#undef H5_FORTRAN_HAVE_SIZEOF -#endif - -! Define if the intrinsic function C_SIZEOF exists -#define H5_FORTRAN_HAVE_C_SIZEOF @FORTRAN_HAVE_C_SIZEOF@ - -#if H5_FORTRAN_HAVE_C_SIZEOF==0 -#undef H5_FORTRAN_HAVE_C_SIZEOF -#endif - -! Define if the intrinsic C_LONG_DOUBLE exists -#define H5_FORTRAN_HAVE_C_LONG_DOUBLE @FORTRAN_HAVE_C_LONG_DOUBLE@ - -#if H5_FORTRAN_HAVE_C_LONG_DOUBLE==0 -#undef H5_FORTRAN_HAVE_C_LONG_DOUBLE -#endif - -! Define if Fortran C_LONG_DOUBLE is different from C_DOUBLE -#define H5_FORTRAN_C_LONG_DOUBLE_IS_UNIQUE @FORTRAN_C_LONG_DOUBLE_IS_UNIQUE@ - -! Define if the intrinsic module ISO_FORTRAN_ENV exists -#define H5_HAVE_ISO_FORTRAN_ENV @HAVE_ISO_FORTRAN_ENV@ - - -! should this be ${HDF_PREFIX} instead of H5 MSB -#define H5_SIZEOF_DOUBLE @H5_SIZEOF_DOUBLE@ - -#if H5_SIZEOF_DOUBLE==0 -#undef H5_SIZEOF_DOUBLE -#endif - -! should this be ${HDF_PREFIX} instead of H5 MSB -#define H5_SIZEOF_LONG_DOUBLE @H5_SIZEOF_LONG_DOUBLE@ - -#if H5_SIZEOF_LONG_DOUBLE==0 -#undef H5_SIZEOF_LONG_DOUBLE -#endif - -! Define the maximum decimal precision for reals -#define H5_PAC_FC_MAX_REAL_PRECISION @H5_PAC_FC_MAX_REAL_PRECISION@ - -! If C has quad precision -#define H5_HAVE_FLOAT128 @H5_HAVE_FLOAT128@ - -! Define if INTEGER*16 is available -#define H5_HAVE_Fortran_INTEGER_SIZEOF_16 @HAVE_Fortran_INTEGER_SIZEOF_16@ - -! Maximum decimal precision for C -#define H5_PAC_C_MAX_REAL_PRECISION @H5_PAC_C_MAX_REAL_PRECISION@ - -! number of valid REAL KINDs -#define H5_H5CONFIG_F_NUM_RKIND @H5CONFIG_F_NUM_RKIND@ - -! valid REAL KINDs (need to have a matching C counter-part) -#define H5_H5CONFIG_F_RKIND @H5CONFIG_F_RKIND@ - -! valid REAL KINDs (need to have a matching C counter-part) -#define H5_H5CONFIG_F_RKIND_SIZEOF @H5CONFIG_F_RKIND_SIZEOF@ - -! number of valid INTEGER KINDs -#define H5_H5CONFIG_F_NUM_IKIND @H5CONFIG_F_NUM_IKIND@ - -! valid INTEGER KINDs (need to have a matching C counter-part) -#define H5_H5CONFIG_F_IKIND @H5CONFIG_F_IKIND@ diff --git a/fortran/src/H5config_f.inc.in b/fortran/src/H5config_f.inc.in deleted file mode 100644 index 64c3a0c..0000000 --- a/fortran/src/H5config_f.inc.in +++ /dev/null @@ -1,59 +0,0 @@ -! fortran/src/H5config_f.inc. Generated from fortran/src/H5config_f.inc.in by configure - -! The script to replace the defines in H5config_f.inc.in is -! located in configure.ac in the Fortran section. - -! Define if we have parallel support -#undef HAVE_PARALLEL - -! Define if the intrinsic function STORAGE_SIZE exists -#undef FORTRAN_HAVE_STORAGE_SIZE - -! Define if the intrinsic function SIZEOF exists -#undef FORTRAN_HAVE_SIZEOF - -! Define if the intrinsic function C_SIZEOF exists -#undef FORTRAN_HAVE_C_SIZEOF - -! Define if the intrinsic function C_LONG_DOUBLE exists -#undef FORTRAN_HAVE_C_LONG_DOUBLE - -! Define if Fortran C_LONG_DOUBLE is different from C_DOUBLE -#undef FORTRAN_C_LONG_DOUBLE_IS_UNIQUE - -! Define if the intrinsic module ISO_FORTRAN_ENV exists -#undef HAVE_ISO_FORTRAN_ENV - -! Define the size of C's long double -#undef SIZEOF_DOUBLE - -! Define the size of C's long double -#undef SIZEOF_LONG_DOUBLE - -! Define the maximum decimal precision for reals -#undef PAC_FC_MAX_REAL_PRECISION - -! If C has quad precision -#undef HAVE_FLOAT128 - -! Define if INTEGER*16 is available -#undef HAVE_Fortran_INTEGER_SIZEOF_16 - -! Maximum decimal precision for C -#undef PAC_C_MAX_REAL_PRECISION - -! number of valid REAL KINDs -#undef H5CONFIG_F_NUM_RKIND - -! valid REAL KINDs (need to have a matching C counter-part) -#undef H5CONFIG_F_RKIND - -! valid REAL KINDs (need to have a matching C counter-part) -#undef H5CONFIG_F_RKIND_SIZEOF - -! number of valid INTEGER KINDs -#undef H5CONFIG_F_NUM_IKIND - -! valid INTEGER KINDs (need to have a matching C counter-part) -#undef H5CONFIG_F_IKIND - diff --git a/fortran/src/H5f90global.F90 b/fortran/src/H5f90global.f90 index c88327c..0e371f5 100644 --- a/fortran/src/H5f90global.F90 +++ b/fortran/src/H5f90global.f90 @@ -66,7 +66,7 @@ MODULE H5GLOBAL INTEGER, DIMENSION(1:REF_REG_BUF_LEN) :: ref END TYPE hdset_reg_ref_t_f - INTEGER, PARAMETER :: PREDEF_TYPES_LEN = 19 ! 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 @@ -82,9 +82,9 @@ MODULE H5GLOBAL H5T_NATIVE_INTEGER_2, & H5T_NATIVE_INTEGER_4, & H5T_NATIVE_INTEGER_8, & - H5T_NATIVE_REAL_C_FLOAT, & - H5T_NATIVE_REAL_C_DOUBLE, & - H5T_NATIVE_REAL_C_LONG_DOUBLE, & + H5T_NATIVE_REAL_4, & + H5T_NATIVE_REAL_8, & + H5T_NATIVE_REAL_16, & H5T_NATIVE_INTEGER, & H5T_NATIVE_REAL, & H5T_NATIVE_DOUBLE, & @@ -108,9 +108,6 @@ MODULE H5GLOBAL H5T_STD_U16BE, & H5T_STD_U16LE, & H5T_STD_U32BE - - INTEGER(HID_T) :: H5T_NATIVE_INTEGER_16 ! NEED IFDEF -MSB- - INTEGER(HID_T) :: H5T_NATIVE_FLOAT_128 ! NEED IFDEF -MSB- ! NOTE: Splitting the line since the Fortran 95 standard limits the number of ! continuation lines to 39; the F03/F08 standard limits the number @@ -147,15 +144,13 @@ MODULE H5GLOBAL EQUIVALENCE (predef_types(8), H5T_NATIVE_INTEGER_2) EQUIVALENCE (predef_types(9), H5T_NATIVE_INTEGER_4) EQUIVALENCE (predef_types(10), H5T_NATIVE_INTEGER_8) - EQUIVALENCE (predef_types(11), H5T_NATIVE_REAL_C_FLOAT) - EQUIVALENCE (predef_types(12), H5T_NATIVE_REAL_C_DOUBLE) - EQUIVALENCE (predef_types(13), H5T_NATIVE_REAL_C_LONG_DOUBLE) + 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) - EQUIVALENCE (predef_types(18), H5T_NATIVE_INTEGER_16) ! ADDED NEW TYPE -MSB- - EQUIVALENCE (predef_types(19), H5T_NATIVE_FLOAT_128) ! ADDED NEW TYPE -MSB- INTEGER(HID_T), DIMENSION(FLOATING_TYPES_LEN) :: floating_types EQUIVALENCE (floating_types(1), H5T_IEEE_F32BE ) @@ -239,6 +234,9 @@ MODULE H5GLOBAL ! ! H5F flags (DO NOT FORGET TO UPDATE WHEN NEW FLAGS ARE ADDED !) ! + ! NOTE: H5F_ACC_DEBUG is deprecated (nonfunctional) but retained for + ! backward compatibility since it's in the public API. + ! ! H5F flags declaration ! INTEGER, PARAMETER :: H5F_FLAGS_LEN = 19 @@ -945,96 +943,5 @@ MODULE H5GLOBAL !!$ EQUIVALENCE(H5F_flags(1), H5F_SCOPE_GLOBAL_F) !!$ EQUIVALENCE(H5F_flags(2), H5F_SCOPE_LOCAL_F) -CONTAINS - - ! Copy a c string to a Fortran string - - SUBROUTINE H5_Fortran_string_c2f(c_string, f_string) - - USE, INTRINSIC :: ISO_C_BINDING - IMPLICIT NONE - CHARACTER(KIND=C_CHAR, LEN=*), INTENT(IN) :: c_string - CHARACTER(LEN=*), INTENT(OUT) :: f_string - INTEGER(SIZE_T) :: c_len, f_len - - ! Find the length of the C string by located the null terminator - c_len = MAX(INDEX(c_string,C_NULL_CHAR, KIND=SIZE_T)-1,1) - ! Find the length of the Fortran string - f_len = LEN(f_string) - - ! CASE (1): C string is equal to or larger then Fortran character buffer, - ! so fill the entire Fortran buffer. - IF(c_len.GE.f_len)THEN ! - f_string(1:f_len) = c_string(1:f_len) - - ! CASE (2): C string is smaller then Fortran character buffer, - ! so copy C string and blank pad remaining characters. - ELSE - f_string(1:c_len) = c_string(1:c_len) - f_string(c_len+1:f_len) =' ' - ENDIF - END SUBROUTINE H5_Fortran_string_c2f - - SUBROUTINE H5_Fortran_string_f2c(f_string, c_string) - - USE, INTRINSIC :: ISO_C_BINDING - IMPLICIT NONE - CHARACTER(LEN=*), INTENT(IN) :: f_string - CHARACTER(KIND=C_CHAR, LEN=*), INTENT(OUT) :: c_string - INTEGER(SIZE_T) :: c_len, f_len - - c_string = TRIM(f_string)//C_NULL_CHAR - - END SUBROUTINE H5_Fortran_string_f2c - - -! Copy Fortran string to C charater array, assuming the C array is one-char -! longer for the terminating null char. -! fstring : the Fortran input string -! cstring : the C output string (with memory already allocated) -!!$subroutine MPIR_Fortran_string_f2c(fstring, cstring) -!!$ implicit none -!!$ character(len=*), intent(in) :: fstring -!!$ character(kind=c_char), intent(out) :: cstring(:) -!!$ integer :: i, j -!!$ logical :: met_non_blank -!!$ -!!$ ! Trim the leading and trailing blank characters -!!$ j = 1 -!!$ met_non_blank = .false. -!!$ do i = 1, len_trim(fstring) -!!$ if (met_non_blank) then -!!$ cstring(j) = fstring(i:i) -!!$ j = j + 1 -!!$ else if (fstring(i:i) /= ' ') then -!!$ met_non_blank = .true. -!!$ cstring(j) = fstring(i:i) -!!$ j = j + 1 -!!$ end if -!!$ end do -!!$ -!!$ cstring(j) = C_NULL_CHAR -!!$end subroutine MPIR_Fortran_string_f2c -!!$ -!!$! Copy C charater array to Fortran string -!!$subroutine MPIR_Fortran_string_c2f(cstring, fstring) -!!$ implicit none -!!$ character(kind=c_char), intent(in) :: cstring(:) -!!$ character(len=*), intent(out) :: fstring -!!$ integer :: i, j, length -!!$ -!!$ i = 1 -!!$ do while (cstring(i) /= C_NULL_CHAR) -!!$ fstring(i:i) = cstring(i) -!!$ i = i + 1 -!!$ end do -!!$ -!!$ ! Zero out the trailing characters -!!$ length = len(fstring) -!!$ do j = i, length -!!$ fstring(j:j) = ' ' -!!$ end do -!!$end subroutine MPIR_Fortran_string_c2f - END MODULE H5GLOBAL diff --git a/fortran/src/H5f90kit.c b/fortran/src/H5f90kit.c index c6c874f..0bc721f 100644 --- a/fortran/src/H5f90kit.c +++ b/fortran/src/H5f90kit.c @@ -1,6 +1,6 @@ /****h* H5f90kit/H5f90kit * PURPOSE - * Routines from HDF4 to deal with C-FORTRAN issues: + * 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 @@ -31,16 +31,16 @@ /****if* H5f90kit/HDf2cstring * NAME * HD5f2cstring -- convert a Fortran string to a C string - * char * HDf2cstring(fdesc, len) + * char * HDf2cstring(fdesc, len) * INPUTS * _fcd fdesc; IN: Fortran string descriptor - * int len; IN: length of Fortran string + * int len; IN: length of Fortran string * RETURNS - * Pointer to the C string if success, else NULL + * 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. + * 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 */ char * @@ -72,21 +72,21 @@ HD5f2cstring(_fcd fdesc, size_t len) /****if* H5f90kit/HD5packFstring * NAME * HD5packFstring -- convert a C string into a Fortran string - * int HD5packFstring(src, dest, len) + * int HD5packFstring(src, dest, len) * INPUTS - * char * src; IN: source string - * int len; IN: length of string + * char * src; IN: source string + * int len; IN: length of string * OUTPUTS - * char * dest; OUT: destination + * 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' + * 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. + * 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 diff --git a/fortran/src/H5f90proto.h b/fortran/src/H5f90proto.h index b26e985..6bde877 100644 --- a/fortran/src/H5f90proto.h +++ b/fortran/src/H5f90proto.h @@ -18,7 +18,6 @@ #define _H5f90proto_H #include "H5public.h" -#include "H5f90.h" H5_FCDLL char * HD5f2cstring (_fcd fdesc, size_t len); H5_FCDLL void HD5packFstring(char *src, char *dest, size_t len); @@ -81,505 +80,1236 @@ typedef struct H5O_info_t_f { /* * Functions from H5Ff.c */ -H5_FCDLL int_f h5fcreate_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 h5fopen_c(_fcd name, int_f *namelen, int_f *access_flags, hid_t_f *acc_prp, hid_t_f *file_id); -H5_FCDLL int_f h5fis_hdf5_c(_fcd name, int_f *namelen, int_f *flag); -H5_FCDLL int_f h5fclose_c(hid_t_f *file_id); -H5_FCDLL int_f h5fmount_c(hid_t_f *loc_id, _fcd dsetname, int_f *namelen, hid_t_f *file_id, hid_t_f *acc_prp); -H5_FCDLL int_f h5funmount_c(hid_t_f *loc_id, _fcd dsetname, int_f *namelen); -H5_FCDLL int_f h5freopen_c(hid_t_f *file_id1, hid_t_f *file_id2); -H5_FCDLL int_f h5fget_create_plist_c(hid_t_f *file_id, hid_t_f *prop_id); -H5_FCDLL int_f h5fget_access_plist_c(hid_t_f *file_id, hid_t_f *access_id); -H5_FCDLL int_f h5fget_obj_count_c(hid_t_f *file_id, int_f *obj_type, size_t_f *obj_count); -H5_FCDLL int_f h5fget_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); -H5_FCDLL int_f h5fget_freespace_c(hid_t_f *file_id, hssize_t_f *free_space); +#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); +H5_FCDLL int_f nh5fis_hdf5_c (_fcd name, int_f *namelen, int_f *flag); +H5_FCDLL int_f nh5fclose_c (hid_t_f *file_id); +H5_FCDLL int_f nh5fmount_c (hid_t_f *loc_id, _fcd dsetname, int_f *namelen, hid_t_f *file_id, hid_t_f *acc_prp); +H5_FCDLL int_f nh5funmount_c (hid_t_f *loc_id, _fcd dsetname, int_f *namelen); +H5_FCDLL int_f nh5freopen_c (hid_t_f *file_id1, hid_t_f *file_id2); +H5_FCDLL int_f nh5fget_create_plist_c (hid_t_f *file_id, hid_t_f *prop_id); +H5_FCDLL int_f nh5fget_access_plist_c (hid_t_f *file_id, hid_t_f *access_id); +H5_FCDLL int_f nh5fget_obj_count_c (hid_t_f *file_id, int_f *obj_type, size_t_f *obj_count); +H5_FCDLL int_f 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); +H5_FCDLL int_f nh5fget_freespace_c (hid_t_f *file_id, hssize_t_f *free_space); H5_FCDLL int_f h5fget_file_image_c(hid_t_f *file_id, void *buf_ptr, size_t_f *buf_len, size_t_f *buf_req); -H5_FCDLL int_f h5fflush_c(hid_t_f *obj_id, int_f *scope); -H5_FCDLL int_f h5fget_name_c(hid_t_f *obj_id, size_t_f *size, _fcd buf, size_t_f *buflen); -H5_FCDLL int_f h5fget_filesize_c(hid_t_f *file_id, hsize_t_f *size); +H5_FCDLL int_f nh5fflush_c (hid_t_f *obj_id, int_f *scope); +H5_FCDLL int_f nh5fget_name_c(hid_t_f *obj_id, size_t_f *size, _fcd buf, size_t_f *buflen); +H5_FCDLL int_f nh5fget_filesize_c(hid_t_f *file_id, hsize_t_f *size); /* * Functions from H5Sf.c */ -H5_FCDLL int_f h5screate_simple_c( int_f *rank, hsize_t_f *dims, hsize_t_f *maxdims, hid_t_f *space_id ); -H5_FCDLL int_f h5sclose_c( hid_t_f *space_id ); -H5_FCDLL int_f h5screate_c( int_f *classtype, hid_t_f *space_id ); -H5_FCDLL int_f h5scopy_c( hid_t_f *space_id , hid_t_f *new_space_id); -H5_FCDLL int_f h5sget_select_hyper_nblocks_c( hid_t_f *space_id , hssize_t_f * num_blocks); -H5_FCDLL int_f h5sget_select_hyper_blocklist_c( hid_t_f *space_id ,hsize_t_f * startblock, hsize_t_f * num_blocks, hsize_t_f * buf); -H5_FCDLL int_f h5sget_select_bounds_c( hid_t_f *space_id , hsize_t_f * start, hsize_t_f * end); -H5_FCDLL int_f h5sget_select_elem_npoints_c( hid_t_f *space_id , hssize_t_f * num_points); -H5_FCDLL int_f h5sget_select_elem_pointlist_c( hid_t_f *space_id ,hsize_t_f * startpoint, hsize_t_f * numpoints, hsize_t_f * buf); -H5_FCDLL int_f h5sselect_all_c( hid_t_f *space_id ); -H5_FCDLL int_f h5sselect_none_c( hid_t_f *space_id ); -H5_FCDLL int_f h5sselect_valid_c( hid_t_f *space_id , int_f *flag ); -H5_FCDLL int_f h5sget_simple_extent_npoints_c( hid_t_f *space_id , hsize_t_f *npoints ); -H5_FCDLL int_f h5sget_select_npoints_c( hid_t_f *space_id , hssize_t_f *npoints ); -H5_FCDLL int_f h5sget_simple_extent_ndims_c( hid_t_f *space_id , int_f *ndims ); -H5_FCDLL int_f h5sget_simple_extent_type_c( hid_t_f *space_id , int_f *classtype); -H5_FCDLL int_f h5soffset_simple_c( hid_t_f *space_id , hssize_t_f *offset); -H5_FCDLL int_f h5sset_extent_simple_c( hid_t_f *space_id , int_f *rank, hsize_t_f * current_size, hsize_t_f *maximum_size); -H5_FCDLL int_f h5sis_simple_c( hid_t_f *space_id , int_f *flag ); -H5_FCDLL int_f h5sget_simple_extent_dims_c( hid_t_f *space_id , hsize_t_f *dims, hsize_t_f *maxdims); -H5_FCDLL int_f h5sextent_copy_c( hid_t_f *dest_space_id , hid_t_f *source_space_id); -H5_FCDLL int_f h5sset_extent_none_c( hid_t_f *space_id ); -H5_FCDLL int_f h5sselect_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); -H5_FCDLL int_f h5sget_select_type_c( hid_t_f *space_id , int_f *op); -H5_FCDLL int_f h5sselect_elements_c( hid_t_f *space_id , int_f *op, size_t_f *nelements, hsize_t_f *coord); -H5_FCDLL int_f h5scombine_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); -H5_FCDLL int_f h5scombine_select_c( hid_t_f *space1_id , int_f *op, hid_t_f *space2_id, hid_t_f *ds_id); -H5_FCDLL int_f h5sselect_select_c( hid_t_f *space1_id , int_f *op, hid_t_f *space2_id); -H5_FCDLL int_f h5sdecode_c( _fcd buf, hid_t_f *obj_id ); -H5_FCDLL int_f h5sencode_c(_fcd buf, hid_t_f *obj_id, size_t_f *nalloc ); -H5_FCDLL int_f h5sextent_equal_c( hid_t_f * space1_id, hid_t_f *space2_id, hid_t_f *c_equal); +#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 ); +H5_FCDLL int_f nh5screate_c ( int_f *classtype, hid_t_f *space_id ); +H5_FCDLL int_f nh5scopy_c ( hid_t_f *space_id , hid_t_f *new_space_id); +H5_FCDLL int_f nh5sget_select_hyper_nblocks_c( hid_t_f *space_id , hssize_t_f * num_blocks); +H5_FCDLL 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); +H5_FCDLL int_f nh5sget_select_bounds_c( hid_t_f *space_id , hsize_t_f * start, hsize_t_f * end); +H5_FCDLL int_f nh5sget_select_elem_npoints_c( hid_t_f *space_id , hssize_t_f * num_points); +H5_FCDLL int_f nh5sget_select_elem_pointlist_c( hid_t_f *space_id ,hsize_t_f * startpoint, hsize_t_f * numpoints, hsize_t_f * buf); +H5_FCDLL int_f nh5sselect_all_c ( hid_t_f *space_id ); +H5_FCDLL int_f nh5sselect_none_c ( hid_t_f *space_id ); +H5_FCDLL int_f nh5sselect_valid_c ( hid_t_f *space_id , int_f *flag ); +H5_FCDLL int_f nh5sget_simple_extent_npoints_c ( hid_t_f *space_id , hsize_t_f *npoints ); +H5_FCDLL int_f nh5sget_select_npoints_c ( hid_t_f *space_id , hssize_t_f *npoints ); +H5_FCDLL int_f nh5sget_simple_extent_ndims_c ( hid_t_f *space_id , int_f *ndims ); +H5_FCDLL int_f nh5sget_simple_extent_type_c ( hid_t_f *space_id , int_f *classtype); +H5_FCDLL int_f nh5soffset_simple_c ( hid_t_f *space_id , hssize_t_f *offset); +H5_FCDLL int_f nh5sset_extent_simple_c ( hid_t_f *space_id , int_f *rank, hsize_t_f * current_size, hsize_t_f *maximum_size); +H5_FCDLL int_f nh5sis_simple_c ( hid_t_f *space_id , int_f *flag ); +H5_FCDLL int_f nh5sextent_class_c ( hid_t_f *space_id , int_f *classtype); +H5_FCDLL int_f nh5sget_simple_extent_dims_c ( hid_t_f *space_id , hsize_t_f *dims, hsize_t_f *maxdims); +H5_FCDLL int_f nh5sextent_copy_c ( hid_t_f *dest_space_id , hid_t_f *source_space_id); +H5_FCDLL int_f nh5sset_extent_none_c ( hid_t_f *space_id ); +H5_FCDLL 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); +H5_FCDLL int_f nh5sget_select_type_c ( hid_t_f *space_id , int_f *op); +H5_FCDLL int_f nh5sselect_elements_c ( hid_t_f *space_id , int_f *op, size_t_f *nelements, hsize_t_f *coord); +H5_FCDLL 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); +H5_FCDLL int_f nh5scombine_select_c ( hid_t_f *space1_id , int_f *op, hid_t_f *space2_id, hid_t_f *ds_id); +H5_FCDLL int_f nh5sselect_select_c ( hid_t_f *space1_id , int_f *op, hid_t_f *space2_id); +H5_FCDLL int_f nh5sdecode_c ( _fcd buf, hid_t_f *obj_id ); +H5_FCDLL int_f nh5sencode_c (_fcd buf, hid_t_f *obj_id, size_t_f *nalloc ); +H5_FCDLL int_f nh5sextent_equal_c ( hid_t_f * space1_id, hid_t_f *space2_id, hid_t_f *c_equal); /* * 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_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) -H5_FCDLL int_f h5dcreate_c(hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *type_id, hid_t_f *space_id, + +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, hid_t_f *lcpl_id, hid_t_f *dcpl_id, hid_t_f *dapl_id, hid_t_f *dset_id); -H5_FCDLL int_f h5dopen_c(hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *dapl_id, hid_t_f *dset_id); -H5_FCDLL int_f h5dclose_c( hid_t_f *dset_id ); - -H5_FCDLL int_f h5dwrite_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); -H5_FCDLL int_f h5dwrite_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); -H5_FCDLL int_f h5dwrite_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); -H5_FCDLL int_f h5dwrite_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); -H5_FCDLL int_f h5dread_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); -H5_FCDLL int_f h5dread_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); -H5_FCDLL int_f h5dread_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); -H5_FCDLL int_f h5dread_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); -H5_FCDLL int_f h5dget_access_plist_c(hid_t_f *dset_id, hid_t_f *plist_id); -H5_FCDLL int_f h5dget_space_c( hid_t_f *dset_id , hid_t_f *space_id); -H5_FCDLL int_f h5dget_type_c( hid_t_f *dset_id , hid_t_f *type_id); -H5_FCDLL int_f h5dget_create_plist_c( hid_t_f *dset_id , hid_t_f *plist_id); -H5_FCDLL int_f h5dset_extent_c( hid_t_f *dset_id , hsize_t_f *dims); -H5_FCDLL int_f h5dvlen_get_max_len_c(hid_t_f *dataset_id, hid_t_f *type_id, hid_t_f *space_id, size_t_f *len); -H5_FCDLL int_f h5dget_storage_size_c(hid_t_f *dataset_id, hsize_t_f *size); +H5_FCDLL int_f nh5dopen_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *dapl_id, hid_t_f *dset_id); +H5_FCDLL int_f nh5dclose_c ( hid_t_f *dset_id ); +H5_FCDLL 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 *dims); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); + +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); + +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); + +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); + +H5_FCDLL 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); + +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); + +H5_FCDLL 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 *dims); + +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); + +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); + +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); + +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); + +H5_FCDLL 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); + +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL int_f nh5dget_access_plist_c (hid_t_f *dset_id, hid_t_f *plist_id); + + +H5_FCDLL int_f nh5dget_space_c ( hid_t_f *dset_id , hid_t_f *space_id); +H5_FCDLL int_f nh5dget_type_c ( hid_t_f *dset_id , hid_t_f *type_id); +H5_FCDLL int_f nh5dget_create_plist_c ( hid_t_f *dset_id , hid_t_f *plist_id); +H5_FCDLL int_f nh5dset_extent_c ( hid_t_f *dset_id , hsize_t_f *dims); +H5_FCDLL int_f nh5dvlen_get_max_len_c(hid_t_f *dataset_id, hid_t_f *type_id, hid_t_f *space_id, size_t_f *len); +H5_FCDLL int_f nh5dget_storage_size_c(hid_t_f *dataset_id, hsize_t_f *size); +H5_FCDLL 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); H5_FCDLL int_f h5dfill_c(void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id); -H5_FCDLL int_f h5dget_space_status_c( hid_t_f *dset_id, int_f *flag); -H5_FCDLL int_f h5dcreate_anon_c(hid_t_f *loc_id, hid_t_f *type_id, hid_t_f *space_id, +H5_FCDLL int_f nh5dfill_integer_c(void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id); +H5_FCDLL int_f nh5dfill_real_c(void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id); +H5_FCDLL int_f nh5dfill_double_c(void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id); +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 h5dwrite_f_c(hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, +H5_FCDLL int_f h5dwrite_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 h5dread_f_c( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_space_id, +H5_FCDLL int_f h5dread_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 h5dvlen_reclaim_c(hid_t_f *type_id , hid_t_f *space_id, hid_t_f *plist_id, void *buf); - +H5_FCDLL int_f h5dvlen_reclaim_c (hid_t_f *type_id , hid_t_f *space_id, hid_t_f *plist_id, void *buf); /* * Functions from H5Gf.c */ -H5_FCDLL int_f h5gcreate_c(hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *size_hint, hid_t_f *grp_id, +#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, hid_t_f *lcpl_id, hid_t_f *gcpl_id, hid_t_f *gapl_id); -H5_FCDLL int_f h5gopen_c(hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *gapl_id, hid_t_f *grp_id); -H5_FCDLL int_f h5gclose_c( hid_t_f *grp_id ); -H5_FCDLL int_f h5gget_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); -H5_FCDLL int_f h5gn_members_c(hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *nmembers); -H5_FCDLL int_f h5glink_c(hid_t_f *loc_id, int_f *link_type, _fcd current_name, int_f *current_namelen, _fcd new_name, int_f *new_namelen); -H5_FCDLL int_f h5glink2_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); -H5_FCDLL int_f h5gunlink_c(hid_t_f *loc_id, _fcd name, int_f *namelen); -H5_FCDLL int_f h5gmove_c(hid_t_f *loc_id, _fcd src_name, int_f *src_namelen, _fcd dst_name, int_f *dst_namelen); -H5_FCDLL int_f h5gmove2_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); -H5_FCDLL int_f h5gget_linkval_c(hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *size, _fcd value ); -H5_FCDLL int_f h5gset_comment_c(hid_t_f *loc_id, _fcd name, int_f *namelen, _fcd comment, int_f *commentlen); -H5_FCDLL int_f h5gget_comment_c(hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *bufsize, _fcd comment); -H5_FCDLL int_f h5gcreate_anon_c(hid_t_f *loc_id, hid_t_f *gcpl_id, hid_t_f *gapl_id, hid_t_f *grp_id); -H5_FCDLL int_f h5gget_create_plist_c(hid_t_f *grp_id, hid_t_f *gcpl_id ); -H5_FCDLL int_f h5gget_info_c(hid_t_f *group_id, int_f *storage_type, int_f *nlinks, int_f *max_corder, int_f *mounted); -H5_FCDLL int_f h5gget_info_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, +H5_FCDLL int_f nh5gopen_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *gapl_id, hid_t_f *grp_id); +H5_FCDLL int_f nh5gclose_c ( hid_t_f *grp_id ); +H5_FCDLL 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); +H5_FCDLL int_f nh5gn_members_c (hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *nmembers); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL int_f nh5gunlink_c (hid_t_f *loc_id, _fcd name, int_f *namelen); +H5_FCDLL int_f nh5gmove_c (hid_t_f *loc_id, _fcd src_name, int_f *src_namelen, _fcd dst_name, int_f *dst_namelen); +H5_FCDLL 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); +H5_FCDLL int_f nh5gget_linkval_c (hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *size, _fcd value ); +H5_FCDLL int_f nh5gset_comment_c (hid_t_f *loc_id, _fcd name, int_f *namelen, _fcd comment, int_f *commentlen); +H5_FCDLL int_f nh5gget_comment_c (hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *bufsize, _fcd comment); +H5_FCDLL 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); +H5_FCDLL int_f nh5gget_create_plist_c(hid_t_f *grp_id, hid_t_f *gcpl_id ); +H5_FCDLL int_f nh5gget_info_c (hid_t_f *group_id, int_f *storage_type, int_f *nlinks, int_f *max_corder, int_f *mounted); +H5_FCDLL 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); -H5_FCDLL int_f h5gget_info_by_name_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, hid_t_f *lapl_id, +H5_FCDLL 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); /* * 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) -H5_FCDLL int_f h5awrite_f_c(hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf); -H5_FCDLL int_f h5aread_f_c(hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf); -H5_FCDLL int_f h5adelete_c(hid_t_f *obj_id, _fcd name, size_t_f *namelen); -H5_FCDLL int_f h5aget_num_attrs_c(hid_t_f *obj_id, int_f *attr_num); -H5_FCDLL int_f h5aget_name_c(hid_t_f *attr_id, size_t_f *size, _fcd buf); -H5_FCDLL int_f h5arename_by_name_c( hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, +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); +H5_FCDLL int_f nh5awritec_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5awritec_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5awritec_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5awritec_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5awritec_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5awritec_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5awritec_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5awritec_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5awritec_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5awrite_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_integer_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_integer_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_integer_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_integer_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_integer_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_integer_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_integer_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_integer_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_real_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_real_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_real_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_real_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_real_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_real_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_real_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_real_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_double_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_double_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_double_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_double_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_double_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +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 h5awrite_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); +H5_FCDLL int_f nh5areadc_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5areadc_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5areadc_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5areadc_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5areadc_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5areadc_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5aread_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_integer_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_integer_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_integer_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_integer_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_integer_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_integer_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_integer_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_integer_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_real_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_real_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_real_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_real_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_real_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_real_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_real_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_real_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_double_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_double_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_double_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_double_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_double_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +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 h5aread_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); +H5_FCDLL int_f nh5aget_space_c (hid_t_f *attr_id, hid_t_f *space_id); +H5_FCDLL int_f nh5aget_type_c (hid_t_f *attr_id, hid_t_f *type_id); +H5_FCDLL int_f nh5aget_num_attrs_c (hid_t_f *obj_id, int_f *attr_num); +H5_FCDLL int_f nh5aget_name_c(hid_t_f *attr_id, size_t_f *size, _fcd buf); +H5_FCDLL int_f nh5aget_storage_size_c ( hid_t_f *attr_id, hsize_t_f *size ); +H5_FCDLL 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 ); -H5_FCDLL int_f h5aopen_c( hid_t_f *obj_id, _fcd attr_name, size_t_f *attr_namelen, +H5_FCDLL 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); -H5_FCDLL int_f h5adelete_by_name_c(hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, +H5_FCDLL 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); -H5_FCDLL int_f h5adelete_by_idx_c(hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, +H5_FCDLL 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); -H5_FCDLL int_f h5aget_name_by_idx_c(hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, +H5_FCDLL 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); -H5_FCDLL int_f h5aopen_by_idx_c(hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, +H5_FCDLL int_f nh5aget_create_plist_c ( hid_t_f *attr_id, hid_t_f *creation_prop_id ); +H5_FCDLL 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); -H5_FCDLL int_f h5aget_info_c(hid_t_f *loc_id, int_f *corder_valid, int_f *corder, +H5_FCDLL 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 ); -H5_FCDLL int_f h5aget_info_by_idx_c(hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, +H5_FCDLL 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 ); -H5_FCDLL int_f h5aget_info_by_name_c(hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, +H5_FCDLL 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 ); -H5_FCDLL int_f h5acreate_by_name_c(hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, +H5_FCDLL 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 ); -H5_FCDLL int_f h5aexists_c(hid_t_f *obj_id, _fcd name, size_t_f *namelen, hid_t_f *attr_exists); -H5_FCDLL int_f h5aexists_by_name_c(hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, _fcd attr_name, size_t_f *attr_namelen, +H5_FCDLL int_f nh5aexists_c (hid_t_f *obj_id, _fcd name, size_t_f *namelen, hid_t_f *attr_exists); +H5_FCDLL 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); -H5_FCDLL int_f h5aopen_by_name_c(hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, _fcd attr_name, size_t_f *attr_namelen, +H5_FCDLL 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); -H5_FCDLL int_f h5arename_c( hid_t_f *loc_id, +H5_FCDLL 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); /* * 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 ) -H5_FCDLL int_f h5tcreate_c(int_f *cls, size_t_f *size, hid_t_f *type_id); -H5_FCDLL int_f h5topen_c(hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *type_id, hid_t_f *tapl_id ); -H5_FCDLL int_f h5tcommit_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); -H5_FCDLL int_f h5tclose_c( hid_t_f *type_id ); -H5_FCDLL int_f h5tequal_c( hid_t_f *type1_id , hid_t_f *type2_id, int_f *c_flag); -H5_FCDLL int_f h5tcopy_c( hid_t_f *type_id , hid_t_f *new_type_id); -H5_FCDLL int_f h5tget_class_c( hid_t_f *type_id , int_f *classtype); -H5_FCDLL int_f h5tget_order_c( hid_t_f *type_id , int_f *order); -H5_FCDLL int_f h5tset_order_c( hid_t_f *type_id , int_f *order); -H5_FCDLL int_f h5tget_size_c( hid_t_f *type_id , size_t_f *size); -H5_FCDLL int_f h5tset_size_c( hid_t_f *type_id , size_t_f *size); -H5_FCDLL int_f h5tcommitted_c(hid_t_f *dtype_id); -H5_FCDLL int_f h5tget_precision_c( hid_t_f *type_id , size_t_f *precision); -H5_FCDLL int_f h5tset_precision_c( hid_t_f *type_id , size_t_f *precision); -H5_FCDLL int_f h5tget_offset_c( hid_t_f *type_id , size_t_f *offset); -H5_FCDLL int_f h5tset_offset_c( hid_t_f *type_id , size_t_f *offset); -H5_FCDLL int_f h5tget_pad_c( hid_t_f *type_id , int_f * lsbpad, int_f * msbpad); -H5_FCDLL int_f h5tset_pad_c( hid_t_f *type_id, int_f * lsbpad, int_f * msbpad ); -H5_FCDLL int_f h5tget_sign_c( hid_t_f *type_id , int_f* sign); -H5_FCDLL int_f h5tset_sign_c( hid_t_f *type_id , int_f *sign); -H5_FCDLL int_f h5tget_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); -H5_FCDLL int_f h5tset_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); -H5_FCDLL int_f h5tget_ebias_c( hid_t_f *type_id , size_t_f *ebias); -H5_FCDLL int_f h5tset_ebias_c( hid_t_f *type_id , size_t_f *ebias); -H5_FCDLL int_f h5tget_norm_c( hid_t_f *type_id , int_f *norm); -H5_FCDLL int_f h5tset_norm_c( hid_t_f *type_id , int_f *norm); -H5_FCDLL int_f h5tget_inpad_c( hid_t_f *type_id, int_f * padtype); -H5_FCDLL int_f h5tset_inpad_c( hid_t_f *type_id, int_f * padtype); -H5_FCDLL int_f h5tget_cset_c( hid_t_f *type_id, int_f * cset); -H5_FCDLL int_f h5tset_cset_c( hid_t_f *type_id, int_f * cset); -H5_FCDLL int_f h5tget_strpad_c( hid_t_f *type_id, int_f * strpad); -H5_FCDLL int_f h5tset_strpad_c( hid_t_f *type_id, int_f * strpad); -H5_FCDLL int_f h5tget_nmembers_c( hid_t_f *type_id , int_f * num_members); -H5_FCDLL int_f h5tget_member_name_c( hid_t_f *type_id ,int_f* idx, _fcd member_name, int_f *namelen); -H5_FCDLL int_f h5tget_member_dims_c( hid_t_f *type_id ,int_f* field_idx, int_f * dims, size_t_f * field_dims, int_f * perm ); -H5_FCDLL int_f h5tget_member_offset_c( hid_t_f *type_id ,int_f* member_no, size_t_f* offset); -H5_FCDLL int_f h5tget_member_type_c( hid_t_f *type_id ,int_f* field_idx, hid_t_f * datatype); -H5_FCDLL int_f h5tget_member_index_c( hid_t_f *type_id ,_fcd name, int_f* namelen, int_f *idx); -H5_FCDLL int_f h5tinsert_c(hid_t_f *type_id, _fcd name, int_f* namelen, size_t_f *offset, hid_t_f * field_id); -H5_FCDLL int_f h5tpack_c(hid_t_f * type_id); -H5_FCDLL int_f h5tinsert_array_c(hid_t_f * parent_id, _fcd name, int_f* namelen, size_t_f* offset, int_f* ndims, size_t_f* dims, hid_t_f* member_id, int_f* perm ); -H5_FCDLL int_f h5tinsert_array_c2(hid_t_f * parent_id, _fcd name, int_f* namelen, size_t_f* offset, int_f* ndims, size_t_f* dims, hid_t_f* member_id); -H5_FCDLL int_f h5tenum_create_c( hid_t_f *parent_id , hid_t_f *new_type_id); -H5_FCDLL int_f h5tenum_insert_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value); +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 ); +H5_FCDLL 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); +H5_FCDLL int_f nh5tclose_c ( hid_t_f *type_id ); +H5_FCDLL int_f nh5tequal_c ( hid_t_f *type1_id , hid_t_f *type2_id, int_f *c_flag); +H5_FCDLL int_f nh5tcopy_c ( hid_t_f *type_id , hid_t_f *new_type_id); +H5_FCDLL int_f nh5tget_class_c ( hid_t_f *type_id , int_f *classtype); +H5_FCDLL int_f nh5tget_order_c ( hid_t_f *type_id , int_f *order); +H5_FCDLL int_f nh5tset_order_c ( hid_t_f *type_id , int_f *order); +H5_FCDLL int_f nh5tget_size_c ( hid_t_f *type_id , size_t_f *size); +H5_FCDLL int_f nh5tset_size_c ( hid_t_f *type_id , size_t_f *size); +H5_FCDLL int_f nh5tcommitted_c (hid_t_f *dtype_id); +H5_FCDLL int_f nh5tget_precision_c ( hid_t_f *type_id , size_t_f *precision); +H5_FCDLL int_f nh5tset_precision_c ( hid_t_f *type_id , size_t_f *precision); +H5_FCDLL int_f nh5tget_offset_c ( hid_t_f *type_id , size_t_f *offset); +H5_FCDLL int_f nh5tset_offset_c ( hid_t_f *type_id , size_t_f *offset); +H5_FCDLL int_f nh5tget_pad_c ( hid_t_f *type_id , int_f * lsbpad, int_f * msbpad); +H5_FCDLL int_f nh5tset_pad_c ( hid_t_f *type_id, int_f * lsbpad, int_f * msbpad ); +H5_FCDLL int_f nh5tget_sign_c ( hid_t_f *type_id , int_f* sign); +H5_FCDLL int_f nh5tset_sign_c ( hid_t_f *type_id , int_f *sign); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL int_f nh5tget_ebias_c ( hid_t_f *type_id , size_t_f *ebias); +H5_FCDLL int_f nh5tset_ebias_c ( hid_t_f *type_id , size_t_f *ebias); +H5_FCDLL int_f nh5tget_norm_c ( hid_t_f *type_id , int_f *norm); +H5_FCDLL int_f nh5tset_norm_c ( hid_t_f *type_id , int_f *norm); +H5_FCDLL int_f nh5tget_inpad_c ( hid_t_f *type_id, int_f * padtype); +H5_FCDLL int_f nh5tset_inpad_c ( hid_t_f *type_id, int_f * padtype); +H5_FCDLL int_f nh5tget_cset_c ( hid_t_f *type_id, int_f * cset); +H5_FCDLL int_f nh5tset_cset_c ( hid_t_f *type_id, int_f * cset); +H5_FCDLL int_f nh5tget_strpad_c ( hid_t_f *type_id, int_f * strpad); +H5_FCDLL int_f nh5tset_strpad_c ( hid_t_f *type_id, int_f * strpad); +H5_FCDLL int_f nh5tget_nmembers_c ( hid_t_f *type_id , int_f * num_members); +H5_FCDLL int_f nh5tget_member_name_c ( hid_t_f *type_id ,int_f* idx, _fcd member_name, int_f *namelen); +H5_FCDLL int_f nh5tget_member_dims_c ( hid_t_f *type_id ,int_f* field_idx, int_f * dims, size_t_f * field_dims, int_f * perm ); +H5_FCDLL int_f nh5tget_member_offset_c ( hid_t_f *type_id ,int_f* member_no, size_t_f* offset); +H5_FCDLL int_f nh5tget_member_type_c ( hid_t_f *type_id ,int_f* field_idx, hid_t_f * datatype); +H5_FCDLL int_f nh5tget_member_index_c ( hid_t_f *type_id ,_fcd name, int_f* namelen, int_f *idx); +H5_FCDLL int_f nh5tinsert_c(hid_t_f *type_id, _fcd name, int_f* namelen, size_t_f *offset, hid_t_f * field_id); +H5_FCDLL int_f nh5tpack_c(hid_t_f * type_id); +H5_FCDLL int_f nh5tinsert_array_c(hid_t_f * parent_id, _fcd name, int_f* namelen, size_t_f* offset, int_f* ndims, size_t_f* dims, hid_t_f* member_id, int_f* perm ); +H5_FCDLL int_f nh5tinsert_array_c2(hid_t_f * parent_id, _fcd name, int_f* namelen, size_t_f* offset, int_f* ndims, size_t_f* dims, hid_t_f* member_id); +H5_FCDLL int_f nh5tenum_create_c ( hid_t_f *parent_id , hid_t_f *new_type_id); +H5_FCDLL int_f nh5tenum_insert_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value); H5_FCDLL int_f h5tenum_insert_ptr_c(hid_t_f *type_id, _fcd name, int_f* namelen, void *value); -H5_FCDLL int_f h5tenum_nameof_c(hid_t_f *type_id, int_f* value, _fcd name, size_t_f* namelen); -H5_FCDLL int_f h5tenum_valueof_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value); -H5_FCDLL int_f h5tget_member_value_c(hid_t_f *type_id, int_f* member_no, int_f* value); -H5_FCDLL int_f h5tset_tag_c(hid_t_f* type_id, _fcd tag, int_f* namelen); -H5_FCDLL int_f h5tget_tag_c(hid_t_f* type_id, _fcd tag, size_t_f* tag_size, int_f* namelen); -H5_FCDLL int_f h5tarray_create_c(hid_t_f * base_id, int_f *rank, hsize_t_f* dims, hid_t_f* type_id); -H5_FCDLL int_f h5tget_array_dims_c( hid_t_f *type_id , hsize_t_f * dims); -H5_FCDLL int_f h5tget_array_ndims_c( hid_t_f *type_id , int_f * ndims); -H5_FCDLL int_f h5tget_super_c( hid_t_f *type_id , hid_t_f *base_type_id); -H5_FCDLL int_f h5tvlen_create_c( hid_t_f *type_id , hid_t_f *vltype_id); -H5_FCDLL int_f h5tis_variable_str_c( hid_t_f *type_id , int_f *flag ); -H5_FCDLL int_f h5tget_member_class_c( hid_t_f *type_id , int_f *member_no, int_f *cls ); -H5_FCDLL int_f h5tcommit_anon_c(hid_t_f *loc_id, hid_t_f *dtype_id, hid_t_f *tcpl_id, hid_t_f *tapl_id); -H5_FCDLL int_f h5tdecode_c( _fcd buf, hid_t_f *obj_id ); -H5_FCDLL int_f h5tencode_c(_fcd buf, hid_t_f *obj_id, size_t_f *nalloc ); -H5_FCDLL int_f h5tget_create_plist_c( hid_t_f *dtype_id, hid_t_f *dtpl_id); -H5_FCDLL int_f h5tcompiler_conv_c( hid_t_f *src_id, hid_t_f *dst_id, int_f *c_flag); -H5_FCDLL int_f h5tget_native_type_c(hid_t_f *dtype_id, int_f *direction, hid_t_f *native_dtype_id); +H5_FCDLL int_f nh5tenum_nameof_c(hid_t_f *type_id, int_f* value, _fcd name, size_t_f* namelen); +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, 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); +H5_FCDLL int_f nh5tget_super_c ( hid_t_f *type_id , hid_t_f *base_type_id); +H5_FCDLL int_f nh5tvlen_create_c ( hid_t_f *type_id , hid_t_f *vltype_id); +H5_FCDLL int_f nh5tis_variable_str_c ( hid_t_f *type_id , int_f *flag ); +H5_FCDLL int_f nh5tget_member_class_c ( hid_t_f *type_id , int_f *member_no, int_f *cls ); +H5_FCDLL 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); +H5_FCDLL int_f nh5tdecode_c ( _fcd buf, hid_t_f *obj_id ); +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 h5tconvert_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 */ -H5_FCDLL int_f h5oopen_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 h5oclose_c(hid_t_f *object_id ); -H5_FCDLL int_f h5oopen_by_addr_c(hid_t_f *loc_id, haddr_t_f *addr, hid_t_f *obj_id); -H5_FCDLL int_f h5olink_c(hid_t_f *object_id, hid_t_f *new_loc_id, _fcd name, size_t_f *namelen, +#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 nh5oopen_by_addr_c H5_FC_FUNC_(h5oopen_by_addr_c, H5OOPEN_BY_ADDR_C) +#define nh5ocopy_c H5_FC_FUNC_(h5ocopy_c, H5OCOPY_C) +#define nh5odecr_refcount_c H5_FC_FUNC_(h5odecr_refcount_c, H5ODECR_REFCOUNT_C) +#define nh5oincr_refcount_c H5_FC_FUNC_(h5oincr_refcount_c, H5OINCR_REFCOUNT_C) +#define nh5oexists_by_name_c H5_FC_FUNC_(h5oexists_by_name_c, H5OEXISTS_BY_NAME_C) +#define nh5oset_comment_c H5_FC_FUNC_(h5oset_comment_c, H5OSET_COMMENT_C) +#define nh5oset_comment_by_name_c H5_FC_FUNC_(h5oset_comment_by_name_c, H5OSET_COMMENT_BY_NAME_C) +#define nh5oopen_by_idx_c H5_FC_FUNC_(h5oopen_by_idx_c, H5OOPEN_BY_IDX_C) +#define nh5oget_comment_c H5_FC_FUNC_(h5oget_comment_c, H5OGET_COMMENT_C) +#define nh5oget_comment_by_name_c H5_FC_FUNC_(h5oget_comment_by_name_c, H5OGET_COMMENT_BY_NAME_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 h5ovisit_c(hid_t_f *group_id, int_f *index_type, int_f *order, H5O_iterate_t op, void *op_data); +H5_FCDLL int_f h5ovisit_c (hid_t_f *group_id, int_f *index_type, int_f *order, H5O_iterate_t op, void *op_data); H5_FCDLL int_f h5ovisit_by_name_c(hid_t_f *loc_id, _fcd object_name, size_t_f *namelen, int_f *index_type, int_f *order, H5O_iterate_t op, void *op_data, hid_t_f *lapl_id ); -H5_FCDLL int_f h5oget_info_c(hid_t_f *object_id, H5O_info_t_f *object_info); -H5_FCDLL int_f h5oget_info_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *namelen, +H5_FCDLL int_f h5oget_info_c (hid_t_f *object_id, H5O_info_t_f *object_info); +H5_FCDLL int_f h5oget_info_by_idx_c (hid_t_f *loc_id, _fcd group_name, size_t_f *namelen, int_f *index_field, int_f *order, hsize_t_f *n, hid_t_f *lapl_id, H5O_info_t_f *object_info); -H5_FCDLL int_f h5oget_info_by_name_c(hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, +H5_FCDLL int_f h5oget_info_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, H5O_info_t_f *object_info); -H5_FCDLL int_f h5ocopy_c(hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_name_len, +H5_FCDLL int_f nh5ocopy_c (hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_name_len, hid_t_f *dst_loc_id, _fcd dst_name, size_t_f *dst_name_len, hid_t_f *ocpypl_id, hid_t_f *lcpl_id ); -H5_FCDLL int_f h5odecr_refcount_c(hid_t_f *object_id); -H5_FCDLL int_f h5oincr_refcount_c(hid_t_f *object_id); -H5_FCDLL int_f h5oexists_by_name_c(hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id); -H5_FCDLL int_f h5oset_comment_c(hid_t_f *object_id, _fcd comment, size_t_f *commentlen); -H5_FCDLL int_f h5oset_comment_by_name_c(hid_t_f *object_id, _fcd name, size_t_f *namelen, _fcd comment, size_t_f *commentlen, hid_t_f *lapl_id); -H5_FCDLL int_f h5oopen_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, +H5_FCDLL int_f nh5odecr_refcount_c (hid_t_f *object_id); +H5_FCDLL int_f nh5oincr_refcount_c (hid_t_f *object_id); +H5_FCDLL int_f nh5oexists_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id); +H5_FCDLL int_f nh5oset_comment_c (hid_t_f *object_id, _fcd comment, size_t_f *commentlen); +H5_FCDLL int_f nh5oset_comment_by_name_c (hid_t_f *object_id, _fcd name, size_t_f *namelen, _fcd comment, size_t_f *commentlen, hid_t_f *lapl_id); +H5_FCDLL int_f nh5oopen_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 *obj_id, hid_t_f *lapl_id); -H5_FCDLL int_f h5oget_comment_c(hid_t_f *object_id, _fcd comment, size_t_f *commentsize, hssize_t_f *bufsize); -H5_FCDLL int_f h5oget_comment_by_name_c(hid_t_f *loc_id, _fcd name, size_t_f *name_size, +H5_FCDLL int_f nh5oget_comment_c (hid_t_f *object_id, _fcd comment, size_t_f *commentsize, hssize_t_f *bufsize); +H5_FCDLL int_f nh5oget_comment_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *name_size, _fcd comment, size_t_f *commentsize, size_t_f *bufsize, hid_t_f *lapl_id); /* * Functions from H5Pf.c */ -H5_FCDLL int_f h5pcreate_c( hid_t_f *cls, hid_t_f *prp_id ); -H5_FCDLL int_f h5pclose_c( hid_t_f *prp_id ); -H5_FCDLL int_f h5pcopy_c( hid_t_f *prp_id , hid_t_f *new_prp_id); -H5_FCDLL int_f h5pequal_c( hid_t_f *plist1_id , hid_t_f *plist2_id, int_f *c_flag); -H5_FCDLL int_f h5pget_class_c( hid_t_f *prp_id , hid_t_f *classtype); -H5_FCDLL int_f h5pset_deflate_c( hid_t_f *prp_id , int_f *level); -H5_FCDLL int_f h5pset_chunk_c( hid_t_f *prp_id, int_f *rank, hsize_t_f *dims ); -H5_FCDLL int_f h5pget_chunk_c( hid_t_f *prp_id, int_f *max_rank, hsize_t_f *dims ); -H5_FCDLL int_f h5pset_file_image_c(hid_t_f *fapl_id, void *buf_ptr, size_t_f *buf_len); -H5_FCDLL int_f h5pset_fill_value_c(hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); -H5_FCDLL int_f h5pget_file_image_c(hid_t_f *fapl_id, void **buf_ptr, size_t_f *buf_len); -H5_FCDLL int_f h5pget_fill_value_c(hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); -H5_FCDLL int_f h5pset_preserve_c( hid_t_f *prp_id , int_f *flag); -H5_FCDLL int_f h5pget_preserve_c( hid_t_f *prp_id , int_f *flag); -H5_FCDLL int_f h5pget_version_c(hid_t_f *prp_id, int_f * boot,int_f * freelist, int_f * stab, int_f *shhdr); -H5_FCDLL int_f h5pset_userblock_c(hid_t_f *prp_id, hsize_t_f * size); -H5_FCDLL int_f h5pget_userblock_c(hid_t_f *prp_id, hsize_t_f * size); -H5_FCDLL int_f h5pget_sizes_c(hid_t_f *prp_id, size_t_f * sizeof_addr, size_t_f * sizeof_size); -H5_FCDLL int_f h5pset_sizes_c(hid_t_f *prp_id, size_t_f * sizeof_addr, size_t_f * sizeof_size); -H5_FCDLL int_f h5pset_sym_k_c(hid_t_f *prp_id, int_f* ik, int_f* lk); -H5_FCDLL int_f h5pget_sym_k_c(hid_t_f *prp_id, int_f* ik, int_f* lk); -H5_FCDLL int_f h5pset_istore_k_c(hid_t_f *prp_id, int_f* ik); -H5_FCDLL int_f h5pget_istore_k_c(hid_t_f *prp_id, int_f* ik); -H5_FCDLL int_f h5pget_driver_c(hid_t_f *prp_id, hid_t_f*driver); -H5_FCDLL int_f h5pset_fapl_stdio_c(hid_t_f *prp_id); -#ifdef NO_SUCH_F90_FUNCTION -H5_FCDLL int_f h5pget_fapl_stdio_c(hid_t_f *prp_id, int_f* io); -#endif -H5_FCDLL int_f h5pset_fapl_sec2_c(hid_t_f *prp_id); -#ifdef NO_SUCH_F90_FUNCTION -H5_FCDLL int_f h5pget_fapl_sec2_c(hid_t_f *prp_id, int_f* sec2); -#endif -H5_FCDLL int_f h5pset_alignment_c(hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment); -H5_FCDLL int_f h5pget_alignment_c(hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment); -H5_FCDLL int_f h5pget_fapl_core_c(hid_t_f *prp_id, size_t_f* increment, int_f *flag); -H5_FCDLL int_f h5pset_fapl_core_c(hid_t_f *prp_id, size_t_f* increment, int_f *flag); -H5_FCDLL int_f h5pset_fapl_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist ); -H5_FCDLL int_f h5pget_fapl_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist ); -H5_FCDLL int_f h5pset_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); -H5_FCDLL int_f h5pget_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); -#ifdef NO_SUCH_F90_FUNCTION -H5_FCDLL int_f h5pget_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); -#endif -H5_FCDLL int_f h5pset_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); -H5_FCDLL int_f h5pset_gc_references_c(hid_t_f *prp_id, int_f* gc_references); -H5_FCDLL int_f h5pget_gc_references_c(hid_t_f *prp_id, int_f* gc_references); -H5_FCDLL int_f h5pset_layout_c(hid_t_f *prp_id, int_f* layout); -H5_FCDLL int_f h5pget_layout_c(hid_t_f *prp_id, int_f* layout); -H5_FCDLL int_f h5pset_filter_c(hid_t_f *prp_id, int_f* filter, int_f* flags, size_t_f* cd_nelmts, int_f* cd_values ); -H5_FCDLL int_f h5premove_filter_c(hid_t_f *prp_id, int_f* filter); -H5_FCDLL int_f h5pmodify_filter_c(hid_t_f *prp_id, int_f* filter, int_f* flags, size_t_f* cd_nelmts, int_f* cd_values ); -H5_FCDLL int_f h5pget_nfilters_c(hid_t_f *prp_id, int_f* nfilters); -H5_FCDLL int_f h5pget_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); -H5_FCDLL int_f h5pget_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); -H5_FCDLL int_f h5pset_external_c(hid_t_f *prp_id, _fcd name, int_f* namelen, off_t_f* offset, hsize_t_f*bytes); -H5_FCDLL int_f h5pget_external_count_c(hid_t_f *prp_id, int_f* count); -H5_FCDLL int_f h5pget_external_c(hid_t_f *prp_id, int_f *idx, size_t_f* name_size, _fcd name, off_t_f* offset, hsize_t_f*bytes); -H5_FCDLL int_f h5pget_btree_ratios_c(hid_t_f *prp_id, real_f* left, real_f* middle, real_f* right); -H5_FCDLL int_f h5pset_btree_ratios_c(hid_t_f *prp_id, real_f* left, real_f* middle, real_f* right); -H5_FCDLL int_f h5pset_fclose_degree_c(hid_t_f *fapl, int_f *degree); -H5_FCDLL int_f h5pget_fclose_degree_c(hid_t_f *fapl, int_f *degree); -H5_FCDLL int_f h5pget_buffer_c(hid_t_f *plist, hsize_t_f *size); -H5_FCDLL int_f h5pset_buffer_c(hid_t_f *plist, hsize_t_f *size); -H5_FCDLL int_f h5pset_alloc_time_c(hid_t_f *plist, int_f *flag); -H5_FCDLL int_f h5pget_alloc_time_c(hid_t_f *plist, int_f *flag); -H5_FCDLL int_f h5pset_fill_time_c(hid_t_f *plist, int_f *flag); -H5_FCDLL int_f h5pget_fill_time_c(hid_t_f *plist, int_f *flag); -H5_FCDLL int_f h5pset_meta_block_size_c(hid_t_f *plist, hsize_t_f *size); -H5_FCDLL int_f h5pget_meta_block_size_c(hid_t_f *plist, hsize_t_f *size); -H5_FCDLL int_f h5pset_sieve_buf_size_c(hid_t_f *plist, size_t_f *size); -H5_FCDLL int_f h5pget_sieve_buf_size_c(hid_t_f *plist, size_t_f *size); -H5_FCDLL int_f h5pset_small_data_block_size_c(hid_t_f *plist, hsize_t_f *size); -H5_FCDLL int_f h5pget_small_data_block_size_c(hid_t_f *plist, hsize_t_f *size); -H5_FCDLL int_f h5pset_hyper_vector_size_c(hid_t_f *plist, size_t_f *size); -H5_FCDLL int_f h5pget_hyper_vector_size_c(hid_t_f *plist, size_t_f *size); +#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 nh5pcreate_class_f90_c H5_FC_FUNC_(h5pcreate_class_f90_c, H5PCREATE_CLASS_F90_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_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_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_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 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_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_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_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 nh5pget_mpio_actual_io_mode_c H5_FC_FUNC_(h5pget_mpio_actual_io_mode_c, H5PGET_MPIO_ACTUAL_IO_MODE_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 ); +H5_FCDLL int_f nh5pcopy_c ( hid_t_f *prp_id , hid_t_f *new_prp_id); +H5_FCDLL int_f nh5pequal_c ( hid_t_f *plist1_id , hid_t_f *plist2_id, int_f *c_flag); +H5_FCDLL int_f nh5pget_class_c ( hid_t_f *prp_id , hid_t_f *classtype); +H5_FCDLL int_f nh5pset_deflate_c ( hid_t_f *prp_id , int_f *level); +H5_FCDLL int_f nh5pset_chunk_c ( hid_t_f *prp_id, int_f *rank, hsize_t_f *dims ); +H5_FCDLL int_f nh5pget_chunk_c ( hid_t_f *prp_id, int_f *max_rank, hsize_t_f *dims ); +H5_FCDLL int_f h5pset_file_image_c (hid_t_f *fapl_id, void *buf_ptr, size_t_f *buf_len); +H5_FCDLL int_f nh5pset_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue); +H5_FCDLL int_f h5pset_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); +H5_FCDLL int_f nh5pset_fill_value_integer_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); +H5_FCDLL int_f nh5pset_fill_value_real_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); +H5_FCDLL int_f nh5pset_fill_value_double_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); +H5_FCDLL int_f h5pget_file_image_c (hid_t_f *fapl_id, void **buf_ptr, size_t_f *buf_len); +H5_FCDLL int_f nh5pget_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue); +H5_FCDLL int_f h5pget_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); +H5_FCDLL int_f nh5pget_fill_value_integer_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); +H5_FCDLL int_f nh5pget_fill_value_real_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); +H5_FCDLL int_f nh5pget_fill_value_double_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); +H5_FCDLL int_f nh5pset_preserve_c ( hid_t_f *prp_id , int_f *flag); +H5_FCDLL int_f nh5pget_preserve_c ( hid_t_f *prp_id , int_f *flag); +H5_FCDLL int_f nh5pget_version_c (hid_t_f *prp_id, int_f * boot,int_f * freelist, int_f * stab, int_f *shhdr); +H5_FCDLL int_f nh5pset_userblock_c (hid_t_f *prp_id, hsize_t_f * size); +H5_FCDLL int_f nh5pget_userblock_c (hid_t_f *prp_id, hsize_t_f * size); +H5_FCDLL int_f nh5pget_sizes_c (hid_t_f *prp_id, size_t_f * sizeof_addr, size_t_f * sizeof_size); +H5_FCDLL int_f nh5pset_sizes_c (hid_t_f *prp_id, size_t_f * sizeof_addr, size_t_f * sizeof_size); +H5_FCDLL int_f nh5pset_sym_k_c (hid_t_f *prp_id, int_f* ik, int_f* lk); +H5_FCDLL int_f nh5pget_sym_k_c (hid_t_f *prp_id, int_f* ik, int_f* lk); +H5_FCDLL int_f nh5pset_istore_k_c (hid_t_f *prp_id, int_f* ik); +H5_FCDLL int_f nh5pget_istore_k_c (hid_t_f *prp_id, int_f* ik); +H5_FCDLL int_f nh5pget_driver_c (hid_t_f *prp_id, hid_t_f*driver); +H5_FCDLL int_f nh5pset_fapl_stdio_c (hid_t_f *prp_id); +H5_FCDLL int_f nh5pget_fapl_stdio_c (hid_t_f *prp_id, int_f* io); +H5_FCDLL int_f nh5pset_fapl_sec2_c (hid_t_f *prp_id); +H5_FCDLL int_f nh5pget_fapl_sec2_c (hid_t_f *prp_id, int_f* sec2); +H5_FCDLL int_f nh5pset_alignment_c(hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment); +H5_FCDLL int_f nh5pget_alignment_c(hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment); +H5_FCDLL int_f nh5pget_fapl_core_c (hid_t_f *prp_id, size_t_f* increment, int_f *flag); +H5_FCDLL int_f nh5pset_fapl_core_c (hid_t_f *prp_id, size_t_f* increment, int_f *flag); +H5_FCDLL int_f nh5pset_fapl_family_c (hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist ); +H5_FCDLL int_f nh5pget_fapl_family_c (hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist ); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL int_f nh5pset_gc_references_c(hid_t_f *prp_id, int_f* gc_references); +H5_FCDLL int_f nh5pget_gc_references_c(hid_t_f *prp_id, int_f* gc_references); +H5_FCDLL int_f nh5pset_layout_c (hid_t_f *prp_id, int_f* layout); +H5_FCDLL int_f nh5pget_layout_c (hid_t_f *prp_id, int_f* layout); +H5_FCDLL 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 ); +H5_FCDLL int_f nh5premove_filter_c (hid_t_f *prp_id, int_f* filter); +H5_FCDLL 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 ); +H5_FCDLL int_f nh5pget_nfilters_c (hid_t_f *prp_id, int_f* nfilters); +H5_FCDLL 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); +H5_FCDLL 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); +H5_FCDLL int_f nh5pset_external_c (hid_t_f *prp_id, _fcd name, int_f* namelen, off_t_f* offset, hsize_t_f*bytes); +H5_FCDLL int_f nh5pget_external_count_c (hid_t_f *prp_id, int_f* count); +H5_FCDLL int_f nh5pget_external_c(hid_t_f *prp_id, int_f *idx, size_t_f* name_size, _fcd name, off_t_f* offset, hsize_t_f*bytes); +H5_FCDLL int_f nh5pget_btree_ratios_c(hid_t_f *prp_id, real_f* left, real_f* middle, real_f* right); +H5_FCDLL int_f nh5pset_btree_ratios_c(hid_t_f *prp_id, real_f* left, real_f* middle, real_f* right); +H5_FCDLL int_f nh5pget_fapl_mpio_c(hid_t_f *prp_id, int_f* comm, int_f* info); +H5_FCDLL int_f nh5pset_fapl_mpio_c(hid_t_f *prp_id, int_f* comm, int_f* info); +H5_FCDLL int_f nh5pget_dxpl_mpio_c(hid_t_f *prp_id, int_f* data_xfer_mode); +H5_FCDLL int_f nh5pset_dxpl_mpio_c(hid_t_f *prp_id, int_f* data_xfer_mode); +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 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); +H5_FCDLL int_f nh5pget_fill_time_c(hid_t_f *plist, int_f *flag); +H5_FCDLL int_f nh5pset_meta_block_size_c(hid_t_f *plist, hsize_t_f *size); +H5_FCDLL int_f nh5pget_meta_block_size_c(hid_t_f *plist, hsize_t_f *size); +H5_FCDLL int_f nh5pset_sieve_buf_size_c(hid_t_f *plist, size_t_f *size); +H5_FCDLL int_f nh5pget_sieve_buf_size_c(hid_t_f *plist, size_t_f *size); +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 h5pcreate_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 nh5pcreate_class_f90_c(hid_t_f *parent, _fcd name, int_f *name_len, hid_t_f *cls); H5_FCDLL int_f h5pregister_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); +H5_FCDLL int_f nh5pregister_double_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, void *value); +H5_FCDLL int_f nh5pregisterc_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, _fcd value, int_f *value_len); H5_FCDLL int_f h5pinsert_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void *value); +H5_FCDLL int_f nh5pinsert_integer_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void *value); +H5_FCDLL int_f nh5pinsert_real_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void *value); +H5_FCDLL int_f nh5pinsert_double_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void *value); +H5_FCDLL int_f nh5pinsertc_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, _fcd value, int_f *value_len); H5_FCDLL int_f h5pset_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); +H5_FCDLL int_f nh5pset_integer_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); +H5_FCDLL int_f nh5pset_real_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); +H5_FCDLL int_f nh5pset_double_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); +H5_FCDLL int_f nh5psetc_c(hid_t_f *prp_id, _fcd name, int_f *name_len, _fcd value, int_f *value_len); H5_FCDLL int_f h5pget_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); -H5_FCDLL int_f h5pexist_c(hid_t_f *prp_id, _fcd name, int_f *name_len); -H5_FCDLL int_f h5pget_size_c(hid_t_f *prp_id, _fcd name, int_f *name_len, size_t_f *size); -H5_FCDLL int_f h5pget_nprops_c(hid_t_f *prp_id, size_t_f *nprops); -H5_FCDLL int_f h5pget_class_parent_c(hid_t_f *prp_id, hid_t_f *parent_id); -H5_FCDLL int_f h5pisa_class_c(hid_t_f *plist, hid_t_f *pclass); -H5_FCDLL int_f h5pcopy_prop_c(hid_t_f *dst_id, hid_t_f *src_id, _fcd name, int_f *name_len); -H5_FCDLL int_f h5premove_c(hid_t_f *plid, _fcd name, int_f *name_len); -H5_FCDLL int_f h5punregister_c(hid_t_f *cls, _fcd name, int_f *name_len); -H5_FCDLL int_f h5pclose_class_c(hid_t_f * cls); -H5_FCDLL int_f h5pget_class_name_c(hid_t_f *prp_id, _fcd name, int_f *name_len); -H5_FCDLL int_f h5pset_shuffle_c( hid_t_f *prp_id); -H5_FCDLL int_f h5pset_fletcher32_c( hid_t_f *prp_id ); -H5_FCDLL int_f h5pset_edc_check_c( hid_t_f *prp_id, int_f *flag ); -H5_FCDLL int_f h5pget_edc_check_c( hid_t_f *prp_id, int_f *flag ); -H5_FCDLL int_f h5pset_family_offset_c( hid_t_f *prp_id , hsize_t_f *offset); -H5_FCDLL int_f h5pget_fapl_multi_c( hid_t_f *prp_id , int_f *mem_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); -H5_FCDLL int_f h5pset_fapl_multi_c( hid_t_f *prp_id , int_f *mem_map, hid_t_f *memb_fapl, _fcd memb_name, int_f *len, int_f *lenmax, real_f *memb_addr, int_f *flag); -H5_FCDLL int_f h5pset_fapl_multi_sc ( hid_t_f *prp_id , int_f *flag); -H5_FCDLL int_f h5pset_szip_c( hid_t_f *prp_id , int_f *options_mask, int_f *pixels_per_block); -H5_FCDLL int_f h5pall_filters_avail_c( hid_t_f *prp_id , int_f *status); -H5_FCDLL int_f h5pfill_value_defined_c( hid_t_f *prp_id , int_f *flag); -H5_FCDLL int_f h5pget_attr_phase_change_c(hid_t_f *ocpl_id, int_f *max_compact, int_f *min_dense ); -H5_FCDLL int_f h5pset_attr_creation_order_c(hid_t_f *ocpl_id, int_f *crt_order_flags ); -H5_FCDLL int_f h5pset_shared_mesg_nindexes_c(hid_t_f *plist_id, int_f *nindexes ); -H5_FCDLL int_f h5pset_shared_mesg_index_c(hid_t_f *fcpl_id, int_f *index_num, int_f *mesg_type_flags, int_f *min_mesg_size); -H5_FCDLL int_f h5pget_attr_creation_order_c(hid_t_f *ocpl_id, int_f *crt_order_flags); -H5_FCDLL int_f h5pset_libver_bounds_c(hid_t_f *fapl_id, int_f *low, int_f *high); -H5_FCDLL int_f h5pset_link_creation_order_c(hid_t_f *gcpl_id, int_f *crt_order_flags); -H5_FCDLL int_f h5pget_link_phase_change_c(hid_t_f *gcpl_id, int_f *max_compact, int_f *min_dense ); -H5_FCDLL int_f h5pget_obj_track_times_c(hid_t_f *plist_id, int_f *flag); -H5_FCDLL int_f h5pset_obj_track_times_c(hid_t_f *plist_id, int_f *flag); -H5_FCDLL int_f h5pset_create_inter_group_c(hid_t_f *lcpl_id, int_f *crt_intermed_group); -H5_FCDLL int_f h5pget_create_inter_group_c(hid_t_f *lcpl_id, int_f *crt_intermed_group); -H5_FCDLL int_f h5pget_link_creation_order_c(hid_t_f *gcpl_id, int_f *crt_order_flags); -H5_FCDLL int_f h5pset_char_encoding_c(hid_t_f *plist_id, int_f *encoding); -H5_FCDLL int_f h5pget_char_encoding_c(hid_t_f *plist_id, int_f *encoding); -H5_FCDLL int_f h5pset_copy_object_c(hid_t_f *ocp_plist_id, int_f *copy_options); -H5_FCDLL int_f h5pget_copy_object_c(hid_t_f *ocp_plist_id, int_f *copy_options); -H5_FCDLL int_f h5pget_data_transform_c(hid_t_f *plist_id, _fcd expression, int_f *expression_len, size_t_f *size); -H5_FCDLL int_f h5pset_data_transform_c(hid_t_f *plist_id, _fcd expression, int_f *expression_len); -H5_FCDLL int_f h5pget_local_heap_size_hint_c(hid_t_f *gcpl_id, size_t_f *size_hint); -H5_FCDLL int_f h5pget_est_link_info_c(hid_t_f *gcpl_id, int_f *est_num_entries, int_f *est_name_len); -H5_FCDLL int_f h5pset_local_heap_size_hint_c(hid_t_f *gcpl_id, size_t_f *size_hint); -H5_FCDLL int_f h5pset_est_link_info_c(hid_t_f *gcpl_id, int_f *est_num_entries, int_f *est_name_len); -H5_FCDLL int_f h5pset_link_phase_change_c(hid_t_f *gcpl_id, int_f *max_compact, int_f *min_dense ); -H5_FCDLL int_f h5pset_fapl_direct_c(hid_t_f *fapl_id, size_t_f *alignment, size_t_f *block_size, size_t_f *cbuf_size ); -H5_FCDLL int_f h5pget_fapl_direct_c(hid_t_f *fapl_id, size_t_f *alignment, size_t_f *block_size, size_t_f *cbuf_size ); -H5_FCDLL int_f h5pset_attr_phase_change_c(hid_t_f *ocpl_id, int_f *max_compact, int_f *min_dense ); -H5_FCDLL int_f h5pset_nbit_c(hid_t_f *plist_id ); -H5_FCDLL int_f h5pset_scaleoffset_c(hid_t_f *plist_id, int_f *scale_type, int_f *scale_factor ); -H5_FCDLL int_f h5pset_nlinks_c(hid_t_f *lapl_id, size_t_f *nlinks); -H5_FCDLL int_f h5pget_nlinks_c(hid_t_f *lapl_id, size_t_f *nlinks); -H5_FCDLL int_f h5pset_chunk_cache_c(hid_t_f *dapl_id, size_t_f *rdcc_nslots, size_t_f *rdcc_nbytes, real_f *rdcc_w0); -H5_FCDLL int_f h5pget_chunk_cache_c(hid_t_f *dapl_id, size_t_f *rdcc_nslots, size_t_f *rdcc_nbytes, real_f *rdcc_w0); -#ifdef H5_HAVE_PARALLEL -H5_FCDLL int_f h5pget_mpio_actual_io_mode_c(hid_t_f *dxpl_id, int_f *actual_io_mode); -H5_FCDLL int_f h5pget_fapl_mpio_c(hid_t_f *prp_id, int_f* comm, int_f* info); -H5_FCDLL int_f h5pset_fapl_mpio_c(hid_t_f *prp_id, int_f* comm, int_f* info); -H5_FCDLL int_f h5pget_dxpl_mpio_c(hid_t_f *prp_id, int_f* data_xfer_mode); -H5_FCDLL int_f h5pset_dxpl_mpio_c(hid_t_f *prp_id, int_f* data_xfer_mode); -#endif +H5_FCDLL int_f nh5pget_double_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); +H5_FCDLL int_f nh5pget_integer_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); +H5_FCDLL int_f nh5pget_real_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); +H5_FCDLL int_f nh5pgetc_c(hid_t_f *prp_id, _fcd name, int_f *name_len, _fcd value, int_f *value_len); +H5_FCDLL int_f nh5pexist_c(hid_t_f *prp_id, _fcd name, int_f *name_len); +H5_FCDLL int_f nh5pget_size_c(hid_t_f *prp_id, _fcd name, int_f *name_len, size_t_f *size); +H5_FCDLL int_f nh5pget_nprops_c(hid_t_f *prp_id, size_t_f *nprops); +H5_FCDLL int_f nh5pget_class_parent_c(hid_t_f *prp_id, hid_t_f *parent_id); +H5_FCDLL int_f nh5pisa_class_c(hid_t_f *plist, hid_t_f *pclass); +H5_FCDLL int_f nh5pcopy_prop_c(hid_t_f *dst_id, hid_t_f *src_id, _fcd name, int_f *name_len); +H5_FCDLL int_f nh5premove_c(hid_t_f *plid, _fcd name, int_f *name_len); +H5_FCDLL int_f nh5punregister_c(hid_t_f *cls, _fcd name, int_f *name_len); +H5_FCDLL int_f nh5pclose_class_c(hid_t_f * cls); +H5_FCDLL int_f nh5pget_class_name_c(hid_t_f *prp_id, _fcd name, int_f *name_len); +H5_FCDLL int_f nh5pset_shuffle_c ( hid_t_f *prp_id); +H5_FCDLL int_f nh5pset_fletcher32_c ( hid_t_f *prp_id ); +H5_FCDLL int_f nh5pset_edc_check_c ( hid_t_f *prp_id, int_f *flag ); +H5_FCDLL int_f nh5pget_edc_check_c ( hid_t_f *prp_id, int_f *flag ); +H5_FCDLL int_f nh5pset_family_offset_c ( hid_t_f *prp_id , hsize_t_f *offset); +H5_FCDLL int_f nh5pget_fapl_multi_c ( hid_t_f *prp_id , int_f *mem_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); +H5_FCDLL int_f nh5pset_fapl_multi_c ( hid_t_f *prp_id , int_f *mem_map, hid_t_f *memb_fapl, _fcd memb_name, int_f *len, int_f *lenmax, real_f *memb_addr, int_f *flag); +H5_FCDLL int_f nh5pset_fapl_multi_sc ( hid_t_f *prp_id , int_f *flag); +H5_FCDLL int_f nh5pset_szip_c ( hid_t_f *prp_id , int_f *options_mask, int_f *pixels_per_block); +H5_FCDLL int_f nh5pall_filters_avail_c ( hid_t_f *prp_id , int_f *status); +H5_FCDLL int_f nh5pfill_value_defined_c ( hid_t_f *prp_id , int_f *flag); +H5_FCDLL int_f nh5pget_attr_phase_change_c (hid_t_f *ocpl_id, int_f *max_compact, int_f *min_dense ); +H5_FCDLL int_f nh5pset_attr_creation_order_c(hid_t_f *ocpl_id, int_f *crt_order_flags ); +H5_FCDLL int_f nh5pset_shared_mesg_nindexes_c(hid_t_f *plist_id, int_f *nindexes ); +H5_FCDLL 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); +H5_FCDLL int_f nh5pget_attr_creation_order_c(hid_t_f *ocpl_id, int_f *crt_order_flags); +H5_FCDLL int_f nh5pset_libver_bounds_c(hid_t_f *fapl_id, int_f *low, int_f *high); +H5_FCDLL int_f nh5pset_link_creation_order_c(hid_t_f *gcpl_id, int_f *crt_order_flags); +H5_FCDLL int_f nh5pget_link_phase_change_c(hid_t_f *gcpl_id, int_f *max_compact, int_f *min_dense ); +H5_FCDLL int_f nh5pget_obj_track_times_c(hid_t_f *plist_id, int_f *flag); +H5_FCDLL int_f nh5pset_obj_track_times_c(hid_t_f *plist_id, int_f *flag); +H5_FCDLL int_f nh5pset_create_inter_group_c(hid_t_f *lcpl_id, int_f *crt_intermed_group); +H5_FCDLL int_f nh5pget_create_inter_group_c(hid_t_f *lcpl_id, int_f *crt_intermed_group); +H5_FCDLL int_f nh5pget_link_creation_order_c(hid_t_f *gcpl_id, int_f *crt_order_flags); +H5_FCDLL int_f nh5pset_char_encoding_c(hid_t_f *plist_id, int_f *encoding); +H5_FCDLL int_f nh5pget_char_encoding_c(hid_t_f *plist_id, int_f *encoding); +H5_FCDLL int_f nh5pset_copy_object_c(hid_t_f *ocp_plist_id, int_f *copy_options); +H5_FCDLL int_f nh5pget_copy_object_c(hid_t_f *ocp_plist_id, int_f *copy_options); +H5_FCDLL int_f nh5pget_data_transform_c(hid_t_f *plist_id, _fcd expression, int_f *expression_len, size_t_f *size); +H5_FCDLL int_f nh5pset_data_transform_c(hid_t_f *plist_id, _fcd expression, int_f *expression_len); +H5_FCDLL int_f nh5pget_local_heap_size_hint_c(hid_t_f *gcpl_id, size_t_f *size_hint); +H5_FCDLL int_f nh5pget_est_link_info_c(hid_t_f *gcpl_id, int_f *est_num_entries, int_f *est_name_len); +H5_FCDLL int_f nh5pset_local_heap_size_hint_c(hid_t_f *gcpl_id, size_t_f *size_hint); +H5_FCDLL int_f nh5pset_est_link_info_c(hid_t_f *gcpl_id, int_f *est_num_entries, int_f *est_name_len); +H5_FCDLL int_f nh5pset_link_phase_change_c(hid_t_f *gcpl_id, int_f *max_compact, int_f *min_dense ); +H5_FCDLL int_f nh5pset_fapl_direct_c(hid_t_f *fapl_id, size_t_f *alignment, size_t_f *block_size, size_t_f *cbuf_size ); +H5_FCDLL int_f nh5pget_fapl_direct_c(hid_t_f *fapl_id, size_t_f *alignment, size_t_f *block_size, size_t_f *cbuf_size ); +H5_FCDLL int_f nh5pset_attr_phase_change_c (hid_t_f *ocpl_id, int_f *max_compact, int_f *min_dense ); +H5_FCDLL int_f nh5pset_nbit_c(hid_t_f *plist_id ); +H5_FCDLL int_f nh5pset_scaleoffset_c(hid_t_f *plist_id, int_f *scale_type, int_f *scale_factor ); +H5_FCDLL int_f nh5pset_nlinks_c(hid_t_f *lapl_id, size_t_f *nlinks); +H5_FCDLL int_f nh5pget_nlinks_c(hid_t_f *lapl_id, size_t_f *nlinks); +H5_FCDLL int_f nh5pset_chunk_cache_c(hid_t_f *dapl_id, size_t_f *rdcc_nslots, size_t_f *rdcc_nbytes, real_f *rdcc_w0); +H5_FCDLL int_f nh5pget_chunk_cache_c(hid_t_f *dapl_id, size_t_f *rdcc_nslots, size_t_f *rdcc_nbytes, real_f *rdcc_w0); +H5_FCDLL int_f nh5pget_mpio_actual_io_mode_c(hid_t_f *dxpl_id, int_f *actual_io_mode); /* * Functions frome H5Rf.c */ -H5_FCDLL int_f h5rcreate_region_c(int_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *space_id); -H5_FCDLL int_f h5rcreate_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 h5rdereference_ptr_c(hid_t_f *obj_id, int_f *ref_type, void *ref, hid_t_f *ref_obj_id); -H5_FCDLL int_f h5rget_region_region_c(hid_t_f *dset_id, int_f *ref, hid_t_f *space_id); +#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) + + +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 h5rcreate_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 h5rdereference_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 h5rget_region_ptr_c(hid_t_f *dset_id, void *ref, hid_t_f *space_id); -H5_FCDLL int_f h5rget_object_type_obj_c(hid_t_f *dset_id, haddr_t_f *ref, int_f *obj_type); -H5_FCDLL int_f h5rget_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 h5rget_obj_type_c(hid_t_f *loc_id, int_f *ref_type, void *ref, int_f *obj_type); +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 h5rget_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 h5rget_obj_type_c (hid_t_f *loc_id, int_f *ref_type, void *ref, int_f *obj_type); /* * Functions from H5If.c */ -H5_FCDLL int_f h5iget_type_c(hid_t_f *obj_id, int_f *type); -H5_FCDLL int_f h5iget_name_c(hid_t_f *obj_id, _fcd buf, size_t_f *buf_size, size_t_f *name_size); -H5_FCDLL int_f h5iinc_ref_c(hid_t_f *obj_id, int_f *ref_count); -H5_FCDLL int_f h5idec_ref_c(hid_t_f *obj_id, int_f *ref_count); -H5_FCDLL int_f h5iget_ref_c(hid_t_f *obj_id, int_f *ref_count); -H5_FCDLL int_f h5iget_file_id_c(hid_t_f *obj_id, hid_t_f *file_id); -H5_FCDLL int_f h5iis_valid_c(hid_t_f *obj_id, int_f *c_valid); +#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); +H5_FCDLL int_f nh5iinc_ref_c(hid_t_f *obj_id, int_f *ref_count); +H5_FCDLL int_f nh5idec_ref_c(hid_t_f *obj_id, int_f *ref_count); +H5_FCDLL int_f nh5iget_ref_c(hid_t_f *obj_id, int_f *ref_count); +H5_FCDLL int_f nh5iget_file_id_c(hid_t_f *obj_id, hid_t_f *file_id); +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 nprocess_buffer H5_FC_FUNC_(process_buffer, PROCESS_BUFFER) -H5_FCDLL int_f h5eclear_c(hid_t_f *estack_id); -H5_FCDLL int_f h5eprint_c1(_fcd name, int_f* namelen); -H5_FCDLL int_f h5eprint_c2(void); -H5_FCDLL int_f h5eget_major_c(int_f* error_no, _fcd name, size_t_f* namelen); -H5_FCDLL int_f h5eget_minor_c(int_f* error_no, _fcd name, size_t_f* namelen); + +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 h5eset_auto2_c(int_f* printflag, hid_t_f *estack_id, H5E_auto2_t func, void *client_data); +H5_FCDLL int_f nprocess_buffer(hid_t_f *estack_id,void **buffer); /* * Functions from H5f.c */ -H5_FCDLL int_f h5open_c(void); -H5_FCDLL int_f h5close_c(void); -H5_FCDLL int_f h5init_types_c(hid_t_f *types, hid_t_f *floatingtypes, hid_t_f *integertypes); -H5_FCDLL int_f h5close_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 h5init_flags_c(int_f *h5d_flags, size_t_f *h5d_size_flags, int_f *h5e_flags, hid_t_f *h5e_hid_flags, int_f *h5f_flags, +#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, size_t_f *h5d_size_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, hsize_t_f *h5s_hsize_flags, int_f *h5t_flags, int_f *h5z_flags, int_f *h5_generic_flags); -H5_FCDLL int_f h5init1_flags_c(int_f *h5lib_flags); -H5_FCDLL int_f h5get_libversion_c(int_f *majnum, int_f *minnum, int_f *relnum); -H5_FCDLL int_f h5check_version_c(int_f *majnum, int_f *minnum, int_f *relnum); -H5_FCDLL int_f h5garbage_collect_c(void); -H5_FCDLL int_f h5dont_atexit_c(void); +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); +H5_FCDLL int_f nh5garbage_collect_c(void); +H5_FCDLL int_f nh5dont_atexit_c(void); /* * Functions from H5Zf.c */ -H5_FCDLL int_f h5zunregister_c(int_f *filter); -H5_FCDLL int_f h5zfilter_avail_c(int_f *filter, int_f *flag); -H5_FCDLL int_f h5zget_filter_info_c(int_f *filter, int_f *flag); +#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); +H5_FCDLL int_f nh5zfilter_avail_c (int_f *filter, int_f *flag); +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) -H5_FCDLL int_f h5lcopy_c(hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_namelen, hid_t_f *dest_loc_id, +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, hid_t_f *lcpl_id, hid_t_f *lapl_id); -H5_FCDLL int_f h5lcreate_external_c(_fcd file_name, size_t_f *file_namelen, _fcd obj_name, size_t_f *obj_namelen, +H5_FCDLL 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); -H5_FCDLL int_f h5lcreate_hard_c(hid_t_f *obj_loc_id, _fcd obj_name, size_t_f *obj_namelen, +H5_FCDLL 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 ); -H5_FCDLL int_f h5lcreate_soft_c(_fcd target_path, size_t_f *target_path_len, +H5_FCDLL 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 ); -H5_FCDLL int_f h5ldelete_c( hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id ); -H5_FCDLL int_f h5ldelete_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, +H5_FCDLL int_f nh5ldelete_c( hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id ); +H5_FCDLL 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); -H5_FCDLL int_f h5lexists_c(hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, int_f *link_exists); -H5_FCDLL int_f h5lget_info_c(hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen, +H5_FCDLL int_f nh5lexists_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, int_f *link_exists); +H5_FCDLL 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); -H5_FCDLL int_f h5lget_info_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, +H5_FCDLL 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); -H5_FCDLL int_f h5lis_registered_c(int_f *link_cls_id); -H5_FCDLL int_f h5lmove_c(hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_namelen, hid_t_f *dest_loc_id, +H5_FCDLL int_f nh5lis_registered_c(int_f *link_cls_id); +H5_FCDLL 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); -H5_FCDLL int_f h5lget_name_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, +H5_FCDLL 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); -H5_FCDLL int_f h5lget_val_c(hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen, size_t_f *size, +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 h5literate_c(hid_t_f *group_id, int_f *index_type, int_f *order, hsize_t_f *idx, H5L_iterate_t op, void *op_data ); diff --git a/fortran/src/H5fort_type_defines.h.in b/fortran/src/H5fort_type_defines.h.in deleted file mode 100644 index 0e14e86..0000000 --- a/fortran/src/H5fort_type_defines.h.in +++ /dev/null @@ -1,16 +0,0 @@ -/* If you are reading this file and it has a '.h' suffix, it was automatically - * generated from the '.in' version. Make changes there. - */ -#define H5_FORTRAN_NATIVE_INTEGER_KIND @PAC_FORTRAN_NATIVE_INTEGER_KIND@ -#define H5_FORTRAN_NATIVE_INTEGER_SIZEOF @PAC_FORTRAN_NATIVE_INTEGER_SIZEOF@ -#define H5_FORTRAN_NATIVE_REAL_KIND @PAC_FORTRAN_NATIVE_REAL_KIND@ -#define H5_FORTRAN_NATIVE_REAL_SIZEOF @PAC_FORTRAN_NATIVE_REAL_SIZEOF@ -#define H5_FORTRAN_NATIVE_DOUBLE_KIND @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ -#define H5_FORTRAN_NATIVE_DOUBLE_SIZEOF @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ -#define H5_FORTRAN_INTEGER_KINDS @PAC_FC_ALL_INTEGER_KINDS@ -#define H5_FORTRAN_INTEGER_KINDS_SIZEOF @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ -#define H5_FORTRAN_REAL_KINDS @PAC_FC_ALL_REAL_KINDS@ -#define H5_FORTRAN_REAL_KINDS_SIZEOF @PAC_FC_ALL_REAL_KINDS_SIZEOF@ -#define H5_HAVE_Fortran_INTEGER_SIZEOF_16 @HAVE_Fortran_INTEGER_SIZEOF_16@ -#define H5_FORTRAN_HAVE_C_LONG_DOUBLE @FORTRAN_HAVE_C_LONG_DOUBLE@ -#define H5_FORTRAN_C_LONG_DOUBLE_IS_UNIQUE @FORTRAN_C_LONG_DOUBLE_IS_UNIQUE@ diff --git a/fortran/src/H5match_types.c b/fortran/src/H5match_types.c index 37509a0..c4b7f73 100644 --- a/fortran/src/H5match_types.c +++ b/fortran/src/H5match_types.c @@ -9,7 +9,7 @@ * 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. + * H5fortran_types.f90 for the Fortran code. * * COPYRIGHT * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -31,7 +31,6 @@ */ #include <stdio.h> -#include <string.h> #include <assert.h> #include "H5public.h" @@ -46,13 +45,12 @@ FILE * c_header; FILE * fort_header; #define CFILE "H5f90i_gen.h" -#define FFILE "H5fortran_types.F90" +#define FFILE "H5fortran_types.f90" /* Prototypes for the write routines */ -void writeTypedef(const char* c_typedef, const char* c_type, int size); -void writeTypedefDefault(const char* c_typedef, int size); -void writeToFiles(const char* c_typedef, const char* fortran_type, const char* c_type, int size, int kind); -void writeToFilesChr(const char* c_typedef, const char* fortran_type, const char* c_type, int size, char* kind); +void writeTypedef(const char* c_typedef, const char* c_type, unsigned int size); +void writeTypedefDefault(const char* c_typedef, unsigned int size); +void writeToFiles(const char* c_typedef, const char* fortran_type, const char* c_type, int size, unsigned int kind); static void initCfile(void) @@ -102,7 +100,6 @@ initFfile(void) !\n!\n\ ! This file is automatically generated and contains HDF5 Fortran90 type definitions.\n!\n\ MODULE H5FORTRAN_TYPES\n\ - USE ISO_C_BINDING\n\ !\n\ ! HDF5 integers\n\ !\n"); @@ -122,198 +119,253 @@ endFfile(void) } /* Define a c_int_x type in the C header */ -void writeTypedef(const char* c_typedef, const char* c_type, int size) +void writeTypedef(const char* c_typedef, const char* c_type, unsigned int size) { fprintf(c_header, "#define c_%s_%u %s\n", c_typedef, size, c_type); } /* Call this function if there is no matching C type for sizes > 1 */ -void writeTypedefDefault(const char* c_typedef, int size) +void writeTypedefDefault(const char* c_typedef, unsigned int size) { assert(size %2 == 0); - fprintf(c_header, "typedef struct {c_%s_%u a; c_%s_%u b;} c_%s_%u;\n", c_typedef, size / 2, c_typedef, size / 2, c_typedef, size); + fprintf(c_header, "typedef struct {c_%s_%u a; c_%s_%u b;} c_%s_%u\n", c_typedef, size / 2, c_typedef, size / 2, c_typedef, size); } /* Create matching Fortran and C types by writing to both files */ -void writeToFiles(const char* c_typedef, const char* fortran_type, const char* c_type, int size, int kind) +void writeToFiles(const char* c_typedef, const char* fortran_type, const char* c_type, int size, unsigned int kind) { fprintf(fort_header, " INTEGER, PARAMETER :: %s = %u\n", fortran_type, kind); fprintf(c_header, "typedef c_%s_%d %s;\n", c_typedef, size, c_type); } -void writeToFilesChr(const char* c_typedef, const char* fortran_type, const char* c_type, int size, char* kind) -{ - fprintf(fort_header, " INTEGER, PARAMETER :: %s = %s\n", fortran_type, kind); - fprintf(c_header, "typedef c_%s_%d %s;\n", c_typedef, size, c_type); -} + int main(void) { - int FoundIntSize[10]; - int FoundIntSizeKind[10]; - int FoundRealSize[10]; - int FoundRealSizeKind[10]; - int i, j,flag; - char chrA[32],chrB[32]; - - int IntKinds[] = H5_FORTRAN_INTEGER_KINDS; - int IntKinds_SizeOf[] = H5_FORTRAN_INTEGER_KINDS_SIZEOF; - int RealKinds[] = H5_FORTRAN_REAL_KINDS; - int RealKinds_SizeOf[] = H5_FORTRAN_REAL_KINDS_SIZEOF; - char Real_C_TYPES[10][32]; - - int H5_FORTRAN_NUM_INTEGER_KINDS; - int H5_FORTRAN_NUM_REAL_KINDS; - int found_long_double = 0; + int FoundIntSize[4]; + unsigned FoundIntSizeKind[4]; + int FoundRealSize[3]; + unsigned FoundRealSizeKind[3]; + int i,j,flag; + char chrA[20],chrB[20]; + int H5_C_HAS_REAL_NATIVE_16; /* Open target files */ c_header = fopen(CFILE, "w"); fort_header = fopen(FFILE, "w"); + /* Default is C has 16 byte float */ + H5_C_HAS_REAL_NATIVE_16 = 1; + /* Write copyright, boilerplate to both files */ initCfile(); initFfile(); - /* (a) define c_int_x */ - - H5_FORTRAN_NUM_INTEGER_KINDS = (int)(sizeof(IntKinds)/sizeof(IntKinds[0])); - H5_FORTRAN_NUM_REAL_KINDS = (int)(sizeof(RealKinds)/sizeof(RealKinds[0])); - - for(i=0;i< H5_FORTRAN_NUM_INTEGER_KINDS;i++) { - if(sizeof(long long) == IntKinds_SizeOf[i]) - writeTypedef("int", "long long", IntKinds[i]); - else if(sizeof(long) == IntKinds[i]) - writeTypedef("int", "long", IntKinds[i]); - else if(sizeof(int) == IntKinds_SizeOf[i]) - writeTypedef("int", "int", IntKinds[i]); - else if(sizeof(short) == IntKinds_SizeOf[i]) - writeTypedef("int", "short", IntKinds[i]); - else - if(IntKinds_SizeOf[i] == 1) { - writeTypedef("int", "char", IntKinds[i]); - /* Actually, char is not necessarily one byte. - * But if char isn't, then nothing is, so this - * is as close as we can get. */ - } else { - writeTypedefDefault("int",IntKinds[i]); - } - if(sizeof(size_t) == IntKinds_SizeOf[i]) - writeTypedef("size_t", "size_t", IntKinds[i]); - if(sizeof(hsize_t) == IntKinds_SizeOf[i]) - writeTypedef("hsize_t", "hsize_t", IntKinds[i]); - } - - /* (b) Define c_float_x */ - - for(i=0;i< H5_FORTRAN_NUM_REAL_KINDS;i++) { - if (sizeof(float) == RealKinds_SizeOf[i]) { - writeTypedef("float", "float", RealKinds[i]); - strcpy(Real_C_TYPES[i], "C_FLOAT"); - } - else if(sizeof(double) == RealKinds_SizeOf[i]) { - writeTypedef("float", "double", RealKinds[i]); - strcpy(Real_C_TYPES[i], "C_DOUBLE"); - } -#if H5_FORTRAN_HAVE_C_LONG_DOUBLE!=0 - else if(sizeof(long double) == RealKinds_SizeOf[i] && found_long_double == 0) { - writeTypedef("float", "long double", RealKinds[i]); - strcpy(Real_C_TYPES[i], "C_LONG_DOUBLE"); - found_long_double = 1; - } -# ifdef H5_HAVE_FLOAT128 - /* Don't select a higher precision than Fortran can support */ - else if(sizeof(__float128) == RealKinds_SizeOf[i] && found_long_double == 1 && H5_PAC_FC_MAX_REAL_PRECISION > 28) { - writeTypedef("float", "__float128", RealKinds[i]); - strcpy(Real_C_TYPES[i], "C_FLOAT128"); - } -# else - else if(sizeof(long double) == RealKinds_SizeOf[i] && found_long_double == 1 && H5_PAC_FC_MAX_REAL_PRECISION > 28) { - writeTypedef("float", "long double", RealKinds[i]); - strcpy(Real_C_TYPES[i], "C_FLOAT128"); - } -# endif -#else /* There is no C_LONG_DOUBLE intrinsic */ -# ifdef H5_HAVE_FLOAT128 - /* Don't select a higher precision than Fortran can support */ - else if(sizeof(__float128) == RealKinds_SizeOf[i] ) { - writeTypedef("float", "__float128", RealKinds[i]); - strcpy(Real_C_TYPES[i], "C_FLOAT128"); - } -# else - else if(sizeof(long double) == RealKinds_SizeOf[i] ) { - writeTypedef("float", "long double", RealKinds[i]); - strcpy(Real_C_TYPES[i], "C_FLOAT128"); - } -# endif -#endif - else { - printf("\n **** HDF5 WARNING ****\n"); - printf("Fortran REAL(KIND=%d) is %d Bytes, but no corresponding C float type exists of that size\n",RealKinds[i],RealKinds_SizeOf[i]); - printf(" !!! Fortran interfaces will not be generated for REAL(KIND=%d) !!!\n\n",RealKinds[i]); - - RealKinds_SizeOf[i] = -1; - RealKinds[i] = -1; - } - } + /* First, define c_int_x */ + +#if defined H5_FORTRAN_HAS_INTEGER_1_KIND + if(sizeof(long long) == 1) + writeTypedef("int", "long long", 1); + else if(sizeof(long) == 1) + writeTypedef("int", "long", 1); + else if(sizeof(int) == 1) + writeTypedef("int", "int", 1); + else if(sizeof(short) == 1) + writeTypedef("int", "short", 1); + else + writeTypedef("int", "char", 1); + /* Actually, char is not necessarily one byte. + * But if char isn't, then nothing is, so this + * is as close as we can get. */ + if(sizeof(size_t) == 1) + writeTypedef("size_t", "size_t", 1); + if(sizeof(hsize_t) == 1) + writeTypedef("hsize_t", "hsize_t", 1); +#endif /*H5_FORTRAN_HAS_INTEGER_1_KIND*/ + +#if defined H5_FORTRAN_HAS_INTEGER_2_KIND + if(sizeof(long long) == 2) + writeTypedef("int", "long long", 2); + else if(sizeof(long) == 2) + writeTypedef("int", "long", 2); + else if(sizeof(int) == 2) + writeTypedef("int", "int", 2); + else if(sizeof(short) == 2) + writeTypedef("int", "short", 2); + else + writeTypedefDefault("int",2); + + if(sizeof(size_t) == 2) + writeTypedef("size_t", "size_t", 2); + if(sizeof(hsize_t) == 2) + writeTypedef("hsize_t", "hsize_t", 2); +#endif /*H5_FORTRAN_HAS_INTEGER_2_KIND*/ + +#if defined H5_FORTRAN_HAS_INTEGER_4_KIND + if(sizeof(long long) == 4) + writeTypedef("int", "long long", 4); + else if(sizeof(long) == 4) + writeTypedef("int", "long", 4); + else if(sizeof(int) == 4) + writeTypedef("int", "int", 4); + else if(sizeof(short) == 4) + writeTypedef("int", "short", 4); + else + writeTypedefDefault("int",4); + + if(sizeof(size_t) == 4) + writeTypedef("size_t", "size_t", 4); + if(sizeof(hsize_t) == 4) + writeTypedef("hsize_t", "hsize_t", 4); + +#endif /*H5_FORTRAN_HAS_INTEGER_4_KIND*/ + +#if defined H5_FORTRAN_HAS_INTEGER_8_KIND + if(sizeof(long long) == 8) + writeTypedef("int", "long long", 8); + else if(sizeof(long) == 8) + writeTypedef("int", "long", 8); + else if(sizeof(int) == 8) + writeTypedef("int", "int", 8); + else if(sizeof(short) == 8) + writeTypedef("int", "short", 8); + else + writeTypedefDefault("int",8); + + if(sizeof(size_t) == 8) + writeTypedef("size_t", "size_t", 8); + if(sizeof(hsize_t) == 8) + writeTypedef("hsize_t", "hsize_t", 8); + +#endif /*H5_FORTRAN_HAS_INTEGER_8_KIND*/ + + /* Define c_float_x */ + +#if defined H5_FORTRAN_HAS_REAL_NATIVE_4_KIND || defined H5_FORTRAN_HAS_REAL_4_KIND + if(sizeof(long double) == 4) + writeTypedef("float", "long double", 4); + else if(sizeof(double) == 4) + writeTypedef("float", "double", 4); + else if(sizeof(float) == 4) + writeTypedef("float", "float", 4); + else + { printf("Fortran REAL is 4 bytes, no corresponding C floating type\n"); + printf("Quitting....\n"); + return -1; + } +#endif /*H5_FORTRAN_HAS_REAL_NATIVE_4_KIND*/ + +#if defined H5_FORTRAN_HAS_REAL_NATIVE_8_KIND || defined H5_FORTRAN_HAS_REAL_8_KIND + if(sizeof(long double) == 8) + writeTypedef("float", "long double", 8); + else if(sizeof(double) == 8) + writeTypedef("float", "double", 8); + else if(sizeof(float) == 8) + writeTypedef("float", "float", 8); + else + { printf("Fortran REAL is 16 bytes, no corresponding C floating type\n"); + printf("Quitting....\n"); + return -1; + } +#endif /*H5_FORTRAN_HAS_REAL_NATIVE_8_KIND*/ + +#if defined H5_FORTRAN_HAS_REAL_NATIVE_16_KIND || defined H5_FORTRAN_HAS_REAL_16_KIND + if(sizeof(long double) == 16) + writeTypedef("float", "long double", 16); + else if(sizeof(double) == 16) + writeTypedef("float", "double", 16); + else if(sizeof(float) == 16) + writeTypedef("float", "float", 16); + else /*C has no 16 byte float so disable it in Fortran*/ + { printf("warning: Fortran REAL is 16 bytes, no corresponding C floating type\n"); + printf(" Disabling Fortran 16 byte REALs\n"); + H5_C_HAS_REAL_NATIVE_16 = 0; + } +#endif /*H5_FORTRAN_HAS_REAL_NATIVE_16_KIND*/ /* Now begin defining fortran types. */ fprintf(c_header, "\n"); - /* haddr_t */ - for(i=0;i< H5_FORTRAN_NUM_INTEGER_KINDS;i++) { - if(IntKinds_SizeOf[i] == H5_SIZEOF_HADDR_T) { - writeToFiles("int","HADDR_T", "haddr_t_f", H5_SIZEOF_HADDR_T, IntKinds[i]); - break; - } - if(i == (H5_FORTRAN_NUM_INTEGER_KINDS-1) ) - /* Error: couldn't find a size for haddr_t */ - return -1; - } +#if defined H5_FORTRAN_HAS_INTEGER_8_KIND && H5_SIZEOF_HADDR_T >= 8 + writeToFiles("int","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("int","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("int","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("int","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 */ - for(i=0;i< H5_FORTRAN_NUM_INTEGER_KINDS;i++) { - if(IntKinds_SizeOf[i] == H5_SIZEOF_HSIZE_T) { - writeToFiles("hsize_t","HSIZE_T", "hsize_t_f", H5_SIZEOF_HSIZE_T, IntKinds[i]); - break; - } - if(i == (H5_FORTRAN_NUM_INTEGER_KINDS-1) ) - /* Error: couldn't find a size for hsize_t */ - return -1; - } +#if defined H5_FORTRAN_HAS_INTEGER_8_KIND && H5_SIZEOF_HSIZE_T >= 8 + writeToFiles("hsize_t","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", "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", "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", "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 */ - for(i=0;i< H5_FORTRAN_NUM_INTEGER_KINDS;i++) { - if(IntKinds_SizeOf[i] == H5_SIZEOF_HSSIZE_T) { - writeToFiles("int","HSSIZE_T", "hssize_t_f", H5_SIZEOF_HSSIZE_T, IntKinds[i]); - break; - } - if(i == (H5_FORTRAN_NUM_INTEGER_KINDS-1) ) - /* Error: couldn't find a size for hssize_t */ - return -1; - } +#if defined H5_FORTRAN_HAS_INTEGER_8_KIND && H5_SIZEOF_HSSIZE_T >= 8 + writeToFiles("int","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("int","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("int","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("int","HSSIZE_T", "hssize_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND); +#else + /* Error: couldn't find a size for hssize_t */ + return -1; +#endif /* off_t */ - for(i=0;i< H5_FORTRAN_NUM_INTEGER_KINDS;i++) { - if(IntKinds_SizeOf[i] == H5_SIZEOF_OFF_T) { - writeToFiles("int","OFF_T", "off_t_f", H5_SIZEOF_OFF_T, IntKinds[i]); - break; - } - if(i == (H5_FORTRAN_NUM_INTEGER_KINDS-1) ) - /* Error: couldn't find a size for off_t */ - return -1; - } +#if defined H5_FORTRAN_HAS_INTEGER_8_KIND && H5_SIZEOF_OFF_T >= 8 + writeToFiles("int","OFF_T", "off_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND); +#elif defined H5_FORTRAN_HAS_INTEGER_4_KIND && H5_SIZEOF_OFF_T >= 4 + writeToFiles("int","OFF_T", "off_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND); +#elif defined H5_FORTRAN_HAS_INTEGER_2_KIND && H5_SIZEOF_OFF_T >= 2 + writeToFiles("int","OFF_T", "off_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND); +#elif defined H5_FORTRAN_HAS_INTEGER_1_KIND && H5_SIZEOF_OFF_T >= 1 + writeToFiles("int","OFF_T", "off_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND); +#else + /* Error: couldn't find a size for off_t */ + return -1; +#endif /* size_t */ - for(i=0;i< H5_FORTRAN_NUM_INTEGER_KINDS;i++) { - if(IntKinds_SizeOf[i] == H5_SIZEOF_SIZE_T) { - writeToFiles("size_t","SIZE_T", "size_t_f", H5_SIZEOF_SIZE_T, IntKinds[i]); - break; - } - if(i == (H5_FORTRAN_NUM_INTEGER_KINDS-1) ) - /* Error: couldn't find a size for size_t */ - return -1; - } +#if defined H5_FORTRAN_HAS_INTEGER_8_KIND && H5_SIZEOF_SIZE_T >= 8 + writeToFiles("size_t","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", "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", "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", "size_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND); +#else + /* Error: couldn't find a size for size_t */ + return -1; +#endif /* int */ - writeToFiles("int","Fortran_INTEGER", "int_f", H5_FORTRAN_NATIVE_INTEGER_SIZEOF, H5_FORTRAN_NATIVE_INTEGER_KIND); +#if defined H5_FORTRAN_HAS_NATIVE_8_KIND + writeToFiles("int","Fortran_INTEGER", "int_f", 8, H5_FORTRAN_HAS_NATIVE_8_KIND); +#elif defined H5_FORTRAN_HAS_NATIVE_4_KIND + writeToFiles("int","Fortran_INTEGER", "int_f", 4, H5_FORTRAN_HAS_NATIVE_4_KIND); +#elif defined H5_FORTRAN_HAS_NATIVE_2_KIND + writeToFiles("int","Fortran_INTEGER", "int_f", 2, H5_FORTRAN_HAS_NATIVE_2_KIND); +#elif defined H5_FORTRAN_HAS_NATIVE_1_KIND + writeToFiles("int","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 */ @@ -322,20 +374,29 @@ int main(void) /* it a value of the next larger one, but if the next */ /* higher one is not available we assigned it the next lowest */ + FoundIntSize[0] = -1; + FoundIntSize[1] = -2; + FoundIntSize[2] = -4; + FoundIntSize[3] = -8; - FoundIntSize[0] = -1; - FoundIntSize[1] = -1; - FoundIntSize[2] = -1; - FoundIntSize[3] = -1; - FoundIntSize[4] = -1; - - for(i=0;i<H5_FORTRAN_NUM_INTEGER_KINDS;i++) { - FoundIntSize[i] = (int)IntKinds[i]; - FoundIntSizeKind[i] = (int)IntKinds_SizeOf[i]; -/* writeToFiles("int",chrA, chrB, FoundIntSize[i], FoundIntSizeKind[i]); */ - } +#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_KIND + FoundIntSize[1] = 2; + FoundIntSizeKind[1] = H5_FORTRAN_HAS_INTEGER_2_KIND; +#endif +#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_KIND + FoundIntSize[3] = 8; + FoundIntSizeKind[3] = H5_FORTRAN_HAS_INTEGER_8_KIND ; +#endif - for(i=0;i<H5_FORTRAN_NUM_INTEGER_KINDS;i++) { + for(i=0;i<4;i++) { if( FoundIntSize[i] > 0) /* Found the integer type */ { sprintf(chrA, "Fortran_INTEGER_%d", FoundIntSize[i]); @@ -382,77 +443,129 @@ int main(void) /* it a value of the next larger one, but if the next */ /* higher one is not available we assigned it the next lowest */ - FoundRealSize[0] = -1; - FoundRealSize[1] = -1; - FoundRealSize[2] = -1; - FoundRealSize[3] = -1; - FoundRealSize[4] = -1; - - for(i=0;i<H5_FORTRAN_NUM_REAL_KINDS;i++) { - if (RealKinds[i] > 0) { - FoundRealSize[i] = (int)RealKinds[i]; - FoundRealSizeKind[i] = (int)RealKinds_SizeOf[i]; - sprintf(chrA, "Fortran_REAL_%s", Real_C_TYPES[i]); - sprintf(chrB, "real_%s_f", Real_C_TYPES[i]); - writeToFiles("float",chrA, chrB, RealKinds[i], RealKinds_SizeOf[i]); + FoundRealSize[0] = -4; + FoundRealSize[1] = -8; + FoundRealSize[2] = -16; + +#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_KIND + FoundRealSize[1] = 8; + FoundRealSizeKind[1] = H5_FORTRAN_HAS_REAL_8_KIND; +#endif + +#if defined H5_FORTRAN_HAS_REAL_16_KIND + if(H5_C_HAS_REAL_NATIVE_16 != 0) { + FoundRealSize[2] = 16; + FoundRealSizeKind[2] = H5_FORTRAN_HAS_REAL_16_KIND; } - } +#endif - /* hid_t */ - for(i=0;i< H5_FORTRAN_NUM_INTEGER_KINDS;i++) { - if(IntKinds_SizeOf[i] == H5_SIZEOF_HID_T) { - writeToFiles("int","HID_T", "hid_t_f", H5_SIZEOF_HID_T, IntKinds[i]); - break; + for(i=0;i<3;i++) { + if( FoundRealSize[i] > 0) /* Found the real type */ + { + sprintf(chrA, "Fortran_REAL_%d", FoundRealSize[i]); + sprintf(chrB, "real_%d_f", FoundRealSize[i]); + writeToFiles("float",chrA, chrB, FoundRealSize[i], FoundRealSizeKind[i]); + } + else /* Did not find the real type */ + { + flag = 0; /* flag indicating if found the next highest */ + for(j=i+1;j<3;j++) /* search for next highest */ + { + if( FoundRealSize[j] > 0) /* Found the next highest */ + { + sprintf(chrA, "Fortran_REAL_%d", (-1)*FoundRealSize[i]); + sprintf(chrB, "real_%d_f", (-1)*FoundRealSize[i]); + if(FoundRealSize[j]>4) { + writeToFiles("float",chrA, chrB, FoundRealSize[j], FoundRealSizeKind[j]); + flag = 1; + } + /* else { */ +/* writeToFiles("float", chrA, chrB, FoundRealSize[j]); */ +/* } */ + flag = 1; + break; + } + } + if(flag == 0) /* No higher one found, so find next lowest */ + { + for(j=1;j>-1;j--) /* Search for next lowest */ + { + if( FoundRealSize[j] > 0) /* Found the next lowest */ + { + sprintf(chrA, "Fortran_REAL_%d", (-1)*FoundRealSize[i]); + sprintf(chrB, "real_%d_f", (-1)*FoundRealSize[i]); + if(FoundRealSize[j]>4) + writeToFiles("float",chrA, chrB, FoundRealSize[j], FoundRealSizeKind[j]); + /* else { */ +/* writeToFiles("float", chrA, chrB, FoundRealSize[j]); */ +/* } */ + flag = 1; + break; + } + } + } + if(flag == 0) /* No higher or lower one found, indicating an error */ + return -1; + } } - if(i == (H5_FORTRAN_NUM_INTEGER_KINDS-1) ) - /* Error: couldn't find a size for hid_t */ - return -1; - } + + /* hid_t */ +#if defined H5_FORTRAN_HAS_INTEGER_8_KIND && H5_SIZEOF_HID_T >= 8 + writeToFiles("int","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("int","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("int","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("int","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("int","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(H5_FORTRAN_NATIVE_REAL_SIZEOF == sizeof(long double)) - writeToFilesChr("float","Fortran_REAL", "real_f", H5_FORTRAN_NATIVE_REAL_KIND, "C_LONG_DOUBLE"); - else if(H5_FORTRAN_NATIVE_REAL_SIZEOF == sizeof(double)) - writeToFilesChr("float","Fortran_REAL", "real_f", H5_FORTRAN_NATIVE_REAL_KIND, "C_DOUBLE"); - else if(H5_FORTRAN_NATIVE_REAL_SIZEOF == sizeof(float)) - writeToFilesChr("float","Fortran_REAL", "real_f", H5_FORTRAN_NATIVE_REAL_KIND, "C_FLOAT"); - else { - /* No exact match, choose the next highest */ - if(H5_FORTRAN_NATIVE_REAL_SIZEOF > sizeof(long double)) - writeToFilesChr("float","Fortran_REAL", "real_f", H5_FORTRAN_NATIVE_REAL_KIND, "C_LONG_DOUBLE"); - else if(H5_FORTRAN_NATIVE_REAL_SIZEOF > sizeof(double)) - writeToFilesChr("float","Fortran_REAL", "real_f", H5_FORTRAN_NATIVE_REAL_KIND, "C_DOUBLE"); - else if(H5_FORTRAN_NATIVE_REAL_SIZEOF > sizeof(float)) - writeToFilesChr("float","Fortran_REAL", "real_f", H5_FORTRAN_NATIVE_REAL_KIND, "C_FLOAT"); - else { - /* Error: couldn't find a size for real_f */ - printf("Error: couldn't find a size for real_f \n"); - return -1; +#if defined H5_FORTRAN_HAS_REAL_NATIVE_16_KIND + if(H5_C_HAS_REAL_NATIVE_16 != 0) { + writeToFiles("float","Fortran_REAL", "real_f", 16, H5_FORTRAN_HAS_REAL_NATIVE_16_KIND); } - } +#elif defined H5_FORTRAN_HAS_REAL_NATIVE_8_KIND + writeToFiles("float", "Fortran_REAL", "real_f", 8, H5_FORTRAN_HAS_REAL_NATIVE_8_KIND); +#elif defined H5_FORTRAN_HAS_REAL_NATIVE_4_KIND + writeToFiles("float", "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(H5_FORTRAN_NATIVE_DOUBLE_SIZEOF == sizeof(long double)) - writeToFilesChr("float","Fortran_DOUBLE", "double_f", H5_FORTRAN_NATIVE_DOUBLE_KIND, "C_LONG_DOUBLE"); - else if(H5_FORTRAN_NATIVE_DOUBLE_SIZEOF == sizeof(double)) - writeToFilesChr("float","Fortran_DOUBLE", "double_f", H5_FORTRAN_NATIVE_DOUBLE_KIND, "C_DOUBLE"); - else if(H5_FORTRAN_NATIVE_DOUBLE_SIZEOF == sizeof(float)) - writeToFilesChr("float","Fortran_DOUBLE", "double_f", H5_FORTRAN_NATIVE_DOUBLE_KIND, "C_FLOAT"); -#ifdef H5_HAVE_FLOAT128 - /* Don't select a higher precision than Fortran can support */ - else if(sizeof(__float128) == H5_FORTRAN_NATIVE_DOUBLE_SIZEOF && H5_PAC_FC_MAX_REAL_PRECISION > 28) { - writeToFilesChr("float","Fortran_DOUBLE", "double_f", H5_FORTRAN_NATIVE_DOUBLE_KIND, "C_FLOAT128"); +#if defined H5_FORTRAN_HAS_DOUBLE_NATIVE_16_KIND + if(H5_C_HAS_REAL_NATIVE_16 != 0) { /* Check if C has 16 byte floats */ + writeToFiles("float", "Fortran_DOUBLE", "double_f", 16, H5_FORTRAN_HAS_DOUBLE_NATIVE_16_KIND); + } else { +#if defined H5_FORTRAN_HAS_REAL_NATIVE_8_KIND /* Fall back to 8 byte floats */ + writeToFiles("float", "Fortran_DOUBLE", "double_f", 8, H5_FORTRAN_HAS_REAL_NATIVE_8_KIND); + } +#elif defined H5_FORTRAN_HAS_REAL_NATIVE_4_KIND /* Fall back to 4 byte floats */ + writeToFiles("float", "Fortran_DOUBLE", "double_f", 4, H5_FORTRAN_HAS_REAL_NATIVE_4_KIND); } #else - else if(sizeof(long double) == H5_FORTRAN_NATIVE_DOUBLE_SIZEOF && H5_PAC_FC_MAX_REAL_PRECISION > 28) { - writeToFilesChr("float","Fortran_DOUBLE", "double_f", H5_FORTRAN_NATIVE_DOUBLE_KIND, "C_FLOAT128"); + /* Error: couldn't find a size for double_f when fortran has 16 byte reals */ + return -1; } #endif - else { - /* Error: couldn't find a size for double_f */ - printf("Error: couldn't find a size for double_f \n"); + +#elif defined H5_FORTRAN_HAS_DOUBLE_NATIVE_8_KIND + writeToFiles("float", "Fortran_DOUBLE", "double_f", 8, H5_FORTRAN_HAS_DOUBLE_NATIVE_8_KIND); +#else + /* Error: couldn't find a size for real_f */ return -1; - } +#endif /* Need the buffer size for the fortran derive type 'hdset_reg_ref_t_f03' * in order to be interoperable with C's structure, the C buffer size @@ -461,12 +574,12 @@ int main(void) fprintf(fort_header, " INTEGER, PARAMETER :: H5R_DSET_REG_REF_BUF_SIZE_F = %u\n", H5_SIZEOF_HADDR_T + 4 ); + /* Close files */ endCfile(); endFfile(); fclose(c_header); fclose(fort_header); - return 0; } diff --git a/fortran/src/H5test_kind.f90 b/fortran/src/H5test_kind.f90 new file mode 100644 index 0000000..1a1a0ec --- /dev/null +++ b/fortran/src/H5test_kind.f90 @@ -0,0 +1,269 @@ +!****p* Program/H5test_kind +! +! NAME +! Executable: H5test_kind +! +! 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 +! depending on which of the KIND values are found. +! +! NOTES +! This program is depreciated in favor of H5test_kind_SIZEOF.f90 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". +! +! 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. * +! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +! +! AUTHOR +! Elena Pourma +! +!***** + +PROGRAM test_kind + IMPLICIT NONE + INTEGER :: i, j, ii, ir, last, ikind_numbers(10), rkind_numbers(10) + INTEGER :: ji, jr, jd + last = -1 + ii = 0 + j = SELECTED_INT_KIND(18) + DO i = 1,100 + j = SELECTED_INT_KIND(i) + IF(j .NE. last) THEN + IF(last .NE. -1) THEN + ii = ii + 1 + ikind_numbers(ii) = last + ENDIF + last = j + IF(j .EQ. -1) EXIT + ENDIF + ENDDO + + last = -1 + ir = 0 + DO i = 1,100 + j = SELECTED_REAL_KIND(i) + IF(j .NE. last) THEN + IF(last .NE. -1) THEN + ir = ir + 1 + rkind_numbers(ir) = last + ENDIF + last = j + IF(j .EQ. -1) EXIT + ENDIF + ENDDO + +! Generate program information: + +WRITE(*,'(40(A,/))') & +'!****h* ROBODoc/H5fortran_detect.f90',& +'!',& +'! NAME',& +'! H5fortran_detect',& +'! ',& +'! 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',& +'!',& +'! NOTES',& +'! This source code does not make use of the Fortran intrinsic function SIZEOF because',& +'! the availability of the intrinsic function was determined to be not available at',& +'! configure time',& +'!',& +'! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *',& +'! 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',& +'! H5test_kind.f90',& +'!',& +'!*****' + +! Generate a program + + WRITE(*,*) "PROGRAM int_kind" + WRITE(*,*) "WRITE(*,*) "" /*generating header file*/ """ + ji = 0 + WRITE(*, "("" CALL i"", i2.2,""()"")") ji + jr = 0 + WRITE(*, "("" CALL r"", i2.2,""()"")") jr + jd = 0 + WRITE(*, "("" CALL d"", i2.2,""()"")") jd + DO i = 1, ii + j = ikind_numbers(i) + WRITE(*, "("" CALL i"", i2.2,""()"")") j + ENDDO + DO i = 1, ir + j = rkind_numbers(i) + WRITE(*, "("" CALL r"", i2.2,""()"")") j + 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(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(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(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(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(jchr2,'(I2)')",ji + WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_NATIVE_16_KIND "'//"//ADJUSTL(jchr2)" + WRITE(*,*)" ENDIF" + WRITE(*,*)" RETURN" + WRITE(*,*)"END SUBROUTINE" + 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(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(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(jchr2,'(I2)')",jr + WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_REAL_NATIVE_16_KIND "'//"//ADJUSTL(jchr2)" + WRITE(*,*)" ENDIF" + WRITE(*,*)" RETURN" + WRITE(*,*)"END SUBROUTINE" + 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(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(jchr2,'(I2)')",jd + WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_DOUBLE_NATIVE_16_KIND "'//"//ADJUSTL(jchr2)" + WRITE(*,*)" ENDIF" + 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 = 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(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(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(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(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(jchr2,'(I2)')",j + WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_INTEGER_16_KIND "'//"//ADJUSTL(jchr2)" + WRITE(*,*)" ENDIF" + WRITE(*,*)" RETURN" + WRITE(*,*)" END SUBROUTINE" + ENDDO + DO i = 1, ir + j = rkind_numbers(i) + WRITE(*, "("" SUBROUTINE r"", i2.2,""()"")") j + WRITE(*,*)" IMPLICIT NONE" + WRITE(*,*)" REAL(KIND=",j,") :: 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(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(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(jchr2,'(I2)')",j + WRITE(*,'(A)')' WRITE(*,*) "#define H5_FORTRAN_HAS_REAL_16_KIND "'//"//ADJUSTL(jchr2)" + WRITE(*,*)" ENDIF" + WRITE(*,*)" RETURN" + WRITE(*,*)" END SUBROUTINE" + ENDDO +END PROGRAM test_kind + + + diff --git a/fortran/src/H5test_kind_SIZEOF.f90 b/fortran/src/H5test_kind_SIZEOF.f90 new file mode 100644 index 0000000..468086a --- /dev/null +++ b/fortran/src/H5test_kind_SIZEOF.f90 @@ -0,0 +1,228 @@ +!****p* Program/H5test_kind_SIZEOF +! +! NAME +! Executable: H5test_kind +! +! 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 +! depending on which of the KIND values are found. +! +! NOTES +! This program is used in place of H5test_kind.f90 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 but is not standard +! compliant. The program H5test_kind_C_SIZEOF uses F2008 standard intrinsic +! function instead, which is the preferred method. +! +! The availability of SIZEOF is checked at configure time and the TRUE/FALSE +! 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. * +! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +! +! AUTHOR +! M. Scot Breitenfeld +! +!***** + +PROGRAM test_kind + IMPLICIT NONE + INTEGER :: i, j, ii, ir, last, ikind_numbers(10), rkind_numbers(10) + INTEGER :: ji, jr, jd + last = -1 + ii = 0 + + ikind_numbers = 0 + rkind_numbers = 0 + + DO i = 1,100 + j = SELECTED_INT_KIND(i) + IF(j .NE. last) THEN + IF(last .NE. -1) THEN + ii = ii + 1 + ikind_numbers(ii) = last + ENDIF + last = j + IF(j .EQ. -1) EXIT + ENDIF + ENDDO + + last = -1 + ir = 0 + DO i = 1,100 + j = SELECTED_REAL_KIND(i) + IF(j .NE. last) THEN + IF(last .NE. -1) THEN + ir = ir + 1 + rkind_numbers(ir) = last + ENDIF + last = j + IF(j .EQ. -1) EXIT + ENDIF + ENDDO + +! Generate program information: + +WRITE(*,'(40(A,/))') & +'!****h* ROBODoc/H5fortran_detect.f90',& +'!',& +'! NAME',& +'! H5fortran_detect',& +'! ',& +'! 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',& +'!',& +'! NOTES',& +'! This source code makes use of the Fortran intrinsic function SIZEOF because',& +'! the availability of the intrinsic function was determined to be available at',& +'! configure time',& +'!',& +'! 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. *',& +'! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *',& +'!',& +'! AUTHOR',& +'! H5test_kind_SIZEOF.f90',& +'!',& +'!*****' + +! GENERATE A PROGRAM +! +! (a) Generate the module + + WRITE(*,*) "MODULE H5test_kind_SIZEOF_mod" + WRITE(*,*) "USE ISO_C_BINDING" + WRITE(*,*) "IMPLICIT NONE" + WRITE(*,*) "CONTAINS" + j = 0 + ji = KIND(1) + WRITE(*, "("" SUBROUTINE i"", i2.2,""()"")") j + WRITE(*,*)" IMPLICIT NONE" + WRITE(*,*)" INTEGER :: a" + WRITE(*,*)" INTEGER(C_SIZE_T) :: a_size" + WRITE(*,*)" CHARACTER(LEN=2) :: ichr2, jchr2" + WRITE(*,*)" a_size = SIZEOF(a)" + WRITE(*,*)" WRITE(ichr2,'(I2)') a_size" + 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 + j = KIND(1.0) + WRITE(*, "("" SUBROUTINE r"", i2.2,""()"")") jr + WRITE(*,*)" IMPLICIT NONE" + WRITE(*,*)" REAL :: a" + WRITE(*,*)" INTEGER(C_SIZE_T) :: a_size" + WRITE(*,*)" CHARACTER(LEN=2) :: ichr2, jchr2" + WRITE(*,*)" a_size = SIZEOF(a)" + WRITE(*,*)" WRITE(ichr2,'(I2)') a_size" + 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(C_SIZE_T) :: a_size" + WRITE(*,*)" CHARACTER(LEN=2) :: ichr2, jchr2" + WRITE(*,*)" a_size = SIZEOF(a)" + WRITE(*,*)" WRITE(ichr2,'(I2)') a_size" + 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(*,'(A,I0,A)')" INTEGER(KIND=",j,") :: a" + WRITE(*,*)" INTEGER(C_SIZE_T) :: a_size" + WRITE(*,*)" CHARACTER(LEN=2) :: ichr2, jchr2" + WRITE(*,*)" a_size = SIZEOF(a)" + WRITE(*,*)" WRITE(ichr2,'(I2)') a_size" + 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 + DO i = 1, ir + j = rkind_numbers(i) + WRITE(*, "("" SUBROUTINE r"", i2.2,""()"")") j + WRITE(*,*)" IMPLICIT NONE" + WRITE(*,'(A,I0,A)')" REAL(KIND= ",j,") :: a" + WRITE(*,*)" INTEGER(C_SIZE_T) :: a_size" + WRITE(*,*)" CHARACTER(LEN=2) :: ichr2, jchr2" + WRITE(*,*)" a_size = SIZEOF(a)" + WRITE(*,*)" WRITE(ichr2,'(I2)') a_size" + 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 + WRITE(*,*) "END MODULE H5test_kind_SIZEOF_mod" + WRITE(*,*) "" + + ! (b) generate the main program + + WRITE(*,*) "PROGRAM H5test_kind_SIZEOF" + WRITE(*,*) "USE H5test_kind_SIZEOF_mod" + WRITE(*,*) "WRITE(*,*) "" /*generating header file*/ """ + ji = 0 + WRITE(*, "("" CALL i"", i2.2,""()"")") ji + jr = 0 + WRITE(*, "("" CALL r"", i2.2,""()"")") jr + jd = 0 + WRITE(*, "("" CALL d"", i2.2,""()"")") jd + DO i = 1, ii + j = ikind_numbers(i) + WRITE(*, "("" CALL i"", i2.2,""()"")") j + ENDDO + DO i = 1, ir + j = rkind_numbers(i) + WRITE(*, "("" CALL r"", i2.2,""()"")") j + ENDDO + WRITE(*,*) "END PROGRAM H5test_kind_SIZEOF" + +END PROGRAM test_kind + + + diff --git a/fortran/src/H5test_kind_STORAGE_SIZE.f90 b/fortran/src/H5test_kind_STORAGE_SIZE.f90 new file mode 100644 index 0000000..89c904c --- /dev/null +++ b/fortran/src/H5test_kind_STORAGE_SIZE.f90 @@ -0,0 +1,230 @@ +!****p* Program/H5test_kind_STORAGE_SIZE +! +! NAME +! Executable: H5test_kind +! +! FILE +! fortran/src/H5test_kind_STORAGE_SIZE.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 +! depending on which of the KIND values are found. +! +! NOTES +! This program is used in place of H5test_kind.f90 or H5test_kind_SIZEOF.f90 when +! the Fortran 2008 intrinsic function STORAGE_SIZE is available. It generates code +! that makes use of STORAGE_SIZE in H5fortran_detect.f90, which will be standard +! compliant. This program is the preferred method. +! +! The availability of STORAGE_SIZE is checked at configure time and the TRUE/FALSE +! condition is set in the configure variable "FORTRAN_HAVE_STORAGE_SIZE". +! +! The use of C_SIZOF(X) is not used since the argument X must be an interoperable +! data entity. +! +! 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. * +! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +! +! AUTHOR +! M. Scot Breitenfeld +! +!***** + +PROGRAM test_kind + IMPLICIT NONE + INTEGER :: i, j, ii, ir, last, ikind_numbers(10), rkind_numbers(10) + INTEGER :: ji, jr, jd + last = -1 + ii = 0 + + ikind_numbers = 0 + rkind_numbers = 0 + + DO i = 1,100 + j = SELECTED_INT_KIND(i) + IF(j .NE. last) THEN + IF(last .NE. -1) THEN + ii = ii + 1 + ikind_numbers(ii) = last + ENDIF + last = j + IF(j .EQ. -1) EXIT + ENDIF + ENDDO + + last = -1 + ir = 0 + DO i = 1,100 + j = SELECTED_REAL_KIND(i) + IF(j .NE. last) THEN + IF(last .NE. -1) THEN + ir = ir + 1 + rkind_numbers(ir) = last + ENDIF + last = j + IF(j .EQ. -1) EXIT + ENDIF + ENDDO + +! Generate program information: + +WRITE(*,'(40(A,/))') & +'!****h* ROBODoc/H5fortran_detect.f90',& +'!',& +'! NAME',& +'! H5fortran_detect',& +'! ',& +'! 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_STORAGE_SIZE.f90',& +'!',& +'! NOTES',& +'! This source code makes use of the Fortran intrinsic function STORAGE_SIZE because',& +'! the availability of the intrinsic function was determined to be available at',& +'! configure time',& +'!',& +'! 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. *',& +'! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *',& +'!',& +'! AUTHOR',& +'! H5test_kind_C_SIZEOF.f90',& +'!',& +'!*****' + +! GENERATE A PROGRAM +! +! (a) Generate the module + + WRITE(*,*) "MODULE H5test_kind_STORAGE_SIZE_mod" + WRITE(*,*) "USE ISO_C_BINDING" + WRITE(*,*) "IMPLICIT NONE" + WRITE(*,*) "CONTAINS" + j = 0 + ji = KIND(1) + WRITE(*, "("" SUBROUTINE i"", i2.2,""()"")") j + WRITE(*,*)" IMPLICIT NONE" + WRITE(*,*)" INTEGER :: a" + WRITE(*,*)" INTEGER(C_SIZE_T) :: a_size" + WRITE(*,*)" CHARACTER(LEN=2) :: ichr2, jchr2" + WRITE(*,*)" a_size = STORAGE_SIZE(a, c_size_t)/STORAGE_SIZE(c_char_'a',c_size_t)" + WRITE(*,*)" WRITE(ichr2,'(I2)') a_size" + 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 + j = KIND(1.0) + WRITE(*, "("" SUBROUTINE r"", i2.2,""()"")") jr + WRITE(*,*)" IMPLICIT NONE" + WRITE(*,*)" REAL :: a" + WRITE(*,*)" INTEGER(C_SIZE_T) :: a_size" + WRITE(*,*)" CHARACTER(LEN=2) :: ichr2, jchr2" + WRITE(*,*)" a_size = STORAGE_SIZE(a, c_size_t)/STORAGE_SIZE(c_char_'a',c_size_t)" + WRITE(*,*)" WRITE(ichr2,'(I2)') a_size" + 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(C_SIZE_T) :: a_size" + WRITE(*,*)" CHARACTER(LEN=2) :: ichr2, jchr2" + WRITE(*,*)" a_size = STORAGE_SIZE(a, c_size_t)/STORAGE_SIZE(c_char_'a',c_size_t)" + WRITE(*,*)" WRITE(ichr2,'(I2)') a_size" + 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(*,'(A,I0,A)')" INTEGER(KIND=",j,") :: a" + WRITE(*,*)" INTEGER(C_SIZE_T) :: a_size" + WRITE(*,*)" CHARACTER(LEN=2) :: ichr2, jchr2" + WRITE(*,*)" a_size = STORAGE_SIZE(a, c_size_t)/STORAGE_SIZE(c_char_'a',c_size_t)" + WRITE(*,*)" WRITE(ichr2,'(I2)') a_size" + 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 + DO i = 1, ir + j = rkind_numbers(i) + WRITE(*, "("" SUBROUTINE r"", i2.2,""()"")") j + WRITE(*,*)" IMPLICIT NONE" + WRITE(*,'(A,I0,A)')" REAL(KIND= ",j,") :: a" + WRITE(*,*)" INTEGER(C_SIZE_T) :: a_size" + WRITE(*,*)" CHARACTER(LEN=2) :: ichr2, jchr2" + WRITE(*,*)" a_size = STORAGE_SIZE(a, c_size_t)/STORAGE_SIZE(c_char_'a',c_size_t)" + WRITE(*,*)" WRITE(ichr2,'(I2)') a_size" + 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 + WRITE(*,*) "END MODULE H5test_kind_STORAGE_SIZE_mod" + WRITE(*,*) "" + + ! (b) generate the main program + + WRITE(*,*) "PROGRAM H5test_kind_STORAGE_SIZE" + WRITE(*,*) "USE H5test_kind_STORAGE_SIZE_mod" + WRITE(*,*) "WRITE(*,*) "" /*generating header file*/ """ + ji = 0 + WRITE(*, "("" CALL i"", i2.2,""()"")") ji + jr = 0 + WRITE(*, "("" CALL r"", i2.2,""()"")") jr + jd = 0 + WRITE(*, "("" CALL d"", i2.2,""()"")") jd + DO i = 1, ii + j = ikind_numbers(i) + WRITE(*, "("" CALL i"", i2.2,""()"")") j + ENDDO + DO i = 1, ir + j = rkind_numbers(i) + WRITE(*, "("" CALL r"", i2.2,""()"")") j + ENDDO + WRITE(*,*) "END PROGRAM H5test_kind_STORAGE_SIZE" + +END PROGRAM test_kind + + + diff --git a/fortran/src/HDF5.F90 b/fortran/src/HDF5.f90 index 64f5be6..75af333 100644 --- a/fortran/src/HDF5.F90 +++ b/fortran/src/HDF5.f90 @@ -26,21 +26,31 @@ ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! !***** + MODULE HDF5 USE H5GLOBAL USE H5F + USE H5F_PROVISIONAL 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_gen + USE H5_DBLE_INTERFACE USE H5LIB END MODULE HDF5 diff --git a/fortran/src/HDF5mpio.f90 b/fortran/src/HDF5mpio.f90 new file mode 100644 index 0000000..b8fb645 --- /dev/null +++ b/fortran/src/HDF5mpio.f90 @@ -0,0 +1,55 @@ +!****h* ROBODoc/HDF5 (mpio) +! +! 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 H5F_PROVISIONAL + 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 734f46e..a4b3843 100644 --- a/fortran/src/Makefile.am +++ b/fortran/src/Makefile.am @@ -42,13 +42,42 @@ else AM_LDFLAGS+=-static endif +# Include HDF5.f90 if parallel is disabled, HDF5mpiof* if parallel is enabled +if BUILD_PARALLEL_CONDITIONAL + PARALLEL_COND_SRC = H5FDmpiof.c HDF5mpio.f90 H5FDmpioff.f90 +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 +# DOUBLE PRECISION since this would lead to a non-unique conflict with the +# generic interfaces declared as REAL. +if FORTRAN_DEFAULT_REALisDBLE_F + F_DBLE = Exclude +else + F_DBLE = Include +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_gen.f90 \ +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 HDF5.f90 + 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 H5Fff$(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) @@ -57,10 +86,11 @@ libhdf5_fortran_la_LIBADD=$(LIBHDF5) # Remove it only when distclean. DISTCLEANFILES=h5fc -# H5fortran_types.F90 and H5f90i.h are automatically generaed by +# H5fortran_types.f90 and H5f90i.h are automatically generaed by # H5match_types, and must be cleaned explicitly. H5fort_type_defines.h # is generated by H5fortran_detect -MOSTLYCLEANFILES=H5fortran_types.F90 H5f90i_gen.h H5fort_type_defines.h +MOSTLYCLEANFILES=H5fortran_types.f90 H5f90i_gen.h H5fort_type_defines.h \ + H5fortran_detect.f90 # Fortran module files can have different extensions and different names # (e.g., different capitalizations) on different platforms. Write rules @@ -106,35 +136,55 @@ endif # programs. # It's a bit tricky to make sure that Automake builds things in the right # order (especially when using 'gmake -j ...') -# H5_buildiface is compiled and run to produce H5_gen.F90. -# H5match_types.c then includes H5fort_type_defines.h and can be compiled into +# H5test_kind is compiled and run to produce H5fortran_detect.f90. +# H5fortran_detect is compiled and run to produce H5fort_type_defines.h. +# H5match_types.c then includes this file and can be compiled into # H5match_types. When H5match_types is run, it creates H5f90i_gen.h -# and H5fortran_types.F90, which are included in the Fortran library. +# and H5fortran_types.f90, which are included in the Fortran library. # These are the helper programs we need to build. -noinst_PROGRAMS = H5match_types H5_buildiface +noinst_PROGRAMS = H5match_types H5fortran_detect H5test_kind # Tell Automake to create H5f90i_gen.h before it builds the library # sources. When it creates H5f90i_gen.h, it will create -# H5fortran_types.F90 as a side effect. +# H5fortran_types.f90 as a side effect. BUILT_SOURCES = H5f90i_gen.h #Specify what Automake needs to create: first the H5fort_type_defines.h # header, then H5match_types which includes that header, then # it needs to run H5match_types. -H5fortran_types.F90 H5f90i_gen.h: H5match_types$(EXEEXT) +H5fortran_types.f90 H5f90i_gen.h: H5match_types$(EXEEXT) $(RUNSERIAL) ./H5match_types$(EXEEXT) -# H5_buildiface.F90 generates all the APIs that have a KIND type associated -# with them. +# H5fort_type_defines.h is created by running H5fortran_detect. +# Obviously, H5fortran_detect needs to be built first. +H5fort_type_defines.h: H5fortran_detect$(EXEEXT) + $(RUNSERIAL) ./H5fortran_detect$(EXEEXT) > H5fort_type_defines.h + +H5match_types.$(OBJEXT): H5fort_type_defines.h + +# Automake knows how to build fortran programs if we tell it the source +# files. +H5fortran_detect_SOURCES = H5fortran_detect.f90 -H5_gen.F90: H5_buildiface$(EXEEXT) - $(RUNSERIAL) ./H5_buildiface$(EXEEXT) +# H5test_kind.f90 generates H5Fortran_detect.f90 depending on if +# intrinsic function SIZEOF is available. -# H5_buildiface.F90 is included in the distribution, and Automake knows +H5fortran_detect.f90: H5test_kind$(EXEEXT) + $(RUNSERIAL) ./H5test_kind$(EXEEXT) > H5fortran_detect.f90 + +# H5test_kind.f90 is included in the distribution, and Automake knows # how to compile a fortran program given its sources. -H5_buildiface_SOURCES = H5_buildiface.F90 +if FORTRAN_HAVE_STORAGE_SIZE + H5test_kind_SOURCES = H5test_kind_STORAGE_SIZE.f90 +else +if FORTRAN_HAVE_SIZEOF + H5test_kind_SOURCES = H5test_kind_SIZEOF.f90 +else + H5test_kind_SOURCES = H5test_kind.f90 +endif +endif # Mark this directory as part of the Fortran API FORTRAN_API=yes @@ -143,28 +193,51 @@ FORTRAN_API=yes # determining this automagically (like we do with the C files). So, when # doing a parallel make, some modules could be made way before the # modules they depend upon are actually made. *sigh* -H5f90global.lo: $(srcdir)/H5f90global.F90 H5fortran_types.lo -H5_buildiface.lo: $(srcdir)/H5_buildiface.F90 -H5_ff.lo: $(srcdir)/H5_ff.F90 H5f90global.lo -H5Aff.lo: $(srcdir)/H5Aff.F90 H5f90global.lo -H5Dff.lo: $(srcdir)/H5Dff.F90 H5f90global.lo -H5Eff.lo: $(srcdir)/H5Eff.F90 H5f90global.lo -H5Fff.lo: $(srcdir)/H5Fff.F90 H5f90global.lo -H5Gff.lo: $(srcdir)/H5Gff.F90 H5f90global.lo -H5Iff.lo: $(srcdir)/H5Iff.F90 H5f90global.lo -H5Lff.lo: $(srcdir)/H5Lff.F90 H5f90global.lo -H5Off.lo: $(srcdir)/H5Off.F90 H5f90global.lo -H5Pff.lo: $(srcdir)/H5Pff.F90 H5f90global.lo -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_gen.lo: H5_gen.F90 H5f90global.lo H5Aff.lo H5Dff.lo H5Pff.lo -HDF5.lo: $(srcdir)/HDF5.F90 H5f90global.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_gen.lo +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 +H5test_kind_SIZEOF.lo: $(srcdir)/H5test_kind_SIZEOF.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 +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 +H5Fff$(F_STATUS).lo: $(srcdir)/H5Fff$(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 +H5Iff.lo: $(srcdir)/H5Iff.f90 H5f90global.lo +H5Lff.lo: $(srcdir)/H5Lff.f90 H5f90global.lo +H5Off.lo: $(srcdir)/H5Off.f90 H5f90global.lo +H5Pff.lo: $(srcdir)/H5Pff.f90 H5f90global.lo +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$(F_STATUS).lo H5Dff$(F_STATUS).lo H5Fff$(F_STATUS).lo H5Eff$(F_STATUS).lo H5Pff$(F_STATUS).lo +HDF5.lo: $(srcdir)/HDF5.f90 H5f90global.lo H5_ff$(F_STATUS).lo H5_ff.lo H5Aff.lo H5Aff$(F_STATUS).lo \ + H5Dff.lo H5Dff$(F_STATUS).lo \ + H5Eff.lo H5Eff$(F_STATUS).lo \ + H5Fff.lo H5Fff$(F_STATUS).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 H5_ff$(F_STATUS).lo H5_ff.lo \ + H5Aff.lo H5Aff$(F_STATUS).lo \ + H5Dff.lo H5Dff$(F_STATUS).lo \ + H5Eff.lo H5Eff$(F_STATUS).lo \ + H5Fff.lo H5Fff$(F_STATUS).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 9a1ce4f..aba85ec 100644 --- a/fortran/src/Makefile.in +++ b/fortran/src/Makefile.in @@ -99,16 +99,16 @@ host_triplet = @host@ DIST_COMMON = $(top_srcdir)/config/commence.am \ $(top_srcdir)/config/lt_vers.am \ $(top_srcdir)/config/conclude.am $(srcdir)/Makefile.in \ - $(srcdir)/Makefile.am $(srcdir)/H5config_f.inc.in \ - $(top_srcdir)/bin/mkinstalldirs $(srcdir)/h5fc.in \ - $(srcdir)/H5fort_type_defines.h.in $(top_srcdir)/bin/depcomp \ + $(srcdir)/Makefile.am $(top_srcdir)/bin/mkinstalldirs \ + $(srcdir)/h5fc.in $(top_srcdir)/bin/depcomp \ $(top_srcdir)/bin/test-driver README # Some Fortran compilers can't build shared libraries, so sometimes we # 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 -noinst_PROGRAMS = H5match_types$(EXEEXT) H5_buildiface$(EXEEXT) +noinst_PROGRAMS = H5match_types$(EXEEXT) H5fortran_detect$(EXEEXT) \ + H5test_kind$(EXEEXT) TESTS = subdir = fortran/src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -117,8 +117,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/src/H5config.h H5config_f.inc -CONFIG_CLEAN_FILES = h5fc H5fort_type_defines.h +CONFIG_HEADER = $(top_builddir)/src/H5config.h +CONFIG_CLEAN_FILES = h5fc CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ @@ -150,12 +150,30 @@ am__uninstall_files_from_dir = { \ 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$(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 H5Fff$(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_gen.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 HDF5.lo + 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 H5Fff$(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_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -166,12 +184,19 @@ libhdf5_fortran_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=FC \ $(AM_FCFLAGS) $(FCFLAGS) $(libhdf5_fortran_la_LDFLAGS) \ $(LDFLAGS) -o $@ PROGRAMS = $(noinst_PROGRAMS) -am_H5_buildiface_OBJECTS = H5_buildiface.$(OBJEXT) -H5_buildiface_OBJECTS = $(am_H5_buildiface_OBJECTS) -H5_buildiface_LDADD = $(LDADD) +am_H5fortran_detect_OBJECTS = H5fortran_detect.$(OBJEXT) +H5fortran_detect_OBJECTS = $(am_H5fortran_detect_OBJECTS) +H5fortran_detect_LDADD = $(LDADD) H5match_types_SOURCES = H5match_types.c H5match_types_OBJECTS = H5match_types.$(OBJEXT) H5match_types_LDADD = $(LDADD) +am__H5test_kind_SOURCES_DIST = H5test_kind.f90 H5test_kind_SIZEOF.f90 \ + H5test_kind_STORAGE_SIZE.f90 +@FORTRAN_HAVE_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@am_H5test_kind_OBJECTS = H5test_kind.$(OBJEXT) +@FORTRAN_HAVE_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@am_H5test_kind_OBJECTS = H5test_kind_SIZEOF.$(OBJEXT) +@FORTRAN_HAVE_STORAGE_SIZE_TRUE@am_H5test_kind_OBJECTS = H5test_kind_STORAGE_SIZE.$(OBJEXT) +H5test_kind_OBJECTS = $(am_H5test_kind_OBJECTS) +H5test_kind_LDADD = $(LDADD) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -188,24 +213,6 @@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src depcomp = $(SHELL) $(top_srcdir)/bin/depcomp am__depfiles_maybe = depfiles am__mv = mv -f -PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -LTPPFCCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=FC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(FC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_FCFLAGS) $(FCFLAGS) -AM_V_PPFC = $(am__v_PPFC_@AM_V@) -am__v_PPFC_ = $(am__v_PPFC_@AM_DEFAULT_V@) -am__v_PPFC_0 = @echo " PPFC " $@; -am__v_PPFC_1 = -FCLD = $(FC) -FCLINK = $(LIBTOOL) $(AM_V_lt) --tag=FC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_FCLD = $(am__v_FCLD_@AM_V@) -am__v_FCLD_ = $(am__v_FCLD_@AM_DEFAULT_V@) -am__v_FCLD_0 = @echo " FCLD " $@; -am__v_FCLD_1 = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ @@ -231,17 +238,25 @@ AM_V_FC = $(am__v_FC_@AM_V@) am__v_FC_ = $(am__v_FC_@AM_DEFAULT_V@) am__v_FC_0 = @echo " FC " $@; am__v_FC_1 = -SOURCES = $(libhdf5_fortran_la_SOURCES) $(H5_buildiface_SOURCES) \ - H5match_types.c -DIST_SOURCES = $(libhdf5_fortran_la_SOURCES) $(H5_buildiface_SOURCES) \ - H5match_types.c +FCLD = $(FC) +FCLINK = $(LIBTOOL) $(AM_V_lt) --tag=FC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_FCLD = $(am__v_FCLD_@AM_V@) +am__v_FCLD_ = $(am__v_FCLD_@AM_DEFAULT_V@) +am__v_FCLD_0 = @echo " FCLD " $@; +am__v_FCLD_1 = +SOURCES = $(libhdf5_fortran_la_SOURCES) $(H5fortran_detect_SOURCES) \ + H5match_types.c $(H5test_kind_SOURCES) +DIST_SOURCES = $(am__libhdf5_fortran_la_SOURCES_DIST) \ + $(H5fortran_detect_SOURCES) H5match_types.c \ + $(am__H5test_kind_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ - $(LISP)H5config_f.inc.in +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. @@ -498,21 +513,14 @@ F9XMODEXT = @F9XMODEXT@ F9XMODFLAG = @F9XMODFLAG@ F9XSUFFIXFLAG = @F9XSUFFIXFLAG@ FC = @FC@ +FC2003 = @FC2003@ FCFLAGS = @FCFLAGS@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FORTRAN_C_LONG_DOUBLE_IS_UNIQUE = @FORTRAN_C_LONG_DOUBLE_IS_UNIQUE@ -FORTRAN_HAVE_C_LONG_DOUBLE = @FORTRAN_HAVE_C_LONG_DOUBLE@ -FORTRAN_SIZEOF_LONG_DOUBLE = @FORTRAN_SIZEOF_LONG_DOUBLE@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ -H5CONFIG_F_IKIND = @H5CONFIG_F_IKIND@ -H5CONFIG_F_NUM_IKIND = @H5CONFIG_F_NUM_IKIND@ -H5CONFIG_F_NUM_RKIND = @H5CONFIG_F_NUM_RKIND@ -H5CONFIG_F_RKIND = @H5CONFIG_F_RKIND@ -H5CONFIG_F_RKIND_SIZEOF = @H5CONFIG_F_RKIND_SIZEOF@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ @@ -522,12 +530,13 @@ H5_LDFLAGS = @H5_LDFLAGS@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ -HAVE_Fortran_INTEGER_SIZEOF_16 = @HAVE_Fortran_INTEGER_SIZEOF_16@ +HAVE_FORTRAN_2003 = @HAVE_FORTRAN_2003@ HAVE_PTHREAD = @HAVE_PTHREAD@ 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@ @@ -569,18 +578,6 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ -PAC_C_MAX_REAL_PRECISION = @PAC_C_MAX_REAL_PRECISION@ -PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ -PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ -PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ -PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ -PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ -PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ -PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ -PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ -PAC_FORTRAN_NATIVE_INTEGER_SIZEOF = @PAC_FORTRAN_NATIVE_INTEGER_SIZEOF@ -PAC_FORTRAN_NATIVE_REAL_KIND = @PAC_FORTRAN_NATIVE_REAL_KIND@ -PAC_FORTRAN_NATIVE_REAL_SIZEOF = @PAC_FORTRAN_NATIVE_REAL_SIZEOF@ PARALLEL = @PARALLEL@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ @@ -736,14 +733,34 @@ lib_LTLIBRARIES = libhdf5_fortran.la # Add libtool numbers to the HDF5 Fortran library (from config/lt_vers.am) libhdf5_fortran_la_LDFLAGS = -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS) +@BUILD_PARALLEL_CONDITIONAL_FALSE@PARALLEL_COND_SRC = HDF5.f90 + +# 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 +# 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. +@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_gen.f90 \ +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 HDF5.f90 + 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 H5Fff$(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. @@ -753,10 +770,12 @@ libhdf5_fortran_la_LIBADD = $(LIBHDF5) # Remove it only when distclean. DISTCLEANFILES = h5fc -# H5fortran_types.F90 and H5f90i.h are automatically generaed by +# H5fortran_types.f90 and H5f90i.h are automatically generaed by # H5match_types, and must be cleaned explicitly. H5fort_type_defines.h # is generated by H5fortran_detect -MOSTLYCLEANFILES = H5fortran_types.F90 H5f90i_gen.h H5fort_type_defines.h +MOSTLYCLEANFILES = H5fortran_types.f90 H5f90i_gen.h H5fort_type_defines.h \ + H5fortran_detect.f90 + @BUILD_PARALLEL_CONDITIONAL_FALSE@H5FC_NAME = h5fc # Custom rule for installing h5fc, since it will be named h5pfc if hdf5 @@ -765,12 +784,18 @@ MOSTLYCLEANFILES = H5fortran_types.F90 H5f90i_gen.h H5fort_type_defines.h # Tell Automake to create H5f90i_gen.h before it builds the library # sources. When it creates H5f90i_gen.h, it will create -# H5fortran_types.F90 as a side effect. +# H5fortran_types.f90 as a side effect. BUILT_SOURCES = H5f90i_gen.h -# H5_buildiface.F90 is included in the distribution, and Automake knows +# Automake knows how to build fortran programs if we tell it the source +# files. +H5fortran_detect_SOURCES = H5fortran_detect.f90 +@FORTRAN_HAVE_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@H5test_kind_SOURCES = H5test_kind.f90 +@FORTRAN_HAVE_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@H5test_kind_SOURCES = H5test_kind_SIZEOF.f90 + +# H5test_kind.f90 is included in the distribution, and Automake knows # how to compile a fortran program given its sources. -H5_buildiface_SOURCES = H5_buildiface.F90 +@FORTRAN_HAVE_STORAGE_SIZE_TRUE@H5test_kind_SOURCES = H5test_kind_STORAGE_SIZE.f90 # Mark this directory as part of the Fortran API FORTRAN_API = yes @@ -794,11 +819,11 @@ TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_) TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_) TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chkexe_) TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chkexe_) -all: $(BUILT_SOURCES) H5config_f.inc +all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: -.SUFFIXES: .F90 .c .f90 .lo .log .o .obj .sh .sh$(EXEEXT) .trs +.SUFFIXES: .c .f90 .lo .log .o .obj .sh .sh$(EXEEXT) .trs $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/config/commence.am $(top_srcdir)/config/lt_vers.am $(top_srcdir)/config/conclude.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -830,21 +855,8 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): - -H5config_f.inc: stamp-h2 - @test -f $@ || rm -f stamp-h2 - @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h2 - -stamp-h2: $(srcdir)/H5config_f.inc.in $(top_builddir)/config.status - @rm -f stamp-h2 - cd $(top_builddir) && $(SHELL) ./config.status fortran/src/H5config_f.inc - -distclean-hdr: - -rm -f H5config_f.inc stamp-h2 h5fc: $(top_builddir)/config.status $(srcdir)/h5fc.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -H5fort_type_defines.h: $(top_builddir)/config.status $(srcdir)/H5fort_type_defines.h.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @@ -893,14 +905,18 @@ clean-noinstPROGRAMS: echo " rm -f" $$list; \ rm -f $$list -H5_buildiface$(EXEEXT): $(H5_buildiface_OBJECTS) $(H5_buildiface_DEPENDENCIES) $(EXTRA_H5_buildiface_DEPENDENCIES) - @rm -f H5_buildiface$(EXEEXT) - $(AM_V_FCLD)$(FCLINK) $(H5_buildiface_OBJECTS) $(H5_buildiface_LDADD) $(LIBS) +H5fortran_detect$(EXEEXT): $(H5fortran_detect_OBJECTS) $(H5fortran_detect_DEPENDENCIES) $(EXTRA_H5fortran_detect_DEPENDENCIES) + @rm -f H5fortran_detect$(EXEEXT) + $(AM_V_FCLD)$(FCLINK) $(H5fortran_detect_OBJECTS) $(H5fortran_detect_LDADD) $(LIBS) H5match_types$(EXEEXT): $(H5match_types_OBJECTS) $(H5match_types_DEPENDENCIES) $(EXTRA_H5match_types_DEPENDENCIES) @rm -f H5match_types$(EXEEXT) $(AM_V_CCLD)$(LINK) $(H5match_types_OBJECTS) $(H5match_types_LDADD) $(LIBS) +H5test_kind$(EXEEXT): $(H5test_kind_OBJECTS) $(H5test_kind_DEPENDENCIES) $(EXTRA_H5test_kind_DEPENDENCIES) + @rm -f H5test_kind$(EXEEXT) + $(AM_V_FCLD)$(FCLINK) $(H5test_kind_OBJECTS) $(H5test_kind_LDADD) $(LIBS) + mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -910,6 +926,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Af.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Df.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Ef.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5FDmpiof.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Ff.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Gf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5If.Plo@am__quote@ @@ -924,15 +941,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5f90kit.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5match_types.Po@am__quote@ -.F90.o: - $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $< - -.F90.obj: - $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.F90.lo: - $(AM_V_PPFC)$(LTPPFCCOMPILE) -c -o $@ $< - .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @@ -1200,7 +1208,7 @@ check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am -all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) H5config_f.inc all-local +all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) all-local installdirs: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ @@ -1251,7 +1259,7 @@ distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ - distclean-hdr distclean-local distclean-tags + distclean-local distclean-tags dvi: dvi-am @@ -1320,14 +1328,14 @@ uninstall-am: uninstall-libLTLIBRARIES uninstall-local check-am clean clean-generic clean-libLTLIBRARIES \ clean-libtool clean-local clean-noinstPROGRAMS cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ - distclean-hdr distclean-libtool distclean-local distclean-tags \ - distdir dvi dvi-am html html-am info info-am install \ - install-am install-data install-data-am install-data-local \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-exec-local install-html install-html-am install-info \ - install-info-am install-libLTLIBRARIES install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ + distclean-libtool distclean-local distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-data-local install-dvi \ + install-dvi-am install-exec install-exec-am install-exec-local \ + install-html install-html-am install-info install-info-am \ + install-libLTLIBRARIES install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ maintainer-clean-generic maintainer-clean-local mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ mostlyclean-local pdf pdf-am ps ps-am recheck tags tags-am \ @@ -1393,42 +1401,72 @@ install-exec-local: #Specify what Automake needs to create: first the H5fort_type_defines.h # header, then H5match_types which includes that header, then # it needs to run H5match_types. -H5fortran_types.F90 H5f90i_gen.h: H5match_types$(EXEEXT) +H5fortran_types.f90 H5f90i_gen.h: H5match_types$(EXEEXT) $(RUNSERIAL) ./H5match_types$(EXEEXT) -# H5_buildiface.F90 generates all the APIs that have a KIND type associated -# with them. +# H5fort_type_defines.h is created by running H5fortran_detect. +# Obviously, H5fortran_detect needs to be built first. +H5fort_type_defines.h: H5fortran_detect$(EXEEXT) + $(RUNSERIAL) ./H5fortran_detect$(EXEEXT) > H5fort_type_defines.h + +H5match_types.$(OBJEXT): H5fort_type_defines.h + +# H5test_kind.f90 generates H5Fortran_detect.f90 depending on if +# intrinsic function SIZEOF is available. -H5_gen.F90: H5_buildiface$(EXEEXT) - $(RUNSERIAL) ./H5_buildiface$(EXEEXT) +H5fortran_detect.f90: H5test_kind$(EXEEXT) + $(RUNSERIAL) ./H5test_kind$(EXEEXT) > H5fortran_detect.f90 # Hardcode the dependencies of these files. There isn't a known way of # determining this automagically (like we do with the C files). So, when # doing a parallel make, some modules could be made way before the # modules they depend upon are actually made. *sigh* -H5f90global.lo: $(srcdir)/H5f90global.F90 H5fortran_types.lo -H5_buildiface.lo: $(srcdir)/H5_buildiface.F90 -H5_ff.lo: $(srcdir)/H5_ff.F90 H5f90global.lo -H5Aff.lo: $(srcdir)/H5Aff.F90 H5f90global.lo -H5Dff.lo: $(srcdir)/H5Dff.F90 H5f90global.lo -H5Eff.lo: $(srcdir)/H5Eff.F90 H5f90global.lo -H5Fff.lo: $(srcdir)/H5Fff.F90 H5f90global.lo -H5Gff.lo: $(srcdir)/H5Gff.F90 H5f90global.lo -H5Iff.lo: $(srcdir)/H5Iff.F90 H5f90global.lo -H5Lff.lo: $(srcdir)/H5Lff.F90 H5f90global.lo -H5Off.lo: $(srcdir)/H5Off.F90 H5f90global.lo -H5Pff.lo: $(srcdir)/H5Pff.F90 H5f90global.lo -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_gen.lo: H5_gen.F90 H5f90global.lo H5Aff.lo H5Dff.lo H5Pff.lo -HDF5.lo: $(srcdir)/HDF5.F90 H5f90global.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_gen.lo +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 +H5test_kind_SIZEOF.lo: $(srcdir)/H5test_kind_SIZEOF.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 +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 +H5Fff$(F_STATUS).lo: $(srcdir)/H5Fff$(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 +H5Iff.lo: $(srcdir)/H5Iff.f90 H5f90global.lo +H5Lff.lo: $(srcdir)/H5Lff.f90 H5f90global.lo +H5Off.lo: $(srcdir)/H5Off.f90 H5f90global.lo +H5Pff.lo: $(srcdir)/H5Pff.f90 H5f90global.lo +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$(F_STATUS).lo H5Dff$(F_STATUS).lo H5Fff$(F_STATUS).lo H5Eff$(F_STATUS).lo H5Pff$(F_STATUS).lo +HDF5.lo: $(srcdir)/HDF5.f90 H5f90global.lo H5_ff$(F_STATUS).lo H5_ff.lo H5Aff.lo H5Aff$(F_STATUS).lo \ + H5Dff.lo H5Dff$(F_STATUS).lo \ + H5Eff.lo H5Eff$(F_STATUS).lo \ + H5Fff.lo H5Fff$(F_STATUS).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 H5_ff$(F_STATUS).lo H5_ff.lo \ + H5Aff.lo H5Aff$(F_STATUS).lo \ + H5Dff.lo H5Dff$(F_STATUS).lo \ + H5Eff.lo H5Eff$(F_STATUS).lo \ + H5Fff.lo H5Fff$(F_STATUS).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/src/hdf5_fortrandll.def.in b/fortran/src/hdf5_fortrandll.def.in index 7b218ca..48fb343 100644 --- a/fortran/src/hdf5_fortrandll.def.in +++ b/fortran/src/hdf5_fortrandll.def.in @@ -7,13 +7,99 @@ H5LIB_mp_H5CHECK_VERSION_F H5LIB_mp_H5GARBAGE_COLLECT_F H5LIB_mp_H5DONT_ATEXIT_F H5LIB_mp_H5KIND_TO_TYPE -H5LIB_mp_H5OFFSETOF +@H5_NOF03EXP@H5LIB_PROVISIONAL_mp_H5OFFSETOF +; H5_DBLE_INTERFACE +H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_SCALAR +H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_1 +H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_2 +H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_3 +H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_4 +H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_5 +H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_6 +H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_7 +H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_SCALAR +H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_1 +H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_2 +H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_3 +H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_4 +H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_5 +H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_6 +H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_7 +H5_DBLE_INTERFACE_mp_H5DFILL_DOUBLE +H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_SCALAR +H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_1 +H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_2 +H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_3 +H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_4 +H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_5 +H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_6 +H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_7 +H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_SCALAR +H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_1 +H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_2 +H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_3 +H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_4 +H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_5 +H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_6 +H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_7 +H5_DBLE_INTERFACE_mp_H5PGET_DOUBLE +H5_DBLE_INTERFACE_mp_H5PSET_DOUBLE +H5_DBLE_INTERFACE_mp_H5PSET_FILL_VALUE_DOUBLE +H5_DBLE_INTERFACE_mp_H5PGET_FILL_VALUE_DOUBLE +H5_DBLE_INTERFACE_mp_H5PINSERT_DOUBLE +H5_DBLE_INTERFACE_mp_H5PREGISTER_DOUBLE ; H5A -H5A_mp_H5AWRITE_CHAR_SCALAR -H5A_mp_H5AREAD_CHAR_SCALAR H5A_mp_H5ACREATE_F H5A_mp_H5AOPEN_NAME_F H5A_mp_H5AOPEN_IDX_F +H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_SCALAR +H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_1 +H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_2 +H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_3 +H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_4 +H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_5 +H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_6 +H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_7 +H5A_PROVISIONAL_mp_H5AWRITE_REAL_SCALAR +H5A_PROVISIONAL_mp_H5AWRITE_REAL_1 +H5A_PROVISIONAL_mp_H5AWRITE_REAL_2 +H5A_PROVISIONAL_mp_H5AWRITE_REAL_3 +H5A_PROVISIONAL_mp_H5AWRITE_REAL_4 +H5A_PROVISIONAL_mp_H5AWRITE_REAL_5 +H5A_PROVISIONAL_mp_H5AWRITE_REAL_6 +H5A_PROVISIONAL_mp_H5AWRITE_REAL_7 +H5A_PROVISIONAL_mp_H5AWRITE_CHAR_SCALAR +H5A_PROVISIONAL_mp_H5AWRITE_CHAR_1 +H5A_PROVISIONAL_mp_H5AWRITE_CHAR_2 +H5A_PROVISIONAL_mp_H5AWRITE_CHAR_3 +H5A_PROVISIONAL_mp_H5AWRITE_CHAR_4 +H5A_PROVISIONAL_mp_H5AWRITE_CHAR_5 +H5A_PROVISIONAL_mp_H5AWRITE_CHAR_6 +H5A_PROVISIONAL_mp_H5AWRITE_CHAR_7 +H5A_PROVISIONAL_mp_H5AREAD_INTEGER_SCALAR +H5A_PROVISIONAL_mp_H5AREAD_INTEGER_1 +H5A_PROVISIONAL_mp_H5AREAD_INTEGER_2 +H5A_PROVISIONAL_mp_H5AREAD_INTEGER_3 +H5A_PROVISIONAL_mp_H5AREAD_INTEGER_4 +H5A_PROVISIONAL_mp_H5AREAD_INTEGER_5 +H5A_PROVISIONAL_mp_H5AREAD_INTEGER_6 +H5A_PROVISIONAL_mp_H5AREAD_INTEGER_7 +H5A_PROVISIONAL_mp_H5AREAD_REAL_SCALAR +H5A_PROVISIONAL_mp_H5AREAD_REAL_1 +H5A_PROVISIONAL_mp_H5AREAD_REAL_2 +H5A_PROVISIONAL_mp_H5AREAD_REAL_3 +H5A_PROVISIONAL_mp_H5AREAD_REAL_4 +H5A_PROVISIONAL_mp_H5AREAD_REAL_5 +H5A_PROVISIONAL_mp_H5AREAD_REAL_6 +H5A_PROVISIONAL_mp_H5AREAD_REAL_7 +H5A_PROVISIONAL_mp_H5AREAD_CHAR_SCALAR +H5A_PROVISIONAL_mp_H5AREAD_CHAR_1 +H5A_PROVISIONAL_mp_H5AREAD_CHAR_2 +H5A_PROVISIONAL_mp_H5AREAD_CHAR_3 +H5A_PROVISIONAL_mp_H5AREAD_CHAR_4 +H5A_PROVISIONAL_mp_H5AREAD_CHAR_5 +H5A_PROVISIONAL_mp_H5AREAD_CHAR_6 +H5A_PROVISIONAL_mp_H5AREAD_CHAR_7 H5A_mp_H5AGET_SPACE_F H5A_mp_H5AGET_TYPE_F H5A_mp_H5AGET_NAME_F @@ -36,16 +122,64 @@ H5A_mp_H5AEXISTS_F H5A_mp_H5AEXISTS_BY_NAME_F H5A_mp_H5AOPEN_BY_NAME_F H5A_mp_H5ARENAME_F +@H5_NOF03EXP@H5A_PROVISIONAL_mp_H5AWRITE_PTR +@H5_NOF03EXP@H5A_PROVISIONAL_mp_H5AREAD_PTR ; H5D H5D_mp_H5DCREATE_F H5D_mp_H5DOPEN_F H5D_mp_H5DCLOSE_F -H5D_mp_H5DWRITE_REFERENCE_OBJ -H5D_mp_H5DWRITE_REFERENCE_DSETREG -H5D_mp_H5DWRITE_CHAR_SCALAR -H5D_mp_H5DREAD_REFERENCE_OBJ -H5D_mp_H5DREAD_REFERENCE_DSETREG -H5D_mp_H5DREAD_CHAR_SCALAR +H5D_PROVISIONAL_mp_H5DWRITE_REFERENCE_OBJ +H5D_PROVISIONAL_mp_H5DWRITE_REFERENCE_DSETREG +H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_SCALAR +H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_1 +H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_2 +H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_3 +H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_4 +H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_5 +H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_6 +H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_7 +H5D_PROVISIONAL_mp_H5DWRITE_CHAR_SCALAR +H5D_PROVISIONAL_mp_H5DWRITE_CHAR_1 +H5D_PROVISIONAL_mp_H5DWRITE_CHAR_2 +H5D_PROVISIONAL_mp_H5DWRITE_CHAR_3 +H5D_PROVISIONAL_mp_H5DWRITE_CHAR_4 +H5D_PROVISIONAL_mp_H5DWRITE_CHAR_5 +H5D_PROVISIONAL_mp_H5DWRITE_CHAR_6 +H5D_PROVISIONAL_mp_H5DWRITE_CHAR_7 +H5D_PROVISIONAL_mp_H5DWRITE_REAL_SCALAR +H5D_PROVISIONAL_mp_H5DWRITE_REAL_1 +H5D_PROVISIONAL_mp_H5DWRITE_REAL_2 +H5D_PROVISIONAL_mp_H5DWRITE_REAL_3 +H5D_PROVISIONAL_mp_H5DWRITE_REAL_4 +H5D_PROVISIONAL_mp_H5DWRITE_REAL_5 +H5D_PROVISIONAL_mp_H5DWRITE_REAL_6 +H5D_PROVISIONAL_mp_H5DWRITE_REAL_7 +H5D_PROVISIONAL_mp_H5DREAD_REFERENCE_OBJ +H5D_PROVISIONAL_mp_H5DREAD_REFERENCE_DSETREG +H5D_PROVISIONAL_mp_H5DREAD_INTEGER_SCALAR +H5D_PROVISIONAL_mp_H5DREAD_INTEGER_1 +H5D_PROVISIONAL_mp_H5DREAD_INTEGER_2 +H5D_PROVISIONAL_mp_H5DREAD_INTEGER_3 +H5D_PROVISIONAL_mp_H5DREAD_INTEGER_4 +H5D_PROVISIONAL_mp_H5DREAD_INTEGER_5 +H5D_PROVISIONAL_mp_H5DREAD_INTEGER_6 +H5D_PROVISIONAL_mp_H5DREAD_INTEGER_7 +H5D_PROVISIONAL_mp_H5DREAD_CHAR_SCALAR +H5D_PROVISIONAL_mp_H5DREAD_CHAR_1 +H5D_PROVISIONAL_mp_H5DREAD_CHAR_2 +H5D_PROVISIONAL_mp_H5DREAD_CHAR_3 +H5D_PROVISIONAL_mp_H5DREAD_CHAR_4 +H5D_PROVISIONAL_mp_H5DREAD_CHAR_5 +H5D_PROVISIONAL_mp_H5DREAD_CHAR_6 +H5D_PROVISIONAL_mp_H5DREAD_CHAR_7 +H5D_PROVISIONAL_mp_H5DREAD_REAL_SCALAR +H5D_PROVISIONAL_mp_H5DREAD_REAL_1 +H5D_PROVISIONAL_mp_H5DREAD_REAL_2 +H5D_PROVISIONAL_mp_H5DREAD_REAL_3 +H5D_PROVISIONAL_mp_H5DREAD_REAL_4 +H5D_PROVISIONAL_mp_H5DREAD_REAL_5 +H5D_PROVISIONAL_mp_H5DREAD_REAL_6 +H5D_PROVISIONAL_mp_H5DREAD_REAL_7 H5D_mp_H5DGET_SPACE_F H5D_mp_H5DGET_TYPE_F H5D_mp_H5DSET_EXTENT_F @@ -58,8 +192,9 @@ H5D_mp_H5DWRITE_VL_REAL H5D_mp_H5DREAD_VL_REAL H5D_mp_H5DWRITE_VL_STRING H5D_mp_H5DREAD_VL_STRING -H5D_mp_H5DFILL_CHAR -H5D_mp_H5DFILL_INTEGER +H5D_PROVISIONAL_mp_H5DFILL_INTEGER +H5D_PROVISIONAL_mp_H5DFILL_REAL +H5D_PROVISIONAL_mp_H5DFILL_CHAR H5D_mp_H5DGET_SPACE_STATUS_F H5D_mp_H5DCREATE_ANON_F H5D_mp_H5DGET_SPACE_F @@ -69,15 +204,15 @@ H5D_mp_H5DGET_CREATE_PLIST_F H5D_mp_H5DGET_STORAGE_SIZE_F H5D_mp_H5DVLEN_GET_MAX_LEN_F H5D_mp_H5DGET_ACCESS_PLIST_F -H5D_mp_H5DWRITE_PTR -H5D_mp_H5DREAD_PTR -H5D_mp_H5DVLEN_RECLAIM_F +@H5_NOF03EXP@H5D_PROVISIONAL_mp_H5DWRITE_PTR +@H5_NOF03EXP@H5D_PROVISIONAL_mp_H5DREAD_PTR +@H5_NOF03EXP@H5D_PROVISIONAL_mp_H5DVLEN_RECLAIM_F ; H5E H5E_mp_H5ECLEAR_F H5E_mp_H5EPRINT_F H5E_mp_H5EGET_MAJOR_F H5E_mp_H5EGET_MINOR_F -H5E_mp_H5ESET_AUTO_F +H5E_PROVISIONAL_mp_H5ESET_AUTO_F ; H5F H5F_mp_H5FCREATE_F H5F_mp_H5FFLUSH_F @@ -94,7 +229,7 @@ H5F_mp_H5FGET_ACCESS_PLIST_F H5F_mp_H5FIS_HDF5_F H5F_mp_H5FGET_NAME_F H5F_mp_H5FGET_FILESIZE_F -H5F_mp_H5FGET_FILE_IMAGE_F +@H5_NOF03EXP@H5F_PROVISIONAL_mp_H5FGET_FILE_IMAGE_F ; H5G H5G_mp_H5GOPEN_F H5G_mp_H5GCREATE_F @@ -156,8 +291,8 @@ H5L_mp_H5LGET_INFO_BY_IDX_F H5L_mp_H5LIS_REGISTERED_F H5L_mp_H5LMOVE_F H5L_mp_H5LGET_NAME_BY_IDX_F -H5L_mp_H5LITERATE_F -H5L_mp_H5LITERATE_BY_NAME_F +@H5_NOF03EXP@H5L_PROVISIONAL_mp_H5LITERATE_F +@H5_NOF03EXP@H5L_PROVISIONAL_mp_H5LITERATE_BY_NAME_F ; H5O H5O_mp_H5OCLOSE_F H5O_mp_H5OCOPY_F @@ -172,11 +307,11 @@ H5O_mp_H5OOPEN_BY_IDX_F H5O_mp_H5OOPEN_F H5O_mp_H5OSET_COMMENT_F H5O_mp_H5OSET_COMMENT_BY_NAME_F -H5O_mp_H5OGET_INFO_BY_IDX_F -H5O_mp_H5OGET_INFO_BY_NAME_F -H5O_mp_H5OGET_INFO_F -H5O_mp_H5OVISIT_BY_NAME_F -H5O_mp_H5OVISIT_F +@H5_NOF03EXP@H5O_PROVISIONAL_mp_H5OGET_INFO_BY_IDX_F +@H5_NOF03EXP@H5O_PROVISIONAL_mp_H5OGET_INFO_BY_NAME_F +@H5_NOF03EXP@H5O_PROVISIONAL_mp_H5OGET_INFO_F +@H5_NOF03EXP@H5O_PROVISIONAL_mp_H5OVISIT_BY_NAME_F +@H5_NOF03EXP@H5O_PROVISIONAL_mp_H5OVISIT_F ; H5P H5P_mp_H5PCREATE_F H5P_mp_H5PSET_PRESERVE_F @@ -187,10 +322,12 @@ H5P_mp_H5PCLOSE_F H5P_mp_H5PSET_CHUNK_F H5P_mp_H5PGET_CHUNK_F H5P_mp_H5PSET_DEFLATE_F -H5P_mp_H5PSET_FILL_VALUE_CHAR -H5P_mp_H5PGET_FILL_VALUE_CHAR -H5P_mp_H5PSET_FILL_VALUE_INTEGER -H5P_mp_H5PGET_FILL_VALUE_INTEGER +H5P_PROVISIONAL_mp_H5PSET_FILL_VALUE_INTEGER +H5P_PROVISIONAL_mp_H5PGET_FILL_VALUE_INTEGER +H5P_PROVISIONAL_mp_H5PSET_FILL_VALUE_REAL +H5P_PROVISIONAL_mp_H5PGET_FILL_VALUE_REAL +H5P_PROVISIONAL_mp_H5PSET_FILL_VALUE_CHAR +H5P_PROVISIONAL_mp_H5PGET_FILL_VALUE_CHAR H5P_mp_H5PGET_VERSION_F H5P_mp_H5PSET_USERBLOCK_F H5P_mp_H5PGET_USERBLOCK_F @@ -242,10 +379,12 @@ H5P_mp_H5PSET_SMALL_DATA_BLOCK_SIZE_F H5P_mp_H5PGET_SMALL_DATA_BLOCK_SIZE_F H5P_mp_H5PSET_HYPER_VECTOR_SIZE_F H5P_mp_H5PGET_HYPER_VECTOR_SIZE_F -H5P_mp_H5PSET_CHAR -H5P_mp_H5PSET_INTEGER -H5P_mp_H5PGET_CHAR -H5P_mp_H5PGET_INTEGER +H5P_PROVISIONAL_mp_H5PSET_INTEGER +H5P_PROVISIONAL_mp_H5PSET_REAL +H5P_PROVISIONAL_mp_H5PSET_CHAR +H5P_PROVISIONAL_mp_H5PGET_INTEGER +H5P_PROVISIONAL_mp_H5PGET_REAL +H5P_PROVISIONAL_mp_H5PGET_CHAR H5P_mp_H5PEXIST_F H5P_mp_H5PGET_SIZE_F H5P_mp_H5PGET_NPROPS_F @@ -256,11 +395,13 @@ H5P_mp_H5PCOPY_PROP_F H5P_mp_H5PREMOVE_F H5P_mp_H5PUNREGISTER_F H5P_mp_H5PCLOSE_CLASS_F -H5P_mp_H5PCREATE_CLASS_F -H5P_mp_H5PREGISTER_INTEGER -H5P_mp_H5PREGISTER_CHAR -H5P_mp_H5PINSERT_CHAR -H5P_mp_H5PINSERT_INTEGER +H5P_PROVISIONAL_mp_H5PCREATE_CLASS_F +H5P_PROVISIONAL_mp_H5PREGISTER_INTEGER +H5P_PROVISIONAL_mp_H5PREGISTER_REAL +H5P_PROVISIONAL_mp_H5PREGISTER_CHAR +H5P_PROVISIONAL_mp_H5PINSERT_INTEGER +H5P_PROVISIONAL_mp_H5PINSERT_REAL +H5P_PROVISIONAL_mp_H5PINSERT_CHAR H5P_mp_H5PSET_SHUFFLE_F H5P_mp_H5PSET_EDC_CHECK_F H5P_mp_H5PGET_EDC_CHECK_F @@ -307,34 +448,28 @@ H5P_mp_H5PGET_NLINKS_F H5P_mp_H5PGET_CREATE_INTER_GROUP_F H5P_mp_H5PSET_CHUNK_CACHE_F H5P_mp_H5PGET_CHUNK_CACHE_F -H5P_mp_H5PSET_FILL_VALUE_PTR -H5P_mp_H5PGET_FILL_VALUE_PTR -H5P_mp_H5PSET_PTR -H5P_mp_H5PGET_PTR -H5P_mp_H5PREGISTER_PTR -H5P_mp_H5PINSERT_PTR -H5P_mp_H5PGET_FILE_IMAGE_F -H5P_mp_H5PSET_FILE_IMAGE_F -; Parallel -@H5_NOPAREXP@H5P_mp_H5PSET_FAPL_MPIO_F -@H5_NOPAREXP@H5P_mp_H5PGET_FAPL_MPIO_F -@H5_NOPAREXP@H5P_mp_H5PSET_DXPL_MPIO_F -@H5_NOPAREXP@H5P_mp_H5PGET_DXPL_MPIO_F -@H5_NOPAREXP@H5P_mp_H5PGET_MPIO_ACTUAL_IO_MODE_F +@H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PSET_FILL_VALUE_PTR +@H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PGET_FILL_VALUE_PTR +@H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PSET_PTR +@H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PGET_PTR +@H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PREGISTER_PTR +@H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PINSERT_PTR +@H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PGET_FILE_IMAGE_F +@H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PSET_FILE_IMAGE_F ; H5R -H5R_mp_H5RCREATE_OBJECT_F -H5R_mp_H5RCREATE_REGION_F -H5R_mp_H5RDEREFERENCE_OBJECT_F -H5R_mp_H5RDEREFERENCE_REGION_F -H5R_mp_H5RGET_REGION_REGION_F +H5R_PROVISIONAL_mp_H5RCREATE_OBJECT_F +H5R_PROVISIONAL_mp_H5RCREATE_REGION_F +H5R_PROVISIONAL_mp_H5RDEREFERENCE_OBJECT_F +H5R_PROVISIONAL_mp_H5RDEREFERENCE_REGION_F +H5R_PROVISIONAL_mp_H5RGET_REGION_REGION_F H5R_mp_H5RGET_OBJECT_TYPE_OBJ_F -H5R_mp_H5RGET_NAME_OBJECT_F -H5R_mp_H5RGET_NAME_REGION_F -H5R_mp_H5RGET_REGION_PTR_F -H5R_mp_H5RCREATE_PTR_F -H5R_mp_H5RDEREFERENCE_PTR_F -H5R_mp_H5RGET_NAME_PTR_F -H5R_mp_H5RGET_OBJ_TYPE_F +H5R_PROVISIONAL_mp_H5RGET_NAME_OBJECT_F +H5R_PROVISIONAL_mp_H5RGET_NAME_REGION_F +@H5_NOF03EXP@H5R_PROVISIONAL_mp_H5RGET_REGION_PTR_F +@H5_NOF03EXP@H5R_PROVISIONAL_mp_H5RCREATE_PTR_F +@H5_NOF03EXP@H5R_PROVISIONAL_mp_H5RDEREFERENCE_PTR_F +@H5_NOF03EXP@H5R_PROVISIONAL_mp_H5RGET_NAME_PTR_F +@H5_NOF03EXP@H5R_PROVISIONAL_mp_H5RGET_OBJ_TYPE_F ; H5S H5S_mp_H5SCREATE_SIMPLE_F H5S_mp_H5SCLOSE_F @@ -423,10 +558,17 @@ H5T_mp_H5TENCODE_F H5T_mp_H5TGET_CREATE_PLIST_F H5T_mp_H5TCOMPILER_CONV_F H5T_mp_H5TGET_NATIVE_TYPE_F -H5T_mp_H5TCONVERT_F -H5T_mp_H5TENUM_INSERT_F90 -H5T_mp_H5TENUM_INSERT_F03 +@H5_NOF03EXP@H5T_PROVISIONAL_mp_H5TCONVERT_F +@H5_F03EXP@H5T_PROVISIONAL_mp_H5TENUM_INSERT_F +@H5_NOF03EXP@H5T_PROVISIONAL_mp_H5TENUM_INSERT_F90 +@H5_NOF03EXP@H5T_PROVISIONAL_mp_H5TENUM_INSERT_F03 ; H5Z H5Z_mp_H5ZUNREGISTER_F H5Z_mp_H5ZFILTER_AVAIL_F H5Z_mp_H5ZGET_FILTER_INFO_F +; Parallel +@H5_NOPAREXP@H5FDMPIO_mp_H5PSET_FAPL_MPIO_F +@H5_NOPAREXP@H5FDMPIO_mp_H5PGET_FAPL_MPIO_F +@H5_NOPAREXP@H5FDMPIO_mp_H5PSET_DXPL_MPIO_F +@H5_NOPAREXP@H5FDMPIO_mp_H5PGET_DXPL_MPIO_F +@H5_NOPAREXP@H5FDMPIO_mp_H5PGET_MPIO_ACTUAL_IO_MODE_F diff --git a/fortran/test/CMakeLists.txt b/fortran/test/CMakeLists.txt index 19d4975..a2711c0 100644 --- a/fortran/test/CMakeLists.txt +++ b/fortran/test/CMakeLists.txt @@ -39,11 +39,26 @@ if (BUILD_SHARED_LIBS) ) endif (BUILD_SHARED_LIBS) -set_source_files_properties (tf.F90 ${HDF5_F90_BINARY_DIR}/tf_gen.F90 PROPERTIES LANGUAGE Fortran) -add_library (${HDF5_F90_TEST_LIB_TARGET} STATIC tf.F90 ${HDF5_F90_BINARY_DIR}/tf_gen.F90) -if (BUILD_SHARED_LIBS) - add_library (${HDF5_F90_TEST_LIBSH_TARGET} SHARED tf.F90 ${HDF5_F90_BINARY_DIR}/tf_gen.F90) -endif (BUILD_SHARED_LIBS) +# See if the F2008 intrinsic STORAGE_SIZE and C_SIZEOF are supported. If not then +# fall back to F2003. If F2003 not supported then use F90 for the tests. + +set_source_files_properties (tf_F90.f90 tf_F03.f90 tf_F08.f90 tf.f90 PROPERTIES LANGUAGE Fortran) +if (FORTRAN_HAVE_STORAGE_SIZE AND FORTRAN_HAVE_C_SIZEOF) + add_library (${HDF5_F90_TEST_LIB_TARGET} STATIC tf_F08.f90 tf.f90) + if (BUILD_SHARED_LIBS) + add_library (${HDF5_F90_TEST_LIBSH_TARGET} SHARED tf_F08.f90 tf.f90) + endif (BUILD_SHARED_LIBS) +elseif (HDF5_ENABLE_F2003) + add_library (${HDF5_F90_TEST_LIB_TARGET} STATIC tf_F03.f90 tf.f90) + if (BUILD_SHARED_LIBS) + add_library (${HDF5_F90_TEST_LIBSH_TARGET} SHARED tf_F03.f90 tf.f90) + endif (BUILD_SHARED_LIBS) +else (FORTRAN_HAVE_STORAGE_SIZE AND FORTRAN_HAVE_C_SIZEOF) + add_library (${HDF5_F90_TEST_LIB_TARGET} STATIC tf_F90.f90 tf.f90) + if (BUILD_SHARED_LIBS) + add_library (${HDF5_F90_TEST_LIBSH_TARGET} SHARED tf_F90.f90 tf.f90) + endif (BUILD_SHARED_LIBS) +endif (FORTRAN_HAVE_STORAGE_SIZE AND FORTRAN_HAVE_C_SIZEOF) TARGET_FORTRAN_PROPERTIES (${HDF5_F90_TEST_LIB_TARGET} STATIC " " " ") target_link_libraries (${HDF5_F90_TEST_LIB_TARGET} @@ -93,40 +108,6 @@ if (BUILD_SHARED_LIBS) endif (BUILD_SHARED_LIBS) #----------------------------------------------------------------------------- -# Setup the Fortran auto-detection utilities -# H5_test_buildiface.F90 used to generate various KIND test interfaces -#----------------------------------------------------------------------------- - -add_executable (H5_test_buildiface - ${HDF5_F90_SRC_DIR}/test/H5_test_buildiface.F90 - ) - -if (WIN32 AND MSVC) - if (BUILD_SHARED_LIBS) - set_target_properties (H5_test_buildiface - PROPERTIES - COMPILE_FLAGS "/MT" - ) - endif (BUILD_SHARED_LIBS) - set_target_properties (H5_test_buildiface - PROPERTIES - LINK_FLAGS "/SUBSYSTEM:CONSOLE" - ) -endif (WIN32 AND MSVC) -set_target_properties (H5_test_buildiface PROPERTIES - LINKER_LANGUAGE Fortran - Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY} -) - -set (CMD $<TARGET_FILE:H5_test_buildiface>) -add_custom_command ( - OUTPUT ${HDF5_F90_BINARY_DIR}/tf_gen.F90 - COMMAND ${CMD} - WORKING_DIRECTORY ${HDF5_F90_BINARY_DIR} - DEPENDS H5_test_buildiface -) - -#----------------------------------------------------------------------------- # Add Tests #----------------------------------------------------------------------------- @@ -253,60 +234,62 @@ if (BUILD_SHARED_LIBS) endif (BUILD_SHARED_LIBS) #-- Adding test for fortranlib_test_F03 -add_executable (fortranlib_test_F03 - fortranlib_test_F03.f90 - tH5E_F03.f90 - tH5F_F03.f90 - tH5L_F03.f90 - tH5O_F03.f90 - tH5P_F03.f90 - tH5T_F03.F90 - tHDF5_F03.f90 -) -TARGET_NAMING (fortranlib_test_F03 STATIC) -TARGET_FORTRAN_PROPERTIES (fortranlib_test_F03 STATIC " " " ") -target_link_libraries (fortranlib_test_F03 - ${HDF5_F90_TEST_LIB_TARGET} - ${HDF5_F90_LIB_TARGET} - ${HDF5_LIB_TARGET} -) -if (WIN32 AND MSVC) - target_link_libraries (fortranlib_test_F03 "ws2_32.lib") -endif (WIN32 AND MSVC) -target_include_directories (fortranlib_test_F03 PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static) -set_target_properties (fortranlib_test_F03 PROPERTIES - LINKER_LANGUAGE Fortran - FOLDER test/fortran - Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/static -) -if (BUILD_SHARED_LIBS) - add_executable (fortranlib_test_F03-shared +if (HDF5_ENABLE_F2003) + add_executable (fortranlib_test_F03 fortranlib_test_F03.f90 tH5E_F03.f90 tH5F_F03.f90 tH5L_F03.f90 tH5O_F03.f90 tH5P_F03.f90 - tH5T_F03.F90 + tH5T_F03.f90 tHDF5_F03.f90 ) - TARGET_NAMING (fortranlib_test_F03-shared SHARED) - TARGET_FORTRAN_PROPERTIES (fortranlib_test_F03-shared SHARED " " " ") - target_link_libraries (fortranlib_test_F03-shared - ${HDF5_F90_TEST_LIBSH_TARGET} - ${HDF5_F90_LIBSH_TARGET} - ${HDF5_LIBSH_TARGET} + TARGET_NAMING (fortranlib_test_F03 STATIC) + TARGET_FORTRAN_PROPERTIES (fortranlib_test_F03 STATIC " " " ") + target_link_libraries (fortranlib_test_F03 + ${HDF5_F90_TEST_LIB_TARGET} + ${HDF5_F90_LIB_TARGET} + ${HDF5_LIB_TARGET} ) if (WIN32 AND MSVC) - target_link_libraries (fortranlib_test_F03-shared "ws2_32.lib") + target_link_libraries (fortranlib_test_F03 "ws2_32.lib") endif (WIN32 AND MSVC) - target_include_directories (fortranlib_test_F03-shared PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/shared) - set_target_properties (fortranlib_test_F03-shared PROPERTIES + target_include_directories (fortranlib_test_F03 PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static) + set_target_properties (fortranlib_test_F03 PROPERTIES LINKER_LANGUAGE Fortran FOLDER test/fortran - Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/shared -) -endif (BUILD_SHARED_LIBS) + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/static + ) + if (BUILD_SHARED_LIBS) + add_executable (fortranlib_test_F03-shared + fortranlib_test_F03.f90 + tH5E_F03.f90 + tH5F_F03.f90 + tH5L_F03.f90 + tH5O_F03.f90 + tH5P_F03.f90 + tH5T_F03.f90 + tHDF5_F03.f90 + ) + TARGET_NAMING (fortranlib_test_F03-shared SHARED) + TARGET_FORTRAN_PROPERTIES (fortranlib_test_F03-shared SHARED " " " ") + target_link_libraries (fortranlib_test_F03-shared + ${HDF5_F90_TEST_LIBSH_TARGET} + ${HDF5_F90_LIBSH_TARGET} + ${HDF5_LIBSH_TARGET} + ) + if (WIN32 AND MSVC) + target_link_libraries (fortranlib_test_F03-shared "ws2_32.lib") + endif (WIN32 AND MSVC) + target_include_directories (fortranlib_test_F03-shared PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/shared) + set_target_properties (fortranlib_test_F03-shared PROPERTIES + LINKER_LANGUAGE Fortran + FOLDER test/fortran + Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/shared + ) + endif (BUILD_SHARED_LIBS) +endif (HDF5_ENABLE_F2003) #-- Adding test for fflush1 add_executable (fflush1 fflush1.f90) diff --git a/fortran/test/H5_test_buildiface.F90 b/fortran/test/H5_test_buildiface.F90 deleted file mode 100644 index 30687df..0000000 --- a/fortran/test/H5_test_buildiface.F90 +++ /dev/null @@ -1,306 +0,0 @@ -!****p* Program/H5_buildiface -! -! NAME -! Executable: H5_buildiface -! -! FILE -! fortran/src/H5_buildiface.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 -! depending on which of the KIND values are found. -! -! NOTES -! This program uses the Fortran 2008 intrinsic function STORAGE_SIZE or SIZEOF -! depending on availablity.It generates code that makes use of -! STORAGE_SIZE/SIZEOF in H5fortran_detect.f90. STORAGE_SIZE is standard -! compliant and should always be chosen over SIZEOF. -! -! The availability of STORAGE_SIZE/SIZEOF is checked at configure time and the TRUE/FALSE -! condition is set in the configure variable "FORTRAN_HAVE_STORAGE_SIZE" or -! "FORTRAN_HAVE_SIZEOF". -! -! The use of C_SIZOF(X) is not used since the argument X must be an interoperable -! data entity. -! -! 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. * -! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -! -! AUTHOR -! M. Scot Breitenfeld -! -!***** - -#include <H5config_f.inc> - -PROGRAM H5_test_buildiface - USE, INTRINSIC :: ISO_C_BINDING - IMPLICIT NONE - -! These values are valid REAL KINDs (with corresponding C float) found during configure - H5_H5CONFIG_F_NUM_RKIND - H5_H5CONFIG_F_RKIND -! These values are valid INTEGER KINDs (with corresponding C integer) found during configure - H5_H5CONFIG_F_NUM_IKIND - H5_H5CONFIG_F_IKIND - - INTEGER :: i, j, k - INTEGER :: ji, jr, jd -#ifdef H5_FORTRAN_HAVE_C_LONG_DOUBLE - REAL(KIND=C_LONG_DOUBLE) :: c_longdble -#endif - REAL(KIND=C_DOUBLE) :: c_dble - REAL(KIND=C_FLOAT) :: c_flt - INTEGER :: sizeof_var - CHARACTER(LEN=2) :: chr2 -! subroutine rank of array being passed in - CHARACTER(LEN=2), DIMENSION(1:8), PARAMETER :: chr_rank=(/"_0","_1","_2","_3","_4","_5","_6","_7"/) -! rank definitions - CHARACTER(LEN=70), DIMENSION(1:8), PARAMETER :: rank_dim_line=(/ & - ' ', & - ', DIMENSION(dims(1)) ', & - ', DIMENSION(dims(1),dims(2)) ', & - ', DIMENSION(dims(1),dims(2),dims(3)) ', & - ', DIMENSION(dims(1),dims(2),dims(3),dims(4)) ', & - ', DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) ', & - ', DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) ', & - ', DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7))' & - /) -! pointer to the buffer - CHARACTER(LEN=37), DIMENSION(1:8), PARAMETER :: f_ptr_line=(/ & - ' f_ptr = C_LOC(buf) ', & - ' f_ptr = C_LOC(buf(1)) ', & - ' f_ptr = C_LOC(buf(1,1)) ', & - ' f_ptr = C_LOC(buf(1,1,1)) ', & - ' f_ptr = C_LOC(buf(1,1,1,1)) ', & - ' f_ptr = C_LOC(buf(1,1,1,1,1)) ', & - ' f_ptr = C_LOC(buf(1,1,1,1,1,1)) ', & - ' f_ptr = C_LOC(buf(1,1,1,1,1,1,1))' & - /) - -! Generate Fortran Check routines for the tests KIND interfaces. - - OPEN(11,FILE='tf_gen.F90') - WRITE(11,'(40(A,/))') & -'!****h* ROBODoc/TH5_MISC_gen.F90',& -'!',& -'! NAME',& -'! TH5_MISC_gen',& -'! ',& -'! PURPOSE',& -'! This module is generated at build by H5_test_buildiface.F90 to handle checking ',& -'! in the tests all the detected KINDs.',& -'!',& -'! COPYRIGHT',& -'! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *',& -'! Copyright by The HDF Group. *',& -'! 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',& -'! H5_test_buildiface.F90',& -'!',& -'!*****' - - WRITE(11,'(a)') "MODULE TH5_MISC_gen" - - WRITE(11,'(A)') ' USE, INTRINSIC :: ISO_C_BINDING' - -! Interfaces for validating REALs, INTEGERs, CHARACTERs, LOGICALs - - WRITE(11,'(A)') ' INTERFACE verify' - DO i = 1, num_rkinds - j = rkind(i) - WRITE(chr2,'(I2)') j - WRITE(11,'(A)') " MODULE PROCEDURE verify_real_kind_"//TRIM(ADJUSTL(chr2)) - END DO - DO i = 1, num_ikinds - j = ikind(i) - WRITE(chr2,'(I2)') j - WRITE(11,'(A)') " MODULE PROCEDURE verify_integer_kind_"//TRIM(ADJUSTL(chr2)) - END DO - WRITE(11,'(A)') " MODULE PROCEDURE verify_character" - WRITE(11,'(A)') " MODULE PROCEDURE verify_logical" - WRITE(11,'(A)') " END INTERFACE" - - WRITE(11,'(A)') ' INTERFACE check_real_eq' - DO i = 1, num_rkinds - j = rkind(i) - WRITE(chr2,'(I2)') j - WRITE(11,'(A)') " MODULE PROCEDURE real_eq_kind_"//TRIM(ADJUSTL(chr2)) - END DO - WRITE(11,'(A)') " END INTERFACE" - - WRITE(11,'(A)') 'CONTAINS' - -! *************************** -! VALIDATE INTEGERS -! *************************** - DO i = 1, num_ikinds - k = ikind(i) - WRITE(chr2,'(I2)') k -! DLL definitions for windows - WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_TEST_DLL)' - WRITE(11,'(A)') '!DEC$attributes dllexport :: verify_integer_kind_'//TRIM(ADJUSTL(chr2)) - WRITE(11,'(A)') '!DEC$endif' - -! Subroutine API - WRITE(11,'(A)') ' SUBROUTINE verify_integer_kind_'//TRIM(ADJUSTL(chr2))//'(string,value,correct_value,total_error)' - WRITE(11,'(A)') ' IMPLICIT NONE' - WRITE(11,'(A)') ' CHARACTER(LEN=*) :: string' - WRITE(11,'(A)') ' INTEGER(KIND='//TRIM(ADJUSTL(chr2))//') :: value, correct_value' - WRITE(11,'(A)') ' INTEGER :: total_error' - WRITE(11,'(A)') ' IF (value .NE. correct_value) THEN' - WRITE(11,'(A)') ' total_error=total_error+1' - WRITE(11,'(A)') ' WRITE(*,*) "ERROR: INCORRECT INTEGER VALIDATION ", string' - WRITE(11,'(A)') ' ENDIF' - WRITE(11,'(A)') ' END SUBROUTINE verify_integer_kind_'//TRIM(ADJUSTL(chr2)) - ENDDO - -! *************************** -! VALIDATE REALS -! *************************** - DO i = 1, num_rkinds - k = rkind(i) - WRITE(chr2,'(I2)') k -! DLL definitions for windows - WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_TEST_DLL)' - WRITE(11,'(A)') '!DEC$attributes dllexport :: verify_real_kind_'//TRIM(ADJUSTL(chr2)) - WRITE(11,'(A)') '!DEC$endif' - -! Subroutine API - WRITE(11,'(A)') ' SUBROUTINE verify_real_kind_'//TRIM(ADJUSTL(chr2))//'(string,value,correct_value,total_error)' - WRITE(11,'(A)') ' IMPLICIT NONE' - WRITE(11,'(A)') ' CHARACTER(LEN=*) :: string' - WRITE(11,'(A)') ' REAL(KIND='//TRIM(ADJUSTL(chr2))//') :: value, correct_value' - WRITE(11,'(A)') ' INTEGER :: total_error' - WRITE(11,'(A)') ' IF (.NOT.real_eq_kind_'//TRIM(ADJUSTL(chr2))//'( value, correct_value) ) THEN' - WRITE(11,'(A)') ' total_error=total_error+1' - WRITE(11,'(A)') ' WRITE(*,*) "ERROR: INCORRECT REAL VALIDATION ", string' - WRITE(11,'(A)') ' ENDIF' - WRITE(11,'(A)') ' END SUBROUTINE verify_real_kind_'//TRIM(ADJUSTL(chr2)) - - -! *********************************** -! TEST IF TWO REAL NUMBERS ARE EQUAL -! *********************************** - -! [1] The test performed is -! -! ABS( x - y ) < ( ULP * SPACING( MAX(ABS(x),ABS(y)) ) ) -! -! The numbers are considered equal if true -! -! The intrinsic function SPACING(x) returns the absolute spacing of numbers -! near the value of x, -! -! { EXPONENT(x)-DIGITS(x) -! { 2.0 for x /= 0 -! SPACING(x) = { -! { -! { TINY(x) for x == 0 -! -! The ULP optional argument scales the comparison: -! -! Unit of data precision. The acronym stands for "unit in -! the last place," the smallest possible increment or decrement -! that can be made using a machine's floating point arithmetic. -! A 0.5 ulp maximum error is the best you could hope for, since -! this corresponds to always rounding to the nearest representable -! floating-point number. Value must be positive - if a negative -! value is supplied, the absolute value is used. -! If not specified, the default value is 1. -! -! James Van Buskirk and James Giles suggested this method for floating -! point comparisons in the comp.lang.fortran newsgroup. -! -! Reference: [1] Paul van Delst, paul.vandelst@ssec.wisc.edu - - WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_TEST_DLL)' - WRITE(11,'(A)') '!DEC$attributes dllexport :: real_eq_kind_'//TRIM(ADJUSTL(chr2)) - WRITE(11,'(A)') '!DEC$endif' - WRITE(11,'(A)') ' LOGICAL FUNCTION real_eq_kind_'//TRIM(ADJUSTL(chr2))//'(a,b,ulp)' - WRITE(11,'(A)') ' IMPLICIT NONE' - WRITE(11,'(A)') ' REAL(KIND='//TRIM(ADJUSTL(chr2))//'), INTENT (in):: a,b' - WRITE(11,'(A)') ' REAL(KIND='//TRIM(ADJUSTL(chr2))//') :: Rel' - WRITE(11,'(A)') ' INTEGER, OPTIONAL, INTENT( IN ) :: ulp' - WRITE(11,'(A)') ' IF ( PRESENT( ulp ) ) Rel = REAL( ABS(ulp), '//TRIM(ADJUSTL(chr2))//')' - WRITE(11,'(A)') ' Rel = 1.0_'//TRIM(ADJUSTL(chr2)) - WRITE(11,'(A)') ' real_eq_kind_'//TRIM(ADJUSTL(chr2))//' = ABS( a - b ) < ( Rel * SPACING( MAX(ABS(a),ABS(b)) ) )' - WRITE(11,'(A)') ' END FUNCTION real_eq_kind_'//TRIM(ADJUSTL(chr2)) - ENDDO - -! *************************** -! VALIDATE CHARACTER STRINGS -! *************************** - -! DLL definitions for windows - WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_TEST_DLL)' - WRITE(11,'(A)') '!DEC$attributes dllexport :: verify_character' - WRITE(11,'(A)') '!DEC$endif' - -! Subroutine API - WRITE(11,'(A)') ' SUBROUTINE verify_character(string,value,correct_value,total_error)' - WRITE(11,'(A)') ' IMPLICIT NONE' - WRITE(11,'(A)') ' CHARACTER*(*) :: string' - WRITE(11,'(A)') ' CHARACTER*(*) :: value, correct_value' - WRITE(11,'(A)') ' INTEGER :: total_error' - WRITE(11,'(A)') ' IF (TRIM(value) .NE. TRIM(correct_value)) THEN' - WRITE(11,'(A)') ' total_error = total_error + 1' - WRITE(11,'(A)') ' WRITE(*,*) "ERROR: INCORRECT VALIDATION ", string' - WRITE(11,'(A)') ' ENDIF' - WRITE(11,'(A)') ' END SUBROUTINE verify_character' - -! *************************** -! VALIDATE LOGICAL -! *************************** - -! DLL definitions for windows - WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_TEST_DLL)' - WRITE(11,'(A)') '!DEC$attributes dllexport :: verify_logical' - WRITE(11,'(A)') '!DEC$endif' -! Subroutine API - WRITE(11,'(A)') ' SUBROUTINE verify_logical(string,value,correct_value,total_error)' - WRITE(11,'(A)') ' IMPLICIT NONE' - WRITE(11,'(A)') ' CHARACTER(LEN=*) :: string' - WRITE(11,'(A)') ' LOGICAL :: value, correct_value' - WRITE(11,'(A)') ' INTEGER :: total_error' - WRITE(11,'(A)') ' IF (value .NEQV. correct_value) THEN' - WRITE(11,'(A)') ' total_error = total_error + 1' - WRITE(11,'(A)') ' WRITE(*,*) "ERROR: INCORRECT VALIDATION ", string' - WRITE(11,'(A)') ' ENDIF' - - WRITE(11,'(A)') ' END SUBROUTINE verify_logical' - - WRITE(11,'(A)') "END MODULE TH5_MISC_gen" - - CLOSE(11) - -END PROGRAM H5_test_buildiface - - - diff --git a/fortran/test/Makefile.am b/fortran/test/Makefile.am index 608b1e9..735ab7a 100644 --- a/fortran/test/Makefile.am +++ b/fortran/test/Makefile.am @@ -36,12 +36,40 @@ 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 fortranlib_test_F03 +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_gen.F90 tf.F90 t.c +if FORTRAN_HAVE_STORAGE_SIZE +if FORTRAN_HAVE_C_SIZEOF + libh5test_fortran_la_SOURCES = tf_F08.f90 +else + libh5test_fortran_la_SOURCES = tf_F03.f90 +endif +else +if FORTRAN_2003_CONDITIONAL_F + libh5test_fortran_la_SOURCES = tf_F03.f90 +else + libh5test_fortran_la_SOURCES = tf_F90.f90 +endif +endif + +# tf.f90 depends on either tf_F08.f90 or tf_F03.f90 so they need to be +# compiled first +libh5test_fortran_la_SOURCES += tf.f90 t.c # Source files are used for both the library and fortranlib_test. # Automake will complain about this without the following workaround. @@ -51,11 +79,13 @@ fortranlib_test_CFLAGS=$(AM_CFLAGS) fortranlib_test_SOURCES = tH5F.f90 tH5D.f90 tH5R.f90 tH5S.f90 tH5T.f90 tH5VL.f90 tH5Z.f90 \ tH5Sselect.f90 tH5P.f90 tH5A.f90 tH5I.f90 tH5G.f90 tH5E.f90 tHDF5.f90 fortranlib_test.f90 -fortranlib_test_1_8_SOURCES = tH5O.f90 tH5A_1_8.f90 tH5G_1_8.f90 tH5MISC_1_8.f90 tHDF5_1_8.f90 \ +fortranlib_test_1_8_SOURCES = tH5O.f90 tH5A_1_8.f90 tH5G_1_8.f90 tH5MISC_1_8.f90 tHDF5_1_8.f90\ fortranlib_test_1_8.f90 -fortranlib_test_F03_SOURCES = tH5E_F03.f90 tH5F_F03.f90 tH5L_F03.f90 \ - tH5O_F03.f90 tH5P_F03.f90 tH5T_F03.F90 tHDF5_F03.f90 fortranlib_test_F03.f90 +if FORTRAN_2003_CONDITIONAL_F + fortranlib_test_F03_SOURCES = tH5E_F03.f90 tH5F_F03.f90 tH5L_F03.f90 \ + tH5O_F03.f90 tH5P_F03.f90 tH5T_F03.f90 tHDF5_F03.f90 fortranlib_test_F03.f90 +endif fflush1_SOURCES=fflush1.f90 @@ -76,32 +106,13 @@ maintainer-clean-local: clean-local distclean-local: clean-local clean-local: @if test -n "$(F9XMODEXT)" && test "X$(F9XMODEXT)" != "Xo"; then \ - $(RM) *.$(F9XMODEXT) tf_gen.F90; \ + $(RM) *.$(F9XMODEXT); \ fi # Mark this directory as part of the Fortran API (this affects output # from tests in conclude.am) FORTRAN_API=yes -# helper program we need to build. -noinst_PROGRAMS = H5_test_buildiface - -# H5_test_buildiface.F90 generates all the test APIs that have a KIND type associated -# with them. - -tf_gen.F90: H5_test_buildiface$(EXEEXT) - $(RUNSERIAL) ./H5_test_buildiface$(EXEEXT) - -# H5_test_buildiface.F90 is included in the distribution, and Automake knows -# how to compile a fortran program given its sources. - -H5_test_buildiface_SOURCES = H5_test_buildiface.F90 - -# The build of the H5_test_buildiface does depend on any libraries, so set it -# to nothing. - -H5_test_buildiface_LDADD = - # fflush2 depends on files created by fflush1 fflush2.chkexe_: fflush1.chkexe_ diff --git a/fortran/test/Makefile.in b/fortran/test/Makefile.in index 4e9bbd6..4ec1ad5 100644 --- a/fortran/test/Makefile.in +++ b/fortran/test/Makefile.in @@ -14,7 +14,6 @@ @SET_MAKE@ - VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ @@ -88,9 +87,9 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ # 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) -noinst_PROGRAMS = H5_test_buildiface$(EXEEXT) -TESTS = $(am__EXEEXT_1) +@FORTRAN_2003_CONDITIONAL_F_TRUE@am__append_2 = fortranlib_test_F03 +check_PROGRAMS = $(am__EXEEXT_2) +TESTS = $(am__EXEEXT_2) subdir = fortran/test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ @@ -98,25 +97,34 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/src/H5config.h \ - $(top_builddir)/fortran/src/H5config_f.inc +CONFIG_HEADER = $(top_builddir)/src/H5config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libh5test_fortran_la_LIBADD = -am_libh5test_fortran_la_OBJECTS = tf_gen.lo tf.lo t.lo +am__libh5test_fortran_la_SOURCES_DIST = tf_F90.f90 tf.f90 t.c \ + tf_F03.f90 tf_F08.f90 +@FORTRAN_2003_CONDITIONAL_F_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@am_libh5test_fortran_la_OBJECTS = tf_F90.lo \ +@FORTRAN_2003_CONDITIONAL_F_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@ tf.lo \ +@FORTRAN_2003_CONDITIONAL_F_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@ t.lo +@FORTRAN_2003_CONDITIONAL_F_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@am_libh5test_fortran_la_OBJECTS = tf_F03.lo \ +@FORTRAN_2003_CONDITIONAL_F_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@ tf.lo \ +@FORTRAN_2003_CONDITIONAL_F_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@ t.lo +@FORTRAN_HAVE_C_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@am_libh5test_fortran_la_OBJECTS = tf_F03.lo \ +@FORTRAN_HAVE_C_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@ tf.lo \ +@FORTRAN_HAVE_C_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@ t.lo +@FORTRAN_HAVE_C_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@am_libh5test_fortran_la_OBJECTS = tf_F08.lo \ +@FORTRAN_HAVE_C_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@ tf.lo \ +@FORTRAN_HAVE_C_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@ t.lo libh5test_fortran_la_OBJECTS = $(am_libh5test_fortran_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = -am__EXEEXT_1 = fortranlib_test$(EXEEXT) fflush1$(EXEEXT) \ - fflush2$(EXEEXT) fortranlib_test_1_8$(EXEEXT) \ - fortranlib_test_F03$(EXEEXT) -PROGRAMS = $(noinst_PROGRAMS) -am_H5_test_buildiface_OBJECTS = H5_test_buildiface.$(OBJEXT) -H5_test_buildiface_OBJECTS = $(am_H5_test_buildiface_OBJECTS) -H5_test_buildiface_DEPENDENCIES = +@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) @@ -151,10 +159,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_OBJECTS = tH5E_F03.$(OBJEXT) tH5F_F03.$(OBJEXT) \ - tH5L_F03.$(OBJEXT) tH5O_F03.$(OBJEXT) tH5P_F03.$(OBJEXT) \ - tH5T_F03.$(OBJEXT) tHDF5_F03.$(OBJEXT) \ - fortranlib_test_F03.$(OBJEXT) +am__fortranlib_test_F03_SOURCES_DIST = tH5E_F03.f90 tH5F_F03.f90 \ + tH5L_F03.f90 tH5O_F03.f90 tH5P_F03.f90 tH5T_F03.f90 \ + tHDF5_F03.f90 fortranlib_test_F03.f90 +@FORTRAN_2003_CONDITIONAL_F_TRUE@am_fortranlib_test_F03_OBJECTS = \ +@FORTRAN_2003_CONDITIONAL_F_TRUE@ tH5E_F03.$(OBJEXT) \ +@FORTRAN_2003_CONDITIONAL_F_TRUE@ tH5F_F03.$(OBJEXT) \ +@FORTRAN_2003_CONDITIONAL_F_TRUE@ tH5L_F03.$(OBJEXT) \ +@FORTRAN_2003_CONDITIONAL_F_TRUE@ tH5O_F03.$(OBJEXT) \ +@FORTRAN_2003_CONDITIONAL_F_TRUE@ tH5P_F03.$(OBJEXT) \ +@FORTRAN_2003_CONDITIONAL_F_TRUE@ tH5T_F03.$(OBJEXT) \ +@FORTRAN_2003_CONDITIONAL_F_TRUE@ tHDF5_F03.$(OBJEXT) \ +@FORTRAN_2003_CONDITIONAL_F_TRUE@ fortranlib_test_F03.$(OBJEXT) fortranlib_test_F03_OBJECTS = $(am_fortranlib_test_F03_OBJECTS) fortranlib_test_F03_LDADD = $(LDADD) fortranlib_test_F03_DEPENDENCIES = libh5test_fortran.la $(LIBH5TEST) \ @@ -171,28 +187,10 @@ AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src -I$(top_builddir)/fortran/src +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src depcomp = $(SHELL) $(top_srcdir)/bin/depcomp am__depfiles_maybe = depfiles am__mv = mv -f -PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -LTPPFCCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=FC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(FC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_FCFLAGS) $(FCFLAGS) -AM_V_PPFC = $(am__v_PPFC_@AM_V@) -am__v_PPFC_ = $(am__v_PPFC_@AM_DEFAULT_V@) -am__v_PPFC_0 = @echo " PPFC " $@; -am__v_PPFC_1 = -FCLD = $(FC) -FCLINK = $(LIBTOOL) $(AM_V_lt) --tag=FC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_FCLD = $(am__v_FCLD_@AM_V@) -am__v_FCLD_ = $(am__v_FCLD_@AM_DEFAULT_V@) -am__v_FCLD_0 = @echo " FCLD " $@; -am__v_FCLD_1 = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ @@ -218,14 +216,21 @@ AM_V_FC = $(am__v_FC_@AM_V@) am__v_FC_ = $(am__v_FC_@AM_DEFAULT_V@) am__v_FC_0 = @echo " FC " $@; am__v_FC_1 = -SOURCES = $(libh5test_fortran_la_SOURCES) \ - $(H5_test_buildiface_SOURCES) $(fflush1_SOURCES) \ - $(fflush2_SOURCES) $(fortranlib_test_SOURCES) \ - $(fortranlib_test_1_8_SOURCES) $(fortranlib_test_F03_SOURCES) -DIST_SOURCES = $(libh5test_fortran_la_SOURCES) \ - $(H5_test_buildiface_SOURCES) $(fflush1_SOURCES) \ +FCLD = $(FC) +FCLINK = $(LIBTOOL) $(AM_V_lt) --tag=FC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_FCLD = $(am__v_FCLD_@AM_V@) +am__v_FCLD_ = $(am__v_FCLD_@AM_DEFAULT_V@) +am__v_FCLD_0 = @echo " FCLD " $@; +am__v_FCLD_1 = +SOURCES = $(libh5test_fortran_la_SOURCES) $(fflush1_SOURCES) \ $(fflush2_SOURCES) $(fortranlib_test_SOURCES) \ $(fortranlib_test_1_8_SOURCES) $(fortranlib_test_F03_SOURCES) +DIST_SOURCES = $(am__libh5test_fortran_la_SOURCES_DIST) \ + $(fflush1_SOURCES) $(fflush2_SOURCES) \ + $(fortranlib_test_SOURCES) $(fortranlib_test_1_8_SOURCES) \ + $(am__fortranlib_test_F03_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -517,21 +522,14 @@ F9XMODEXT = @F9XMODEXT@ F9XMODFLAG = @F9XMODFLAG@ F9XSUFFIXFLAG = @F9XSUFFIXFLAG@ FC = @FC@ +FC2003 = @FC2003@ FCFLAGS = @FCFLAGS@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FORTRAN_C_LONG_DOUBLE_IS_UNIQUE = @FORTRAN_C_LONG_DOUBLE_IS_UNIQUE@ -FORTRAN_HAVE_C_LONG_DOUBLE = @FORTRAN_HAVE_C_LONG_DOUBLE@ -FORTRAN_SIZEOF_LONG_DOUBLE = @FORTRAN_SIZEOF_LONG_DOUBLE@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ -H5CONFIG_F_IKIND = @H5CONFIG_F_IKIND@ -H5CONFIG_F_NUM_IKIND = @H5CONFIG_F_NUM_IKIND@ -H5CONFIG_F_NUM_RKIND = @H5CONFIG_F_NUM_RKIND@ -H5CONFIG_F_RKIND = @H5CONFIG_F_RKIND@ -H5CONFIG_F_RKIND_SIZEOF = @H5CONFIG_F_RKIND_SIZEOF@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ @@ -541,12 +539,13 @@ H5_LDFLAGS = @H5_LDFLAGS@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ -HAVE_Fortran_INTEGER_SIZEOF_16 = @HAVE_Fortran_INTEGER_SIZEOF_16@ +HAVE_FORTRAN_2003 = @HAVE_FORTRAN_2003@ HAVE_PTHREAD = @HAVE_PTHREAD@ 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@ @@ -588,18 +587,6 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ -PAC_C_MAX_REAL_PRECISION = @PAC_C_MAX_REAL_PRECISION@ -PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ -PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ -PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ -PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ -PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ -PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ -PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ -PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ -PAC_FORTRAN_NATIVE_INTEGER_SIZEOF = @PAC_FORTRAN_NATIVE_INTEGER_SIZEOF@ -PAC_FORTRAN_NATIVE_REAL_KIND = @PAC_FORTRAN_NATIVE_REAL_KIND@ -PAC_FORTRAN_NATIVE_REAL_SIZEOF = @PAC_FORTRAN_NATIVE_REAL_SIZEOF@ PARALLEL = @PARALLEL@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ @@ -745,10 +732,39 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5 *.raw # 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 fortranlib_test_F03 -libh5test_fortran_la_SOURCES = tf_gen.F90 tf.F90 t.c +TEST_PROG = fortranlib_test fflush1 fflush2 fortranlib_test_1_8 \ + $(am__append_2) + +# tf.f90 depends on either tf_F08.f90 or tf_F03.f90 so they need to be +# compiled first +@FORTRAN_2003_CONDITIONAL_F_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@libh5test_fortran_la_SOURCES = tf_F90.f90 \ +@FORTRAN_2003_CONDITIONAL_F_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@ tf.f90 \ +@FORTRAN_2003_CONDITIONAL_F_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@ t.c + +# tf.f90 depends on either tf_F08.f90 or tf_F03.f90 so they need to be +# compiled first +@FORTRAN_2003_CONDITIONAL_F_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@libh5test_fortran_la_SOURCES = tf_F03.f90 \ +@FORTRAN_2003_CONDITIONAL_F_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@ tf.f90 \ +@FORTRAN_2003_CONDITIONAL_F_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@ t.c + +# tf.f90 depends on either tf_F08.f90 or tf_F03.f90 so they need to be +# compiled first +@FORTRAN_HAVE_C_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@libh5test_fortran_la_SOURCES = tf_F03.f90 \ +@FORTRAN_HAVE_C_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@ tf.f90 \ +@FORTRAN_HAVE_C_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@ t.c + +# tf.f90 depends on either tf_F08.f90 or tf_F03.f90 so they need to be +# compiled first +@FORTRAN_HAVE_C_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@libh5test_fortran_la_SOURCES = tf_F08.f90 \ +@FORTRAN_HAVE_C_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@ tf.f90 \ +@FORTRAN_HAVE_C_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@ t.c # Source files are used for both the library and fortranlib_test. # Automake will complain about this without the following workaround. @@ -757,11 +773,11 @@ fortranlib_test_CFLAGS = $(AM_CFLAGS) fortranlib_test_SOURCES = tH5F.f90 tH5D.f90 tH5R.f90 tH5S.f90 tH5T.f90 tH5VL.f90 tH5Z.f90 \ tH5Sselect.f90 tH5P.f90 tH5A.f90 tH5I.f90 tH5G.f90 tH5E.f90 tHDF5.f90 fortranlib_test.f90 -fortranlib_test_1_8_SOURCES = tH5O.f90 tH5A_1_8.f90 tH5G_1_8.f90 tH5MISC_1_8.f90 tHDF5_1_8.f90 \ +fortranlib_test_1_8_SOURCES = tH5O.f90 tH5A_1_8.f90 tH5G_1_8.f90 tH5MISC_1_8.f90 tHDF5_1_8.f90\ fortranlib_test_1_8.f90 -fortranlib_test_F03_SOURCES = tH5E_F03.f90 tH5F_F03.f90 tH5L_F03.f90 \ - tH5O_F03.f90 tH5P_F03.f90 tH5T_F03.F90 tHDF5_F03.f90 fortranlib_test_F03.f90 +@FORTRAN_2003_CONDITIONAL_F_TRUE@fortranlib_test_F03_SOURCES = tH5E_F03.f90 tH5F_F03.f90 tH5L_F03.f90 \ +@FORTRAN_2003_CONDITIONAL_F_TRUE@ tH5O_F03.f90 tH5P_F03.f90 tH5T_F03.f90 tHDF5_F03.f90 fortranlib_test_F03.f90 fflush1_SOURCES = fflush1.f90 fflush2_SOURCES = fflush2.f90 @@ -774,14 +790,6 @@ MOSTLYCLEANFILES = *.tmp # from tests in conclude.am) FORTRAN_API = yes -# H5_test_buildiface.F90 is included in the distribution, and Automake knows -# how to compile a fortran program given its sources. -H5_test_buildiface_SOURCES = H5_test_buildiface.F90 - -# The build of the H5_test_buildiface does depend on any libraries, so set it -# to nothing. -H5_test_buildiface_LDADD = - # Automake needs to be taught how to build lib, progs, and tests targets. # These will be filled in automatically for the most part (e.g., # lib_LIBRARIES are built for lib target), but EXTRA_LIB, EXTRA_PROG, and @@ -804,7 +812,7 @@ TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chkexe_) all: all-am .SUFFIXES: -.SUFFIXES: .F90 .c .f90 .lo .log .o .obj .sh .sh$(EXEEXT) .trs +.SUFFIXES: .c .f90 .lo .log .o .obj .sh .sh$(EXEEXT) .trs $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/config/commence.am $(top_srcdir)/config/conclude.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -860,19 +868,6 @@ clean-checkPROGRAMS: echo " rm -f" $$list; \ rm -f $$list -clean-noinstPROGRAMS: - @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -H5_test_buildiface$(EXEEXT): $(H5_test_buildiface_OBJECTS) $(H5_test_buildiface_DEPENDENCIES) $(EXTRA_H5_test_buildiface_DEPENDENCIES) - @rm -f H5_test_buildiface$(EXEEXT) - $(AM_V_FCLD)$(FCLINK) $(H5_test_buildiface_OBJECTS) $(H5_test_buildiface_LDADD) $(LIBS) - fflush1$(EXEEXT): $(fflush1_OBJECTS) $(fflush1_DEPENDENCIES) $(EXTRA_fflush1_DEPENDENCIES) @rm -f fflush1$(EXEEXT) $(AM_V_FCLD)$(FCLINK) $(fflush1_OBJECTS) $(fflush1_LDADD) $(LIBS) @@ -901,15 +896,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t.Plo@am__quote@ -.F90.o: - $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $< - -.F90.obj: - $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.F90.lo: - $(AM_V_PPFC)$(LTPPFCCOMPILE) -c -o $@ $< - .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @@ -1302,7 +1288,7 @@ check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am -all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) all-local +all-am: Makefile $(LTLIBRARIES) all-local installdirs: install: install-am install-exec: install-exec-am @@ -1341,7 +1327,7 @@ maintainer-clean-generic: clean: clean-am clean-am: clean-checkPROGRAMS clean-generic clean-libtool clean-local \ - clean-noinstLTLIBRARIES clean-noinstPROGRAMS mostlyclean-am + clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) @@ -1414,19 +1400,19 @@ uninstall-am: .PHONY: CTAGS GTAGS TAGS all all-am all-local check check-TESTS \ check-am clean clean-checkPROGRAMS clean-generic clean-libtool \ - clean-local clean-noinstLTLIBRARIES clean-noinstPROGRAMS \ - cscopelist-am ctags ctags-am distclean distclean-compile \ - distclean-generic distclean-libtool distclean-local \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic \ - maintainer-clean-local mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool mostlyclean-local pdf \ - pdf-am ps ps-am recheck tags tags-am uninstall uninstall-am + clean-local clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-local distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic maintainer-clean-local mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + mostlyclean-local pdf pdf-am ps ps-am recheck tags tags-am \ + uninstall uninstall-am # @@ -1467,15 +1453,9 @@ maintainer-clean-local: clean-local distclean-local: clean-local clean-local: @if test -n "$(F9XMODEXT)" && test "X$(F9XMODEXT)" != "Xo"; then \ - $(RM) *.$(F9XMODEXT) tf_gen.F90; \ + $(RM) *.$(F9XMODEXT); \ fi -# H5_test_buildiface.F90 generates all the test APIs that have a KIND type associated -# with them. - -tf_gen.F90: H5_test_buildiface$(EXEEXT) - $(RUNSERIAL) ./H5_test_buildiface$(EXEEXT) - # fflush2 depends on files created by fflush1 fflush2.chkexe_: fflush1.chkexe_ diff --git a/fortran/test/fflush2.f90 b/fortran/test/fflush2.f90 index 4230832..04ce439 100644 --- a/fortran/test/fflush2.f90 +++ b/fortran/test/fflush2.f90 @@ -27,151 +27,152 @@ ! !***** -PROGRAM FFLUSH2EXAMPLE - - USE HDF5 ! This module contains all necessary modules - USE TH5_MISC - - IMPLICIT NONE - - CHARACTER(LEN=7), PARAMETER :: filename = "fflush1" - CHARACTER(LEN=80) :: fix_filename - - ! - !data space rank and dimensions - ! - INTEGER, PARAMETER :: NX = 4 - INTEGER, PARAMETER :: NY = 5 - - ! - ! File identifiers - ! - INTEGER(HID_T) :: file_id - - ! - ! Group identifier - ! - INTEGER(HID_T) :: gid - - ! - ! dataset identifier - ! - INTEGER(HID_T) :: dset_id - - - ! - ! data type identifier - ! - INTEGER(HID_T) :: dtype_id - - ! - !flag to check operation success - ! - INTEGER :: error - - ! - !general purpose integer - ! - INTEGER :: i, j, total_error = 0 - - ! - !data buffers - ! - INTEGER, DIMENSION(NX,NY) :: data_out - INTEGER(HSIZE_T), DIMENSION(2) :: data_dims - data_dims(1) = NX - data_dims(2) = NY - - ! - !Initialize FORTRAN predifined datatypes - ! - CALL h5open_f(error) - CALL check("h5open_f",error,total_error) - - ! - !Open the file. - ! - CALL h5_fixname_f(filename, fix_filename, H5P_DEFAULT_F, error) - IF (error .NE. 0) THEN - WRITE(*,*) "Cannot modify filename" - CALL h5_exit_f (1) - ENDIF - CALL h5fopen_f(fix_filename, H5F_ACC_RDONLY_F, file_id, error) - CALL check("h5fopen_f",error,total_error) - - ! - !Open the dataset - ! - CALL h5dopen_f(file_id, "/D", dset_id, error) - CALL check("h5dopen_f",error,total_error) - - ! - !Get dataset's data type. - ! - CALL h5dget_type_f(dset_id, dtype_id, error) - CALL check("h5dget_type_f",error,total_error) - ! - !Read the dataset. - ! - CALL h5dread_f(dset_id, dtype_id, data_out, data_dims, error) - CALL check("h5dread_f",error,total_error) - - ! - !Print the dataset. - ! - DO i = 1, NX - WRITE(*,*) (data_out(i,j), j = 1, NY) - END DO - ! - !result of the print statement - ! - ! 0, 1, 2, 3, 4 - ! 1, 2, 3, 4, 5 - ! 2, 3, 4, 5, 6 - ! 3, 4, 5, 6, 7 - - ! - !Open the group. - ! - CALL h5gopen_f(file_id, "G", gid, error) - CALL check("h5gopen_f",error,total_error) - - ! - !In case error happens, exit. - ! - IF (error == -1) CALL h5_exit_f (1) - ! - !Close the datatype - ! - CALL h5tclose_f(dtype_id, error) - CALL check("h5tclose_f",error,total_error) - - ! - !Close the dataset. - ! - CALL h5dclose_f(dset_id, error) - CALL check("h5dclose_f",error,total_error) - - ! - !Close the group. - ! - CALL h5gclose_f(gid, error) - CALL check("h5gclose_f",error,total_error) - - ! - !Close the file. - ! - CALL h5fclose_f(file_id, error) - CALL check("h5fclose_f",error,total_error) - - ! - !Close FORTRAN predifined datatypes - ! - CALL h5_cleanup_f(filename, H5P_DEFAULT_F, error) - CALL h5close_f(error) - CALL check("h5close_types_f",error,total_error) - - ! if errors detected, exit with non-zero code. - IF (total_error .ne. 0) CALL h5_exit_f (1) - -END PROGRAM FFLUSH2EXAMPLE + PROGRAM FFLUSH2EXAMPLE + + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC + + IMPLICIT NONE + + CHARACTER(LEN=7), PARAMETER :: filename = "fflush1" + CHARACTER(LEN=80) :: fix_filename + + ! + !data space rank and dimensions + ! + INTEGER, PARAMETER :: NX = 4 + INTEGER, PARAMETER :: NY = 5 + + ! + ! File identifiers + ! + INTEGER(HID_T) :: file_id + + ! + ! Group identifier + ! + INTEGER(HID_T) :: gid + + ! + ! dataset identifier + ! + INTEGER(HID_T) :: dset_id + + + ! + ! data type identifier + ! + INTEGER(HID_T) :: dtype_id + + ! + !flag to check operation success + ! + INTEGER :: error + + ! + !general purpose integer + ! + INTEGER :: i, j, total_error = 0 + + ! + !data buffers + ! + INTEGER, DIMENSION(NX,NY) :: data_out + INTEGER(HSIZE_T), DIMENSION(2) :: data_dims + data_dims(1) = NX + data_dims(2) = NY + + ! + !Initialize FORTRAN predifined datatypes + ! + CALL h5open_f(error) + CALL check("h5open_f",error,total_error) + + ! + !Open the file. + ! + CALL h5_fixname_f(filename, fix_filename, H5P_DEFAULT_F, error) + if (error .ne. 0) then + write(*,*) "Cannot modify filename" + CALL h5_exit_f (1) + endif + CALL h5fopen_f(fix_filename, H5F_ACC_RDONLY_F, file_id, error) + CALL check("h5fopen_f",error,total_error) + + ! + !Open the dataset + ! + CALL h5dopen_f(file_id, "/D", dset_id, error) + CALL check("h5dopen_f",error,total_error) + + ! + !Get dataset's data type. + ! + CALL h5dget_type_f(dset_id, dtype_id, error) + CALL check("h5dget_type_f",error,total_error) + + ! + !Read the dataset. + ! + CALL h5dread_f(dset_id, dtype_id, data_out, data_dims, error) + CALL check("h5dread_f",error,total_error) + + ! + !Print the dataset. + ! + do i = 1, NX + write(*,*) (data_out(i,j), j = 1, NY) + end do +! +!result of the print statement +! +! 0, 1, 2, 3, 4 +! 1, 2, 3, 4, 5 +! 2, 3, 4, 5, 6 +! 3, 4, 5, 6, 7 + + ! + !Open the group. + ! + CALL h5gopen_f(file_id, "G", gid, error) + CALL check("h5gopen_f",error,total_error) + + ! + !In case error happens, exit. + ! + IF (error == -1) CALL h5_exit_f (1) + ! + !Close the datatype + ! + CALL h5tclose_f(dtype_id, error) + CALL check("h5tclose_f",error,total_error) + + ! + !Close the dataset. + ! + CALL h5dclose_f(dset_id, error) + CALL check("h5dclose_f",error,total_error) + + ! + !Close the group. + ! + CALL h5gclose_f(gid, error) + CALL check("h5gclose_f",error,total_error) + + ! + !Close the file. + ! + CALL h5fclose_f(file_id, error) + CALL check("h5fclose_f",error,total_error) + + ! + !Close FORTRAN predifined datatypes + ! + CALL h5_cleanup_f(filename, H5P_DEFAULT_F, error) + CALL h5close_f(error) + CALL check("h5close_types_f",error,total_error) + + ! if errors detected, exit with non-zero code. + IF (total_error .ne. 0) CALL h5_exit_f (1) + + END PROGRAM FFLUSH2EXAMPLE diff --git a/fortran/test/tH5A.f90 b/fortran/test/tH5A.f90 index 5b814fa..e3b3b2a 100644 --- a/fortran/test/tH5A.f90 +++ b/fortran/test/tH5A.f90 @@ -29,10 +29,6 @@ !***** MODULE TH5A - USE HDF5 ! This module contains all necessary modules - USE TH5_MISC - USE TH5_MISC_GEN - CONTAINS SUBROUTINE attribute_test(cleanup, total_error) @@ -40,6 +36,9 @@ CONTAINS ! h5acreate_f, h5awrite_f, h5aclose_f,h5aread_f, h5aopen_name_f, ! h5aget_name_f,h5aget_space_f, h5aget_type_f, ! + + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC IMPLICIT NONE LOGICAL, INTENT(IN) :: cleanup INTEGER, INTENT(INOUT) :: total_error @@ -310,7 +309,7 @@ CONTAINS ! CALL h5aget_storage_size_f(attr_id, attr_storage, error) CALL check("h5aget_storage_size_f",error,total_error) -! CALL verify("h5aget_storage_size_f",attr_storage,*SizeOf(attr_storage),total_error) +! CALL VERIFY("h5aget_storage_size_f",attr_storage,*SizeOf(attr_storage),total_error) CALL h5aget_storage_size_f(attr2_id, attr_storage, error) CALL check("h5aget_storage_size_f",error,total_error) ! CALL verify("h5aget_storage_size_f",attr_storage,1,total_error) @@ -518,15 +517,21 @@ CONTAINS data_dims(1) = 1 CALL h5aread_f(attr3_id, H5T_NATIVE_DOUBLE, aread_double_data, data_dims, error) CALL check("h5aread_f",error,total_error) - CALL VERIFY("Read back double attrbute is wrong", aread_double_data(1),3.459_Fortran_DOUBLE,total_error) + IF( .NOT.dreal_eq( REAL(aread_double_data(1),dp), 3.459_dp) )THEN + WRITE(*,*) "Read back double attrbute is wrong", aread_double_data(1) + total_error = total_error + 1 + ENDIF ! !read the real attribute data back to memory ! data_dims(1) = 1 CALL h5aread_f(attr4_id, H5T_NATIVE_REAL, aread_real_data, data_dims, error) CALL check("h5aread_f",error,total_error) - CALL VERIFY("Read back real attrbute is wrong", aread_real_data(1),4.0,total_error) + IF( .NOT.dreal_eq( REAL(aread_real_data(1),dp), 4.0_dp) )THEN + WRITE(*,*) "Read back real attrbute is wrong", aread_real_data(1) + total_error = total_error + 1 + ENDIF ! !read the Integer attribute data back to memory ! diff --git a/fortran/test/tH5A_1_8.f90 b/fortran/test/tH5A_1_8.f90 index c70e288..8e20100 100644 --- a/fortran/test/tH5A_1_8.f90 +++ b/fortran/test/tH5A_1_8.f90 @@ -32,10 +32,6 @@ !***** MODULE TH5A_1_8 - USE HDF5 ! This module contains all necessary modules - USE TH5_MISC - USE TH5_MISC_GEN - CONTAINS SUBROUTINE attribute_test_1_8(cleanup, total_error) @@ -45,6 +41,8 @@ SUBROUTINE attribute_test_1_8(cleanup, total_error) ! H5Pset_shared_mesg_index_f ! + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC IMPLICIT NONE LOGICAL, INTENT(IN) :: cleanup @@ -201,6 +199,8 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error) ! Needed for get_info_by_name + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC IMPLICIT NONE @@ -350,7 +350,7 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error) ! Verify creation order of attribute - CALL verify("H5Aget_info_by_name_f", f_corder_valid, .TRUE., total_error) + CALL verifyLogical("H5Aget_info_by_name_f", f_corder_valid, .TRUE., total_error) CALL verify("H5Aget_info_by_name_f", corder, u, total_error) @@ -363,7 +363,7 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error) ! Verify creation order of attribute - CALL verify("H5Aget_info_by_name_f", f_corder_valid, .TRUE., total_error) + CALL verifyLogical("H5Aget_info_by_name_f", f_corder_valid, .TRUE., total_error) CALL verify("H5Aget_info_by_name_f", corder, u, total_error) END DO @@ -389,7 +389,8 @@ SUBROUTINE test_attr_null_space(fcpl, fapl, total_error) !** Tests storing attribute with "null" dataspace !** !*************************************************************** - + USE HDF5 + USE TH5_MISC IMPLICIT NONE @@ -472,22 +473,22 @@ SUBROUTINE test_attr_null_space(fcpl, fapl, total_error) CALL H5Sextent_equal_f(attr_sid, null_sid, equal, error) CALL check("H5Sextent_equal_f",error,total_error) - CALL verify("H5Sextent_equal_f",equal,.TRUE.,total_error) + CALL Verifylogical("H5Sextent_equal_f",equal,.TRUE.,total_error) 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) + CALL VERIFY("h5aget_storage_size_f",INT(storage_size),0,total_error) CALL h5aget_info_f(attr, f_corder_valid, corder, cset, data_size, error) CALL check("h5aget_info_f", error, total_error) ! Check the attribute's information - CALL verify("h5aget_info_f.corder",corder,0,total_error) + CALL VERIFY("h5aget_info_f.corder",corder,0,total_error) - CALL verify("h5aget_info_f.cset", cset, H5T_CSET_ASCII_F, total_error) + CALL VERIFY("h5aget_info_f.cset", cset, H5T_CSET_ASCII_F, total_error) CALL h5aget_storage_size_f(attr, storage_size, error) CALL check("h5aget_storage_size_f",error,total_error) - CALL verify("h5aget_info_f.data_size", INT(data_size), INT(storage_size), total_error) + CALL VERIFY("h5aget_info_f.data_size", INT(data_size), INT(storage_size), total_error) CALL h5aclose_f(attr,error) CALL check("h5aclose_f",error,total_error) @@ -519,6 +520,9 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error) !** !*************************************************************** + USE HDF5 + USE TH5_MISC + IMPLICIT NONE INTEGER(SIZE_T), PARAMETER :: NAME_BUF_SIZE = 7 @@ -731,6 +735,9 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error) !** !*************************************************************** + USE HDF5 + USE TH5_MISC + IMPLICIT NONE LOGICAL :: new_format @@ -852,24 +859,24 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error) CALL h5aget_info_by_idx_f(my_dataset, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, 0_hsize_t, & f_corder_valid, corder, cset, data_size, error, lapl_id=H5P_DEFAULT_F) - CALL verify("h5aget_info_by_idx_f",error,minusone,total_error) + CALL VERIFY("h5aget_info_by_idx_f",error,minusone,total_error) ! 2) call by passing an integer with the INT(,hsize_t) declaration CALL h5aget_info_by_idx_f(my_dataset, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, INT(0,hsize_t), & f_corder_valid, corder, cset, data_size, error, lapl_id=H5P_DEFAULT_F) - CALL verify("h5aget_info_by_idx_f",error,minusone,total_error) + CALL VERIFY("h5aget_info_by_idx_f",error,minusone,total_error) ! 3) call by passing a variable with the attribute hsize_t CALL h5aget_info_by_idx_f(my_dataset, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, hzero, & f_corder_valid, corder, cset, data_size, error, lapl_id=H5P_DEFAULT_F) - CALL verify("h5aget_info_by_idx_f",error,minusone,total_error) + CALL VERIFY("h5aget_info_by_idx_f",error,minusone,total_error) CALL h5aget_name_by_idx_f(my_dataset, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, & hzero, tmpname, error, size, lapl_id=H5P_DEFAULT_F) - CALL verify("h5aget_name_by_idx_f",error,minusone,total_error) + CALL VERIFY("h5aget_name_by_idx_f",error,minusone,total_error) ! Create attributes, up to limit of compact form @@ -934,6 +941,9 @@ END SUBROUTINE test_attr_info_by_idx SUBROUTINE attr_info_by_idx_check(obj_id, attrname, n, use_index, total_error ) + USE HDF5 + USE TH5_MISC + IMPLICIT NONE INTEGER :: error, total_error @@ -964,7 +974,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) + CALL VERIFY("h5aget_info_by_idx_f",corder,INT(n),total_error) ! Verify the name for new link, in increasing creation order @@ -973,12 +983,12 @@ SUBROUTINE attr_info_by_idx_check(obj_id, attrname, n, use_index, total_error ) CALL h5aget_name_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, & n, tmpname, error, NAME_BUF_SIZE) CALL check("h5aget_name_by_idx_f",error,total_error) - CALL verify("h5aget_name_by_idx_f", INT(NAME_BUF_SIZE), 7, error) + CALL VERIFY("h5aget_name_by_idx_f", INT(NAME_BUF_SIZE), 7, error) IF(attrname.NE.tmpname)THEN error = -1 ENDIF - CALL verify("h5aget_name_by_idx_f",error,0,total_error) + CALL VERIFY("h5aget_name_by_idx_f",error,0,total_error) ! Don't test "native" order if there is no creation order index, since ! * there's not a good way to easily predict the attribute's order in the name @@ -989,13 +999,13 @@ SUBROUTINE attr_info_by_idx_check(obj_id, attrname, n, use_index, total_error ) CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_NATIVE_F, hzero, & 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,0,total_error) + CALL VERIFY("h5aget_info_by_idx_f",corder,0,total_error) ! Verify the information for new attribute, in native creation order CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_NATIVE_F, n, & 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) + CALL VERIFY("h5aget_info_by_idx_f",corder,INT(n),total_error) ! Verify the name for new link, in increasing native order CALL h5aget_name_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_NATIVE_F, & @@ -1005,14 +1015,14 @@ SUBROUTINE attr_info_by_idx_check(obj_id, attrname, n, use_index, total_error ) WRITE(*,*) "ERROR: attribute name size wrong!" error = -1 ENDIF - CALL verify("h5aget_name_by_idx_f",error,0,total_error) + CALL VERIFY("h5aget_name_by_idx_f",error,0,total_error) END IF 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) - CALL verify("h5aget_info_by_idx_f",corder,0,total_error) + CALL VERIFY("h5aget_info_by_idx_f",corder,0,total_error) !EP CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_DEC_F, 0_HSIZE_T, & @@ -1023,41 +1033,41 @@ SUBROUTINE attr_info_by_idx_check(obj_id, attrname, n, use_index, total_error ) CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_DEC_F, 0_HSIZE_T, & 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) + CALL VERIFY("h5aget_info_by_idx_f",corder,INT(n),total_error) ! 2) call by passing an integer with the INT(,hsize_t) declaration CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_DEC_F, INT(0,HSIZE_T), & 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) + CALL VERIFY("h5aget_info_by_idx_f",corder,INT(n),total_error) ! 3) call by passing a variable with the attribute hsize_t CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_DEC_F, hzero, & 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) + CALL VERIFY("h5aget_info_by_idx_f",corder,INT(n),total_error) !EP CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_NAME_F, H5_ITER_INC_F, 0_HSIZE_T, & CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_NAME_F, H5_ITER_INC_F, hzero, & 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,0,total_error) + CALL VERIFY("h5aget_info_by_idx_f",corder,0,total_error) CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_NAME_F, H5_ITER_INC_F, n, & 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) + CALL VERIFY("h5aget_info_by_idx_f",corder,INT(n),total_error) 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) - CALL verify("h5aget_info_by_idx_f",corder,0,total_error) + CALL VERIFY("h5aget_info_by_idx_f",corder,0,total_error) !EP CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_NAME_F, H5_ITER_DEC_F, 0_HSIZE_T, & CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_NAME_F, H5_ITER_DEC_F, hzero, & 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) + CALL VERIFY("h5aget_info_by_idx_f",corder,INT(n),total_error) END SUBROUTINE attr_info_by_idx_check @@ -1072,6 +1082,9 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error) !** !*************************************************************** + USE HDF5 + USE TH5_MISC + IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: fcpl @@ -1358,7 +1371,7 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error) ! Check size of file !filesize = h5_get_file_size(FILENAME); - !verify(filesize, empty_filesize, "h5_get_file_size"); + !VERIFY(filesize, empty_filesize, "h5_get_file_size"); ENDDO ! Close dataspaces @@ -1379,6 +1392,9 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) !** !*************************************************************** + USE HDF5 + USE TH5_MISC + IMPLICIT NONE LOGICAL, INTENT(IN) :: new_format @@ -1502,7 +1518,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) ! 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) CALL H5Adelete_by_idx_f(my_dataset, '.', idx_type, order, hzero,error, lapl_id=H5P_DEFAULT_F) - CALL verify("H5Adelete_by_idx_f",error,minusone,total_error) + CALL VERIFY("H5Adelete_by_idx_f",error,minusone,total_error) ! Create attributes, up to limit of compact form DO u = 0, max_compact - 1 @@ -1530,7 +1546,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) ! 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) + CALL VERIFY("H5Adelete_by_idx_f",error,minusone,total_error) ENDDO @@ -1568,10 +1584,10 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) IF(new_format)THEN IF(order.EQ.H5_ITER_INC_F)THEN - CALL verify("H5Aget_info_by_idx_f",corder,u + 1,total_error) + CALL VERIFY("H5Aget_info_by_idx_f",corder,u + 1,total_error) ENDIF ELSE - CALL verify("H5Aget_info_by_idx_f",corder, max_compact-(u + 2),total_error) + CALL VERIFY("H5Aget_info_by_idx_f",corder, max_compact-(u + 2),total_error) ENDIF ! Verify the name for first attribute in appropriate order @@ -1588,7 +1604,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) attrname = 'attr '//chr2 ENDIF IF(TRIM(attrname).NE.TRIM(tmpname)) error = -1 - CALL verify("h5aget_name_by_idx_f",error,0,total_error) + CALL VERIFY("h5aget_name_by_idx_f",error,0,total_error) ENDDO ! Delete last attribute @@ -1639,7 +1655,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) ENDDO ! 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) + CALL VERIFY("H5Adelete_by_idx_f",error,minusone,total_error) ENDDO ! Work on all the datasets @@ -1668,10 +1684,10 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) f_corder_valid, corder, cset, data_size, error) IF(new_format)THEN IF(order.EQ.H5_ITER_INC_F)THEN - CALL verify("H5Aget_info_by_idx_f",corder,u + 1,total_error) + CALL VERIFY("H5Aget_info_by_idx_f",corder,u + 1,total_error) ENDIF ELSE - CALL verify("H5Aget_info_by_idx_f",corder, ((max_compact * 2) - (u + 2)), total_error) + CALL VERIFY("H5Aget_info_by_idx_f",corder, ((max_compact * 2) - (u + 2)), total_error) ENDIF ! Verify the name for first attribute in appropriate order @@ -1689,7 +1705,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) attrname = 'attr '//chr2 ENDIF IF(TRIM(attrname).NE.TRIM(tmpname)) error = -1 - CALL verify("h5aget_name_by_idx_f",error,0,total_error) + CALL VERIFY("h5aget_name_by_idx_f",error,0,total_error) ENDDO @@ -1700,7 +1716,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) ! Check for deletion on empty attribute storage again CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, INT(0,HSIZE_T), error) - CALL verify("H5Adelete_by_idx_f",error,minusone,total_error) + CALL VERIFY("H5Adelete_by_idx_f",error,minusone,total_error) ENDDO ! Close Datasets @@ -1737,6 +1753,9 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error) !** !*************************************************************** + USE HDF5 + USE TH5_MISC + IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: fcpl @@ -2011,6 +2030,9 @@ SUBROUTINE test_attr_dense_open( fcpl, fapl, total_error) !** !*************************************************************** + USE HDF5 + USE TH5_MISC + IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: fcpl @@ -2147,7 +2169,7 @@ SUBROUTINE test_attr_dense_open( fcpl, fapl, total_error) ! Check size of file ! filesize = h5_get_file_size(FILENAME); - ! verify(filesize, empty_filesize, "h5_get_file_size") + ! VERIFY(filesize, empty_filesize, "h5_get_file_size") END SUBROUTINE test_attr_dense_open @@ -2160,6 +2182,9 @@ END SUBROUTINE test_attr_dense_open SUBROUTINE test_attr_dense_verify(loc_id, max_attr, total_error) + USE HDF5 + USE TH5_MISC + IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: loc_id @@ -2202,7 +2227,7 @@ SUBROUTINE test_attr_dense_verify(loc_id, max_attr, total_error) CALL h5aread_f(attr, H5T_NATIVE_INTEGER, value, data_dims, error) CALL CHECK("H5Aread_F", error, total_error) - CALL verify("H5Aread_F", value, u, total_error) + CALL VERIFY("H5Aread_F", value, u, total_error) ! Close attribute CALL h5aclose_f(attr, error) @@ -2234,7 +2259,7 @@ SUBROUTINE test_attr_dense_verify(loc_id, max_attr, total_error) data_dims(1) = 1 CALL h5aread_f(attr, H5T_NATIVE_INTEGER, value, data_dims, error) CALL CHECK("H5Aread_f", error, total_error) - CALL verify("H5Aread_f", value, u, total_error) + CALL VERIFY("H5Aread_f", value, u, total_error) ! Close attribute @@ -2253,6 +2278,9 @@ END SUBROUTINE test_attr_dense_verify SUBROUTINE test_attr_corder_create_basic( fcpl, fapl, total_error ) + USE HDF5 + USE TH5_MISC + IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: fcpl @@ -2286,14 +2314,14 @@ SUBROUTINE test_attr_corder_create_basic( fcpl, fapl, total_error ) ! Get creation order indexing on object CALL H5Pget_attr_creation_order_f(dcpl, crt_order_flags, error) CALL check("H5Pget_attr_creation_order_f",error,total_error) - CALL verify("H5Pget_attr_creation_order_f",crt_order_flags , 0, total_error) + CALL VERIFY("H5Pget_attr_creation_order_f",crt_order_flags , 0, total_error) ! Setting invalid combination of a attribute order creation order indexing on should fail CALL H5Pset_attr_creation_order_f(dcpl, H5P_CRT_ORDER_INDEXED_F, error) - CALL verify("H5Pset_attr_creation_order_f",error , minusone, total_error) + CALL VERIFY("H5Pset_attr_creation_order_f",error , minusone, total_error) CALL H5Pget_attr_creation_order_f(dcpl, crt_order_flags, error) CALL check("H5Pget_attr_creation_order_f",error,total_error) - CALL verify("H5Pget_attr_creation_order_f",crt_order_flags , 0, total_error) + CALL VERIFY("H5Pget_attr_creation_order_f",crt_order_flags , 0, total_error) ! Set attribute creation order tracking & indexing for object CALL h5pset_attr_creation_order_f(dcpl, IOR(H5P_CRT_ORDER_TRACKED_F, H5P_CRT_ORDER_INDEXED_F), error) @@ -2301,7 +2329,7 @@ SUBROUTINE test_attr_corder_create_basic( fcpl, fapl, total_error ) CALL H5Pget_attr_creation_order_f(dcpl, crt_order_flags, error) CALL check("H5Pget_attr_creation_order_f",error,total_error) - CALL verify("H5Pget_attr_creation_order_f",crt_order_flags , & + CALL VERIFY("H5Pget_attr_creation_order_f",crt_order_flags , & IOR(H5P_CRT_ORDER_TRACKED_F, H5P_CRT_ORDER_INDEXED_F), total_error) ! Create dataspace for dataset @@ -2346,7 +2374,7 @@ SUBROUTINE test_attr_corder_create_basic( fcpl, fapl, total_error ) ! Query the attribute creation properties CALL H5Pget_attr_creation_order_f(dcpl, crt_order_flags, error) CALL check("H5Pget_attr_creation_order_f",error,total_error) - CALL verify("H5Pget_attr_creation_order_f",crt_order_flags , & + CALL VERIFY("H5Pget_attr_creation_order_f",crt_order_flags , & IOR(H5P_CRT_ORDER_TRACKED_F, H5P_CRT_ORDER_INDEXED_F), total_error ) ! Close property list @@ -2373,6 +2401,9 @@ END SUBROUTINE test_attr_corder_create_basic SUBROUTINE test_attr_basic_write(fapl, total_error) + USE HDF5 + USE TH5_MISC + IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: fapl @@ -2481,7 +2512,7 @@ SUBROUTINE test_attr_basic_write(fapl, total_error) CALL h5aget_storage_size_f(attr, attr_size, 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) +!EP CALL VERIFY("h5aget_storage_size_f", INT(attr_size), 2*HSIZE_T, total_error) ! Read attribute information immediately, without closing attribute @@ -2490,7 +2521,7 @@ SUBROUTINE test_attr_basic_write(fapl, total_error) ! Verify values read in DO i = 1, ATTR1_DIM1 - CALL verify('h5aread_f',attr_data1(i),read_data1(i), total_error) + CALL VERIFY('h5aread_f',attr_data1(i),read_data1(i), total_error) ENDDO ! CLOSE attribute @@ -2539,7 +2570,7 @@ SUBROUTINE test_attr_basic_write(fapl, total_error) size = 18 CALL H5Aget_name_f(attr, size, chr_exact_size, error) CALL check('H5Aget_name_f',error,total_error) - CALL verify('H5Aget_name_f',chr_exact_size,ATTR_TMP_NAME, total_error) + CALL VerifyString('H5Aget_name_f',chr_exact_size,ATTR_TMP_NAME, total_error) ! Close attribute CALL h5aclose_f(attr, error) @@ -2568,6 +2599,9 @@ END SUBROUTINE test_attr_basic_write SUBROUTINE test_attr_many(new_format, fcpl, fapl, total_error) + USE HDF5 + USE TH5_MISC + IMPLICIT NONE LOGICAL, INTENT(IN) :: new_format @@ -2622,19 +2656,19 @@ SUBROUTINE test_attr_many(new_format, fcpl, fapl, total_error) WRITE(chr5,'(I5.5)') u attrname = 'attr '//chr5 CALL H5Aexists_f( gid, attrname, exists, error) - CALL verify("H5Aexists",exists,.FALSE.,total_error ) + CALL VerifyLogical("H5Aexists",exists,.FALSE.,total_error ) CALL H5Aexists_by_name_f(fid, GROUP1_NAME, attrname, exists, error, lapl_id = H5P_DEFAULT_F) - CALL verify("H5Aexists_by_name_f",exists,.FALSE.,total_error ) + CALL VerifyLogical("H5Aexists_by_name_f",exists,.FALSE.,total_error ) CALL h5acreate_f(gid, attrname, H5T_NATIVE_INTEGER, sid, aid, error, H5P_DEFAULT_F, H5P_DEFAULT_F) CALL check("h5acreate_f",error,total_error) CALL H5Aexists_f(gid, attrname, exists, error) - CALL verify("H5Aexists",exists,.TRUE.,total_error ) + CALL VerifyLogical("H5Aexists",exists,.TRUE.,total_error ) CALL H5Aexists_by_name_f(fid, GROUP1_NAME, attrname, exists, error) - CALL verify("H5Aexists_by_name_f",exists,.TRUE.,total_error ) + CALL VerifyLogical("H5Aexists_by_name_f",exists,.TRUE.,total_error ) attr_data1(1) = u data_dims(1) = 1 @@ -2646,10 +2680,10 @@ SUBROUTINE test_attr_many(new_format, fcpl, fapl, total_error) CALL check("h5aclose_f",error,total_error) CALL H5Aexists_f(gid, attrname, exists, error) - CALL verify("H5Aexists",exists,.TRUE.,total_error ) + CALL VerifyLogical("H5Aexists",exists,.TRUE.,total_error ) CALL H5Aexists_by_name_f(fid, GROUP1_NAME, attrname, exists, error) - CALL verify("H5Aexists_by_name_f",exists,.TRUE.,total_error ) + CALL VerifyLogical("H5Aexists_by_name_f",exists,.TRUE.,total_error ) ENDDO @@ -2683,6 +2717,9 @@ END SUBROUTINE test_attr_many SUBROUTINE attr_open_check(fid, dsetname, obj_id, max_attrs, total_error ) + USE HDF5 + USE TH5_MISC + IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: fid CHARACTER(LEN=*), INTENT(IN) :: dsetname @@ -2720,13 +2757,13 @@ SUBROUTINE attr_open_check(fid, dsetname, obj_id, max_attrs, total_error ) CALL check("h5aget_info_f",error,total_error) ! Check that the object's attributes are correct - CALL verify("h5aget_info_f.corder",corder,u,total_error) - CALL verify("h5aget_info_f.corder_valid",f_corder_valid,.TRUE.,total_error) - CALL verify("h5aget_info_f.cset", cset, H5T_CSET_ASCII_F, total_error) + CALL VERIFY("h5aget_info_f.corder",corder,u,total_error) + CALL Verifylogical("h5aget_info_f.corder_valid",f_corder_valid,.TRUE.,total_error) + CALL VERIFY("h5aget_info_f.cset", cset, H5T_CSET_ASCII_F, total_error) CALL h5aget_storage_size_f(attr_id, storage_size, error) CALL check("h5aget_storage_size_f",error,total_error) - CALL verify("h5aget_info_f.data_size", INT(data_size), INT(storage_size), total_error) + CALL VERIFY("h5aget_info_f.data_size", INT(data_size), INT(storage_size), total_error) ! Close attribute @@ -2741,12 +2778,12 @@ SUBROUTINE attr_open_check(fid, dsetname, obj_id, max_attrs, total_error ) CALL h5aget_info_f(attr_id, f_corder_valid, corder, cset, data_size, error) CALL check("h5aget_info_f",error,total_error) ! Check the attribute's information - CALL verify("h5aget_info_f",corder,u,total_error) - CALL verify("h5aget_info_f",f_corder_valid,.TRUE.,total_error) - CALL verify("h5aget_info_f", cset, H5T_CSET_ASCII_F, total_error) + CALL VERIFY("h5aget_info_f",corder,u,total_error) + CALL Verifylogical("h5aget_info_f",f_corder_valid,.TRUE.,total_error) + CALL VERIFY("h5aget_info_f", cset, H5T_CSET_ASCII_F, total_error) CALL h5aget_storage_size_f(attr_id, storage_size, error) CALL check("h5aget_storage_size_f",error,total_error) - CALL verify("h5aget_info_f", INT(data_size), INT(storage_size), total_error) + CALL VERIFY("h5aget_info_f", INT(data_size), INT(storage_size), total_error) ! Close attribute CALL h5aclose_f(attr_id, error) @@ -2763,12 +2800,12 @@ SUBROUTINE attr_open_check(fid, dsetname, obj_id, max_attrs, total_error ) CALL check("h5aget_info_f",error,total_error) ! Check the attribute's information - CALL verify("h5aget_info_f",corder,u,total_error) - CALL verify("h5aget_info_f",f_corder_valid,.TRUE.,total_error) - CALL verify("h5aget_info_f", cset, H5T_CSET_ASCII_F, total_error) + CALL VERIFY("h5aget_info_f",corder,u,total_error) + CALL Verifylogical("h5aget_info_f",f_corder_valid,.TRUE.,total_error) + CALL VERIFY("h5aget_info_f", cset, H5T_CSET_ASCII_F, total_error) CALL h5aget_storage_size_f(attr_id, storage_size, error) CALL check("h5aget_storage_size_f",error,total_error) - CALL verify("h5aget_info_f", INT(data_size), INT(storage_size), total_error) + CALL VERIFY("h5aget_info_f", INT(data_size), INT(storage_size), total_error) ! Close attribute CALL h5aclose_f(attr_id, error) diff --git a/fortran/test/tH5D.f90 b/fortran/test/tH5D.f90 index b5febb3..c0eb8f9 100644 --- a/fortran/test/tH5D.f90 +++ b/fortran/test/tH5D.f90 @@ -36,477 +36,503 @@ ! MODULE TH5D - USE HDF5 ! This module contains all necessary modules - USE TH5_MISC - USE TH5_MISC_GEN - CONTAINS - SUBROUTINE datasettest(cleanup, total_error) - - IMPLICIT NONE - LOGICAL, INTENT(IN) :: cleanup - INTEGER, INTENT(OUT) :: total_error - - CHARACTER(LEN=5), PARAMETER :: filename = "dsetf" ! File name - CHARACTER(LEN=80) :: fix_filename - CHARACTER(LEN=4), PARAMETER :: dsetname = "dset" ! Dataset name - CHARACTER(LEN=9), PARAMETER :: null_dsetname = "null_dset" ! Dataset name - - INTEGER(HID_T) :: file_id ! File identifier - INTEGER(HID_T) :: dset_id ! Dataset identifier - INTEGER(HID_T) :: null_dset ! Null dataset identifier - INTEGER(HID_T) :: dspace_id ! Dataspace identifier - INTEGER(HID_T) :: null_dspace ! Null dataspace identifier - INTEGER(HID_T) :: dtype_id ! Datatype identifier - - INTEGER(HSIZE_T), DIMENSION(2) :: dims = (/4,6/) ! Dataset dimensions - INTEGER :: rank = 2 ! Dataset rank - - INTEGER, DIMENSION(4,6) :: dset_data, data_out ! Data buffers - INTEGER :: error ! Error flag - - INTEGER :: i, j !general purpose integers - INTEGER(HSIZE_T), DIMENSION(2) :: data_dims - INTEGER(HSIZE_T), DIMENSION(1) :: null_data_dim - INTEGER :: null_dset_data = 1 ! null data - INTEGER :: flag ! Space allocation status - - ! - ! Initialize the dset_data array. - ! - DO i = 1, 4 - DO j = 1, 6 - dset_data(i,j) = (i-1)*6 + j; - END DO - END DO - ! - ! Create a new file using default properties. - ! - CALL h5_fixname_f(filename, fix_filename, H5P_DEFAULT_F, error) - IF (error .NE. 0) THEN - WRITE(*,*) "Cannot modify filename" - STOP - ENDIF - CALL h5fcreate_f(fix_filename, H5F_ACC_TRUNC_F, file_id, error) - CALL check("h5fcreate_f", error, total_error) - ! - ! Create the dataspace. - ! - CALL h5screate_simple_f(rank, dims, dspace_id, error) - CALL check("h5screate_simple_f", error, total_error) - ! - ! Create null dataspace. - ! - CALL h5screate_f(H5S_NULL_F, null_dspace, error) - CALL check("h5screate_simple_f", error, total_error) - ! - ! Create the dataset with default properties. - ! - CALL h5dcreate_f(file_id, dsetname, H5T_NATIVE_INTEGER, dspace_id, & - dset_id, error) - CALL check("h5dcreate_f", error, total_error) - ! - ! Create the null dataset. - ! - CALL h5dcreate_f(file_id, null_dsetname, H5T_NATIVE_INTEGER, null_dspace, null_dset, error) - CALL check("h5dcreate_f", error, total_error) - ! - ! Write the dataset. - ! - data_dims(1) = 4 - data_dims(2) = 6 - CALL h5dwrite_f(dset_id, H5T_NATIVE_INTEGER, dset_data, data_dims, error) - CALL check("h5dwrite_f", error, total_error) - ! - ! Write null dataset. Nothing can be written. - ! - null_data_dim(1) = 1 - CALL h5dwrite_f(null_dset, H5T_NATIVE_INTEGER, null_dset_data, null_data_dim, error) - CALL check("h5dwrite_f", error, total_error) - ! - ! End access to the dataset and release resources used by it. - ! - CALL h5dclose_f(dset_id, error) - CALL check("h5dclose_f", error, total_error) - CALL h5dclose_f(null_dset, error) - CALL check("h5dclose_f", error, total_error) - ! - ! Terminate access to the data space. - ! - CALL h5sclose_f(dspace_id, error) - CALL check("h5sclose_f", error, total_error) - CALL h5sclose_f(null_dspace, error) - CALL check("h5sclose_f", error, total_error) - ! - ! Close the file. - ! - CALL h5fclose_f(file_id, error) - CALL check("h5fclose_f", error, total_error) - ! - ! Open the existing file. - ! - CALL h5fopen_f (fix_filename, H5F_ACC_RDWR_F, file_id, error) - CALL check("h5fopen_f", error, total_error) - ! - ! Open the existing dataset. - ! - CALL h5dopen_f(file_id, dsetname, dset_id, error) - CALL check("h5dopen_f", error, total_error) - CALL h5dopen_f(file_id, null_dsetname, null_dset, error) - CALL check("h5dopen_f", error, total_error) - - ! Test whether space has been allocated for a dataset - CALL h5dget_space_status_f(dset_id, flag, error) - CALL check("h5dget_space_status_f",error, total_error) - CALL VERIFY("h5dget_space_status_f", flag, H5D_SPACE_STS_ALLOCATED_F, total_error) - - CALL h5dget_space_status_f(null_dset, flag, error) - CALL check("h5dget_space_status_f",error, total_error) - CALL VERIFY("h5dget_space_status_f", flag, H5D_SPACE_STS_NOT_ALLOCATED_F, total_error) - ! - ! Get the dataset type. - ! - CALL h5dget_type_f(dset_id, dtype_id, error) - CALL check("h5dget_type_f", error, total_error) - ! - ! Get the data space. - ! - CALL h5dget_space_f(dset_id, dspace_id, error) - CALL check("h5dget_space_f", error, total_error) - ! - ! Read the dataset. - ! - CALL h5dread_f(dset_id, H5T_NATIVE_INTEGER, data_out, data_dims, error) - CALL check("h5dread_f", error, total_error) - ! - ! Read the null dataset. Nothing should be read. - ! - CALL h5dread_f(null_dset, H5T_NATIVE_INTEGER, null_dset_data, null_data_dim, error) - CALL check("h5dread_f", error, total_error) - ! - !Compare the data. - ! - DO i = 1, 4 - DO j = 1, 6 - IF (data_out(i,j) .NE. dset_data(i, j)) THEN - WRITE(*, *) "dataset test error occured" - WRITE(*,*) "data read is not the same as the data written" + SUBROUTINE datasettest(cleanup, total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC + + IMPLICIT NONE + LOGICAL, INTENT(IN) :: cleanup + INTEGER, INTENT(OUT) :: total_error + + CHARACTER(LEN=5), PARAMETER :: filename = "dsetf" ! File name + CHARACTER(LEN=80) :: fix_filename + CHARACTER(LEN=4), PARAMETER :: dsetname = "dset" ! Dataset name + CHARACTER(LEN=9), PARAMETER :: null_dsetname = "null_dset" ! Dataset name + + INTEGER(HID_T) :: file_id ! File identifier + INTEGER(HID_T) :: dset_id ! Dataset identifier + INTEGER(HID_T) :: null_dset ! Null dataset identifier + INTEGER(HID_T) :: dspace_id ! Dataspace identifier + INTEGER(HID_T) :: null_dspace ! Null dataspace identifier + INTEGER(HID_T) :: dtype_id ! Datatype identifier + + + INTEGER(HSIZE_T), DIMENSION(2) :: dims = (/4,6/) ! Dataset dimensions + INTEGER :: rank = 2 ! Dataset rank + + INTEGER, DIMENSION(4,6) :: dset_data, data_out ! Data buffers + INTEGER :: error ! Error flag + + INTEGER :: i, j !general purpose integers + INTEGER(HSIZE_T), DIMENSION(2) :: data_dims + INTEGER(HSIZE_T), DIMENSION(1) :: null_data_dim + INTEGER :: null_dset_data = 1 ! null data + INTEGER :: flag ! Space allocation status + + ! + ! Initialize the dset_data array. + ! + do i = 1, 4 + do j = 1, 6 + dset_data(i,j) = (i-1)*6 + j; + end do + end do + + + ! + ! Create a new file using default properties. + ! + CALL h5_fixname_f(filename, fix_filename, H5P_DEFAULT_F, error) + if (error .ne. 0) then + write(*,*) "Cannot modify filename" + stop + endif + CALL h5fcreate_f(fix_filename, H5F_ACC_TRUNC_F, file_id, error) + CALL check("h5fcreate_f", error, total_error) + + + ! + ! Create the dataspace. + ! + CALL h5screate_simple_f(rank, dims, dspace_id, error) + CALL check("h5screate_simple_f", error, total_error) + ! + ! Create null dataspace. + ! + CALL h5screate_f(H5S_NULL_F, null_dspace, error) + CALL check("h5screate_simple_f", error, total_error) + + + ! + ! Create the dataset with default properties. + ! + CALL h5dcreate_f(file_id, dsetname, H5T_NATIVE_INTEGER, dspace_id, & + dset_id, error) + CALL check("h5dcreate_f", error, total_error) + ! + ! Create the null dataset. + ! + CALL h5dcreate_f(file_id, null_dsetname, H5T_NATIVE_INTEGER, null_dspace, & + null_dset, error) + CALL check("h5dcreate_f", error, total_error) + + ! + ! Write the dataset. + ! + data_dims(1) = 4 + data_dims(2) = 6 + CALL h5dwrite_f(dset_id, H5T_NATIVE_INTEGER, dset_data, data_dims, error) + CALL check("h5dwrite_f", error, total_error) + ! + ! Write null dataset. Nothing can be written. + ! + null_data_dim(1) = 1 + CALL h5dwrite_f(null_dset, H5T_NATIVE_INTEGER, null_dset_data, null_data_dim, error) + CALL check("h5dwrite_f", error, total_error) + + + ! + ! End access to the dataset and release resources used by it. + ! + CALL h5dclose_f(dset_id, error) + CALL check("h5dclose_f", error, total_error) + CALL h5dclose_f(null_dset, error) + CALL check("h5dclose_f", error, total_error) + + ! + ! Terminate access to the data space. + ! + CALL h5sclose_f(dspace_id, error) + CALL check("h5sclose_f", error, total_error) + CALL h5sclose_f(null_dspace, error) + CALL check("h5sclose_f", error, total_error) + + ! + ! Close the file. + ! + CALL h5fclose_f(file_id, error) + CALL check("h5fclose_f", error, total_error) + + ! + ! Open the existing file. + ! + CALL h5fopen_f (fix_filename, H5F_ACC_RDWR_F, file_id, error) + CALL check("h5fopen_f", error, total_error) + + ! + ! Open the existing dataset. + ! + CALL h5dopen_f(file_id, dsetname, dset_id, error) + CALL check("h5dopen_f", error, total_error) + CALL h5dopen_f(file_id, null_dsetname, null_dset, error) + CALL check("h5dopen_f", error, total_error) + + ! Test whether space has been allocated for a dataset + CALL h5dget_space_status_f(dset_id, flag, error) + CALL check("h5dget_space_status_f",error, total_error) + CALL verify("h5dget_space_status_f", flag, H5D_SPACE_STS_ALLOCATED_F, total_error) + + CALL h5dget_space_status_f(null_dset, flag, error) + CALL check("h5dget_space_status_f",error, total_error) + CALL verify("h5dget_space_status_f", flag, H5D_SPACE_STS_NOT_ALLOCATED_F, total_error) + + + ! + ! Get the dataset type. + ! + CALL h5dget_type_f(dset_id, dtype_id, error) + CALL check("h5dget_type_f", error, total_error) + + ! + ! Get the data space. + ! + CALL h5dget_space_f(dset_id, dspace_id, error) + CALL check("h5dget_space_f", error, total_error) + + ! + ! Read the dataset. + ! + CALL h5dread_f(dset_id, H5T_NATIVE_INTEGER, data_out, data_dims, error) + CALL check("h5dread_f", error, total_error) + ! + ! Read the null dataset. Nothing should be read. + ! + CALL h5dread_f(null_dset, H5T_NATIVE_INTEGER, null_dset_data, null_data_dim, error) + CALL check("h5dread_f", error, total_error) + + ! + !Compare the data. + ! + do i = 1, 4 + do j = 1, 6 + IF (data_out(i,j) .NE. dset_data(i, j)) THEN + write(*, *) "dataset test error occured" + write(*,*) "data read is not the same as the data written" + END IF + end do + end do + + ! + ! Check if no change to null_dset_data + ! + IF (null_dset_data .NE. 1) THEN + write(*, *) "null dataset test error occured" END IF - END DO - END DO - ! - ! Check if no change to null_dset_data - ! - IF (null_dset_data .NE. 1) THEN - WRITE(*, *) "null dataset test error occured" - END IF - ! - ! End access to the dataset and release resources used by it. - ! - CALL h5dclose_f(dset_id, error) - CALL check("h5dclose_f", error, total_error) - CALL h5dclose_f(null_dset, error) - CALL check("h5dclose_f", error, total_error) - ! - ! Terminate access to the data space. - ! - CALL h5sclose_f(dspace_id, error) - CALL check("h5sclose_f", error, total_error) - - ! - ! Terminate access to the data type. - ! - CALL h5tclose_f(dtype_id, error) - CALL check("h5tclose_f", error, total_error) - ! - ! Close the file. - ! - CALL h5fclose_f(file_id, 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) - - RETURN - END SUBROUTINE datasettest - + + ! + ! End access to the dataset and release resources used by it. + ! + CALL h5dclose_f(dset_id, error) + CALL check("h5dclose_f", error, total_error) + CALL h5dclose_f(null_dset, error) + CALL check("h5dclose_f", error, total_error) + + ! + ! Terminate access to the data space. + ! + CALL h5sclose_f(dspace_id, error) + CALL check("h5sclose_f", error, total_error) + + ! + ! Terminate access to the data type. + ! + CALL h5tclose_f(dtype_id, error) + CALL check("h5tclose_f", error, total_error) + ! + ! Close the file. + ! + CALL h5fclose_f(file_id, 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) + + RETURN + END SUBROUTINE datasettest + ! !the following subroutine tests h5dextend_f functionality ! - SUBROUTINE extenddsettest(cleanup, total_error) - - IMPLICIT NONE - - LOGICAL, INTENT(IN) :: cleanup - INTEGER, INTENT(OUT) :: total_error - - ! - !the dataset is stored in file "extf.h5" - ! - CHARACTER(LEN=4), PARAMETER :: filename = "extf" - CHARACTER(LEN=80) :: fix_filename - - ! - !dataset name is "ExtendibleArray" - ! - CHARACTER(LEN=15), PARAMETER :: dsetname = "ExtendibleArray" - - ! - !dataset rank is 2 - ! - INTEGER :: RANK = 2 - - INTEGER(HID_T) :: file_id ! File identifier - INTEGER(HID_T) :: dset_id ! Dataset identifier - INTEGER(HID_T) :: dataspace ! Dataspace identifier - INTEGER(HID_T) :: memspace ! memory Dataspace identifier - INTEGER(HID_T) :: crp_list ! dataset creatation property identifier - - ! - !dataset dimensions at creation time - ! - INTEGER(HSIZE_T), DIMENSION(2) :: dims = (/3,3/) - - ! - !data dimensions - ! - INTEGER(HSIZE_T), DIMENSION(2) :: dims1 = (/10,3/) - - ! - !Maximum dimensions - ! - INTEGER(HSIZE_T), DIMENSION(2) :: maxdims - - ! - !data arrays for reading and writing - ! - INTEGER, DIMENSION(10,3) :: data_in, data_out - - ! - !Size of data in the file - ! - INTEGER(HSIZE_T), DIMENSION(2) :: size - - ! - !general purpose integer - ! - INTEGER :: i, j - INTEGER(HSIZE_T) :: ih, jh - - ! - !flag to check operation success - ! - INTEGER :: error - - ! - !Variables used in reading data back - ! - INTEGER(HSIZE_T), DIMENSION(2) :: dimsr, maxdimsr - INTEGER :: rankr - INTEGER(HSIZE_T), DIMENSION(2) :: data_dims - - ! - !data initialization - ! - DO i = 1, 10 - DO j = 1, 3 - data_in(i,j) = 2 - END DO - END DO - - ! - !Initialize FORTRAN predifined datatypes - ! + SUBROUTINE extenddsettest(cleanup, total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC + + IMPLICIT NONE + + LOGICAL, INTENT(IN) :: cleanup + INTEGER, INTENT(OUT) :: total_error + + ! + !the dataset is stored in file "extf.h5" + ! + CHARACTER(LEN=4), PARAMETER :: filename = "extf" + CHARACTER(LEN=80) :: fix_filename + + ! + !dataset name is "ExtendibleArray" + ! + CHARACTER(LEN=15), PARAMETER :: dsetname = "ExtendibleArray" + + ! + !dataset rank is 2 + ! + INTEGER :: RANK = 2 + + INTEGER(HID_T) :: file_id ! File identifier + INTEGER(HID_T) :: dset_id ! Dataset identifier + INTEGER(HID_T) :: dataspace ! Dataspace identifier + INTEGER(HID_T) :: memspace ! memory Dataspace identifier + INTEGER(HID_T) :: crp_list ! dataset creatation property identifier + + ! + !dataset dimensions at creation time + ! + INTEGER(HSIZE_T), DIMENSION(2) :: dims = (/3,3/) + + ! + !data dimensions + ! + INTEGER(HSIZE_T), DIMENSION(2) :: dims1 = (/10,3/) + + ! + !Maximum dimensions + ! + INTEGER(HSIZE_T), DIMENSION(2) :: maxdims + + ! + !data arrays for reading and writing + ! + INTEGER, DIMENSION(10,3) :: data_in, data_out + + ! + !Size of data in the file + ! + INTEGER(HSIZE_T), DIMENSION(2) :: size + + ! + !general purpose integer + ! + INTEGER :: i, j + INTEGER(HSIZE_T) :: ih, jh + + ! + !flag to check operation success + ! + INTEGER :: error + + ! + !Variables used in reading data back + ! + INTEGER(HSIZE_T), DIMENSION(2) :: dimsr, maxdimsr + INTEGER :: rankr + INTEGER(HSIZE_T), DIMENSION(2) :: data_dims + + ! + !data initialization + ! + do i = 1, 10 + do j = 1, 3 + data_in(i,j) = 2 + end do + end do + + ! + !Initialize FORTRAN predifined datatypes + ! ! CALL h5init_types_f(error) ! CALL check("h5init_types_f",error,total_error) - ! - !Create a new file using default properties. - ! - CALL h5_fixname_f(filename, fix_filename, H5P_DEFAULT_F, error) - IF (error .NE. 0) THEN - WRITE(*,*) "Cannot modify filename" - STOP - ENDIF - CALL h5fcreate_f(fix_filename, H5F_ACC_TRUNC_F, file_id, error) - CALL check("h5fcreate_f",error,total_error) - - ! - !Create the data space with unlimited dimensions. - ! - maxdims = (/H5S_UNLIMITED_F, H5S_UNLIMITED_F/) - - CALL h5screate_simple_f(RANK, dims, dataspace, error, maxdims) - CALL check("h5screate_simple_f",error,total_error) - - ! - !Modify dataset creation properties, i.e. enable chunking - ! - CALL h5pcreate_f(H5P_DATASET_CREATE_F, crp_list, error) - CALL check("h5pcreat_f",error,total_error) - - CALL h5pset_chunk_f(crp_list, RANK, dims1, error) - CALL check("h5pset_chunk_f",error,total_error) - - ! - !Create a dataset with 3X3 dimensions using cparms creation propertie . - ! - CALL h5dcreate_f(file_id, dsetname, H5T_NATIVE_INTEGER, dataspace, dset_id, error, crp_list ) - CALL check("h5dcreate_f",error,total_error) - - ! - !Extend the dataset. This call assures that dataset is 3 x 3. - ! - SIZE(1) = 3 - SIZE(2) = 3 - CALL h5dextend_f(dset_id, size, error) - CALL check("h5dextend_f",error,total_error) - - - ! - !Extend the dataset. Dataset becomes 10 x 3. - ! - SIZE(1) = 10; - SIZE(2) = 3; - CALL h5dextend_f(dset_id, size, error) - CALL check("h5dextend_f",error,total_error) - - ! - !Write the data of size 10X3 to the extended dataset. - ! - data_dims(1) = 10 - data_dims(2) = 3 - CALL H5dwrite_f(dset_id, H5T_NATIVE_INTEGER, data_in, data_dims, error) - CALL check("h5dwrite_f",error,total_error) - - ! - !Close the dataspace for the dataset. - ! - CALL h5sclose_f(dataspace, error) - CALL check("h5sclose_f",error,total_error) - - ! - !Close the property list. - ! - CALL h5pclose_f(crp_list, error) - CALL check("h5pclose_f",error,total_error) - ! - !Close the dataset. - ! - CALL h5dclose_f(dset_id, error) - CALL check("h5dclose_f",error,total_error) - - ! - !Close the file. - ! - CALL h5fclose_f(file_id, error) - CALL check("h5fclose_f",error,total_error) - - ! - !read the data back - ! - !Open the file. - ! - CALL h5fopen_f (fix_filename, H5F_ACC_RDONLY_F, file_id, error) - CALL check("hfopen_f",error,total_error) - - ! - !Open the dataset. - ! - CALL h5dopen_f(file_id, dsetname, dset_id, error) - CALL check("h5dopen_f",error,total_error) - - ! - !Get dataset's dataspace handle. - ! - CALL h5dget_space_f(dset_id, dataspace, error) - CALL check("h5dget_space_f",error,total_error) - - ! - !Get dataspace's rank. - ! - CALL h5sget_simple_extent_ndims_f(dataspace, rankr, error) - CALL check("h5sget_simple_extent_ndims_f",error,total_error) - IF (rankr .NE. RANK) THEN - WRITE(*,*) "dataset rank error occured" - STOP - END IF - - ! - !Get dataspace's dimensinons. - ! - CALL h5sget_simple_extent_dims_f(dataspace, dimsr, maxdimsr, error) - CALL check("h5sget_simple_extent_dims_f",error,total_error) - IF ((dimsr(1) .NE. dims1(1)) .OR. (dimsr(2) .NE. dims1(2))) THEN - WRITE(*,*) "dataset dimensions error occured" - STOP - END IF - - ! - !Get creation property list. - ! - CALL h5dget_create_plist_f(dset_id, crp_list, error) - CALL check("h5dget_create_plist_f",error,total_error) - - - ! - !create memory dataspace. - ! - CALL h5screate_simple_f(rankr, dimsr, memspace, error) - CALL check("h5screate_simple_f",error,total_error) - - ! - !Read data - ! - CALL H5dread_f(dset_id, H5T_NATIVE_INTEGER, data_out, data_dims, error, memspace, dataspace) - CALL check("h5dread_f",error,total_error) - - - ! - !Compare the data. - ! - DO ih = 1, dims1(1) - DO jh = 1, dims1(2) - IF (data_out(ih,jh) .NE. data_in(ih, jh)) THEN - WRITE(*, *) "extend dataset test error occured" - WRITE(*, *) "read value is not the same as the written values" + ! + !Create a new file using default properties. + ! + CALL h5_fixname_f(filename, fix_filename, H5P_DEFAULT_F, error) + if (error .ne. 0) then + write(*,*) "Cannot modify filename" + stop + endif + CALL h5fcreate_f(fix_filename, H5F_ACC_TRUNC_F, file_id, error) + CALL check("h5fcreate_f",error,total_error) + + + ! + !Create the data space with unlimited dimensions. + ! + maxdims = (/H5S_UNLIMITED_F, H5S_UNLIMITED_F/) + + CALL h5screate_simple_f(RANK, dims, dataspace, error, maxdims) + CALL check("h5screate_simple_f",error,total_error) + + ! + !Modify dataset creation properties, i.e. enable chunking + ! + CALL h5pcreate_f(H5P_DATASET_CREATE_F, crp_list, error) + CALL check("h5pcreat_f",error,total_error) + + CALL h5pset_chunk_f(crp_list, RANK, dims1, error) + CALL check("h5pset_chunk_f",error,total_error) + + ! + !Create a dataset with 3X3 dimensions using cparms creation propertie . + ! + CALL h5dcreate_f(file_id, dsetname, H5T_NATIVE_INTEGER, dataspace, & + dset_id, error, crp_list ) + CALL check("h5dcreate_f",error,total_error) + + ! + !Extend the dataset. This call assures that dataset is 3 x 3. + ! + size(1) = 3 + size(2) = 3 + CALL h5dextend_f(dset_id, size, error) + CALL check("h5dextend_f",error,total_error) + + + ! + !Extend the dataset. Dataset becomes 10 x 3. + ! + size(1) = 10; + size(2) = 3; + CALL h5dextend_f(dset_id, size, error) + CALL check("h5dextend_f",error,total_error) + + ! + !Write the data of size 10X3 to the extended dataset. + ! + data_dims(1) = 10 + data_dims(2) = 3 + CALL H5dwrite_f(dset_id, H5T_NATIVE_INTEGER, data_in, data_dims, error) + CALL check("h5dwrite_f",error,total_error) + + ! + !Close the dataspace for the dataset. + ! + CALL h5sclose_f(dataspace, error) + CALL check("h5sclose_f",error,total_error) + + ! + !Close the property list. + ! + CALL h5pclose_f(crp_list, error) + CALL check("h5pclose_f",error,total_error) + ! + !Close the dataset. + ! + CALL h5dclose_f(dset_id, error) + CALL check("h5dclose_f",error,total_error) + + ! + !Close the file. + ! + CALL h5fclose_f(file_id, error) + CALL check("h5fclose_f",error,total_error) + + ! + !read the data back + ! + !Open the file. + ! + CALL h5fopen_f (fix_filename, H5F_ACC_RDONLY_F, file_id, error) + CALL check("hfopen_f",error,total_error) + + ! + !Open the dataset. + ! + CALL h5dopen_f(file_id, dsetname, dset_id, error) + CALL check("h5dopen_f",error,total_error) + + ! + !Get dataset's dataspace handle. + ! + CALL h5dget_space_f(dset_id, dataspace, error) + CALL check("h5dget_space_f",error,total_error) + + ! + !Get dataspace's rank. + ! + CALL h5sget_simple_extent_ndims_f(dataspace, rankr, error) + CALL check("h5sget_simple_extent_ndims_f",error,total_error) + IF (rankr .NE. RANK) then + write(*,*) "dataset rank error occured" + stop + END IF + + ! + !Get dataspace's dimensinons. + ! + CALL h5sget_simple_extent_dims_f(dataspace, dimsr, maxdimsr, error) + CALL check("h5sget_simple_extent_dims_f",error,total_error) + IF ((dimsr(1) .NE. dims1(1)) .OR. (dimsr(2) .NE. dims1(2))) THEN + write(*,*) "dataset dimensions error occured" + stop END IF - END DO - END DO - - ! - !Close the dataspace for the dataset. - ! - CALL h5sclose_f(dataspace, error) - CALL check("h5sclose_f",error,total_error) - - ! - !Close the memspace for the dataset. - ! - CALL h5sclose_f(memspace, error) - CALL check("h5sclose_f",error,total_error) - - ! - !Close the property list. - ! - CALL h5pclose_f(crp_list, error) - CALL check("h5pclose_f",error,total_error) - - ! - !Close the dataset. - ! - CALL h5dclose_f(dset_id, error) - CALL check("h5dclose_f",error,total_error) - - ! - !Close the file. - ! - CALL h5fclose_f(file_id, 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) - - RETURN - END SUBROUTINE extenddsettest + + ! + !Get creation property list. + ! + CALL h5dget_create_plist_f(dset_id, crp_list, error) + CALL check("h5dget_create_plist_f",error,total_error) + + + ! + !create memory dataspace. + ! + CALL h5screate_simple_f(rankr, dimsr, memspace, error) + CALL check("h5screate_simple_f",error,total_error) + + ! + !Read data + ! + CALL H5dread_f(dset_id, H5T_NATIVE_INTEGER, data_out, data_dims, error, & + memspace, dataspace) + CALL check("h5dread_f",error,total_error) + + + ! + !Compare the data. + ! + do ih = 1, dims1(1) + do jh = 1, dims1(2) + IF (data_out(ih,jh) .NE. data_in(ih, jh)) THEN + write(*, *) "extend dataset test error occured" + write(*, *) "read value is not the same as the written values" + END IF + end do + end do + + ! + !Close the dataspace for the dataset. + ! + CALL h5sclose_f(dataspace, error) + CALL check("h5sclose_f",error,total_error) + + ! + !Close the memspace for the dataset. + ! + CALL h5sclose_f(memspace, error) + CALL check("h5sclose_f",error,total_error) + + ! + !Close the property list. + ! + CALL h5pclose_f(crp_list, error) + CALL check("h5pclose_f",error,total_error) + + ! + !Close the dataset. + ! + CALL h5dclose_f(dset_id, error) + CALL check("h5dclose_f",error,total_error) + + ! + !Close the file. + ! + CALL h5fclose_f(file_id, 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) + + RETURN + END SUBROUTINE extenddsettest END MODULE TH5D diff --git a/fortran/test/tH5E_F03.f90 b/fortran/test/tH5E_F03.f90 index 63e70a3..a7d45f2 100644 --- a/fortran/test/tH5E_F03.f90 +++ b/fortran/test/tH5E_F03.f90 @@ -36,9 +36,6 @@ ! ***************************************** MODULE test_my_hdf5_error_handler - USE HDF5 - USE TH5_MISC - USE TH5_MISC_GEN CONTAINS @@ -52,6 +49,8 @@ CONTAINS ! 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 @@ -75,6 +74,8 @@ CONTAINS ! 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 @@ -101,6 +102,8 @@ CONTAINS SUBROUTINE test_error(total_error) + USE HDF5 + USE TH5_MISC USE ISO_C_BINDING USE test_my_hdf5_error_handler @@ -144,15 +147,15 @@ SUBROUTINE test_error(total_error) ! 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("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) +!!$ 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) +!!$ CALL VERIFY("H5Eget_auto_f", error, 0, total_error) ! PRINT*,c_associated(f_ptr1) @@ -184,7 +187,7 @@ SUBROUTINE test_error(total_error) 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) + CALL VERIFY("h5dcreate_f", error, -1, total_error) ! turn on automatic printing with h5eprint_f which prints an error stack in the default manner. diff --git a/fortran/test/tH5F_F03.f90 b/fortran/test/tH5F_F03.f90 index 9e23d19..c878a59 100644 --- a/fortran/test/tH5F_F03.f90 +++ b/fortran/test/tH5F_F03.f90 @@ -38,17 +38,16 @@ MODULE TH5F_F03 - USE HDF5 - USE TH5_MISC - USE TH5_MISC_GEN - USE ISO_C_BINDING - CONTAINS SUBROUTINE test_get_file_image(total_error) ! ! Tests the wrapper for h5fget_file_image ! + USE HDF5 + USE TH5_MISC + USE ISO_C_BINDING + IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error ! returns error @@ -129,8 +128,8 @@ SUBROUTINE test_get_file_image(total_error) itmp_a = 1 CALL h5fget_file_image_f(file_id, f_ptr, itmp_a, error, image_size) CALL check("h5fget_file_image_f",error, total_error) - CALL verify("h5fget_file_image_f", INT(itmp_a), 1, total_error) ! Routine should not change the value - CALL verify("h5fget_file_image_f", file_sz, INT(image_size), total_error) + CALL VERIFY("h5fget_file_image_f", INT(itmp_a), 1, total_error) ! Routine should not change the value + CALL VERIFY("h5fget_file_image_f", file_sz, INT(image_size), total_error) ! Allocate a buffer of the appropriate size ALLOCATE(image_ptr(1:image_size)) diff --git a/fortran/test/tH5G_1_8.f90 b/fortran/test/tH5G_1_8.f90 index ddc3736..ab75163 100644 --- a/fortran/test/tH5G_1_8.f90 +++ b/fortran/test/tH5G_1_8.f90 @@ -31,13 +31,11 @@ MODULE TH5G_1_8 - USE HDF5 - USE TH5_MISC - USE TH5_MISC_GEN - CONTAINS SUBROUTINE group_test(cleanup, total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC IMPLICIT NONE LOGICAL, INTENT(IN) :: cleanup @@ -141,6 +139,9 @@ END SUBROUTINE group_test SUBROUTINE group_info(cleanup, fapl, total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC + IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error INTEGER(HID_T), INTENT(IN) :: fapl @@ -268,7 +269,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error) ! Check for out of bound query by index on empty group, should fail CALL H5Gget_info_by_idx_f(group_id, ".", H5_INDEX_NAME_F, order, INT(0,HSIZE_T), & storage_type, nlinks, max_corder, error) - CALL verify("H5Gget_info_by_idx_f", error, -1, total_error) + CALL VERIFY("H5Gget_info_by_idx_f", error, -1, total_error) ! Create several links, up to limit of compact form DO u = 0, max_compact-1 @@ -286,29 +287,29 @@ SUBROUTINE group_info(cleanup, fapl, total_error) CALL check("H5Gget_info_f", error, total_error) ! Check (new/empty) group's information - CALL verify("H5Gget_info_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) - CALL verify("H5Gget_info_f", max_corder, 0, total_error) - CALL verify("H5Gget_info_f", nlinks, 0, total_error) - CALL verify("H5Gget_info_f.mounted", mounted,.FALSE.,total_error) + CALL VERIFY("H5Gget_info_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) + CALL VERIFY("H5Gget_info_f", max_corder, 0, total_error) + CALL VERIFY("H5Gget_info_f", nlinks, 0, total_error) + CALL verifyLogical("H5Gget_info_f.mounted", mounted,.FALSE.,total_error) ! Retrieve group's information CALL H5Gget_info_by_name_f(group_id, objname, storage_type, nlinks, max_corder, error, mounted=mounted) CALL check("H5Gget_info_by_name_f", error, total_error) ! Check (new/empty) group's information - CALL verify("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) - CALL verify("H5Gget_info_by_name_f", max_corder, 0, total_error) - CALL verify("H5Gget_info_by_name_f", nlinks, 0, total_error) - CALL verify("H5Gget_info_by_name_f.mounted", mounted,.FALSE.,total_error) + CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) + CALL VERIFY("H5Gget_info_by_name_f", max_corder, 0, total_error) + CALL VERIFY("H5Gget_info_by_name_f", nlinks, 0, total_error) + CALL verifyLogical("H5Gget_info_by_name_f.mounted", mounted,.FALSE.,total_error) ! Retrieve group's information CALL H5Gget_info_by_name_f(group_id2, ".", storage_type, nlinks, max_corder, error) CALL check("H5Gget_info_by_name", error, total_error) ! Check (new/empty) group's information - CALL verify("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) - CALL verify("H5Gget_info_by_name_f", max_corder, 0, total_error) - CALL verify("H5Gget_info_by_name_f", nlinks, 0, total_error) + CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) + CALL VERIFY("H5Gget_info_by_name_f", max_corder, 0, total_error) + CALL VERIFY("H5Gget_info_by_name_f", nlinks, 0, total_error) ! Create objects in new group created DO v = 0, u @@ -330,27 +331,27 @@ SUBROUTINE group_info(cleanup, fapl, total_error) CALL check("H5Gget_info_f", error, total_error) ! Check (new) group's information - CALL verify("H5Gget_info_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) - CALL verify("H5Gget_info_f", max_corder, u+1, total_error) - CALL verify("H5Gget_info_f", nlinks, u+1, total_error) + CALL VERIFY("H5Gget_info_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) + CALL VERIFY("H5Gget_info_f", max_corder, u+1, total_error) + CALL VERIFY("H5Gget_info_f", nlinks, u+1, total_error) ! Retrieve group's information CALL H5Gget_info_by_name_f(group_id, objname, storage_type, nlinks, max_corder, error) CALL check("H5Gget_info_by_name_f", error, total_error) ! Check (new) group's information - CALL verify("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) - CALL verify("H5Gget_info_by_name_f",max_corder, u+1, total_error) - CALL verify("H5Gget_info_by_name_f", nlinks, u+1, total_error) + CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) + CALL VERIFY("H5Gget_info_by_name_f",max_corder, u+1, total_error) + CALL VERIFY("H5Gget_info_by_name_f", nlinks, u+1, total_error) ! Retrieve group's information CALL H5Gget_info_by_name_f(group_id2, ".", storage_type, nlinks, max_corder, error) CALL check("H5Gget_info_by_name_f", error, total_error) ! Check (new) group's information - CALL verify("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) - CALL verify("H5Gget_info_by_name_f", max_corder, u+1, total_error) - CALL verify("H5Gget_info_by_name_f", nlinks, u+1, total_error) + CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) + CALL VERIFY("H5Gget_info_by_name_f", max_corder, u+1, total_error) + CALL VERIFY("H5Gget_info_by_name_f", nlinks, u+1, total_error) ! Retrieve group's information IF(order.NE.H5_ITER_NATIVE_F)THEN @@ -358,17 +359,17 @@ SUBROUTINE group_info(cleanup, fapl, total_error) CALL H5Gget_info_by_idx_f(group_id, ".", idx_type, order, INT(u,HSIZE_T), & storage_type, nlinks, max_corder, error,lapl_id=H5P_DEFAULT_F, mounted=mounted) CALL check("H5Gget_info_by_idx_f", error, total_error) - CALL verify("H5Gget_info_by_idx_f", mounted,.FALSE.,total_error) + CALL verifyLogical("H5Gget_info_by_idx_f", mounted,.FALSE.,total_error) ELSE CALL H5Gget_info_by_idx_f(group_id, ".", idx_type, order, INT(0,HSIZE_T), & storage_type, nlinks, max_corder, error, mounted=mounted) - CALL verify("H5Gget_info_by_idx_f", mounted,.FALSE.,total_error) + CALL verifyLogical("H5Gget_info_by_idx_f", mounted,.FALSE.,total_error) CALL check("H5Gget_info_by_idx_f", error, total_error) ENDIF ! Check (new) group's information - CALL verify("H5Gget_info_by_idx_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) - CALL verify("H5Gget_info_by_idx_f", max_corder, u+1, total_error) - CALL verify("H5Gget_info_by_idx_f", nlinks, u+1, total_error) + CALL VERIFY("H5Gget_info_by_idx_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) + CALL VERIFY("H5Gget_info_by_idx_f", max_corder, u+1, total_error) + CALL VERIFY("H5Gget_info_by_idx_f", nlinks, u+1, total_error) ENDIF ! Close group created CALL H5Gclose_f(group_id2, error) @@ -379,27 +380,27 @@ SUBROUTINE group_info(cleanup, fapl, total_error) CALL check("H5Gget_info_f", error, total_error) ! Check main group's information - CALL verify("H5Gget_info_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) - CALL verify("H5Gget_info_f", max_corder, u+1, total_error) - CALL verify("H5Gget_info_f", nlinks, u+1, total_error) + CALL VERIFY("H5Gget_info_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) + CALL VERIFY("H5Gget_info_f", max_corder, u+1, total_error) + CALL VERIFY("H5Gget_info_f", nlinks, u+1, total_error) ! Retrieve main group's information, by name CALL H5Gget_info_by_name_f(file_id, CORDER_GROUP_NAME, storage_type, nlinks, max_corder, error) CALL check("H5Gget_info_by_name_f", error, total_error) ! Check main group's information - CALL verify("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) - CALL verify("H5Gget_info_by_name_f", max_corder, u+1, total_error) - CALL verify("H5Gget_info_by_name_f", nlinks, u+1, total_error) + CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) + CALL VERIFY("H5Gget_info_by_name_f", max_corder, u+1, total_error) + CALL VERIFY("H5Gget_info_by_name_f", nlinks, u+1, total_error) ! Retrieve main group's information, by name CALL H5Gget_info_by_name_f(group_id, ".", storage_type, nlinks, max_corder, error, H5P_DEFAULT_F) CALL check("H5Gget_info_by_name_f", error, total_error) ! Check main group's information - CALL verify("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) - CALL verify("H5Gget_info_by_name_f", max_corder, u+1, total_error) - CALL verify("H5Gget_info_by_name_f", nlinks, u+1, total_error) + CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) + CALL VERIFY("H5Gget_info_by_name_f", max_corder, u+1, total_error) + CALL VERIFY("H5Gget_info_by_name_f", nlinks, u+1, total_error) ! Create soft link in another group, to objects in main group valname = CORDER_GROUP_NAME//objname @@ -411,9 +412,9 @@ SUBROUTINE group_info(cleanup, fapl, total_error) CALL check("H5Gget_info_f", error, total_error) ! Check soft link group's information - CALL verify("H5Gget_info_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) - CALL verify("H5Gget_info_f", max_corder, u+1, total_error) - CALL verify("H5Gget_info_f", nlinks, u+1, total_error) + CALL VERIFY("H5Gget_info_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error) + CALL VERIFY("H5Gget_info_f", max_corder, u+1, total_error) + CALL VERIFY("H5Gget_info_f", nlinks, u+1, total_error) ENDDO ! Close the groups @@ -455,6 +456,9 @@ SUBROUTINE group_info(cleanup, fapl, total_error) SUBROUTINE timestamps(cleanup, fapl, total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC + IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error INTEGER(HID_T), INTENT(IN) :: fapl @@ -487,7 +491,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error) CALL check("H5Pget_obj_track_times_f", error, total_error) ! Check default timestamp information - CALL verify("H5Pget_obj_track_times",track_times,.TRUE.,total_error) + CALL VerifyLogical("H5Pget_obj_track_times",track_times,.TRUE.,total_error) ! Set a non-default object timestamp setting CALL H5Pset_obj_track_times_f(gcpl_id, .FALSE., error) @@ -498,7 +502,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error) CALL check("H5Pget_obj_track_times_f", error, total_error) ! Check default timestamp information - CALL verify("H5Pget_obj_track_times",track_times,.FALSE.,total_error) + CALL VerifyLogical("H5Pget_obj_track_times",track_times,.FALSE.,total_error) ! Create file !h5_fixname(FILENAME[0], fapl, filename, sizeof filename); @@ -529,10 +533,10 @@ SUBROUTINE group_info(cleanup, fapl, total_error) ! Query & verify the object timestamp settings CALL H5Pget_obj_track_times_f(gcpl_id, track_times, error) CALL check("H5Pget_obj_track_times_f", error, total_error) - CALL verify("H5Pget_obj_track_times1",track_times,.FALSE.,total_error) + CALL VerifyLogical("H5Pget_obj_track_times1",track_times,.FALSE.,total_error) CALL H5Pget_obj_track_times_f(gcpl_id2, track_times, error) CALL check("H5Pget_obj_track_times_f", error, total_error) - CALL verify("H5Pget_obj_track_times2",track_times,.TRUE.,total_error) + CALL VerifyLogical("H5Pget_obj_track_times2",track_times,.TRUE.,total_error) ! Query the object information for each group ! if(H5Oget_info(group_id, &oinfo) < 0) TEST_ERROR @@ -589,10 +593,10 @@ SUBROUTINE group_info(cleanup, fapl, total_error) CALL H5Pget_obj_track_times_f(gcpl_id, track_times, error) CALL check("H5Pget_obj_track_times_f", error, total_error) - CALL verify("H5Pget_obj_track_times1",track_times,.FALSE.,total_error) + CALL VerifyLogical("H5Pget_obj_track_times1",track_times,.FALSE.,total_error) CALL H5Pget_obj_track_times_f(gcpl_id2, track_times, error) CALL check("H5Pget_obj_track_times_f", error, total_error) - CALL verify("H5Pget_obj_track_times2",track_times,.TRUE.,total_error) + CALL VerifyLogical("H5Pget_obj_track_times2",track_times,.TRUE.,total_error) !!$ !!$ Query the object information for each group !!$ if(H5Oget_info(group_id, &oinfo) < 0) TEST_ERROR @@ -649,6 +653,9 @@ SUBROUTINE group_info(cleanup, fapl, total_error) SUBROUTINE mklinks(fapl, total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC + IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error INTEGER(HID_T), INTENT(IN) :: fapl @@ -704,12 +711,12 @@ SUBROUTINE group_info(cleanup, fapl, total_error) error, H5P_DEFAULT_F) CALL check("H5Lget_info_f",error,total_error) -! CALL verify("H5Lget_info_by_idx_f11", f_corder_valid, .TRUE., total_error) +! CALL VerifyLogical("H5Lget_info_by_idx_f11", f_corder_valid, .TRUE., total_error) - CALL verify("H5Lget_info_by_idx_f", H5L_TYPE_SOFT_F, link_type, total_error) - CALL verify("H5Lget_info_by_idx_f", cset, H5T_CSET_ASCII_F, total_error) + CALL VERIFY("H5Lget_info_by_idx_f", H5L_TYPE_SOFT_F, link_type, total_error) + CALL VERIFY("H5Lget_info_by_idx_f", cset, H5T_CSET_ASCII_F, total_error) ! should be '/d1' + NULL character = 4 - CALL verify("H5Lget_info_by_idx_f", INT(val_size), 4, total_error) + CALL VERIFY("H5Lget_info_by_idx_f", INT(val_size), 4, total_error) ! Create a symbolic link to something that doesn't exist @@ -742,6 +749,9 @@ SUBROUTINE group_info(cleanup, fapl, total_error) SUBROUTINE test_move_preserves(fapl_id, total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC + IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error INTEGER(HID_T), INTENT(IN) :: fapl_id @@ -788,14 +798,14 @@ SUBROUTINE group_info(cleanup, fapl, total_error) CALL H5Pget_link_creation_order_f(fcpl_id, crt_order_flags, error) CALL check("H5Pget_link_creation_order_f",error, total_error) - CALL verify("H5Pget_link_creation_order_f",crt_order_flags,0, total_error) + CALL VERIFY("H5Pget_link_creation_order_f",crt_order_flags,0, total_error) CALL H5Pset_link_creation_order_f(fcpl_id, H5P_CRT_ORDER_TRACKED_F, error) CALL check("H5Pset_link_creation_order_f", error, total_error) CALL H5Pget_link_creation_order_f(fcpl_id, crt_order_flags, error) CALL check("H5Pget_link_creation_order_f",error, total_error) - CALL verify("H5Pget_link_creation_order_f",crt_order_flags, H5P_CRT_ORDER_TRACKED_F, total_error) + CALL VERIFY("H5Pget_link_creation_order_f",crt_order_flags, H5P_CRT_ORDER_TRACKED_F, total_error) ! Create file ! (with creation order tracking for the root group) @@ -825,10 +835,10 @@ SUBROUTINE group_info(cleanup, fapl, total_error) ! if(H5Oget_info_by_name(file_id, "group", &oinfo, H5P_DEFAULT) < 0) TEST_ERROR old_cset = cset - CALL verify("H5Lget_info_f",old_cset,H5T_CSET_UTF8_F,total_error) - CALL verify("H5Lget_info_f",f_corder_valid,.TRUE.,total_error) + CALL VERIFY("H5Lget_info_f",old_cset,H5T_CSET_UTF8_F,total_error) + CALL VerifyLogical("H5Lget_info_f",f_corder_valid,.TRUE.,total_error) old_corder = corder; - CALL verify("H5Lget_info_f",old_corder,0,total_error) + CALL VERIFY("H5Lget_info_f",old_corder,0,total_error) ! old_modification_time = oinfo.mtime; @@ -946,6 +956,10 @@ SUBROUTINE group_info(cleanup, fapl, total_error) ! SUBROUTINE lifecycle(cleanup, fapl2, total_error) + + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC + IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error INTEGER(HID_T), INTENT(IN) :: fapl2 @@ -1091,6 +1105,10 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error) SUBROUTINE cklinks(fapl, total_error) +! USE ISO_C_BINDING + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC + IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error INTEGER(HID_T), INTENT(IN) :: fapl @@ -1128,10 +1146,10 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error) CALL H5Lexists_f(file,"d1",Lexists, error) - CALL verify("H5Lexists", Lexists,.TRUE.,total_error) + CALL verifylogical("H5Lexists", Lexists,.TRUE.,total_error) CALL H5Lexists_f(file,"grp1/hard",Lexists, error) - CALL verify("H5Lexists", Lexists,.TRUE.,total_error) + CALL verifylogical("H5Lexists", Lexists,.TRUE.,total_error) ! Cleanup CALL H5Fclose_f(file,error) @@ -1158,6 +1176,9 @@ END SUBROUTINE cklinks ! SUBROUTINE delete_by_idx(cleanup, fapl, total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC + IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error INTEGER(HID_T), INTENT(IN) :: fapl @@ -1273,7 +1294,7 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error) ! Check for deletion on empty group CALL H5Ldelete_by_idx_f(group_id, ".", idx_type, iorder, INT(0,HSIZE_T), error) - CALL verify("delete_by_idx.H5Ldelete_by_idx_f", error, -1, total_error) ! test should fail (error = -1) + CALL VERIFY("delete_by_idx.H5Ldelete_by_idx_f", error, -1, total_error) ! test should fail (error = -1) ! Create several links, up to limit of compact form DO u = 0, max_compact-1 ! Make name for link @@ -1298,7 +1319,7 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error) htmp =9 !EP CALL H5Ldelete_by_idx_f(group_id, ".", idx_type, iorder, INT(u,HSIZE_T), error) CALL H5Ldelete_by_idx_f(group_id, ".", idx_type, iorder, htmp, error) - CALL verify("H5Ldelete_by_idx_f", error, -1, total_error) ! test should fail (error = -1) + CALL VERIFY("H5Ldelete_by_idx_f", error, -1, total_error) ! test should fail (error = -1) ! Delete links from compact group @@ -1319,21 +1340,21 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error) CALL H5Iget_type_f(grp, id_type, error) CALL check("H5Iget_type_f", error, total_error) - CALL verify("H5Iget_type_f", id_type, H5I_GROUP_F, total_error) + CALL VERIFY("H5Iget_type_f", id_type, H5I_GROUP_F, total_error) CALL H5Gclose_f(grp, error) CALL check("H5Gclose_f", error, total_error) - CALL verify("H5Lget_info_by_idx_f", f_corder_valid, .TRUE., total_error) + CALL VerifyLogical("H5Lget_info_by_idx_f", f_corder_valid, .TRUE., total_error) - CALL verify("H5Lget_info_by_idx_f", H5L_TYPE_HARD_F, link_type, total_error) + CALL VERIFY("H5Lget_info_by_idx_f", H5L_TYPE_HARD_F, link_type, total_error) IF(iorder.EQ.H5_ITER_INC_F)THEN - CALL verify("H5Lget_info_by_idx_f", corder, u+1, total_error) + CALL VERIFY("H5Lget_info_by_idx_f", corder, u+1, total_error) ELSE - CALL verify("H5Lget_info_by_idx_f", corder, (max_compact - (u + 2)), total_error) + CALL VERIFY("H5Lget_info_by_idx_f", corder, (max_compact - (u + 2)), total_error) ENDIF - CALL verify("H5Lget_info_by_idx_f",cset, H5T_CSET_ASCII_F, total_error) + CALL VERIFY("H5Lget_info_by_idx_f",cset, H5T_CSET_ASCII_F, total_error) @@ -1350,7 +1371,7 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error) !!$ ENDIF !!$ objname = 'fill '//chr2 !!$ PRINT*,objname, tmpname -!!$ CALL verify("delete_by_idx.H5Lget_name_by_idx_f", objname, tmpname, total_error) +!!$ CALL verifyString("delete_by_idx.H5Lget_name_by_idx_f", objname, tmpname, total_error) ENDDO ! Close the group @@ -1397,6 +1418,9 @@ END SUBROUTINE delete_by_idx SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & hard_link, use_index, total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC + IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error INTEGER(HID_T), INTENT(IN) :: group_id @@ -1431,14 +1455,14 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL H5Lget_info_by_idx_f(group_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, INT(0,HSIZE_T), & link_type, f_corder_valid, corder, cset, address, val_size, error) CALL check("H5Lget_info_by_idx_f", error, total_error) - CALL verify("H5Lget_info_by_idx_f", corder, 0, total_error) + CALL VERIFY("H5Lget_info_by_idx_f", corder, 0, total_error) ! Verify the link information for new link, in increasing creation order ! HDmemset(&linfo, 0, sizeof(linfo)); CALL H5Lget_info_by_idx_f(group_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, INT(n,HSIZE_T), & link_type, f_corder_valid, corder, cset, address, val_size, error) CALL check("H5Lget_info_by_idx_f", error, total_error) - CALL verify("H5Lget_info_by_idx_f", corder, n, total_error) + CALL VERIFY("H5Lget_info_by_idx_f", corder, n, total_error) ! Verify value for new soft link, in increasing creation order !!$ IF(hard_link)THEN @@ -1457,21 +1481,21 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL H5Lget_name_by_idx_f(group_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, INT(n,HSIZE_T), tmpname_small, error, size_tmp) CALL check("link_info_by_idx_check.H5Lget_name_by_idx_f", error, total_error) - CALL verify("link_info_by_idx_check.H5Lget_name_by_idx_f", & + CALL verifyString("link_info_by_idx_check.H5Lget_name_by_idx_f", & linkname(1:LEN(tmpname_small)), tmpname_small(1:LEN(tmpname_small)), total_error) - CALL verify("link_info_by_idx_check.H5Lget_name_by_idx_f", INT(size_tmp), 7, total_error) + CALL VERIFY("link_info_by_idx_check.H5Lget_name_by_idx_f", INT(size_tmp), 7, total_error) ! try it with the correct size CALL H5Lget_name_by_idx_f(group_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, INT(n,HSIZE_T), tmpname, error, size=size_tmp) CALL check("link_info_by_idx_check.H5Lget_name_by_idx_f", error, total_error) - CALL verify("link_info_by_idx_check.H5Lget_name_by_idx_f", & + CALL verifyString("link_info_by_idx_check.H5Lget_name_by_idx_f", & linkname(1:LEN(tmpname)), tmpname(1:LEN(tmpname)), total_error) - CALL verify("link_info_by_idx_check.H5Lget_name_by_idx_f", INT(size_tmp), 7, total_error) + CALL VERIFY("link_info_by_idx_check.H5Lget_name_by_idx_f", INT(size_tmp), 7, total_error) CALL H5Lget_name_by_idx_f(group_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, INT(n,HSIZE_T), tmpname_big, error, size_tmp) CALL check("link_info_by_idx_check.H5Lget_name_by_idx_f", error, total_error) - CALL verify("link_info_by_idx_check.H5Lget_name_by_idx_f", & + CALL verifyString("link_info_by_idx_check.H5Lget_name_by_idx_f", & linkname(1:7), tmpname_big(1:7), total_error) - CALL verify("link_info_by_idx_check.H5Lget_name_by_idx_f", INT(size_tmp), 7, total_error) + CALL VERIFY("link_info_by_idx_check.H5Lget_name_by_idx_f", INT(size_tmp), 7, total_error) ! Try with a buffer set to small @@ -1498,6 +1522,9 @@ 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 + USE TH5_MISC + IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error INTEGER(HID_T), INTENT(IN) :: fapl @@ -1564,7 +1591,7 @@ 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("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) @@ -1625,10 +1652,10 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & DO i = 1, 2 tmp1 = INT(dimsout(i)) tmp2 = INT(extend_dim(i)) - CALL verify("H5Sget_simple_extent_dims", tmp1, tmp2, total_error) + CALL VERIFY("H5Sget_simple_extent_dims", tmp1, tmp2, total_error) tmp1 = INT(maxdimsout(i)) tmp2 = INT(dims(i)) - CALL verify("H5Sget_simple_extent_dims", tmp1, tmp2, total_error) + CALL VERIFY("H5Sget_simple_extent_dims", tmp1, tmp2, total_error) ENDDO ! close data set @@ -1695,7 +1722,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL H5Pget_char_encoding_f(lcpl_id, encoding, error) CALL check("H5Pget_char_encoding_f", error, total_error) - CALL verify("H5Pget_char_encoding_f", encoding, H5T_CSET_UTF8_F, 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", & @@ -1717,7 +1744,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, & CALL H5Lexists_f(file_id,"/dataset2_link",Lexists, error) CALL check("H5Lexists",error, total_error) - CALL verify("H5Lexists", Lexists,.TRUE.,total_error) + CALL verifylogical("H5Lexists", Lexists,.TRUE.,total_error) ! Check that its character encoding is ASCII CALL H5Lget_info_f(file_id, "/dataset2_link", & @@ -1807,6 +1834,9 @@ END SUBROUTINE test_lcpl SUBROUTINE objcopy(fapl, total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC + IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error INTEGER(HID_T), INTENT(IN) :: fapl @@ -1837,7 +1867,7 @@ SUBROUTINE objcopy(fapl, total_error) ! Verify object copy flags CALL H5Pget_copy_object_f(pid, cpy_flags, error) CALL check("H5Pget_copy_object_f",error, total_error) - CALL verify("H5Pget_copy_object_f", cpy_flags, flag, total_error) + CALL VERIFY("H5Pget_copy_object_f", cpy_flags, flag, total_error) !!$ !!$ CALL test_copy_option(fcpl_src, fcpl_dst, my_fapl, H5O_COPY_WITHOUT_ATTR_FLAG, @@ -1868,6 +1898,9 @@ END SUBROUTINE objcopy SUBROUTINE lapl_nlinks( fapl, total_error) + USE HDF5 + USE TH5_MISC + IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: fapl INTEGER, INTENT(INOUT) :: total_error @@ -1939,7 +1972,7 @@ SUBROUTINE lapl_nlinks( fapl, total_error) nlinks = 0 CALL H5Pget_nlinks_f(plist, nlinks, error) CALL check("H5Pset_nlinks_f",error,total_error) - CALL verify("H5Pset_nlinks_f",INT(nlinks), 20, total_error) + CALL VERIFY("H5Pset_nlinks_f",INT(nlinks), 20, total_error) ! Open object through what is normally too many soft links using @@ -1951,7 +1984,7 @@ SUBROUTINE lapl_nlinks( fapl, total_error) ! Check name CALL h5iget_name_f(gid, objname, buf_size, name_len, error) CALL check("h5iget_name_f",error,total_error) - CALL verify("h5iget_name_f", TRIM(objname),"/soft17", total_error) + CALL VerifyString("h5iget_name_f", TRIM(objname),"/soft17", total_error) ! Create group using soft link CALL H5Gcreate_f(gid, "new_soft", gid2, error) CALL check("H5Gcreate_f", error, total_error) @@ -1973,12 +2006,12 @@ SUBROUTINE lapl_nlinks( fapl, total_error) CALL H5Pget_nlinks_f(plist, nlinks, error) CALL check("H5Pget_nlinks_f",error,total_error) - CALL verify("H5Pget_nlinks_f", INT(nlinks), 4, total_error) + CALL VERIFY("H5Pget_nlinks_f", INT(nlinks), 4, total_error) ! Try opening through what is now too many soft links CALL H5Oopen_f(fid,"soft5",gid,error,plist) - CALL verify("H5Oopen_f", error, -1, total_error) ! should fail + CALL VERIFY("H5Oopen_f", error, -1, total_error) ! should fail ! Open object through lesser soft link CALL H5Oopen_f(fid,"soft4",gid,error,plist) @@ -1987,7 +2020,7 @@ SUBROUTINE lapl_nlinks( fapl, total_error) ! Check name CALL h5iget_name_f(gid, objname, buf_size, name_len, error) CALL check("h5iget_name_f",error,total_error) - CALL verify("h5iget_name_f", TRIM(objname),"/soft4", total_error) + CALL VerifyString("h5iget_name_f", TRIM(objname),"/soft4", total_error) ! Test other functions that should use a LAPL nlinks = 20 diff --git a/fortran/test/tH5I.f90 b/fortran/test/tH5I.f90 index 97c48c6..088b4eb 100644 --- a/fortran/test/tH5I.f90 +++ b/fortran/test/tH5I.f90 @@ -27,10 +27,6 @@ ! !***** MODULE TH5I - - USE HDF5 ! This module contains all necessary modules - USE TH5_MISC - USE TH5_MISC_GEN CONTAINS @@ -38,6 +34,8 @@ CONTAINS ! This subroutine tests following functionalities: h5iget_type_f + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC IMPLICIT NONE LOGICAL, INTENT(IN) :: cleanup @@ -90,7 +88,7 @@ CONTAINS dtype = -1 CALL H5Iis_valid_f(dtype, tri_ret, error) CALL check("H5Iis_valid_f", error, total_error) - CALL verify("H5Iis_valid_f", tri_ret, .FALSE., total_error) + CALL VerifyLogical("H5Iis_valid_f", tri_ret, .FALSE., total_error) ! Create a datatype id CALL H5Tcopy_f(H5T_NATIVE_INTEGER,dtype,error) @@ -99,7 +97,7 @@ CONTAINS ! Check that the ID is valid CALL H5Iis_valid_f(dtype, tri_ret, error) CALL check("H5Iis_valid_f", error, total_error) - CALL verify("H5Tequal_f", tri_ret, .TRUE., total_error) + CALL VerifyLogical("H5Tequal_f", tri_ret, .TRUE., total_error) CALL H5Tclose_f(dtype, error) CALL check("H5Tclose_f", error, total_error) diff --git a/fortran/test/tH5L_F03.f90 b/fortran/test/tH5L_F03.f90 index 40afdbc..795f1e2 100644 --- a/fortran/test/tH5L_F03.f90 +++ b/fortran/test/tH5L_F03.f90 @@ -32,10 +32,8 @@ !***** MODULE liter_cb_mod - USE HDF5 - USE TH5_MISC - USE TH5_MISC_GEN - USE, INTRINSIC :: ISO_C_BINDING + USE HDF5 + USE ISO_C_BINDING IMPLICIT NONE TYPE iter_enum @@ -47,7 +45,7 @@ MODULE liter_cb_mod ! Custom group iteration callback data TYPE, bind(c) :: iter_info - CHARACTER(KIND=C_CHAR), DIMENSION(1:10) :: name ! The name of the object + 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 @@ -62,6 +60,8 @@ CONTAINS INTEGER(KIND=C_INT) FUNCTION liter_cb(group, name, link_info, op_data) bind(C) + USE HDF5 + USE ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T), VALUE :: group @@ -123,6 +123,9 @@ CONTAINS !*************************************************************** SUBROUTINE test_iter_group(total_error) + USE HDF5 + USE TH5_MISC + USE ISO_C_BINDING USE liter_cb_mod IMPLICIT NONE @@ -248,11 +251,11 @@ SUBROUTINE test_iter_group(total_error) 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) + 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) + CALL VERIFY("H5Literate", INT(idx), INT(i), total_error) IF(idx .GT.ndatasets+2)THEN PRINT*,"ERROR: Group iteration function walked too far!" ENDIF @@ -261,14 +264,14 @@ SUBROUTINE test_iter_group(total_error) DO j = 1, 10 ichr10(j:j) = info%name(j)(1:1) ENDDO - CALL verify("H5Literate_f", ichr10, lnames(INT(idx)), total_error) + 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) + CALL VERIFY("H5Literate_f", i, INT(NDATASETS + 2), total_error) PRINT*,"ERROR: Group iteration function didn't perform multiple iterations correctly" ENDIF @@ -285,13 +288,13 @@ SUBROUTINE test_iter_group(total_error) 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) + 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) + CALL VERIFY("H5Literate_f", INT(idx), INT(i+10), total_error) IF(idx .GT.ndatasets+2)THEN PRINT*,"Group iteration function walked too far!" @@ -301,7 +304,7 @@ SUBROUTINE test_iter_group(total_error) ichr10(j:j) = info%name(j)(1:1) ENDDO ! Verify that the correct name is retrieved - CALL verify("H5Literate_f", ichr10, lnames(INT(idx)), total_error) + 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 diff --git a/fortran/test/tH5MISC_1_8.f90 b/fortran/test/tH5MISC_1_8.f90 index ba3f095..efaf594 100644 --- a/fortran/test/tH5MISC_1_8.f90 +++ b/fortran/test/tH5MISC_1_8.f90 @@ -25,13 +25,11 @@ !***** MODULE TH5MISC_1_8 - USE HDF5 ! This module contains all necessary modules - USE TH5_MISC - USE TH5_MISC_GEN - CONTAINS SUBROUTINE dtransform(cleanup, total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC IMPLICIT NONE LOGICAL, INTENT(IN) :: cleanup @@ -59,22 +57,22 @@ SUBROUTINE dtransform(cleanup, total_error) CALL H5Pget_data_transform_f(dxpl_id_c_to_f, ptrgetTest, error, size=size) CALL check("dtransform.H5Pget_data_transform_f", error, total_error) - CALL verify("dtransform.H5Pget_data_transform_f", c_to_f, ptrgetTest, total_error) - CALL verify("dtransform.H5Pget_data_transform_f", INT(size),15, total_error) + CALL VerifyString("dtransform.H5Pget_data_transform_f", c_to_f, ptrgetTest, total_error) + CALL VERIFY("dtransform.H5Pget_data_transform_f", INT(size),15, total_error) ! check case when receiving buffer to small CALL H5Pget_data_transform_f(dxpl_id_c_to_f, ptrgetTest_small, error, size=size) CALL check("dtransform.H5Pget_data_transform_f", error, total_error) - CALL verify("dtransform.H5Pget_data_transform_f", c_to_f(1:7), ptrgetTest_small, total_error) - CALL verify("dtransform.H5Pget_data_transform_f", INT(size),15, total_error) + CALL VerifyString("dtransform.H5Pget_data_transform_f", c_to_f(1:7), ptrgetTest_small, total_error) + CALL VERIFY("dtransform.H5Pget_data_transform_f", INT(size),15, total_error) ! check case when receiving buffer to big CALL H5Pget_data_transform_f(dxpl_id_c_to_f, ptrgetTest_big, error, size=size) CALL check("dtransform.H5Pget_data_transform_f", error, total_error) - CALL verify("dtransform.H5Pget_data_transform_f", c_to_f(1:15), ptrgetTest_big(1:15), total_error) - CALL verify("dtransform.H5Pget_data_transform_f", INT(size), 15, total_error) + CALL VerifyString("dtransform.H5Pget_data_transform_f", c_to_f(1:15), ptrgetTest_big(1:15), total_error) + CALL VERIFY("dtransform.H5Pget_data_transform_f", INT(size), 15, total_error) CALL H5Fclose_f(file_id, error) CALL check("H5Fclose_f", error, total_error) @@ -94,6 +92,9 @@ END SUBROUTINE dtransform SUBROUTINE test_genprop_basic_class(total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC + IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error @@ -116,7 +117,7 @@ SUBROUTINE test_genprop_basic_class(total_error) cid1 = 456 CALL H5Pget_class_name_f(cid1, name, size, error) - CALL verify("H5Pget_class_name", error, -1, error) + CALL VERIFY("H5Pget_class_name", error, -1, error) ! Create a new generic class, derived from the root of the class hierarchy CALL H5Pcreate_class_f(H5P_ROOT_F, CLASS1_NAME, cid1, error) @@ -125,8 +126,8 @@ SUBROUTINE test_genprop_basic_class(total_error) ! Check class name CALL H5Pget_class_name_f(cid1, name, size, error) CALL check("H5Pget_class_name", error, total_error) - CALL verify("H5Pget_class_name", size,7,error) - CALL verify("H5Pget_class_name", name, CLASS1_NAME, error) + CALL VERIFY("H5Pget_class_name", size,7,error) + CALL verifystring("H5Pget_class_name", name, CLASS1_NAME, error) IF(error.NE.0)THEN WRITE(*,*) 'Class names do not match! name=',name, 'CLASS1_NAME=',CLASS1_NAME total_error = total_error + 1 @@ -135,8 +136,8 @@ SUBROUTINE test_genprop_basic_class(total_error) ! Check class name smaller buffer CALL H5Pget_class_name_f(cid1, name_small, size, error) CALL check("H5Pget_class_name", error, total_error) - CALL verify("H5Pget_class_name", size,7,error) - CALL verify("H5Pget_class_name", name_small(1:4), CLASS1_NAME(1:4), error) + CALL VERIFY("H5Pget_class_name", size,7,error) + CALL verifystring("H5Pget_class_name", name_small(1:4), CLASS1_NAME(1:4), error) IF(error.NE.0)THEN WRITE(*,*) 'Class names do not match! name=',name_small(1:4), 'CLASS1_NAME=',CLASS1_NAME(1:4) total_error = total_error + 1 @@ -145,8 +146,8 @@ SUBROUTINE test_genprop_basic_class(total_error) ! Check class name bigger buffer CALL H5Pget_class_name_f(cid1, name_big, size, error) CALL check("H5Pget_class_name", error, total_error) - CALL verify("H5Pget_class_name", size,7,error) - CALL verify("H5Pget_class_name", TRIM(name_big), TRIM(CLASS1_NAME), error) + CALL VERIFY("H5Pget_class_name", size,7,error) + CALL verifystring("H5Pget_class_name", TRIM(name_big), TRIM(CLASS1_NAME), error) IF(error.NE.0)THEN WRITE(*,*) 'Class names do not match! name=',TRIM(name_small), 'CLASS1_NAME=',TRIM(CLASS1_NAME) total_error = total_error + 1 @@ -159,13 +160,13 @@ SUBROUTINE test_genprop_basic_class(total_error) ! Verify class parent correct CALL H5Pequal_f(cid2, H5P_ROOT_F, flag, error) CALL check("H5Pequal_f", error, total_error) - CALL verify("H5Pequal_f", flag, .TRUE., total_error) + CALL verifylogical("H5Pequal_f", flag, .TRUE., total_error) ! Make certain false postives aren't being returned CALL H5Pequal_f(cid2, H5P_FILE_CREATE_F, flag, error) CALL check("H5Pequal_f", error, total_error) - CALL verify("H5Pequal_f", flag, .FALSE., total_error) + CALL verifylogical("H5Pequal_f", flag, .FALSE., total_error) ! Close parent class CALL H5Pclose_class_f(cid2, error) @@ -186,6 +187,8 @@ SUBROUTINE test_h5s_encode(total_error) !** !*************************************************************** + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error @@ -238,7 +241,7 @@ SUBROUTINE test_h5s_encode(total_error) ! Try decoding bogus buffer CALL H5Sdecode_f(sbuf, decoded_sid1, error) - CALL verify("H5Sdecode", error, -1, total_error) + CALL VERIFY("H5Sdecode", error, -1, total_error) CALL H5Sencode_f(sid1, sbuf, sbuf_size, error) CALL check("H5Sencode", error, total_error) @@ -251,7 +254,7 @@ SUBROUTINE test_h5s_encode(total_error) ! Verify the decoded dataspace CALL h5sget_simple_extent_npoints_f(decoded_sid1, n, error) CALL check("h5sget_simple_extent_npoints_f", error, total_error) - CALL verify("h5sget_simple_extent_npoints_f", INT(n), INT(SPACE1_DIM1 * SPACE1_DIM2 * SPACE1_DIM3), & + CALL VERIFY("h5sget_simple_extent_npoints_f", INT(n), INT(SPACE1_DIM1 * SPACE1_DIM2 * SPACE1_DIM3), & total_error) ! @@ -294,16 +297,16 @@ SUBROUTINE test_h5s_encode(total_error) CALL H5Sget_simple_extent_type_f(decoded_sid3, space_type, error) CALL check("H5Sget_simple_extent_type_f", error, total_error) - CALL verify("H5Sget_simple_extent_type_f", space_type, H5S_SCALAR_F, total_error) + CALL VERIFY("H5Sget_simple_extent_type_f", space_type, H5S_SCALAR_F, total_error) ! Verify decoded dataspace CALL h5sget_simple_extent_npoints_f(decoded_sid3, n, error) CALL check("h5sget_simple_extent_npoints_f", error, total_error) - CALL verify("h5sget_simple_extent_npoints_f", INT(n), 1, total_error) + CALL VERIFY("h5sget_simple_extent_npoints_f", INT(n), 1, total_error) CALL H5Sget_simple_extent_ndims_f(decoded_sid3, rank, error) CALL CHECK("H5Sget_simple_extent_ndims_f", error, total_error) - CALL verify("H5Sget_simple_extent_ndims_f", rank, 0, total_error ) + CALL VERIFY("H5Sget_simple_extent_ndims_f", rank, 0, total_error ) CALL h5sclose_f(sid3, error) CALL check("h5sclose_f", error, total_error) @@ -332,6 +335,8 @@ END SUBROUTINE test_h5s_encode SUBROUTINE test_scaleoffset(cleanup, total_error ) + USE HDF5 + USE TH5_MISC IMPLICIT NONE LOGICAL, INTENT(IN) :: cleanup INTEGER, INTENT(INOUT) :: total_error diff --git a/fortran/test/tH5O.f90 b/fortran/test/tH5O.f90 index 51e1d64..99d4c22 100644 --- a/fortran/test/tH5O.f90 +++ b/fortran/test/tH5O.f90 @@ -28,13 +28,11 @@ !***** MODULE TH5O - USE HDF5 ! This module contains all necessary modules - USE TH5_MISC - USE TH5_MISC_GEN - CONTAINS SUBROUTINE test_h5o(cleanup, total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC IMPLICIT NONE LOGICAL, INTENT(IN) :: cleanup @@ -59,6 +57,9 @@ END SUBROUTINE test_h5o SUBROUTINE test_h5o_link(total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC + IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error @@ -156,7 +157,7 @@ SUBROUTINE test_h5o_link(total_error) CALL H5Tcommitted_f(type_id, committed, error) CALL check("H5Tcommitted_f",error,total_error) - CALL verify("H5Tcommitted_f", committed, .TRUE., total_error) + CALL verifyLogical("H5Tcommitted_f", committed, .TRUE., total_error) ! Create a dataset with no name using the committed datatype CALL H5Dcreate_anon_f(file_id, type_id, space_id, dset_id, error ) ! using no optional parameters @@ -180,7 +181,7 @@ SUBROUTINE test_h5o_link(total_error) ! Verify the data DO i = 1, TEST6_DIM1 DO j = 1, TEST6_DIM2 - CALL verify("H5Dread_f",wdata(i,j),rdata(i,j),total_error) + CALL VERIFY("H5Dread_f",wdata(i,j),rdata(i,j),total_error) wdata(i,j) = i*j ENDDO ENDDO @@ -228,7 +229,7 @@ SUBROUTINE test_h5o_link(total_error) ! Verify the data DO i = 1, TEST6_DIM1 DO j = 1, TEST6_DIM2 - CALL verify("H5Dread",wdata(i,j),rdata(i,j),total_error) + CALL VERIFY("H5Dread",wdata(i,j),rdata(i,j),total_error) ENDDO ENDDO ! Close open IDs @@ -463,7 +464,7 @@ SUBROUTINE test_h5o_link(total_error) nlinks = 0 CALL h5pget_nlinks_f(plist, nlinks, error) CALL check("h5pget_nlinks_f",error,total_error) - CALL verify("h5pget_nlinks_f", INT(nlinks), 2, total_error) + CALL VERIFY("h5pget_nlinks_f", INT(nlinks), 2, total_error) ! See if the link exists CALL h5oexists_by_name_f(file_id,"/G1_LINK", link_exists, error, plist) @@ -577,6 +578,9 @@ END SUBROUTINE test_h5o_link SUBROUTINE test_h5o_plist(total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC + IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error @@ -627,18 +631,18 @@ SUBROUTINE test_h5o_plist(total_error) ! Retrieve attribute phase change values on each creation property list and verify CALL H5Pget_attr_phase_change_f(gcpl, max_compact, min_dense, error) CALL check("H5Pget_attr_phase_change_f", error, total_error) - CALL verify("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error) - CALL verify("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error) + CALL VERIFY("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error) + CALL VERIFY("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error) CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error) CALL check("H5Pget_attr_phase_change_f", error, total_error) - CALL verify("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error) - CALL verify("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error) + CALL VERIFY("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error) + CALL VERIFY("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error) CALL H5Pget_attr_phase_change_f(tcpl, max_compact, min_dense, error) CALL check("H5Pget_attr_phase_change_f", error, total_error) - CALL verify("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error) - CALL verify("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error) + CALL VERIFY("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error) + CALL VERIFY("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error) ! Create a group, dataset, and committed datatype within the file, ! using the respective type of creation property lists. @@ -696,18 +700,18 @@ SUBROUTINE test_h5o_plist(total_error) ! Retrieve attribute phase change values on each creation property list and verify CALL H5Pget_attr_phase_change_f(gcpl, max_compact, min_dense, error) CALL check("H5Pget_attr_phase_change_f", error, total_error) - CALL verify("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error) - CALL verify("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error) + CALL VERIFY("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error) + CALL VERIFY("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error) CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error) CALL check("H5Pget_attr_phase_change_f", error, total_error) - CALL verify("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error) - CALL verify("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error) + CALL VERIFY("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error) + CALL VERIFY("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error) CALL H5Pget_attr_phase_change_f(tcpl, max_compact, min_dense, error) CALL check("H5Pget_attr_phase_change_f", error, total_error) - CALL verify("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error) - CALL verify("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error) + CALL VERIFY("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error) + CALL VERIFY("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error) ! Close current objects CALL h5pclose_f(gcpl,error) @@ -753,18 +757,18 @@ SUBROUTINE test_h5o_plist(total_error) ! Retrieve attribute phase change values on each creation property list and verify CALL H5Pget_attr_phase_change_f(gcpl, max_compact, min_dense, error) CALL check("H5Pget_attr_phase_change_f", error, total_error) - CALL verify("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error) - CALL verify("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error) + CALL VERIFY("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error) + CALL VERIFY("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error) CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error) CALL check("H5Pget_attr_phase_change_f", error, total_error) - CALL verify("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error) - CALL verify("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error) + CALL VERIFY("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error) + CALL VERIFY("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error) CALL H5Pget_attr_phase_change_f(tcpl, max_compact, min_dense, error) CALL check("H5Pget_attr_phase_change_f", error, total_error) - CALL verify("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error) - CALL verify("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error) + CALL VERIFY("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error) + CALL VERIFY("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error) ! Close current objects CALL h5pclose_f(gcpl,error) diff --git a/fortran/test/tH5O_F03.f90 b/fortran/test/tH5O_F03.f90 index 834308b..8e014f4 100644 --- a/fortran/test/tH5O_F03.f90 +++ b/fortran/test/tH5O_F03.f90 @@ -31,7 +31,7 @@ MODULE visit_cb USE HDF5 - USE, INTRINSIC :: ISO_C_BINDING + USE ISO_C_BINDING IMPLICIT NONE @@ -53,7 +53,7 @@ MODULE visit_cb ! ! Object visit structs TYPE, bind(c) :: obj_visit_t - CHARACTER(KIND=C_CHAR), DIMENSION(1:180) :: path ! Path to object + CHARACTER(LEN=1), DIMENSION(1:180) :: path ! Path to object INTEGER :: type_obj ! type of object END TYPE obj_visit_t diff --git a/fortran/test/tH5P.f90 b/fortran/test/tH5P.f90 index 39d8c1e..7dcc580 100644 --- a/fortran/test/tH5P.f90 +++ b/fortran/test/tH5P.f90 @@ -27,9 +27,6 @@ ! !***** MODULE TH5P - USE HDF5 ! This module contains all necessary modules - USE TH5_MISC - USE TH5_MISC_GEN CONTAINS @@ -39,6 +36,8 @@ SUBROUTINE external_test(cleanup, total_error) ! h5pset_external_f, h5pget_external_count_f, ! h5pget_external_f + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC IMPLICIT NONE LOGICAL, INTENT(IN) :: cleanup @@ -154,6 +153,8 @@ SUBROUTINE external_test(cleanup, total_error) END SUBROUTINE external_test SUBROUTINE multi_file_test(cleanup, total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC IMPLICIT NONE LOGICAL, INTENT(IN) :: cleanup @@ -420,7 +421,10 @@ END SUBROUTINE multi_file_test ! April 16, 2009 !------------------------------------------------------------------------- ! -SUBROUTINE test_chunk_cache(cleanup, total_error) +SUBROUTINE test_chunk_cache(cleanup, total_error) + + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC IMPLICIT NONE LOGICAL, INTENT(IN) :: cleanup @@ -466,16 +470,19 @@ SUBROUTINE test_chunk_cache(cleanup, total_error) CALL check("H5Pget_cache_f", error, total_error) CALL H5Pget_chunk_cache_f(dapl1, nslots_4, nbytes_4, w0_4, error) CALL check("H5Pget_chunk_cache_f", error, total_error) - CALL verify("H5Pget_chunk_cache_f", nslots_1, nslots_4, total_error) - CALL verify("H5Pget_chunk_cache_f", nbytes_1, nbytes_4, total_error) - CALL verify("H5Pget_chunk_cache_f", w0_1, w0_4, total_error) + CALL VERIFY("H5Pget_chunk_cache_f", INT(nslots_1), INT(nslots_4), total_error) + CALL VERIFY("H5Pget_chunk_cache_f", INT(nbytes_1), INT(nbytes_4), total_error) + + IF( .NOT.dreal_eq( REAL(w0_1,dp), REAL( w0_4, dp)) ) THEN + CALL VERIFYlogical("H5Pget_chunk_cache_f", .TRUE., .FALSE., total_error) + ENDIF ! Set a lapl property on dapl1 (to verify inheritance) CALL H5Pset_nlinks_f(dapl1, 134_size_t , error) CALL check("H5Pset_nlinks_f", error, total_error) CALL H5Pget_nlinks_f(dapl1, nlinks, error) CALL check("H5Pget_nlinks_f", error, total_error) - CALL verify("H5Pget_nlinks_f", INT(nlinks), 134, total_error) + CALL VERIFY("H5Pget_nlinks_f", INT(nlinks), 134, total_error) CALL h5pcreate_f(H5P_FILE_ACCESS_F, fapl_local, error) @@ -522,9 +529,11 @@ SUBROUTINE test_chunk_cache(cleanup, total_error) CALL check("H5Dget_access_plist_f", error, total_error) CALL H5Pget_chunk_cache_f(dapl2, nslots_4, nbytes_4, w0_4, error) CALL check("H5Pget_chunk_cache_f", error, total_error) - CALL verify("H5Pget_chunk_cache_f", INT(nslots_2), INT(nslots_4), total_error) - CALL verify("H5Pget_chunk_cache_f", INT(nbytes_2), INT(nbytes_4), total_error) - CALL verify("H5Pget_chunk_cache_f", w0_2, w0_4, total_error) + CALL VERIFY("H5Pget_chunk_cache_f", INT(nslots_2), INT(nslots_4), total_error) + CALL VERIFY("H5Pget_chunk_cache_f", INT(nbytes_2), INT(nbytes_4), total_error) + IF( .NOT.dreal_eq( REAL(w0_2,dp), REAL( w0_4, dp)) ) THEN + CALL VERIFYlogical("H5Pget_chunk_cache_f", .TRUE., .FALSE., total_error) + ENDIF CALL H5Pclose_f(dapl2,error) CALL check("H5Pclose_f", error, total_error) @@ -552,9 +561,11 @@ SUBROUTINE test_chunk_cache(cleanup, total_error) CALL check("H5Dget_access_plist_f", error, total_error) CALL H5Pget_chunk_cache_f(dapl2, nslots_4, nbytes_4, w0_4, error) CALL check("H5Pget_chunk_cache_f", error, total_error) - CALL verify("H5Pget_chunk_cache_f", INT(nslots_3), INT(nslots_4), total_error) - CALL verify("H5Pget_chunk_cache_f", INT(nbytes_2), INT(nbytes_4), total_error) - CALL verify("H5Pget_chunk_cache_f", w0_3, w0_4, total_error) + CALL VERIFY("H5Pget_chunk_cache_f", INT(nslots_3), INT(nslots_4), total_error) + CALL VERIFY("H5Pget_chunk_cache_f", INT(nbytes_2), INT(nbytes_4), total_error) + IF( .NOT.dreal_eq( REAL(w0_3,dp), REAL( w0_4, dp)) ) THEN + CALL VERIFYlogical("H5Pget_chunk_cache_f4", .TRUE., .FALSE., total_error) + ENDIF CALL H5Pclose_f(dapl2,error) CALL check("H5Pclose_f", error, total_error) @@ -570,9 +581,11 @@ SUBROUTINE test_chunk_cache(cleanup, total_error) CALL check("H5Dget_access_plist_f", error, total_error) CALL H5Pget_chunk_cache_f(dapl2, nslots_4, nbytes_4, w0_4, error) CALL check("H5Pget_chunk_cache_f", error, total_error) - CALL verify("H5Pget_chunk_cache_f", INT(nslots_2), INT(nslots_4), total_error) - CALL verify("H5Pget_chunk_cache_f", INT(nbytes_2), INT(nbytes_4), total_error) - CALL verify("H5Pget_chunk_cache_f", w0_2, w0_4, total_error) + CALL VERIFY("H5Pget_chunk_cache_f", INT(nslots_2), INT(nslots_4), total_error) + CALL VERIFY("H5Pget_chunk_cache_f", INT(nbytes_2), INT(nbytes_4), total_error) + IF( .NOT.dreal_eq( REAL(w0_2,dp), REAL( w0_4, dp)) ) THEN + CALL VERIFYlogical("H5Pget_chunk_cache_f", .TRUE., .FALSE., total_error) + ENDIF CALL H5Pclose_f(dapl2,error) CALL check("H5Pclose_f", error, total_error) @@ -588,9 +601,11 @@ SUBROUTINE test_chunk_cache(cleanup, total_error) CALL H5Pget_chunk_cache_f(dapl2, nslots_4, nbytes_4, w0_4, error) CALL check("H5Pget_chunk_cache_f", error, total_error) - CALL verify("H5Pget_chunk_cache_f", INT(nslots_2), INT(nslots_4), total_error) - CALL verify("H5Pget_chunk_cache_f", INT(nbytes_2), INT(nbytes_4), total_error) - CALL verify("H5Pget_chunk_cache_f", w0_2, w0_4, total_error) + CALL VERIFY("H5Pget_chunk_cache_f", INT(nslots_2), INT(nslots_4), total_error) + CALL VERIFY("H5Pget_chunk_cache_f", INT(nbytes_2), INT(nbytes_4), total_error) + IF( .NOT.dreal_eq( REAL(w0_2,dp), REAL( w0_4, dp)) ) THEN + CALL VERIFYlogical("H5Pget_chunk_cache_f", .TRUE., .FALSE., total_error) + ENDIF ! Don't close dapl2, we will use it in the next section ! Modify cache values on fapl_local @@ -623,9 +638,11 @@ SUBROUTINE test_chunk_cache(cleanup, total_error) CALL check("H5Dget_access_plist_f", error, total_error) CALL H5Pget_chunk_cache_f(dapl2, nslots_4, nbytes_4, w0_4, error) CALL check("H5Pget_chunk_cache_f", error, total_error) - CALL verify("H5Pget_chunk_cache_f", INT(nslots_2), INT(nslots_4), total_error) - CALL verify("H5Pget_chunk_cache_f", INT(nbytes_2), INT(nbytes_4), total_error) - CALL verify("H5Pget_chunk_cache_f", w0_2, w0_4, total_error) + CALL VERIFY("H5Pget_chunk_cache_f", INT(nslots_2), INT(nslots_4), total_error) + CALL VERIFY("H5Pget_chunk_cache_f", INT(nbytes_2), INT(nbytes_4), total_error) + IF( .NOT.dreal_eq( REAL(w0_2,dp), REAL( w0_4, dp)) ) THEN + CALL VERIFYlogical("H5Pget_chunk_cache_f", .TRUE., .FALSE., total_error) + ENDIF ! Test H5D_CHUNK_CACHE_NSLOTS_DEFAULT and H5D_CHUNK_CACHE_W0_DEFAULT nslots_2 = H5D_CHUNK_CACHE_NSLOTS_DFLT_F @@ -646,9 +663,11 @@ SUBROUTINE test_chunk_cache(cleanup, total_error) CALL check("H5Dget_access_plist_f", error, total_error) CALL H5Pget_chunk_cache_f(dapl2, nslots_4, nbytes_4, w0_4, error) CALL check("H5Pget_chunk_cache_f", error, total_error) - CALL verify("H5Pget_chunk_cache_f", INT(nslots_3), INT(nslots_4), total_error) - CALL verify("H5Pget_chunk_cache_f", INT(nbytes_2), INT(nbytes_4), total_error) - CALL verify("H5Pget_chunk_cache_f", w0_3, w0_4, total_error) + CALL VERIFY("H5Pget_chunk_cache_f", INT(nslots_3), INT(nslots_4), total_error) + CALL VERIFY("H5Pget_chunk_cache_f", INT(nbytes_2), INT(nbytes_4), total_error) + IF( .NOT.dreal_eq( REAL(w0_3,dp), REAL( w0_4, dp)) ) THEN + CALL VERIFYlogical("H5Pget_chunk_cache_f", .TRUE., .FALSE., total_error) + ENDIF ! Close diff --git a/fortran/test/tH5P_F03.f90 b/fortran/test/tH5P_F03.f90 index ec9fef2..56f9679 100644 --- a/fortran/test/tH5P_F03.f90 +++ b/fortran/test/tH5P_F03.f90 @@ -52,6 +52,8 @@ 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 @@ -69,11 +71,6 @@ END MODULE test_genprop_cls_cb1_mod MODULE TH5P_F03 - USE HDF5 - USE TH5_MISC - USE TH5_MISC_GEN - USE ISO_C_BINDING - CONTAINS !------------------------------------------------------------------------- @@ -95,6 +92,9 @@ CONTAINS SUBROUTINE test_create(total_error) + USE HDF5 + USE TH5_MISC + USE ISO_C_BINDING IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error @@ -187,12 +187,18 @@ SUBROUTINE test_create(total_error) CALL check("H5Pset_fill_value_f",error, total_error) CALL h5pget_fill_value_f(dcpl, H5T_NATIVE_DOUBLE, dpfill, error) CALL check("H5Pget_fill_value_f",error, total_error) - CALL VERIFY("***ERROR: Returned wrong fill value (double)", dpfill, 1.0_dp, total_error) + IF(.NOT.dreal_eq( REAL(dpfill,dp), 1.0_dp))THEN + PRINT*,"***ERROR: Returned wrong fill value (double)" + total_error = total_error + 1 + ENDIF CALL H5Pset_fill_value_f(dcpl, H5T_NATIVE_REAL, 2.0, error) CALL check("H5Pset_fill_value_f",error, total_error) CALL h5pget_fill_value_f(dcpl, H5T_NATIVE_REAL, rfill, error) CALL check("H5Pget_fill_value_f",error, total_error) - CALL VERIFY("***ERROR: Returned wrong fill value (real)", rfill, 2.0, total_error) + IF(.NOT.dreal_eq( REAL(rfill,dp), REAL(2.0,dp)))THEN + PRINT*,"***ERROR: Returned wrong fill value (real)" + total_error = total_error + 1 + ENDIF ! For the actual compound type CALL H5Pset_fill_value_f(dcpl, comp_type_id, f_ptr, error) @@ -228,10 +234,10 @@ SUBROUTINE test_create(total_error) CALL H5Pget_fill_value_f(dcpl, comp_type_id, f_ptr, error) CALL check("H5Pget_fill_value_f", error, total_error) - CALL verify("***ERROR: Returned wrong fill value", rd_c%a, fill_ctype%a, total_error) - CALL verify("***ERROR: Returned wrong fill value", rd_c%y, fill_ctype%y, total_error) - IF( rd_c%x .NE. fill_ctype%x .OR. & + IF( .NOT.dreal_eq( REAL(rd_c%a,dp), REAL(fill_ctype%a, dp)) .OR. & + .NOT.dreal_eq( REAL(rd_c%y,dp), REAL(fill_ctype%y, dp)) .OR. & + rd_c%x .NE. fill_ctype%x .OR. & rd_c%z .NE. fill_ctype%z )THEN PRINT*,"***ERROR: Returned wrong fill value" @@ -263,6 +269,9 @@ SUBROUTINE test_genprop_class_callback(total_error) ! ! + USE HDF5 + USE TH5_MISC + USE ISO_C_BINDING USE test_genprop_cls_cb1_mod IMPLICIT NONE @@ -321,7 +330,7 @@ SUBROUTINE test_genprop_class_callback(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) + CALL VERIFY("h5pget_nprops_f", INT(nprops), 4, total_error) ! Initialize class callback structs @@ -341,12 +350,12 @@ SUBROUTINE test_genprop_class_callback(total_error) ! Check that the list's class is correct CALL H5Pequal_f(cid2, cid1, flag, error) CALL check("H5Pequal_f", error, total_error) - CALL verify("H5Pequal_f", flag, .TRUE., total_error) + CALL verifylogical("H5Pequal_f", flag, .TRUE., total_error) ! Check the class name CALL H5Pget_class_name_f(cid2, CLASS1_NAME_BUF, CLASS1_NAME_SIZE, error) CALL check("H5Pget_class_name_f", error, total_error) - CALL verify("H5Pget_class_name_f", CLASS1_NAME_BUF, CLASS1_NAME, error) + CALL verifystring("H5Pget_class_name_f", CLASS1_NAME_BUF, CLASS1_NAME, error) IF(error.NE.0)THEN WRITE(*,*) 'Class names do not match! name=',CLASS1_NAME_BUF, 'CLASS1_NAME=',CLASS1_NAME total_error = total_error + 1 @@ -356,42 +365,42 @@ SUBROUTINE test_genprop_class_callback(total_error) CALL check("h5pclose_class_f", error, total_error) ! Verify that the creation callback occurred - CALL verify("h5pcreate_f", crt_cb_struct%count, 1, total_error) - CALL verify("h5pcreate_f", crt_cb_struct%id, lid1, total_error) + CALL VERIFY("h5pcreate_f", crt_cb_struct%count, 1, total_error) + CALL VERIFY_INTEGER_HID_T("h5pcreate_f", crt_cb_struct%id, 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) + 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_f", error, total_error) ! Verify that the creation callback occurred - CALL verify("h5pcreate_f", crt_cb_struct%count, 2, total_error) - CALL verify("h5pcreate_f", crt_cb_struct%id, lid2, total_error) + CALL VERIFY("h5pcreate_f", crt_cb_struct%count, 2, total_error) + CALL VERIFY_INTEGER_HID_T("h5pcreate_f", crt_cb_struct%id, 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) + CALL VERIFY("h5pget_nprops_f", INT(nprops), 4, total_error) ! Close first list CALL h5pclose_f(lid1, error); CALL check("h5pclose_f", error, total_error) ! Verify that the close callback occurred - CALL verify("h5pcreate_f", cls_cb_struct%count, 1, total_error) - CALL verify("h5pcreate_f", cls_cb_struct%id, lid1, total_error) + CALL VERIFY("h5pcreate_f", cls_cb_struct%count, 1, total_error) + CALL VERIFY_INTEGER_HID_T("h5pcreate_f", cls_cb_struct%id, lid1, total_error) ! Close second list CALL h5pclose_f(lid2, error); CALL check("h5pclose_f", error, total_error) ! Verify that the close callback occurred - CALL verify("h5pcreate_f", cls_cb_struct%count, 2, total_error) - CALL verify("h5pcreate_f", cls_cb_struct%id, lid2, total_error) + CALL VERIFY("h5pcreate_f", cls_cb_struct%count, 2, total_error) + CALL verify_INTEGER_HID_T("h5pcreate_f", cls_cb_struct%id, lid2, total_error) ! Close class CALL h5pclose_class_f(cid1, error) @@ -414,6 +423,8 @@ END SUBROUTINE test_genprop_class_callback SUBROUTINE test_h5p_file_image(total_error) + USE HDF5 + USE TH5_MISC USE, INTRINSIC :: iso_c_binding IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error @@ -464,11 +475,11 @@ SUBROUTINE test_h5p_file_image(total_error) CALL check("h5pget_file_image_f", error, total_error) ! Check that sizes are the same, and that the buffers are identical but separate - CALL verify("h5pget_file_image_f", INT(temp_size), INT(size), total_error) + CALL VERIFY("h5pget_file_image_f", INT(temp_size), INT(size), total_error) ! Verify the image data is correct DO i = 1, count - CALL verify("h5pget_file_image_f", temp(i), buffer(i), total_error) + CALL VERIFY("h5pget_file_image_f", temp(i), buffer(i), total_error) ENDDO END SUBROUTINE test_h5p_file_image @@ -488,6 +499,10 @@ END SUBROUTINE test_h5p_file_image ! SUBROUTINE external_test_offset(cleanup,total_error) + USE ISO_C_BINDING + USE TH5_MISC + USE HDF5 ! This module contains all necessary modules + IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error LOGICAL, INTENT(IN) :: cleanup diff --git a/fortran/test/tH5R.f90 b/fortran/test/tH5R.f90 index ef392b4..bd6264f 100644 --- a/fortran/test/tH5R.f90 +++ b/fortran/test/tH5R.f90 @@ -33,13 +33,11 @@ ! MODULE TH5R - USE HDF5 - USE TH5_MISC - USE TH5_MISC_GEN - CONTAINS SUBROUTINE refobjtest(cleanup, total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC IMPLICIT NONE LOGICAL, INTENT(IN) :: cleanup INTEGER, INTENT(INOUT) :: total_error @@ -127,6 +125,7 @@ SUBROUTINE refobjtest(cleanup, total_error) CALL check("h5tcopy_f",error,total_error) CALL h5tcommit_f(file_id, "MyType", type_id, error) CALL check("h5tcommit_f",error,total_error) + ! ! Close dataspaces, groups and integer dataset ! @@ -165,22 +164,22 @@ SUBROUTINE refobjtest(cleanup, total_error) CALL check("H5Rget_name_f", error, total_error) - CALL verify("H5Rget_name_f", INT(buf_size),7, total_error) - CALL verify("H5Rget_name_f", buf, "/GROUP1", total_error) + CALL VERIFY("H5Rget_name_f", INT(buf_size),7, total_error) + CALL VerifyString("H5Rget_name_f", buf, "/GROUP1", total_error) ! with buffer bigger then needed CALL H5Rget_name_f(dsetr_id, ref(1), buf_big, error, buf_size ) CALL check("H5Rget_name_f", error, total_error) - CALL verify("H5Rget_name_f", INT(buf_size),7,total_error) - CALL verify("H5Rget_name_f", TRIM(buf_big), "/GROUP1", total_error) + CALL VERIFY("H5Rget_name_f", INT(buf_size),7,total_error) + CALL VerifyString("H5Rget_name_f", TRIM(buf_big), "/GROUP1", total_error) ! getting path to dataset in /Group1 CALL H5Rget_name_f(dsetr_id, ref(2), buf_big, error, buf_size ) CALL check("H5Rget_name_f", error, total_error) - CALL verify("H5Rget_name_f", INT(buf_size),14,total_error) - CALL verify("H5Rget_name_f", TRIM(buf_big), "/GROUP1/GROUP2", total_error) + CALL VERIFY("H5Rget_name_f", INT(buf_size),14,total_error) + CALL VerifyString("H5Rget_name_f", TRIM(buf_big), "/GROUP1/GROUP2", total_error) ! !Close the dataset @@ -234,6 +233,7 @@ SUBROUTINE refobjtest(cleanup, total_error) CALL h5fclose_f(file_id, 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) RETURN @@ -244,6 +244,9 @@ END SUBROUTINE refobjtest ! and h5rdereference_f functionalities ! SUBROUTINE refregtest(cleanup, total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC +! use iso_c_binding ! NOTE: if this is uncommented, then need to move subroutine into another file. IMPLICIT NONE LOGICAL, INTENT(IN) :: cleanup @@ -405,23 +408,23 @@ SUBROUTINE refregtest(cleanup, 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) - CALL verify("H5Rget_name_f", INT(buf_size),7,total_error) - CALL verify("H5Rget_name_f", buf, "/MATRIX", total_error) + CALL VERIFY("H5Rget_name_f", INT(buf_size),7,total_error) + CALL VerifyString("H5Rget_name_f", buf, "/MATRIX", total_error) ! Get name of the dataset the first region reference points to using H5Rget_name_f ! buffer bigger then needed CALL H5Rget_name_f(dsetr_id, ref_out(1), buf_big, error, buf_size ) CALL check("H5Rget_name_f", error, total_error) - CALL verify("H5Rget_name_f", INT(buf_size),7,total_error) - CALL verify("H5Rget_name_f", TRIM(buf_big), "/MATRIX", total_error) + CALL VERIFY("H5Rget_name_f", INT(buf_size),7,total_error) + CALL VerifyString("H5Rget_name_f", TRIM(buf_big), "/MATRIX", total_error) ! Get name of the dataset the first region reference points to using H5Rget_name_f ! buffer smaller then needed CALL H5Rget_name_f(dsetr_id, ref_out(1), buf_small, error, buf_size ) CALL check("H5Rget_name_f", error, total_error) - CALL verify("H5Rget_name_f", INT(buf_size),7,total_error) - CALL verify("H5Rget_name_f", TRIM(buf_small), "/MAT", 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. ! @@ -433,7 +436,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 verify("H5Rget_name_f", TRIM(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 7223772..eaaf29a 100644 --- a/fortran/test/tH5S.f90 +++ b/fortran/test/tH5S.f90 @@ -35,14 +35,12 @@ !***** MODULE TH5S - USE HDF5 ! This module contains all necessary modules - USE TH5_MISC - USE TH5_MISC_GEN - CONTAINS SUBROUTINE dataspace_basic_test(cleanup, total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC IMPLICIT NONE LOGICAL, INTENT(IN) :: cleanup diff --git a/fortran/test/tH5Sselect.f90 b/fortran/test/tH5Sselect.f90 index aeb80e9..7d07308 100644 --- a/fortran/test/tH5Sselect.f90 +++ b/fortran/test/tH5Sselect.f90 @@ -38,14 +38,13 @@ !***** MODULE TH5SSELECT - USE HDF5 ! This module contains all necessary modules - USE TH5_MISC - USE TH5_MISC_GEN - CONTAINS SUBROUTINE test_select_hyperslab(cleanup, total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC + IMPLICIT NONE LOGICAL, INTENT(IN) :: cleanup INTEGER, INTENT(INOUT) :: total_error @@ -700,6 +699,8 @@ CONTAINS SUBROUTINE test_basic_select(cleanup, total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC IMPLICIT NONE LOGICAL, INTENT(IN) :: cleanup @@ -1035,6 +1036,8 @@ CONTAINS !*************************************************************** SUBROUTINE test_select_point(cleanup, total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC IMPLICIT NONE LOGICAL, INTENT(IN) :: cleanup @@ -1137,9 +1140,9 @@ SUBROUTINE test_select_point(cleanup, total_error) CALL check("h5sget_select_elem_pointlist_f", error, total_error) DO i= 1, POINT1_NPOINTS - CALL verify("h5sget_select_elem_pointlist_f", INT(temp_coord1(1,i)), INT(coord1(1,i)), total_error) - CALL verify("h5sget_select_elem_pointlist_f", INT(temp_coord1(2,i)), INT(coord1(2,i)), total_error) - CALL verify("h5sget_select_elem_pointlist_f", INT(temp_coord1(3,i)), INT(coord1(3,i)), total_error) + CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord1(1,i)), INT(coord1(1,i)), total_error) + CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord1(2,i)), INT(coord1(2,i)), total_error) + CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord1(3,i)), INT(coord1(3,i)), total_error) ENDDO CALL H5Sget_select_npoints_f(sid1, npoints, error) @@ -1168,9 +1171,9 @@ SUBROUTINE test_select_point(cleanup, total_error) CALL check("h5sget_select_elem_pointlist_f", error, total_error) DO i= 1, POINT1_NPOINTS - CALL verify("h5sget_select_elem_pointlist_f", INT(temp_coord1(1,i)), INT(coord1(1,i)), total_error) - CALL verify("h5sget_select_elem_pointlist_f", INT(temp_coord1(2,i)), INT(coord1(2,i)), total_error) - CALL verify("h5sget_select_elem_pointlist_f", INT(temp_coord1(3,i)), INT(coord1(3,i)), total_error) + CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord1(1,i)), INT(coord1(1,i)), total_error) + CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord1(2,i)), INT(coord1(2,i)), total_error) + CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord1(3,i)), INT(coord1(3,i)), total_error) ENDDO CALL H5Sget_select_npoints_f(sid1, npoints, error) @@ -1199,8 +1202,8 @@ SUBROUTINE test_select_point(cleanup, total_error) CALL check("h5sget_select_elem_pointlist_f", error, total_error) DO i= 1, POINT1_NPOINTS - CALL verify("h5sget_select_elem_pointlist_f", INT(temp_coord2(1,i)), INT(coord2(1,i)), total_error) - CALL verify("h5sget_select_elem_pointlist_f", INT(temp_coord2(2,i)), INT(coord2(2,i)), total_error) + CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord2(1,i)), INT(coord2(1,i)), total_error) + CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord2(2,i)), INT(coord2(2,i)), total_error) ENDDO !!$ @@ -1235,8 +1238,8 @@ SUBROUTINE test_select_point(cleanup, total_error) CALL check("h5sget_select_elem_pointlist_f", error, total_error) DO i= 1, POINT1_NPOINTS - CALL verify("h5sget_select_elem_pointlist_f", INT(temp_coord2(1,i)), INT(coord2(1,i)), total_error) - CALL verify("h5sget_select_elem_pointlist_f", INT(temp_coord2(2,i)), INT(coord2(2,i)), total_error) + CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord2(1,i)), INT(coord2(1,i)), total_error) + CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord2(2,i)), INT(coord2(2,i)), total_error) ENDDO CALL H5Sget_select_npoints_f(sid2, npoints, error) @@ -1281,8 +1284,8 @@ SUBROUTINE test_select_point(cleanup, total_error) CALL h5sget_select_elem_pointlist_f(sid2, INT(0,hsize_t), INT(POINT1_NPOINTS,hsize_t),temp_coord3,error) CALL check("h5sget_select_elem_pointlist_f", error, total_error) DO i= 1, POINT1_NPOINTS - CALL verify("h5sget_select_elem_pointlist_f", INT(temp_coord3(1,i)), INT(coord3(1,i)), total_error) - CALL verify("h5sget_select_elem_pointlist_f", INT(temp_coord3(2,i)), INT(coord3(2,i)), total_error) + CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord3(1,i)), INT(coord3(1,i)), total_error) + CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord3(2,i)), INT(coord3(2,i)), total_error) ENDDO CALL H5Sget_select_npoints_f(sid2, npoints, error) @@ -1308,8 +1311,8 @@ SUBROUTINE test_select_point(cleanup, total_error) CALL h5sget_select_elem_pointlist_f(sid2, INT(POINT1_NPOINTS,hsize_t), INT(POINT1_NPOINTS,hsize_t),temp_coord3,error) CALL check("h5sget_select_elem_pointlist_f", error, total_error) DO i= 1, POINT1_NPOINTS - CALL verify("h5sget_select_elem_pointlist_f", INT(temp_coord3(1,i)), INT(coord3(1,i)), total_error) - CALL verify("h5sget_select_elem_pointlist_f", INT(temp_coord3(2,i)), INT(coord3(2,i)), total_error) + CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord3(1,i)), INT(coord3(1,i)), total_error) + CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord3(2,i)), INT(coord3(2,i)), total_error) ENDDO CALL H5Sget_select_npoints_f(sid2, npoints, error) @@ -1360,6 +1363,8 @@ END SUBROUTINE test_select_point !*************************************************************** SUBROUTINE test_select_combine(total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error @@ -1395,7 +1400,7 @@ SUBROUTINE test_select_combine(total_error) CALL H5Sget_select_type_f(all_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_ALL_F), 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) @@ -1406,7 +1411,7 @@ SUBROUTINE test_select_combine(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) + 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) @@ -1424,7 +1429,7 @@ SUBROUTINE test_select_combine(total_error) ! Verify that it's still "all" selection 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_ALL_F), total_error) + CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT(H5S_SEL_ALL_F), total_error) ! Close temporary dataspace CALL h5sclose_f(space1, error) @@ -1446,12 +1451,12 @@ SUBROUTINE test_select_combine(total_error) ! Verify that the new selection is the same at the original block 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) + 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) - CALL verify("h5sget_select_hyper_nblocks_f", INT(nblocks), 1, 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) @@ -1459,10 +1464,10 @@ SUBROUTINE test_select_combine(total_error) ! Verify that the correct block is defined - 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)), 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) + 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)), 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) @@ -1485,12 +1490,12 @@ SUBROUTINE test_select_combine(total_error) ! Verify that the new selection is an inversion of the original block 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) + CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_HYPERSLABS_F), total_error) ! Verify that there are two blocks 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), 2, total_error) + CALL VERIFY("h5sget_select_hyper_nblocks_f", INT(nblocks), 2, total_error) ! Retrieve the block defined @@ -1502,19 +1507,19 @@ SUBROUTINE test_select_combine(total_error) ! 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) -!!$ 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)), 10, total_error) -!!$ CALL verify("h5sget_select_hyper_blocklist_f", INT(blocks(5,1,1)), 6, total_error) -!!$ CALL verify("h5sget_select_hyper_blocklist_f", INT(blocks(6,1,1)), 1, total_error) -!!$ CALL verify("h5sget_select_hyper_blocklist_f", INT(blocks(7,1,1)), 10, total_error) -!!$ CALL verify("h5sget_select_hyper_blocklist_f", INT(blocks(8,1,1)), 10, total_error) +!!$ 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) +!!$ 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)), 10, total_error) +!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(5,1,1)), 6, total_error) +!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(6,1,1)), 1, total_error) +!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(7,1,1)), 10, total_error) +!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(8,1,1)), 10, total_error) ! Otherwise make sure the "area" of the block is correct area = (ABS(INT(blocks(1,1,1)-blocks(3,1,1)))+1)*(ABS(INT(blocks(2,1,1)-blocks(4,1,1)))+1) area = area + (ABS(INT(blocks(5,1,1)-blocks(7,1,1)))+1)*(ABS(INT(blocks(6,1,1)-blocks(8,1,1)))+1) - CALL verify("h5sget_select_hyper_blocklist_f", area, 80, total_error) + CALL VERIFY("h5sget_select_hyper_blocklist_f", area, 80, total_error) ! Close temporary dataspace CALL h5sclose_f(space1, error) @@ -1537,12 +1542,12 @@ SUBROUTINE test_select_combine(total_error) ! Verify that the new selection is an inversion of the original block 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) + CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_HYPERSLABS_F), total_error) ! Verify that there are two blocks 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), 2, total_error) + CALL VERIFY("h5sget_select_hyper_nblocks_f", INT(nblocks), 2, total_error) ! Retrieve the block defined blocks = -1 ! Reset block list @@ -1554,19 +1559,19 @@ SUBROUTINE test_select_combine(total_error) ! 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) -!!$ 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)),10, total_error) -!!$ CALL verify("h5sget_select_hyper_blocklist_f", INT(blocks(5,1,1)), 6, total_error) -!!$ CALL verify("h5sget_select_hyper_blocklist_f", INT(blocks(6,1,1)), 1, total_error) -!!$ CALL verify("h5sget_select_hyper_blocklist_f", INT(blocks(7,1,1)),10, total_error) -!!$ CALL verify("h5sget_select_hyper_blocklist_f", INT(blocks(8,1,1)),10, total_error) +!!$ 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) +!!$ 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)),10, total_error) +!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(5,1,1)), 6, total_error) +!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(6,1,1)), 1, total_error) +!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(7,1,1)),10, total_error) +!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(8,1,1)),10, total_error) ! Otherwise make sure the "area" of the block is correct area = (ABS(INT(blocks(1,1,1)-blocks(3,1,1)))+1)*(ABS(INT(blocks(2,1,1)-blocks(4,1,1)))+1) area = area + (ABS(INT(blocks(5,1,1)-blocks(7,1,1)))+1)*(ABS(INT(blocks(6,1,1)-blocks(8,1,1)))+1) - CALL verify("h5sget_select_hyper_blocklist_f", area, 80, total_error) + CALL VERIFY("h5sget_select_hyper_blocklist_f", area, 80, total_error) ! Close temporary dataspace @@ -1589,7 +1594,7 @@ SUBROUTINE test_select_combine(total_error) ! Verify that the new selection is the "none" selection 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_NONE_F), total_error) + CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_NONE_F), total_error) ! Close temporary dataspace CALL h5sclose_f(space1, error) @@ -1612,13 +1617,13 @@ SUBROUTINE test_select_combine(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) + 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) - CALL verify("h5sget_select_hyper_nblocks_f", INT(nblocks), 1, total_error) + CALL VERIFY("h5sget_select_hyper_nblocks_f", INT(nblocks), 1, total_error) ! Retrieve the block defined blocks = -1 ! Reset block list @@ -1626,10 +1631,10 @@ SUBROUTINE test_select_combine(total_error) CALL check("h5sget_select_hyper_blocklist_f", error, total_error) ! Verify that the correct block is defined - 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)), 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) + 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)), 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) @@ -1652,7 +1657,7 @@ SUBROUTINE test_select_combine(total_error) ! Verify that the new selection is the "none" selection 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_NONE_F), total_error) + CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_NONE_F), total_error) ! Close temporary dataspace CALL h5sclose_f(space1, error) @@ -1675,23 +1680,23 @@ SUBROUTINE test_select_combine(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) + 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) - CALL verify("h5sget_select_hyper_nblocks_f", INT(nblocks), 1, total_error) + CALL VERIFY("h5sget_select_hyper_nblocks_f", INT(nblocks), 1, total_error) ! Retrieve the block defined blocks = -1 ! Reset block list 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 - 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)), 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) + 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)), 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) @@ -1714,7 +1719,7 @@ SUBROUTINE test_select_combine(total_error) ! Verify that the new selection is the "none" selection 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_NONE_F), total_error) + CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_NONE_F), total_error) ! Close temporary dataspace CALL h5sclose_f(space1, error) @@ -1736,12 +1741,12 @@ SUBROUTINE test_select_combine(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) + 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) - CALL verify("h5sget_select_hyper_nblocks_f", INT(nblocks), 1, total_error) + CALL VERIFY("h5sget_select_hyper_nblocks_f", INT(nblocks), 1, total_error) ! Retrieve the block defined @@ -1752,10 +1757,10 @@ SUBROUTINE test_select_combine(total_error) ! Verify that the correct block is defined - 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)), 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) + 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)), 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) @@ -1780,6 +1785,8 @@ END SUBROUTINE test_select_combine !*************************************************************** SUBROUTINE test_select_bounds(total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error @@ -1810,10 +1817,10 @@ SUBROUTINE test_select_bounds(total_error) CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error) CALL check("h5sget_select_bounds_f", error, total_error) - CALL verify("h5sget_select_bounds_f", low_bounds(1), 1_hsize_t, total_error) - CALL verify("h5sget_select_bounds_f", low_bounds(2), 1_hsize_t, total_error) - CALL verify("h5sget_select_bounds_f", high_bounds(1), INT(SPACE11_DIM1, hsize_t), total_error) - CALL verify("h5sget_select_bounds_f", high_bounds(2), INT(SPACE11_DIM2, hsize_t), total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(1)), 1, total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(2)), 1, total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), SPACE11_DIM1, total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), SPACE11_DIM2, total_error) ! Set offset for selection offset(1:2) = 1 @@ -1824,10 +1831,10 @@ SUBROUTINE test_select_bounds(total_error) CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error) CALL check("h5sget_select_bounds_f", error, total_error) - CALL verify("h5sget_select_bounds_f", low_bounds(1), 1_hsize_t, total_error) - CALL verify("h5sget_select_bounds_f", low_bounds(2), 1_hsize_t, total_error) - CALL VERIFY("h5sget_select_bounds_f", high_bounds(1), INT(SPACE11_DIM1, hsize_t), total_error) - CALL verify("h5sget_select_bounds_f", high_bounds(2), INT(SPACE11_DIM2, hsize_t), total_error) + CALL verify("h5sget_select_bounds_f", INT(low_bounds(1)), 1, total_error) + CALL verify("h5sget_select_bounds_f", INT(low_bounds(2)), 1, total_error) + CALL verify("h5sget_select_bounds_f", INT(high_bounds(1)), SPACE11_DIM1, total_error) + CALL verify("h5sget_select_bounds_f", INT(high_bounds(2)), SPACE11_DIM2, total_error) ! Reset offset for selection offset(1:2) = 0 @@ -1840,7 +1847,7 @@ SUBROUTINE test_select_bounds(total_error) ! Get bounds for 'none' selection, should fail CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error) - CALL verify("h5sget_select_bounds_f", error, -1, total_error) + CALL VERIFY("h5sget_select_bounds_f", error, -1, total_error) ! Set point selection @@ -1856,10 +1863,10 @@ SUBROUTINE test_select_bounds(total_error) CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error) CALL check("h5sget_select_bounds_f", error, total_error) - CALL verify("h5sget_select_bounds_f", low_bounds(1), 3_hsize_t, total_error) - CALL verify("h5sget_select_bounds_f", low_bounds(2), 3_hsize_t, total_error) - CALL VERIFY("h5sget_select_bounds_f", high_bounds(1), INT(SPACE11_DIM1-4,hsize_t), total_error) - CALL verify("h5sget_select_bounds_f", high_bounds(2), INT(SPACE11_DIM2-4,hsize_t), total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(1)), 3, total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(2)), 3, total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), INT(SPACE11_DIM1-4), total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), INT(SPACE11_DIM2-4), total_error) ! Set bad offset for selection @@ -1869,7 +1876,7 @@ SUBROUTINE test_select_bounds(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) + CALL VERIFY("h5sget_select_bounds_f", error, -1, total_error) ! Set valid offset for selection offset(1:2) = (/2,-2/) @@ -1880,10 +1887,10 @@ SUBROUTINE test_select_bounds(total_error) CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error) CALL check("h5sget_select_bounds_f", error, total_error) - CALL verify("h5sget_select_bounds_f", low_bounds(1), 5_hsize_t, total_error) - CALL verify("h5sget_select_bounds_f", low_bounds(2), 1_hsize_t, total_error) - CALL verify("h5sget_select_bounds_f", high_bounds(1), INT(SPACE11_DIM1-2,hsize_t), total_error) - CALL verify("h5sget_select_bounds_f", high_bounds(2), INT(SPACE11_DIM2-6,hsize_t), total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(1)), 5, total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(2)), 1, total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), INT(SPACE11_DIM1-2), total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), INT(SPACE11_DIM2-6), total_error) ! Reset offset for selection offset(1:2) = 0 @@ -1904,10 +1911,10 @@ SUBROUTINE test_select_bounds(total_error) CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error) CALL check("h5sget_select_bounds_f", error, total_error) - CALL verify("h5sget_select_bounds_f", low_bounds(1), 3_hsize_t, total_error) - CALL verify("h5sget_select_bounds_f", low_bounds(2), 3_hsize_t, total_error) - CALL verify("h5sget_select_bounds_f", high_bounds(1), 37_hsize_t, total_error) - CALL verify("h5sget_select_bounds_f", high_bounds(2), 37_hsize_t, total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(1)), 3, total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(2)), 3, total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), 37, total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), 37, total_error) ! Set bad offset for selection offset(1:2) = (/5,-5/) @@ -1916,7 +1923,7 @@ SUBROUTINE test_select_bounds(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) + CALL VERIFY("h5sget_select_bounds_f", error, -1, total_error) ! Set valid offset for selection offset(1:2) = (/5,-2/) @@ -1927,10 +1934,10 @@ SUBROUTINE test_select_bounds(total_error) CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error) CALL check("h5sget_select_bounds_f", error, total_error) - CALL verify("h5sget_select_bounds_f", low_bounds(1), 8_hsize_t, total_error) - CALL verify("h5sget_select_bounds_f", low_bounds(2), 1_hsize_t, total_error) - CALL verify("h5sget_select_bounds_f", high_bounds(1), 42_hsize_t, total_error) - CALL verify("h5sget_select_bounds_f", high_bounds(2), 35_hsize_t, total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(1)), 8, total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(2)), 1, total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), 42, total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), 35, total_error) ! Reset offset for selection offset(1:2) = 0 @@ -1951,10 +1958,10 @@ SUBROUTINE test_select_bounds(total_error) CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error) CALL check("h5sget_select_bounds_f", error, total_error) - CALL verify("h5sget_select_bounds_f", low_bounds(1), 3_hsize_t, total_error) - CALL verify("h5sget_select_bounds_f", low_bounds(2), 3_hsize_t, total_error) - CALL verify("h5sget_select_bounds_f", high_bounds(1), 50_hsize_t, total_error) - CALL verify("h5sget_select_bounds_f", high_bounds(2), 50_hsize_t, total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(1)), 3, total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(2)), 3, total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), 50, total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), 50, total_error) ! Set bad offset for selection offset(1:2) = (/5,-5/) @@ -1963,7 +1970,7 @@ SUBROUTINE test_select_bounds(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) + CALL VERIFY("h5sget_select_bounds_f", error, -1, total_error) ! Set valid offset for selection offset(1:2) = (/5,-2/) @@ -1974,10 +1981,10 @@ SUBROUTINE test_select_bounds(total_error) CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error) CALL check("h5sget_select_bounds_f", error, total_error) - CALL verify("h5sget_select_bounds_f", low_bounds(1), 8_hsize_t, total_error) - CALL verify("h5sget_select_bounds_f", low_bounds(2), 1_hsize_t, total_error) - CALL verify("h5sget_select_bounds_f", high_bounds(1), 55_hsize_t, total_error) - CALL verify("h5sget_select_bounds_f", high_bounds(2), 48_hsize_t, total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(1)), 8, total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(2)), 1, total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), 55, total_error) + CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), 48, total_error) ! Reset offset for selection offset(1:2) = 0 diff --git a/fortran/test/tH5T.f90 b/fortran/test/tH5T.f90 index efbceea..7822c16 100644 --- a/fortran/test/tH5T.f90 +++ b/fortran/test/tH5T.f90 @@ -29,10 +29,6 @@ MODULE TH5T - USE HDF5 - USE TH5_MISC - USE TH5_MISC_GEN - CONTAINS SUBROUTINE compoundtest(cleanup, total_error) @@ -51,6 +47,8 @@ CONTAINS ! h5tget_class_f, h5tget_member_name_f, h5tget_member_offset_f, h5tget_member_type_f, ! h5tequal_f, h5tinsert_array_f, h5tcommit_f, h5tencode_f, h5tdecode_f + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC IMPLICIT NONE LOGICAL, INTENT(IN) :: cleanup @@ -157,6 +155,7 @@ CONTAINS CALL h5tclose_f(fixed_str2,error) CALL check("h5tclose_f", error, total_error) + data_dims(1) = dimsize ! ! Initialize data buffer. @@ -179,47 +178,47 @@ CONTAINS ! during write/read to/from dataset with compound datatype. ! CALL h5pcreate_f(H5P_DATASET_XFER_F, plist_id, error) - CALL check("h5pcreate_f", error, total_error) + CALL check("h5pcreate_f", error, total_error) CALL h5pset_preserve_f(plist_id, flag, error) - CALL check("h5pset_preserve_f", error, total_error) + CALL check("h5pset_preserve_f", error, total_error) ! ! Create a new file using default properties. ! - CALL h5_fixname_f(filename, fix_filename, H5P_DEFAULT_F, error) + CALL h5_fixname_f(filename, fix_filename, H5P_DEFAULT_F, error) if (error .ne. 0) then write(*,*) "Cannot modify filename" stop endif CALL h5fcreate_f(fix_filename, H5F_ACC_TRUNC_F, file_id, error) - CALL check("h5fcreate_f", error, total_error) + CALL check("h5fcreate_f", error, total_error) ! ! Create the dataspace. ! CALL h5screate_simple_f(rank, dims, dspace_id, error) - CALL check("h5screate_simple_f", error, total_error) + CALL check("h5screate_simple_f", error, total_error) ! ! Create compound datatype. ! ! First calculate total size by calculating sizes of each member ! CALL h5tcopy_f(H5T_NATIVE_CHARACTER, dt5_id, error) - CALL check("h5tcopy_f", error, total_error) + CALL check("h5tcopy_f", error, total_error) sizechar = 2 CALL h5tset_size_f(dt5_id, sizechar, error) - CALL check("h5tset_size_f", error, total_error) + CALL check("h5tset_size_f", error, total_error) CALL h5tget_size_f(dt5_id, type_sizec, error) - CALL check("h5tget_size_f", error, total_error) + CALL check("h5tget_size_f", error, total_error) CALL h5tget_size_f(H5T_NATIVE_INTEGER, type_sizei, error) - CALL check("h5tget_size_f", error, total_error) + CALL check("h5tget_size_f", error, total_error) CALL h5tget_size_f(H5T_NATIVE_DOUBLE, type_sized, error) - CALL check("h5tget_size_f", error, total_error) + CALL check("h5tget_size_f", error, total_error) CALL h5tget_size_f(H5T_NATIVE_REAL, type_sizer, error) - CALL check("h5tget_size_f", error, total_error) + CALL check("h5tget_size_f", error, total_error) !write(*,*) "get sizes", type_sizec, type_sizei, type_sizer, type_sized type_size = type_sizec + type_sizei + type_sized + type_sizer CALL h5tcreate_f(H5T_COMPOUND_F, type_size, dtype_id, error) - CALL check("h5tcreate_f", error, total_error) + CALL check("h5tcreate_f", error, total_error) ! ! Insert memebers ! @@ -227,19 +226,19 @@ CONTAINS ! offset = 0 CALL h5tinsert_f(dtype_id, "char_field", offset, dt5_id, error) - CALL check("h5tinsert_f", error, total_error) + CALL check("h5tinsert_f", error, total_error) ! ! INTEGER member ! offset = offset + type_sizec ! Offset of the second memeber is 2 CALL h5tinsert_f(dtype_id, "integer_field", offset, H5T_NATIVE_INTEGER, error) - CALL check("h5tinsert_f", error, total_error) + CALL check("h5tinsert_f", error, total_error) ! ! DOUBLE PRECISION member ! offset = offset + type_sizei ! Offset of the third memeber is 6 CALL h5tinsert_f(dtype_id, "double_field", offset, H5T_NATIVE_DOUBLE, error) - CALL check("h5tinsert_f", error, total_error) + CALL check("h5tinsert_f", error, total_error) ! ! REAL member ! @@ -251,122 +250,123 @@ CONTAINS ! CALL h5dcreate_f(file_id, dsetname, dtype_id, dspace_id, & dset_id, error) - CALL check("h5dcreate_f", error, total_error) + CALL check("h5dcreate_f", error, total_error) ! ! Create memory types. We have to create a compound datatype ! for each member we want to write. ! CALL h5tcreate_f(H5T_COMPOUND_F, type_sizec, dt1_id, error) - CALL check("h5tcreate_f", error, total_error) + CALL check("h5tcreate_f", error, total_error) offset = 0 CALL h5tinsert_f(dt1_id, "char_field", offset, dt5_id, error) - CALL check("h5tinsert_f", error, total_error) + CALL check("h5tinsert_f", error, total_error) ! CALL h5tcreate_f(H5T_COMPOUND_F, type_sizei, dt2_id, error) - CALL check("h5tcreate_f", error, total_error) + CALL check("h5tcreate_f", error, total_error) offset = 0 CALL h5tinsert_f(dt2_id, "integer_field", offset, H5T_NATIVE_INTEGER, error) - CALL check("h5tinsert_f", error, total_error) + CALL check("h5tinsert_f", error, total_error) ! CALL h5tcreate_f(H5T_COMPOUND_F, type_sized, dt3_id, error) - CALL check("h5tcreate_f", error, total_error) + CALL check("h5tcreate_f", error, total_error) offset = 0 CALL h5tinsert_f(dt3_id, "double_field", offset, H5T_NATIVE_DOUBLE, error) - CALL check("h5tinsert_f", error, total_error) + CALL check("h5tinsert_f", error, total_error) ! CALL h5tcreate_f(H5T_COMPOUND_F, type_sizer, dt4_id, error) - CALL check("h5tcreate_f", error, total_error) + CALL check("h5tcreate_f", error, total_error) offset = 0 CALL h5tinsert_f(dt4_id, "real_field", offset, H5T_NATIVE_REAL, error) - CALL check("h5tinsert_f", error, total_error) + CALL check("h5tinsert_f", error, total_error) ! ! Write data by fields in the datatype. Fields order is not important. ! CALL h5dwrite_f(dset_id, dt4_id, real_member, data_dims, error, xfer_prp = plist_id) - CALL check("h5dwrite_f", error, total_error) + CALL check("h5dwrite_f", error, total_error) CALL h5dwrite_f(dset_id, dt1_id, char_member, data_dims, error, xfer_prp = plist_id) - CALL check("h5dwrite_f", error, total_error) + CALL check("h5dwrite_f", error, total_error) CALL h5dwrite_f(dset_id, dt3_id, double_member, data_dims, error, xfer_prp = plist_id) - CALL check("h5dwrite_f", error, total_error) + CALL check("h5dwrite_f", error, total_error) CALL h5dwrite_f(dset_id, dt2_id, int_member, data_dims, error, xfer_prp = plist_id) - CALL check("h5dwrite_f", error, total_error) + CALL check("h5dwrite_f", error, total_error) ! ! End access to the dataset and release resources used by it. ! CALL h5dclose_f(dset_id, error) - CALL check("h5dclose_f", error, total_error) + CALL check("h5dclose_f", error, total_error) ! ! Terminate access to the data space. ! CALL h5sclose_f(dspace_id, error) - CALL check("h5sclose_f", error, total_error) + CALL check("h5sclose_f", error, total_error) ! ! Terminate access to the datatype ! CALL h5tclose_f(dtype_id, error) - CALL check("h5tclose_f", error, total_error) + CALL check("h5tclose_f", error, total_error) CALL h5tclose_f(dt1_id, error) - CALL check("h5tclose_f", error, total_error) + CALL check("h5tclose_f", error, total_error) CALL h5tclose_f(dt2_id, error) - CALL check("h5tclose_f", error, total_error) + CALL check("h5tclose_f", error, total_error) CALL h5tclose_f(dt3_id, error) - CALL check("h5tclose_f", error, total_error) + CALL check("h5tclose_f", error, total_error) CALL h5tclose_f(dt4_id, error) - CALL check("h5tclose_f", error, total_error) + CALL check("h5tclose_f", error, total_error) + ! ! Create and store compound datatype with the character and ! array members. ! type_size = type_sizec + elements*type_sizer ! Size of compound datatype CALL h5tcreate_f(H5T_COMPOUND_F, type_size, dtarray_id, error) - CALL check("h5tcreate_f", error, total_error) + CALL check("h5tcreate_f", error, total_error) offset = 0 CALL h5tinsert_f(dtarray_id, "char_field", offset, H5T_NATIVE_CHARACTER, error) - CALL check("h5tinsert_f", error, total_error) + CALL check("h5tinsert_f", error, total_error) offset = type_sizec CALL h5tarray_create_f(H5T_NATIVE_REAL, array_dims_range, array_dims, arrayt_id, error) - CALL check("h5tarray_create_f", error, total_error) + CALL check("h5tarray_create_f", error, total_error) CALL h5tinsert_f(dtarray_id,"array_field", offset, arrayt_id, error) - CALL check("h5tinsert_f", error, total_error) + CALL check("h5tinsert_f", error, total_error) CALL h5tcommit_f(file_id, "Compound_with_array_member", dtarray_id, error) - CALL check("h5tcommit_f", error, total_error) + CALL check("h5tcommit_f", error, total_error) CALL h5tclose_f(arrayt_id, error) - CALL check("h5tclose_f", error, total_error) + CALL check("h5tclose_f", error, total_error) CALL h5tclose_f(dtarray_id, error) - CALL check("h5tclose_f", error, total_error) + CALL check("h5tclose_f", error, total_error) ! ! Close the file. ! CALL h5fclose_f(file_id, error) - CALL check("h5fclose_f", error, total_error) + CALL check("h5fclose_f", error, total_error) ! ! Open the file. ! CALL h5fopen_f (fix_filename, H5F_ACC_RDWR_F, file_id, error) - CALL check("h5fopen_f", error, total_error) + CALL check("h5fopen_f", error, total_error) ! ! Open the dataset. ! CALL h5dopen_f(file_id, dsetname, dset_id, error) - CALL check("h5dopen_f", error, total_error) + CALL check("h5dopen_f", error, total_error) ! ! Get datatype of the open dataset. ! Check it class, number of members, and member's names. ! CALL h5dget_type_f(dset_id, dtype_id, error) - CALL check("h5dget_type_f", error, total_error) + CALL check("h5dget_type_f", error, total_error) CALL h5tget_class_f(dtype_id, class, error) - CALL check("h5dget_class_f", error, total_error) + CALL check("h5dget_class_f", error, total_error) if (class .ne. H5T_COMPOUND_F) then write(*,*) " Wrong class type returned" total_error = total_error + 1 endif CALL h5tget_nmembers_f(dtype_id, num_members, error) - CALL check("h5dget_nmembers_f", error, total_error) + CALL check("h5dget_nmembers_f", error, total_error) if (num_members .ne. COMP_NUM_MEMBERS ) then write(*,*) " Wrong number of members returned" total_error = total_error + 1 @@ -377,11 +377,11 @@ CONTAINS ! do i = 1, num_members CALL h5tget_member_name_f(dtype_id, i-1, member_name, len, error) - CALL check("h5tget_member_name_f", error, total_error) + CALL check("h5tget_member_name_f", error, total_error) CALL h5tget_member_offset_f(dtype_id, i-1, offset_out, error) - CALL check("h5tget_member_offset_f", error, total_error) + CALL check("h5tget_member_offset_f", error, total_error) CALL h5tget_member_index_f(dtype_id, member_name(1:len), member_index, error) - CALL check("h5tget_member_index_f", error, total_error) + CALL check("h5tget_member_index_f", error, total_error) if(member_index .ne. i-1) then write(*,*) "Index returned is incorrect" write(*,*) member_index, i-1 @@ -394,16 +394,16 @@ CONTAINS write(*,*) "Offset of the char member is incorrect" total_error = total_error + 1 endif - CALL h5tget_member_type_f(dtype_id, i-1, membtype_id, error) - CALL check("h5tget_member_type_f", error, total_error) - CALL h5tequal_f(membtype_id, dt5_id, flag, error) - CALL check("h5tequal_f", error, total_error) + CALL h5tget_member_type_f(dtype_id, i-1, membtype_id, error) + CALL check("h5tget_member_type_f", error, total_error) + CALL h5tequal_f(membtype_id, dt5_id, flag, error) + CALL check("h5tequal_f", error, total_error) if(.not. flag) then write(*,*) "Wrong member type returned for character member" total_error = total_error + 1 endif - CALL h5tget_member_class_f(dtype_id, i-1, class, error) - CALL check("h5tget_member_class_f",error, total_error) + CALL h5tget_member_class_f(dtype_id, i-1, class, error) + CALL check("h5tget_member_class_f",error, total_error) if (class .ne. H5T_STRING_F) then write(*,*) "Wrong class returned for character member" total_error = total_error + 1 @@ -413,16 +413,16 @@ CONTAINS write(*,*) "Offset of the integer member is incorrect" total_error = total_error + 1 endif - CALL h5tget_member_type_f(dtype_id, i-1, membtype_id, error) - CALL check("h5tget_member_type_f", error, total_error) - CALL h5tequal_f(membtype_id, H5T_NATIVE_INTEGER, flag, error) - CALL check("h5tequal_f", error, total_error) + CALL h5tget_member_type_f(dtype_id, i-1, membtype_id, error) + CALL check("h5tget_member_type_f", error, total_error) + CALL h5tequal_f(membtype_id, H5T_NATIVE_INTEGER, flag, error) + CALL check("h5tequal_f", error, total_error) if(.not. flag) then write(*,*) "Wrong member type returned for integer memebr" total_error = total_error + 1 endif - CALL h5tget_member_class_f(dtype_id, i-1, class, error) - CALL check("h5tget_member_class_f",error, total_error) + CALL h5tget_member_class_f(dtype_id, i-1, class, error) + CALL check("h5tget_member_class_f",error, total_error) if (class .ne. H5T_INTEGER_F) then write(*,*) "Wrong class returned for INTEGER member" total_error = total_error + 1 @@ -432,16 +432,16 @@ CONTAINS write(*,*) "Offset of the double precision member is incorrect" total_error = total_error + 1 endif - CALL h5tget_member_type_f(dtype_id, i-1, membtype_id, error) - CALL check("h5tget_member_type_f", error, total_error) - CALL h5tequal_f(membtype_id, H5T_NATIVE_DOUBLE, flag, error) - CALL check("h5tequal_f", error, total_error) + CALL h5tget_member_type_f(dtype_id, i-1, membtype_id, error) + CALL check("h5tget_member_type_f", error, total_error) + CALL h5tequal_f(membtype_id, H5T_NATIVE_DOUBLE, flag, error) + CALL check("h5tequal_f", error, total_error) if(.not. flag) then write(*,*) "Wrong member type returned for double precision memebr" total_error = total_error + 1 endif - CALL h5tget_member_class_f(dtype_id, i-1, class, error) - CALL check("h5tget_member_class_f",error, total_error) + CALL h5tget_member_class_f(dtype_id, i-1, class, error) + CALL check("h5tget_member_class_f",error, total_error) if (class .ne. H5T_FLOAT_F) then write(*,*) "Wrong class returned for double precision member" total_error = total_error + 1 @@ -451,16 +451,16 @@ CONTAINS write(*,*) "Offset of the real member is incorrect" total_error = total_error + 1 endif - CALL h5tget_member_type_f(dtype_id, i-1, membtype_id, error) - CALL check("h5tget_member_type_f", error, total_error) - CALL h5tequal_f(membtype_id, H5T_NATIVE_REAL, flag, error) - CALL check("h5tequal_f", error, total_error) + CALL h5tget_member_type_f(dtype_id, i-1, membtype_id, error) + CALL check("h5tget_member_type_f", error, total_error) + CALL h5tequal_f(membtype_id, H5T_NATIVE_REAL, flag, error) + CALL check("h5tequal_f", error, total_error) if(.not. flag) then write(*,*) "Wrong member type returned for real memebr" total_error = total_error + 1 endif - CALL h5tget_member_class_f(dtype_id, i-1, class, error) - CALL check("h5tget_member_class_f",error, total_error) + CALL h5tget_member_class_f(dtype_id, i-1, class, error) + CALL check("h5tget_member_class_f",error, total_error) if (class .ne. H5T_FLOAT_F) then write(*,*) "Wrong class returned for real member" total_error = total_error + 1 @@ -476,22 +476,22 @@ CONTAINS ! Create memory datatype to read character member of the compound datatype. ! CALL h5tcopy_f(H5T_NATIVE_CHARACTER, dt2_id, error) - CALL check("h5tcopy_f", error, total_error) + CALL check("h5tcopy_f", error, total_error) sizechar = 2 CALL h5tset_size_f(dt2_id, sizechar, error) - CALL check("h5tset_size_f", error, total_error) + CALL check("h5tset_size_f", error, total_error) CALL h5tget_size_f(dt2_id, type_size, error) - CALL check("h5tget_size_f", error, total_error) + CALL check("h5tget_size_f", error, total_error) CALL h5tcreate_f(H5T_COMPOUND_F, type_size, dt1_id, error) - CALL check("h5tcreate_f", error, total_error) + CALL check("h5tcreate_f", error, total_error) offset = 0 CALL h5tinsert_f(dt1_id, "char_field", offset, dt2_id, error) - CALL check("h5tinsert_f", error, total_error) + CALL check("h5tinsert_f", error, total_error) ! ! Read part of the dataset ! CALL h5dread_f(dset_id, dt1_id, char_member_out, data_dims, error) - CALL check("h5dread_f", error, total_error) + CALL check("h5dread_f", error, total_error) do i = 1, dimsize if (char_member_out(i) .ne. char_member(i)) then write(*,*) " Wrong character data is read back " @@ -500,15 +500,15 @@ CONTAINS enddo ! CALL h5tcreate_f(H5T_COMPOUND_F, type_sizei, dt5_id, error) - CALL check("h5tcreate_f", error, total_error) + CALL check("h5tcreate_f", error, total_error) offset = 0 CALL h5tinsert_f(dt5_id, "integer_field", offset, H5T_NATIVE_INTEGER, error) - CALL check("h5tinsert_f", error, total_error) + CALL check("h5tinsert_f", error, total_error) ! ! Read part of the dataset ! CALL h5dread_f(dset_id, dt5_id, int_member_out, data_dims, error) - CALL check("h5dread_f", error, total_error) + CALL check("h5dread_f", error, total_error) do i = 1, dimsize if (int_member_out(i) .ne. int_member(i)) then write(*,*) " Wrong integer data is read back " @@ -518,33 +518,39 @@ CONTAINS ! ! CALL h5tcreate_f(H5T_COMPOUND_F, type_sized, dt3_id, error) - CALL check("h5tcreate_f", error, total_error) + CALL check("h5tcreate_f", error, total_error) offset = 0 CALL h5tinsert_f(dt3_id, "double_field", offset, H5T_NATIVE_DOUBLE, error) - CALL check("h5tinsert_f", error, total_error) + CALL check("h5tinsert_f", error, total_error) ! ! Read part of the dataset ! CALL h5dread_f(dset_id, dt3_id, double_member_out, data_dims, error) - CALL check("h5dread_f", error, total_error) - DO i = 1, dimsize - CALL VERIFY("h5dread_f:Wrong double precision data is read back", double_member_out(i), double_member(i), total_error) - ENDDO + CALL check("h5dread_f", error, total_error) + do i = 1, dimsize + IF( .NOT.dreal_eq( REAL(double_member_out(i),dp), REAL( double_member(i), dp)) ) THEN + write(*,*) " Wrong double precision data is read back " + total_error = total_error + 1 + endif + enddo ! ! CALL h5tcreate_f(H5T_COMPOUND_F, type_sizer, dt4_id, error) - CALL check("h5tcreate_f", error, total_error) + CALL check("h5tcreate_f", error, total_error) offset = 0 CALL h5tinsert_f(dt4_id, "real_field", offset, H5T_NATIVE_REAL, error) - CALL check("h5tinsert_f", error, total_error) + CALL check("h5tinsert_f", error, total_error) ! ! Read part of the dataset ! CALL h5dread_f(dset_id, dt4_id, real_member_out, data_dims, error) - CALL check("h5dread_f", error, total_error) - DO i = 1, dimsize - CALL VERIFY("h5dread_f:Wrong double precision data is read back", real_member_out(i), real_member(i), total_error) - ENDDO + CALL check("h5dread_f", error, total_error) + DO i = 1, dimsize + IF( .NOT.dreal_eq( REAL(real_member_out(i),dp), REAL( real_member(i), dp)) ) THEN + WRITE(*,*) " Wrong real precision data is read back " + total_error = total_error + 1 + ENDIF + ENDDO ! ! *----------------------------------------------------------------------- ! * Test encoding and decoding compound datatypes @@ -559,7 +565,7 @@ CONTAINS ! Try decoding bogus buffer CALL H5Tdecode_f(cmpd_buf, decoded_tid1, error) - CALL verify("H5Tdecode_f", error, -1, total_error) + CALL VERIFY("H5Tdecode_f", error, -1, total_error) CALL H5Tencode_f(dtype_id, cmpd_buf, cmpd_buf_size, error) CALL check("H5Tencode_f", error, total_error) @@ -572,27 +578,27 @@ CONTAINS CALL H5Tequal_f(decoded_tid1, dtype_id, flag, error) CALL check("H5Tequal_f", error, total_error) - CALL verify("H5Tequal_f", flag, .TRUE., total_error) + CALL VerifyLogical("H5Tequal_f", flag, .TRUE., total_error) ! ! Close all open objects. ! CALL h5dclose_f(dset_id, error) - CALL check("h5dclose_f", error, total_error) + CALL check("h5dclose_f", error, total_error) CALL h5tclose_f(dt1_id, error) - CALL check("h5tclose_f", error, total_error) + CALL check("h5tclose_f", error, total_error) CALL h5tclose_f(dt2_id, error) - CALL check("h5tclose_f", error, total_error) + CALL check("h5tclose_f", error, total_error) CALL h5tclose_f(dt3_id, error) - CALL check("h5tclose_f", error, total_error) + CALL check("h5tclose_f", error, total_error) CALL h5tclose_f(dt4_id, error) - CALL check("h5tclose_f", error, total_error) + CALL check("h5tclose_f", error, total_error) CALL h5tclose_f(dt5_id, error) - CALL check("h5tclose_f", error, total_error) + CALL check("h5tclose_f", error, total_error) CALL h5fclose_f(file_id, error) - CALL check("h5fclose_f", error, total_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) + if(cleanup) CALL h5_cleanup_f(filename, H5P_DEFAULT_F, error) + CALL check("h5_cleanup_f", error, total_error) RETURN END SUBROUTINE compoundtest @@ -608,6 +614,9 @@ CONTAINS ! H5tset_norm_f, H5tget_inpad_f, H5tset_inpad_f, H5tget_cset_f, ! H5tset_cset_f, H5tget_strpad_f, H5tset_strpad_f + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC + IMPLICIT NONE INTEGER, INTENT(OUT) :: total_error @@ -893,7 +902,7 @@ CONTAINS CALL check("H5Tget_order_f",error, total_error) CALL H5Tget_order_f(H5T_NATIVE_INTEGER, order2, error) CALL check("H5Tget_order_f",error, total_error) - CALL verify("H5Tget_native_type_f",order1, order2, total_error) + CALL VERIFY("H5Tget_native_type_f",order1, order2, total_error) ! this test depends on whether -i8 was specified @@ -901,11 +910,11 @@ CONTAINS !!$ CALL check("H5Tget_size_f",error, total_error) !!$ CALL H5Tget_size_f(H5T_STD_I32BE, type_size2, error) !!$ CALL check("H5Tget_size_f",error, total_error) -!!$ CALL verify("H5Tget_native_type_f", INT(type_size1), INT(type_size2), total_error) +!!$ CALL VERIFY("H5Tget_native_type_f", INT(type_size1), INT(type_size2), total_error) CALL H5Tget_class_f(native_type, class, error) CALL check("H5Tget_class_f",error, total_error) - CALL verify("H5Tget_native_type_f", INT(class), INT(H5T_ENUM_F), total_error) + CALL VERIFY("H5Tget_native_type_f", INT(class), INT(H5T_ENUM_F), total_error) CALL h5dclose_f(dset_id,error) CALL check("h5dclose_f", error, total_error) @@ -963,6 +972,8 @@ CONTAINS SUBROUTINE test_derived_flt(cleanup, total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC IMPLICIT NONE LOGICAL, INTENT(IN) :: cleanup @@ -1049,24 +1060,24 @@ SUBROUTINE test_derived_flt(cleanup, total_error) CALL check("H5Tget_fields_f", error, total_error) IF(spos.NE.44 .OR. epos.NE.34 .OR. esize.NE.10 .OR. mpos.NE.3 .OR. msize.NE.31)THEN - CALL verify("H5Tget_fields_f", -1, 0, total_error) + CALL VERIFY("H5Tget_fields_f", -1, 0, total_error) ENDIF CALL H5Tget_precision_f(tid1, precision1, error) CALL check("H5Tget_precision_f", error, total_error) - CALL verify("H5Tget_precision_f", INT(precision1), 42, total_error) + CALL VERIFY("H5Tget_precision_f", INT(precision1), 42, total_error) CALL H5Tget_offset_f(tid1, offset1, error) CALL check("H5Tget_offset_f", error, total_error) - CALL verify("H5Tget_offset_f", INT(offset1), 3, total_error) + CALL VERIFY("H5Tget_offset_f", INT(offset1), 3, total_error) CALL H5Tget_size_f(tid1, size1, error) CALL check("H5Tget_size_f", error, total_error) - CALL verify("H5Tget_size_f", INT(size1), 7, total_error) + CALL VERIFY("H5Tget_size_f", INT(size1), 7, total_error) CALL H5Tget_ebias_f(tid1, ebias1, error) CALL check("H5Tget_ebias_f", error, total_error) - CALL verify("H5Tget_ebias_f", INT(ebias1), 511, total_error) + CALL VERIFY("H5Tget_ebias_f", INT(ebias1), 511, total_error) !-------------------------------------------------------------------------- ! * 2nd floating-point type @@ -1110,24 +1121,24 @@ SUBROUTINE test_derived_flt(cleanup, total_error) CALL check("H5Tget_fields_f", error, total_error) IF(spos.NE.23 .OR. epos.NE.16 .OR. esize.NE.7 .OR. mpos.NE.0 .OR. msize.NE.16)THEN - CALL verify("H5Tget_fields_f", -1, 0, total_error) + CALL VERIFY("H5Tget_fields_f", -1, 0, total_error) ENDIF CALL H5Tget_precision_f(tid2, precision2, error) CALL check("H5Tget_precision_f", error, total_error) - CALL verify("H5Tget_precision_f", INT(precision2), 24, total_error) + CALL VERIFY("H5Tget_precision_f", INT(precision2), 24, total_error) CALL H5Tget_offset_f(tid2, offset2, error) CALL check("H5Tget_offset_f", error, total_error) - CALL verify("H5Tget_offset_f", INT(offset2), 0, total_error) + CALL VERIFY("H5Tget_offset_f", INT(offset2), 0, total_error) CALL H5Tget_size_f(tid2, size2, error) CALL check("H5Tget_size_f", error, total_error) - CALL verify("H5Tget_size_f", INT(size2), 3, total_error) + CALL VERIFY("H5Tget_size_f", INT(size2), 3, total_error) CALL H5Tget_ebias_f(tid2, ebias2, error) CALL check("H5Tget_ebias_f", error, total_error) - CALL verify("H5Tget_ebias_f", INT(ebias2), 63, total_error) + CALL VERIFY("H5Tget_ebias_f", INT(ebias2), 63, total_error) CALL h5tclose_f(tid1, error) CALL check("h5tclose_f", error, total_error) diff --git a/fortran/test/tH5T_F03.F90 b/fortran/test/tH5T_F03.f90 index d50b76d..32531b0 100644 --- a/fortran/test/tH5T_F03.F90 +++ b/fortran/test/tH5T_F03.f90 @@ -41,19 +41,19 @@ !** !*************************************************************** ! -#include <H5config_f.inc> MODULE TH5T_F03 USE HDF5 - USE TH5_MISC - USE TH5_MISC_GEN USE ISO_C_BINDING CONTAINS SUBROUTINE test_array_compound_atomic(total_error) + USE HDF5 + USE TH5_MISC + USE ISO_C_BINDING IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error @@ -201,7 +201,7 @@ SUBROUTINE test_array_compound_atomic(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 verify("H5Tget_member_name_f",mname(1:namelen),"i", 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) @@ -215,7 +215,7 @@ SUBROUTINE test_array_compound_atomic(total_error) CALL H5Tequal_f(mtid, H5T_NATIVE_INTEGER, flag, error) CALL check("H5Tequal_f", error, total_error) - CALL verify("H5Tequal_f", flag, .TRUE., total_error) + CALL VerifyLogical("H5Tequal_f", flag, .TRUE., total_error) CALL h5tclose_f(mtid,error) CALL check("h5tclose_f", error, total_error) @@ -223,7 +223,7 @@ SUBROUTINE test_array_compound_atomic(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 verify("H5Tget_member_name_f",mname(1:namelen),"f", 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) @@ -236,7 +236,7 @@ SUBROUTINE test_array_compound_atomic(total_error) CALL H5Tequal_f(mtid, H5T_NATIVE_REAL, flag, error) CALL check("H5Tequal_f", error, total_error) - CALL verify("H5Tequal_f", flag, .TRUE., total_error) + CALL VerifyLogical("H5Tequal_f", flag, .TRUE., total_error) CALL h5tclose_f(mtid,error) CALL check("h5tclose_f", error, total_error) @@ -258,7 +258,10 @@ SUBROUTINE test_array_compound_atomic(total_error) PRINT*, 'ERROR: Wrong integer data is read back by H5Dread_f ' total_error = total_error + 1 ENDIF - CALL VERIFY('ERROR: Wrong real data is read back by H5Dread_f ',wdata(i,j)%f, rdata(i,j)%f, total_error) + IF( .NOT.dreal_eq( REAL(wdata(i,j)%f,dp), REAL( rdata(i,j)%f, dp)) ) THEN + PRINT*, 'ERROR: Wrong real data is read back by H5Dread_f ' + total_error = total_error + 1 + ENDIF ENDDO ENDDO @@ -285,6 +288,9 @@ END SUBROUTINE test_array_compound_atomic !!$ SUBROUTINE test_array_compound_array(total_error) + USE HDF5 + USE TH5_MISC + USE ISO_C_BINDING IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error @@ -481,7 +487,7 @@ END SUBROUTINE test_array_compound_atomic ! 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 verify("H5Tget_member_name_f",mname(1:namelen),"i", total_error) + CALL verifystring("H5Tget_member_name_f",mname(1:namelen),"i", total_error) ! Check the 1st field's offset @@ -495,7 +501,7 @@ END SUBROUTINE test_array_compound_atomic CALL H5Tequal_f(mtid, H5T_NATIVE_INTEGER, flag, error) CALL check("H5Tequal_f", error, total_error) - CALL verify("H5Tequal_f", flag, .TRUE., total_error) + CALL VerifyLogical("H5Tequal_f", flag, .TRUE., total_error) CALL h5tclose_f(mtid,error) CALL check("h5tclose_f", error, total_error) @@ -503,7 +509,7 @@ END SUBROUTINE test_array_compound_atomic ! 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 verify("H5Tget_member_name_f",mname(1:namelen),"f", 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) @@ -536,7 +542,7 @@ END SUBROUTINE test_array_compound_atomic ! 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 verify("H5Tget_member_name_f",mname(1:namelen),"c", 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) @@ -573,7 +579,7 @@ END SUBROUTINE test_array_compound_atomic CALL H5Tequal_f(tid3, H5T_NATIVE_REAL, flag, error) CALL check("H5Tequal_f", error, total_error) - CALL verify("H5Tequal_f", flag, .TRUE., total_error) + CALL VerifyLogical("H5Tequal_f", flag, .TRUE., total_error) ! Check the nested array's datatype CALL H5Tget_super_f(mtid2, tid3, error) @@ -581,7 +587,7 @@ END SUBROUTINE test_array_compound_atomic CALL H5Tequal_f(tid3, atype_id, flag, error) CALL check("H5Tequal_f", error, total_error) - CALL verify("H5Tequal_f", flag, .TRUE., total_error) + CALL VerifyLogical("H5Tequal_f", flag, .TRUE., total_error) ! Close the array's base type datatype CALL h5tclose_f(tid3, error) @@ -650,6 +656,9 @@ END SUBROUTINE test_array_compound_atomic !!$ SUBROUTINE test_array_bkg(total_error) + USE HDF5 + USE TH5_MISC + USE ISO_C_BINDING IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error @@ -730,10 +739,10 @@ END SUBROUTINE test_array_compound_atomic CALL h5tget_size_f(H5T_NATIVE_INTEGER, type_sizei, error) CALL check("h5tget_size_f", error, total_error) IF(h5_sizeof(cf(1)%b(1)).EQ.4_size_t)THEN - CALL h5tget_size_f(H5T_NATIVE_REAL_C_FLOAT, type_sizer, error) + CALL h5tget_size_f(H5T_NATIVE_REAL_4, type_sizer, error) CALL check("h5tget_size_f", error, total_error) ELSE IF(h5_sizeof(cf(1)%b(1)).EQ.8_size_t)THEN - CALL h5tget_size_f(H5T_NATIVE_REAL_C_DOUBLE, type_sizer, error) + CALL h5tget_size_f(H5T_NATIVE_REAL_8, type_sizer, error) CALL check("h5tget_size_f", error, total_error) ENDIF @@ -748,8 +757,8 @@ END SUBROUTINE test_array_compound_atomic ! Initialize the data type IDs ! ---------------------------- dtsinfo%datatype(1) = H5T_NATIVE_INTEGER; - dtsinfo%datatype(2) = H5T_NATIVE_REAL_C_FLOAT; - dtsinfo%datatype(3) = H5T_NATIVE_REAL_C_DOUBLE; + dtsinfo%datatype(2) = H5T_NATIVE_REAL_4; + dtsinfo%datatype(3) = H5T_NATIVE_REAL_8; ! Initialize the names of data members @@ -819,8 +828,14 @@ END SUBROUTINE test_array_compound_atomic PRINT*, 'ERROR: Wrong integer data is read back by H5Dread_f ' total_error = total_error + 1 ENDIF - CALL VERIFY('ERROR: Wrong real data is read back by H5Dread_f ',cf(i)%b(j), cfr(i)%b(j), total_error) - CALL VERIFY('ERROR: Wrong double data is read back by H5Dread_f ',cf(i)%c(j), cfr(i)%c(j), total_error) + IF( .NOT.dreal_eq( REAL(cf(i)%b(j),dp), REAL( cfr(i)%b(j), dp)) ) THEN + PRINT*, 'ERROR: Wrong real data is read back by H5Dread_f ' + total_error = total_error + 1 + ENDIF + IF( .NOT.dreal_eq( REAL(cf(i)%c(j),dp), REAL( cfr(i)%c(j), dp)) ) THEN + PRINT*, 'ERROR: Wrong double data is read back by H5Dread_f ' + total_error = total_error + 1 + ENDIF ENDDO ENDDO @@ -851,7 +866,7 @@ END SUBROUTINE test_array_compound_atomic CALL h5tcreate_f(H5T_COMPOUND_F, sizeof_compound , type, error) CALL check("h5tcreate_f", error, total_error) - CALL h5tarray_create_f(H5T_NATIVE_REAL_C_FLOAT, 1, dima, array_dt, 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) @@ -880,7 +895,10 @@ END SUBROUTINE test_array_compound_atomic DO i = 1, LENGTH DO j = 1, ALEN - CALL VERIFY('ERROR: Wrong real data is read back by H5Dread_f ',fld(i)%b(j), fldr(i)%b(j), total_error) + IF( .NOT.dreal_eq( REAL(fld(i)%b(j),dp), REAL( fldr(i)%b(j), dp)) ) 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) @@ -904,9 +922,18 @@ END SUBROUTINE test_array_compound_atomic DO i = 1, LENGTH DO j = 1, ALEN - CALL VERIFY('ERROR: Wrong integer data is read back by H5Dread_f ',cf(i)%a(j), cfr(i)%a(j), total_error) - CALL VERIFY('ERROR: Wrong real data is read back by H5Dread_f ',cf(i)%b(j),cfr(i)%b(j), total_error) - CALL VERIFY('ERROR: Wrong double data is read back by H5Dread_f ',cf(i)%c(j), cfr(i)%c(j), total_error) + 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( .NOT.dreal_eq( REAL(cf(i)%b(j),dp), REAL(cfr(i)%b(j), dp)) ) THEN + PRINT*, 'ERROR: Wrong real data is read back by H5Dread_f ' + total_error = total_error + 1 + ENDIF + IF( .NOT.dreal_eq( REAL(cf(i)%c(j),dp), REAL(cfr(i)%c(j), dp)) ) THEN + PRINT*, 'ERROR: Wrong double data is read back by H5Dread_f ' + total_error = total_error + 1 + ENDIF ENDDO ENDDO @@ -953,9 +980,18 @@ END SUBROUTINE test_array_compound_atomic DO i = 1, LENGTH DO j = 1, ALEN - CALL VERIFY('ERROR: Wrong integer data is read back by H5Dread_f ',cf(i)%a(j), cfr(i)%a(j), total_error) - CALL VERIFY('ERROR: Wrong real data is read back by H5Dread_f ',cf(i)%b(j),cfr(i)%b(j), total_error) - CALL VERIFY('ERROR: Wrong double data is read back by H5Dread_f ',cf(i)%c(j), cfr(i)%c(j), total_error) + 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( .NOT.dreal_eq( REAL(cf(i)%b(j),dp), REAL(cfr(i)%b(j), dp)) ) THEN + PRINT*, 'ERROR: Wrong real data is read back by H5Dread_f ' + total_error = total_error + 1 + ENDIF + IF( .NOT.dreal_eq( REAL(cf(i)%c(j),dp), REAL(cfr(i)%c(j), dp)) ) THEN + PRINT*, 'ERROR: Wrong double data is read back by H5Dread_f ' + total_error = total_error + 1 + ENDIF ENDDO ENDDO @@ -970,49 +1006,26 @@ END SUBROUTINE test_array_compound_atomic END SUBROUTINE test_array_bkg + + SUBROUTINE test_h5kind_to_type(total_error) + USE ISO_C_BINDING + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC + IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error - INTEGER, PARAMETER :: int_kind_1 = SELECTED_INT_KIND(2) !should map to INTEGER*1 on most modern processors - INTEGER, PARAMETER :: int_kind_4 = SELECTED_INT_KIND(4) !should map to INTEGER*2 on most modern processors - INTEGER, PARAMETER :: int_kind_8 = SELECTED_INT_KIND(9) !should map to INTEGER*4 on most modern processors - INTEGER, PARAMETER :: int_kind_16 = SELECTED_INT_KIND(18) !should map to INTEGER*8 on most modern processors -#if H5_HAVE_Fortran_INTEGER_SIZEOF_16!=0 - INTEGER, PARAMETER :: int_kind_32 = SELECTED_INT_KIND(36) !should map to INTEGER*16 on most modern processors - INTEGER(int_kind_32), DIMENSION(1:4), TARGET :: dset_data_i32, data_out_i32 - INTEGER(HID_T) :: dset_id32 ! Dataset identifier - CHARACTER(LEN=6), PARAMETER :: dsetname16 = "dset16" ! Dataset name -#endif - INTEGER, PARAMETER :: real_kind_7 = C_FLOAT !should map to REAL*4 on most modern processors - INTEGER, PARAMETER :: real_kind_15 = C_DOUBLE !should map to REAL*8 on most modern processors + 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 -! Check if C has quad precision extension -#if H5_HAVE_FLOAT128!=0 -! Check if Fortran supports quad precision -# if H5_PAC_FC_MAX_REAL_PRECISION > 26 - INTEGER, PARAMETER :: real_kind_31 = SELECTED_REAL_KIND(31) -# else - INTEGER, PARAMETER :: real_kind_31 = SELECTED_REAL_KIND(15,307) -# endif -#else -! Check if the default of long double is quad precision -# if H5_PAC_C_MAX_REAL_PRECISION > 26 -# if H5_PAC_FC_MAX_REAL_PRECISION > 26 - INTEGER, PARAMETER :: real_kind_31 = SELECTED_REAL_KIND(31) -# else - INTEGER, PARAMETER :: real_kind_31 = SELECTED_REAL_KIND(15,307) -# endif -# else - INTEGER, PARAMETER :: real_kind_31 = SELECTED_REAL_KIND(15,307) -# endif -#endif - REAL(real_kind_31), DIMENSION(1:4), TARGET :: dset_data_r31, data_out_r31 - INTEGER(HID_T) :: dset_idr16 ! Dataset identifier - CHARACTER(LEN=7), PARAMETER :: dsetnamer16 = "dsetr16" ! Dataset name - CHARACTER(LEN=12), PARAMETER :: filename = "dsetf_F03.h5" ! File name CHARACTER(LEN=5), PARAMETER :: dsetname1 = "dset1" ! Dataset name CHARACTER(LEN=5), PARAMETER :: dsetname2 = "dset2" ! Dataset name @@ -1054,17 +1067,14 @@ END SUBROUTINE test_array_compound_atomic ! Initialize the dset_data array. ! DO i = 1, 4 - dset_data_i1(i) = HUGE(0_int_kind_1)-i - dset_data_i4(i) = HUGE(0_int_kind_4)-i - dset_data_i8(i) = HUGE(0_int_kind_8)-i - dset_data_i16(i) = HUGE(0_int_kind_16)-i -#if H5_HAVE_Fortran_INTEGER_SIZEOF_16!=0 - dset_data_i32(i) = HUGE(0_int_kind_32)-i -#endif - dset_data_r(i) = 4.0*ATAN(1.0)-REAL(i-1) - dset_data_r7(i) = 4.0_real_kind_7*ATAN(1.0_real_kind_7)-REAL(i-1,real_kind_7) - dset_data_r15(i) = 4.0_real_kind_15*ATAN(1.0_real_kind_15)-REAL(i-1,real_kind_15) - dset_data_r31(i) = 4.0_real_kind_31*ATAN(1.0_real_kind_31)-REAL(i-1,real_kind_31) + 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 @@ -1086,20 +1096,14 @@ END SUBROUTINE test_array_compound_atomic 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) -#if H5_HAVE_Fortran_INTEGER_SIZEOF_16!=0 - CALL H5Dcreate_f(file_id, dsetname16, h5kind_to_type(int_kind_32,H5_INTEGER_KIND), dspace_id, dset_id32, error) - CALL check("H5Dcreate_f",error, total_error) -#endif + 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) -!#ifdef H5_HAVE_FLOAT128 - CALL H5Dcreate_f(file_id, dsetnamer16, h5kind_to_type(real_kind_31,H5_REAL_KIND), dspace_id, dset_idr16, error) - CALL check("H5Dcreate_f",error, total_error) -!#endif + ! ! Write the dataset. ! @@ -1115,11 +1119,6 @@ END SUBROUTINE test_array_compound_atomic 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) -#if H5_HAVE_Fortran_INTEGER_SIZEOF_16!=0 - f_ptr = C_LOC(dset_data_i32(1)) - CALL h5dwrite_f(dset_id32, h5kind_to_type(int_kind_32,H5_INTEGER_KIND), f_ptr, error) - CALL check("H5Dwrite_f",error, total_error) -#endif 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) @@ -1129,11 +1128,6 @@ END SUBROUTINE test_array_compound_atomic 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) -!#ifdef H5_HAVE_FLOAT128 - f_ptr = C_LOC(dset_data_r31(1)) - CALL h5dwrite_f(dset_idr16, h5kind_to_type(real_kind_31,H5_REAL_KIND), f_ptr, error) - CALL check("H5Dwrite_f",error, total_error) -!#endif ! ! Close the file ! @@ -1161,11 +1155,6 @@ END SUBROUTINE test_array_compound_atomic 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) -#if H5_HAVE_Fortran_INTEGER_SIZEOF_16!=0 - f_ptr = C_LOC(data_out_i32) - CALL h5dread_f(dset_id32, h5kind_to_type(int_kind_32,H5_INTEGER_KIND), f_ptr, error) - CALL check("h5dread_f",error, total_error) -#endif 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) @@ -1175,25 +1164,20 @@ END SUBROUTINE test_array_compound_atomic 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) - f_ptr = C_LOC(data_out_r31) - CALL h5dread_f(dset_idr16, h5kind_to_type(real_kind_31,H5_REAL_KIND), f_ptr, error) - CALL check("h5dread_f",error, total_error) + DO i = 1, 4 - CALL verify("h5kind_to_type",dset_data_i1(i),data_out_i1(i),total_error) - CALL verify("h5kind_to_type",dset_data_i4(i),data_out_i4(i),total_error) - CALL verify("h5kind_to_type",dset_data_i8(i),data_out_i8(i),total_error) - CALL verify("h5kind_to_type",dset_data_i16(i),data_out_i16(i),total_error) + 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) -#if H5_HAVE_Fortran_INTEGER_SIZEOF_16!=0 - CALL verify("h5kind_to_type",dset_data_i32(i),data_out_i32(i),total_error) -#endif - CALL verify("h5kind_to_type",dset_data_r(i),data_out_r(i),total_error) - CALL verify("h5kind_to_type",dset_data_r7(i),data_out_r7(i),total_error) - CALL verify("h5kind_to_type",dset_data_r15(i),data_out_r15(i),total_error) - CALL verify("h5kind_to_type",dset_data_r31(i),data_out_r31(i),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. ! @@ -1228,6 +1212,10 @@ END SUBROUTINE test_h5kind_to_type !************************************************************ SUBROUTINE t_array(total_error) + USE ISO_C_BINDING + USE HDF5 + USE TH5_MISC + IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error @@ -1312,8 +1300,8 @@ SUBROUTINE t_array(total_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", adims(1), INT(adim0,hsize_t), total_error) - CALL VERIFY("H5Tget_array_dims_f", adims(2), INT(adim1,hsize_t), 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. @@ -1322,7 +1310,7 @@ SUBROUTINE t_array(total_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", dims(1), INT(dim0,hsize_t), 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))) ! @@ -1367,6 +1355,10 @@ END SUBROUTINE t_array SUBROUTINE t_enum(total_error) + USE HDF5 + USE TH5_MISC + USE ISO_C_BINDING + IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error @@ -1427,8 +1419,7 @@ SUBROUTINE t_enum(total_error) ! Insert enumerated value for memtype. ! val(1) = i - f_ptr = C_LOC(val(1)) - CALL H5Tenum_insert_f(memtype, TRIM(names(i+1)), f_ptr, error) + CALL H5Tenum_insert_f(memtype, TRIM(names(i+1)), C_LOC(val(1)), error) CALL check("H5Tenum_insert_f", error, total_error) ! ! Insert enumerated value for filetype. We must first convert @@ -1487,8 +1478,8 @@ SUBROUTINE t_enum(total_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", dims(1), INT(dim0,hsize_t), total_error) - CALL VERIFY("H5Sget_simple_extent_dims_f", dims(2), INT(dim1,hsize_t), 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))) @@ -1510,7 +1501,7 @@ SUBROUTINE t_enum(total_error) 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 verify("h5tenum_nameof_f",TRIM(name),TRIM(names(idx)), total_error) + CALL verifystring("h5tenum_nameof_f",TRIM(name),TRIM(names(idx)), total_error) IF(total_error.NE.0) EXIT i_loop ENDDO ENDDO i_loop @@ -1531,6 +1522,10 @@ END SUBROUTINE t_enum SUBROUTINE t_bit(total_error) + USE HDF5 + USE TH5_MISC + USE ISO_C_BINDING + IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error @@ -1607,8 +1602,8 @@ SUBROUTINE t_bit(total_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", dims(1), INT(dim0,hsize_t), total_error) - CALL VERIFY("H5Sget_simple_extent_dims_f", dims(2), INT(dim1,hsize_t), 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. @@ -1653,6 +1648,10 @@ END SUBROUTINE t_bit SUBROUTINE t_opaque(total_error) + USE HDF5 + USE TH5_MISC + USE ISO_C_BINDING + IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error @@ -1747,19 +1746,19 @@ SUBROUTINE t_opaque(total_error) 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 verify("h5tget_tag_f",tag_sm,"Character arra", 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 verify("h5tget_tag_f",tag_exact,"Character array", 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 verify("h5tget_tag_f",tag_big,"Character array ", total_error) + CALL verifystring("h5tget_tag_f",tag_big,"Character array ", total_error) ! ! Get dataspace and allocate memory for read buffer. @@ -1768,7 +1767,7 @@ SUBROUTINE t_opaque(total_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", dims(1), INT(dim0,hsize_t), total_error) + CALL VERIFY("H5Sget_simple_extent_dims_f", INT(dims(1)), dim0, total_error) ALLOCATE(rdata(1:dims(1))) ! ! Read the data. @@ -1778,7 +1777,7 @@ SUBROUTINE t_opaque(total_error) CALL check("H5Dread_f",error, total_error) ! DO i = 1, dims(1) - CALL verify("t_opaque",TRIM(rdata(i)),TRIM(wdata(i)), total_error) + CALL verifystring("t_opaque",TRIM(rdata(i)),TRIM(wdata(i)), total_error) ENDDO ! ! Close and release resources. @@ -1797,6 +1796,10 @@ END SUBROUTINE t_opaque SUBROUTINE t_objref(total_error) + USE HDF5 + USE TH5_MISC + USE ISO_C_BINDING + IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error @@ -1889,7 +1892,7 @@ SUBROUTINE t_objref(total_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", dims(1), INT(dim0,hsize_t), total_error) + CALL VERIFY("H5Sget_simple_extent_dims_f", INT(dims(1)), dim0, total_error) ALLOCATE(rdata(1:maxdims(1))) ! @@ -1920,9 +1923,9 @@ SUBROUTINE t_objref(total_error) ! Print the object type and close the object. ! IF(objtype.EQ.H5G_GROUP_F)THEN - CALL verify("t_objref", name(1:name_size),"/G1", total_error) + CALL verifystring("t_objref", name(1:name_size),"/G1", total_error) ELSE IF(objtype.EQ.H5G_DATASET_F)THEN - CALL verify("t_objref", name(1:name_size),"/DS2", total_error) + CALL verifystring("t_objref", name(1:name_size),"/DS2", total_error) ELSE total_error = total_error + 1 ENDIF @@ -1946,6 +1949,10 @@ END SUBROUTINE t_objref SUBROUTINE t_regref(total_error) + USE HDF5 + USE TH5_MISC + USE ISO_C_BINDING + IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error @@ -2068,7 +2075,7 @@ SUBROUTINE t_regref(total_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", dims(1), INT(dim0,hsize_t), 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) @@ -2101,7 +2108,7 @@ SUBROUTINE t_regref(total_error) CALL H5Iget_name_f(dset2, name, 80_size_t, size, error) CALL check("H5Iget_name_f",error, total_error) CALL VERIFY("H5Iget_name_f", INT(size), LEN_TRIM(name), total_error) - CALL verify("H5Iget_name_f",name(1:size),TRIM(name), total_error) + CALL verifystring("H5Iget_name_f",name(1:size),TRIM(name), total_error) ! ! Allocate space for the read buffer. ! @@ -2119,7 +2126,7 @@ SUBROUTINE t_regref(total_error) f_ptr = C_LOC(rdata2(1)(1:1)) CALL h5dread_f( dset2, H5T_NATIVE_INTEGER_1, f_ptr, error, memspace, space) CALL check("H5Dread_f",error, total_error) - CALL verify("h5dread_f",rdata2(1)(1:npoints),TRIM(chrref_correct(i)), 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) @@ -2142,6 +2149,10 @@ END SUBROUTINE t_regref SUBROUTINE t_vlen(total_error) + USE HDF5 + USE TH5_MISC + USE ISO_C_BINDING + IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error @@ -2296,6 +2307,10 @@ END SUBROUTINE t_vlen SUBROUTINE t_vlstring(total_error) + USE HDF5 + USE TH5_MISC + USE ISO_C_BINDING + IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error @@ -2394,7 +2409,7 @@ SUBROUTINE t_vlstring(total_error) ! Output the data to the screen. ! DO i = 1, dims(1) - CALL verify("h5dopen_f",TRIM(rdata(i)),TRIM(wdata(i)) , total_error) + CALL verifystring("h5dopen_f",TRIM(rdata(i)),TRIM(wdata(i)) , total_error) END DO DEALLOCATE(rdata) @@ -2413,6 +2428,10 @@ SUBROUTINE t_vlstring_readwrite(total_error) ! test writing and reading vl string using h5dread_f and h5dwrite_f, C_LOC and C_F_POINTER + USE HDF5 + USE TH5_MISC + USE ISO_C_BINDING + IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error @@ -2592,7 +2611,7 @@ SUBROUTINE t_vlstring_readwrite(total_error) IF(DATA(len+1:len+1).EQ.C_NULL_CHAR.OR.len.GE.8) EXIT len = len + 1 ENDDO - CALL verify("h5dread_f",data(1:len), data_w(i)(1:len), total_error) + CALL verifystring("h5dread_f",data(1:len), data_w(i)(1:len), total_error) END DO DEALLOCATE(rdata) @@ -2640,7 +2659,7 @@ SUBROUTINE t_vlstring_readwrite(total_error) IF(DATA(len+1:len+1).EQ.C_NULL_CHAR.OR.len.GE.8) EXIT len = len + 1 ENDDO - CALL verify("h5dread_f",DATA(1:len), data2D_w(i,j)(1:len), total_error) + CALL verifystring("h5dread_f",DATA(1:len), data2D_w(i,j)(1:len), total_error) ENDDO END DO @@ -2660,6 +2679,10 @@ END SUBROUTINE t_vlstring_readwrite SUBROUTINE t_string(total_error) + USE HDF5 + USE TH5_MISC + USE ISO_C_BINDING + IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error @@ -2743,7 +2766,7 @@ SUBROUTINE t_string(total_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", dims(1), INT(dim0,hsize_t), total_error) + CALL VERIFY("H5Sget_simple_extent_dims_f", INT(dims(1)), dim0, total_error) ALLOCATE(rdata(1:dims(1))) ! @@ -2761,7 +2784,7 @@ SUBROUTINE t_string(total_error) CALL check("H5Dread_f",error, total_error) DO i = 1, dims(1) - CALL verify("h5dread_f",TRIM(rdata(i)),TRIM(wdata(i)) , total_error) + CALL verifystring("h5dread_f",TRIM(rdata(i)),TRIM(wdata(i)) , total_error) END DO DEALLOCATE(rdata) @@ -2783,6 +2806,8 @@ END SUBROUTINE t_string SUBROUTINE vl_test_special_char(total_error) + USE HDF5 + USE TH5_MISC IMPLICIT NONE ! INTERFACE @@ -2884,6 +2909,9 @@ END SUBROUTINE vl_test_special_char SUBROUTINE setup_buffer(data_in, line_lengths, char_type) + USE HDF5 + USE ISO_C_BINDING + IMPLICIT NONE ! Creates a simple "Data_in" consisting of the letters of the alphabet, @@ -2945,8 +2973,12 @@ END SUBROUTINE setup_buffer SUBROUTINE test_nbit(total_error ) + USE HDF5 + USE TH5_MISC + USE ISO_C_BINDING + IMPLICIT NONE - INTEGER, PARAMETER :: wp = C_FLOAT !should map to REAL*4 on most modern processors + INTEGER, PARAMETER :: wp = SELECTED_REAL_KIND(Fortran_REAL_4) !should map to REAL*4 on most modern processors INTEGER, INTENT(INOUT) :: total_error INTEGER(hid_t) :: file @@ -3036,10 +3068,8 @@ SUBROUTINE test_nbit(total_error ) ! 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( .NOT.check_real_eq( new_data(i,j), orig_data(i,j)) ) THEN + IF( .NOT.dreal_eq( REAL(new_data(i,j),dp), REAL( orig_data(i,j), dp)) ) THEN total_error = total_error + 1 WRITE(*,'(" Read different values than written.")') WRITE(*,'(" At index ", 2(1X,I0))') i, j @@ -3087,15 +3117,18 @@ SUBROUTINE t_enum_conv(total_error) ! No reliance on C tests. !------------------------------------------------------------------------- ! + USE HDF5 + USE TH5_MISC + USE ISO_C_BINDING IMPLICIT NONE INTEGER, INTENT(INOUT) :: total_error - INTEGER, PARAMETER :: int_kind_8 = SELECTED_INT_KIND(9) !should map to INTEGER*4 on most modern processors - INTEGER, PARAMETER :: int_kind_16 = SELECTED_INT_KIND(18) !should map to INTEGER*8 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 = C_FLOAT !should map to REAL*4 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(hid_t) :: cwg=-1, dtype=-1, space=-1, dset=-1 ! Handles INTEGER(hid_t) :: file ! Handles @@ -3155,25 +3188,20 @@ SUBROUTINE t_enum_conv(total_error) ! ! Initialize enum data. ! - val = E1_RED CALL H5Tenum_insert_f(dtype, "RED", C_LOC(val), error) CALL check("h5tenum_insert_f",error, total_error) val = E1_GREEN - f_ptr = C_LOC(val) - CALL H5Tenum_insert_f(dtype, "GREEN", f_ptr, error) + CALL H5Tenum_insert_f(dtype, "GREEN", C_LOC(val), error) CALL check("h5tenum_insert_f",error, total_error) val = E1_BLUE - f_ptr = C_LOC(val) - CALL H5Tenum_insert_f(dtype, "BLUE", f_ptr, error) + CALL H5Tenum_insert_f(dtype, "BLUE", C_LOC(val), error) CALL check("h5tenum_insert_f",error, total_error) val = E1_WHITE - f_ptr = C_LOC(val) - CALL H5Tenum_insert_f(dtype, "WHITE", f_ptr, error) + CALL H5Tenum_insert_f(dtype, "WHITE", C_LOC(val), error) CALL check("h5tenum_insert_f",error, total_error) val = E1_BLACK - f_ptr = C_LOC(val) - CALL H5Tenum_insert_f(dtype, "BLACK", f_ptr, error) + CALL H5Tenum_insert_f(dtype, "BLACK", C_LOC(val), error) CALL check("h5tenum_insert_f",error, total_error) ! ! Create dataspace. Setting maximum size to be the current size. @@ -3240,8 +3268,8 @@ SUBROUTINE t_enum_conv(total_error) ENDIF ENDDO - ! Test converting the data to (SELECTED_INT_KIND(9)) number. - ! Read enum data back as (SELECTED_INT_KIND(9)) number + ! Test converting the data to (SELECTED_INT_KIND(Fortran_INTEGER_4)) number. + ! Read enum data back as (SELECTED_INT_KIND(Fortran_INTEGER_4)) number m_baset = h5kind_to_type(int_kind_8, H5_INTEGER_KIND) ! Memory base type f_ptr = C_LOC(data_i8(1)) @@ -3257,8 +3285,8 @@ SUBROUTINE t_enum_conv(total_error) ENDIF ENDDO - ! Test converting the data to (SELECTED_INT_KIND(18)) number. - ! Read enum data back as (SELECTED_INT_KIND(18)) number + ! Test converting the data to (SELECTED_INT_KIND(Fortran_INTEGER_8)) number. + ! Read enum data back as (SELECTED_INT_KIND(Fortran_INTEGER_8)) number m_baset = h5kind_to_type(int_kind_16, H5_INTEGER_KIND) ! Memory base type f_ptr = C_LOC(data_i16(1)) @@ -3274,8 +3302,8 @@ SUBROUTINE t_enum_conv(total_error) ENDIF ENDDO - ! Test converting the data to C_FLOAT number. - ! Read enum data back as C_FLOAT number + ! Test converting the data to SELECTED_REAL_KIND(Fortran_REAL_4) number. + ! Read enum data back as SELECTED_REAL_KIND(Fortran_REAL_4) number m_baset = h5kind_to_type(KIND(data_r7(1)), H5_REAL_KIND) ! Memory base type f_ptr = C_LOC(data_r7(1)) @@ -3352,10 +3380,10 @@ SUBROUTINE t_enum_conv(total_error) CALL check("h5dclose_f", error, total_error) !********************************************************* - !* Dataset of real C_FLOAT type + !* Dataset of real SELECTED_REAL_KIND(Fortran_REAL_4) type !********************************************************* - ! Create a dataset of C_FLOAT and write enum data to it + ! Create a dataset of SELECTED_REAL_KIND(Fortran_REAL_4) and write enum data to it m_baset = h5kind_to_type(KIND(data_r7(1)), H5_REAL_KIND) ! Memory base type CALL h5dcreate_f(cwg, "color_table4", m_baset, space, dset, error) CALL check("h5dcreate_f", error, total_error) @@ -3380,10 +3408,10 @@ SUBROUTINE t_enum_conv(total_error) CALL check("h5dclose_f", error, total_error) ! ***************************************************************** - ! * Dataset of integer SELECTED_INT_KIND(18) type + ! * Dataset of integer SELECTED_INT_KIND(Fortran_INTEGER_8) type ! ***************************************************************** - ! Create a integer dataset of (SELECTED_INT_KIND(18)) and write enum data to it + ! Create a integer dataset of (SELECTED_INT_KIND(Fortran_INTEGER_8)) and write enum data to it m_baset = h5kind_to_type(KIND(data_i16(1)), H5_INTEGER_KIND) ! Memory base type CALL h5dcreate_f(cwg, "color_table5", m_baset, space, dset, error) CALL check("h5dcreate_f", error, total_error) diff --git a/fortran/test/tH5VL.f90 b/fortran/test/tH5VL.f90 index 834fbde..651ca75 100644 --- a/fortran/test/tH5VL.f90 +++ b/fortran/test/tH5VL.f90 @@ -28,13 +28,12 @@ !***** MODULE TH5VL - USE HDF5 ! This module contains all necessary modules - USE TH5_MISC - USE TH5_MISC_GEN CONTAINS SUBROUTINE vl_test_integer(cleanup, total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC IMPLICIT NONE LOGICAL, INTENT(IN) :: cleanup @@ -195,6 +194,8 @@ CONTAINS END SUBROUTINE vl_test_integer SUBROUTINE vl_test_real(cleanup, total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC IMPLICIT NONE LOGICAL, INTENT(IN) :: cleanup @@ -327,15 +328,18 @@ CONTAINS CALL h5dread_vl_f(dset_id, vltype_id, vl_real_data_out, data_dims, len_out, & error, mem_space_id = dspace_id, file_space_id = dspace_id) CALL check("h5dread_real_f", error, total_error) - DO ih = 1, data_dims(2) - DO jh = 1, len_out(ih) - CALL VERIFY("h5dread_vl_f returned incorrect data",vl_real_data(jh,ih),vl_real_data_out(jh,ih), total_error) - ENDDO - IF (LEN(ih) .NE. len_out(ih)) THEN - total_error = total_error + 1 - WRITE(*,*) "h5dread_vl_f returned incorrect data" - ENDIF - ENDDO + do ih = 1, data_dims(2) + do jh = 1, len_out(ih) + IF( .NOT.dreal_eq( REAL(vl_real_data(jh,ih),dp), REAL(vl_real_data_out(jh,ih), dp)) ) THEN + total_error = total_error + 1 + WRITE(*,*) "h5dread_vl_f returned incorrect data" + ENDIF + enddo + if (len(ih) .ne. len_out(ih)) then + total_error = total_error + 1 + write(*,*) "h5dread_vl_f returned incorrect data" + endif + enddo ! @@ -363,6 +367,8 @@ CONTAINS END SUBROUTINE vl_test_real SUBROUTINE vl_test_string(cleanup, total_error) + USE HDF5 ! This module contains all necessary modules + USE TH5_MISC IMPLICIT NONE LOGICAL, INTENT(IN) :: cleanup diff --git a/fortran/test/tHDF5.f90 b/fortran/test/tHDF5.f90 index d12bb25..e73fed2 100644 --- a/fortran/test/tHDF5.f90 +++ b/fortran/test/tHDF5.f90 @@ -29,7 +29,6 @@ MODULE THDF5 USE TH5_MISC - USE TH5_MISC_GEN USE TH5A USE TH5D USE TH5E diff --git a/fortran/test/tf.F90 b/fortran/test/tf.f90 index 7d67f30..450daf2 100644 --- a/fortran/test/tf.F90 +++ b/fortran/test/tf.f90 @@ -27,38 +27,46 @@ ! h5_cleanup_f, h5_exit_f, h5_env_nocleanup_f,dreal_eqv ! !***** - -#include "H5config_f.inc" - MODULE TH5_MISC - USE, INTRINSIC :: ISO_C_BINDING + USE TH5_MISC_PROVISIONAL IMPLICIT NONE - INTEGER, PARAMETER :: sp = SELECTED_REAL_KIND(5) ! This should map to REAL*4 on most modern processors - INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(10) ! This should map to REAL*8 on most modern processors - - ! generic compound datatype - TYPE, BIND(C) :: comp_datatype - REAL :: a - INTEGER :: x - DOUBLE PRECISION :: y - CHARACTER(KIND=C_CHAR) :: z - END TYPE comp_datatype - - PUBLIC :: H5_SIZEOF - INTERFACE H5_SIZEOF - MODULE PROCEDURE H5_SIZEOF_CMPD - MODULE PROCEDURE H5_SIZEOF_CHR - MODULE PROCEDURE H5_SIZEOF_I - MODULE PROCEDURE H5_SIZEOF_SP,H5_SIZEOF_DP - END INTERFACE - CONTAINS !This definition is needed for Windows DLLs !DEC$if defined(BUILD_HDF5_TEST_DLL) +!DEC$attributes dllexport :: dreal_eq +!DEC$endif + LOGICAL FUNCTION dreal_eq(a,b) + + ! Check if two double precision reals are equivalent + REAL(dp), INTENT (in):: a,b + REAL(dp), PARAMETER :: eps = 1.e-8 + dreal_eq = ABS(a-b) .LT. eps + + END FUNCTION dreal_eq + +!This definition is needed for Windows DLLs +!DEC$if defined(BUILD_HDF5_TEST_DLL) +!DEC$attributes dllexport :: verify_real_kind_7 +!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 (.NOT.dreal_eq( REAL(value,dp), REAL(correct_value, dp)) ) 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_TEST_DLL) !DEC$attributes dllexport :: write_test_status !DEC$endif SUBROUTINE write_test_status( test_result, test_title, total_error) @@ -110,6 +118,84 @@ CONTAINS RETURN END SUBROUTINE check +!This definition is needed for Windows DLLs +!DEC$if defined(BUILD_HDF5_TEST_DLL) +!DEC$attributes dllexport :: verify +!DEC$endif + SUBROUTINE VERIFY(string,value,correct_value,total_error) + CHARACTER(LEN=*) :: string + INTEGER :: 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 + +!This definition is needed for Windows DLLs +!DEC$if defined(BUILD_HDF5_TEST_DLL) +!DEC$attributes dllexport :: verify_INTEGER_HID_T +!DEC$endif + SUBROUTINE verify_INTEGER_HID_T(string,value,correct_value,total_error) + USE HDF5 + CHARACTER(LEN=*) :: string + INTEGER(HID_T) :: value, correct_value + INTEGER :: total_error + IF (value .NE. correct_value) THEN + total_error=total_error+1 + WRITE(*,*) "ERROR: INCORRECT VALIDATION ", string + ENDIF + RETURN + END SUBROUTINE verify_INTEGER_HID_T + +!This definition is needed for Windows DLLs +!DEC$if defined(BUILD_HDF5_TEST_DLL) +!DEC$attributes dllexport :: verify_Fortran_INTEGER_4 +!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 + INTEGER :: 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_TEST_DLL) +!DEC$attributes dllexport :: verifyLogical +!DEC$endif + SUBROUTINE verifyLogical(string,value,correct_value,total_error) + CHARACTER(LEN=*) :: string + LOGICAL :: value, correct_value + INTEGER :: total_error + IF (value .NEQV. correct_value) THEN + total_error = total_error + 1 + WRITE(*,*) "ERROR: INCORRECT VALIDATION ", string + ENDIF + RETURN + END SUBROUTINE verifyLogical + +!This definition is needed for Windows DLLs +!DEC$if defined(BUILD_HDF5_TEST_DLL) +!DEC$attributes dllexport :: verifyString +!DEC$endif + 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 + + !---------------------------------------------------------------------- ! Name: h5_fixname_f ! @@ -304,109 +390,4 @@ CONTAINS IF(status.EQ.1) HDF5_NOCLEANUP = .TRUE. END SUBROUTINE h5_env_nocleanup_f - -! --------------------------------------------------------------------------------------------------- -! H5_SIZEOF routines -! -! NOTES -! (1) The Sun/Oracle compiler has the following restrictions on the SIZEOF intrinsic function: -! -! "The SIZEOF intrinsic cannot be applied to arrays of an assumed size, characters of a -! length that is passed, or subroutine calls or names. SIZEOF returns default INTEGER*4 data. -! If compiling for a 64-bit environment, the compiler will issue a warning if the result overflows -! the INTEGER*4 data range. To use SIZEOF in a 64-bit environment with arrays larger -! than the INTEGER*4 limit (2 Gbytes), the SIZEOF function and -! the variables receiving the result must be declared INTEGER*8." -! -! Thus, we can not overload the H5_SIZEOF function to handle arrays (as used in tH5P_F03.f90), or -! characters that do not have a set length (as used in tH5P_F03.f90), sigh... -! -! (2) F08+TS29113 requires C interoperable variable as argument for C_SIZEOF. -! -! (3) Unfortunately we need to wrap the C_SIZEOF/STORAGE_SIZE functions to handle different -! data types from the various tests. -! -! --------------------------------------------------------------------------------------------------- - -!This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_TEST_DLL) -!DEC$attributes dllexport :: h5_sizeof_cmpd -!DEC$endif - INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_CMPD(a) - IMPLICIT NONE - TYPE(comp_datatype), INTENT(in) :: a - -#ifdef H5_FORTRAN_FORTRAN_HAVE_C_SIZEOF - H5_SIZEOF_CMPD = C_SIZEOF(a) -#else - H5_SIZEOF_CMPD = SIZEOF(a) -#endif - - END FUNCTION H5_SIZEOF_CMPD - -!This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_TEST_DLL) -!DEC$attributes dllexport :: h5_sizeof_chr -!DEC$endif - INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_CHR(a) - IMPLICIT NONE - CHARACTER(LEN=1), INTENT(in) :: a - -#ifdef H5_FORTRAN_HAVE_STORAGE_SIZE - H5_SIZEOF_CHR = storage_size(a, c_size_t)/storage_size(c_char_'a',c_size_t) -#else - H5_SIZEOF_CHR = SIZEOF(a) -#endif - - END FUNCTION H5_SIZEOF_CHR - -!This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_TEST_DLL) -!DEC$attributes dllexport :: h5_sizeof_i -!DEC$endif - INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_I(a) - IMPLICIT NONE - INTEGER, INTENT(in):: a - -#ifdef H5_FORTRAN_HAVE_STORAGE_SIZE - H5_SIZEOF_I = storage_size(a, c_size_t)/storage_size(c_char_'a',c_size_t) -#else - H5_SIZEOF_I = SIZEOF(a) -#endif - - END FUNCTION H5_SIZEOF_I - - -!This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_TEST_DLL) -!DEC$attributes dllexport :: h5_sizeof_sp -!DEC$endif - INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_SP(a) - IMPLICIT NONE - REAL(sp), INTENT(in):: a - -#ifdef H5_FORTRAN_HAVE_STORAGE_SIZE - H5_SIZEOF_SP = storage_size(a, c_size_t)/storage_size(c_char_'a',c_size_t) -#else - H5_SIZEOF_SP = SIZEOF(a) -#endif - - END FUNCTION H5_SIZEOF_SP - -!This definition is needed for Windows DLLs -!DEC$if defined(BUILD_HDF5_TEST_DLL) -!DEC$attributes dllexport :: h5_sizeof_dp -!DEC$endif - INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_DP(a) - IMPLICIT NONE - REAL(dp), INTENT(in):: a - -#ifdef H5_FORTRAN_HAVE_STORAGE_SIZE - H5_SIZEOF_DP = storage_size(a, c_size_t)/storage_size(c_char_'a',c_size_t) -#else - H5_SIZEOF_DP = SIZEOF(a) -#endif - - END FUNCTION H5_SIZEOF_DP - END MODULE TH5_MISC diff --git a/fortran/test/tf_F03.f90 b/fortran/test/tf_F03.f90 new file mode 100644 index 0000000..b3f1399 --- /dev/null +++ b/fortran/test/tf_F03.f90 @@ -0,0 +1,128 @@ +!****h* root/fortran/test/tf_F03.f90 +! +! NAME +! tf_F03.f90 +! +! FUNCTION +! Contains functions that are part of the F2003 standard, and are not F2008 compliant. +! Needed by the hdf5 fortran tests. +! +! 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 +! H5_SIZEOF +! +! NOTES +! The Sun/Oracle compiler has the following restrictions on the SIZEOF intrinsic function: +! +! "The SIZEOF intrinsic cannot be applied to arrays of an assumed size, characters of a +! length that is passed, or subroutine calls or names. SIZEOF returns default INTEGER*4 data. +! If compiling for a 64-bit environment, the compiler will issue a warning if the result overflows +! the INTEGER*4 data range. To use SIZEOF in a 64-bit environment with arrays larger +! than the INTEGER*4 limit (2 Gbytes), the SIZEOF function and +! the variables receiving the result must be declared INTEGER*8." +! +! Thus, we can not overload the H5_SIZEOF function to handle arrays (as used in tH5P_F03.f90), or +! characters that do not have a set length (as used in tH5P_F03.f90), sigh... +! +!***** +MODULE TH5_MISC_PROVISIONAL + + USE ISO_C_BINDING + IMPLICIT NONE + + INTEGER, PARAMETER :: sp = SELECTED_REAL_KIND(5) ! This should map to REAL*4 on most modern processors + INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(10) ! This should map to REAL*8 on most modern processors + + ! generic compound datatype + TYPE, BIND(C) :: comp_datatype + REAL :: a + INTEGER :: x + DOUBLE PRECISION :: y + CHARACTER(LEN=1) :: z + END TYPE comp_datatype + + PUBLIC :: H5_SIZEOF + INTERFACE H5_SIZEOF + MODULE PROCEDURE H5_SIZEOF_CMPD + MODULE PROCEDURE H5_SIZEOF_I, H5_SIZEOF_CHR + MODULE PROCEDURE H5_SIZEOF_SP,H5_SIZEOF_DP + END INTERFACE + +CONTAINS + +!This definition is needed for Windows DLLs +!DEC$if defined(BUILD_HDF5_TEST_DLL) +!DEC$attributes dllexport :: h5_sizeof_cmpd + !DEC$endif + INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_CMPD(a) + IMPLICIT NONE + TYPE(comp_datatype), INTENT(in) :: a + + H5_SIZEOF_CMPD = SIZEOF(a) + + END FUNCTION H5_SIZEOF_CMPD + +!This definition is needed for Windows DLLs +!DEC$if defined(BUILD_HDF5_TEST_DLL) +!DEC$attributes dllexport :: h5_sizeof_chr +!DEC$endif + INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_CHR(a) + IMPLICIT NONE + CHARACTER(LEN=1), INTENT(in):: a + + H5_SIZEOF_CHR = SIZEOF(a) + + END FUNCTION H5_SIZEOF_CHR + +!This definition is needed for Windows DLLs +!DEC$if defined(BUILD_HDF5_TEST_DLL) +!DEC$attributes dllexport :: h5_sizeof_i +!DEC$endif + INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_I(a) + IMPLICIT NONE + INTEGER, INTENT(in):: a + + H5_SIZEOF_I = SIZEOF(a) + + END FUNCTION H5_SIZEOF_I + +!This definition is needed for Windows DLLs +!DEC$if defined(BUILD_HDF5_TEST_DLL) +!DEC$attributes dllexport :: h5_sizeof_sp +!DEC$endif + INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_SP(a) + IMPLICIT NONE + REAL(sp), INTENT(in):: a + + H5_SIZEOF_SP = SIZEOF(a) + + END FUNCTION H5_SIZEOF_SP + +!This definition is needed for Windows DLLs +!DEC$if defined(BUILD_HDF5_TEST_DLL) +!DEC$attributes dllexport :: h5_sizeof_dp +!DEC$endif + INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_DP(a) + IMPLICIT NONE + REAL(dp), INTENT(in):: a + + H5_SIZEOF_DP = SIZEOF(a) + + END FUNCTION H5_SIZEOF_DP + +END MODULE TH5_MISC_PROVISIONAL diff --git a/fortran/test/tf_F08.f90 b/fortran/test/tf_F08.f90 new file mode 100644 index 0000000..20c2859 --- /dev/null +++ b/fortran/test/tf_F08.f90 @@ -0,0 +1,128 @@ +!****h* root/fortran/test/tf_F08.f90 +! +! NAME +! tf_F08.f90 +! +! FUNCTION +! Contains functions that are part of the F2008 standard and needed by +! the hdf5 fortran tests. +! +! 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 +! H5_SIZEOF +! +! NOTES +! This file contains "sizeof" functions that are F2008 standard compliant +! and replace the non-standard 'SIZEOF' functions found in the file tf_F03. +! Unfortunity we need to wrap the C_SIZEOF/STORAGE_SIZE functions to handle different +! data types from the various tests. +! +! F08+TS29113 requires C interoperable variable as argument for C_SIZEOF. +! +! This file will be build instead of tf_F03.f90 if the intrinsic fortran +! function C_SIZEOF/STORAGE_SIZE is found during configure. +! +!***** +MODULE TH5_MISC_PROVISIONAL + + USE ISO_C_BINDING + IMPLICIT NONE + + INTEGER, PARAMETER :: sp = SELECTED_REAL_KIND(5) ! This should map to REAL*4 on most modern processors + INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(10) ! This should map to REAL*8 on most modern processors + + ! generic compound datatype + TYPE, BIND(C) :: comp_datatype + REAL :: a + INTEGER :: x + DOUBLE PRECISION :: y + CHARACTER(LEN=1) :: z + END TYPE comp_datatype + + PUBLIC :: H5_SIZEOF + INTERFACE H5_SIZEOF + MODULE PROCEDURE H5_SIZEOF_CMPD + MODULE PROCEDURE H5_SIZEOF_CHR + MODULE PROCEDURE H5_SIZEOF_I + MODULE PROCEDURE H5_SIZEOF_SP,H5_SIZEOF_DP + END INTERFACE + +CONTAINS + +!This definition is needed for Windows DLLs +!DEC$if defined(BUILD_HDF5_TEST_DLL) +!DEC$attributes dllexport :: h5_sizeof_cmpd +!DEC$endif + INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_CMPD(a) + IMPLICIT NONE + TYPE(comp_datatype), INTENT(in) :: a + + H5_SIZEOF_CMPD = C_SIZEOF(a) + + END FUNCTION H5_SIZEOF_CMPD + +!This definition is needed for Windows DLLs +!DEC$if defined(BUILD_HDF5_TEST_DLL) +!DEC$attributes dllexport :: h5_sizeof_chr +!DEC$endif + INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_CHR(a) + IMPLICIT NONE + CHARACTER(LEN=*), INTENT(in) :: a + + H5_SIZEOF_CHR = storage_size(a, c_size_t)/storage_size(c_char_'a',c_size_t) + + END FUNCTION H5_SIZEOF_CHR + +!This definition is needed for Windows DLLs +!DEC$if defined(BUILD_HDF5_TEST_DLL) +!DEC$attributes dllexport :: h5_sizeof_i +!DEC$endif + INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_I(a) + IMPLICIT NONE + INTEGER, INTENT(in):: a + + H5_SIZEOF_I = storage_size(a, c_size_t)/storage_size(c_char_'a',c_size_t) + + END FUNCTION H5_SIZEOF_I + + +!This definition is needed for Windows DLLs +!DEC$if defined(BUILD_HDF5_TEST_DLL) +!DEC$attributes dllexport :: h5_sizeof_sp +!DEC$endif + INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_SP(a) + IMPLICIT NONE + REAL(sp), INTENT(in):: a + + H5_SIZEOF_SP = storage_size(a, c_size_t)/storage_size(c_char_'a',c_size_t) + + END FUNCTION H5_SIZEOF_SP + +!This definition is needed for Windows DLLs +!DEC$if defined(BUILD_HDF5_TEST_DLL) +!DEC$attributes dllexport :: h5_sizeof_dp +!DEC$endif + INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_DP(a) + IMPLICIT NONE + REAL(dp), INTENT(in):: a + + H5_SIZEOF_DP = storage_size(a, c_size_t)/storage_size(c_char_'a',c_size_t) + + END FUNCTION H5_SIZEOF_DP + +END MODULE TH5_MISC_PROVISIONAL diff --git a/fortran/test/tf_F90.f90 b/fortran/test/tf_F90.f90 new file mode 100644 index 0000000..11a047c --- /dev/null +++ b/fortran/test/tf_F90.f90 @@ -0,0 +1,33 @@ +!****h* root/fortran/test/tf_F90.f90 +! +! NAME +! tf_F90.f90 +! +! FUNCTION +! Module for when the compiler is not F2003 or F2008 compliant. +! Needed by tf.f90 for the test programs. +! +! 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 TH5_MISC_PROVISIONAL + IMPLICIT NONE + + INTEGER, PARAMETER :: sp = KIND(0.0) + INTEGER, PARAMETER :: dp = KIND(0.D0) + +END MODULE TH5_MISC_PROVISIONAL diff --git a/fortran/testpar/Makefile.in b/fortran/testpar/Makefile.in index 073194a..f16dfff 100644 --- a/fortran/testpar/Makefile.in +++ b/fortran/testpar/Makefile.in @@ -114,8 +114,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/src/H5config.h \ - $(top_builddir)/fortran/src/H5config_f.inc +CONFIG_HEADER = $(top_builddir)/src/H5config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__EXEEXT_1 = parallel_test$(EXEEXT) @@ -141,7 +140,7 @@ AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src -I$(top_builddir)/fortran/src +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src FCCOMPILE = $(FC) $(AM_FCFLAGS) $(FCFLAGS) LTFCCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=FC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(FC) $(AM_FCFLAGS) $(FCFLAGS) @@ -449,21 +448,14 @@ F9XMODEXT = @F9XMODEXT@ F9XMODFLAG = @F9XMODFLAG@ F9XSUFFIXFLAG = @F9XSUFFIXFLAG@ FC = @FC@ +FC2003 = @FC2003@ FCFLAGS = @FCFLAGS@ FCFLAGS_f90 = @FCFLAGS_f90@ FCLIBS = @FCLIBS@ FC_VERSION = @FC_VERSION@ FGREP = @FGREP@ -FORTRAN_C_LONG_DOUBLE_IS_UNIQUE = @FORTRAN_C_LONG_DOUBLE_IS_UNIQUE@ -FORTRAN_HAVE_C_LONG_DOUBLE = @FORTRAN_HAVE_C_LONG_DOUBLE@ -FORTRAN_SIZEOF_LONG_DOUBLE = @FORTRAN_SIZEOF_LONG_DOUBLE@ FSEARCH_DIRS = @FSEARCH_DIRS@ GREP = @GREP@ -H5CONFIG_F_IKIND = @H5CONFIG_F_IKIND@ -H5CONFIG_F_NUM_IKIND = @H5CONFIG_F_NUM_IKIND@ -H5CONFIG_F_NUM_RKIND = @H5CONFIG_F_NUM_RKIND@ -H5CONFIG_F_RKIND = @H5CONFIG_F_RKIND@ -H5CONFIG_F_RKIND_SIZEOF = @H5CONFIG_F_RKIND_SIZEOF@ H5_CFLAGS = @H5_CFLAGS@ H5_CPPFLAGS = @H5_CPPFLAGS@ H5_CXXFLAGS = @H5_CXXFLAGS@ @@ -473,12 +465,13 @@ H5_LDFLAGS = @H5_LDFLAGS@ H5_VERSION = @H5_VERSION@ HADDR_T = @HADDR_T@ HAVE_DMALLOC = @HAVE_DMALLOC@ -HAVE_Fortran_INTEGER_SIZEOF_16 = @HAVE_Fortran_INTEGER_SIZEOF_16@ +HAVE_FORTRAN_2003 = @HAVE_FORTRAN_2003@ HAVE_PTHREAD = @HAVE_PTHREAD@ 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@ @@ -520,18 +513,6 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ -PAC_C_MAX_REAL_PRECISION = @PAC_C_MAX_REAL_PRECISION@ -PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ -PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ -PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ -PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ -PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ -PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ -PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ -PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ -PAC_FORTRAN_NATIVE_INTEGER_SIZEOF = @PAC_FORTRAN_NATIVE_INTEGER_SIZEOF@ -PAC_FORTRAN_NATIVE_REAL_KIND = @PAC_FORTRAN_NATIVE_REAL_KIND@ -PAC_FORTRAN_NATIVE_REAL_SIZEOF = @PAC_FORTRAN_NATIVE_REAL_SIZEOF@ PARALLEL = @PARALLEL@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ |