找回密码
 注册
Simdroid-非首页
查看: 165|回复: 7

[3. Fortran] fortran编写subrotine的问题

[复制链接]
发表于 2008-10-14 17:01:31 | 显示全部楼层 |阅读模式 来自 陕西西安
经常采用fortran写SUBROUTINE遇到以下问题:
对不同类型的输入参数 处理方法完全一致 可是SUBROUTINE必须给输入参数定义一个明确的类型
搞得我往往针对real\integer分别编写一个SUBROUTINE
有没有办法类似C++一样 编写可以处理各种类型的SUBROUTINE
发表于 2008-10-14 17:57:11 | 显示全部楼层 来自 大连理工大学
Simdroid开发平台
我一般用默认的I_N法则,在主程序和子程序定义段都采用implicit real*8 (a-h,o-z),假设在i和n之间的字母为开头的变量的话,我一般在变量名字前面加上e,例如要用字母k,我一般定义成ek。其实,这个只是个人的一种习惯而已。
回复 不支持

使用道具 举报

 楼主| 发表于 2008-10-14 20:24:27 | 显示全部楼层 来自 陕西西安
谢谢LS
不过感觉Ls所说的还是fortran77里的编程习惯 fortran95好像这么用的比较少
回复 不支持

使用道具 举报

发表于 2008-10-14 22:41:17 | 显示全部楼层 来自 美国
fortran90 是支持函数overlaod的,具体可以用类属过程实现。
参见 http://zhousicheng.googlepages.com/a_014
所给例子为function,但对subroutine同理。

不知是否可以解决你的问题?
回复 不支持

使用道具 举报

发表于 2008-10-15 08:16:23 | 显示全部楼层 来自 大连理工大学
对,我现在用的就是fortran77,95我还没有用,用77习惯了,不愿意改了,呵呵。
回复 不支持

使用道具 举报

 楼主| 发表于 2008-10-15 20:51:16 | 显示全部楼层 来自 陕西西安
其实我觉得77写的程序可读性没95好  而且95改进了好多功能 更方便了 建议LS更换下
回复 不支持

使用道具 举报

发表于 2008-10-16 08:15:06 | 显示全部楼层 来自 大连理工大学
谢谢yangjungang2004,现在关键是我还用一个北京飞箭公司一个软件fepg,它是用fortran77写的。我现在要自己编写好多程序和它生成的程序进行连接进而进行计算,所以就用fortran77了。不过,95就如楼主所说,是比较方便一些的。
回复 不支持

使用道具 举报

发表于 2008-10-24 11:24:18 | 显示全部楼层 来自 黑龙江哈尔滨
Fortran 2003标准中的无限制多态类型class(*),可以实现泛型编程。
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-3-28 23:11 , Processed in 0.042727 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表