I am in the process of converting a large "solution" with 95 projects from a Win32 build under Windows XP to Windows 7. The first step was to perform a Win32 build on the same solution but on a Windows 7 machine. That went without a hitch. However, looking ahead, we would also like to do an X64 build of the same software. There were run-time errors when I tried this. The ones I have noted so far - and which have so far stopped me cold - feature fixed record length, binary direct access files. The error message is Severe (37) "Inconsistent record length in unit xxx". When I look up severe (37), I read "An attempt was made to open a direct access file without specifying a record length"
My first thought was that the 64 bit words were overflowing. However, in one write statement where this comes up, the firxed record length is set to 7 and what is written is an integer, a CHARACTER(6) variable followed by three reals. The default KIND's for INTEGER and REAL declarations were unchanged from 4 for the X64 build. So there is room in the record for the content written. (And I stress that it works fine with the Win 32 build on the same machine).
I haven't noted this issue coming up for anyone else. Has the compiler simply become stricter in identifying the length of a record being written? By my reckoning, there is a little emply space at the end of the one I describe here. But that has never been an issue before.