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

[netCDF #PXF-543549]: On nf90_put_var



Sidd,

> It did help a lot. I appreciate you getting to the bottom of it by

> writing code and testing it.
> We will test all the platforms that we care about and take actions
> accordingly.

I wonder if you would mind if I forward to you what may be a closely 
related bug from Thomas Jahns, a developer at the Deutsches Klimarechenzentrum 
in Hamburg.  He has a small demonstration of the problem that I have
used to reproduce what he reports as a hanging process, and it appears
that his calls are correct.  I confused his question with yours and
sent him a similar answer, but now it appears that my determining that
count=0 was designed to work and did work in a simple parallel test didn't 
answer his question, which was more specific.

I'll forward his question and the small test program in the next email.

--Russ

> On 8/28/2012 4:09 PM, Unidata netCDF Support wrote:
> > Sidd,
> >
> >>> Nobody around here could answer me definitively so I am asking directly
> >>> to you.
> >>> Is it legal to set one of the dimension of 'count' argument be to 0 in
> >>> nf90_put_var ?
> >>> This could possibly the case in case of parallel write when some tasks
> >>> do not have anything to write at a particular instance.
> >> I just added a test for this to the test program nf_test/f90tst_fill2, and
> >> it worked fine, not writing anything and returning with no error.  But that
> >> wasn't a parallel program, so the situation may be different (though I 
> >> don't
> >> think it should be different) when invoking a parallel write.
> >>
> >> However, I'm having trouble building and running a parallel test that does
> >> the same thing, so I can't answer the question yet, unfortunately ...
> > I just got the test working, and it completed successfully, so having a zero
> > component in count with a parallel write using nc_put_var_int() seems to 
> > work OK.
> > This was with in the test code in nc_test4/tst_parallel.c, in which I 
> > inserted
> > the following call in a loop after line 136:
> >
> >         /* See if count dimension == 0 returns error */
> >         count_save = count[0];
> >         count[0] = 0;
> >         if (nc_put_vara_int(ncid, v1id, start, count, slab_data)) ERR;
> >         count[0] = count_save ;
> >
> > I used netCDF-4 parallel I/O rather than netCDF-3 parallel-netCDF, in case 
> > that
> > makes any difference ...
> >
> > --Russ
> >
> > Russ Rew                                         UCAR Unidata Program
> > address@hidden                      http://www.unidata.ucar.edu
> >
> >
> >
> > Ticket Details
> > ===================
> > Ticket ID: PXF-543549
> > Department: Support netCDF
> > Priority: Normal
> > Status: Closed
> >
> 
> 
Russ Rew                                         UCAR Unidata Program
address@hidden                      http://www.unidata.ucar.edu



Ticket Details
===================
Ticket ID: PXF-543549
Department: Support netCDF
Priority: Normal
Status: Closed