24小时热门版块排行榜    

查看: 609  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

shiyongjie

银虫 (正式写手)

[交流] 【求助】module 里面封装的程序的形参能是指针类型的吗?【已完结】 已有2人参与

散50金币,求解决方法

问题描述如下:
在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里,而且形参必须是指针类型。

[ Last edited by 余泽成 on 2010-9-25 at 23:09 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hakekill

木虫 (小有名气)

shiyongjie(金币+45):已经解决了。金币都给你吧 2010-09-25 12:24:01
你试着在module里面就给出interface看看,即在contain前面给出。
4楼2010-09-25 09:22:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

hakekill

木虫 (小有名气)


shiyongjie(金币+5): 2010-09-24 20:57:46
余泽成(金币+1):谢谢参与应助! 2010-09-24 21:35:34
这个问题是这样的,如果不用module来封装,使用指针作为函数形参时必须使用interface,但是用module来封装后,interface就不需要了,这个信息已经包含在module里面了。主程序只需要use就行了。
2楼2010-09-24 08:43:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shiyongjie

银虫 (正式写手)

谢谢你的回答。但是仍然有问题,我把程序封装在module里面,用了use,把interface去掉了。结果编译的时候就出现问题了,说需要使用interface来定义。
另外,说明一下,我这个module是编译成DLL文件的
3楼2010-09-24 21:00:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hakekill

木虫 (小有名气)


小木虫(金币+0.5):给个红包,谢谢回帖交流
你的解决方法是怎么样的?
5楼2010-09-25 14:20:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见