mod_nr.f90

来自「1D有限差分波动方程模拟」· F90 代码 · 共 60 行

F90
60
字号
MODULE MOD_NRUSE NRTYPE! module contains procedures from Numerical Recepies! note: procedures may be slightly modifiedIMPLICIT NONE!-------------------------------------------------------- implementationCONTAINS!---------------------------------------------------------------- POLINT  SUBROUTINE POLINT(XA,YA,X,Y,N)  IMPLICIT NONE  INTEGER            :: N, I  REAL(DP), DIMENSION(:) :: XA, YA  REAL(DP)               :: X , Y  Y=0  IF ( XA(1)<XA(N) ) THEN        DO I = 1, N-1      IF      ( X == XA(I  ) ) THEN        Y = YA(I)        RETURN      ELSE IF ( X == XA(I+1) ) THEN        Y = YA(I+1)        RETURN      ELSE IF ( X <  XA(I+1) ) THEN        Y = (YA(I+1)-YA(I))/(XA(I+1)-XA(I))*(X-XA(I))+YA(I)        RETURN      END IF    END DO  ELSE    DO I = 1, N-1      IF      ( X == XA(I  ) ) THEN        Y = YA(I)        RETURN      ELSE IF ( X == XA(I+1) ) THEN        Y = YA(I+1)        RETURN      ELSE IF ( X >  XA(I+1) ) THEN        Y = (YA(I+1)-YA(I))/(XA(I+1)-XA(I))*(X-XA(I))+YA(I)        RETURN      END IF    END DO  END IF  END SUBROUTINE POLINTEND MODULE MOD_NR

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?