Fortran 板


LINE

以下的程式码执行後会出现以下错误讯息 取对数时的定义域有问题, 烦请各位先进指点迷津 小弟感恩不尽 !!! run-time error M6021:MATH - log:DOMAIN error PROGRAM NGDE IMPLICIT DOUBLE PRECISION(A-H,O-Z) PARAMETER (MAX=42) PARAMETER (MAX1=42) DIMENSION V(MAX1+1),XN(MAX1),X(MAX1,MAX1,MAX1),COLF(MAX1,MAX1), & XN1S(MAX1),ZETA(MAX1),DP(MAX1),XM(MAX1) PI=3.1415926 XKB=1.38D-23 R=8.314 XNA=6.02225D23 T=1773.D0 COOLRATE=1000.D0 P=1. XMW=26.95D-3 RHO=2700.D0 A=948.D0 B=0.202 C=13.07 D=36373.D0 AMU=1.966D-6 BMU=147.47 Q=10.**(12./(MAX-2)) V1=XMW/(RHO*XNA) V(1)=V1 DO 100 I=1,MAX-1 XN(I)=0. XN1S(I)=0. 100 CONTINUE DO 101 I=2,MAX V(I)=V(1)*(Q**(I-1)) DP(I)=(6.*V(I)/PI)**0.333333 XM(I)=RHO*V(I) 101 CONTINUE DP(1)=(6.*V(1)/PI)**0.333333 XM(1)=RHO*V(1) DO 102 K=1,MAX-1 DO 102 I=1,MAX-1 DO 102 J=1,MAX-1 IF (V(K) .LE. (V(I)+V(J)) .AND. (V(I)+V(J)) .LT. V(K+1)) &THEN X(I,J,K)=(V(K+1)-V(I)-V(J))/(V(K+1)-V(K)) ELSE IF (V(K-1) .LE. (V(I)+V(J)) .AND. (V(I)+V(J)) .LT. V(K)) &THEN X(I,J,K)=(V(I)+V(J)-V(K-1))/(V(K)-V(K-1)) ELSE X(I,J,K)=0.D0 END IF 102 CONTINUE TIME=0.D0 STEP=1.D-4 S=1.001 TEMP1=6.*V1/PI S1=PI*(TEMP1**0.66666666667) XMASS=RHO*V1 PS=EXP(C-D/T)*101325.*P XNS=PS/(XKB*T) XN(1)=S*XNS 200 FORMAT( 'Time',5X,'Temperature',5X,'XN(1)',5X,'XJK',5X,'S',5X, & 'Diameter',5X,'Particle volume',5X,'Total number') WRITE(*,200) ICOUNTER=1 ICOUNTER2=1 DO WHILE (T .GT. 1600) SIGMA=(A-B*T)*1.D-3 PS=EXP(C-D/T)*101325.*P XNS=PS/(XKB*T) S=XN(1)/XNS THETA=(S1*SIGMA)/(XKB*T) AA=(2.*SIGMA)/(PI*XMASS) BB=THETA-(4.*(THETA**3.))/(27.*(DLOG(S)**2.)) XJK=(XNS**2.)*S*V1*(AA**0.5)*EXP(BB) CC=0.6666667*THETA/DLOG(S) XKSTAR=CC**3 DPSTAR=4.*SIGMA*V1/(XKB*T*DLOG(S)) VSTAR=PI*(DPSTAR**3.)/6. XNTOT=0.D0 DO I=2,MAX-1 XNTOT=XNTOT+XN(I) END DO VTOT=0.D0 VTOTAL=0.D0 DO I=2,MAX-1 VTOT=VTOT+XN(I)*V(I) END DO VTOTAL=VTOT+XN(1)*V(1) VAV=VTOT/XNTOT DPAV=(6.*VAV/PI)**0.3333333 IF (XNTOT .GT. 100.) STEP=1.D-5 IF (TIME .GT. 0.14) STEP=5.D-8 201 FORMAT(8(1X,E14.8)) 202 FORMAT(8(1X,E14.8)) 203 FORMAT(/'time=',E14.8) 204 FORMAT('N',I2,2(2X,E14.8)) OPEN(11,FILE='output1.DAT',STATUS='UNKNOWN',ACCESS='APPEND') OPEN(12,FILE='output2.DAT',STATUS='UNKNOWN',ACCESS='APPEND') ICOUNTER=ICOUNTER+1 ICOUNTER2=ICOUNTER2+1 IF (ICOUNTER .EQ. 400) THEN WRITE(*,201)TIME,T,XN(1),XJK,S,DPAV,VTOT,XNTOT WRITE(11,202)TIME,T,XN(1),XJK,S,DPAV,VTOT,XNTOT ICOUNTER=1 END IF IF (ICOUNTER2 .EQ. 40000) THEN WRITE(*,203)TIME WRITE(12,203)TIME DO I=1,MAX-1 WRITE(*,204)I,DP(I),XN(I) WRITE(12,204)I,DP(I),XN(I) END DO ICOUNTER2=1 END IF XKMIN=1.D-9 XMU=AMU*(T**1.5)/(BMU+T) XLAMBDA=(XMU/(P*101325.))*SQRT(PI*R*T/(2.*0.04)) DO 103 I=1,MAX-1 DO 103 J=1,MAX-1 XKN1=(2.*XLAMBDA)/DP(I) XKN2=(2.*XLAMBDA)/DP(J) D1=(XKB*T)/(3.*PI*XMU*DP(I))*((5.+4.*XKN1+6.*(XKN1**2)+ & 18.*(XKN1**3))/(5.-XKN1+(8.+PI)*(XKN1**2))) D2=(XKB*T)/(3.*PI*XMU*DP(J))*((5.+4.*XKN2+6.*(XKN2**2)+ & 18.*(XKN2**3))/(5.-XKN2+(8.+PI)*(XKN2**2))) C1=SQRT((8.*XKB*T)/(PI*XM(I))) C2=SQRT((8.*XKB*T)/(PI*XM(J))) XL1=(8.*D1)/(PI*C1) XL2=(8.*D2)/(PI*C2) G1=((DP(I)+XL1)**3)-((DP(I)**2+XL1**2)**1.5)/(3.*DP(I)*XL1) & -DP(I) G2=((DP(J)+XL2)**3)-((DP(J)**2+XL2**2)**1.5)/(3.*DP(J)*XL2) & -DP(J) COLF(I,J)=2.*PI*(D1+D2)*(DP(I)+DP(J))/((DP(I)+DP(J))/ & (DP(I)+DP(J)+2.*SQRT(G1**2+G2**2))+(8.*(D1+D2))/ & (SQRT(C1**2+C2**2)*(DP(I)+DP(J)))) IF (COLF(I,J) .LT. XKMIN) THEN XKMIN=COLF(I,J) END IF 103 CONTINUE DO 104 K=2,MAX-1 IF (VSTAR .LT. V1) THEN ZETA(2)=VSTAR/V(2) ELSE IF (V(K-1) .LE. VSTAR AND VSTAR .LT. V(K)) THEN ZETA(K)=VSTAR/V(K) ELSE ZETA(K)=0.D0 END IF 104 CONTINUE DO 105 I=1,MAX-1 DP(I)=(6.*V(I)/PI)**0.333333 XN1S(I)=XNS*EXP(4.*SIGMA*XMW/(R*T*RHO*DP(I))) 105 CONTINUE T1=0.D0 T2=0.D0 T3=0.D0 T4=0.D0 DO 106 K=2,MAX-1 SUM1=0.D0 SUM2=0.D0 IF (STEP .NE. 1.D-4) THEN IF (XN(1) .GT. XN1S(K-1)) THEN IF (K .EQ. 2) THEN ADDTERM=0.D0 ELSE ADDTERM=(V(1)/(V(K)-V(K-1)))*COLF(1,K-1)* & (XN(1)-XN1S(K-1))*XN(K-1) T1=T1+COLF(1,K-1)*(XN(1)-XN1S(K-1))*XN(K-1) END IF END IF IF (XN(1) .LT. XN1S(K+1)) THEN ADDTERM=-(V(1)/(V(K+1)-V(K)))*COLF(1,K+1)* & (XN(1)-XN1S(K+1))*XN(K+1) T2=T2+COLF(1,K+1)*(-XN(1)+XN1S(K+1))*XN(K+1) END IF IF (XN(1) .LT. XN1S(K)) THEN SUBTERM=-(V(1)/(V(K)-V(K-1)))*COLF(1,K)* & (XN(1)-XN1S(K))*XN(K) T3=T3+COLF(1,K)*(-XN(1)+XN1S(K))*XN(K) END IF IF (XN(1) .GT. XN1S(K)) THEN SUBTERM=(V(1)/(V(K+1)-V(K)))*COLF(1,K)* & (XN(1)-XN1S(K))*XN(K) T4=T4+COLF(1,K)*(XN(1)-XN1S(K))*XN(K) END IF END IF DO I=2,MAX-1 SUM2=SUM2+COLF(K,I)*XN(I) DO J=2,K SUM1=SUM1+X(I,J,K)*COLF(I,J)*XN(I)*XN(J) END DO END DO XN(K)=XN(K)+STEP*(0.5*SUM1-XN(K)*SUM2+XJK*ZETA(K) & +ADDTERM-SUBTERM) 106 CONTINUE XN(1)=XN(1)-XJK*XKSTAR*STEP-STEP*(T1+T4-T3-T2) T=T-STEP*COOLRATE TIME=TIME+STEP CLOSE(11) CLOSE(12) END DO STOP END --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.113.223.47
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Fortran/M.1399040419.A.28F.html
1F:→ blc:喂了DLOG负值? 05/02 22:29
2F:→ wop:谢谢版大回覆 我把DLOG(S) 改为DLOG(DABS(S))以後还是一样 05/02 22:42
3F:推 rex0707:我用gfortran编译 没问题 05/02 22:56
4F:→ rex0707:只是开始算了之後会出现NaN 05/02 22:57
5F:→ jubilee2:k=1 and k-1=0 05/03 00:08
6F:→ wop:已转帐P币给上面三位网友 将k=1改为k=2还是一样的结果 05/04 00:53
7F:→ jubilee2:3Q 05/04 13:44
8F:→ jubilee2:XNTOT=0 and VAV=VTOT/XNTOT 05/04 13:58
9F:→ wop:问题已解决,另外 Addterm没有初值 要加入Addterm=0.D0 05/23 15:34
10F:→ wop:已再转帐500P币给jubilee2 05/23 15:36







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP