Article View: comp.lang.fortran
Article #4451Re: Fast I/O
From: Steve Lionel
Date: Thu, 21 Jan 1993 14:15
Date: Thu, 21 Jan 1993 14:15
32 lines
1630 bytes
1630 bytes
In article <1993Jan21.081105.4047@molene.ifremer.fr>, molagnon@ditigo.ifremer.fr (Michel Olagnon) writes: |> |>Many Fortran compilers are not efficient on I/O with implied DO loops. |>Replacing |> write (lu) (a (j), j=1,n) |>with |> call fstwrt (lu, a, n) |> . |> . |> subroutine fstwrt (lu, a, n) |> double precision a (n) |> write (lu) a |> return |>usually gives dramatic improvement. |> |>I have a follow-up question : why don't compilers execute this optimization ? |> Digital's VAX FORTRAN does. It also optimizes some more complex implied DO-loops, including those with non-unity strides and with expressions in the array subscript, as long as it can tell that the stride is constant. If the stride is 1, the I/O operation occurs directly from the array memory rather than being copied to a buffer. -- Steve Lionel lionel@quark.enet.dec.com SDT Languages Group Digital Equipment Corporation 110 Spit Brook Road Nashua, NH 03062
Technical Details
Message-ID:
<1993Jan21.141503.22670@dbased.nuo.dec.com>Path:
arc1-ca.pugleaf.net!sparky!uunet!haven.umd.edu!decuac!pa.dec.com!engage.pko.dec.com!e2big.mko.dec.com!dbased.nuo.dec.com!quark.enet.dec.com!lionelReferences:
<1jhqkhINNno3@bigboote.WPI.EDU> <1993Jan21.081105.4047@molene.ifremer.fr>Show Full Headers
Complete Article Headers
Newsgroups: comp.lang.fortran Path: arc1-ca.pugleaf.net!sparky!uunet!haven.umd.edu!decuac!pa.dec.com!engage.pko.dec.com!e2big.mko.dec.com!dbased.nuo.dec.com!quark.enet.dec.com!lionel From: lionel@quark.enet.dec.com (Steve Lionel) Subject: Re: Fast I/O Message-ID: <1993Jan21.141503.22670@dbased.nuo.dec.com> Lines: 32 Sender: news@dbased.nuo.dec.com (USENET News System) Reply-To: lionel@quark.enet.dec.com (Steve Lionel) Organization: Digital Equipment Corporation, Nashua NH References: <1jhqkhINNno3@bigboote.WPI.EDU> <1993Jan21.081105.4047@molene.ifremer.fr> Date: Thu, 21 Jan 1993 14:15:03 GMT