Daniel,

It looks like you are using parallel HDF5. 

The call to h5fcreate_f would be slightly different in a parallel case: you 
need to specify an access property list that is set up for parallel access as 
shown here: 

    .......

     ! 
     ! Setup file access property list with parallel I/O access.
     !
     CALL h5pcreate_f(H5P_FILE_ACCESS_F, plist_id, error)
                                         ^^^^^^^^
     CALL h5pset_fapl_mpio_f(plist_id, comm, info, error)
                             ^^^^^^^^^

     !
     ! Create the file collectively.
                       ^^^^^^^^^^^^
     ! 
     CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, error, access_prp = 
plist_id)
    ........                                                    
^^^^^^^^^^^^^^^^^^^^^^

File has to be created collectively, i.e., ALL processes in communicator should 
participate.

Please see Parallel Tutorial http://www.hdfgroup.org/HDF5/Tutor/parallel.html, 
and Fortran example http://www.hdfgroup.org/HDF5/Tutor/pcrtaccd.html.

Elena
On Jan 25, 2011, at 12:10 PM, Daniel Dombroski wrote:

> Hello, 
> 
> I am a new user with a basic question regarding specifying the directory 
> location for a file that I would like to create.
> 
> I have an existing Fortran code that is currently setup to use the FITS 
> libraries for I/O, and I'm trying to get it setup so that HDF5 can 
> alternatively be used for I/O.  
> 
> The subroutine I have for creating and writing to an HDF5 file seems to work 
> fine when trying to write out a file to the current directory, but it runs 
> into problems when trying to specify a more complex path for the file 
> creation.  
> 
> As an example, 
> 
> 
> call h5fcreate_f('file.h5',H5F_ACC_TRUNC_F,fid,error)
> 
> 
> seems to work just fine in creating the desired file 'file.h5' in the current 
> directory.  However, 
> 
> call h5fcreate_f('/work/file.h5',H5F_ACC_TRUNC_F,fid,error)
> 
> 
> runs into problems.  It does create a file 'file.h5' in directory '/work', 
> however, it returns errors and the file is empty.  I have pasted below the 
> errors that are returned in the *.o file
> 
> Thanks!
> 
> 
> 
> HDF5-DIAG: Error detected in HDF5 (1.8.4) MPI-process 0:
> #000: H5D.c line 171 in H5Dcreate2(): unable to create dataset
> major: Dataset
> minor: Unable to initialize object
> #001: H5Dint.c line 428 in H5D_create_named(): unable to create and link to 
> dataset
> major: Dataset
> minor: Unable to initialize object
> #002: H5L.c line 1639 in H5L_link_object(): unable to create new link to 
> object
> major: Links
> minor: Unable to initialize object
> #003: H5L.c line 1862 in H5L_create_real(): can't insert link
> major: Symbol table
> minor: Unable to insert object
> #004: H5Gtraverse.c line 877 in H5G_traverse(): internal path traversal failed
> major: Symbol table
> minor: Object not found
> #005: H5Gtraverse.c line 776 in H5G_traverse_real(): component not found
> major: Symbol table
> minor: Object not found
> HDF5-DIAG: Error detected in HDF5 (1.8.4) MPI-process 0:
> #000: H5Dio.c line 228 in H5Dwrite(): not a dataset
> major: Invalid arguments to routine
> minor: Inappropriate type
> HDF5-DIAG: Error detected in HDF5 (1.8.4) MPI-process 0:
> #000: H5D.c line 378 in H5Dclose(): not a dataset
> major: Invalid arguments to routine
> minor: Inappropriate type
> 
> 
> 
> 
> 
> 
> _______________________________________________
> Hdf-forum is for HDF software users discussion.
> [email protected]
> http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org


_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org

Reply via email to