Article: Q114979
Product(s): Microsoft Fortran Compiler
Version(s): 1.0,1.0a
Operating System(s):
Keyword(s):
Last Modified: 02-NOV-1999
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft FORTRAN PowerStation for MS-DOS, version 1.0a
- Microsoft Fortran Powerstation 32 for Windows NT, version 1.0
-------------------------------------------------------------------------------
SYMPTOMS
========
For FORTRAN PowerStation 32, an access violation occurs and for FORTRAN
PowerStation, runtime error R6018 and an unexpected heap error occur when you
execute code where:
- There is an IF statement alone (not "IF... THEN...").
. - There is a call to a subroutine that takes a character argument in the IF
block.
- The actual argument passed to the subroutine is a character expression that
includes concatenation of characters.
- The IF expression is evaluated as ".FALSE" so that the call is not carried
out.
RESOLUTION
==========
Use one of the following to work around the problem:
- Use a block IF (that is, "IF... THEN ...") rather than an IF statement alone.
-or-
- Assign the character expression to a temporary variable instead of passing it
directly to the subroutine.
STATUS
======
Microsoft has confirmed this to be a bug in Microsoft FORTRAN PowerStation,
version 1.0a for MS-DOS and version 1.0 for Windows NT. We are researching this
problem and will post new information here in the Microsoft Knowledge Base as it
becomes available.
MORE INFORMATION
================
To reproduce the problem, compile and run the following sample code:
Sample Code
-----------
C compile options needed: none
CHARACTER*80 A
CHARACTER*3 end
LOGICAL L
end = 'End'
L = .FALSE.
C1 L = .TRUE.
A = 'This format bombs...'//end
C2 IF (L) print *, A
IF (L) print *, 'This format bombs...'//end
C3 IF (L) then
C3 print *, 'This format bombs...'//end
C3 end if
print *, end
END
To run the program without error:
- Uncomment C1.
-or-
- Comment out the single line "IF" and uncomment C2.
-or-
- Comment out the single line "IF" and uncomment C3.
Additional query words: 1.00 1.00a
======================================================================
Keywords :
Technology : kbAudDeveloper kbFortranSearch kbZNotKeyword2 kbZNotKeyword3 kbFORTRANPower32100NT kbFORTRANPower100aDOS
Version : :1.0,1.0a
=============================================================================