OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
c3ke3.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "com04_c.inc"
#include "param_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine c3ke3 (jft, jlt, nft, npt, mtn, ithk, ncycle, istrain, ipla, pm, geo, ixtg, elbuf_str, bufmat, offset, indxof, etag, iddl, ndof, k_diag, k_lt, iadk, jdik, ihbe, thke, ismstr, x, ikgeo, ipm, igeo, iexpan, iparg, isubstack, stack, drape_sh3n, indx_drape, sedrape, numel_drape)

Function/Subroutine Documentation

◆ c3ke3()

subroutine c3ke3 ( integer jft,
integer jlt,
integer nft,
integer npt,
integer mtn,
integer ithk,
integer ncycle,
integer istrain,
integer ipla,
pm,
geo,
integer, dimension(nixtg,*) ixtg,
type (elbuf_struct_), target elbuf_str,
bufmat,
integer offset,
integer, dimension(mvsiz) indxof,
integer, dimension(*) etag,
integer, dimension(*) iddl,
integer, dimension(*) ndof,
k_diag,
k_lt,
integer, dimension(*) iadk,
integer, dimension(*) jdik,
integer ihbe,
thke,
integer ismstr,
x,
integer ikgeo,
integer, dimension(*) ipm,
integer, dimension(npropgi,*) igeo,
integer iexpan,
integer, dimension(*) iparg,
integer isubstack,
type (stack_ply) stack,
type (drape_), dimension(numeltg_drape) drape_sh3n,
integer, dimension(sedrape) indx_drape,
integer, intent(in) sedrape,
integer, intent(in) numel_drape )

Definition at line 44 of file c3ke3.F.

54C-----------------------------------------------
55C M o d u l e s
56C-----------------------------------------------
57 USE elbufdef_mod
58 USE stack_mod
59 USE drape_mod
60C-----------------------------------------------
61C I m p l i c i t T y p e s
62C-----------------------------------------------
63#include "implicit_f.inc"
64C-----------------------------------------------
65C G l o b a l P a r a m e t e r s
66C-----------------------------------------------
67#include "mvsiz_p.inc"
68C-----------------------------------------------
69C C o m m o n B l o c k s
70C-----------------------------------------------
71#include "com04_c.inc"
72#include "param_c.inc"
73C-----------------------------------------------
74C D U M M Y A R G U M E N T S
75C-----------------------------------------------
76C
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(*)
85C REAL OU REAL*8
87 . pm(npropm,*),geo(npropg,*),bufmat(*), x(3,*),thke(*)
88 my_real
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)
95C-----------------------------------------------
96C L o c a l V a r i a b l e s
97C-----------------------------------------------
98c indx utilise localement contrairement aux coques 4n
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
102 my_real
103 . area(mvsiz),px1(mvsiz), py1(mvsiz), py2(mvsiz),
104 . sigy(mvsiz),thk0(mvsiz),
105 . x2(mvsiz) ,y2(mvsiz), x3(mvsiz),y3(mvsiz)
106 my_real
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)
110 my_real
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)
122C-----------------------------------------------
123 my_real,
124 . DIMENSION(:) ,POINTER :: dir_a, dir_b
125 my_real,
126 . ALLOCATABLE, DIMENSION(:), TARGET :: dira,dirb
127 TYPE(G_BUFEL_) ,POINTER :: GBUF
128C-----------------------------------------------
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
152C
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,r12,r13,r21,r22,r23,r31,r32,r33,
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
182C-----------------------------------------------
183C IF [KT]
184C-----------------------------------------------
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)
204C----------------------------------------------------------------------------
205C SUB-MATRICES [KE] LOCAL
206C----------------------------
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
219C
220 CALL c3derirz(jft ,jlt ,area ,x2 ,x3 ,
221 2 y2 ,y3 ,bm0rz,b0rz,bkrz,berz )
222 CALL c3lkerz3(jft,jlt,hm,hz,
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
230C----------------------------
231C TRANSFORME [KE] LOCALE AU GLOBALE et ASSEMBLAGE----
232C----------------------------
233 CALL c3sumg3(jft ,jlt ,
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
243 IF (neig>0) CALL c3eoff(
244 1 jft, jlt, ixtg, etag, off)
245 CALL assem_c3(
246 1 ixtg ,nel ,iddl ,ndof ,k_diag ,
247 2 k_lt ,iadk ,jdik ,ke11 ,ke12 ,
248 3 ke13 ,ke22 ,ke23 ,ke33 ,off )
249C-------------------------
250 RETURN
subroutine assem_c3(ixtg, nel, iddl, ndof, k_diag, k_lt, iadk, jdik, kc11, kc12, kc13, kc22, kc23, kc33, off)
Definition assem_c3.F:35
subroutine c3be3(jft, jlt, px1, py1, py2, x2, x3, y3, area)
Definition c3be3.F:30
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)
Definition c3coork3.F:44
subroutine c3derirz(jft, jlt, area, x2, x3, y2, y3, bmrz, b0rz, bkrz, berz)
Definition c3defo3.F:267
subroutine c3eoff(jft, jlt, ixtg, etag, off)
Definition c3eoff.F:29
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)
Definition c3lke3.F:36
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)
Definition c3lke3.F:572
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)
Definition c3sumg3.F:42
subroutine cmatip3(jft, jlt, pm, mat, pid, mtn, npt, hm, hf, iorth, hmor, hfor, hmfor, ipg)
Definition cmatc3.F:582
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)
Definition cmatc3.F:47
#define my_real
Definition cppsort.cpp:32
subroutine area(d1, x, x2, y, y2, eint, stif0)