Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Avoid newline in list-directed output with Intel Fortran compiler

I have noticed the results of list-directed output write(*,*) in Fortran is compiler dependent.

Indeed, with the code:

program one
real(8), dimension(5):: r1
do i=1,5
    r1(i)=sqrt(i*10.0)
end do
write(*,*) (r1(i), i =1,5)
end program one

intel compiler ifort gives standard output broken by a newline:

   3.16227769851685        4.47213602066040        5.47722530364990     
   6.32455539703369        7.07106781005859     

while gfortran gives the equivalent one line result:

    3.1622776601683795        4.4721359549995796        5.4772255750516612        6.3245553203367590        7.0710678118654755     

I think that ifort is writing maximum 3 items per line (when floating real numbers). Is there any way to make the ifort output be like gfrotran, i.e. avoid the newline? Ideally, I would like to keep list-directed output (*,*) instructions, so I am looking for something like a compiler option or so, if any.

like image 560
gluuke Avatar asked Jul 01 '13 14:07

gluuke


1 Answers

Since verson 14, intel fortran compiler has the wrap-margin function. By default, the record is wrapped after 80 characters. For disabling this restriction, you should specify:

on Linux: -no-wrap-margin

on WIndows: /wrap-margin-

See more on Intel Fortran's reference guide

like image 147
Nicolas D Avatar answered Sep 24 '22 10:09

Nicolas D