爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3010|回复: 5

[求助] 调用子程序结果不稳定[已解决]

[复制链接]

新浪微博达人勋

发表于 2014-9-5 08:24:56 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 lon91ong 于 2014-9-6 08:06 编辑

循环调用一个子程序, 示意代码如下:
  1. do i=1,3
  2. !有些参数是数组, prarm3保存计算结果
  3. call subroutine(param1(i,:), param2(:), param3(:))
  4. end do

  5. do i=2,4
  6. !相同的调用方式
  7. call subroutine(param1(i,:), param2(:), param3(:))
  8. end do

复制代码


现在的问题是, 两次循环调用当中, i=2,3时, 期望得到相同的计算结果,
但实际的程序中, 结果居然不一样, 百思不得其解

麻烦大侠提点, 多谢了!



密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-9-5 08:31:35 | 显示全部楼层
你的数据呢?你的子程序呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-9-5 08:34:28 | 显示全部楼层
很有可能是你的子程序中的param2、param3没有初始化!!!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2014-9-5 08:46:47 | 显示全部楼层
结果不一样差别有多大?如果很小,比如1e-5量级,可能就是由于计算机的存储误差造成的。
此外,这两个程序在连续调用过程中,是否存在相互影响的情况?即子程序中存在同为输入输出的数组?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-9-5 10:36:40 | 显示全部楼层
没有子程序代码,没法解释!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-9-5 11:16:47 | 显示全部楼层
毛病找到了, 不是主程序的问题, 子函数里面有个动态数组分配完空间, 没有初始化初值
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

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