- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am trying to run a program on Windows XP x64. The code already runs on ia32 (on a PC) and ia64 (on a SGI Altix Linux machine).
I am using Intel VF 11.1.060 64 bit compiler with the same compile options as I have used for the ia32 compilation.
The program compilies but doesn't run properly.
One issue I noticed is that the random # generator "rand()" only works if I define it as a single precision variable. (It ran okay when I defined it real*8 for the ia32 compiler).
Does anyone know the reason for this?
Are there specific compilation options that should be set to help the code adjust to the 64-bit compilation?
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You should have
USE ifport
to maintain correct interface for ifport subroutines (which aren't standard Fortran).
Fortran standard intrinsic random_number should adjust automatically to your declared data type.
Only if you use a function in 32-bit compilation with /arch:IA32 (x87 code) can you gloss over the difference between single and double precision function return values.
USE ifport
to maintain correct interface for ifport subroutines (which aren't standard Fortran).
Fortran standard intrinsic random_number should adjust automatically to your declared data type.
Only if you use a function in 32-bit compilation with /arch:IA32 (x87 code) can you gloss over the difference between single and double precision function return values.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page