The information in this article applies to:
SYMPTOMSWhen using the Microsoft FORTRAN Compiler version 4.1, 5.0, or 5.1, if FORTRAN code attempts to access a C float function, incorrect results may be returned from the C function. CAUSEFORTRAN expects a DOUBLE PRECISION number to be returned from both REAL and DOUBLE PRECISION functions. C functions of type float return only 4 bytes, and the FORTRAN run-time incorrectly interprets the value stored in the floating accumulator (__fac) as an 8-byte number. RESOLUTIONThis problem can be avoided by declaring the C function as type double, or by declaring the C function with the _fortran attribute. MORE INFORMATIONSample Code #1The following code reproduces the problem:FORTRAN Code
C Code
Output: Incorrect Results Generated Here2.000000 Sample Code #2The following solution declares the C function with the _fortran attribute, and generates the expected output:FORTRAN Code
C Code
Output2.000000 Additional query words: 5.00 5.10 mixed nofps language
Keywords : |
Last Reviewed: November 2, 1999 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |