微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Fortran编程中的显式前向差分方法给出溢出-应该给出什么输入

如何解决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 举报,一经查实,本站将立刻删除。