发你修改后的程序。这个错误就比较简单一些了
您好,昨晚学校断网,没办法给您回复了。多谢帮助,附件是我修改后的文件,请您再帮我看一下吧。:-) 本帖最后由 chuxf 于 2014-2-27 12:16 编辑
嗯,这个错误就很明了了。
Ua,Uw,Set 三个函数中,没有对m1a,m2w,m2a 的定义,于是这三个量默认是整型的。
而我猜,你是想让他们是双精度。因为计算时他们的值小于1,整型的话就=0了,而后被 Cw=(m1w-m2w)/m2w 作为分母,出现了除0错误。
在这三个函数中,添加对m1a,m2w,m2a 的定义。
double precision m1a,m2w,m2a
得到如下计算结果,不知是否正确:
------------------------------------------------------------------
t(s) Pa(kPa) Pw(kPa) Set(cm)
------------------------------------------------------------------
0.1000E+05 0.43307 0.63307 0.00000
chuxf 发表于 2014-2-27 12:14
嗯,这个错误就很明了了。
Ua,Uw,Set 三个函数中,没有对m1a,m2w,m2a 的定义,于是这三个量默认是整型的 ...
太感谢您了!就是我想要的结果。您的指导真的帮了我很大的忙。 zjl88915 发表于 2014-2-27 13:08
太感谢您了!就是我想要的结果。您的指导真的帮了我很大的忙。
不客气,常来论坛看看。 chuxf 发表于 2014-2-27 13:17
不客气,常来论坛看看。
我按照你的指导修改后,可以运行了。但是当我读取1D_Unsat.dat这个文件中的T(1)这个数时,当T(1)<1e7时,很正常,一旦大于就又出现以前的问题了(正常的话我需要算到T(1)=1e11)。我按照C06LAF子程序的帮助文件的错误提示进行修改,问题依然存在。 现在附件里是程序和问题截图,有时间您再帮我看下?我是小白。。。但是这个程序我需要尽快弄出来,好无力的赶脚。。。
这个恐怕就是管理在 4 楼说的那种情况了。
T(1) 增大以后,要达到相同的精度也就越困难,你需要同步调整其他的参数,例如 RELERR,TFAC,ALPHAB(根据你的具体情况)
chuxf 发表于 2014-2-27 14:54
这个恐怕就是管理在 4 楼说的那种情况了。
T(1) 增大以后,要达到相同的精度也就越困难,你需要同步调整其 ...
恩。。。那我只有再看看吧。。。但是我觉得问题不一定就是出在提示的地方。因为我这里类似这个计算的其他几个程序我计算时即使T很大也没有出现这个问题。唉。。。 chuxf 发表于 2014-2-27 14:54
这个恐怕就是管理在 4 楼说的那种情况了。
T(1) 增大以后,要达到相同的精度也就越困难,你需要同步调整其 ...
您好,在您方便的时候,可不可以帮我再看一下?附件里是我另外的一个程序以及C06LAF的帮助文件,那个运行没有任何问题,两个程序的代码差不多的。。。只是输入的数有个别不同。
你好,请问你有完整的NAG fortran library 源码没有? schoolhui 发表于 2014-9-23 15:34
你好,请问你有完整的NAG fortran library 源码没有?
不好意思,这个真没有。。。
页:
1
[2]