主题:请教大家一个问题
sky1900
[专家分:10] 发布于 2010-07-21 10:36:00
我在程序中编译了几个subroutine和function,在调用子函数的时候为什么有时候会出现数据溢出的情况呢(输入数据满足子函数条件)
我在测试子函数的时候,调整了一下输入量的属性,曾经正确输出过,但是稍微代入改动一下就不行了,郁闷啊。请问各位高手,调用子函数的时候对子函数内部变量定义有什么特殊要求吗
(我使用的是ABSOFT编译器,f95文件)
回复列表 (共4个回复)
沙发
f2003 [专家分:7960] 发布于 2010-07-21 13:33:00
1,形参、实参的类型应该一致,如果是数组,它们的形状应该相同。
有一点要注意。如果子过程不是放在模块中,那么主程序对它的接口实际上是不知道的,即使两者是写在同一个文件中。如果是像f77那样所有的数据都是静态的,程序员保证形参实参是一致的,也就可以正确调用。但是f90引入了动态数组,允许子程序的数组自动适应主程序传来的参数,这种情形就必须让主程序知道子程序的接口,也就是说这时主程序中应写interface块。
2,fortran95对可作为参数的数据类型有一些限制,比如,f95不允许可分配数组作为子程序参数,如果我没有记错。
满足这些条件后就应该畅通无阻了。语言不会对参数的值有任何限制,那只能由算法保证。
板凳
sky1900 [专家分:10] 发布于 2010-07-21 13:38:00
说的真是太好了,太感谢啦,哈哈
3 楼
academician [专家分:40] 发布于 2010-07-21 16:20:00
可以以可分配数据做参数
4 楼
小猪冲啊 [专家分:0] 发布于 2010-07-26 22:44:00
跟女生聊天我有研究女友在一起谈情说爱女性朋友在一起都是谈谈自己的感情还有事业第三种就是LZ你碰上的这类型的了额。自己想如果她不喜欢你的话一般不会找你聊天但是如果喜欢你的话就不会总在你面前说钱一般说钱的女生容易被男生认为俗气如果她每次找你聊天都是找你借钱的话建议LZ远观
我来回复