OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
cmain3.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| cmain3 ../engine/source/materials/mat_share/cmain3.F
25!||--- called by ------------------------------------------------------
26!|| c3forc3 ../engine/source/elements/sh3n/coque3n/c3forc3.F
27!|| c3forc3_crk ../engine/source/elements/xfem/c3forc3_crk.F
28!|| cbaforc3 ../engine/source/elements/shell/coqueba/cbaforc3.F
29!|| cdk6forc3 ../engine/source/elements/sh3n/coquedk6/cdk6forc3.F
30!|| cdkforc3 ../engine/source/elements/sh3n/coquedk/cdkforc3.F
31!|| cforc3 ../engine/source/elements/shell/coque/cforc3.F
32!|| cforc3_crk ../engine/source/elements/xfem/cforc3_crk.f
33!|| czforc3 ../engine/source/elements/shell/coquez/czforc3.F
34!|| czforc3_crk ../engine/source/elements/xfem/czforc3_crk.F
35!||--- calls -----------------------------------------------------
36!|| delamination ../engine/source/properties/composite_options/stack/delamination.F
37!|| finter ../engine/source/tools/curve/finter.F
38!|| layini ../engine/source/elements/shell/coque/layini.F
39!|| mulawc ../engine/source/materials/mat_share/mulawc.F90
40!|| mulawglc ../engine/source/materials/mat_share/mulawglc.F
41!|| put_etfac ../engine/source/elements/solid/solide8z/put_etfac.F
42!|| thermexpc ../engine/source/materials/mat_share/thermexpc.F
43!|| usermat_shell ../engine/source/materials/mat_share/usermat_shell.F
44!||--- uses -----------------------------------------------------
45!|| drape_mod ../engine/share/modules/drape_mod.F
46!|| dt_mod ../engine/source/modules/dt_mod.F
47!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.f90
48!|| failwave_mod ../common_source/modules/failwave_mod.F
49!|| mat_elem_mod ../common_source/modules/mat_elem/mat_elem_mod.F90
50!|| mulawc_mod ../engine/source/materials/mat_share/mulawc.F90
51!|| nlocal_reg_mod ../common_source/modules/nlocal_reg_mod.F
52!|| sensor_mod ../common_source/modules/sensor_mod.f90
53!|| stack_mod ../engine/share/modules/stack_mod.F
54!|| table_mod ../engine/share/modules/table_mod.F
55!|| timer_mod ../engine/source/system/timer_mod.F90
56!||====================================================================
57 SUBROUTINE cmain3 (TIMERS,
58 1 ELBUF_STR ,JFT ,JLT ,NFT ,IPARG ,
59 2 NEL ,MTN ,IPLA ,ITHK ,GROUP_PARAM,
60 3 PM ,GEO ,NPF ,TF ,BUFMAT ,
61 4 SSP ,RHO ,VISCMX ,DT1C ,SIGY ,
62 5 AREA ,EXX ,EYY ,EXY ,EXZ ,
63 6 EYZ ,KXX ,KYY ,KXY ,NU ,
64 7 OFF ,THK0 ,MAT ,PID ,MAT_ELEM ,
65 8 FOR ,MOM ,GSTR ,FAILWAVE ,FWAVE_EL ,
66 9 THK ,EINT ,IOFC ,
67 A G ,A11 ,A12 ,VOL0 ,INDXDEL ,
68 B NGL ,ZCFAC ,SHF ,GS ,EPSD_PG ,
69 C KFTS ,JHBE ,ALPE ,
70 D DIR_A ,DIR_B ,IGEO ,
71 E IPM ,IFAILURE ,NPG ,FHEAT ,
72 F TEMPEL ,DIE ,JTHE ,IEXPAN ,TEMPEL0 ,
73 G ISHPLYXFEM,PLY_EXX ,
74 H PLY_EYY ,PLY_EXY ,PLY_EXZ ,PLY_EYZ ,PLY_F ,
75 I DEL_PLY ,TH_IPLY ,SIG_IPLY ,E1X ,E1Y ,
76 J E1Z ,E2X ,E2Y ,E2Z ,E3X ,
77 K E3Y ,E3Z ,NG ,TABLE ,IXFEM ,
78 L OFFI ,SENSORS ,A11_IPLY ,ELCRKINI ,
79 M DIR1_CRK ,DIR2_CRK ,ALDT ,IDT_THERM ,THEACCFACT ,
80 N ISMSTR ,IR ,IS ,NLAY ,NPT ,
81 O IXLAY ,IXEL ,ISUBSTACK ,STACK ,
82 P F_DEF ,ITASK ,DRAPE ,VARNL ,NLOC_DMG ,
83 R INDX_DRAPE,THKE ,SEDRAPE ,NUMEL_DRAPE,DT ,
84 Q NCYCLE , SNPC ,STF ,NXLAYMAX ,IDEL7NOK ,
85 S USERL_AVAIL, MAXFUNC ,VARNL_NPTTOT, SBUFMAT ,SDIR_A ,
86 T SDIR_B ,FOR_G)
87C-----------------------------------------------
88C M o d u l e s
89C-----------------------------------------------
90 USE timer_mod
91 USE mulawc_mod
92 USE table_mod
93 USE mat_elem_mod
94 USE stack_mod
95 USE failwave_mod
96 USE drape_mod
98 USE sensor_mod
99 USE elbufdef_mod
100 USE dt_mod
101C-----------------------------------------------
102C I m p l i c i t T y p e s
103C-----------------------------------------------
104#include "implicit_f.inc"
105C-----------------------------------------------
106C G l o b a l P a r a m e t e r s
107C-----------------------------------------------
108#include "mvsiz_p.inc"
109C-----------------------------------------------
110C C o m m o n B l o c k s
111C-----------------------------------------------
112#include "param_c.inc"
113#include "com04_c.inc"
114#include "com08_c.inc"
115#include "scr18_c.inc"
116#include "impl1_c.inc"
117#include "timeri_c.inc"
118C-----------------------------------------------
119C D u m m y A r g u m e n t s
120C-----------------------------------------------
121 TYPE(timer_), INTENT(INOUT) :: TIMERS
122 INTEGER,INTENT(IN) :: USERL_AVAIL ! Flag for User libraries availability
123 INTEGER,INTENT(IN) :: MAXFUNC ! Maximum number of functions
124 INTEGER,INTENT(INOUT) :: IDEL7NOK ! Element deletion flag for IDEL flag in contact interfaces
125 INTEGER,INTENT(IN) :: NXLAYMAX ! XFEM : maximum number of layers
126 INTEGER,INTENT(IN) :: VARNL_NPTTOT ! Total number of integration points
127 INTEGER,INTENT(IN) :: SBUFMAT ! Size of BUFMAT
128 INTEGER,INTENT(IN) :: SDIR_A ! Size of DIR_A
129 INTEGER,INTENT(IN) :: SDIR_B ! Size of DIR_B
130 INTEGER,INTENT(IN) :: STF ! Size of TF
131 INTEGER,INTENT(IN) :: SNPC ! Size of NPF
132 INTEGER JFT,JLT,NFT,IR,IS,NPT,NG,NPG,NLAY,NEL,MTN,IPLA,IOFC,ITHK,
133 . KFTS,JHBE,IFAILURE,JTHE,IEXPAN,ISHPLYXFEM,ISMSTR,
134 . IXLAY,IXEL,IXFEM,ISUBSTACK,ITASK , NCYCLE
135 INTEGER , INTENT(IN) :: SEDRAPE,NUMEL_DRAPE
136 INTEGER MAT(MVSIZ), PID(MVSIZ), INDXDEL(MVSIZ), NGL(MVSIZ),NPF(*),
137 . IGEO(NPROPGI,*),IPM(NPROPMI,*),IPARG(*),
138 . A11_IPLY(MVSIZ,*),ELCRKINI(*),FWAVE_EL(NEL)
139 INTEGER , DIMENSION(SEDRAPE) :: INDX_DRAPE
140 INTEGER, INTENT(IN) :: IDT_THERM
141 my_real ,intent(in) :: THEACCFACT
142 my_real ,dimension(mvsiz) ,intent(in) :: EPSD_PG
143 my_real PM(NPROPM,*), GEO(NPROPG,*),TF(*),THK(*),EINT(JLT,*),FOR(NEL,5),
144 . MOM(NEL,3),GSTR(NEL,8),BUFMAT(*),G(*),A11(*),A12(*),VOL0(*),
145 . SHF(*),GS(*),SIGY(MVSIZ),RHO(MVSIZ),SSP(MVSIZ),VISCMX(MVSIZ),
146 . OFF(MVSIZ) ,THK0(MVSIZ) ,NU(MVSIZ),DT1C(MVSIZ),
147 . EXX(MVSIZ), EYY(MVSIZ), EXY(MVSIZ), EXZ(MVSIZ), EYZ(MVSIZ),
148 . KXX(MVSIZ), KYY(MVSIZ), KXY(MVSIZ), AREA(MVSIZ),
149 . ZCFAC(MVSIZ,2),ALPE(MVSIZ),DIR_A(SDIR_A),DIR_B(SDIR_B),TEMPEL(*),DIE(*),
150 . tempel0(mvsiz), ply_f(mvsiz,5,*),
151 . ply_exx(mvsiz,*),ply_eyy(mvsiz,*),ply_exy(mvsiz,*),
152 . ply_exz(mvsiz,*),ply_eyz(mvsiz,*),del_ply(mvsiz,3,*) ,
153 . th_iply(mvsiz,*), sig_iply(mvsiz,3,*),
154 . e1x(mvsiz), e1y(mvsiz), e1z(mvsiz),
155 . e2x(mvsiz), e2y(mvsiz), e2z(mvsiz),
156 . e3x(mvsiz), e3y(mvsiz), e3z(mvsiz),offi(mvsiz,*),
157 . dir1_crk(*),dir2_crk(*),dmg_scale(mvsiz),
158 . f_def(mvsiz,*),aldt(mvsiz),varnl(nel,*)
159 my_real, DIMENSION(NEL), INTENT(IN) :: thke
160 my_real, dimension(mvsiz), intent(inout) :: fheat
161 TYPE (TTABLE) TABLE(*)
162 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
163 TYPE (STACK_PLY) :: STACK
164 TYPE (FAILWAVE_STR_) ,TARGET :: FAILWAVE
165 TYPE (GROUP_PARAM_) :: GROUP_PARAM
166 TYPE (DRAPE_) :: DRAPE(NUMEL_DRAPE)
167 TYPE (MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
168 TYPE (NLOCAL_STR_) :: NLOC_DMG
169 TYPE (SENSORS_) ,INTENT(IN) :: SENSORS
170 TYPE (DT_), INTENT(IN) :: DT
171 my_real, dimension(nel,5), intent(inout) :: for_g
172C-----------------------------------------------
173C L o c a l V a r i a b l e s
174C-----------------------------------------------
175 INTEGER I,J,IT,MX,IGTYP,IFUNC_ALPHA,IPMAT_IPLY,ILAY,LAYNPT_MAX,NLAY_MAX
176 INTEGER MAT_IPLY(MVSIZ,NPT),IDAMP_FREQ_RANGE
177 INTEGER, DIMENSION(:) , ALLOCATABLE :: MATLY !! MATLY(MVSIZ*LAY_MAX)
178 my_real, DIMENSION(:) , ALLOCATABLE :: THKLY !! THKLY(MVSIZ*LAY_MAX*LAYNPT_MAX)
179 my_real, DIMENSION(:,:), ALLOCATABLE :: POSLY,THK_LY
180 !! POSLY(MVSIZ,LAY_MAX*LAYNPT_MAX) THK_LY(NEL,LAY_MAX*LAYNPT_MAX)
181 my_real
182 . DTEMP(MVSIZ),
183 . SXX(MVSIZ),SYY(MVSIZ), SXY(MVSIZ),SYZ(MVSIZ),SZX(MVSIZ),
184 . EPSXX(MVSIZ),EPSYY(MVSIZ),EPSXY(MVSIZ),EPSYZ(MVSIZ),EPSZX(MVSIZ),
185 . DEPSXX(MVSIZ),DEPSYY(MVSIZ),DEPSXY(MVSIZ),DEPSYZ(MVSIZ),
186 . DEPSZX(MVSIZ), EPSPXX(MVSIZ),EPSPYY(MVSIZ),EPSPXY(MVSIZ),
187 . EPSPYZ(MVSIZ), EPSPZX(MVSIZ),ETIMP(MVSIZ),TENS(NEL,5),ETH(MVSIZ)
188 my_real alpha,df,deintth,t0,tm,fscal_alpha,dm,zshift
189 INTEGER, DIMENSION(:) ,POINTER :: FLD_IDX
190C-------------------------------------
191 TYPE(buf_lay_) ,POINTER :: BUFLY
192 TYPE(buf_fail_),POINTER :: FBUF
193 TYPE(l_bufel_) ,POINTER :: LBUF
194 TYPE(g_bufel_) ,POINTER :: GBUF
195 TYPE(buf_damp_range_) ,POINTER :: DAMP_BUF
196C-----------------------------------------------
197 my_real finter
198 EXTERNAL finter
199C=======================================================================
200 gbuf => elbuf_str%GBUF
201 igtyp=igeo(11,pid(1))
202 mx = mat(jft)
203 dm = group_param%VISC_DM ! membrane damping
204 IF (impl_s>0) dm = zero
205 idamp_freq_range = iparg(93)
206 damp_buf => elbuf_str%DAMP_RANGE
207 zcfac(1:mvsiz,1:2) = zero
208C--------------------------------------------------
209C add source terme for law not user
210 IF (jthe > 0 .AND. (mtn < 28 .OR. mtn == 32)) THEN
211 die(jft:jlt) = eint(jft:jlt,1) + eint(jft:jlt,2)
212 ELSE
213 die(jft:jlt) = zero
214 ENDIF
215c-----------------
216 IF (iexpan > 0 .AND. jthe > 0) THEN
217c
218 IF (tt == zero) tempel0(jft:jlt) = tempel(jft:jlt)
219 dtemp(jft:jlt) = tempel(jft:jlt) - tempel0(jft:jlt)
220 tempel0(jft:jlt) = tempel(jft:jlt)
221c
222 IF (igtyp /= 11 .AND. igtyp /= 17 .AND. igtyp /=51 .AND. igtyp /= 52) THEN
223 ifunc_alpha = ipm(219, mx)
224 fscal_alpha = pm(191, mx)
225 DO i=jft,jlt
226 alpha = finter(ifunc_alpha,tempel(i),npf,tf,df)
227 alpha = alpha * fscal_alpha
228 eth(i) = alpha*dtemp(i)
229 deintth = -half*(for(i,1) + for(i,2))*eth(i)*thk0(i)*area(i)
230 gbuf%EINTTH(i) = gbuf%EINTTH(i) + deintth
231 eint(i,1) = eint(i,1) + deintth
232 ENDDO
233 ENDIF
234 ENDIF
235! Npt_max
236 laynpt_max = 1
237 IF(igtyp == 51 .OR. igtyp == 52) THEN
238 DO ilay=1,nlay
239 laynpt_max = max(laynpt_max , elbuf_str%BUFLY(ilay)%NPTT)
240 ENDDO
241 ENDIF
242 nlay_max = max(nlay,npt,ixlay, elbuf_str%NLAY)
243 ALLOCATE(matly(mvsiz*nlay_max), thkly(mvsiz*nlay_max*laynpt_max),
244 . posly(mvsiz,nlay_max*laynpt_max),thk_ly(nel,nlay_max*laynpt_max))
245c
246c----------------------------
247 IF (npt == 0) THEN
248 ! Radioss laws 1,2,22,36,43,56,60,86 with global integration
249c----------------------------
250 ilay = 1
251 it = 1
252 lbuf => elbuf_str%BUFLY(ilay)%LBUF(ir,is,it)
253 zshift = geo(199, pid(1))
254c
255 CALL mulawglc(elbuf_str,
256 1 jft ,jlt ,pm ,for ,mom ,thk ,
257 2 eint ,off ,gstr ,dir_a ,shf ,
258 3 mat ,area ,exx ,eyy ,exy ,nel ,
259 4 exz ,eyz ,kxx ,kyy ,kxy ,dm ,
260 5 pid ,tf ,npf ,mtn ,dt1c ,a11 ,
261 6 bufmat ,ssp ,rho ,viscmx ,iofc ,a12 ,
262 7 indxdel ,ngl ,zcfac ,gs ,sigy ,g ,
263 8 thk0 ,epsd_pg,ipla ,igeo ,ipm ,table ,
264 9 ir ,is ,f_def ,ismstr ,nu ,vol0 ,
265 a kfts ,zshift ,idamp_freq_range,mat_elem,damp_buf ,
266 b for_g )
267c----------------------------
268 ELSE IF (mtn > 28 .AND. mtn < 32 .or. mtn == 99 .or. mtn == 200) THEN
269c--- user material law libraries here
270c
271 CALL layini(elbuf_str,jft ,jlt ,geo ,igeo ,
272 . mat ,pid ,thkly ,matly ,posly ,
273 . igtyp ,ixfem ,ixlay ,nlay ,npt ,
274 . isubstack,stack ,drape ,nft ,thke ,
275 . nel ,thk_ly ,indx_drape,sedrape ,numel_drape)
276c
277 CALL usermat_shell (timers, elbuf_str ,mat_elem,
278 1 jft ,jlt ,nel ,pm ,for ,mom ,
279 2 gstr ,thk ,eint ,off ,dir_a ,dir_b ,
280 3 mat ,area ,exx ,eyy ,exy ,exz ,
281 4 eyz ,kxx ,kyy ,kxy ,geo ,thk_ly ,
282 5 pid ,tf ,npf ,mtn ,dt1c ,dm ,
283 6 bufmat ,ssp ,rho ,viscmx ,ipla ,iofc ,
284 7 indxdel ,ngl ,thkly ,matly ,zcfac ,ng ,
285 8 shf ,gs ,sigy ,thk0 ,epsd_pg,
286 9 posly ,igeo ,ipm ,failwave,fwave_el,
287 a ifailure,aldt ,tempel ,die ,
288 b e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,
289 c e3x ,e3y ,e3z ,table ,ixfem ,elcrkini,
290 d dir1_crk,dir2_crk,iparg ,jhbe ,ismstr ,jthe ,
291 e tens ,ir ,is ,nlay ,npt ,ixlay ,
292 f ixel ,ithk ,f_def ,ishplyxfem,
293 g itask ,stack%PM ,isubstack,stack ,alpe ,
294 h ply_exx ,ply_eyy ,ply_exy ,ply_exz ,ply_eyz ,ply_f ,
295 i varnl ,nloc_dmg,nlay_max,laynpt_max,dt )
296cc----------------------------
297 ELSE ! User-type Radioss laws , NPT > 0
298c----------------------------
299!
300! position, thickness and material in integration points
301!
302 CALL layini(elbuf_str,jft ,jlt ,geo ,igeo ,
303 . mat ,pid ,thkly ,matly ,posly ,
304 . igtyp ,ixfem ,ixlay ,nlay ,npt ,
305 . isubstack,stack ,drape ,nft ,thke ,
306 . nel ,thk_ly ,indx_drape, sedrape,numel_drape)
307c
308 CALL mulawc(timers,elbuf_str ,
309 1 jft ,jlt ,nel ,pm ,for ,mom ,
310 2 gstr ,thk ,eint ,off ,dir_a ,dir_b ,
311 3 mat ,area ,exx ,eyy ,exy ,exz ,
312 4 eyz ,kxx ,kyy ,kxy ,geo ,thk_ly ,
313 5 pid ,tf ,npf ,mtn ,dt1c ,dm ,
314 6 bufmat ,ssp ,rho ,viscmx ,ipla ,iofc ,
315 7 indxdel ,ngl ,thkly ,matly ,zcfac ,mat_elem,
316 8 shf ,gs ,sigy ,thk0 ,epsd_pg,
317 9 posly ,igeo ,ipm ,failwave,fwave_el,
318 a ifailure,aldt ,tempel ,die ,fheat ,
319 b table ,ixfem ,elcrkini,
320 d sensors ,ng ,idt_therm,theaccfact,
321 e dir1_crk,dir2_crk,iparg ,jhbe ,ismstr ,jthe ,
322 f tens ,ir ,is ,nlay ,npt ,ixlay ,
323 g ixel ,ithk ,f_def ,ishplyxfem,
324 h itask ,isubstack,stack ,alpe ,
325 i ply_exx ,ply_eyy ,ply_exy ,ply_exz ,ply_eyz ,ply_f ,
326 j varnl ,etimp ,nloc_dmg,nlay_max,laynpt_max ,dt,
327 k ncycle ,snpc ,stf,impl_s ,imconv ,npropgi,
328 * npropmi ,npropm ,npropg,imon_mat,numgeo ,
329 * numstack, dt1 ,tt ,nxlaymax ,idel7nok,userl_avail,
330 * maxfunc,nummat,varnl_npttot, sbufmat ,sdir_a ,sdir_b ,nparg,
331 * idamp_freq_range,damp_buf)
332 ENDIF ! IF (NPT == 0)
333C----------------------------------------------------------------------
334 IF (iexpan > 0 .AND. jthe > 0. and. idt_therm==0) THEN
335 CALL thermexpc(elbuf_str,
336 1 jft ,jlt ,gbuf%FORTH ,for ,eint ,
337 2 off ,eth ,thk0 ,exx ,eyy ,
338 3 pm ,npt ,area ,a11 ,a12 ,
339 4 mat ,mtn ,gbuf%EINTTH ,dir_a ,ir ,
340 5 is ,nlay ,thk ,nel ,igtyp ,
341 6 npf , tf , ipm ,tempel ,dtemp,
342 7 thkly ,posly,mom, matly )
343 ENDIF
344
345 IF (jthe > 0 .AND. (mtn < 28 .OR. mtn == 32)) THEN
346 DO i=jft,jlt
347 die(i) = (eint(i,1) + eint(i,2) - die(i)) * pm(90,mat(1))
348 ENDDO
349 ENDIF
350 IF (jthe /= 0) THEN
351 gbuf%TEMP(1:nel) = tempel(1:nel)
352 ENDIF
353C-------------------------------------------------------------------
354C delamination for new formulation of shells
355C-----------------------------------------------
356 IF (ishplyxfem > 0) THEN
357 ipmat_iply = 2 + 2*npt
358 DO j=1,npt-1
359 DO i=jft,jlt
360 mat_iply(i,j) = stack%IGEO(ipmat_iply + j ,isubstack)
361 ENDDO
362 ENDDO
363 DO i=jft,jlt
364 epsyz(i)= gstr(i,4)
365 epszx(i)= gstr(i,5)
366 ENDDO
367c----------
368 CALL delamination(elbuf_str,mat_elem%MAT_PARAM,
369 . jft ,jlt ,ir ,is ,npt ,
370 . mat_iply ,ipm ,pm ,bufmat ,npf ,
371 . tf ,dt1c ,ngl ,off ,th_iply ,
372 . del_ply ,sig_iply ,offi ,a11_iply,for ,
373 . mom ,ply_f ,thk0 ,shf ,epszx ,
374 . epsyz ,area ,pid ,geo ,ssp ,
375 . posly ,thkly ,kxx ,kyy ,kxy ,
376 . exz ,eyz ,eint ,gstr ,nel ,
377 . nummat )
378
379 ENDIF ! PLYXFEM
380C---------------------------------------------------------
381 IF (impl_s > 0) THEN
382 IF (mtn /=78) etimp(jft:jlt) = zcfac(jft:jlt,1)
383 CALL put_etfac(nel ,etimp ,mtn)
384 END IF
385 DEALLOCATE(matly, thkly, posly, thk_ly)
386c-----------
387 RETURN
388 END SUBROUTINE cmain3
389C
subroutine cforc3_crk(timers, xfem_str, jft, jlt, pm, ixc, x, f, m, v, vr, failwave, nvc, mtn, geo, tf, npf, bufmat, partsav, dt2t, neltst, ityptst, stifn, stifr, fsky, crksky, iadc, d, dr, tani, offset, eani, f11, f12, f13, f14, f21, f22, f23, f24, f31, f32, f33, f34, m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, indxof, ipartc, thke, group_param, mat_elem, nel, istrain, ihbe, kfts, ithk, iofc, ipla, nft, ismstr, fzero, igeo, ipm, ifailure, itask, jthe, temp, fthe, fthesky, iexpan, gresav, grth, igrth, msc, dmelc, jsms, table, iparg, ixfem, inod_crk, iel_crk, iadc_crk, elcutc, sensors, ixel, stack, isubstack, uxint_mean, uyint_mean, uzint_mean, nlevxf, nodedge, crkedge, drape_sh4n, ipri, nloc_dmg, indx_drape, igre, dt, snpc, stf, glob_therm, userl_avail, maxfunc, sbufmat)
Definition cforc3_crk.F:90
subroutine cmain3(timers, elbuf_str, jft, jlt, nft, iparg, nel, mtn, ipla, ithk, group_param, pm, geo, npf, tf, bufmat, ssp, rho, viscmx, dt1c, sigy, area, exx, eyy, exy, exz, eyz, kxx, kyy, kxy, nu, off, thk0, mat, pid, mat_elem, for, mom, gstr, failwave, fwave_el, thk, eint, iofc, g, a11, a12, vol0, indxdel, ngl, zcfac, shf, gs, epsd_pg, kfts, jhbe, alpe, dir_a, dir_b, igeo, ipm, ifailure, npg, fheat, tempel, die, jthe, iexpan, tempel0, ishplyxfem, ply_exx, ply_eyy, ply_exy, ply_exz, ply_eyz, ply_f, del_ply, th_iply, sig_iply, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, ng, table, ixfem, offi, sensors, a11_iply, elcrkini, dir1_crk, dir2_crk, aldt, idt_therm, theaccfact, ismstr, ir, is, nlay, npt, ixlay, ixel, isubstack, stack, f_def, itask, drape, varnl, nloc_dmg, indx_drape, thke, sedrape, numel_drape, dt, ncycle, snpc, stf, nxlaymax, idel7nok, userl_avail, maxfunc, varnl_npttot, sbufmat, sdir_a, sdir_b, for_g)
Definition cmain3.F:87
subroutine delamination(elbuf_str, mat_param, jft, jlt, ir, is, npt, mat_iply, ipm, pm, bufmat, npf, tf, dt1c, ngl, off, th_iply, del_ply, sig, offi, a11, for, mom, ply_f, thk0, shf, exz, eyz, area, pid, geo, ssp, posly, thkly, kxx, kyy, kxy, dexz, deyz, eint, gstr, nel, nummat)
#define alpha
Definition eval.h:35
subroutine layini(elbuf_str, jft, jlt, geo, igeo, mat, pid, thkly, matly, posly, igtyp, ixfem, ixlay, nlay, npt, isubstack, stack, drape, nft, thk, nel, ratio_thkly, indx_drape, sedrape, numel_drape)
Definition layini.F:47
#define max(a, b)
Definition macros.h:21
subroutine mulawglc(elbuf_str, jft, jlt, pm, for, mom, thk, eint, off, gstr, dir, shf, mat, area, exx, eyy, exy, nel, exz, eyz, kxx, kyy, kxy, dm, pid, tf, npf, mtn, dt1c, a1, bufmat, ssp, rho, viscmx, iofc, a2, indx, ngl, zcfac, gs, sigy, g, thk0, epsd_glob, ipla, igeo, ipm, table, ir, is, f_def, ismstr, nu, vol0, kfts, zshift, idamp_freq_range, mat_elem, damp_buf, for_g)
Definition mulawglc.F:59
subroutine put_etfac(nel, et, mtn)
Definition put_etfac.F:36
subroutine thermexpc(elbuf_str, jft, jlt, forth, for, eint, off, eth, thk0, exx, eyy, pm, npt, area, a1, a2, mat, mtn, eintth, dir, ir, is, nlay, thk, nel, igtyp, npf, tf, ipm, tempel, dtemp, thkly, posly, mom, matly)
Definition thermexpc.F:40
subroutine usermat_shell(timers, elbuf_str, mat_elem, jft, jlt, nel, pm, for, mom, gstr, thk, eint, off, dir_a, dir_b, mat, area, exx, eyy, exy, exz, eyz, kxx, kyy, kxy, geo, thk_ly, pid, tf, npf, mtn, dt1c, dm, bufmat, ssp, rho, viscmx, ipla, iofc, indx, ngl, thkly, matly, zcfac, ng, shf, gs, sigy, thk0, epsd_pg, posly, igeo, ipm, failwave, fwave_el, ifailure, aldt, tempel, die, r11, r12, r13, r21, r22, r23, r31, r32, r33, table, ixfem, elcrkini, dir1_crk, dir2_crk, iparg, jhbe, ismstr, jthe, tensx, ir, is, nlay, npt, ixlay, ixel, ithk, f_def, ishplyxfem, itask, pm_stack, isubstack, stack, alpe, ply_exx, ply_eyy, ply_exy, ply_exz, ply_eyz, ply_f, varnl, nloc_dmg, nlay_max, laynpt_max, dt)