使用英特尔Fortran编译器避免使用列表导向输出中的换行符

glu*_*uke 8 io formatting fortran

我注意到write(*,*)Fortran 中列表导向输出的结果依赖于编译器.

确实,用代码:

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
Run Code Online (Sandbox Code Playgroud)

intel编译器ifort给出了换行符打破的标准输出:

   3.16227769851685        4.47213602066040        5.47722530364990     
   6.32455539703369        7.07106781005859     
Run Code Online (Sandbox Code Playgroud)

而gfortran给出了等效的一行结果:

    3.1622776601683795        4.4721359549995796        5.4772255750516612        6.3245553203367590        7.0710678118654755     
Run Code Online (Sandbox Code Playgroud)

我认为ifort每行最多写3个项目(当浮动实数时).有没有办法让ifort输出像gfrotran,即避免换行?理想情况下,我想保留列表导向的输出(*,*)指令,所以我正在寻找类似编译器选项的东西,如果有的话.

M. *_* B. 7

不是.列表导向(自由格式)输出提供了便利,但您放弃了控制.输出的各个方面未指定,并允许选择给编译器.如果要完全控制,则必须使用格式化输出.


Nic*_*s D 5

从第14节开始,intel fortran编译器具有wrap-margin函数.默认情况下,记录包含80个字符.要禁用此限制,您应指定:

在Linux上:-no-wrap-margin

在WIndows上:/ wrap-margin-

有关英特尔Fortran参考指南的更多信息,请参阅