ID: Q86927
5.00 5.10 1.00 1.00a | 5.00 5.10 | 1.00
MS-DOS | OS/2 | WINDOWS NT
kbprg
The information in this article applies to:
Using the Microsoft FORTRAN compiler to compile a program that contains a syntax error in a FORMAT statement can cause the compiler to halt the machine under MS-DOS or to generate a protection violation under OS/2.
With FORTRAN PowerStation, the possible symptoms include:
The specific syntax error is caused by a comma at the beginning of a FORMAT statement, followed by a character string constant that contains large integer numbers. The real problem is having a huge number in a FORMAT statement. The out-of-place comma causes the compiler to parse the format as if the first single quotation mark isn't there. Normally, the compiler will determine at the end of the parse that the comma shouldn't be there, and the compiler will issue an error. In this case, however, the machine halts before the error output. Blanks in numbers are ignored. Having a huge number in the format causes the same problem (sample code 2). Because extremely large numbers do not make sense in FORMAT statements, the expected source of the error is the comma, which causes the string to be parsed as a number.
Correcting the syntax error eliminates the problem.
Microsoft has confirmed this to be a bug in the products listed above. This problem was corrected in Microsoft FORTRAN PowerStation 32, version 4.0.
The following code can be used to reproduce the problem.
open(1,file='data')
write(1,10)
10 format(,'110000 115000 120000') ! Causes machine halt
end
10 format(100000000000000000) ! Causes machine halt
end
This code illustrates the solution.
open(1,file='data')
write(1,10)
10 format('110000 115000 120000') ! Correct syntax
end
Additional reference words: 1.00 5.00 5.10
KBCategory: kbprg
KBSubcategory: FORTLngIss
Keywords : kberrmsg kbFortranPS kbLangFortran
Version : 5.00 5.10 1.00 1.00a | 5.00 5.10
Platform : MS-DOS NT OS/2 WINDOWS
Solution Type : kbfix
Last Reviewed: May 23, 1998