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
NOTE: All email exchanges with Unidata User Support are recorded in the Unidata inquiry tracking system and then made publicly available through the web. If you do not want to have your interactions made available in this way, you must let us know in each email you send to us.