[svn-r6573]

Purpose: Maintenance

Description: New fortran APIs h5pset_fapl_multi and h5pget_fapl_multi have been
             added

Solution:

Platforms tested: burrwhite with PGI compilers, arabica and modi4 with
                  --enable-parallel

Misc. update:
This commit is contained in:
Elena Pourmal 2003-04-02 16:42:41 -05:00
parent 6e9724c46c
commit cd1b5623f0
7 changed files with 567 additions and 8 deletions

View File

@ -2906,3 +2906,215 @@ nh5pget_edc_check_c ( hid_t_f *prp_id, int_f *flag )
*flag = (int_f)c_flag;
return ret_value;
}
/*----------------------------------------------------------------------------
* Name: h5pset_family_offset_c
* Purpose: Call H5Pset_family_offset to set and offset for family driver
* Inputs: prp_id - property list identifier
* offset - offset in bytes
* Returns: 0 on success, -1 on failure
* Programmer: Elena Pourmal
* Wednesday, 19 March 2003
* Modifications:
*---------------------------------------------------------------------------*/
int_f
nh5pset_family_offset_c ( hid_t_f *prp_id , hsize_t_f *offset)
{
int ret_value = 0;
hid_t c_prp_id;
hsize_t c_offset;
herr_t status;
c_prp_id = (hid_t)*prp_id;
c_offset = (hsize_t)*offset;
status = H5Pset_family_offset(c_prp_id, c_offset);
if ( status < 0 ) ret_value = -1;
return ret_value;
}
/*----------------------------------------------------------------------------
* Name: h5pset_fapl_multi_c
* Purpose: Call H5Pset_fapl_multi to set multi file dirver
* Inputs: prp_id - file_creation property list identifier
* mem_map - memory mapping array
* memb_fapl - property list for each memory usage type
* memb_name - array with members names
* len - array with the lenght of each name
* lenmax - lenght of the name a sdeclared in Fortran
* flag - flag allowing partila access when one of the files is missing
* Returns: 0 on success, -1 on failure
* Programmer: Elena Pourmal
* Monday 24, March 2003
* Modifications:
*---------------------------------------------------------------------------*/
int_f
/*nh5pset_fapl_multi_c ( hid_t_f *prp_id , int_f *memb_map, hid_t_f *memb_fapl, _fcd memb_name, int_f *len, int_f *lenmax, haddr_t_f *memb_addr, int_f *flag) */
nh5pset_fapl_multi_c ( hid_t_f *prp_id , int_f *memb_map, hid_t_f *memb_fapl, _fcd memb_name, int_f *len, int_f *lenmax, real_f *memb_addr, int_f *flag)
{
int ret_value = -1;
hid_t c_prp_id;
H5FD_mem_t c_memb_map[H5FD_MEM_NTYPES];
hid_t c_memb_fapl[H5FD_MEM_NTYPES];
const char *c_memb_name[H5FD_MEM_NTYPES];
haddr_t c_memb_addr[H5FD_MEM_NTYPES];
hbool_t relax;
herr_t status;
char *tmp, *tmp_p, *tmp_pp;
int i;
int c_lenmax;
c_lenmax = (int)*lenmax;
relax = (hbool_t)*flag;
/*
* 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.) return ret_value;
}
/*
* Take care of names array
*/
tmp = (char *)HD5f2cstring(memb_name, c_lenmax*(H5FD_MEM_NTYPES));
if (tmp ==NULL) return ret_value;
tmp_p = tmp;
for (i=0; i < H5FD_MEM_NTYPES; i++) {
c_memb_name[i] = (char *) malloc(len[i] + 1);
memcpy((char *)c_memb_name[i], tmp_p, len[i]);
tmp_pp = (char *)c_memb_name[i];
tmp_pp[len[i]] = '\0';
tmp_p = tmp_p + c_lenmax;
/* printf(" %d \n", len[i]);
printf("name %s \n", c_memb_name[i]);
*/
}
/*
* Take care of othe arguments
*/
c_prp_id = (hid_t)*prp_id;
for (i=0; i < H5FD_MEM_NTYPES; i++) {
c_memb_map[i] = (H5FD_mem_t)memb_map[i];
/*printf("map %d \n", c_memb_map[i]); */
c_memb_fapl[i] = (hid_t)memb_fapl[i];
/*printf("fapl %d \n", c_memb_fapl[i]); */
if(memb_addr[i] < 0) c_memb_addr[i] = HADDR_UNDEF;
else c_memb_addr[i] = (haddr_t)(((float)memb_addr[i])*(HADDR_MAX));
/*printf("address %Ld \n", c_memb_addr[i]); */
}
/*
* Call H5Pset_fapl_multi function
*/
status = H5Pset_fapl_multi(c_prp_id, c_memb_map, c_memb_fapl, c_memb_name, c_memb_addr, relax);
if ( status < 0 ) goto DONE;
ret_value = 0;
DONE:
free(tmp);
for (i=0; i < H5FD_MEM_NTYPES; i++) free((char *)c_memb_name[i]);
return ret_value;
}
/*----------------------------------------------------------------------------
* Name: h5pset_fapl_multi_sc
* Purpose: Call H5Pset_fapl_multi to set multi file dirver
* Inputs: prp_id - file_creation property list identifier
* Returns: 0 on success, -1 on failure
* Programmer: Elena Pourmal
* March 31 2003
* Modifications:
*---------------------------------------------------------------------------*/
int_f
nh5pset_fapl_multi_sc ( hid_t_f *prp_id , int_f *flag)
{
int ret_value = -1;
hid_t c_prp_id;
hbool_t relax;
herr_t status;
relax = (hbool_t)*flag;
c_prp_id = (hid_t)*prp_id;
/*
* Call H5Pset_fapl_multi function
*/
status = H5Pset_fapl_multi(c_prp_id, NULL, NULL, NULL, NULL, relax);
if ( status < 0 ) return ret_value;
ret_value = 0;
return ret_value;
}
/*----------------------------------------------------------------------------
* Name: h5pget_fapl_multi_c
* Purpose: Call H5Pget_fapl_multi to set multi file dirver
* Inputs: prp_id - file_creation property list identifier
* 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
* Returns: 0 on success, -1 on failure
* Programmer: Elena Pourmal
* Monday 24, March 2003
* Modifications:
*---------------------------------------------------------------------------*/
int_f
nh5pget_fapl_multi_c ( hid_t_f *prp_id , int_f *memb_map, hid_t_f *memb_fapl, _fcd memb_name, int_f *len, int_f *lenmax, real_f *memb_addr, int_f *flag, int_f *maxlen_out)
{
int ret_value = -1;
hid_t c_prp_id;
H5FD_mem_t c_memb_map[H5FD_MEM_NTYPES];
hid_t c_memb_fapl[H5FD_MEM_NTYPES];
char *c_memb_name[H5FD_MEM_NTYPES];
haddr_t c_memb_addr[H5FD_MEM_NTYPES];
hbool_t relax;
herr_t status;
char *tmp, *tmp_p;
int i;
int c_lenmax;
int length = 0;
c_lenmax = (int)*lenmax;
c_prp_id = (hid_t)*prp_id;
/*
* 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
*/
tmp = (char *)malloc(c_lenmax*H5FD_MEM_NTYPES + 1);
tmp_p = tmp;
for (i=0; i < c_lenmax*H5FD_MEM_NTYPES; i++) tmp[i] = ' ';
tmp[c_lenmax*H5FD_MEM_NTYPES] = '\0';
for (i=0; i < H5FD_MEM_NTYPES; i++) {
memcpy(tmp_p, c_memb_name[i], strlen(c_memb_name[i]));
len[i] = (int_f)strlen(c_memb_name[i]);
length = H5_MAX(length, strlen(c_memb_name[i]));
tmp_p = tmp_p + c_lenmax;
}
HD5packFstring(tmp, _fcdtocp(memb_name), c_lenmax*H5FD_MEM_NTYPES);
/*
* Take care of other arguments
*/
for (i=0; i < H5FD_MEM_NTYPES; i++) {
memb_map[i] = (int_f)c_memb_map[i];
memb_fapl[i] = (hid_t_f)c_memb_fapl[i];
if(c_memb_addr[i] == HADDR_UNDEF) memb_addr[i] = -1;
else memb_addr[i] = (real_f) ((float)c_memb_addr[i]/HADDR_MAX);
}
*flag = (int_f)relax;
*maxlen_out = (int_f)length;
ret_value = 0;
free(tmp);
for (i=0; i < H5FD_MEM_NTYPES; i++) free(c_memb_name[i]);
return ret_value;
}

View File

@ -58,6 +58,12 @@
! End comment if on T3E
MODULE PROCEDURE h5pinsert_char
END INTERFACE
INTERFACE h5pset_fapl_multi_f
MODULE PROCEDURE h5pset_fapl_multi_l
MODULE PROCEDURE h5pset_fapl_multi_s
END INTERFACE
CONTAINS
@ -5893,4 +5899,270 @@
END SUBROUTINE h5pset_fletcher32_f
!----------------------------------------------------------------------
! Name: h5pset_family_offset_f
!
! Purpose: Sets offset for family file driver.
!
! Inputs:
! prp_id - file creation property list identifier
! offset - file offset
! Outputs:
! hdferr: - error code
! Success: 0
! Failure: -1
! Optional parameters:
! NONE
!
! Programmer: Elena Pourmal
! 19 March 2003
!
! Modifications:
!
! Comment:
!----------------------------------------------------------------------
SUBROUTINE h5pset_family_offset_f(prp_id, offset, hdferr)
!
!This definition is needed for Windows DLLs
!DEC$if defined(BUILD_HDF5_DLL)
!DEC$attributes dllexport :: h5pset_family_offset_f
!DEC$endif
!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HSIZE_T), INTENT(IN) :: offset ! Offset in bytes
INTEGER, INTENT(OUT) :: hdferr ! Error code
! INTEGER, EXTERNAL :: h5pset_family_offset_c
! MS FORTRAN needs explicit interface for C functions called here.
!
INTERFACE
INTEGER FUNCTION h5pset_family_offset_c(prp_id, offset)
USE H5GLOBAL
!DEC$ IF DEFINED(HDF5F90_WINDOWS)
!MS$ATTRIBUTES C,reference,alias:'_H5PSET_FAMILY_OFFSET_C'::h5pset_family_offset_c
!DEC$ ENDIF
INTEGER(HID_T), INTENT(IN) :: prp_id
INTEGER(HSIZE_T), INTENT(IN) :: offset
END FUNCTION h5pset_family_offset_c
END INTERFACE
hdferr = h5pset_family_offset_c(prp_id, offset)
END SUBROUTINE h5pset_family_offset_f
!----------------------------------------------------------------------
! Name: h5pset_fapl_multi_l
!
! Purpose: Sets up use of the multi-file driver.
!
! Inputs:
! prp_id - file creation property list identifier
! mem_map - mapping array
! memb_fapl - property list for each memory usage type
! memb_name - names of member file
! relax - flag
! Outputs:
! hdferr: - error code
! Success: 0
! Failure: -1
! Optional parameters:
! NONE
!
! Programmer: Elena Pourmal
! 20 March 2003
!
! Modifications:
!
! Comment:
!----------------------------------------------------------------------
SUBROUTINE h5pset_fapl_multi_l(prp_id, memb_map, memb_fapl, memb_name, memb_addr, relax, hdferr)
!
!This definition is needed for Windows DLLs
!DEC$if defined(BUILD_HDF5_DLL)
!DEC$attributes dllexport :: h5pset_fapl_multi_l
!DEC$endif
!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_map
INTEGER(HID_T), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_fapl
CHARACTER(LEN=*), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_name
!INTEGER(HADDR_T), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_addr
REAL, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_addr
LOGICAL, INTENT(IN) :: relax
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1) :: lenm
INTEGER :: maxlen
INTEGER :: flag
INTEGER :: i
! INTEGER, EXTERNAL :: h5pset_fapl_multi_c
! MS FORTRAN needs explicit interface for C functions called here.
!
INTERFACE
INTEGER FUNCTION h5pset_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, &
maxlen, memb_addr, flag)
USE H5GLOBAL
!DEC$ IF DEFINED(HDF5F90_WINDOWS)
!MS$ATTRIBUTES C,reference,alias:'_H5PSET_FAPL_MULTI_C'::h5pset_fapl_multi_c
!DEC$ ENDIF
INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_map
INTEGER(HID_T), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_fapl
CHARACTER(LEN=*), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_name
REAL, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_addr
!INTEGER(HADDR_T), DIMENSION(H5FD_MEM_NTYPES_F), INTENT(IN) :: memb_addr
INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1) :: lenm
INTEGER :: maxlen
INTEGER, INTENT(IN) :: flag
END FUNCTION h5pset_fapl_multi_c
END INTERFACE
maxlen = LEN(memb_name(1))
do i=0, H5FD_MEM_NTYPES_F-1
lenm(i) = LEN_TRIM(memb_name(i))
enddo
flag = 0
if (relax) flag = 1
hdferr = h5pset_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, maxlen, memb_addr, flag)
END SUBROUTINE h5pset_fapl_multi_l
!----------------------------------------------------------------------
! Name: h5pset_fapl_multi_s
!
! Purpose: Sets up use of the multi-file driver.
!
! Inputs:
! prp_id - file creation property list identifier
! relax - flag
! Outputs:
! hdferr: - error code
! Success: 0
! Failure: -1
! Optional parameters:
! NONE
!
! Programmer: Elena Pourmal
! 31 March 2003
!
! Modifications:
!
! Comment:
!----------------------------------------------------------------------
SUBROUTINE h5pset_fapl_multi_s(prp_id, relax, hdferr)
!
!This definition is needed for Windows DLLs
!DEC$if defined(BUILD_HDF5_DLL)
!DEC$attributes dllexport :: h5pset_fapl_multi_s
!DEC$endif
!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
LOGICAL, INTENT(IN) :: relax
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER :: flag
! INTEGER, EXTERNAL :: h5pset_fapl_multi_sc
! MS FORTRAN needs explicit interface for C functions called here.
!
INTERFACE
INTEGER FUNCTION h5pset_fapl_multi_sc(prp_id,flag)
USE H5GLOBAL
!DEC$ IF DEFINED(HDF5F90_WINDOWS)
!MS$ATTRIBUTES C,reference,alias:'_H5PSET_FAPL_MULTI_SC'::h5pset_fapl_multi_sc
!DEC$ ENDIF
INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
INTEGER, INTENT(IN) :: flag
END FUNCTION h5pset_fapl_multi_sc
END INTERFACE
flag = 0
if (relax) flag = 1
hdferr = h5pset_fapl_multi_sc(prp_id, flag)
END SUBROUTINE h5pset_fapl_multi_s
!----------------------------------------------------------------------
! Name: h5pget_fapl_multi_f
!
! Purpose: Sets up use of the multi-file driver.
!
! Inputs:
! prp_id - file creation property list identifier
! Outputs:
! mem_map - mapping array
! memb_fapl - property list for each memory usage type
! memb_name - names of member file
! relax - flag
! hdferr: - error code
! Success: 0
! Failure: -1
! Optional parameters:
! maxlen_out - maximum length for memb_name array element
!
! Programmer: Elena Pourmal
! 24 March 2003
!
! Modifications:
!
! Comment:
!----------------------------------------------------------------------
SUBROUTINE h5pget_fapl_multi_f(prp_id, memb_map, memb_fapl, memb_name, memb_addr, relax, hdferr, maxlen_out)
!
!This definition is needed for Windows DLLs
!DEC$if defined(BUILD_HDF5_DLL)
!DEC$attributes dllexport :: h5pget_fapl_multi_f
!DEC$endif
!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_map
INTEGER(HID_T), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_fapl
CHARACTER(LEN=*), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_name
!INTEGER(HADDR_T), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_addr
REAL, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_addr
INTEGER, OPTIONAL, INTENT(OUT) :: maxlen_out
LOGICAL, INTENT(OUT) :: relax
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1) :: lenm
INTEGER :: maxlen
INTEGER :: c_maxlen_out
INTEGER :: flag
INTEGER :: i
! INTEGER, EXTERNAL :: h5pget_fapl_multi_c
! MS FORTRAN needs explicit interface for C functions called here.
!
INTERFACE
INTEGER FUNCTION h5pget_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, &
maxlen, memb_addr, flag, c_maxlen_out)
USE H5GLOBAL
!DEC$ IF DEFINED(HDF5F90_WINDOWS)
!MS$ATTRIBUTES C,reference,alias:'_H5PGET_FAPL_MULTI_C'::h5pget_fapl_multi_c
!DEC$ ENDIF
INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
INTEGER, DIMENSION(H5FD_MEM_NTYPES_F), INTENT(OUT) :: memb_map
INTEGER(HID_T), DIMENSION(H5FD_MEM_NTYPES_F), INTENT(OUT) :: memb_fapl
CHARACTER(LEN=*), DIMENSION(H5FD_MEM_NTYPES_F), INTENT(OUT) :: memb_name
REAL, DIMENSION(H5FD_MEM_NTYPES_F), INTENT(OUT) :: memb_addr
INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1) :: lenm
INTEGER :: maxlen
INTEGER :: c_maxlen_out
INTEGER, INTENT(IN) :: flag
END FUNCTION h5pget_fapl_multi_c
END INTERFACE
maxlen = LEN(memb_name(0))
do i=0, H5FD_MEM_NTYPES_F-1
lenm(i) = LEN_TRIM(memb_name(i))
enddo
hdferr = h5pget_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, maxlen, memb_addr, flag, c_maxlen_out)
relax = .TRUE.
if(flag .eq. 0) relax = .FALSE.
if(present(maxlen_out)) maxlen_out = c_maxlen_out
END SUBROUTINE h5pget_fapl_multi_f
END MODULE H5P

View File

@ -162,6 +162,7 @@ nh5close_types_c( hid_t_f * types, int_f *lentypes,
* Programmer: Elena Pourmal
* Tuesday, August 3, 1999
* Modifications: Added Z flags. EIP, March 12, 2003
* Added more FD flags and new H5LIB flags
*---------------------------------------------------------------------------*/
int_f
nh5init_flags_c( int_f *h5d_flags, int_f *h5e_flags, int_f *h5f_flags,
@ -247,6 +248,15 @@ nh5init_flags_c( int_f *h5d_flags, int_f *h5e_flags, int_f *h5f_flags,
*/
h5fd_flags[0] = H5FD_MPIO_INDEPENDENT;
h5fd_flags[1] = H5FD_MPIO_COLLECTIVE;
h5fd_flags[2] = H5FD_MEM_NOLIST;
h5fd_flags[3] = H5FD_MEM_DEFAULT;
h5fd_flags[4] = H5FD_MEM_SUPER;
h5fd_flags[5] = H5FD_MEM_BTREE;
h5fd_flags[6] = H5FD_MEM_DRAW;
h5fd_flags[7] = H5FD_MEM_GHEAP;
h5fd_flags[8] = H5FD_MEM_LHEAP;
h5fd_flags[9] = H5FD_MEM_OHDR;
h5fd_flags[10] = H5FD_MEM_NTYPES;
/*
* H5G flags
@ -369,10 +379,18 @@ nh5init_flags_c( int_f *h5d_flags, int_f *h5e_flags, int_f *h5f_flags,
h5z_flags[7] = H5Z_ENABLE_EDC;
h5z_flags[8] = H5Z_NO_EDC;
ret_value = 0;
return ret_value;
}
/*
int_f
nh5init1_flags_c(haddr_t_f *h5lib_flags)
{
int ret_value = -1;
ret_value = 0;
return ret_value;
}
*/
/*---------------------------------------------------------------------------
* Name: h5open_c
* Purpose: Calls H5open call to initialize C HDF5 library

View File

@ -37,6 +37,7 @@
INTEGER :: error_0, error_1, error_2
! INTEGER, EXTERNAL :: h5init_types_c
! INTEGER, EXTERNAL :: h5init_flags_c
! INTEGER, EXTERNAL :: h5init1_flags_c
! INTEGER, EXTERNAL :: h5open_c
!
@ -71,7 +72,7 @@
i_H5R_flags, &
i_H5S_flags, &
i_H5T_flags, &
i_H5Z_flags )
i_H5Z_flags)
USE H5GLOBAL
INTEGER i_H5F_flags(H5F_FLAGS_LEN)
INTEGER i_H5G_flags(H5G_FLAGS_LEN)
@ -84,12 +85,20 @@
INTEGER i_H5S_flags(H5S_FLAGS_LEN)
INTEGER i_H5T_flags(H5T_FLAGS_LEN)
INTEGER i_H5Z_flags(H5Z_FLAGS_LEN)
!DEC$ IF DEFINED(HDF5F90_WINDOWS)
!MS$ATTRIBUTES C,reference,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 )
! USE H5GLOBAL
! INTEGER(HADDR_T) i_H5LIB_flags(H5LIB_FLAGS_LEN)
! !DEC$ IF DEFINED(HDF5F90_WINDOWS)
! !MS$ATTRIBUTES C,reference,alias:'_H5INIT1_FLAGS_C'::h5init1_flags_c
! !DEC$ ENDIF
! END FUNCTION h5init1_flags_c
! END INTERFACE
error_0 = h5open_c()
error_1 = h5init_types_c(predef_types, floating_types, integer_types)
error_2 = h5init_flags_c(H5D_flags, &
@ -102,9 +111,9 @@
H5R_flags, &
H5S_flags, &
H5T_flags, &
H5Z_flags )
error = error_0 + error_1 + error_2
H5Z_flags)
! error_3 = h5init1_flags_c(H5LIB_flags )
error = error_0 + error_1 + error_2
END SUBROUTINE h5open_f
!----------------------------------------------------------------------

View File

@ -11,5 +11,5 @@
/* Constants used in H5Gf.c files */
#define OBJECT_NAMELEN_DEFAULT_F -1
#define H5_MAX(a,b) (((a)>(b)) ? (a) : (b))
#endif /* _H5f90_H */

View File

@ -266,15 +266,33 @@
!
! H5FD flags declaration
!
INTEGER, PARAMETER :: H5FD_FLAGS_LEN = 2
INTEGER, PARAMETER :: H5FD_FLAGS_LEN = 11
INTEGER H5FD_flags(H5FD_FLAGS_LEN)
COMMON /H5FD_FLAGS/ H5FD_flags
INTEGER :: H5FD_MPIO_INDEPENDENT_F
INTEGER :: H5FD_MPIO_COLLECTIVE_F
INTEGER :: H5FD_MEM_NOLIST_F
INTEGER :: H5FD_MEM_DEFAULT_F
INTEGER :: H5FD_MEM_SUPER_F
INTEGER :: H5FD_MEM_BTREE_F
INTEGER :: H5FD_MEM_DRAW_F
INTEGER :: H5FD_MEM_GHEAP_F
INTEGER :: H5FD_MEM_LHEAP_F
INTEGER :: H5FD_MEM_OHDR_F
INTEGER :: H5FD_MEM_NTYPES_F
EQUIVALENCE(H5FD_flags(1), H5FD_MPIO_INDEPENDENT_F)
EQUIVALENCE(H5FD_flags(2), H5FD_MPIO_COLLECTIVE_F)
EQUIVALENCE(H5FD_flags(3), H5FD_MEM_NOLIST_F)
EQUIVALENCE(H5FD_flags(4), H5FD_MEM_DEFAULT_F)
EQUIVALENCE(H5FD_flags(5), H5FD_MEM_SUPER_F)
EQUIVALENCE(H5FD_flags(6), H5FD_MEM_BTREE_F)
EQUIVALENCE(H5FD_flags(7), H5FD_MEM_DRAW_F)
EQUIVALENCE(H5FD_flags(8), H5FD_MEM_GHEAP_F)
EQUIVALENCE(H5FD_flags(9), H5FD_MEM_LHEAP_F)
EQUIVALENCE(H5FD_flags(10), H5FD_MEM_OHDR_F)
EQUIVALENCE(H5FD_flags(11), H5FD_MEM_NTYPES_F)
!
! H5E flags declaration
@ -564,5 +582,19 @@
EQUIVALENCE(H5Z_flags(8), H5Z_ENABLE_EDC_F)
EQUIVALENCE(H5Z_flags(9), H5Z_NO_EDC_F)
!
! H5 Library flags declaration
!
! INTEGER, PARAMETER :: H5LIB_FLAGS_LEN = 1
! INTEGER(HADDR_T) H5LIB_flags(H5LIB_FLAGS_LEN)
!DEC$if defined(BUILD_HDF5_DLL)
!DEC$ ATTRIBUTES DLLEXPORT :: /H5LIB_FLAGS/
!DEC$endif
! COMMON /H5LIB_FLAGS/ H5LIB_flags
! INTEGER(HADDR_T) :: HADDR_MAX_F
!
! EQUIVALENCE(H5LIB_flags(1), HADDR_MAX_F)
END MODULE H5GLOBAL

View File

@ -767,6 +767,10 @@ H5_DLL int_f nh5tis_variable_str_c ( hid_t_f *type_id , int_f *flag );
# define nh5pset_fletcher32_c FNAME(H5PSET_FLETCHER32_C)
# define nh5pset_edc_check_c FNAME(H5PSET_EDC_CHECK_C)
# define nh5pget_edc_check_c FNAME(H5PGET_EDC_CHECK_C)
# definne nh5pset_family_offset_c FNAME(H5PSET_FAMILY_OFFSET_C)
# define nh5pget_fapl_multi_c FNAME(H5PGET_FAPL_MULTI_C)
# define nh5pset_fapl_multi_c FNAME(H5PSET_FAPL_MULTI_C)
# define nh5pset_fapl_multi_sc FNAME(H5PSET_FAPL_MULTI_SC)
#else
# define nh5pcreate_c FNAME(h5pcreate_c)
@ -866,6 +870,10 @@ H5_DLL int_f nh5tis_variable_str_c ( hid_t_f *type_id , int_f *flag );
# define nh5pset_fletcher32_c FNAME(h5pset_fletcher32_c)
# define nh5pset_edc_check_c FNAME(h5pset_edc_check_c)
# define nh5pget_edc_check_c FNAME(h5pget_edc_check_c)
# define nh5pset_family_offset_c FNAME(h5pset_family_offset_c)
# define nh5pget_fapl_multi_c FNAME(h5pget_fapl_multi_c)
# define nh5pset_fapl_multi_c FNAME(h5pset_fapl_multi_c)
# define nh5pset_fapl_multi_sc FNAME(h5pset_fapl_multi_sc)
#endif
@ -1050,6 +1058,10 @@ H5_DLL int_f nh5pset_shuffle_c ( hid_t_f *prp_id , int_f *type_size);
H5_DLL int_f nh5pset_fletcher32_c ( hid_t_f *prp_id );
H5_DLL int_f nh5pset_edc_check_c ( hid_t_f *prp_id, int_f *flag );
H5_DLL int_f nh5pget_edc_check_c ( hid_t_f *prp_id, int_f *flag );
H5_DLL int_f nh5pset_family_offset_c ( hid_t_f *prp_id , hsize_t_f *offset);
H5_DLL 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_DLL 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_DLL int_f nh5pset_fapl_multi_sc ( hid_t_f *prp_id , int_f *flag);
/*
* Functions frome H5Rf.c
@ -1147,6 +1159,7 @@ H5_DLL int_f nh5eset_auto_c(int_f* printflag);
# define nh5init_types_c FNAME(H5INIT_TYPES_C)
# define nh5close_types_c FNAME(H5CLOSE_TYPES_C)
# define nh5init_flags_c FNAME(H5INIT_FLAGS_C)
# define nh5init1_flags_c FNAME(H5INIT1_FLAGS_C)
# define nh5get_libversion_c FNAME(H5GET_LIBVERSION_C)
# define nh5check_version_c FNAME(H5CHECK_VERSION_C)
# define nh5garbage_collect_c FNAME(H5GARBAGE_COLLECT_C)
@ -1157,6 +1170,7 @@ H5_DLL int_f nh5eset_auto_c(int_f* printflag);
# define nh5init_types_c FNAME(h5init_types_c)
# define nh5close_types_c FNAME(h5close_types_c)
# define nh5init_flags_c FNAME(h5init_flags_c)
# define nh5init1_flags_c FNAME(h5init1_flags_c)
# define nh5get_libversion_c FNAME(h5get_libversion_c)
# define nh5check_version_c FNAME(h5check_version_c)
# define nh5garbage_collect_c FNAME(h5garbage_collect_c)
@ -1172,6 +1186,8 @@ H5_DLL int_f nh5init_flags_c( int_f *h5d_flags, int_f *h5e_flags, int_f *h5f_fla
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_f *h5z_flags);
/*H5_DLL int_f nh5init1_flags_c(haddr_t_f *h5lib_flags); */
H5_DLL int_f nh5get_libversion_c(int_f *majnum, int_f *minnum, int_f *relnum);
H5_DLL int_f nh5check_version_c(int_f *majnum, int_f *minnum, int_f *relnum);