Malcolm,
looked at the %LOC code in FIGARO as promised, but I've moved this
conversation back to stardev, as I now think FIGARO is fundamentally
flawed for working under 64bit, that is cannot be fixed without
significant effort.
The problem seems to be that FIGARO uses a non-standard trick when dealing
with allocated memory, that essentially means that we must carry the
offset between two memory addresses in a Fortran INTEGER. This is the same
problem as carrying a single memory address (wishful thinking aside).
(Background for other interested parties, see all the DYNAMIC_MEMORY stuff
in FIGARO, in particular use of fda/dyn_element.f).
The only solutions I can think of for this are to change FIGARO to use
%VAL and CNF_PVAL instead of DYN_ELEMENT throughout, or only compile under
AMD64 using -m32...
I guess the immediate question is, how is this going to impact JAC? Will
FIGARO be used under AMD64 (I assume the SuperWASP chaps can move to
KAPPA).
Cheers,
Peter.
|