作者poiuy1203 (po)
看板Fortran
标题Re: [问题] 程式发生错误 找很久了 高手能帮帮忙吗?
时间Mon May 10 10:48:12 2010
※ 引述《poiuy1203 (po)》之铭言:
: 程式跑到挂掉
: 但小弟功力太弱找不到原因
: 恳请高手帮看指点
: 画面显示
: run-time error M6203: MATH
: -csin:OVERFLOW error
: 跑到L=2,M=3,N=4时会挂掉
: 下面附上程式码:
: SUBROUTINE IILMN(IL,ML1,NN)
: COMPLEX*16 II(6,5,80),K(6,5,80),Q(6,5,80),AX(6,5),AZ(6,5),DZZ,CI
: REAL*8 DX(6),Z(6,5)
: DIMENSION ML1(6),NN(6)
: COMMON / DAT2 / DX,Z
: COMMON / DAT4 / AX,AZ
: COMMON / DAT5 / K,Q
: COMMON / DAT22 / II
: CI=CMPLX(0.0,1.0)
: DO 1,L=1,IL
: DO 2,N=1,NN(L)
: II(L,2,N)=1.0
: 2 CONTINUE
: 1 CONTINUE
: DO 3,L=1,IL
: ML1L=ML1(L)
: IF(ML1L.EQ.2) GO TO 3
: DO 4,M=3,ML1L
: DZZ=(Z(L,M-1)-Z(L,M))*AX(L,M)/AZ(L,M)
: WRITE(*,*)'ML1L',ML1L
: DO 5,N=1,NN(L)
: DZZ=DZZ*K(L,M,N)
: II(L,M,N)=II(L,M-1,N)*(COS(DZZ)+CI*Q(L,M,N)*SIN(DZZ))
: WRITE(*,*)L,M,N
: 5 CONTINUE
: 4 CONTINUE
: 3 CONTINUE
: RETURN
目前所知道的是DZZ的值为复数形式
DZZ=(0.625 , 1.734918577506039E-018)
带入SIN(DZZ)和COS(DZZ)时会爆掉
请问是哪里出问题呢?
^^^^^^^^^^^^^^^^^^^
是否哪里需要设定或宣告?
还是SIN.COS内不能带入复数呢?
照着爬文所说的
--------------------
设定方法为...
Project→Settings→Link→Category:Output→
Sackallocations Reserve:
里头打数字
1M=1024*1024= 1048576
最大可以开到256MB吧268435456
-------------------
设定完按OK之後值却变成0x10000000
我是用VISUAL FORTRAN 写的
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.117.98.63
1F:推 sjgau:sin, cos 等函数,当然是 不能带入负数 05/10 12:18
2F:→ sjgau:复数,你尝试着去掉这个 BUG 看看 05/10 12:19
3F:推 area19860527:你的COMPLEX式双精确度,把SIN COS改成DSIN DCOS看看 05/10 13:59