我正在尝试在模块中包含一个函数,使用以下代码:
MODULE statistic_routines
IMPLICIT NONE
PRIVATE
PUBLIC :: loadfiles
CONTAINS
SUBROUTINE loadfiles
IMPLICIT NONE
LOGICAL :: readfile
LOGICAL :: error
error = readfile(1,1)
END SUBROUTINE loadfiles
FUNCTION readfile(caso,sample) RESULT(ok)
IMPLICIT NONE
INTEGER, INTENT(IN) :: caso, sample
LOGICAL :: ok
ok = .true.
END FUNCTION readfile
END MODULE statistic_routines
PROGRAM calculations
USE statistic_routines
IMPLICIT NONE
CALL loadfiles
END PROGRAM
尝试编译时,我收到以下错误:
/tmp/ccmQNL80.o: In function `__statistic_routines_MOD_loadfiles':
prueba.f90:(.text+0x30): reference to `readfile_' undefined
collect2: error: ld returned 1 exit status
模块似乎编译正确,因为没有出现错误消息。由于一切都在模块内部,我不认为我需要声明一个接口。如何在模块内部使用功能?我需要申报其他内容吗?
这都在一个文件中。我用来编译它的命令是gfortran prueba.f90 -o prueba
非常感谢您提前