OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
cmaini3.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!|| cmaini3 ../starter/source/elements/sh3n/coquedk/cmaini3.F
25!||--- called by ------------------------------------------------------
26!|| cbainit3 ../starter/source/elements/shell/coqueba/cbainit3.f
27!|| cdkinit3 ../starter/source/elements/sh3n/coquedk/cdkinit3.f
28!||--- calls -----------------------------------------------------
29!|| ancmsg ../starter/source/output/message/message.F
30!|| cm27in3 ../starter/source/materials/mat/mat027/cm27in3.F
31!|| cm58in3 ../starter/source/materials/mat/mat058/cm58in3.F
32!|| corthdir ../starter/source/elements/shell/coque/corthdir.F
33!|| corthini ../starter/source/elements/shell/coque/corthini.F
34!|| law158_init ../starter/source/materials/mat/mat158/law158_init.F
35!||--- uses -----------------------------------------------------
36!|| drape_mod ../starter/share/modules1/drape_mod.F
37!|| message_mod ../starter/share/message_module/message_mod.F
38!|| stack_mod ../starter/share/modules1/stack_mod.F
39!||====================================================================
40 SUBROUTINE cmaini3(ELBUF_STR,PM ,GEO ,NEL ,NLAY ,
41 . SKEW ,IGEO ,IX ,NIX ,NUMEL ,
42 . NSIGSH ,SIGSH ,PTSH ,IGTYP ,IORTHLOC ,
43 . IPM ,PROPID ,ALDT ,MAT_PARAM,
44 . IR ,IS ,ISUBSTACK,STACK ,IREP ,
45 . DRAPE ,SHANG ,GEO_STACK,IGEO_STACK,
46 . IGMAT ,IMAT ,IPROP ,NUMMAT ,
47 . X1 ,X2 ,X3 ,X4 ,Y1 ,Y2 ,
48 . Y3 ,Y4 ,Z1 ,Z2 ,Z3 ,Z4 ,
49 . E1X, E2X, E3X, E1Y, E2Y, E3Y ,E1Z, E2Z, E3Z ,X ,
50 . NPT_ALL ,IDRAPE ,NUMEL_DRAPE , INDX)
51C-----------------------------------------------
52C M o d u l e s
53C-----------------------------------------------
54 USE mat_elem_mod
55 USE message_mod
56 USE stack_mod
57 USE drape_mod
59C-----------------------------------------------
60C I m p l i c i t T y p e s
61C-----------------------------------------------
62#include "implicit_f.inc"
63C-----------------------------------------------
64C G l o b a l P a r a m e t e r s
65C-----------------------------------------------
66#include "mvsiz_p.inc"
67C-----------------------------------------------
68C C o m m o n B l o c k s
69C-----------------------------------------------
70#include "param_c.inc"
71#include "vect01_c.inc"
72C-----------------------------------------------
73C D u m m y A r g u m e n t s
74C-----------------------------------------------
75 INTEGER ,INTENT(IN) :: NUMMAT
76 INTEGER NEL,NLAY,NIX,NSIGSH,NUMEL,IGTYP,PROPID,IR,IS,IREP,IGMAT,IMAT,IPROP,
77 . IDRAPE ,NPT_ALL,NUMEL_DRAPE
78 INTEGER IGEO(NPROPGI,*),IX(NIX,*),PTSH(*),IORTHLOC(MVSIZ),
79 . IPM(NPROPMI,*),ISUBSTACK,IGEO_STACK(*)
80 INTEGER , DIMENSION(NUMEL_DRAPE) :: INDX
81 my_real
82 . PM(*),GEO(NPROPG,*),SKEW(LSKEW,*),ALDT(*),
83 . SIGSH(NSIGSH,*),SHANG(*),GEO_STACK(*),X(3,*)
84 TYPE(ELBUF_STRUCT_), TARGET :: ELBUF_STR
85 TYPE (STACK_PLY) :: STACK
86 my_real, DIMENSION(MVSIZ), INTENT(IN) :: e1x,e2x,e3x,e1y,e2y,e3y,e1z,e2z,e3z,
87 . x1,x2,x3,x4,y1,y2,y3,y4,z1,z2,z3,z4
88 TYPE (MATPARAM_STRUCT_) ,DIMENSION(NUMMAT) ,INTENT(IN) :: MAT_PARAM
89C-----------------------------------------------
90C L o c a l V a r i a b l e s
91C-----------------------------------------------
92 INTEGER IT,IL,NUVAR,NPTT,ILAW,NUPARAM
93 my_real
94 . vx(mvsiz),vy(mvsiz),vz(mvsiz),phi1(npt_all,mvsiz),phi2(npt_all,mvsiz)
95 my_real
96 . coor1(npt_all,mvsiz),coor2(npt_all,mvsiz),coor3(npt_all,mvsiz),
97 . coor4(npt_all,mvsiz)
98 CHARACTER(LEN=NCHARTITLE) :: TITR,TITR1
99 my_real,
100 . DIMENSION(:),POINTER :: UVAR,DIR1,DIR2
101 TYPE(G_BUFEL_) ,POINTER :: GBUF
102 TYPE(l_bufel_) ,POINTER :: LBUF
103 TYPE(buf_lay_) ,POINTER :: BUFLY
104 TYPE(DRAPE_) :: DRAPE(NUMELC_DRAPE + NUMELTG_DRAPE)
105C=======================================================================
106 coor1 = zero
107 coor2 = zero
108 coor3 = zero
109 coor4 = zero
110C
111 gbuf => elbuf_str%GBUF
112C----
113 CALL corthini(
114 . lft ,llt ,nft ,nlay ,numel ,
115 . nsigsh ,nix ,ix ,igeo ,geo ,
116 . skew ,sigsh ,ptsh ,phi1 ,phi2 ,
117 . vx ,vy ,vz ,coor1 ,coor2 ,
118 . coor3 ,coor4 ,iorthloc ,isubstack ,stack ,
119 . irep ,elbuf_str ,drape ,shang ,x ,
120 . geo_stack ,e3x ,e3y ,e3z ,
121 . gbuf%BETAORTH,x1 ,x2 ,y1 ,y2 ,
122 . z1 ,z2 ,nel ,gbuf%G_ADD_NODE,gbuf%ADD_NODE,
123 . npt_all ,idrape ,indx)
124c---
125C----
126 IF(igtyp == 51 .OR. igtyp == 52 .OR. igmat > 0) THEN
127 CALL corthdir(elbuf_str,
128 . igeo ,geo ,vx ,vy ,vz ,
129 . phi1 ,phi2 ,coor1 ,coor2 ,coor3 ,
130 . coor4 ,iorthloc ,nlay ,irep ,isubstack,
131 . stack ,geo_stack ,igeo_stack,ir ,is ,
132 . nel ,imat ,iprop ,
133 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
134 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
135 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z ,
136 . npt_all ,idrape)
137
138 ELSEIF (mtn == 27) THEN
139 CALL cm27in3(elbuf_str,
140 . geo ,igeo ,pm ,ipm ,ix ,nix,
141 . nlay,ir ,is ,imat )
142 ELSEIF (mtn==15 .or. mtn==19 .or. mtn==25 .or. mtn >= 28) THEN
143 IF (mtn == 19 .and. igtyp /= 9) THEN
144 CALL ancmsg(msgid=5,
145 . anmode=aninfo,
146 . msgtype=msgerror,
147 . i1=ix(1,1))
148 ENDIF
149c
150 CALL corthdir(elbuf_str,
151 . igeo ,geo ,vx ,vy ,vz ,
152 . phi1 ,phi2 ,coor1 ,coor2 ,coor3 ,
153 . coor4 ,iorthloc ,nlay ,irep ,isubstack,
154 . stack ,geo_stack ,igeo_stack,ir ,is ,
155 . nel ,imat ,iprop ,
156 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
157 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
158 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z ,
159 . npt_all ,idrape )
160 ENDIF
161C-----
162 IF ((mtn == 58 .or. mtn == 158) .AND.
163 . igtyp /= 16 .AND. igtyp /= 51 .AND. igtyp /= 52) THEN
164 CALL ancmsg(msgid=658,
165 . msgtype=msgerror,
166 . anmode=aninfo_blind_1,
167 . i1=propid,
168 . c1=titr,
169 . i2=mtn,
170 . i3=igtyp)
171 ELSEIF (mtn == 58 .or. mtn == 158 .OR. igtyp == 51 .OR. igtyp == 52) THEN
172C
173 IF (idrape == 0) THEN
174 DO il = 1,nlay
175 nptt = elbuf_str%BUFLY(il)%NPTT
176 imat = elbuf_str%BUFLY(il)%IMAT
177 ilaw = elbuf_str%BUFLY(il)%ILAW
178 nuvar = elbuf_str%BUFLY(il)%NVAR_MAT
179 dir1 => elbuf_str%BUFLY(il)%DIRA
180 dir2 => elbuf_str%BUFLY(il)%DIRB
181 nuparam = mat_param(imat)%NUPARAM
182!
183 IF (ilaw == 58) THEN
184 DO it=1,nptt
185 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it)
186 uvar => elbuf_str%BUFLY(il)%MAT(ir,is,it)%VAR
187 CALL cm58in3(irep ,dir1 ,dir2 ,mat_param(imat)%UPARAM,
188 . uvar ,aldt ,nel ,nuvar ,lbuf%ANG ,
189 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
190 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
191 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
192 ENDDO
193 ELSE IF (ilaw == 158) THEN
194 DO it=1,nptt
195 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it)
196 uvar => elbuf_str%BUFLY(il)%MAT(ir,is,it)%VAR
197 CALL law158_init(dir1 ,dir2 ,
198 . uvar ,aldt ,nel ,nuvar ,lbuf%ANG ,
199 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
200 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
201 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
202 ENDDO
203 ENDIF ! ILAW
204 ENDDO ! DO IL = 1,NLAY
205 ELSE
206 DO il = 1,nlay
207 nptt = elbuf_str%BUFLY(il)%NPTT
208 imat = elbuf_str%BUFLY(il)%IMAT
209 ilaw = elbuf_str%BUFLY(il)%ILAW
210 nuvar = elbuf_str%BUFLY(il)%NVAR_MAT
211 nuparam = mat_param(imat)%NUPARAM
212!
213 IF (ilaw == 58) THEN
214 DO it=1,nptt
215 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it)
216 uvar => elbuf_str%BUFLY(il)%MAT(ir,is,it)%VAR
217 dir1 => elbuf_str%BUFLY(il)%LBUF_DIR(it)%DIRA
218 dir2 => elbuf_str%BUFLY(il)%LBUF_DIR(it)%DIRB
219 CALL cm58in3(irep ,dir1 ,dir2 ,mat_param(imat)%UPARAM,
220 . uvar ,aldt ,nel ,nuvar ,lbuf%ANG ,
221 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
222 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
223 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
224 ENDDO
225 ELSE IF (ilaw == 158) THEN
226 DO it=1,nptt
227 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it)
228 uvar => elbuf_str%BUFLY(il)%MAT(ir,is,it)%VAR
229 dir1 => elbuf_str%BUFLY(il)%LBUF_DIR(it)%DIRA
230 dir2 => elbuf_str%BUFLY(il)%LBUF_DIR(it)%DIRB
231 CALL law158_init(dir1 ,dir2 ,
232 . uvar ,aldt ,nel ,nuvar ,lbuf%ANG ,
233 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
234 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
235 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
236 ENDDO
237 ENDIF ! ILAW
238 ENDDO ! DO IL = 1,NLAY
239 ENDIF
240 ENDIF
241C-----------
242 RETURN
243 END
subroutine cbainit3(elbuf_str, ixc, pm, x, geo, xmas, in, nvc, dtelem, igrsh4n, xrefc, nel, ithk, ihbe, igrsh3n, thke, isigsh, sigsh, stifn, stifr, partsav, v, ipart, msc, inc, skew, i8mi, nsigsh, igeo, ipm, iuser, etnod, nshnod, stc, ptshel, bufmat, sh4tree, mcp, mcps, temp, ms_layer, zi_layer, itag, itagel, iparg, ms_layerc, zi_layerc, part_area, cpt_eltens, msz2c, zply, itagn, itage, ixfem, npf, tf, xfem_str, isubstack, stack, rnoise, drape, sh4ang, iddlevel, geo_stack, igeo_stack, strc, perturb, iyldini, ele_area, nloc_dmg, ng, group_param, idrape, drapeg, mat_param, fail_fractal, fail_brokmann, glob_therm)
Definition cbainit3.F:81
subroutine cdkinit3(elbuf_str, group_param, ixtg, pm, x, geo, xmas, in, nvc, dtelem, xreftg, offset, nel, ithk, thk, isigsh, sigsh, stifn, stifr, partsav, v, ipart, mstg, intg, ptg, skew, ish3n, nsigsh, igeo, ipm, iuser, etnod, nshnod, sttg, ptsh3n, bufmat, sh3tree, mcp, mcps, temp, iparg, cpt_eltens, part_area, npf, tf, sh3trim, isubstack, stack, rnoise, drape, sh3ang, geo_stack, igeo_stack, strtg, perturb, iyldini, ele_area, nloc_dmg, idrape, drapeg, mat_param, glob_therm)
Definition cdkinit3.F:67
subroutine cm27in3(elbuf_str, geo, igeo, pm, ipm, ix, nix, nlay, ir, is, imat)
Definition cm27in3.F:38
subroutine cm58in3(irep, dir1, dir2, uparam, uvar, aldt, nel, nuvar, tan_phi, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
Definition cm58in3.F:35
subroutine cmaini3(elbuf_str, pm, geo, nel, nlay, skew, igeo, ix, nix, numel, nsigsh, sigsh, ptsh, igtyp, iorthloc, ipm, propid, aldt, mat_param, ir, is, isubstack, stack, irep, drape, shang, geo_stack, igeo_stack, igmat, imat, iprop, nummat, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z, x, npt_all, idrape, numel_drape, indx)
Definition cmaini3.F:51
subroutine corthdir(elbuf_str, igeo, geo, vx, vy, vz, phi1, phi2, coor1, coor2, coor3, coor4, iorthloc, nlay, irep, isubstack, stack, geo_stack, igeo_stack, ir, is, nel, imat, iprop, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z, npt_all, idrape)
Definition corthdir.F:42
subroutine corthini(jft, jlt, nft, nlay, numel, nsigsh, nix, ix, igeo, geo, skew, sigsh, ptsh, phi1, phi2, vx, vy, vz, coor1, coor2, coor3, coor4, iorthloc, isubstack, stack, irep, elbuf_str, drape, angle, x, geo_stack, e3x, e3y, e3z, betaorth, x1, x2, y1, y2, z1, z2, nel, g_add_node, add_node, npt_all, idrape, indx)
Definition corthini.F:48
#define my_real
Definition cppsort.cpp:32
subroutine law158_init(dir1, dir2, uvar, aldt, nel, nuvar, tan_phi, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
Definition law158_init.F:35
integer, parameter nchartitle
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
Definition message.F:889
program starter
Definition starter.F:39