学习了,呵呵![]() |
float invalid operation 是 运行时错误 运行时错误,属于动态问题。往往不仅仅是代码本身错误导致的。而是数据不合适,或算法不严谨导致的。 比如 [Fortran] 纯文本查看 复制代码 program ex110 implicit none DIMENSION U(2),UI1(3),UI2(6),UI3(6) REAL(8) Nv, chi, lambda0, detF0,vcho,vcmo,vcpo,fa,fb,Ka,Kb,vNa REAL(8) U ,UI1, UI2 ,UI3,aa, bb, cc ,dd, ee, deltaa, deltab,deltac REAL(8) BI1,BI2,AJ REAL(8) delta,vch,GAJ, DGAJDAJ, DDGAJDDAJ, DDDGAJDDDAJ REAL(8) DGAJDvch ,DDGAJDDvch, DDDGAJDDDvch REAL(8) DDGAJDAJDvch, DDDGAJDAJDDvch, DDDGAJDDAJDvch REAL(8) DvchDAJ, DDvchDDAJ, DDDvchDDDAJ REAL(8) D1GAJDAJ, D2GAJDAJ, D3GAJDAJ,TEMP BI1=10.0 AJ=1.0 TEMP=2.0 Nv = 0.001 chi = 0.1 lambda0 = 3.39 detF0 = lambda0**3.0 vNa=0.0602 vcpo=vNa*(10.0**(-3.0)) vcho=vNa*(10.0**(-TEMP)) vcmo=vcpo+vcho Ka=10.0**(-4.3) Kb=10.0**(-10.0) fa=0.05 fb=0.0 !。。。。。。中间省略部分无关代码 aa=AJ*detF0*(vcho+vcpo) bb=fb*vcho+AJ*detF0*Ka*(vcho+vcpo)*vNa+ AJ*detF0*Kb*(vcho + &vcpo)*vNa cc=-(AJ*detF0*vcho**2*vcmo)-fa*Ka*vcho*vNa+fb*Ka*vcho*vNa+ &AJ*detF0*Ka*Kb*(vcho+vcpo)*vNa**2 dd=-(AJ*detF0*Ka*vcho**2*vcmo*vNa)-AJ*detF0*Kb*vcho**2*vcmo*v &Na-fa*Ka*Kb*vcho*vNa**2 ee=AJ*detF0*Ka*Kb*vcho**2*vcmo*vNa**2 deltaa=cc**2-3*bb*dd+12*aa*ee deltab=2*cc**3-9*bb*cc*dd+27*aa*dd**2-72*aa*cc*ee deltac=(deltab+Sqrt(abs(-4.0*deltaa**3.0+deltab**2.0))) &**(1.0/3.0) delta=(2**(1/3)*deltaa)/(3*aa*deltac)+deltac/(3*2**(1/3)*aa) !。。。。。。。。。。。以下省略部分无关代码。。。。。。。。。 这个代码本身是没有错误的,但是当用户输入 0 时,就会出现 float invalid operation 这就是动态错误。建议你通过 debug 单步调试查找这类错误的原因。 如果你不熟悉 debug 单步调试,可以看这里的视频教程:http://v.fcode.cn/video-debugger.html |
vvt 发表于 2016-3-18 22:44 RRL0=(RRL-UUAB)/(CH*(FF1+FF2)) 麻烦问一下,这一句怎么改? |
请参考楼上的案例,依葫芦画瓢。 |
楚香饭 发表于 2015-9-30 07:35 RRL=SQRT(UUAB**2+CH**2*(FF1**2-FF2**2)) RRL0=(RRL-UUAB)/(CH*(FF1+FF2)) 师兄,麻烦问一下,我debug在这两句这出现了float invalid operation,怎么改?谢谢 |
楚香饭 发表于 2015-9-30 07:35 麻烦问一下师兄,RRL=SQRT(UUAB**2+CH**2*(FF1**2-FF2**2)) RRL0=(RRL-UUAB)/(CH*(FF1+FF2)) 其中UUAB为正,CH为正 |
楚香饭 发表于 2015-9-30 07:35 查了一下,C++11的标准里面已经有一个cbrt函数专门开三次方根,不知道Fortran何时跟进 |
楚兄 这个例子好 可以作为新手认识浮点数误差的一个很好案例! 受教了. |
楚香饭 发表于 2015-9-30 07:35 果然编译成功了 谢谢大神! ![]() ![]() |
捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )
GMT+8, 2025-4-18 18:49