Re: Windows array allocation problem



"Steve Lionel" <steve.lionel@xxxxxxxxx> wrote in message
news:1191077111.204423.325440@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

On Sep 29, 10:20 am, "James Van Buskirk" <not_va...@xxxxxxxxxxx>
wrote:

Windows does this just to torture you. If you can switch to x64, the
problems may abate temporarily:

Do keep in mind that Windows still has a 2 GB limit for static code
and data. This means that you cannot simply declare a large array in
common or as a local array on an x64 system. Dynamic allocation is the
only way to exceed the 2 GB boundary.

Issues like this are why I was a bit qualified in my assessment of
my suggested fix. Am I correct in assuming that ifort is smart enough to
use 64-bit arithmetic when computing array offsets, even when all the
bounds fit in 32 bits and all the indices are given as 32-bit values?

What happens when a bound gets over 32 bits (I guess that's > 2**31-1,
right?) I suppose the bound given in the ALLOCATE statment has to
be a 64-bit variable of constant. Does this mean that any subsequent
array reference has to have a 64-bit index or array subscript triplet?
Can an automatic array go over the top? Can an array expression do
this? Can an elemental procedure reference do this? What happens
when an assumed shape array gets passed a big actual argument? I
suppose that loops that use 32-bit indices would have problems, but
what about loopless array syntax? What kind of problems have users
reported when trying to get big arrays working in a large, old program?
Do you have a Dr. Fortran article that covers these issues?

--
write(*,*) transfer((/17.392111325966148d0,6.5794487871554595D-85, &
6.0134700243160014d-154/),(/'x'/)); end


.



Relevant Pages

  • Re: [PATCH 3/3] tracing/function-return-tracer: add the overrun field
    ... That way we decouple its size from any kernel stack size limits. ... it is better if you move the array from the thread info to ... tasks currently running) as the tracer is turned on/off. ... Would be nice to have the dynamic allocation straight away - the ...
    (Linux-Kernel)
  • Re: Pointer-to-pointer-to-pointer question
    ... > The code example below shows the dynamic allocation of a 2D array. ... > must admit that it took quite a while for me to get there (I already ... If you follow Tobias's advice, ...
    (comp.lang.c)
  • Re: Pointer-to-pointer-to-pointer question
    ... > The code example below shows the dynamic allocation of a 2D array. ... I've seen code that did not have proper braces ... Please use a good client. ...
    (comp.lang.c)
  • Re: Pointer-to-pointer-to-pointer question
    ... Jonathan Burd wrote: ... >> The code example below shows the dynamic allocation of a 2D array. ... Properly placing braces can save you a lot of time. ...
    (comp.lang.c)
  • Re: Ada tasking question
    ... Randy Brukardt wrote: ... First of all you don't need to bother with the nitty gritty details of dynamic allocation yourself. ... Secondly and perhaps most important Ada will handle the synchronization of task termination for you automatically. ... It will not allow the array to go out of scope before all the tasks are completed. ...
    (comp.lang.ada)