FUNCTION FT(T,N,X,F) ! ! INTERPOLATION D'UNE LISTE A PAS NON CONSTANT. ! Provenance: exablacop.for (extraction 15/9/98). ! Auteur de FT inconnu (origine avant 1980 probablement). ! Quelques modifications f77 et tests par G.Alecian ! X est le tableau de la variable discrete ! F est le tableau de la fonction F(X) ! T est la valeur de X a laquelle on veut interpoler (resultat FT=F(T)) ! N est la dimension du tableau IMPLICIT DOUBLE PRECISION(A-H,O-Z) INTEGER :: N, I, J DIMENSION X(N),F(N) DO J=1,N I=J IF(T-X(J)) 3,2,1 2 FT=F(J) GOTO 1000 1 CONTINUE END DO 3 CONTINUE IF(I.EQ.1) I=2 IF(I.GE.N) I=N-1 T0=T-X(I-1) T1=T-X(I) T2=T-X(I+1) U0=X(I+1)-X(I-1) U1=X(I+1)-X(I) U2=X(I)-X(I-1) if((U0.eq.0.).or.(U1.eq.0.).or.(U2.eq.0.)) then print*,'I,T,U0,U1,U2: ', I, T,U0,U1,U2 print*,'Probleme: modele hors limite => STOP' stop end if A=T0/U0 B=T1/U1 C=T2/U2 D=T0/U1 E=T1/U0 FT=F(I+1)*A*B - F(I)*D*C + F(I-1)*E*C 1000 CONTINUE END FUNCTION FT