strerror

Wei-keng Liao wkliao at ece.northwestern.edu
Fri Jun 22 11:26:23 CDT 2007


The definition of function NF_CREATE() says "This function creates a new 
netCDF dataset, ...". Thus, a netCDF dataset is a file in netCDF file 
format.

A netCDF dataset can contain several objects, including variables and 
attributes. "Variable" has specially meaning in netCDF. NetCDF user 
guide says "Variables are used to store the bulk of the data in a netCDF 
dataset. A variable represents an array of values of the same type."

So, START argument in netCDF data functions is used by a "variable" in 
a netCDF dataset (file).

Wei-keng


On Fri, 22 Jun 2007, michael bane wrote:

> Folks, I've only just had the chance to think more about this. But it
> seems to me that 'start' isn't anything to do with the file (it's not
> been defined for the file)... I think what's meant (comparing with F77
> netcdf interface) is that:
>
> START
>        A vector of integers specifying the index in the variable where
>        the first of the data values will be written. {...}
>
> Michael
>
>
>
>
> On Wed, 2007-06-20 at 19:48 -0500, Wei-keng Liao wrote:
>> Argument "start" in nfmpi_put_vara_double() is used by the variable
>> defined in the file, not by the local array.
>>
>>
>> Wei-keng
>>
>> On Wed, 20 Jun 2007, michael bane wrote:
>>
>>> On Wed, 2007-06-20 at 12:48 -0500, Wei-keng Liao wrote:
>>>> Your val array passed in nfmpi_put_vara_double() should contain 51,52,...
>>>> for myPE == 1. This array will be used from index 1, 2, 3 ...
>>>>
>>>
>>> (This top posting is making this hard to read!)
>>>
>>> If my val array is val(i)=i, for i=1,100
>>> and PE#0 has start=1, count=50
>>> and PE#1 has start=51, count=50
>>> then I do not follow why PE#1 is even looking at val(j) j=1,2,3...
>>> Surely it should print val(k), k=51,52,...
>>>
>>>
>>>>
>>>>
>>>> On Wed, 20 Jun 2007, michael bane wrote:
>>>>
>>>>> On Wed, 2007-06-20 at 10:30 -0500, Wei-keng Liao wrote:
>>>>>> The default I/O mode for pnetcdf is collective, to switch to independent
>>>>>> mode, wrap the indep I/O calls by
>>>>>>          stat = nfmpi_begin_indep_data(ncfileID)   and
>>>>>>          stat = nfmpi_end_indep_data(ncfileID)
>>>>>
>>>>> thanks!
>>>>>
>>>>>> I don't know the answer to the error messages between F77 and F90.
>>>>>> I also wonder if they are defined the same in NetCDF (the serial version).
>>>>>
>>>>> f77 and f90 seem the same for those error msgs I've seen (eg -35 =
>>>>> 'netCDF file exists && NC_NOCLOBBER')
>>>>>
>>>>> But returning to my example (full main Fortran s/prog unit below), I
>>>>> can't see why I'm not getting series 1,2,..,100 in the output file
>>>> (last
>>>>> part of the code, the /tmp/newFile_p2.ncf o/p file), but rather on 2 PEs
>>>>> both processes seem to be writing 1,2,..50 so I'm guessing I'm missing
>>>>> something (my impression was that each PE would write val(start),
>>>>> val(start+1) for its local value of start)
>>>>>
>>>>> also attached is /tmp/out which is output from
>>>>> ~/Fortran/MPI/parallel_netCDF$ rm /tmp/new*ncf && prun -B3 -l "%m%n:
>>>>> rank %g: " -n 2 -p login ./speed_1d_f90  > /tmp/out 2>&1
>>>>>
>>>>> cheers, michael
>>>>> ---
>>>>>
>>>>
>>>
> -- 
> Michael Bane
> Centre for Atmospheric Science
> University of Manchester, U.K.
> http://cloudbase.phy.umist.ac.uk/people/bane/bane.htm
>




More information about the parallel-netcdf mailing list