Print

Print


ccdpack/main/ndf.c has a fortran/C pointer problem

/* Call the routine which does the calculations. */
         F77_CALL(ccd1_fra)( CHARACTER_ARG(type), INTEGER_ARG(&ndf1->nel),
                             (F77_POINTER_TYPE) &ndf1->data,
                             INTEGER_ARG(&nfrac), DOUBLE_ARG(afracs),
                             LOGICAL_ARG(&bad), DOUBLE_ARG(work),
                             DOUBLE_ARG(avals), INTEGER_ARG(status)
                             TRAIL_ARG(type) );

at line 2616. I've committed a possible fix:

* Call the routine which does the calculations. */
         F77_CALL(ccd1_fra)( CHARACTER_ARG(type), INTEGER_ARG(&ndf1->nel),
                             (F77_POINTER_TYPE) cnfFptr( &ndf1->data ),
                             INTEGER_ARG(&nfrac), DOUBLE_ARG(afracs),
                             LOGICAL_ARG(&bad), DOUBLE_ARG(work),
                             DOUBLE_ARG(avals), INTEGER_ARG(status)
                             TRAIL_ARG(type) );

but I haven't tested it (I'm assuming that ndf1->data refers to a mapped
data array so the pointer is registered already with CNF).

--
Tim Jenness
JAC software
http://www.jach.hawaii.edu/~timj