On Fri, Dec 06, 2019 at 06:12:28PM +0100, Patrick Dupre wrote:
Actually, this is what I have:
in C
double complex a, b, z
int lnchf ip
out = conhyp_ (&a, &b, &z, &lnchf, &ip) ;
The above isn't very close to C, e.g. ; is missing at the end of first line,
, and ; are missing around ip on the second line and out is not declared.
More importantly, you haven't shown the declaration of conhyp_ nor
state which architecture this is on. For complex I'm just guessing you have
#include <complex.h>.
In Fortran:
FUNCTION CONHYP (A,B,Z,LNCHF,IP)
INTEGER LNCHF,IP
COMPLEX*16 CHGF,A,B,Z,CONHYP
And what I get is
A= b, B=z (the other values are wrong)
It means that the first variable (here a) is just lost
How can I fix this?
If the arguments are shifted, then most likely the first argument is a
hidden result. It really depends on which architecture it is and how
_Complex double is returned there.
Jakub