Hi Marc and Scot Thanks for the suggestion. I am able to compile with netcdf4.4.0 and hdf-1.8.13. I did not try the F2003 route.
Marc it was easy to use H5LTread_dataset_double_f to read in H5T_STD_I64BE ( a fortran INT*8 ) into a fortran double. I am now able to read in the long integers into a double real correctly. I do get displayed a .0 ( because its real) at the end but I guess there is enough space to fit in the long integer. Is there a H5LTread_dataset_long_f in fortran ? Gompie On Mon, Aug 10, 2015 at 3:33 PM, Miller, Mark C. <[email protected]> wrote: > Hi Gompie, > > Were you able to get all your issues here resolved? > > It did not occur (to me at least) until today to suggest that you might > want to use HDF5's Lite interface from the High-Level library. > > https://www.hdfgroup.org/HDF5/doc/HL/RM_H5LT.html > > Mark > > > From: Hdf-forum <[email protected]> on behalf of Scot > Breitenfeld <[email protected]> > Reply-To: HDF Users Discussion List <[email protected]> > Date: Wednesday, August 5, 2015 12:36 PM > > To: HDF Users Discussion List <[email protected]> > Subject: Re: [Hdf-forum] h5dopen returns error > > A few things: > > (1) If the integers in the dataset cannot be represented by INTEGER*4 > (which I’m assuming is your native INTEGER size) then the values read from > the HDF5 file will be wrong. You should be reading them > into an INTEGER*8. > > (2) What is the most recent version of hdf you can use without having a > conflict with netcdf? > > (i) If it is 1.8.7 then you will need to promote your native > integers to INTEGER*8 when you build the hdf5 library so that you get the > interface for INTEGER*8. You can do this > by setting the compiler flag FCFLAGS=<compiler option> before > running configure; for Intel the option is -i8, and for gfortran it’s > -fdefault-integer-8 > > The better option: > (ii) If you can use hdf5 1.8.8, or greater, then you can instead use > the F2003 features and pass in a pointer to h5dread, and not have to worry > about if the interface is present. An example for you to look at is > h5ex_d_rdwr_kind_F03.f90 at > https://www.hdfgroup.org/HDF5/examples/api18-fortran.html > > Scot > > On Aug 5, 2015, at 12:50 PM, Richa Mathur <[email protected]> wrote: > Hi Marc, > Thanks Sorry the problem is when I try to read in ( var_a ) H5T_STD_I64BE > ( not with H5T_STD_U64BE as stated earlier) I get numbers that donot > match the h5dump..However I am able to read in (var_b) > H5T_STD_U16BE correctly using( matches with > h5dump) H5T_NATIVE_INTEGER in the hdfread. Both the variables( var_a and > var_b) that I read in is are arrays declared as Integer in my fortran > program. and compiled on Bign Endian m/c. If I var_a as Integer*8 I get > Error: There is no specific subroutine for the generic 'h5dread_f' > Gompie > On Wed, Aug 5, 2015 at 12:24 PM, Miller, Mark C. <[email protected]> > wrote: > Have a look at these type definitions. . . > https://www.hdfgroup.org/HDF5/doc/RM/PredefDTypes.html > and this description of type conversion, in particular section 6.9 > https://www.hdfgroup.org/HDF5/doc/UG/UG_frame11Datatypes.html#Dtransfer > I suspect the problem may have to do with signed vs. UNsigned types here. > Also, regarding array dimension ordering, see this. . . > https://www.hdfgroup.org/HDF5/doc/fortran/index.html#FortranUserNotes > Mark > From: Hdf-forum <[email protected]> on behalf of Richa > Mathur <[email protected]> > Reply-To: HDF Users Discussion List <[email protected]> > Date: Tuesday, August 4, 2015 7:43 PM > To: HDF Users Discussion List <[email protected]> > Subject: Re: [Hdf-forum] h5dopen returns error > Thanks again Marc, I now dont get core dump > For H5T_STD_U16BE I am able to correctly read and the values that I > read match with the h5dump output. However for H5T_STD_U64BE > when I read using the H5T_NATIVE_INTEGER my output does not match with > h5dump. > I am using hdf5-1.8.7. If I use hdf5-1.8.13 it conflicts with the netcdf > -gfortran reader that is also a part of my code. > Is the array shape (12,22,26) indicated by the h5dump same as the one in > fortran or it gets inverted (26,22,12) ? > Gompie > On Tue, Aug 4, 2015 at 9:58 PM, Miller, Mark C. <[email protected]> wrote: > So, HDF5 will handle all the 'conversion' from whatever type is used to > store the data in the file to whatever type you are using to store the data > in memory. So, for mem_type arg to h5dread_f, all you need to do is inform > HDF5 what the datatype is of the buffer (data_out) you are reading into. > You have defined data_out as INTEGER in your programming language. So, I > suspect the right thing to do is. . . > CALL h5dread_f(dset_id,H5T_NATIVE_INTEGER, data_out, data_dims, > error) > That tells HDF5 that data_out is the caller's *native* integer type and it > will convert from whatever is in the file H5T_STD_I64BE (a 64 bit big > endianne integer) to that type automatically when it reads it. > Mark > From: Hdf-forum <[email protected]> on behalf of Richa > Mathur <[email protected]> > Reply-To: HDF Users Discussion List <[email protected]> > Date: Tuesday, August 4, 2015 6:43 PM > To: HDF Users Discussion List <[email protected]> > Subject: Re: [Hdf-forum] h5dopen returns error > Hi Marc, > Thanks again. That link is helpful. I was able to read in the data > directly using the path in the h5read_f. I use > INTEGER, dimension(12,96):: data_out > data_dims(1) = 12, data_dims(2) =96 > CALL h5dread_f(dset_id,H5T_STD_I64BE , data_out, data_dims, > error) as the h5dump indicates DATA_TYPE as H5T_STF_I64BE. > But it does not read properly ( gives core dump). I compile on a x86_64 > m/c gfortran. > GROUP "All_Data" { > > GROUP "AMS-SDR_All" { > DATASET "BeamTime" { > DATATYPE H5T_STD_I64BE > Gompie > > On Tue, Aug 4, 2015 at 4:24 PM, Miller, Mark C. <[email protected]> wrote: > Hmm. At this point, I think it may be more productive for everyone if you > would review the manual, > https://www.hdfgroup.org/HDF5/doc/RM/RM_H5Front.html, a bit more to be > sure you are attempting to use the HDF5 interface correctly. > In particular, your 2nd call to h5gopen_f is still specfying 'file_id' for > first arg when it should be specifing 'grp_id1'. AMS-SDR_All is a group > that 'lives in' the "All_Data" group (grp_id1), not the root group > (file_id). > Next, I am pretty certain you can just directly h5dopen_f > "All_Data/AMS-SDR_All/BeamTime" and avoid all the business with the groups. > Mark > From: Hdf-forum <[email protected]> on behalf of Richa > Mathur <[email protected]> > Reply-To: HDF Users Discussion List <[email protected]> > Date: Tuesday, August 4, 2015 1:06 PM > To: HDF Users Discussion List <[email protected]> > Subject: Re: [Hdf-forum] h5dopen returns error > Thanks Mark, Christian , the problem was case sensitivety and the first > level All_Data did not return any error. > Now since the path to BeamTime is All_Data/AMS-SDR_All/BeamTime I gave > CALL h5gopen_f(file_id,"All_Data" , grp_id1, grp_hdferr) > print *,"Open Group ID ID ERROR",grp_id1, grp_hdferr > CALL h5gopen_f(file_id,"AMS-SDR_All" , grp_id2, grp_hdferr) [should I > give the grp_id1 instead of file_id ?] > print *,"Open Group AMS-SDR ID ERROR",grp_id2, grp_hdferr ( here the > hdferr is -1) > CALL h5dopen_f(grp_id1,"BeamTime", dset_id, error) > Please help > On Tue, Aug 4, 2015 at 3:53 PM, Christian Oyarzun < > [email protected]> wrote: > It is case sensitive. it should be: > CALL h5gopen_f(file_id,"All_Data" , grp_id1, grp_hdferr) > not: > CALL h5gopen_f(file_id,"All_data" , grp_id1, grp_hdferr) > —Christian > > On Aug 4, 2015, at 3:45 PM, Richa Mathur <[email protected]> wrote: > Thanks Mark and Corey. > after CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file_id, error) > I gave CALL h5gopen_f(file_id,"All_data" , grp_id1, grp_hdferr) as the > first call to open the group and got grp_hdrerr as -1. > I guess there is an error opening the group All_data. > the h5dump -n output is > HDF5 > "SAMS_npp_d20150728_t2359556_e0000273_b19431_c20150729063134831043_nasa_ops.h5" > { > FILE_CONTENTS { > group / > group /All_Data > group /All_Data/AMS-SDR_All > dataset /All_Data/AMS-SDR_All/BeamTime > dataset /All_Data/AMS-SDR_All/BrightnessTemperature > dataset /All_Data/AMS-SDR_All/BrightnessTemperatureFactors > Any help.... > On Tue, Aug 4, 2015 at 3:11 PM, Miller, Mark C. <[email protected]> wrote: > yeah, agree. "BeamTime" is in group "All_Data". To get to BeamTime, you > have to H5Gopen the group and use the hid_t you get from that group in > place of 'file_id' arg in h5dopen. Don't forget to close the group (and > dataset) after you're done. > Mark > From: Hdf-forum <[email protected]> on behalf of Richa > Mathur <[email protected]> > Reply-To: HDF Users Discussion List <[email protected]> > Date: Tuesday, August 4, 2015 12:03 PM > To: HDF Users Discussion List <[email protected]> > Subject: Re: [Hdf-forum] h5dopen returns error > Thanks Mark !!! > Filename is complete. The file_id that is returned from hdfopen_f > (filename, H5F_ACC_RDONLY_F, file_id, error) is 16777217 and > error code is 0. > How do I find if 'BeamTime' is in root group or sub group ? > The H5Dump is as below I guess the BeamTime is inside a GROUP "All_Data", > GROUP "All_Data" { > GROUP "AMS-SDR_All" { > DATASET "BeamTime" { > DATATYPE H5T_STD_I64BE > DATASPACE SIMPLE { ( 12, 96 ) / ( H5S_UNLIMITED, > H5S_UNLIMITED ) } > DATA { > (0,0): 1816819231684734, 1816819231702752, 1816819231720770, > (0,3): 1816819231738788, 1816819231756806, 1816819231774824 > Gompie > On Tue, Aug 4, 2015 at 2:52 PM, Miller, Mark C. <[email protected]> wrote: > Are you sure you are getting a valid file_id back from the h5fopen_f call? > Are you by chance missing an extension on the filename such as > 'satfilename.h5' and is the dataset 'BeamTime' in the 'root group' of the > file or perhaps some sub-group? > Mark > From: Hdf-forum <[email protected]> on behalf of Richa > Mathur <[email protected]> > Reply-To: HDF Users Discussion List <[email protected]> > Date: Tuesday, August 4, 2015 10:42 AM > To: "[email protected]" <[email protected]> > Subject: [Hdf-forum] h5dopen returns error > Hi > I am trying to read a hdf5 file in fortran95 ( gfortran). Peice of code is > INTEGER(HID_T) :: file_id ! File identifier > INTEGER(HID_T) :: dset_id ! Dataset identifier > INTEGER :: error ! Error flag > INTEGER :: i, j > INTEGER, DIMENSION(96,12) :: dset_data, data_out ! Data buffers > INTEGER(HSIZE_T), DIMENSION(2) :: data_dims > filename='satfilename' > CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file_id, error) > CALL h5dopen_f(file_id,"BeamTime", dset_id, error) > print *,"Data Set(ATMS) ID ERROR",dset_id, error . > The h5dopen_f returns error as -1. > Later on when I use > CALL h5dread_f(dset_id, H5T_STD_I64BE, data_out, data_dims, error) > error -1 is returned from this function as well and I get incorrect > values of my variable in data_out. > Can you help > Gompie > The h5dump of my hdf5 file has > GROUP "All_Data" { > GROUP "AMS-SDR_All" { > DATASET "BeamTime" { > DATATYPE H5T_STD_I64BE > DATASPACE SIMPLE { ( 12, 96 ) / ( H5S_UNLIMITED, > H5S_UNLIMITED ) } > DATA { > (0,0): 1816819231684734, 1816819231702752, 1816819231720770, > (0,3): 1816819231738788, 1816819231756806, 1816819231774824 > _______________________________________________ > Hdf-forum is for HDF software users discussion. > [email protected] > http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org > Twitter: https://twitter.com/hdf5 > _______________________________________________ > Hdf-forum is for HDF software users discussion. > [email protected] > http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org > Twitter: https://twitter.com/hdf5 > _______________________________________________ > Hdf-forum is for HDF software users discussion. > [email protected] > http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org > Twitter: https://twitter.com/hdf5 > > _______________________________________________ > Hdf-forum is for HDF software users discussion. > [email protected] > http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org > Twitter: https://twitter.com/hdf5 > _______________________________________________ > Hdf-forum is for HDF software users discussion. > [email protected] > http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org > Twitter: https://twitter.com/hdf5 > _______________________________________________ > Hdf-forum is for HDF software users discussion. > [email protected] > http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org > Twitter: https://twitter.com/hdf5 > _______________________________________________ > Hdf-forum is for HDF software users discussion. > [email protected] > http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org > Twitter: https://twitter.com/hdf5 > _______________________________________________ > Hdf-forum is for HDF software users discussion. > [email protected] > http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org > Twitter: https://twitter.com/hdf5 > > > _______________________________________________ > Hdf-forum is for HDF software users discussion. > [email protected] > http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org > Twitter: https://twitter.com/hdf5 > > > _______________________________________________ > Hdf-forum is for HDF software users discussion. > [email protected] > http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org > Twitter: https://twitter.com/hdf5 >
_______________________________________________ Hdf-forum is for HDF software users discussion. [email protected] http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org Twitter: https://twitter.com/hdf5
