inte3p
C INTE3P SOURCE CHAT 05/01/13 00:39:59 5004 C SOURCE MARTINEZ (MODIFIE LE 3/07/1998) C C======================================================================= C & COEF2,DIM1,DIM2,DIM3) C C======================================================================= C C Calcul de transformations de phases C appelee par INTERV C C interpolation lineaire (= calcul de coordonnees barycentriques) C dans un plan C C T0,TP0,ZA0 point a interpoler C T1,TP1,ZA1 1er point d'interpolation C T2,TP2,ZA2 2eme point d'interpolation C T3,TP3,ZA3 3eme point d'interpolation C COEF2 coef d'interpolation trouves C DIM1,DIM2,DIM3 dimensions de l'espace d'interpolation C C routines appelees C PROJ projection C EQHOM3 resolution d'une equation sans second membre C C======================================================================= C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) REAL*8 COEF2(4),A(3,3),X(3) REAL*8 M0(3),M1(3),M2(3),M3(3),P0(3) LOGICAL DIM1,DIM2,DIM3 C DIM3=.FALSE. DIM2=.FALSE. DIM1=.FALSE. C M0(1)=T0 M0(2)=TP0 M0(3)=ZA0 M1(2)=TP1 M1(3)=ZA1 M2(2)=TP2 M2(3)=ZA2 M3(1)=T3 M3(2)=TP3 M3(3)=ZA3 C C---------- PROJECTION DE M0 SUR LE PLAN M1,2,3 S'IL EXISTE ------------ C C C----------------------------------------------------------------------- C---------- CAS OU M1,2,3 GENERENT UN PLAN ----------------------------- C----------------------------------------------------------------------- C IF (DIM2.EQV..TRUE.) THEN C T0=P0(1) TP0=P0(2) ZA0=P0(3) * write (*,2) P0(1),P0(2),P0(3) *2 format ('P0(1) = ',f8.2,' P0(2) = ',f8.4,' P0(3) = ',f8.4) C A(1,3)=T0-T3 A(2,1)=TP0-TP1 A(2,2)=TP0-TP2 A(2,3)=TP0-TP3 A(3,1)=ZA0-ZA1 A(3,2)=ZA0-ZA2 A(3,3)=ZA0-ZA3 C C---------- RESOLUTION DE AX = 0 --------------------------------------- C C SLANDA = X(1)+X(2)+X(3) C C---------- CONTROLE, NORMALEMENT INUTILE, POUR VERIFIER M1,2,3 = PLAN - C IF (ABS(SLANDA).LT.1.D-12) THEN DIM2=.FALSE. ELSE COEF2(1)=X(1)/SLANDA COEF2(2)=X(2)/SLANDA COEF2(3)=X(3)/SLANDA C ENDIF ENDIF C C----------------------------------------------------------------------- C---------- CAS OU M1,2,3 GENERENT UNE DROITE -------------------------- C----------------------------------------------------------------------- C IF (DIM2.EQV..FALSE.) THEN DIM1=.TRUE. C C > LE PROJETE P0 DE M0 SUR LA DROITE M1,2,3 A POUR COORDONNEES C > BARYCENTRIQUES (M1,1.-SA2) (M2,SA2) OU SA2 = M1M0.M1M2 C SA2=(M0(1)-M1(1))*(M2(1)-M1(1)) . +(M0(2)-M1(2))*(M2(2)-M1(2)) . +(M0(3)-M1(3))*(M2(3)-M1(3)) C IF (SA2.GT.0..AND.SA2.LE.1.) THEN COEF2(1)=1.-SA2 COEF2(2)=SA2 COEF2(3)=0. ELSE C C > LE PROJETE P0 DE M0 SUR LA DROITE M1,2,3 A POUR COORDONNEES C > BARYCENTRIQUES (M1,1.-SA3) (M3,SA3) OU SA3 = M1M0.M1M3 C SA3=(M0(1)-M1(1))*(M3(1)-M1(1)) . +(M0(2)-M1(2))*(M3(2)-M1(2)) . +(M0(3)-M1(3))*(M3(3)-M1(3)) COEF2(1)=1.-SA3 COEF2(2)=0. COEF2(3)=SA3 ENDIF ENDIF C RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales