home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.lang.fortran
- Path: 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
-
-
- 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
-