【发布时间】:2021-09-14 19:56:28
【问题描述】:
我正在尝试打开行数未知的 ASCII 文件(但每行中的条目数固定 - 请参阅下面的示例文件)。它转到文件末尾,但之后失败。
选项 1:使用 iostat 语句:使用“Use, intrinsic :: iso_fortran_env, Only : iostat_end”或简单地将 io 视为整数时,我得到相同的错误。
选项 2:使用“end= ..”选项。这是我之前使用的(F77)。
这两种方法原则上都应该有效,但两者都没有。任何解决此问题的帮助将不胜感激。
谢谢, 皮纳基。
计划:
!=======================================!
program read
!=======================================!
! Use, intrinsic :: iso_fortran_env, Only : iostat_end
implicit none
integer :: i,io,n
n=0
open(10,file='a.dat',status='old',action='read')
!=================================!
! option 1
!=================================!
do
read(10,*,iostat=io)
write(*,*)io
! if (io.eq.iostat_end) exit
if (io.ne.0) exit
n=n+1
write(*,*)'n=',n
enddo
!=================================!
!=================================!
! option 2
!=================================!
do 10 i=1,1000000
read(10,*,end=10)
n=n+1
write(*,*)n
10 continue
!================================!
close(10)
write(*,*)'n=',n
end program read
!======================!
使用“gfortran --std=f2003 -o read.out read.f90”编译
错误信息:
===============================================
dyld: lazy symbol binding failed: Symbol not found: ___emutls_get_address
Referenced from: /usr/local/opt/gcc/lib/gcc/11/libgfortran.5.dylib
Expected in: /usr/lib/libSystem.B.dylib
dyld: Symbol not found: ___emutls_get_address
Referenced from: /usr/local/opt/gcc/lib/gcc/11/libgfortran.5.dylib
Expected in: /usr/lib/libSystem.B.dylib
程序收到信号SIGABRT:进程中止信号。
此错误的回溯: #0 0x105364f8e #1 0x10536419d #2 0x7fff6eed05fc zsh: 中止 ./read.out
================================================ ======
我正在阅读的文件:
================================================ ======
1 -1.1559859375 2.0399371094 0.1686166667 0.8242152778
2 -1.1618015625 2.1375250000 0.1765231481 0.8105046296
3 -1.1696710937 2.2325417969 0.1860513889 0.7936782407
1 -1.1730312500 2.3271382813 0.1975254630 0.7718773148
2 -1.1767945313 2.3942726563 0.2113162500 0.7446933333
3 -1.1694437500 2.4738000000 0.2281966667 0.7099266667
1 -1.1566140625 2.5312164063 0.2494466667 0.6636841667
2 -1.1293765625 2.5746707031 0.2747766667 0.6066154167
3 -1.0836390625 2.5938144531 0.3026616667 0.5403733333
1 -1.0380632812 2.5721433594 0.3302462121 0.4727159091
================================================ =========================
【问题讨论】:
-
除了fortran代码,错误信息是不是说明编译器安装有问题? (例如,由于多次安装和错误的动态库?)类似... stackoverflow.com/questions/13414786/…
标签: fortran