Numérotation des lignes :

C TUFIBS    SOURCE    CHAT      05/01/13    03:55:14     5004      SUBROUTINE TUFIBS(FORCE,CONT,CAR,WORK,KERRE)C----------------------------------------------------------------------C     B*SIGMA POUR L ELEMENT TUYAU FISSURECC ENTREESC     CONT(8)     = LES CONTRAINTESC     CAR(9)      = LES CARACTERISTIQUESC                      CAR(1) = RAYON  EXTERIEUR DU TUYAUC                      CAR(2) = EPAISSEUR DU TUYAUC                      CAR(3),CAR(4),CAR(5)  AXE DU TUYAUC                      CAR(6),CAR(7),CAR(8)  DIRECTION DE LA FISSUC                      CAR(9)  = ANGLE DE LA FISSUREC  TABLEAU DE TRAVAILC     WORK(21)   = TABLEAU DE TRAVAILC  SORTIESC     FORCE(12)  = LES FORCES AUX DEUX NOEUDSCC     KERRE = CODE D'ERREURC             0 SI PAS DE PROBLEME, SINON :C             1 SI V2 EST NUL OU SI V1 ET V2 SONT COLINEAIRESC             2 SI V1 EST NULC             3 SI TUYAU TROP EPAISC----------------------------------------------------------------------      IMPLICIT INTEGER(I-N)      IMPLICIT REAL*8(A-H,O-Z)C    Include contenant quelques constantes dont XPI :-INC CCREEL      PARAMETER(UN=1.D0,XEPS=1.D-10)      DIMENSION FORCE(*),CONT(*),CAR(*),WORK(*)      DIMENSION V1(3),V2(3),BV1(3),BV2(3),BPSS(3,3)      KERRE=0CC   ON REMPLIT LES FORCES NODALES DANS LE REPERE LOCALC      DO 1 I=1,6         WORK(I)=-CONT(I)         WORK(I+6)=CONT(I) 1    CONTINUECC   ON PASSE (AVEC DIFFICULTE) DANS LE REPERE GLOBALC      V1(1)=CAR(3)      V1(2)=CAR(4)      V1(3)=CAR(5)      V2(1)=CAR(6)      V2(2)=CAR(7)      V2(3)=CAR(8)CC     NORMALISATION DES VECTEURS V1 ET V2.C      XNV1 = XZERO      XNV2 = XZERO      DO 5 I=1,3         XNV1 = XNV1 + (V1(I)*V1(I))         XNV2 = XNV2 + (V2(I)*V2(I)) 5    CONTINUE      IF (XNV1.LT.XEPS) THEN         KERRE = 2         GOTO 666      ENDIF      IF (XNV2.LT.XEPS) THEN         KERRE = 1         GOTO 666      ENDIF      XNV1 = UN/SQRT(XNV1)      XNV2 = UN/SQRT(XNV2)      DO 10 I=1,3         BV1(I) = V1(I)*XNV1         BV2(I) = V2(I)*XNV2 10   CONTINUECC     ORTHOGONALISATION ET RENORMALISATION DE V2.C      PS = (BV1(1)*BV2(1))+(BV1(2)*BV2(2))+(BV1(3)*BV2(3))CC     TEST SUR LA COLINEARITE DE V1 ET V2.C      IF(ABS(PS).GE.(.99D0)) THEN         KERRE = 1         GOTO 666      ELSE         XNV2 = UN/SQRT(UN-(PS**2))         DO 15 I=1,3            BV2(I) = XNV2*(BV2(I)-(PS*BV1(I))) 15      CONTINUE      ENDIFCC     CALCUL DE LA MATRICE DE PASSAGEC     GLOBAL = BPSS * LOCALC     V1 REPRESENTE L'AXE LOCAL DES ZC     V2 REPRESENTE L'AXE LOCAL DES YC      DO 20 I=1,3         BPSS(I,1) =BV1(I)         BPSS(I,2) =BV2(I) 20   CONTINUE      BPSS(1,3) = (BPSS(2,1)*BPSS(3,2))-(BPSS(3,1)*BPSS(2,2))      BPSS(2,3) = (BPSS(3,1)*BPSS(1,2))-(BPSS(1,1)*BPSS(3,2))      BPSS(3,3) = (BPSS(1,1)*BPSS(2,2))-(BPSS(2,1)*BPSS(1,2))CC     TRANSFORMATION DES FORCES LOCALES EN GLOBALESC      CALL MATVEC(WORK,FORCE,BPSS,4)C 666  CONTINUE      RETURN      END

© Cast3M 2003 - Tous droits réservés.
Mentions légales