HI Wei-keng,<br><br>Thank you - that example was just what I needed.  (That and the pnetcdf update)<br><br>I think that you have an error in your flex_f.F example though - although arrays start at 1 in fortran <br>and start and count are 1 based wrt calling pnetcdf, the start array for calling mpi_type_create_subarray<br>
should be 0 based so I think that<br><br> array_of_starts = ghost_len   not ghost_len+1 as you've written.   <br><br>Jim<br><br><div class="gmail_quote">On Tue, Feb 12, 2013 at 1:13 PM, Wei-keng Liao <span dir="ltr"><<a href="mailto:wkliao@ece.northwestern.edu" target="_blank">wkliao@ece.northwestern.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi, Jim,<br>
<br>
I just now fixed a bug that is related to using the flexible APIs.<br>
Please see r1159. However, the error message you got does not seem<br>
to relate to this bug. Anyway, if you figure out the MPI derived data<br>
type issue, you will still encounter this bug. So, please apply this<br>
patch.<br>
<br>
I also added 2 new examples (C and Fortran) for using the flexible APIs.<br>
See examples/flex.c and examples/flex_f.F They both call<br>
MPI_Type_create_subarray() to create their buffer type.<br>
Please note that in Fortran, the array indices for MPI functions start with 1.<br>
<span class="HOEnZb"><font color="#888888"><br>
Wei-keng<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Feb 12, 2013, at 1:47 PM, Jim Edwards wrote:<br>
<br>
> Hi Rob,<br>
><br>
> I want to make sure that my mpi datatype is correct so I am working on an mpi-io binary version of the<br>
> same case, once I have that working I'll try pnetcdf again and if it's still a problem I'll send you the<br>
> datatype dump.<br>
><br>
> - Jim<br>
><br>
> On Tue, Feb 12, 2013 at 9:26 AM, Rob Latham <<a href="mailto:robl@mcs.anl.gov">robl@mcs.anl.gov</a>> wrote:<br>
> On Tue, Feb 12, 2013 at 08:49:20AM -0700, Jim Edwards wrote:<br>
> > Are there any limitations to the data type passed to nfmpi_iput_vara?   I<br>
> > am trying to create a<br>
> > type using mpi_type_create_subarray and pass it to nfmpi_iput_vara and I am<br>
> > getting an error<br>
> > with traceback:<br>
> ><br>
> > #10 0x00002b06f5f90ce3 in PMPI_Pack () from<br>
> > /opt/ibmhpc/pe1209/mpich2/gnu/lib64/libmpich.so.3<br>
> > #11 0x00000000005c9d2f in ncmpii_data_repack ()<br>
> > #12 0x00000000005b4532 in ncmpii_igetput_varm ()<br>
> > #13 0x00000000005969ed in ncmpi_iput_vara ()<br>
> ><br>
> ><br>
> > Is this a possible bug in parallel-netcdf or are my assumptions about usage<br>
> > incorrect?<br>
><br>
> Wow, an error from MPI_Pack... and one that causes a traceback.<br>
><br>
> and it's IBM's MPI_Pack, sort of, by way of MPICH.<br>
><br>
> So, you've caused some surprise here.<br>
><br>
> Can you share the type with us?  Or, if it's hard to capture (because<br>
> it's generated algorithmically) you might, depending on how IBM built<br>
> their MPI, have access to the c routine MPIDU_Datatype_debug:<br>
><br>
>  MPIDU_Datatype_debug(MPI_Datatype type, int array_ct)<br>
><br>
> (128 should be big enough for array_ct)<br>
><br>
> and that should spit out a bunch of information about the datatype:<br>
> enough that I could re-create it and see if other MPI implementations<br>
> choke when packing it.<br>
><br>
> ==rob<br>
><br>
> --<br>
> Rob Latham<br>
> Mathematics and Computer Science Division<br>
> Argonne National Lab, IL USA<br>
><br>
><br>
><br>
> --<br>
> Jim Edwards<br>
><br>
> CESM Software Engineering Group<br>
> National Center for Atmospheric Research<br>
> Boulder, CO<br>
> 303-497-1842<br>
<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><pre>Jim Edwards<br><br><br></pre>