如何将FORTRAN90编写的子程序用于FORTRAN77编写的主程序
我的问题是关于FORTRAN 77和FORTRAN 90的。主程序(program.f77)是用FORTRAN 77编写的。一个子程序是用FORTRAN 90编写的。假设文件名为sub.f90,其中包含子例程。现在我想把这个子程序用于我的主程序。所以我在我的主程序中使用了“include sub.f90”,但它不起作用。我的问题是,有没有办法将sub.f90用于我的主程序(program.f77)?任何帮助都将不胜感激 这是一个Fortran 77文件如何将FORTRAN90编写的子程序用于FORTRAN77编写的主程序,fortran,fortran90,fortran77,Fortran,Fortran90,Fortran77,我的问题是关于FORTRAN 77和FORTRAN 90的。主程序(program.f77)是用FORTRAN 77编写的。一个子程序是用FORTRAN 90编写的。假设文件名为sub.f90,其中包含子例程。现在我想把这个子程序用于我的主程序。所以我在我的主程序中使用了“include sub.f90”,但它不起作用。我的问题是,有没有办法将sub.f90用于我的主程序(program.f77)?任何帮助都将不胜感激 这是一个Fortran 77文件test.f: PROGRAM test
test.f
:
PROGRAM test
integer i
print*, 'Hello world'
CALL subr(i)
END PROGRAM test
调用在单独的Fortran 90文件subr.f90
中描述的子程序subr
:
SUBROUTINE subr(i)
IMPLICIT NONE
integer, intent(out) :: i
i=1
write(*,*) i
END SUBROUTINE subr
只需编译它们并将它们链接在一起:
gfortran-c测试f subr.f90
gfortran-o主测试o子测试o
/主要
输出:
Hello world
1
您似乎在问如何从多个来源构建一个程序。这是相当宽泛的,尤其是当你目前为止给出你的尝试的一点细节时。通常单独编译它们,然后将它们链接在一起应该不会有问题。也许可以给出一些具体的示例来说明您想要做什么,然后我们可以向您展示最好的方法。如果f90代码是作为模块编写的,那么您需要在f90部分中的模块外部有一个例程来调用它,然后从f77调用此例程。