1 : C COQ4RI SOURCE CHAT 05/01/12 22:21:41 5004
2 : SUBROUTINE COQ4RI (IGAU,BGENE,DJAC,EXCENT,NOPLAN,DHOOK,REL)
3 : ************************************************************************
4 : *
5 : * C O Q 4 R I
6 : * -----------
7 : *
8 : * FONCTION:
9 : * ---------
10 : *
11 : * Calcul du produit Bt.D.B en 1 point de Gauss, pour le COQ4.
12 : *
13 : * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN)
14 : * -----------
15 : *
16 : * IGAU (E) Num{ro du point de Gauss.
17 : * BGENE (E) Matrice "B".
18 : * DJAC (E) Jacobien.
19 : * EXCENT (E) Excentrement.
20 : * NOPLAN (E) = 1 si {l{ment non plan,
21 : * = 0 sinon.
22 : * DHOOK (E) Matrice de Hooke int{gr{e dans l'{paisseur.
23 : * S{paration par blocs:
24 : * membrane, puis flexion, puis cisaillement transverse.
25 : * (S) Contenu modifie.
26 : * REL (E) Matrice de Raideur.
27 : * (S) Complet{e par la contribution du point de Gauss
28 : * courant.
29 : *
30 : IMPLICIT INTEGER(I-N)
31 : PARAMETER (NSTRS=8, LRE=24)
32 : REAL*8 DJAC,EXCENT
33 : REAL*8 DHOOK(NSTRS,NSTRS),REL(LRE,LRE),BGENE(NSTRS,LRE)
34 : *
35 : * VARIABLES:
36 : * ----------
37 : *
38 : REAL*8 DB(NSTRS,LRE)
39 : *
40 : * MODE DE FONCTIONNEMENT:
41 : * -----------------------
42 : *
43 : * Utilisation de la valeur de "Bm" au point central pour toute ou
44 : * partie de la raideur de membrane:
45 : * - tout si {l{ment non plan,
46 : * - cisaillement sinon.
47 : *
48 : * Utilisation de la valeur de "Bf" au point central pour la raideur
49 : * de couplage membrane/flexion due @ l'excentrement dans les memes
50 : * conditions que pour la membrane.
51 : *
52 : * AUTEUR, DATE DE CREATION:
53 : * -------------------------
54 : *
55 : * Pascal MANIGOT 27 Mars 1991
56 : *
57 : ************************************************************************
58 : *
59 : DO 100 J=1,NSTRS
60 : DO 100 I=1,NSTRS
61 : DHOOK(I,J) = DJAC * DHOOK(I,J)
62 : 100 CONTINUE
63 : * END DO
64 : * END DO
65 : *
65 : CALL ZERO (DB,NSTRS,LRE)
66 : IF (ABS(EXCENT) .GT. 1.D-30) THEN
67 : INCMAX = 5
68 : ELSE
69 : INCMAX = 2
70 : END IF
71 : *
72 : DO 110 NOEUD=1,4
73 : N6 = 6 * (NOEUD - 1)
74 : *
75 : * eD.Bm | eD.h.Bf
76 : DO 120 J=1,INCMAX
77 : DO 120 I=1,3
78 : DO 120 K=1,3
79 : DB(I,J+N6) = DB(I,J+N6) + DHOOK(I,K)*BGENE(K,J+N6)
80 : 120 CONTINUE
81 : * END DO
82 : * END DO
83 : * END DO
84 : *
85 : IF (IGAU .LE. 4) THEN
86 : DO 160 J=3,5
87 : * e3/12.D.Bf
88 : DO 140 I=4,6
89 : DO 140 K=4,6
90 : DB(I,J+N6) = DB(I,J+N6) + DHOOK(I,K)*BGENE(K,J+N6)
91 : 140 CONTINUE
92 : * END DO
93 : * END DO
94 : * 5/6.eG.Bc
95 : DB(7,J+N6) = DB(7,J+N6) + DHOOK(7,7)*BGENE(7,J+N6)
96 : DB(8,J+N6) = DB(8,J+N6) + DHOOK(8,8)*BGENE(8,J+N6)
97 : 160 CONTINUE
98 : * END DO
99 : END IF
100 : *
101 : 110 CONTINUE
102 : * END DO
103 : *
104 : IF (IGAU .LE. 4) THEN
105 : * Int{gration exacte.
106 : *
107 : * Rigidit{ de Flexion et Cisaillement transverse.
108 : DO 200 M=3,5
109 : DO 200 L=3,5
110 : DO 200 NOEUD = 1,4
111 : L6 = 6 * (NOEUD - 1)
112 : DO 200 NOEUD2 = 1,4
113 : M6 = 6 * (NOEUD2 - 1)
114 : DO 200 I=4,8
115 : REL(L+L6,M+M6)
116 : & = REL(L+L6,M+M6) + BGENE(I,L+L6)*DB(I,M+M6)
117 : 200 CONTINUE
118 : * END DO
119 : * END DO
120 : * END DO
121 : * END DO
122 : * END DO
123 : *
124 : IF (NOPLAN .EQ. 0) THEN
125 : * Int{gration exacte raideur de membrane et de couplage
126 : * membrane/flexion, sauf cisaillement:
127 : DO 220 M=1,INCMAX
128 : DO 220 L=1,INCMAX
129 : DO 220 NOEUD = 1,4
130 : L6 = 6 * (NOEUD - 1)
131 : DO 220 NOEUD2 = 1,4
132 : M6 = 6 * (NOEUD2 - 1)
133 : REL(L+L6,M+M6) = REL(L+L6,M+M6)
134 : & + BGENE(1,L+L6)*DB(1,M+M6)
135 : & + BGENE(2,L+L6)*DB(2,M+M6)
136 : 220 CONTINUE
137 : * END DO
138 : * END DO
139 : * END DO
140 : * END DO
141 : END IF
142 : *
143 : ELSE IF (IGAU .EQ. 5) THEN
144 : *
145 : * Int{gration r{duite raideur de membrane et de couplage
146 : * membrane/flexion:
147 : IF (NOPLAN .EQ. 1) THEN
148 : I1 = 1
149 : ELSE
150 : I1 = 3
151 : END IF
152 : DO 240 M=1,INCMAX
153 : DO 240 L=1,INCMAX
154 : DO 240 NOEUD = 1,4
155 : L6 = 6 * (NOEUD - 1)
156 : DO 240 NOEUD2 = 1,4
157 : M6 = 6 * (NOEUD2 - 1)
158 : DO 240 I=I1,3
159 : REL(L+L6,M+M6)
160 : & = REL(L+L6,M+M6) + BGENE(I,L+L6)*DB(I,M+M6)
161 : 240 CONTINUE
162 : * END DO
163 : * END DO
164 : * END DO
165 : * END DO
166 : * END DO
167 : *
168 : END IF
169 : *
170 : END
171 :
© Cast3M 2003 - All rights reserved.
Disclaimer