我正在Fortran90中编写一个模块,主要是我在模块中定义了一个函数,以及一个使用该函数的子程序。这是模块的摘录
module Mesh_io
implicit none
private
contains
integer function findkey ( )
content of this function
end function
subroutine getNumber_Mesh ()
integer :: findkey
content of the routine
end subroutine getNumber_Mesh
end module
编译时我得到以下输出:
objects/Main.o: In function `__mesh_io_MOD_getnumber_mesh':
Main.f90:(.text+0x9e): undefined reference to `findkey_'
正如您所看到的,该函数包含在模块中,但由于某种原因,编译器无法找到它。
答案 0 :(得分:4)
在子例程getNumber_Mesh()
中声明了findkey,您将创建一个隐藏该函数的局部变量findkey
。
对于模块,不需要声明函数(模块函数)的返回值。只需删除声明即可。