ERROR: 0032-184 on AIX5.3

Wei-keng Liao wkliao at ece.northwestern.edu
Wed Nov 22 14:42:13 CST 2006


In nf_test.F, there are 2 places MPI_Finalize() is called, lines 333 and
518. I can see ud_exit() is also called after MPI_Finalize.

So, simply putting MPI_Abort() in ud_exit_() is not a good idea. Checking 
the status first is a better one.

However, for exit status 0, calling MPI_Finalize() and then exit() in 
ud_exit() will result in MPI_Finalize() being called twice in nf_test.F,
in lines 335, 336, 523, 525 and 526 .

For exit status 1, line 336 and 526's ud_exit(1) will make MPI_Abort() 
be called after MPI_Finalize(), which is problematic.

My suggestion is to rewrite nf_test.F for lines 333-336 and lines 522-526. 
Such that those ud_exit(0 or 1) after MPI_Finalize() are replaced by 
exit(0 or 1) directly.

Wei-keng


On Wed, 22 Nov 2006, Robert Latham wrote:

> On Thu, Oct 26, 2006 at 12:01:04PM -0500, Wei-keng Liao wrote:
>>
>> We should use MPI_Abort() instead of calling exit() in the function
>> ud_exit_()  in test/nf_test/fortlib.c
>>
>> Same thing for ud_abort_() ?
>
> Ok, one refinement: if there was no error (passed in 0 to ud_exit),
> then we'll call MPI_Finalize() and then exit().  We will call
> MPI_Abort in ud_finalize only if there was a non-zero value passed in.
>
> ==rob
>
> -- 
> Rob Latham
> Mathematics and Computer Science Division    A215 0178 EA2D B059 8CDF
> Argonne National Lab, IL USA                 B29D F333 664A 4280 315B
>




More information about the parallel-netcdf mailing list