54
55
56
57 USE elbufdef_mod
60
61
62
63#include "implicit_f.inc"
64
65
66
67#include "mvsiz_p.inc"
68
69
70
71#include "com04_c.inc"
72#include "param_c.inc"
73
74
75
76
77 INTEGER JFT ,JLT ,NFT ,NPT ,MTN ,ITHK ,
78 . NCYCLE,ISUBSTACK,
79 . ISTRAIN ,IPLA ,OFFSET,IHBE ,ISMSTR,IKGEO, IEXPAN
80 INTEGER , INTENT(IN) :: SEDRAPE,NUMEL_DRAPE
81 INTEGER, DIMENSION(SEDRAPE) :: INDX_DRAPE
82 INTEGER IXTG(NIXTG,*) ,IGEO(NPROPGI,*),IPM(*),IPARG(*)
83 INTEGER INDXOF(MVSIZ),
84 . ETAG(*),IDDL(*) ,NDOF(*) ,IADK(*) ,JDIK(*)
85
87 . pm(npropm,*),geo(npropg,*),bufmat(*), x(3,*),thke(*)
89 . ke11(36,mvsiz),ke22(36,mvsiz),ke33(36,mvsiz),
90 . ke12(36,mvsiz),ke13(36,mvsiz),ke23(36,mvsiz),off(mvsiz),
91 . k_diag(*) ,k_lt(*)
92 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
93 TYPE (STACK_PLY) :: STACK
94 TYPE (DRAPE_) :: DRAPE_SH3N(NUMELTG_DRAPE)
95
96
97
98
99 INTEGER MAT(MVSIZ),PID(MVSIZ),NGL(MVSIZ),INDX(MVSIZ)
100 INTEGER I,J,J1,J2,IREP,IUN,NEL,IORTH,IGTYP,L_DIRA,L_DIRB,NLAY,
101 . IDRIL,EP
103 .
area(mvsiz),px1(mvsiz), py1(mvsiz), py2(mvsiz),
104 . sigy(mvsiz),thk0(mvsiz),
105 . x2(mvsiz) ,y2(mvsiz), x3(mvsiz),y3(mvsiz)
107 . g(mvsiz) , vol0(mvsiz),thk02(mvsiz),zcfac(mvsiz,2),
108 . hm(mvsiz,4),hf(mvsiz,4),hc(mvsiz,2),hz(mvsiz),
109 . hmor(mvsiz,2),hfor(mvsiz,2),hmfor(mvsiz,6),gs(mvsiz)
111 . r11(mvsiz),r12(mvsiz),r13(mvsiz),
112 . r21(mvsiz),r22(mvsiz),r23(mvsiz),
113 . r31(mvsiz),r32(mvsiz),r33(mvsiz),
114 . k11(9,mvsiz),k12(9,mvsiz),k13(9,mvsiz),
115 . k22(9,mvsiz),k23(9,mvsiz),k33(9,mvsiz),
116 . m11(9,mvsiz),m12(9,mvsiz),m13(9,mvsiz),
117 . m22(9,mvsiz),m23(9,mvsiz),m33(9,mvsiz),
118 . mf11(9,mvsiz),mf12(9,mvsiz),mf13(9,mvsiz),
119 . mf22(9,mvsiz),mf23(9,mvsiz),mf33(9,mvsiz),
120 . fm12(9,mvsiz),fm13(9,mvsiz),fm23(9,mvsiz),
121 . bm0rz(mvsiz,3,2),b0rz(mvsiz,3),bkrz(mvsiz,2),berz(mvsiz,2)
122
124 . DIMENSION(:) ,POINTER :: dir_a, dir_b
126 . ALLOCATABLE, DIMENSION(:), TARGET :: dira,dirb
127 TYPE(G_BUFEL_) ,POINTER :: GBUF
128
129 iun = 1
130 nel=jlt-jft+iun
131 gbuf => elbuf_str%GBUF
132 idril = iparg(41)
133
134 igtyp = igeo(11,ixtg(5,1))
135 irep = igeo(6 ,ixtg(5,1))
136 nlay = elbuf_str%NLAY
137 l_dira = elbuf_str%BUFLY(1)%LY_DIRA
138 l_dirb = elbuf_str%BUFLY(1)%LY_DIRB
139 ALLOCATE(dira(nlay*nel*l_dira))
140 ALLOCATE(dirb(nlay*nel*l_dirb))
141 dira = zero
142 dirb = zero
143 dir_a => dira(1:nlay*nel*l_dira)
144 dir_b => dirb(1:nlay*nel*l_dirb)
145 IF (irep == 0) THEN
146 DO j=1,nlay
147 j1 = 1+(j-1)*l_dira*nel
148 j2 = j*l_dira*nel
149 dira(j1:j2) = elbuf_str%BUFLY(j)%DIRA(1:nel*l_dira)
150 ENDDO
151 ENDIF
152
153 CALL c3coork3(jft ,jlt ,x ,ixtg ,gbuf%OFF,
154 1 geo ,pid ,mat ,ngl ,
area ,
155 2 irep ,npt ,ismstr ,nlay ,
156 2 elbuf_str ,gbuf%SMSTR, dir_a,dir_b ,
157 3 x2 ,x3 ,y3 ,
158 4 r11
159 5 k11,k12,k13,k22,k23,k33,
160 6 m11,m12,m13,m22,m23,m33,
161 7 mf11,mf12,mf13,mf22,mf23,mf33,
162 8 fm12,fm13,fm23,off ,nel)
163 IF (irep>0) THEN
164 CALL cmatc3(jft ,jlt ,pm ,mat ,geo ,
165 1 pid ,
area ,thk0 ,thk02 ,gbuf%THK ,
166 2 thke ,vol0 ,mtn ,npt ,ithk ,
167 3 hm ,hf ,hc ,hz ,igtyp ,
168 4 iorth ,hmor ,hfor ,dir_a ,igeo ,
169 5 idril ,ihbe ,hmfor ,gs ,isubstack,
170 6 stack ,elbuf_str ,nlay ,drape_sh3n , nft ,
171 . nel ,indx_drape,sedrape,numel_drape)
172 ELSE
173 CALL cmatc3(jft ,jlt ,pm ,mat ,geo ,
174 1 pid ,
area ,thk0 ,thk02 ,gbuf%THK ,
175 2 thke ,vol0 ,mtn ,npt ,ithk ,
176 3 hm ,hf ,hc ,hz ,igtyp ,
177 4 iorth ,hmor ,hfor ,dira ,igeo ,
178 5 idril ,ihbe ,hmfor ,gs ,isubstack,
179 6 stack ,elbuf_str ,nlay ,drape_sh3n ,nft ,
180 . nel ,indx_drape,sedrape,numel_drape)
181 ENDIF
182
183
184
185 CALL cmatip3(jft ,jlt ,pm ,mat ,pid ,
186 1 mtn ,npt ,hm ,hf ,iorth ,
187 2 hmor ,hfor ,hmfor ,iun )
188 IF (iorth >0 ) THEN
189 DO i=1,9
190 DO ep=jft,jlt
191 mf11(i,ep) =zero
192 mf22(i,ep) =zero
193 mf33(i,ep) =zero
194 mf12(i,ep) =zero
195 mf13(i,ep) =zero
196 mf23(i,ep) =zero
197 fm12(i,ep) =zero
198 fm13(i,ep) =zero
199 fm23(i,ep) =zero
200 ENDDO
201 ENDDO
202 ENDIF
203 CALL c3be3(jft,jlt,px1,py1,py2 ,x2 ,x3 , y3 ,
area)
204
205
206
207 CALL c3lke3(jft,jlt,
area,thk0,thk02,hm,hf,hc,hz,
208 1 px1,py1,py2,vol0,
209 2 k11,k12,k13,k22,k23,k33,
210 3 m11,m12,m13,m22,m23,m33,
211 4 mf11,mf12,mf13,mf22,mf23,mf33,
212 5 fm12,fm13,fm23,ikgeo,gbuf%FOR,gbuf%MOM,
213 6 iorth,hmor,hfor,hmfor,idril,
214 7 nel)
215 IF (idril>0) THEN
216 DO i=jft,jlt
217 y2(i)=zero
218 END DO
219
221 2 y2 ,y3 ,bm0rz,b0rz,bkrz,berz )
223 1 px1,py1,py2,vol0,
area,
224 2 k11,k12,k13,k22,k23,k33,
225 3 m11,m12,m13,m22,m23,m33,
226 4 mf11,mf12,mf13,mf22,mf23,mf33,
227 5 fm12,fm13,fm23,iorth,hmor,
228 6 bm0rz,b0rz,bkrz,berz,thk0,hmfor)
229 END IF
230
231
232
234 1 r11,r12,r13,r21,r22,r23,r31,r32,r33,
235 2 k11,k12,k13,k22,k23,k33,
236 3 m11,m12,m13,m22,m23,m33,
237 4 mf11,mf12,mf13,mf22,mf23,mf33,
238 5 fm12,fm13,fm23,
239 6 ke11,ke22,ke33,ke12,ke13,ke23,idril,
240 7 iorth)
241
242
244 1 jft, jlt, ixtg, etag, off)
246 1 ixtg ,nel ,iddl ,ndof ,k_diag ,
247 2 k_lt ,iadk ,jdik ,ke11 ,ke12 ,
248 3 ke13 ,ke22 ,ke23 ,ke33 ,off )
249
250 RETURN
subroutine assem_c3(ixtg, nel, iddl, ndof, k_diag, k_lt, iadk, jdik, kc11, kc12, kc13, kc22, kc23, kc33, off)
subroutine c3be3(jft, jlt, px1, py1, py2, x2, x3, y3, area)
subroutine c3coork3(jft, jlt, x, ixtg, offg, geo, pid, mat, ngl, area, irep, npt, ismstr, nlay, elbuf_str, smstr, dir_a, dir_b, xl2, xl3, yl3, r11, r12, r13, r21, r22, r23, r31, r32, r33, k11, k12, k13, k22, k23, k33, m11, m12, m13, m22, m23, m33, mf11, mf12, mf13, mf22, mf23, mf33, fm12, fm13, fm23, off, nel)
subroutine c3derirz(jft, jlt, area, x2, x3, y2, y3, bmrz, b0rz, bkrz, berz)
subroutine c3eoff(jft, jlt, ixtg, etag, off)
subroutine c3lke3(jft, jlt, area, thk0, thk2, hm, hf, hc, hz, px1, py1, py2, vol, k11, k12, k13, k22, k23, k33, m11, m12, m13, m22, m23, m33, mf11, mf12, mf13, mf22, mf23, mf33, fm12, fm13, fm23, ikgeo, for, mom, iorth, hmor, hfor, hmfor, idril, nel)
subroutine c3lkerz3(jft, jlt, hm, hz, px1, py1, py2, vol, area, k11, k12, k13, k22, k23, k33, m11, m12, m13, m22, m23, m33, mf11, mf12, mf13, mf22, mf23, mf33, fm12, fm13, fm23, iorth, hmor, bm0rz, b0rz, bkrz, berz, thk0, hmfor)
subroutine c3sumg3(jft, jlt, r11, r12, r13, r21, r22, r23, r31, r32, r33, k11, k12, k13, k22, k23, k33, m11, m12, m13, m22, m23, m33, mf11, mf12, mf13, mf22, mf23, mf33, fm12, fm13, fm23, ke11, ke22, ke33, ke12, ke13, ke23, idril, iorth)
subroutine cmatip3(jft, jlt, pm, mat, pid, mtn, npt, hm, hf, iorth, hmor, hfor, hmfor, ipg)
subroutine cmatc3(jft, jlt, pm, mat, geo, pid, area, thk0, thk02, thk, thke, volg, mtn, npt, ithk, hm, hf, hc, hz, igtyp, iorth, hmor, hfor, dir, igeo, idril, ihbe, hmfor, gs, isubstack, stack, elbuf_str, nlay, drape, nft, nel, indx_drape, sedrape, numel_drape)
subroutine area(d1, x, x2, y, y2, eint, stif0)