1 : C LUMP6 SOURCE CHAT 05/01/13 01:27:17 5004 2 : SUBROUTINE LUMP6(REL,LRE,RE) 3 : c==================================================================== 4 : c 5 : c utilisé par l'opérateur lump pour les éléments pout timo et tuya 6 : c 7 : c remplissage de re à partir de 8 : c rel (lre,lre) matrice de rigidite triangulaire 9 : c inferieure. 10 : c 11 : c on diagonalise la matrice en somme les termes de la 12 : c meme lignes, somme que l'on met sur la diagonale 13 : c pour les dd de translation 14 : c 15 : c pour les ddl de rotation on prend la trace divisée par le 16 : c nombre de termes 17 : c 18 : c ce travail est realisé dans le repere global 19 : c 20 : c on suppsoe que re est initialisée à 0 21 : c 22 : c==================================================================== 23 : IMPLICIT INTEGER(I-N) 24 : IMPLICIT REAL*8(A-H,O-Z) 25 : DIMENSION REL(LRE,*),RE(LRE,*) 26 : * 27 : * 28 : * 29 : c on traite ux uy uz 30 : c boucle sur les noeuds 31 : NTRA = 3 32 : IF (LRE .NE. 12 ) THEN 33 : WRITE(*,*) 'Erreur dans lump6.eso' 33 : CALL ERREUR(5) 34 : ENDIF 35 : 36 : DO 430 I=1,2 37 : c boucle sur les ddl ux uy uz locaux 38 : DO 420 J=1,NTRA 39 : IDERIJ = (NTRA+3)*(I-1) + J 40 : SUM = 0.D0 41 : DO 410 K=1,2 42 : DO 400 L=1,NTRA 43 : IDERKL= (NTRA+3)*(K-1)+L 44 : SUM = SUM + REL(IDERIJ,IDERKL) 45 : 400 CONTINUE 46 : 410 CONTINUE 47 : RE(IDERIJ,IDERIJ) = SUM 48 : 420 CONTINUE 49 : 430 CONTINUE 50 : c 51 : c on traite maintenant rx ry rz 52 : c 53 : NTRA = 3 54 : TRAC = 0.D0 55 : c boucle sur les noeuds 56 : DO 530 I=1,2 57 : c boucle sur les ddl rx ry rz 58 : DO 520 J=1,NTRA 59 : IDERIJ = (NTRA+3)*(I-1) + 3 + J 60 : TRAC = TRAC + REL(IDERIJ,IDERIJ) 61 : 520 CONTINUE 62 : 530 CONTINUE 63 : c 64 : DO 630 I=1,2 65 : c boucle sur les ddl rx ry rz remplir re() 66 : DO 620 J=1,NTRA 67 : IDERIJ = (NTRA+3)*(I-1) + 3 + J 68 : RE(IDERIJ,IDERIJ) = TRAC / 6.D0 69 : 620 CONTINUE 70 : 630 CONTINUE 71 : * 72 : RETURN 73 : END 74 : 75 :
© Cast3M 2003 - All rights reserved.
Disclaimer