Yes, it seems like it should be 64 bits when using -tp k8-64 regardless of the size of an INTEGER data type.
On the FORTRAN side, the pointer is declared:
pointer (pImg, fImg)
Then memory is malloc’d, and the pointer is passed to a C function.
When NOT specifying -i8, from FORTRAN, the pointer looks like:
pImg pointer: -17889452272 (printed with write(,) 'pImg pointer: ', pImg
From the C function, the pointer looks like:
CFuncL pointer is 0xffffffff96972010 (printed with 0x%p)
When I compile the FORTRAN with -i8, I get:
From the FORTRAN side:
pImg pointer: 182894141456
From the C side:
CFunc: pointer is 0x2a98172010
and everything works (with -i8). So, it leads me to think that the Cray pointer is being created as the size of an INTEGER, which is 4 bytes unless -i8 is specified.
Is this a bug, or am I doing something else wrong?