PRB: F3606, F3607 Errors Porting FORTRAN Code From DEC VAXLast reviewed: December 11, 1995Article ID: Q49467 |
The information in this article applies to:
SYMPTOMSDuring the process of compiling an application, the compiler generates the following messages:
FORTRAN 5.x
F3606: formal argument 1 : type mismatch F3607: formal argument 1 : length mismatch FORTRAN PowerStation
F4016: formal argument 1 : type mismatch F4017: formal argument 1 : length mismatch FORTRAN PowerStation 32, version 4.0
warning FOR4639: inconsistent data type for argument 1 in call to procedure warning FOR4227: argument (number 1) in reference to procedure from procedure main incorrect: has the wrong data type CAUSEIn a FORTRAN application developed in the DEC VAX environment, it is not necessary to be consistent when passing actual arguments to a subprogram. However, the Microsoft FORTRAN compiler detects the inconsistency and generates these errors.
RESOLUTIONThe errors are recoverable errors; the compiler produces an OBJ file after reporting the errors. You can either choose to ignore the errors or to modify the source code to be consistent when it passes formal arguments.
MORE INFORMATIONThe following code example demonstrates this problem.
Sample CodeC Compiler options needed: None
INTEGER*4 INTX LOGICAL*1 LOGIC CALL SUB1(LOGIC) CALL SUB1(INTX) ENDC SUBROUTINE SUB1(INTY) INTEGER*4 INTY ENDWhen the compiler processes this code, it reserves 4 bytes for the INTX variable and 1 byte for LOGIC. When it processes the first call to SUB1, it assumes that the formal argument requires only 1 byte. Then, when it processes the second call to SUB1, it determines that the formal argument requires 4 bytes and produces the errors. In this case, both the length and the type of the formal argument changed between calls.
|
Additional reference words: 4.00 4.01 4.10 5.00 5.10
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |