我正在尝试运行一个用 fortran 编写的程序,其中子程序已用 gfortran 编译,主程序已用 ifort 编译:
这里是源代码:
子程序:
subroutine testsub
implicit none
integer icarte
read(10,*) icarte
write(*,*)icarte
return
end`
主要代码:
program test
implicit none
integer i
open (unit=10, file="file_test")
do i=1,6
read(10,*)
enddo
call testsub
close(10)
end
读取的文件是:
1
2
3
4
5
6
7 5 6 8
23
然后我像这样编译:
gfortran -c testsub.f
ar rcs libtest.a testsub.o
ifort -o testexe test.f -L./ -ltest -L/.../gcc/4.7.1/lib64 -lgfortran
我得到:
At line 4 of file testsub.f (unit = 10, file = 'fort.10')
Fortran runtime error: End of file
看起来逻辑单元没有提供给子例程。我应该在某处添加一个编译选项......但我真的不知道什么和在哪里......并回答“如果我用相同的编译器编译两个文件会发生什么?”这个问题。: 程序运行完美:)
所以,如果有人有任何想法......