c******************************************************************** SUBROUTINE newton(l,k,f,x,z,p,der) c routine PUBLIC du module mod_numerique c polynôme de newton c Auteur: P. Morel, Département J.D. Cassini, O.C.A., CESAM2k c entrées= c l : premier indice c k : degré du polynôme c f : table des f c x : abscisses c z : point d'interpolation c der : ordre requis de la dérivée c sortie c p : valeurs des dérivées jusqu'à l'ordre requis c----------------------------------------------------------------- USE mod_kind IMPLICIT NONE REAL (kind=dp), INTENT(in), DIMENSION(0:) :: f, x REAL (kind=dp), INTENT(in) :: z INTEGER, INTENT(in) :: l, k, der REAL (kind=dp), INTENT(out), DIMENSION(0:) :: p REAL (kind=dp), ALLOCATABLE, DIMENSION(:) :: a, ah, xh INTEGER :: j c------------------------------------------------------------------- ALLOCATE(a(0:k),xh(0:k),ah(0:k)) c PRINT*,l,k,der,z c différences divisées CALL difdiv(l,k,f,x,a) c réorganisation des abscisses et fonction DO j=0,k xh(j)=x(l+j) ; ah(j)=a(j) ENDDO c PRINT*,(f(j+l),j=0,k) ; PRINT*,(xh(j),j=0,k) ; PRINT*,(ah(j),j=0,k) c algorithme de Hörner CALL horner(k,der,z,ah,xh,p) c nettoyage DEALLOCATE(a, ah, xh) RETURN END SUBROUTINE newton