PnetCDF Fortran Binding Issues

William Gropp gropp at mcs.anl.gov
Fri Aug 8 20:28:05 CDT 2003


At 09:32 AM 8/8/2003 -0500, Jianwei Li wrote:


>I'm sorry, maybe I didn't make it clear enough.
>but now things are a little bit messed up:)

Fixed.  Thank goodness we generate these; its easier to make uniform 
changes this way.

Bill


>There are 4 kinds of vectors involved:
>1. *dimidp: that's the variable dimensionID list.
>         It just needs to reverse order, no +/- 1.
>         It's only involved in def_var, inq_var, inq_vardimid.
>2. index[]/start[]: that's the coordinates of array element.
>         It needs +/- 1, as well as to reverse order.
>         It's involved in put/get_var1, put/get_vara, put/get_vars.
>3. count[]: that's the edge lengths along each dimension.
>         It needs to reverse order, no +/- 1.
>         It's involved in put/get_vara, put/get_vars.
>4. stride[]: that's the sampling interval along each dimension.
>         It also only needs to reverse order, no +/- 1
>         It's only involved in put/get_vars.
>
>I think I made it distinct in the victim function list .txt file.
>So they are a little bit different:)
>Is it a problem to do it automatically?
>
>Jianwei
>
> > >It's great that the conversion was applied automatically!
> > >The Fortran binding updates look perfect except that the
> > >indices/coordinates need to substract 1 from the Fortran
> > >indices/coordinates to get the C ones, while counts and
> > >strides don't. So in the put/get_var1, put/get_vara, and
> > >put/get_vars binding, I think the code segment
> > >
> > >     if (ln > 0) {
> > >         int li;
> > >         l3 = (size_t *)malloc( ln * sizeof(size_t) );
> > >         for (li=0; li<ln; li++)
> > >             l3[li] = v3[ln-1-li];
> > >     }
> > >
> > >need to be changed to:
> > >
> > >     if (ln > 0) {
> > >         int li;
> > >         l3 = (size_t *)malloc( ln * sizeof(size_t) );
> > >         for (li=0; li<ln; li++)
> > >             l3[li] = v3[ln-1-li]-1;
> > >     }
> > >
> > >as I indicated in my previous emails.
> >
> > Done.  I also added one to the index where the value is an output value.
> >
> > Bill
> >




More information about the parallel-netcdf mailing list