On Thu, 23 Feb 2006, Toon Moene wrote:

The following code works on my 0.5 Gbyte RAM / 1.5 Gbyte SWAP Athlon 64 laptop with gfortran (the new Fortran 95 GNU Fortran), albeit horribly slowly:

Dutifully saved.  We're talking about getting one very large memory
machine -- maybe 16 GB -- to be able to prototype and resolve these very
issues.

   Thanks!

      rgb


     INTEGER*8 I, NSIZE
     PARAMETER (NSIZE = 100 000 000_8)
     DIMENSION A(3*NSIZE), A1(NSIZE), A2(NSIZE), A3(NSIZE)
     EQUIVALENCE (A(        1), A1(1))
     EQUIVALENCE (A(  NSIZE+1), A2(1))
     EQUIVALENCE (A(2*NSIZE+1), A3(1))
     DO I = 1, NSIZE
        A1(I) = 0.0
        A2(I) = 0.0
        A3(I) = 0.0
     ENDDO
     DO I = 1, 3*NSIZE
        A(I) = I
     ENDDO
     DO I = 1, NSIZE
        IF (A1(I) .NE. A(        I)) CALL ABORT
        IF (A2(I) .NE. A(  NSIZE+I)) CALL ABORT
        IF (A3(I) .NE. A(2*NSIZE+I)) CALL ABORT
     ENDDO
     DO I = 1, NSIZE
        A1(I) = 0.0
        A2(I) = 0.0
        A3(I) = 0.0
     ENDDO
     CALL SUB(A, 3*NSIZE)
     DO I = 1, NSIZE
        IF (A1(I) .NE. A(        I)) CALL ABORT
        IF (A2(I) .NE. A(  NSIZE+I)) CALL ABORT
        IF (A3(I) .NE. A(2*NSIZE+I)) CALL ABORT
     ENDDO
     END
     SUBROUTINE SUB(A, N)
     DIMENSION A(N)
     DO I = 1, N
        A(I) = I
     ENDDO
     END

This is the compiler that will be in GCC 4.1 (which will be out in about a week). Perhaps you can jazz this up by increasing NSIZE so that you go over the 4 Gbyte limit on a machine with enough memory ...

Hope this helps,



--
Robert G. Brown                        http://www.phy.duke.edu/~rgb/
Duke University Dept. of Physics, Box 90305
Durham, N.C. 27708-0305
Phone: 1-919-660-2567  Fax: 919-660-2525     email:[EMAIL PROTECTED]


_______________________________________________
Beowulf mailing list, Beowulf@beowulf.org
To change your subscription (digest mode or unsubscribe) visit 
http://www.beowulf.org/mailman/listinfo/beowulf

Reply via email to