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