在模块中使用fortran函数

时间:2016-02-22 11:49:52

标签: function module fortran

我正在尝试在模块中包含一个函数,使用以下代码:

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

非常感谢您提前

0 个答案:

没有答案