回 帖 发 新 帖 刷新版面

主题:[讨论]module 里面封装的程序的形参能是指针类型的吗?

问题描述如下:
在module 里定义个一个子程序。如
module aa 
  contains
    subroutine   test(a,pointer)
     ..................
     .......................
    end subroutine
end module 
当我在主程序main中调用子程序test的时候,需要使用use aa,use是显示定义接口的。而fortran规定使用指针作为函数指针时,必须使用interface 。即在主程序中必须使用
interface 
  subroutine  test
end interface
这样一来,又是use,又是interface,两次定义了接口,就出错了。

请问各位有什么办法来解决这个问题。前提是test必须封装在module里,而且形参必须是指针类型。 

本文来自: 小木虫论坛 http://emuch.net/bbs/viewthread.php?tid=2427785&fpage=1

回复列表 (共5个回复)

沙发

去掉那個interface就行了。

板凳

module是编译成库文件的。我在使用的时候只用use,程序编译就错了,说要使用interface定义

3 楼

只要有mod文件就可以。不需要interface。

4 楼

interface加入module里还有问题么
另:函数指针和指针参数也不是一回事

5 楼


在程序里面直接用use就好了。但是今天确发现另外一个问题。我把这些子程序都作成了dll文件。运行的时候说无法定位程序接入口。  但是在debug模式下却是可以的。不知道怎么回事

我来回复

您尚未登录,请登录后再回复。点此登录或注册