diff --git a/src/H5BlockF90.inc b/src/H5BlockF90.inc index b1b63fc..0c44980 100644 --- a/src/H5BlockF90.inc +++ b/src/H5BlockF90.inc @@ -1,5 +1,5 @@ INTERFACE - INTEGER*8 FUNCTION h5bl_define_3d_layout ( filehandle, i_start, i_end, j_start, j_end, k_start, k_end ) + INTEGER*8 FUNCTION h5bl_define3dlayout ( filehandle, i_start, i_end, j_start, j_end, k_start, k_end ) INTEGER*8, INTENT(IN) :: filehandle INTEGER*8, INTENT(IN) :: i_start INTEGER*8, INTENT(IN) :: i_end @@ -9,13 +9,46 @@ INTEGER*8, INTENT(IN) :: k_end END FUNCTION - INTEGER*8 FUNCTION h5bl_3d_read_scalar ( filehandle, name, data ) + INTEGER*8 FUNCTION h5bl_get_partition_of_proc ( filehandle, i_start, i_end, j_start, j_end, k_start, k_end ) + INTEGER*8, INTENT(IN) :: filehandle + INTEGER*8, INTENT(OUT) :: i_start + INTEGER*8, INTENT(OUT) :: i_end + INTEGER*8, INTENT(OUT) :: j_start + INTEGER*8, INTENT(OUT) :: j_end + INTEGER*8, INTENT(OUT) :: k_start + INTEGER*8, INTENT(OUT) :: k_end + END FUNCTION + + INTEGER*8 FUNCTION h5bl_get_reduced_partition_of_proc ( filehandle, i_start, i_end, j_start, j_end, k_start, k_end ) + INTEGER*8, INTENT(IN) :: filehandle + INTEGER*8, INTENT(OUT) :: i_start + INTEGER*8, INTENT(OUT) :: i_end + INTEGER*8, INTENT(OUT) :: j_start + INTEGER*8, INTENT(OUT) :: j_end + INTEGER*8, INTENT(OUT) :: k_start + INTEGER*8, INTENT(OUT) :: k_end + END FUNCTION + + INTEGER*8 FUNCTION h5bl_get_proc_of ( filehandle, i, j, k ) + INTEGER*8, INTENT(IN) :: filehandle + INTEGER*8, INTENT(IN) :: i + INTEGER*8, INTENT(IN) :: j + INTEGER*8, INTENT(IN) :: k + END FUNCTION + + INTEGER*8 FUNCTION h5bl_3d_read_scalar_field ( filehandle, name, data ) INTEGER*8, INTENT(IN) :: filehandle CHARACTER(LEN=*), INTENT(IN) :: name INTEGER*8, INTENT(OUT) :: data(:,:,:) END FUNCTION - INTEGER*8 FUNCTION h5bl_3d_read_3dvector ( filehandle, name, x, y, z ) + INTEGER*8 FUNCTION h5bl_3d_write_scalar_field ( filehandle, name, data ) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: name + INTEGER*8, INTENT(IN) :: data(:,:,:) + END FUNCTION + + INTEGER*8 FUNCTION h5bl_3d_read_3dvector_field ( filehandle, name, x, y, z ) INTEGER*8, INTENT(IN) :: filehandle CHARACTER(LEN=*), INTENT(IN) :: name INTEGER*8, INTENT(OUT) :: x(:,:,:) @@ -23,13 +56,8 @@ INTEGER*8, INTENT(OUT) :: z(:,:,:) END FUNCTION - INTEGER*8 FUNCTION h5bl_3d_write_scalar ( filehandle, name, data ) - INTEGER*8, INTENT(IN) :: filehandle - CHARACTER(LEN=*), INTENT(IN) :: name - INTEGER*8, INTENT(IN) :: data(:,:,:) - END FUNCTION - INTEGER*8 FUNCTION h5bl_3d_write_3dvector ( filehandle, name, x, y, z ) + INTEGER*8 FUNCTION h5bl_3d_write_3dvector_field ( filehandle, name, x, y, z ) INTEGER*8, INTENT(IN) :: filehandle CHARACTER(LEN=*), INTENT(IN) :: name INTEGER*8, INTENT(IN) :: x(:,:,:) @@ -41,14 +69,74 @@ INTEGER*8, INTENT(IN) :: filehandle END FUNCTION - INTEGER*8 FUNCTION h5bl_getfieldinfo ( filehandle, idx, field_name, len_field_name, grid_rank, grid_dims, field_dims ) + INTEGER*8 FUNCTION h5bl_getfieldinfo ( filehandle, idx, field_name, grid_rank, grid_dims, field_dims ) INTEGER*8, INTENT(IN) :: filehandle INTEGER*8, INTENT(IN) :: idx, CHARACTER(LEN=*), INTENT(OUT) :: field_name - INTEGER*8, INTENT(IN) :: len_field_name INTEGER*8, INTENT(OUT) :: grid_rank INTEGER*8, INTENT(OUT) :: grid_dims(:) INTEGER*8, INTENT(OUT) :: field_dims END FUNCTION + INTEGER*8 FUNCTION h5bl_writefieldattrib_r8 ( filehandle, field_name, attrib_name, attrib_value, attrib_nelem) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: field_name ! The name of the field + CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! The name of the attribute + REAL*8, INTENT(IN) :: attrib_value(:) ! The array of data to write into the attribute + INTEGER*8, INTENT(IN) :: attrib_nelem ! Number of elements in the attrib array + END FUNCTION + INTEGER*8 FUNCTION h5bl_writefieldattrib_i8 (filehandle,attrib_name,attrib_value,attrib_nelem) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: field_name ! The name of the field + CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! The name of the attribute + INTEGER*8, INTENT(IN) :: attrib_value(:) ! The array of data to write into the attribute + INTEGER*8, INTENT(IN) :: attrib_nelem ! Number of elements in the attrib array + END FUNCTION + + INTEGER*8 FUNCTION h5bl_writefieldattrib_string ( filehandle, field_name, attrib_name, attrib_value ) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: field_name ! The name of the field + CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! The name of the attribute + CHARACTER(LEN=*), INTENT(IN) :: attrib_value ! The array of data to write into the attribute + END FUNCTION + + INTEGER*8 FUNCTION h5bl_getnfieldattribs ( filehandle, field_name ) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: field_name ! The name of the field + END FUNCTION + + INTEGER*8 FUNCTION h5bl_getfieldattribinfo ( filehandle, field_name, idx, attrib_name, attrib_nelem) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: field_name ! The name of the field + INTEGER*8, INTENT(IN) :: idx ! index of the attribute being queried + CHARACTER(LEN=*), INTENT(OUT):: attrib_name ! The name of the attribute + INTEGER*8, INTENT(OUT):: attrib_nelem ! Number of elements in the attrib array + END FUNCTION + + INTEGER*8 FUNCTION h5bl_readfieldattrib_i8 ( filehandle, field_name, attrib_name, attrib_value ) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: field_name ! The name of the field + CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! name of the attribute to read + INTEGER*8, INTENT(OUT):: attrib_value(:)! the attribute data will be read into this array + END FUNCTION + + INTEGER*8 FUNCTION h5bl_readfieldattrib_r8 ( filehandle, field_name, attrib_name, attrib_value ) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: field_name ! The name of the field + CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! name of the attribute to read + REAL*8, INTENT(OUT):: attrib_value(:)! the attribute data will be read into this array + END FUNCTION + + INTEGER*8 FUNCTION h5bl_readfieldattrib_string ( filehandle, field_name, attrib_name, attrib_value ) + INTEGER*8, INTENT(IN) :: filehandle + CHARACTER(LEN=*), INTENT(IN) :: field_name ! The name of the field + CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! name of the attribute to read + CHARACTER(LEN=*), INTENT(IN) :: attrib_value ! The array of data to write into the attribute + END FUNCTION + + INTEGER*8 FUNCTION h5bl_has_fielddata ( filehandle ) + INTEGER*8, INTENT(IN) :: filehandle + END FUNCTION + + END INTERFACE