如何解决Fortran编程中的显式前向差分方法给出溢出-应该给出什么输入
问题链接-(https://drive.google.com/file/d/1A9Vf-e1qbdNZxa_UQ2cy8K4LiEfubU6X/view?usp=sharing) 问题出在输入时,当我给出输入时,它给了我溢出错误 为解决问题而编写的代码:-
COMMON/VARI/U(0:101),V(0:101)
REAL K,KP
DATA T,X1,X2,KP/0,1,1/
P(T)= 0
Q(T)= 0
F(X)= 100*SIN(PI*X)
E(X,T)=100*EXP(-PI*PI*T)*SIN(PI*X)
PRINT*,'ENTER TMAX,N,K'
READ*,TMAX,K
H=(X2-X1)/N
R=(KP*K)/(H*H)
PI = 4*atan(1.0)
! SET INITIAL CONDITION============================================
DO I =0,N
X=X1+I*H
V(I)=F(X)
END DO
! DEFINE TradITIONAL LINEAR SYstem==
15 DO I=1,N-1
U(I)=V(I)+R*(V(I-1)-2*V(I)+V(I+1))
END DO
T=T+K
U(0)=P(T)
U(N)=Q(T)
! WRITE U OVER V TO PREPARE FOR NEXT TIME STEP==
DO I =0,N
V(I)= U(I)
END DO
!IF T IS LESS THAN TMAX,TAKE A TIME STEP===
IF(ABS(TMAX-T).GT.K/2) GOTO 15
! OTHERWISE PRINT RESULT
WRITE (2,110) N,K,T
WRITE (3,120)
DO I=0,N
X=X1+I*H
EXACT=E(X,T)
ER=ABS(EXACT-U(I))
WRITE(6,130)X,U(I),EXACT,ER
END DO
110 FORMAT(2x,'N=',I4,2x,'K=',F8.6,'TMAX=',F5.2,'implt=',F5.2/)
120 FORMAT(2x,'x=',5x,'NUMERICAL',F10.2,5X,'EXAT','ER',/)
130 FORMAT(3x,F4.2,3F13.6)
STOP
END
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。