Download tufibs.eso

Back to the list

   1 : C TUFIBS    SOURCE    CHAT      05/01/13    03:55:14     5004           
   2 :       SUBROUTINE TUFIBS(FORCE,CONT,CAR,WORK,KERRE)
   3 : C----------------------------------------------------------------------
   4 : C     B*SIGMA POUR L ELEMENT TUYAU FISSURE
   5 : C     
   6 : C ENTREES
   7 : C     CONT(8)     = LES CONTRAINTES
   8 : C     CAR(9)      = LES CARACTERISTIQUES
   9 : C                      CAR(1) = RAYON  EXTERIEUR DU TUYAU
  10 : C                      CAR(2) = EPAISSEUR DU TUYAU
  11 : C                      CAR(3),CAR(4),CAR(5)  AXE DU TUYAU
  12 : C                      CAR(6),CAR(7),CAR(8)  DIRECTION DE LA FISSU
  13 : C                      CAR(9)  = ANGLE DE LA FISSURE
  14 : C  TABLEAU DE TRAVAIL
  15 : C     WORK(21)   = TABLEAU DE TRAVAIL
  16 : C  SORTIES
  17 : C     FORCE(12)  = LES FORCES AUX DEUX NOEUDS
  18 : C     
  19 : C     KERRE = CODE D'ERREUR
  20 : C             0 SI PAS DE PROBLEME, SINON :
  21 : C             1 SI V2 EST NUL OU SI V1 ET V2 SONT COLINEAIRES
  22 : C             2 SI V1 EST NUL
  23 : C             3 SI TUYAU TROP EPAIS
  24 : C----------------------------------------------------------------------
  25 :       IMPLICIT INTEGER(I-N)
  26 :       IMPLICIT REAL*8(A-H,O-Z)
  27 : C    Include contenant quelques constantes dont XPI :
  28 : -INC CCREEL
  29 :       PARAMETER(UN=1.D0,XEPS=1.D-10)
  30 :       DIMENSION FORCE(*),CONT(*),CAR(*),WORK(*)
  31 :       DIMENSION V1(3),V2(3),BV1(3),BV2(3),BPSS(3,3)
  32 :       KERRE=0
  33 : C     
  34 : C   ON REMPLIT LES FORCES NODALES DANS LE REPERE LOCAL
  35 : C     
  36 :       DO 1 I=1,6
  37 :          WORK(I)=-CONT(I)
  38 :          WORK(I+6)=CONT(I)
  39 :  1    CONTINUE
  40 : C     
  41 : C   ON PASSE (AVEC DIFFICULTE) DANS LE REPERE GLOBAL
  42 : C     
  43 :       V1(1)=CAR(3)
  44 :       V1(2)=CAR(4)
  45 :       V1(3)=CAR(5)
  46 :       V2(1)=CAR(6)
  47 :       V2(2)=CAR(7)
  48 :       V2(3)=CAR(8)
  49 : C     
  50 : C     NORMALISATION DES VECTEURS V1 ET V2.
  51 : C     
  52 :       XNV1 = XZERO
  53 :       XNV2 = XZERO
  54 :       DO 5 I=1,3
  55 :          XNV1 = XNV1 + (V1(I)*V1(I))
  56 :          XNV2 = XNV2 + (V2(I)*V2(I))
  57 :  5    CONTINUE
  58 :       IF (XNV1.LT.XEPS) THEN
  59 :          KERRE = 2
  60 :          GOTO 666
  61 :       ENDIF
  62 :       IF (XNV2.LT.XEPS) THEN
  63 :          KERRE = 1
  64 :          GOTO 666
  65 :       ENDIF
  66 :       XNV1 = UN/SQRT(XNV1)
  67 :       XNV2 = UN/SQRT(XNV2)
  68 :       DO 10 I=1,3
  69 :          BV1(I) = V1(I)*XNV1
  70 :          BV2(I) = V2(I)*XNV2
  71 :  10   CONTINUE
  72 : C     
  73 : C     ORTHOGONALISATION ET RENORMALISATION DE V2.
  74 : C     
  75 :       PS = (BV1(1)*BV2(1))+(BV1(2)*BV2(2))+(BV1(3)*BV2(3))
  76 : C     
  77 : C     TEST SUR LA COLINEARITE DE V1 ET V2.
  78 : C     
  79 :       IF(ABS(PS).GE.(.99D0)) THEN
  80 :          KERRE = 1
  81 :          GOTO 666
  82 :       ELSE
  83 :          XNV2 = UN/SQRT(UN-(PS**2))
  84 :          DO 15 I=1,3
  85 :             BV2(I) = XNV2*(BV2(I)-(PS*BV1(I)))
  86 :  15      CONTINUE
  87 :       ENDIF
  88 : C     
  89 : C     CALCUL DE LA MATRICE DE PASSAGE
  90 : C     GLOBAL = BPSS * LOCAL
  91 : C     V1 REPRESENTE L'AXE LOCAL DES Z
  92 : C     V2 REPRESENTE L'AXE LOCAL DES Y
  93 : C     
  94 :       DO 20 I=1,3
  95 :          BPSS(I,1) =BV1(I)
  96 :          BPSS(I,2) =BV2(I)
  97 :  20   CONTINUE
  98 :       BPSS(1,3) = (BPSS(2,1)*BPSS(3,2))-(BPSS(3,1)*BPSS(2,2))
  99 :       BPSS(2,3) = (BPSS(3,1)*BPSS(1,2))-(BPSS(1,1)*BPSS(3,2))
 100 :       BPSS(3,3) = (BPSS(1,1)*BPSS(2,2))-(BPSS(2,1)*BPSS(1,2))
 101 : C     
 102 : C     TRANSFORMATION DES FORCES LOCALES EN GLOBALES
 103 : C     
 103 :       CALL MATVEC(WORK,FORCE,BPSS,4)
 104 : C     
 105 :  666  CONTINUE
 106 :       RETURN
 107 :       END
 108 : 
 109 : 
 110 :  
 111 :  
 112 :  

© Cast3M 2003 - All rights reserved.
Disclaimer