我对 Fortran 有点陌生,但我开始在我一遍又一遍地使用的模块中收集很多函数和子例程。我一直在尝试构建自己的库,以便可以从我编写的新源代码中调用其中的一些函数和子例程。到目前为止,我已经能够让子例程工作,但不能让函数工作。我只是不知道如何在代码中调用函数。
这是一个例子。以下函数接受一个整数并返回单位矩阵。
module test
contains
function IDENTITY(rows) !RETURNS THE IDENTITY MATRIX
real, dimension(rows,rows) :: IDENTITY
integer, intent(in) :: rows
integer :: i, j
!f2py intent(in) rows
!f2py intent(out) IDENTITY
!f2py depend(rows) IDENTITY
IDENTITY = ZEROS(rows,rows)
do i = 1, rows
do j = 1, rows
if (i == j) then
IDENTITY(i,j) = 1
endif
enddo
enddo
end function IDENTITY
end module
现在我将它编译成一个目标文件,然后将它归档到一个库中。然后我编写了一个小程序,我想在其中使用这个函数——这就是我想要避免的问题。我想我必须在我的源代码中放置一个 \use\ 语句,以便它使用该模块。然后我必须在编译时包含 .mod 的路径。但最终,我将有一整节的使用语句。我想避免做所有这些事情,只是让一切都变得美好而整洁。有办法吗?任何帮助都会很棒,
谢谢你