- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Message Edited by tim18 on 09-11-2005 06:13 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
On the 64-bit platforms, Itanium and Intel EM64T, running Windows Server 2003 or (for EM64T), the x64 editions of Windows, the virtual address space available is MUCH larger. How large depends on a combination of RAM and swapfile. But you're STILL limited to 2GB for static code and data (eg. COMMON or locally declared arrays,) due to the design of the Microsoft object language format. You can use dynamic allocation to use the increased space.
I would encourage Fortran programmers to move away from static allocation of large arrays for really big problems. ALLOCATABLE is easy to use, though in some contexts performance may suffer a bit.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Please keep in mind my note that even on the 64-bit versions of Windows, static code and data is limited to 2GB. So even on EM64T systems you cannot have a 4GB array in COMMON. This is a Windows design restriction, not a compiler limit.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
On the 64-bit operating systems, you're wide open. I assume by "XP Pro-EM64T" you mean Windows XP Professional x64 Edition.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I would like share some ofmy exprience of conversion of an application using COMMON blocks to using allocatable arrays. The conversion is relatively trivial. In my case it involved ~700 program modules and 100's of common blocks.
You might want to try it first by converting only portions of your code at a time in the following manner:
1) create a file for use as a FORTRAN Module e.g.
Module_Common.f90
This file contains:
! Module_Common.f90
module Module_Common
real(8), pointer :: DVF(:)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I would like share some ofmy exprience of conversion of an application using COMMON blocks to using allocatable arrays. The conversion is relatively trivial. In my case it involved ~700 program modules and 100's of common blocks.
You might want to try it first by converting only portions of your code at a time in the following manner:
1) create a file for use as a FORTRAN Module e.g.
Module_Common.f90
This file contains:
! Module_Common.f90
module Module_Common
real(8), pointer :: DVF(:)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I would like share some ofmy exprience of conversion of an application using COMMON blocks to using allocatable arrays. The conversion is relatively trivial. In my case it involved ~700 program modules and 100's of common blocks.
You might want to try it first by converting only portions of your code at a time in the following manner:
1) create a file for use as a FORTRAN Module e.g.
Module_Common.f90
This file contains:
! Module_Common.f90
module Module_Common
real(8), pointer :: DVF(:)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I would like share some ofmy exprience of conversion of an application using COMMON blocks to using allocatable arrays. The conversion is relatively trivial. In my case it involved ~700 program modules and 100's of common blocks.
You might want to try it first by converting only portions of your code at a time in the following manner:
1) create a file for use as a FORTRAN Module e.g.
Module_Common.f90
This file contains:
! Module_Common.f90
module Module_Common
real(8), pointer :: DVF(:)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I would like share some ofmy exprience of conversion of an application using COMMON blocks to using allocatable arrays. The conversion is relatively trivial. In my case it involved ~700 program modules and 100's of common blocks.
You might want to try it first by converting only portions of your code at a time in the following manner:
1) create a file for use as a FORTRAN Module e.g.
Module_Common.f90
This file contains:
! Module_Common.f90
module Module_Common
real(8), pointer :: DVF(:)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I would like share some ofmy exprience of conversion of an application using COMMON blocks to using allocatable arrays. The conversion is relatively trivial. In my case it involved ~700 program modules and 100's of common blocks.
You might want to try it first by converting only portions of your code at a time in the following manner:
1) create a file for use as a FORTRAN Module e.g.
Module_Common.f90
This file contains:
! Module_Common.f90 module Module_Common real(8), pointer :: DVF(:) end Module_Common
iSizeYouWant = int(60e6) allocate(DVF(iSizeYouWant))
Message Edited by sblionel on 09-19-2005 05:22 PM

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