[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: additional question



> From address@hidden Wed Jan 26 14:12:37 1994
> Keywords: 199401270612.AA09650
> Date: Wed, 26 Jan 94 22:12:37 PST
> From: address@hidden (Art Mirin)
> To: address@hidden
> Subject: additional question
> Cc: address@hidden
> 
> An addition to my earlier note:     01/26/94
>  
> I'm a bit uncertain about the implementation of fill values and
> I've heard some confusing phenomena.  This might at least partially
> explain some of the problems to which I referred.
>  
> I have been told that unless you specify no-fill (ncsfil call), that
> when you write a variable, netCDF will fill the unwritten variables with
> a fill value (default being double infinity for real*8).  Thus in our 
> situation
> where we have several processors writing portions of the record, presumably
> something would have to be overwritten since the last processor to write
> would overwrite the stuff written by the other processors.  What's confusing
> is that both John Bolstad and Tim Williams report that often that has not
> happened and the file has been okay.
>  
> Because some of our variables are not written by any processor, we would still
> like to fill them.  So one strategy might be to have one processor go first
> and write with the fill option, and then the remaining processors each write
> with the no-fill option.
>  
> Questions are:
>  
> 1. Why might files without no-fill having been specified be okay?

I still don't know whether each of your processes has its own netcdf handle
or whether they are attempting to share one. In either case, the
results will be non-deterministic in the absence of code to negotiate
shared access. It is probably true that with fill turned off, you
have a lower probability of collision or getting out of sync.
  
> 2. Exactly when are the unwritten values filled - at the actual write,
> or some time earlier before the write when the file is set up?

When an ncvarput (or ncvarput1) writes to an area beyond the "current end
of file" for the first time, the space between the end and the new data 
is filled.

-glenn