David Robertson <robertson@xxxxxxxxxxxxxxxxxx> writes:
> >> Hi,
> >>
>>> I am having a problem with OpenMPI and NetCDF4 Fortran 90 parallel IO.
>>> I'm fairly certain the problem is with NetCDF and not HDF5 because 'make
>>> check' for HDF5 tests the C AND Fortran 90 parallel IO and all tests
>>> pass. I have traced this problem extensively in TotalView and it seems
>>> to stem from the fact that MPI_COMM_WORLD is zero in the Fortran 90
>>> interface for OpenMPI. In contrast, MPICH2 Fortran 90 interface sets
>>> MPI_COMM_WORLD to 1140850688.
>>
>> David,
>>
>> How are you specifying MPI_COMM_WORLD? Are you defining your own
>> constant?
>>
>> In my case I find a fortran header file called mpif.h, which I include
>> in my fortran program to get a definition for MPI_COMM_WORLD...
> >
> > Ed
>
> Ed,
>
> I am not defining my own constant, I'm using the MPI_COMM_WORLD
> parameter from OpenMPI's mpif.h. That's how MPI_COMM_WORLD gets set to 0
> instead of 1140850688. I have been interacting with the OpenMPI group
> and they have said that MPI_COMM_WORLD for the Fortran interface is
> "hard-wired" to be zero.
>
> Is there a reason the Fortran 90 interface for NetCDF-4 is not using
> HDF5's Fortran 90 interface?
>
Yes, the netcdf-4 library only uses the HDF5 C API for everything.
The netCDF-4 F90 API is just a layer on top of the netCDF C API. That
is, the netCDF library is not written in F90. It is written in C. For
this reason it does not use the F90 HDF5 layer.
Thanks,
Ed
--
Ed Hartnett -- ed@xxxxxxxxxxxxxxxx