本帖最后由 zjl88915 于 2015-1-19 22:05 编辑
具体程序代码文件见附件:Radial.for文件可以正确运行,没有问题;nRadial4.for文件是我根据Radial.for进行的修改:
将Radial.for文件中主程序里的: m1ka=m1ks-m1kw m2a=m2s-m2w
Cw=(m1kw-m2w)/m2w
Cvw=kw/rw/m2w
Ca=m2a/(m1ka-m2a-n0*Sg0*Uatm/(ua0+Uatm)**2)
Cva=ka*R*Temp/g/(ua0+Uatm)/M/(m1ka-m2a-n0*Sg0*Uatm/(ua0+Uatm)**2)
Aa=-Cva/(1-Ca*Cw)
Aw=Ca*Cvw/(1-Ca*Cw)
Wa=Cw*Cva/(1-Ca*Cw)
Ww=-Cvw/(1-Ca*Cw)
C--------Exchange Q1 and Q2 when the problem "divided by zero happens"------
xx=(Aa-Ww)**2+4*Aw*Wa
write(*,'(1x,''xx='',E12.6)')xx
Q1=(Aa+Ww+dsqrt((Aa-Ww)**2+4*Aw*Wa))/2.0
Q2=(Aa+Ww-dsqrt((Aa-Ww)**2+4*Aw*Wa))/2.0
c q21=(Q1-Aa)/Wa
q21=Aw/(Q1-Ww)
c q12=(Q2-Ww)/Aw
q12=Wa/(Q2-Aa) 这一段程序在nRadial4.for中放在了三个调用的子程序中(我不是无聊,真的是后续工作需要用到。。。); 这样nRadial4.for和Radial.for的结构不同,但按我设想应该结果相同(原谅我的无知与自信。。。), 现在的结果是:nRadial.for程序调试时没有任何错误,但是一旦运行就出现:run-time errorM6201:MATH - sqrt: DOMAIN error。 而之前编程的师兄毕业,我对fortran实在无能啊,求各位大神指点。。。。
|