由于一些不幸的原因,我必须使用ifort,"问题"是ifort默认截断长(> 80个字符)写(*,*)行(这不会发生在gfortran中)。有一个名为-no-wrap-margin的选项可以恢复gfortran行为,即只要我想在一行中写行。但是,这仅适用于小于8184个字符的行。比这长的行,例如用
获得的行program main
implicit none
integer :: i
write(*,*) (i, i=1, 683)
end program main
导致输出第二行中的最后一个数字。有没有办法获得我想要的行为而无需在write语句中指定格式?我误解了-no-wrap-margin选项吗?
答案 0 :(得分:1)
-no-wrap-margin
选项禁用英特尔Fortran中的默认检查输出记录的长度,这是older times的残余。
作为一个好处,英特尔实施了unlimited format item。应用于您的示例代码,它可能如下所示:
program main
implicit none
integer :: i
write(*,'(*(I0,X))') (i, i=1, 683)
end program main