Download inte3p.eso

Back to the list

   1 : C INTE3P    SOURCE    CHAT      05/01/13    00:39:59     5004           
   2 : C   SOURCE  MARTINEZ (MODIFIE LE 3/07/1998)
   3 : C
   4 : C=======================================================================
   5 : C
   6 :       SUBROUTINE INTE3P(T0,TP0,ZA0,T1,TP1,ZA1,T2,TP2,ZA2,T3,TP3,ZA3,
   7 :      &                  COEF2,DIM1,DIM2,DIM3)
   8 : C
   9 : C=======================================================================
  10 : C
  11 : C     Calcul de transformations de phases
  12 : C     appelee par INTERV
  13 : C
  14 : C     interpolation lineaire (= calcul de coordonnees barycentriques)
  15 : C     dans un plan
  16 : C
  17 : C     T0,TP0,ZA0      point a interpoler
  18 : C     T1,TP1,ZA1      1er point d'interpolation
  19 : C     T2,TP2,ZA2      2eme point d'interpolation
  20 : C     T3,TP3,ZA3      3eme point d'interpolation
  21 : C     COEF2           coef d'interpolation trouves
  22 : C     DIM1,DIM2,DIM3  dimensions de l'espace d'interpolation
  23 : C
  24 : C     routines appelees
  25 : C        PROJ     projection
  26 : C        EQHOM3   resolution d'une equation sans second membre
  27 : C
  28 : C=======================================================================
  29 : C
  30 :       IMPLICIT INTEGER(I-N)
  31 :       IMPLICIT REAL*8 (A-H,O-Z)
  32 :       REAL*8 COEF2(4),A(3,3),X(3)
  33 :       REAL*8 M0(3),M1(3),M2(3),M3(3),P0(3)
  34 :       LOGICAL DIM1,DIM2,DIM3
  35 : C
  36 :       DIM3=.FALSE.
  37 :       DIM2=.FALSE.
  38 :       DIM1=.FALSE.
  39 : C
  40 :       M0(1)=T0
  41 :       M0(2)=TP0
  42 :       M0(3)=ZA0
  43 :       M1(1)=T1
  44 :       M1(2)=TP1
  45 :       M1(3)=ZA1
  46 :       M2(1)=T2
  47 :       M2(2)=TP2
  48 :       M2(3)=ZA2
  49 :       M3(1)=T3
  50 :       M3(2)=TP3
  51 :       M3(3)=ZA3
  52 : C
  53 : C---------- PROJECTION DE M0 SUR LE PLAN M1,2,3 S'IL EXISTE ------------
  54 : C
  54 :       CALL PROJ(P0,M0,M1,M2,M3,DIM2)
  55 : C
  56 : C-----------------------------------------------------------------------
  57 : C---------- CAS OU M1,2,3 GENERENT UN PLAN -----------------------------
  58 : C-----------------------------------------------------------------------
  59 : C
  60 :       IF (DIM2.EQV..TRUE.) THEN
  61 : C
  62 :          T0=P0(1)
  63 :          TP0=P0(2)
  64 :          ZA0=P0(3)
  65 : *         write (*,2) P0(1),P0(2),P0(3)
  66 : *2        format ('P0(1) = ',f8.2,' P0(2) = ',f8.4,' P0(3) = ',f8.4)
  67 : C
  68 :          A(1,1)=T0-T1
  69 :          A(1,2)=T0-T2
  70 :          A(1,3)=T0-T3
  71 :          A(2,1)=TP0-TP1
  72 :          A(2,2)=TP0-TP2
  73 :          A(2,3)=TP0-TP3
  74 :          A(3,1)=ZA0-ZA1
  75 :          A(3,2)=ZA0-ZA2
  76 :          A(3,3)=ZA0-ZA3
  77 : C
  78 : C---------- RESOLUTION DE AX = 0 ---------------------------------------
  79 : C
  79 :          CALL EQHOM3 (X,A)
  80 : C
  81 :          SLANDA = X(1)+X(2)+X(3)
  82 : C
  83 : C---------- CONTROLE, NORMALEMENT INUTILE, POUR VERIFIER M1,2,3 = PLAN -
  84 : C
  85 :          IF (ABS(SLANDA).LT.1.D-12) THEN
  86 :             DIM2=.FALSE.
  87 :          ELSE
  88 :             COEF2(1)=X(1)/SLANDA
  89 :             COEF2(2)=X(2)/SLANDA
  90 :             COEF2(3)=X(3)/SLANDA
  91 : C
  92 :          ENDIF
  93 :       ENDIF
  94 : C
  95 : C-----------------------------------------------------------------------
  96 : C---------- CAS OU M1,2,3 GENERENT UNE DROITE --------------------------
  97 : C-----------------------------------------------------------------------
  98 : C
  99 :       IF (DIM2.EQV..FALSE.) THEN
 100 :          DIM1=.TRUE.
 101 : C
 102 : C       > LE PROJETE P0 DE M0 SUR LA DROITE M1,2,3 A POUR COORDONNEES
 103 : C       > BARYCENTRIQUES (M1,1.-SA2) (M2,SA2) OU SA2 = M1M0.M1M2
 104 : C
 105 :          SA2=(M0(1)-M1(1))*(M2(1)-M1(1))
 106 :      .      +(M0(2)-M1(2))*(M2(2)-M1(2))
 107 :      .      +(M0(3)-M1(3))*(M2(3)-M1(3))
 108 : C
 109 :          IF (SA2.GT.0..AND.SA2.LE.1.) THEN
 110 :             COEF2(1)=1.-SA2
 111 :             COEF2(2)=SA2
 112 :             COEF2(3)=0.
 113 :          ELSE
 114 : C
 115 : C       > LE PROJETE P0 DE M0 SUR LA DROITE M1,2,3 A POUR COORDONNEES
 116 : C       > BARYCENTRIQUES (M1,1.-SA3) (M3,SA3) OU SA3 = M1M0.M1M3
 117 : C
 118 :             SA3=(M0(1)-M1(1))*(M3(1)-M1(1))
 119 :      .         +(M0(2)-M1(2))*(M3(2)-M1(2))
 120 :      .         +(M0(3)-M1(3))*(M3(3)-M1(3))
 121 :             COEF2(1)=1.-SA3
 122 :             COEF2(2)=0.
 123 :             COEF2(3)=SA3
 124 :          ENDIF
 125 :       ENDIF
 126 : C
 127 :       RETURN
 128 :       END
 129 :  
 130 :  

© Cast3M 2003 - All rights reserved.
Disclaimer