我有一个 FORTRAN 95 代码,其中在主程序中声明了这些变量:
integer :: i
real(8) :: dx
real(8), allocatable :: X(:), Y(:), Z(:)
以下函数在程序期间的某个时间点使用这些值:
function Funcion_ceros(var_4)
implicit none
real(8), intent(in) :: var_4(2)
real(8) :: Funcion_ceros(2)
Funcion_ceros(1) = var_4(1) - Y(i) - dx*var_4(2)
Funcion_ceros(2) = var_4(2) - Z(i) - dx*F(X(i + 1), var_4(1), var_4(2))
end function Funcion_ceros
如果我在主程序的 contains 部分中包含此函数,则不存在编译问题。但是,当将其分成一个模块时,它会失去对这些变量的访问权限。我也尝试在模块中指定上面编写的相同变量,并得到以下错误:
Symbol 'i' at (1) conflicts with symbol from module 'Module_Name', use associated at (2).
如何将此函数分成一个模块,同时允许它从主程序访问它使用的变量?