[svn-r2795]

Purpose:
    New feature
Description:
    Now all Fortran flags such as H5F_ACC_RDONLY_F (previously defined in the
    H5fortran_flags.f90 file) are generated at runtime when h5init_fortran_f
    subroutine is called. All flags have now the same value as
    corresponding C flags. This change affects user's programming model:
    Every Fortran program that uses F90 HDF5 Library has to call
    h5init_fortran_f(error) subroutine before the first call to the
    F90 HDF5 Library and h5close_fortran_f(error) after the last call to the
    Library. h5init(close)_types_f calls are not needed anymore since
    F90 datatypes are intialized(closed) with the h5init(close)_fortran_f
    calls.

Platforms tested:
     O2K and Solaris2.7
This commit is contained in:
Elena Pourmal 2000-11-03 14:45:50 -05:00
parent 0556db98e2
commit 46f49b84cf
19 changed files with 607 additions and 283 deletions

View File

@ -9,7 +9,7 @@ H5Af.lo: \
H5Aff.lo: \
$(srcdir)/H5Aff.f90 \
H5fortran_types.f90 \
$(srcdir)/H5fortran_flags.f90
$(srcdir)/H5f90global.f90
H5Df.lo: \
$(srcdir)/H5Df.c \
$(srcdir)/H5f90.h \
@ -18,16 +18,16 @@ H5Df.lo: \
H5Dff.lo: \
$(srcdir)/H5Dff.f90 \
H5fortran_types.f90 \
$(srcdir)/H5fortran_flags.f90
$(srcdir)/H5f90global.f90
H5Ef.lo: \
$(srcdir)/H5Ef.c \
$(srcdir)/H5f90.h \
$(srcdir)/H5f90i.h \
$(srcdir)/H5f90proto.h
H5Eff.lo: \
$(srcdir)/H5Eff.lo \
H5fortran_types.f90 \
$(srcdir)/H5fortran_flags.f90
$(srcdir)/H5Eff.f90 \
$(srcdir)/H5fortran_flags.f90\
$(srcdir)/H5f90global.f90
H5Ff.lo: \
$(srcdir)/H5Ff.c \
$(srcdir)/H5f90.h \
@ -36,7 +36,7 @@ H5Ff.lo: \
H5Fff.lo: \
$(srcdir)/H5Fff.f90 \
H5fortran_types.f90 \
$(srcdir)/H5fortran_flags.f90
$(srcdir)/H5f90global.f90
H5Gf.lo: \
$(srcdir)/H5Gf.c \
$(srcdir)/H5f90.h \
@ -45,7 +45,7 @@ H5Gf.lo: \
H5Gff.lo: \
$(srcdir)/H5Gff.f90 \
H5fortran_types.f90 \
$(srcdir)/H5fortran_flags.f90
$(srcdir)/H5f90global.f90
H5Git.lo: \
$(srcdir)/H5Git.c \
$(srcdir)/H5Git.h
@ -57,7 +57,7 @@ H5If.lo: \
H5Iff.lo: \
$(srcdir)/H5Iff.f90 \
H5fortran_types.f90 \
$(srcdir)/H5fortran_flags.f90
$(srcdir)/H5f90global.f90
H5Pf.lo: \
$(srcdir)/H5Pf.c \
$(srcdir)/H5f90.h \
@ -71,11 +71,11 @@ H5Pf_parallel.lo: \
H5Pff.lo: \
$(srcdir)/H5Pff.f90 \
H5fortran_types.f90 \
$(srcdir)/H5fortran_flags.f90
$(srcdir)/H5f90global.f90
H5Pff_parallel.lo: \
$(srcdir)/H5Pff_parallel.f90 \
H5fortran_types.f90 \
$(srcdir)/H5fortran_flags.f90
$(srcdir)/H5f90global.f90
H5Rf.lo: \
$(srcdir)/H5Rf.c \
$(srcdir)/H5f90.h \
@ -84,7 +84,7 @@ H5Rf.lo: \
H5Rff.lo: \
$(srcdir)/H5Rff.f90 \
H5fortran_types.f90 \
$(srcdir)/H5fortran_flags.f90
$(srcdir)/H5f90global.f90
H5Sf.lo: \
$(srcdir)/H5Sf.c \
$(srcdir)/H5f90.h \
@ -93,7 +93,7 @@ H5Sf.lo: \
H5Sff.lo: \
$(srcdir)/H5Sff.f90 \
H5fortran_types.f90 \
$(srcdir)/H5fortran_flags.f90
$(srcdir)/H5f90global.f90
H5Tf.lo: \
$(srcdir)/H5Sf.c \
$(srcdir)/H5f90.h \
@ -102,7 +102,7 @@ H5Tf.lo: \
H5Tff.lo: \
$(srcdir)/H5Tff.f90 \
H5fortran_types.f90 \
$(srcdir)/H5fortran_flags.f90
$(srcdir)/H5f90global.f90
H5f90global.lo: \
$(srcdir)/H5f90global.f90 \
H5fortran_types.f90

View File

@ -29,8 +29,10 @@ nh5acreate_c (hid_t_f *obj_id, _fcd name, int_f *namelen, hid_t_f *type_id, hid_
/*
* Define creation property
*/
c_crt_prp = *crt_prp;
c_crt_prp = (hid_t)*crt_prp;
/*
if ( H5P_DEFAULT_F == c_crt_prp ) c_crt_prp = H5P_DEFAULT;
*/
/*
* Convert FORTRAN name to C name

View File

@ -3,8 +3,7 @@
!
MODULE H5A
USE H5FORTRAN_TYPES
USE H5FORTRAN_FLAGS
USE H5GLOBAL
INTERFACE h5awrite_f

View File

@ -30,8 +30,10 @@ nh5dcreate_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *type_id, hid_
/*
* Define creation property
*/
c_crt_prp = *crt_prp;
c_crt_prp = (hid_t)*crt_prp;
/*
if ( H5P_DEFAULT_F == c_crt_prp ) c_crt_prp = H5P_DEFAULT;
*/
/*
* Convert FORTRAN name to C name
@ -150,8 +152,10 @@ nh5dwrite_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_
/*
* Define transfer property
*/
c_xfer_prp = *xfer_prp;
c_xfer_prp = (hid_t)*xfer_prp;
/*
if ( H5P_DEFAULT_F == c_xfer_prp ) c_xfer_prp = H5P_DEFAULT;
*/
/*
* Call H5Dwrite function.
@ -198,8 +202,10 @@ nh5dwrite_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_
/*
* Define transfer property
*/
c_xfer_prp = *xfer_prp;
c_xfer_prp = (hid_t)*xfer_prp;
/*
if ( H5P_DEFAULT_F == c_xfer_prp ) c_xfer_prp = H5P_DEFAULT;
*/
/*
* Allocate temporary buffer and copy references from Fortran.
@ -258,8 +264,10 @@ nh5dwrite_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_
/*
* Define transfer property
*/
c_xfer_prp = *xfer_prp;
c_xfer_prp = (hid_t)*xfer_prp;
/*
if ( H5P_DEFAULT_F == c_xfer_prp ) c_xfer_prp = H5P_DEFAULT;
*/
/*
* Allocate temporary buffer and copy references from Fortran.
@ -344,8 +352,10 @@ nh5dread_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t
/*
* Define transfer property
*/
c_xfer_prp = *xfer_prp;
c_xfer_prp = (hid_t)*xfer_prp;
/*
if ( H5P_DEFAULT_F == c_xfer_prp ) c_xfer_prp = H5P_DEFAULT;
*/
/*
* Call H5Dread function.
@ -392,8 +402,10 @@ nh5dread_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_i
/*
* Define transfer property
*/
c_xfer_prp = *xfer_prp;
c_xfer_prp = (hid_t)*xfer_prp;
/*
if ( H5P_DEFAULT_F == c_xfer_prp ) c_xfer_prp = H5P_DEFAULT;
*/
/*
* Allocate temporary buffer.
@ -452,8 +464,10 @@ nh5dread_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_i
/*
* Define transfer property
*/
c_xfer_prp = *xfer_prp;
c_xfer_prp = (hid_t)*xfer_prp;
/*
if ( H5P_DEFAULT_F == c_xfer_prp ) c_xfer_prp = H5P_DEFAULT;
*/
/*
* Allocate temporary buffer.

View File

@ -2,8 +2,7 @@
! This file contains Fortran90 interfaces for H5D functions.
!
MODULE H5D
USE H5FORTRAN_TYPES
! USE H5FORTRAN_FLAGS - do not need it here since it is included in H5R already
USE H5GLOBAL
USE H5R
INTERFACE h5dwrite_f
@ -383,11 +382,14 @@
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
! Transfer property list identifier
INTEGER(HID_T) :: xfer_prp_default = H5P_DEFAULT_F
INTEGER(HID_T) :: mem_space_id_default = H5S_ALL_F
INTEGER(HID_T) :: file_space_id_default = H5S_ALL_F
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
INTEGER, EXTERNAL :: h5dwrite_c
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
file_space_id_default = H5S_ALL_F
if (present(xfer_prp)) xfer_prp_default = xfer_prp
if (present(mem_space_id)) mem_space_id_default = mem_space_id
if (present(file_space_id)) file_space_id_default = file_space_id
@ -783,10 +785,13 @@
! Transfer property list identifier
INTEGER, EXTERNAL :: h5dwrite_c
INTEGER(HID_T) :: xfer_prp_default = H5P_DEFAULT_F
INTEGER(HID_T) :: mem_space_id_default = H5S_ALL_F
INTEGER(HID_T) :: file_space_id_default = H5S_ALL_F
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

View File

@ -30,6 +30,8 @@ nh5fcreate_c(_fcd name, int_f *namelen, int_f *access_flags, hid_t_f* crt_prp, h
/*
* Define access flags
*/
c_access_flags = (unsigned) *access_flags;
/*
CASE = (int)*access_flags;
switch (CASE) {
@ -56,19 +58,22 @@ nh5fcreate_c(_fcd name, int_f *namelen, int_f *access_flags, hid_t_f* crt_prp, h
default:
return ret_value;
}
*/
/*
* Define creation property
*/
c_crt_prp = *crt_prp;
/*
if ( H5P_DEFAULT_F == c_crt_prp ) c_crt_prp = H5P_DEFAULT;
*/
/*
* Define access property
*/
c_acc_prp = *acc_prp;
/*
if ( H5P_DEFAULT_F == c_acc_prp ) c_acc_prp = H5P_DEFAULT;
*/
/*
* Convert FORTRAN name to C name
*/
@ -108,10 +113,12 @@ nh5fflush_c (hid_t_f *object_id, int_f *scope)
int CASE;
H5F_scope_t c_scope;
htri_t status;
c_scope = (H5F_scope_t)*scope;
/*
* Define scope flags
*/
/*
CASE = (int)*scope;
switch (CASE) {
@ -126,7 +133,7 @@ nh5fflush_c (hid_t_f *object_id, int_f *scope)
default:
return ret_value;
}
*/
/*
* Call H5Fflush function.
*/
@ -169,7 +176,9 @@ nh5fmount_c (hid_t_f *loc_id, _fcd dsetname, int_f *namelen, hid_t_f *file_id, h
* Define access property
*/
c_acc_prp = *acc_prp;
/*
if ( H5P_DEFAULT_F == c_acc_prp ) c_acc_prp = H5P_DEFAULT;
*/
c_loc_id = *loc_id;
c_file_id = *file_id;
@ -257,10 +266,13 @@ nh5fopen_c (_fcd name, int_f *namelen, int_f *access_flags, hid_t_f *acc_prp, hi
hid_t c_acc_prp;
int CASE;
hid_t CASE_prp;
c_acc_prp = (hid_t)*acc_prp;
/*
* Define access flags
*/
c_access_flags = (unsigned) *access_flags;
/*
CASE = (int)*access_flags;
switch (CASE) {
@ -287,12 +299,14 @@ nh5fopen_c (_fcd name, int_f *namelen, int_f *access_flags, hid_t_f *acc_prp, hi
default:
return ret_value;
}
*/
/*
* Define access property
*/
c_acc_prp = *acc_prp;
/*
if ( H5P_DEFAULT_F == c_acc_prp ) c_acc_prp = H5P_DEFAULT;
*/
/*
* Convert FORTRAN name to C name

View File

@ -2,8 +2,7 @@
! This file contains Fortran90 interfaces for H5F functions.
!
MODULE H5F
USE H5FORTRAN_TYPES
USE H5FORTRAN_FLAGS
USE H5GLOBAL
CONTAINS

View File

@ -139,6 +139,8 @@ nh5gget_obj_info_idx_c
HDfree(c_obj_name);
return ret_value;
}
*obj_type = type;
/*
switch (type) {
case H5G_LINK:
*obj_type = H5G_LINK_F;
@ -158,6 +160,7 @@ nh5gget_obj_info_idx_c
default:
return ret_value;
}
*/
/*
* Convert C name to FORTRAN and place it in the given buffer
*/

View File

@ -19,7 +19,9 @@ nh5pcreate_c ( int_f *classtype, hid_t_f *prp_id )
int CASE;
int ret_value = 0;
hid_t c_prp_id;
CASE = (int)*classtype;
/*CASE = (int)*classtype; */
c_classtype = (H5P_class_t)*classtype;
/*
switch (CASE) {
@ -47,6 +49,7 @@ nh5pcreate_c ( int_f *classtype, hid_t_f *prp_id )
ret_value = -1;
return ret_value;
}
*/
c_prp_id = H5Pcreate(c_classtype);
if ( c_prp_id < 0 ) ret_value = -1;
@ -129,15 +132,19 @@ nh5pget_class_c ( hid_t_f *prp_id , int_f *classtype)
c_prp_id = *prp_id;
c_classtype = H5Pget_class(c_prp_id);
if (c_classtype == H5P_NO_CLASS ) {
*classtype = H5P_NO_CLASS_F;
/* *classtype = H5P_NO_CLASS_F; */
*classtype = H5P_NO_CLASS;
ret_value = -1;
return ret_value;
}
*classtype = (int_f)c_classtype;
/*
if (c_classtype == H5P_FILE_CREATE) *classtype = H5P_FILE_CREATE_F;
if (c_classtype == H5P_FILE_ACCESS) *classtype = H5P_FILE_ACCESS_F;
if (c_classtype == H5P_DATASET_CREATE) *classtype = H5P_DATASET_CREATE_F;
if (c_classtype == H5P_DATASET_XFER) *classtype = H5P_DATASET_XFER_F;
if (c_classtype == H5P_MOUNT_F) *classtype = H5P_MOUNT_F;
*/
return ret_value;
}

View File

@ -2,8 +2,8 @@
! This file contains Fortran90 interfaces for H5R functions.
!
MODULE H5R
USE H5FORTRAN_TYPES
USE H5FORTRAN_FLAGS
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

View File

@ -87,8 +87,8 @@ nh5screate_c ( int_f *classtype, hid_t_f *space_id )
int CASE;
int ret_value = 0;
hid_t c_space_id;
CASE = (int)*classtype;
c_classtype = (H5S_class_t) *classtype;
/*
switch (CASE) {
case (H5S_SCALAR_F):
@ -103,6 +103,7 @@ nh5screate_c ( int_f *classtype, hid_t_f *space_id )
ret_value = -1;
return ret_value;
}
*/
c_space_id = H5Screate(c_classtype);
if ( c_space_id < 0 ) ret_value = -1;
@ -531,8 +532,11 @@ nh5sget_simple_extent_type_c ( hid_t_f *space_id , int_f *classtype)
c_space_id = *space_id;
c_classtype = H5Sget_simple_extent_type(c_space_id);
if ( c_classtype < 0 ) ret_value = -1;
*classtype = c_classtype;
/*
if (c_classtype == H5S_SCALAR) *classtype = H5S_SCALAR_F;
if (c_classtype == H5S_SIMPLE) *classtype = H5S_SIMPLE_F;
*/
return ret_value;
}
@ -809,9 +813,11 @@ nh5sselect_hyperslab_c ( hid_t_f *space_id , int_f *op, hssize_t_f *start, hsize
c_block[i] = (hsize_t)block[t];
}
c_op = (H5S_seloper_t)*op;
/*
if (*op == H5S_SELECT_SET_F) c_op = H5S_SELECT_SET;
if (*op == H5S_SELECT_OR_F) c_op = H5S_SELECT_OR;
*/
c_space_id = *space_id;
status = H5Sselect_hyperslab(c_space_id, c_op, c_start, c_stride, c_count, c_block);
@ -850,8 +856,10 @@ nh5sselect_elements_c ( hid_t_f *space_id , int_f *op, size_t_f *nelements, hss
int i, j;
hssize_t *c_coord;
size_t c_nelements;
/*
if (*op != H5S_SELECT_SET_F) return ret_value;
*/
if (*op != H5S_SELECT_SET) return ret_value;
c_op = H5S_SELECT_SET;
c_space_id = *space_id;

View File

@ -2,8 +2,7 @@
! This file contains Fortran90 interfaces for H5S functions.
!
MODULE H5S
USE H5FORTRAN_TYPES
USE H5FORTRAN_FLAGS
USE H5GLOBAL
CONTAINS

View File

@ -191,10 +191,13 @@ nh5tget_class_c ( hid_t_f *type_id , int_f *classtype)
c_type_id = *type_id;
c_classtype = H5Tget_class(c_type_id);
if (c_classtype == H5T_NO_CLASS ) {
*classtype = H5T_NO_CLASS_F;
/* *classtype = H5T_NO_CLASS_F; */
*classtype = (int_f)H5T_NO_CLASS;
ret_value = -1;
return ret_value;
}
*classtype = c_classtype;
/*
if (c_classtype == H5T_INTEGER) *classtype = H5T_INTEGER_F;
if (c_classtype == H5T_FLOAT) *classtype = H5T_FLOAT_F;
if (c_classtype == H5T_TIME) *classtype = H5T_TIME_F;
@ -204,6 +207,7 @@ nh5tget_class_c ( hid_t_f *type_id , int_f *classtype)
if (c_classtype == H5T_COMPOUND) *classtype = H5T_COMPOUND_F;
if (c_classtype == H5T_REFERENCE) *classtype = H5T_REFERENCE_F;
if (c_classtype == H5T_ENUM) *classtype = H5T_ENUM_F;
*/
return ret_value;
}
@ -231,9 +235,12 @@ nh5tget_order_c ( hid_t_f *type_id , int_f *order)
c_type_id = *type_id;
c_order = H5Tget_order(c_type_id);
if ( c_order < 0 ) return ret_value;
*order = (int_f)c_order;
/*
if ( c_order == H5T_ORDER_LE) *order = H5T_ORDER_LE_F;
if ( c_order == H5T_ORDER_BE) *order = H5T_ORDER_BE_F;
if ( c_order == H5T_ORDER_VAX) *order = H5T_ORDER_VAX_F;
*/
return ret_value;
}
@ -259,10 +266,12 @@ nh5tset_order_c ( hid_t_f *type_id , int_f *order)
hid_t c_type_id;
H5T_order_t c_order;
herr_t status;
c_order = (H5T_order_t)*order;
/*
if ( *order == H5T_ORDER_LE_F) c_order = H5T_ORDER_LE;
if ( *order == H5T_ORDER_BE_F) c_order = H5T_ORDER_BE;
if ( *order == H5T_ORDER_VAX_F) c_order = H5T_ORDER_VAX;
*/
c_type_id = *type_id;
status = H5Tset_order(c_type_id, c_order);
if ( status < 0 ) ret_value = -1;

View File

@ -5,77 +5,11 @@
#include "H5f90i.h"
#include "H5f90proto.h"
/* Constants from the H5Ff.c and H5Fff.f90 files */
#define H5F_ACC_RDWR_F 1
#define H5F_ACC_RDONLY_F 2
#define H5F_ACC_TRUNC_F 3
#define H5F_ACC_EXCL_F 4
#define H5F_ACC_DEBUG_F 5
#define H5P_DEFAULT_F 6 /* Can Fortran program use combination
of those flags? */
#define H5F_SCOPE_LOCAL_F 0
#define H5F_SCOPE_GLOBAL_F 1
/* Constants used in the H5Gf.c and H5Gff.f90 files */
#define OBJECT_NAMELEN_DEFAULT_F -1
#define H5G_LINK_F 0
#define H5G_GROUP_F 1
#define H5G_DATASET_F 2
#define H5G_TYPE_F 3
/* Constants used in H5Df.c and H5Dff.f90 files */
#define H5S_ALL_F -2
/* Constants used in H5Rff.f90 and H5Rf.c files */
#define REF_OBJ_BUF_LEN_F 2
#define REF_REG_BUF_LEN_F 3
#define REF_REG_BUF_LEN_F 3
/* Constants used in H5Sf.c and H5Sff.f90 files */
#define H5S_NO_CLASS_F -1
#define H5S_SCALAR_F 0
#define H5S_SIMPLE_F 1
#define H5S_SELECT_SET_F 0
#define H5S_SELECT_OR_F 1
/* Constants ised in H5Tf.c and H5Tff.f90 files */
#define H5T_NO_CLASS_F -1
#define H5T_INTEGER_F 0
#define H5T_FLOAT_F 1
#define H5T_TIME_F 2
#define H5T_STRING_F 3
#define H5T_BITFIELD_F 4
#define H5T_OPAQUE_F 5
#define H5T_COMPOUND_F 6
#define H5T_REFERENCE_F 7
#define H5T_ENUM_F 8
#define H5T_ORDER_LE_F 0
#define H5T_ORDER_BE_F 1
#define H5T_ORDER_VAX_F 2
/* Constants used in H5Pf.c and H5Pff.f90 files */
#define H5P_NO_CLASS_F -1
#define H5P_FILE_CREATE_F 0
#define H5P_FILE_ACCESS_F 1
#define H5P_DATASET_CREATE_F 2
#define H5P_DATASET_XFER_F 3
#define H5P_MOUNT_F 4
/* Constants used in H5Pf_parallel.c and H5Pff_parallel.f90 files */
#define H5FD_MPIO_INDEPENDENT_F 0
#define H5FD_MPIO_COLLECTIVE_F 1
/* Constants used in H5Gf.c files */
#define OBJECT_NAMELEN_DEFAULT_F -1
#endif /* _H5f90_H */

View File

@ -72,34 +72,308 @@
EQUIVALENCE (integer_types(16), H5T_STD_U64LE)
COMMON /PREDEFINED_TYPES/ H5T_NATIVE_INTEGER, &
H5T_NATIVE_REAL, &
H5T_NATIVE_DOUBLE, &
H5T_NATIVE_CHARACTER, &
H5T_STD_REF_OBJ, &
H5T_STD_REF_DSETREG
! COMMON /PREDEFINED_TYPES/ H5T_NATIVE_INTEGER, &
! H5T_NATIVE_REAL, &
! H5T_NATIVE_DOUBLE, &
! H5T_NATIVE_CHARACTER, &
! H5T_STD_REF_OBJ, &
! H5T_STD_REF_DSETREG
COMMON /PREDEFINED_TYPES/ predef_types(PREDEF_TYPES_LEN)
COMMON /FLOATING_TYPES/ H5T_IEEE_F32BE, &
H5T_IEEE_F32LE, &
H5T_IEEE_F64BE, &
H5T_IEEE_F64LE
! COMMON /FLOATING_TYPES/ H5T_IEEE_F32BE, &
! H5T_IEEE_F32LE, &
! H5T_IEEE_F64BE, &
! H5T_IEEE_F64LE
COMMON /FLOATING_TYPES/ floatinig_types(FLOATING_TYPES_LEN)
!
! COMMON /INTEGER_TYPES/ H5T_STD_I8BE, &
! H5T_STD_I8LE, &
! H5T_STD_I16BE, &
! H5T_STD_I16LE, &
! H5T_STD_I32BE, &
! H5T_STD_I32LE, &
! H5T_STD_I64BE, &
! H5T_STD_I64LE, &
! H5T_STD_U8BE, &
! H5T_STD_U8LE, &
! H5T_STD_U16BE, &
! H5T_STD_U16LE, &
! H5T_STD_U32BE, &
! H5T_STD_U32LE, &
! H5T_STD_U64BE, &
! H5T_STD_U64LE
COMMON /INTEGER_TYPES/ integer_types(INTEGER_TYPES_LEN)
!
! Fortran flags
!
!
! H5F flags (DO NOT FORGET TO UPDATE WHEN NEW FLAGS ARE ADDEDD !)
!
! H5F flags declaration
!
INTEGER, PARAMETER :: H5F_FLAGS_LEN = 7
INTEGER H5F_flags(H5F_FLAGS_LEN)
COMMON /H5F_FLAGS/ H5F_flags
COMMON /INTEGER_TYPES/ H5T_STD_I8BE, &
H5T_STD_I8LE, &
H5T_STD_I16BE, &
H5T_STD_I16LE, &
H5T_STD_I32BE, &
H5T_STD_I32LE, &
H5T_STD_I64BE, &
H5T_STD_I64LE, &
H5T_STD_U8BE, &
H5T_STD_U8LE, &
H5T_STD_U16BE, &
H5T_STD_U16LE, &
H5T_STD_U32BE, &
H5T_STD_U32LE, &
H5T_STD_U64BE, &
H5T_STD_U64LE
INTEGER :: H5F_ACC_RDWR_F
INTEGER :: H5F_ACC_RDONLY_F
INTEGER :: H5F_ACC_TRUNC_F
INTEGER :: H5F_ACC_EXCL_F
INTEGER :: H5F_ACC_DEBUG_F
INTEGER :: H5F_SCOPE_LOCAL_F
INTEGER :: H5F_SCOPE_GLOBAL_F
EQUIVALENCE(H5F_flags(1), H5F_ACC_RDWR_F)
EQUIVALENCE(H5F_flags(2), H5F_ACC_RDONLY_F)
EQUIVALENCE(H5F_flags(3), H5F_ACC_TRUNC_F)
EQUIVALENCE(H5F_flags(4), H5F_ACC_EXCL_F)
EQUIVALENCE(H5F_flags(5), H5F_ACC_DEBUG_F)
EQUIVALENCE(H5F_flags(6), H5F_SCOPE_LOCAL_F)
EQUIVALENCE(H5F_flags(7), H5F_SCOPE_GLOBAL_F)
!
! H5G flags declaration
!
INTEGER, PARAMETER :: H5G_FLAGS_LEN = 5
INTEGER H5G_flags(H5G_FLAGS_LEN)
COMMON /H5G_FLAGS/ H5G_flags
INTEGER :: H5G_UNKNOWN_F
INTEGER :: H5G_LINK_F
INTEGER :: H5G_GROUP_F
INTEGER :: H5G_DATASET_F
INTEGER :: H5G_TYPE_F
EQUIVALENCE(H5G_flags(1), H5G_UNKNOWN_F)
EQUIVALENCE(H5G_flags(2), H5G_LINK_F)
EQUIVALENCE(H5G_flags(3), H5G_GROUP_F)
EQUIVALENCE(H5G_flags(4), H5G_DATASET_F)
EQUIVALENCE(H5G_flags(5), H5G_TYPE_F)
!
! H5D flags declaration
!
INTEGER, PARAMETER :: H5D_FLAGS_LEN = 3
INTEGER H5D_flags(H5D_FLAGS_LEN)
COMMON /H5D_FLAGS/ H5D_flags
INTEGER :: H5D_COMPACT_F
INTEGER :: H5D_CONTIGUOUS_F
INTEGER :: H5D_CHUNKED_F
EQUIVALENCE(H5D_flags(1), H5D_COMPACT_F)
EQUIVALENCE(H5D_flags(2), H5D_CONTIGUOUS_F)
EQUIVALENCE(H5D_flags(3), H5D_CHUNKED_F)
!
! H5FD flags declaration
!
INTEGER, PARAMETER :: H5FD_FLAGS_LEN = 2
INTEGER H5FD_flags(H5FD_FLAGS_LEN)
COMMON /H5FD_FLAGS/ H5FD_flags
INTEGER :: H5FD_MPIO_INDEPENDENT_F
INTEGER :: H5FD_MPIO_COLLECTIVE_F
EQUIVALENCE(H5FD_flags(1), H5FD_MPIO_INDEPENDENT_F)
EQUIVALENCE(H5FD_flags(2), H5FD_MPIO_COLLECTIVE_F)
!
! H5E flags declaration
!
INTEGER, PARAMETER :: H5E_FLAGS_LEN = 23
INTEGER H5E_flags(H5E_FLAGS_LEN)
COMMON /H5E_FLAGS/ H5E_flags
INTEGER :: H5E_NONE_MAJOR_F
INTEGER :: H5E_ARGS_F
INTEGER :: H5E_RESOURCE_F
INTEGER :: H5E_INTERNAL_F
INTEGER :: H5E_FILE_F
INTEGER :: H5E_IO_F
INTEGER :: H5E_FUNC_F
INTEGER :: H5E_ATOM_F
INTEGER :: H5E_CACHE_F
INTEGER :: H5E_BTREE_F
INTEGER :: H5E_SYM_F
INTEGER :: H5E_HEAP_F
INTEGER :: H5E_OHDR_F
INTEGER :: H5E_DATATYPE_F
INTEGER :: H5E_DATASPACE_F
INTEGER :: H5E_DATASET_F
INTEGER :: H5E_STORAGE_F
INTEGER :: H5E_PLIST_F
INTEGER :: H5E_ATTR_F
INTEGER :: H5E_PLINE_F
INTEGER :: H5E_EFL_F
INTEGER :: H5E_RAGGED_F
INTEGER :: H5E_REFERENCE_F
EQUIVALENCE(H5E_flags(1), H5E_NONE_MAJOR_F)
EQUIVALENCE(H5E_flags(2), H5E_ARGS_F)
EQUIVALENCE(H5E_flags(3), H5E_RESOURCE_F)
EQUIVALENCE(H5E_flags(4), H5E_INTERNAL_F)
EQUIVALENCE(H5E_flags(5), H5E_FILE_F)
EQUIVALENCE(H5E_flags(6), H5E_IO_F)
EQUIVALENCE(H5E_flags(7), H5E_FUNC_F)
EQUIVALENCE(H5E_flags(8), H5E_ATOM_F)
EQUIVALENCE(H5E_flags(9), H5E_CACHE_F)
EQUIVALENCE(H5E_flags(10), H5E_BTREE_F)
EQUIVALENCE(H5E_flags(11), H5E_SYM_F)
EQUIVALENCE(H5E_flags(12), H5E_HEAP_F)
EQUIVALENCE(H5E_flags(13), H5E_OHDR_F)
EQUIVALENCE(H5E_flags(14), H5E_DATATYPE_F)
EQUIVALENCE(H5E_flags(15), H5E_DATASPACE_F)
EQUIVALENCE(H5E_flags(16), H5E_DATASET_F)
EQUIVALENCE(H5E_flags(17), H5E_STORAGE_F)
EQUIVALENCE(H5E_flags(18), H5E_PLIST_F)
EQUIVALENCE(H5E_flags(19), H5E_ATTR_F)
EQUIVALENCE(H5E_flags(20), H5E_PLINE_F)
EQUIVALENCE(H5E_flags(21), H5E_EFL_F)
EQUIVALENCE(H5E_flags(22), H5E_RAGGED_F)
EQUIVALENCE(H5E_flags(23), H5E_REFERENCE_F)
!
! H5E flags declaration
!
INTEGER, PARAMETER :: H5I_FLAGS_LEN = 7
INTEGER H5I_flags(H5I_FLAGS_LEN)
COMMON /H5I_FLAGS/ H5I_flags
INTEGER :: H5I_FILE_F
INTEGER :: H5I_GROUP_F
INTEGER :: H5I_DATATYPE_F
INTEGER :: H5I_DATASPACE_F
INTEGER :: H5I_DATASET_F
INTEGER :: H5I_ATTR_F
INTEGER :: H5I_BADID_F
EQUIVALENCE(H5I_flags(1), H5I_FILE_F)
EQUIVALENCE(H5I_flags(2), H5I_GROUP_F)
EQUIVALENCE(H5I_flags(3), H5I_DATATYPE_F)
EQUIVALENCE(H5I_flags(4), H5I_DATASPACE_F)
EQUIVALENCE(H5I_flags(5), H5I_DATASET_F)
EQUIVALENCE(H5I_flags(6), H5I_ATTR_F)
EQUIVALENCE(H5I_flags(7), H5I_BADID_F)
!
! H5P flags declaration
!
INTEGER, PARAMETER :: H5P_FLAGS_LEN = 6
INTEGER H5P_flags(H5P_FLAGS_LEN)
COMMON /H5P_FLAGS/ H5P_flags
INTEGER :: H5P_FILE_CREATE_F
INTEGER :: H5P_FILE_ACCESS_F
INTEGER :: H5P_DATASET_CREATE_F
INTEGER :: H5P_DATASET_XFER_F
INTEGER :: H5P_MOUNT_F
INTEGER :: H5P_DEFAULT_F
EQUIVALENCE(H5P_flags(1), H5P_FILE_CREATE_F)
EQUIVALENCE(H5P_flags(2), H5P_FILE_ACCESS_F)
EQUIVALENCE(H5P_flags(3), H5P_DATASET_CREATE_F)
EQUIVALENCE(H5P_flags(4), H5P_DATASET_XFER_F)
EQUIVALENCE(H5P_flags(5), H5P_MOUNT_F)
EQUIVALENCE(H5P_flags(6), H5P_DEFAULT_F)
!
! H5P flags declaration
!
INTEGER, PARAMETER :: H5R_FLAGS_LEN = 2
INTEGER H5R_flags(H5R_FLAGS_LEN)
COMMON /H5R_FLAGS/ H5R_flags
INTEGER :: H5R_OBJECT_F
INTEGER :: H5R_DATASET_REGION_F
EQUIVALENCE(H5R_flags(1), H5R_OBJECT_F)
EQUIVALENCE(H5R_flags(2), H5R_DATASET_REGION_F)
!
! H5S flags declaration
!
INTEGER, PARAMETER :: H5S_FLAGS_LEN = 6
INTEGER H5S_flags(H5S_FLAGS_LEN)
COMMON /H5S_FLAGS/ H5S_flags
INTEGER :: H5S_SCALAR_F
INTEGER :: H5S_SIMPLE_F
INTEGER :: H5S_SELECT_SET_F
INTEGER :: H5S_SELECT_OR_F
INTEGER :: H5S_UNLIMITED_F
INTEGER :: H5S_ALL_F
EQUIVALENCE(H5S_flags(1), H5S_SCALAR_F)
EQUIVALENCE(H5S_flags(2), H5S_SIMPLE_F)
EQUIVALENCE(H5S_flags(3), H5S_SELECT_SET_F)
EQUIVALENCE(H5S_flags(4), H5S_SELECT_OR_F)
EQUIVALENCE(H5S_flags(5), H5S_UNLIMITED_F)
EQUIVALENCE(H5S_flags(6), H5S_ALL_F)
!
! H5T flags declaration
!
INTEGER, PARAMETER :: H5T_FLAGS_LEN = 28
INTEGER H5T_flags(H5T_FLAGS_LEN)
COMMON /H5T_FLAGS/ H5T_flags
INTEGER :: H5T_NO_CLASS_F
INTEGER :: H5T_INTEGER_F
INTEGER :: H5T_FLOAT_F
INTEGER :: H5T_TIME_F
INTEGER :: H5T_STRING_F
INTEGER :: H5T_BITFIELD_F
INTEGER :: H5T_OPAQUE_F
INTEGER :: H5T_COMPOUND_F
INTEGER :: H5T_REFERENCE_F
INTEGER :: H5T_ENUM_F
INTEGER :: H5T_ORDER_LE_F
INTEGER :: H5T_ORDER_BE_F
INTEGER :: H5T_ORDER_VAX_F
INTEGER :: H5T_PAD_ZERO_F
INTEGER :: H5T_PAD_ONE_F
INTEGER :: H5T_PAD_BACKGROUND_F
INTEGER :: H5T_PAD_ERROR_F
INTEGER :: H5T_SGN_NONE_F
INTEGER :: H5T_SGN_2_F
INTEGER :: H5T_SGN_ERROR_F
INTEGER :: H5T_NORM_IMPLIED_F
INTEGER :: H5T_NORM_MSBSET_F
INTEGER :: H5T_NORM_NONE_F
INTEGER :: H5T_CSET_ASCII_F
INTEGER :: H5T_STR_NULLTERM_F
INTEGER :: H5T_STR_NULLPAD_F
INTEGER :: H5T_STR_SPACEPAD_F
INTEGER :: H5T_STR_ERROR_F
EQUIVALENCE(H5T_flags(1), H5T_NO_CLASS_F)
EQUIVALENCE(H5T_flags(2), H5T_INTEGER_F)
EQUIVALENCE(H5T_flags(3), H5T_FLOAT_F)
EQUIVALENCE(H5T_flags(4), H5T_TIME_F)
EQUIVALENCE(H5T_flags(5), H5T_STRING_F)
EQUIVALENCE(H5T_flags(6), H5T_BITFIELD_F)
EQUIVALENCE(H5T_flags(7), H5T_OPAQUE_F)
EQUIVALENCE(H5T_flags(8), H5T_COMPOUND_F)
EQUIVALENCE(H5T_flags(9), H5T_REFERENCE_F)
EQUIVALENCE(H5T_flags(10), H5T_ENUM_F)
EQUIVALENCE(H5T_flags(11), H5T_ORDER_LE_F)
EQUIVALENCE(H5T_flags(12), H5T_ORDER_BE_F)
EQUIVALENCE(H5T_flags(13), H5T_ORDER_VAX_F)
EQUIVALENCE(H5T_flags(14), H5T_PAD_ZERO_F)
EQUIVALENCE(H5T_flags(15), H5T_PAD_ONE_F)
EQUIVALENCE(H5T_flags(16), H5T_PAD_BACKGROUND_F)
EQUIVALENCE(H5T_flags(17), H5T_PAD_ERROR_F)
EQUIVALENCE(H5T_flags(18), H5T_SGN_NONE_F)
EQUIVALENCE(H5T_flags(19), H5T_SGN_2_F)
EQUIVALENCE(H5T_flags(20), H5T_SGN_ERROR_F)
EQUIVALENCE(H5T_flags(21), H5T_NORM_IMPLIED_F)
EQUIVALENCE(H5T_flags(22), H5T_NORM_MSBSET_F)
EQUIVALENCE(H5T_flags(23), H5T_NORM_NONE_F)
EQUIVALENCE(H5T_flags(24), H5T_CSET_ASCII_F)
EQUIVALENCE(H5T_flags(25), H5T_STR_NULLTERM_F)
EQUIVALENCE(H5T_flags(26), H5T_STR_NULLPAD_F)
EQUIVALENCE(H5T_flags(27), H5T_STR_SPACEPAD_F)
EQUIVALENCE(H5T_flags(28), H5T_STR_ERROR_F)
END MODULE H5GLOBAL

View File

@ -137,3 +137,170 @@ nh5close_types_c( hid_t_f * types, int_f *lentypes,
ret_value = 0;
return ret_value;
}
/*---------------------------------------------------------------------------
* Name: h5init_flags_c
* Purpose: Initialize Fortran flags
* Inputs: h5d_flags - H5D inteface flags
* h5e_flags - H5E interface flags
* h5f_flags - H5F interface flags
* h5fd_flags - H5FD interface flags
* h5g_flags - H5G interface flags
* h5i_flags - H5I interface flags
* h5p_flags - H5P interface flags
* h5r_flags - H5R interface flags
* h5s_flags - H5S interface flags
* h5t_flags - H5T interface flags
* Outputs: None
* Returns: 0 on success, -1 on failure
* Programmer: Elena Pourmal
* Tuesday, August 3, 1999
* Modifications:
*---------------------------------------------------------------------------*/
int_f
nh5init_flags_c( int_f *h5d_flags, int_f *h5e_flags, int_f *h5f_flags,
int_f *h5fd_flags, int_f *h5g_flags, int_f *h5i_flags,
int_f *h5p_flags, int_f *h5r_flags, int_f *h5s_flags,
int_f *h5t_flags)
{
int ret_value = -1;
/*
* H5D flags
*/
h5d_flags[0] = H5D_COMPACT;
h5d_flags[1] = H5D_CONTIGUOUS;
h5d_flags[2] = H5D_CHUNKED;
/*
* H5E flags
*/
h5e_flags[0] = H5E_NONE_MAJOR;
h5e_flags[1] = H5E_ARGS;
h5e_flags[2] = H5E_RESOURCE;
h5e_flags[3] = H5E_INTERNAL;
h5e_flags[4] = H5E_FILE;
h5e_flags[5] = H5E_IO;
h5e_flags[6] = H5E_FUNC;
h5e_flags[7] = H5E_ATOM;
h5e_flags[8] = H5E_CACHE;
h5e_flags[9] = H5E_BTREE;
h5e_flags[10] = H5E_SYM;
h5e_flags[11] = H5E_HEAP;
h5e_flags[12] = H5E_OHDR;
h5e_flags[13] = H5E_DATATYPE;
h5e_flags[14] = H5E_DATASPACE;
h5e_flags[15] = H5E_DATASET;
h5e_flags[16] = H5E_STORAGE;
h5e_flags[17] = H5E_PLIST;
h5e_flags[18] = H5E_ATTR;
h5e_flags[19] = H5E_PLINE;
h5e_flags[20] = H5E_EFL;
h5e_flags[21] = H5E_RAGGED;
h5e_flags[22] = H5E_REFERENCE;
/*
* H5F flags
*/
h5f_flags[0] = (int_f)H5F_ACC_RDWR;
h5f_flags[1] = (int_f)H5F_ACC_RDONLY;
h5f_flags[2] = (int_f)H5F_ACC_TRUNC;
h5f_flags[3] = (int_f)H5F_ACC_EXCL;
h5f_flags[4] = (int_f)H5F_ACC_DEBUG;
h5f_flags[5] = (int_f)H5F_SCOPE_LOCAL;
h5f_flags[6] = (int_f)H5F_SCOPE_GLOBAL;
/*
* H5FD flags
*/
h5fd_flags[0] = H5FD_MPIO_INDEPENDENT;
h5fd_flags[1] = H5FD_MPIO_COLLECTIVE;
/*
* H5G flags
*/
h5g_flags[0] = H5G_UNKNOWN;
h5g_flags[1] = H5G_LINK;
h5g_flags[2] = H5G_GROUP;
h5g_flags[3] = H5G_DATASET;
h5g_flags[4] = H5G_TYPE;
/*
* H5I flags
*/
h5i_flags[0] = H5I_FILE;
h5i_flags[1] = H5I_GROUP;
h5i_flags[2] = H5I_DATATYPE;
h5i_flags[3] = H5I_DATASPACE;
h5i_flags[4] = H5I_DATASET;
h5i_flags[5] = H5I_ATTR;
h5i_flags[6] = H5I_BADID;
/*
* H5P flags
*/
h5p_flags[0] = H5P_FILE_CREATE;
h5p_flags[1] = H5P_FILE_ACCESS;
h5p_flags[2] = H5P_DATASET_CREATE;
h5p_flags[3] = H5P_DATASET_XFER;
h5p_flags[4] = H5P_MOUNT;
h5p_flags[5] = H5P_DEFAULT;
/*
* H5R flags
*/
h5r_flags[0] = H5R_OBJECT;
h5r_flags[1] = H5R_DATASET_REGION;
/*
* H5S flags
*/
h5s_flags[0] = H5S_SCALAR;
h5s_flags[1] = H5S_SIMPLE;
h5s_flags[2] = H5S_SELECT_SET;
h5s_flags[3] = H5S_SELECT_OR;
h5s_flags[4] = H5S_UNLIMITED;
h5s_flags[5] = H5S_ALL;
/*
* H5T flags
*/
h5t_flags[0] = H5T_NO_CLASS;
h5t_flags[1] = H5T_INTEGER;
h5t_flags[2] = H5T_FLOAT;
h5t_flags[3] = H5T_TIME;
h5t_flags[4] = H5T_STRING;
h5t_flags[5] = H5T_BITFIELD;
h5t_flags[6] = H5T_OPAQUE;
h5t_flags[7] = H5T_COMPOUND;
h5t_flags[8] = H5T_REFERENCE;
h5t_flags[9] = H5T_ENUM;
h5t_flags[10] = H5T_ORDER_LE;
h5t_flags[11] = H5T_ORDER_BE;
h5t_flags[12] = H5T_ORDER_VAX;
h5t_flags[13] = H5T_PAD_ZERO;
h5t_flags[14] = H5T_PAD_ONE;
h5t_flags[15] = H5T_PAD_BACKGROUND;
h5t_flags[16] = H5T_PAD_ERROR;
h5t_flags[17] = H5T_SGN_NONE;
h5t_flags[18] = H5T_SGN_2;
h5t_flags[19] = H5T_SGN_ERROR;
h5t_flags[20] = H5T_NORM_IMPLIED;
h5t_flags[21] = H5T_NORM_MSBSET;
h5t_flags[22] = H5T_NORM_NONE;
h5t_flags[23] = H5T_CSET_ASCII;
h5t_flags[24] = H5T_STR_NULLTERM;
h5t_flags[25] = H5T_STR_NULLPAD;
h5t_flags[26] = H5T_STR_SPACEPAD;
h5t_flags[27] = H5T_STR_ERROR;
ret_value = 0;
return ret_value;
}

View File

@ -1,14 +1,27 @@
SUBROUTINE h5init_types_f(error)
SUBROUTINE h5init_fortran_f(error)
USE H5GLOBAL
IMPLICIT NONE
INTEGER, INTENT(OUT) :: error
INTEGER :: error_1, error_2
INTEGER, EXTERNAL :: h5init_types_c
error = h5init_types_c(predef_types, floating_types, integer_types)
INTEGER, EXTERNAL :: h5init_flags_c
error_1 = h5init_types_c(predef_types, floating_types, integer_types)
error_1 = h5init_flags_c(H5D_flags, &
H5E_flags, &
H5F_flags, &
H5FD_flags, &
H5G_flags, &
H5I_flags, &
H5P_flags, &
H5R_flags, &
H5S_flags, &
H5T_flags )
error = error_1 + error_2
END SUBROUTINE h5init_types_f
END SUBROUTINE h5init_fortran_f
SUBROUTINE h5close_types_f(error)
SUBROUTINE h5close_fortran_f(error)
USE H5GLOBAL
IMPLICIT NONE
@ -18,5 +31,5 @@
floating_types, FLOATING_TYPES_LEN, &
integer_types, INTEGER_TYPES_LEN )
END SUBROUTINE h5close_types_f
END SUBROUTINE h5close_fortran_f

View File

@ -877,15 +877,21 @@ extern int_f nh5eset_auto_c(int_f* printflag);
#ifndef H5MISCf90_FNAMES
# define H5MISCf90_FNAMES
#ifdef DF_CAPFNAMES
# define nh5init_types_c FNAME(H5INIT_TYPES_C)
# define nh5init_type_c FNAME(H5INIT_TYPES_C)
# define nh5close_types_c FNAME(H5CLOSE_TYPES_C)
# define nh5init_flags_c FNAME(H5INIT_FLAGS_C)
#else
# define nh5init_types_c FNAME(h5init_types_c)
# define nh5close_types_c FNAME(h5close_types_c)
# define nh5init_flags_c FNAME(h5init_flags_c)
#endif
#endif
extern int_f nh5init_types_c(hid_t_f *types, hid_t_f * floatingtypes, hid_t_f * integertypes);
extern 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);
extern int_f nh5init_flags_c( int_f *h5d_flags, int_f *h5e_flags, int_f *h5f_flags,
int_f *h5fd_flags, int_f *h5g_flags, int_f *h5i_flags,
int_f *h5p_flags, int_f *h5r_flags, int_f *h5s_flags,
int_f *h5t_flags);
#endif /* _H5f90proto_H */

View File

@ -1,140 +1,11 @@
MODULE H5FORTRAN_FLAGS
!H5F file interface related flags
INTEGER, PARAMETER :: H5F_ACC_RDWR_F = 1 , &
H5F_ACC_RDONLY_F = 2, &
H5F_ACC_TRUNC_F = 3, &
H5F_ACC_EXCL_F = 4, &
H5F_ACC_DEBUG_F = 5, &
H5F_SCOPE_LOCAL_F = 0, &
H5F_SCOPE_GLOBAL_F = 1
!H5G group interface related flags
INTEGER, PARAMETER :: H5G_UNKNOWN_F = -1
INTEGER, PARAMETER :: H5G_LINK_F = 0
INTEGER, PARAMETER :: H5G_GROUP_F =1
INTEGER, PARAMETER :: H5G_DATASET_F =2
INTEGER, PARAMETER :: H5G_TYPE_F =3
!H5P Property interface related flags
INTEGER, PARAMETER :: H5P_FILE_CREATE_F = 0
INTEGER, PARAMETER :: H5P_FILE_ACCESS_F = 1
INTEGER, PARAMETER :: H5P_DATASET_CREATE_F = 2
INTEGER, PARAMETER :: H5P_DATASET_XFER_F = 3
INTEGER, PARAMETER :: H5P_MOUNT_F = 4
INTEGER, PARAMETER :: H5P_DEFAULT_F = 6
!H5R Reference interface related flags
INTEGER, PARAMETER :: H5R_OBJECT_F = 0
INTEGER, PARAMETER :: H5R_DATASET_REGION_F = -2
!H5S Dataspace interface related flags
INTEGER, PARAMETER :: H5S_SCALAR_F = 0
INTEGER, PARAMETER :: H5S_SIMPLE_F = 1
INTEGER, PARAMETER :: H5S_SELECT_SET_F = 0
INTEGER, PARAMETER :: H5S_SELECT_OR_F =1
INTEGER, PARAMETER :: H5S_UNLIMITED_F = -1
INTEGER, PARAMETER :: H5S_ALL_F = -2
!USED IN PROERTY INTERFACE
INTEGER, PARAMETER :: H5D_COMPACT_F = 0
INTEGER, PARAMETER :: H5D_CONTIGUOUS_F = 1
INTEGER, PARAMETER :: H5D_CHUNKED_F = 2
INTEGER, PARAMETER :: H5FD_MPIO_INDEPENDENT_F = 0
INTEGER, PARAMETER :: H5FD_MPIO_COLLECTIVE_F = 1
!H5T Data type interface related flags
INTEGER, PARAMETER :: H5T_NO_CLASS_F = -1
INTEGER, PARAMETER :: H5T_INTEGER_F = 0
INTEGER, PARAMETER :: H5T_FLOAT_F = 1
INTEGER, PARAMETER :: H5T_TIME_F = 2
INTEGER, PARAMETER :: H5T_STRING_F = 3
INTEGER, PARAMETER :: H5T_BITFIELD_F = 4
INTEGER, PARAMETER :: H5T_OPAQUE_F = 5
INTEGER, PARAMETER :: H5T_COMPOUND_F = 6
INTEGER, PARAMETER :: H5T_REFERENCE_F = 7
INTEGER, PARAMETER :: H5T_ENUM_F = 8
INTEGER, PARAMETER :: H5T_ORDER_LE_F = 0
INTEGER, PARAMETER :: H5T_ORDER_BE_F = 1
INTEGER, PARAMETER :: H5T_ORDER_VAX_F = 2
INTEGER, PARAMETER :: H5T_PAD_ZERO_F = 0
INTEGER, PARAMETER :: H5T_PAD_ONE_F = 1
INTEGER, PARAMETER :: H5T_PAD_BACKGROUND_F = 2
INTEGER, PARAMETER :: H5T_PAD_ERROR_F = -1
INTEGER, PARAMETER :: H5T_PAD_NPAD_F = 3
!Unsigned integer type
INTEGER, PARAMETER :: H5T_SGN_NONE_F = 0
!Two's complement signed integer type
INTEGER, PARAMETER :: H5T_SGN_2_F = 1
INTEGER, PARAMETER :: H5T_SGN_ERROR_F = -1
!MSB of mantissa is not stored, always 1
INTEGER, PARAMETER :: H5T_NORM_IMPLIED_F = 0
!MSB of mantissa is always 1
INTEGER, PARAMETER :: H5T_NORM_MSBSET_F = 1
!Mantissa is not normalized
INTEGER, PARAMETER :: H5T_NORM_NONE_F = 2
!Character set is US ASCII
INTEGER, PARAMETER :: H5T_CSET_ASCII_F = 0
!Pad with zeros (as C does)
INTEGER, PARAMETER :: H5T_STR_NULL_F = 0
!Pad with spaces (as FORTRAN does)
INTEGER, PARAMETER :: H5T_STR_SPACE_F = 1
!H5P interface related fortran flags:
!identifier of the low-level file driver.
INTEGER, PARAMETER :: H5F_LOW_STDIO_F = 0
INTEGER, PARAMETER :: H5F_LOW_SEC2_F = 1
INTEGER, PARAMETER :: H5F_LOW_MPIO_F = 2
INTEGER, PARAMETER :: H5F_LOW_CORE_F = 3
INTEGER, PARAMETER :: H5F_LOW_SPLIT_F = 4
INTEGER, PARAMETER :: H5F_LOW_FAMILY_F = 5
!H5I interface related fortran flags:
INTEGER, PARAMETER :: H5I_FILE_F = 1
INTEGER, PARAMETER :: H5I_GROUP_F = 12
INTEGER, PARAMETER :: H5I_DATATYPE_F = 13
INTEGER, PARAMETER :: H5I_DATASPACE_F = 14
INTEGER, PARAMETER :: H5I_DATASET_F = 15
INTEGER, PARAMETER :: H5I_ATTR_F = 16
INTEGER, PARAMETER :: H5I_BADID_F = -1
!H5E interface related fortran flags:
!
! H5E interface related fortran flags:
!
!Turn on automatic printing of errors
INTEGER, PARAMETER :: PRINTON = 1
!Turn off automatic printing of errors
INTEGER, PARAMETER :: PRINTOFF = 0
!Error flags same as H5E_major_t
INTEGER, PARAMETER :: H5E_NONE_MAJOR_F = 0 !special zero, no error
INTEGER, PARAMETER :: H5E_ARGS_F = 1 !invalid arguments to routine
INTEGER, PARAMETER :: H5E_RESOURCE_F = 2 !resource unavailable
INTEGER, PARAMETER :: H5E_INTERNAL_F = 3 !Internal error (too specific to
!document in detail)
INTEGER, PARAMETER :: H5E_FILE_F = 4 !file Accessability
INTEGER, PARAMETER :: H5E_IO_F = 5 !Low-level I/O
INTEGER, PARAMETER :: H5E_FUNC_F = 6 !function Entry/Exit
INTEGER, PARAMETER :: H5E_ATOM_F = 7 !object Atom
INTEGER, PARAMETER :: H5E_CACHE_F = 8 !object Cache
INTEGER, PARAMETER :: H5E_BTREE_F = 9 !B-Tree Node
INTEGER, PARAMETER :: H5E_SYM_F = 10 !symbol Table
INTEGER, PARAMETER :: H5E_HEAP_F = 11 !Heap
INTEGER, PARAMETER :: H5E_OHDR_F = 12 !object Header
INTEGER, PARAMETER :: H5E_DATATYPE_F = 13 !Datatype
INTEGER, PARAMETER :: H5E_DATASPACE_F = 14 ! Dataspace
INTEGER, PARAMETER :: H5E_DATASET_F = 15 !Dataset
INTEGER, PARAMETER :: H5E_STORAGE_F = 16 !data storage
INTEGER, PARAMETER :: H5E_PLIST_F = 17 !Property lists
INTEGER, PARAMETER :: H5E_ATTR_F = 18 !Attribute
INTEGER, PARAMETER :: H5E_PLINE_F = 19 !Data filters
INTEGER, PARAMETER :: H5E_EFL_F = 20 !External file list
INTEGER, PARAMETER :: H5E_RAGGED_F = 21 !Ragged arrays
INTEGER, PARAMETER :: H5E_REFERENCE_F = 22 !References
END MODULE H5FORTRAN_FLAGS
END MODULE H5FORTRAN_FLAGS