Download trino6.eso

Back to the list

   1 : C TRINO6    SOURCE    CHAT      05/01/13    03:47:35     5004           
   2 :       SUBROUTINE TRINO6(ICM,IDIM,XE,XEC,XX,SHPC,SGA,QSI,IG)
   3 :       IMPLICIT INTEGER(I-N)
   4 :       IMPLICIT REAL*8 (A-H,O-Z)  
   5 :       DIMENSION A(2,6),AJ(2,2),X(2),XE(3,*),XEC(3,2),XX(3,2),
   6 :      & BJ(2,2),F(2),SHPC(6,20,*),SGA(3,5,5),QSI(3,2),DT(2),SIB(2)
   7 :       DATA EPSI,FR/1.D-7,4.D0/
   8 : C --- IG: NUMERO DU POINT DE GAUSS
   9 :       DO 10 I=1,IDIM
  10 :       A(I,1)=XE(I,1)-XX(I,IG)
  11 :       A(I,2)=-3.D0*XE(I,1)+4.D0*XE(I,2)-XE(I,3)
  12 :       A(I,3)=-3.D0*XE(I,1)-XE(I,5)+4.D0*XE(I,6)
  13 :       A(I,4)= 2.D0*XE(I,1)-4.D0*XE(I,2)+2.D0*XE(I,3)
  14 :       A(I,5)= 4.D0*(XE(I,1)-XE(I,2)+XE(I,4)-XE(I,6))
  15 :   10  A(I,6)= 2.D0*XE(I,1)+2.D0*XE(I,5)-4.D0*XE(I,6)
  16 : C --- Initialisation  
  17 :       DO 15 I=1,IDIM
  18 :   15  X(I)=0.D0
  19 : C
  20 :       ITER=0
  21 :       ICRI=0
  22 :   16  CONTINUE
  23 :  100  CONTINUE
  24 : C --- LES DERIVEES DES FONCTIONS DE TRANSFORMATION
  25 :       DO 20 I=1,IDIM
  26 :       AJ(I,1)=A(I,2)+2.0*A(I,4)*X(1)+A(I,5)*X(2)
  27 :   20  AJ(I,2)=A(I,3)+A(I,5)*X(1)+2.0*A(I,6)*X(2)
  28 : C --- Calcul de l'inverse de la matrice AJ et son determinant :BJ=inverse(AJ)
  28 :       CALL INVER2(AJ,BJ,DET,ICRI)
  29 :       DO 40 I=1,IDIM
  30 :   40  F(I)=A(I,1)+A(I,2)*X(1)+A(I,3)*X(2)+A(I,4)*X(1)*X(1)
  31 :      &    +A(I,5)*X(1)*X(2)+A(I,6)*X(2)*X(2)
  32 :       DD=SQRT(F(1)*F(1)+F(2)*F(2))
  33 :       IF(DD.GT.EPSI) THEN
  34 :       ITER=ITER+1
  35 :       DO 50 I=1,IDIM
  36 :   50  X(I)=X(I)-BJ(I,1)*F(1)-BJ(I,2)*F(2)
  37 :       GOTO 100
  38 :       END IF
  39 :       DO 60 I=1,IDIM
  40 :   60  QSI(I,IG)=X(I)
  41 :       C=1.D0-X(1)-X(2)
  42 : C --- Calcul des fonctions d'interpolation leur derivees
  43 : C --- Fonctions d'interpolation Ni
  44 :       SHPC(1,1,IG)=-C*(1.D0-2.D0*C)
  45 :       SHPC(1,2,IG)= FR*X(1)*C
  46 :       SHPC(1,3,IG)=-X(1)*(1.D0-2.D0*X(1))
  47 :       SHPC(1,4,IG)= FR*X(1)*X(2)
  48 :       SHPC(1,5,IG)=-X(2)*(1.D0-2.D0*X(2))
  49 :       SHPC(1,6,IG)= FR*X(2)*C
  50 :       IF(ICM.EQ.0) GOTO 1000
  51 : C --- Derivee de Ni par rapport a QSI
  52 :       SHPC(2,1,IG)= 1.D0-FR*C
  53 :       SHPC(2,2,IG)= FR*(C-X(1))
  54 :       SHPC(2,3,IG)=-1.D0+FR*X(1)
  55 :       SHPC(2,4,IG)= FR*X(2)
  56 :       SHPC(2,5,IG)= 0.D0
  57 :       SHPC(2,6,IG)=-FR*X(2)
  58 : C --- Derivee de Ni par rapport a ETA
  59 :       SHPC(3,1,IG)= SHPC(2,1,IG)
  60 :       SHPC(3,2,IG)=-FR*X(1)
  61 :       SHPC(3,3,IG)= 0.D0
  62 :       SHPC(3,4,IG)= FR*X(1)
  63 :       SHPC(3,5,IG)=-1.D0+FR*X(2)
  64 :       SHPC(3,6,IG)= FR*(C-X(2))
  65 : C
  66 :       DJ=0.0
  67 :       DO 70 I=1,IDIM
  68 :       DT(I)=0.5D0*(XEC(I,2)-XEC(I,1))
  69 :       SIB(I)=DT(I)
  70 :       DJ=DJ+DT(I)*DT(I)
  71 :       DO 70 J=1,IDIM
  72 :   70  BJ(I,J)=0.0
  73 :       DO 90 I=1,IDIM
  74 :       DO 90 J=1,IDIM
  75 :       DO 80 K=1,6
  76 :   80  BJ(I,J)=BJ(I,J)+XE(I,K)*SHPC(J+1,K,IG)
  77 :   90  CONTINUE
  78 : 
  79 : C --- LES DRIVEES
  79 :       CALL LINEQ1(BJ,DT,X)
  80 :       DJ=SQRT(DJ)
  81 :       DO 120 I=1,IDIM
  82 :  120  SIB(I)=SIB(I)/DJ
  83 : 1000  CONTINUE
  84 :       DO 2000 IS=1,IDIM
  85 : C --- Coordonnees du point d'integration dans le systeme reel (x,y,z)
  86 :       SGA(IS,1,IG)=XX(IS,IG)
  87 : C --- Coordonnees du point d'integration dans le systeme de reference 
  88 : C     (qsi,eta,dze)
  89 :       SGA(IS,2,IG)=QSI(IS,IG)
  90 : C --- Derivee de (qsi,eta) par rapport a miu
  91 :       SGA(IS,3,IG)=X(IS)
  92 : C --- Cosinus du cable avec les axes
  93 :       SGA(IS,4,IG)=SIB(IS)
  94 : C --- Jacobien
  95 :       SGA(IS,5,IG)=DJ
  96 :  2000 CONTINUE
  97 :       END
  98 :       
  99 :       
 100 : 
 101 :  
 102 :  

© Cast3M 2003 - All rights reserved.
Disclaimer