In 64-bit SPARC environments, COMPLEX values are returned in floating-point registers: COMPLEX and DOUBLE COMPLEX in %f0 and %f1, and COMPLEX*32 in %f0, %f1, %f2, and %f3. For 64–bit SPARC, a C function returning a structure whose fields are all floating-point types will return the structure in the floating-point registers if at most 4 such registers are needed to do so.The general pattern for the Fortran function and its corresponding C function on 64–bit SPARC platforms is:
Fortran function |
C function |
---|---|
COMPLEX FUNCTION CF(a1, a2, ..., an) |
struct {float r,i;} cf_ (a1, a2, ..., an) |
Table 11–14 Function Returning COMPLEX Data (64–bit SPARC)
Fortran calls C |
|
---|---|
|
|
C calls Fortran |
|
|