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

Go to the source code of this file.

Functions/Subroutines

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)

Function/Subroutine Documentation

◆ cmaini3()

subroutine cmaini3 ( type(elbuf_struct_), target elbuf_str,
pm,
geo,
integer nel,
integer nlay,
skew,
integer, dimension(npropgi,*) igeo,
integer, dimension(nix,*) ix,
integer nix,
integer numel,
integer nsigsh,
sigsh,
integer, dimension(*) ptsh,
integer igtyp,
integer, dimension(mvsiz) iorthloc,
integer, dimension(npropmi,*) ipm,
integer propid,
aldt,
type (matparam_struct_), dimension(nummat), intent(in) mat_param,
integer ir,
integer is,
integer isubstack,
type (stack_ply) stack,
integer irep,
type(drape_), dimension(numelc_drape + numeltg_drape) drape,
shang,
geo_stack,
integer, dimension(*) igeo_stack,
integer igmat,
integer imat,
integer iprop,
integer, intent(in) nummat,
intent(in) x1,
intent(in) x2,
intent(in) x3,
intent(in) x4,
intent(in) y1,
intent(in) y2,
intent(in) y3,
intent(in) y4,
intent(in) z1,
intent(in) z2,
intent(in) z3,
intent(in) z4,
intent(in) e1x,
intent(in) e2x,
intent(in) e3x,
intent(in) e1y,
intent(in) e2y,
intent(in) e3y,
intent(in) e1z,
intent(in) e2z,
intent(in) e3z,
x,
integer npt_all,
integer idrape,
integer numel_drape,
integer, dimension(numel_drape) indx )

Definition at line 42 of file cmaini3.F.

53C-----------------------------------------------
54C M o d u l e s
55C-----------------------------------------------
56 USE mat_elem_mod
57 USE message_mod
58 USE stack_mod
59 USE drape_mod
61 use law42c_ini_mod
62C-----------------------------------------------
63C I m p l i c i t T y p e s
64C-----------------------------------------------
65#include "implicit_f.inc"
66C-----------------------------------------------
67C G l o b a l P a r a m e t e r s
68C-----------------------------------------------
69#include "mvsiz_p.inc"
70C-----------------------------------------------
71C C o m m o n B l o c k s
72C-----------------------------------------------
73#include "param_c.inc"
74#include "vect01_c.inc"
75C-----------------------------------------------
76C D u m m y A r g u m e n t s
77C-----------------------------------------------
78 INTEGER ,INTENT(IN) :: NUMMAT
79 INTEGER NEL,NLAY,NIX,NSIGSH,NUMEL,IGTYP,PROPID,IR,IS,IREP,IGMAT,IMAT,IPROP,
80 . IDRAPE ,NPT_ALL,NUMEL_DRAPE
81 INTEGER IGEO(NPROPGI,*),IX(NIX,*),PTSH(*),IORTHLOC(MVSIZ),
82 . IPM(NPROPMI,*),ISUBSTACK,IGEO_STACK(*)
83 INTEGER , DIMENSION(NUMEL_DRAPE) :: INDX
85 . pm(*),geo(npropg,*),skew(lskew,*),aldt(*),
86 . sigsh(nsigsh,*),shang(*),geo_stack(*),x(3,*)
87 TYPE(ELBUF_STRUCT_), TARGET :: ELBUF_STR
88 TYPE (STACK_PLY) :: STACK
89 my_real, DIMENSION(MVSIZ), INTENT(IN) :: e1x,e2x,e3x,e1y,e2y,e3y,e1z,e2z,e3z,
90 . x1,x2,x3,x4,y1,y2,y3,y4,z1,z2,z3,z4
91 TYPE (MATPARAM_STRUCT_) ,DIMENSION(NUMMAT) ,INTENT(IN) :: MAT_PARAM
92C-----------------------------------------------
93C L o c a l V a r i a b l e s
94C-----------------------------------------------
95 INTEGER IT,IL,NUVAR,NPTT,ILAW,NUPARAM
97 . vx(mvsiz),vy(mvsiz),vz(mvsiz),phi1(npt_all,mvsiz),phi2(npt_all,mvsiz)
99 . coor1(npt_all,mvsiz),coor2(npt_all,mvsiz),coor3(npt_all,mvsiz),
100 . coor4(npt_all,mvsiz)
101 CHARACTER(LEN=NCHARTITLE) :: TITR,TITR1
102 my_real,
103 . DIMENSION(:),POINTER :: uvar,dir1,dir2
104 TYPE(G_BUFEL_) ,POINTER :: GBUF
105 TYPE(L_BUFEL_) ,POINTER :: LBUF
106 TYPE(BUF_LAY_) ,POINTER :: BUFLY
107 TYPE(DRAPE_) :: DRAPE(NUMELC_DRAPE + NUMELTG_DRAPE)
108C=======================================================================
109 coor1 = zero
110 coor2 = zero
111 coor3 = zero
112 coor4 = zero
113C
114 gbuf => elbuf_str%GBUF
115C----
116 CALL corthini(
117 . lft ,llt ,nft ,nlay ,numel ,
118 . nsigsh ,nix ,ix ,igeo ,geo ,
119 . skew ,sigsh ,ptsh ,phi1 ,phi2 ,
120 . vx ,vy ,vz ,coor1 ,coor2 ,
121 . coor3 ,coor4 ,iorthloc ,isubstack ,stack ,
122 . irep ,elbuf_str ,drape ,shang ,x ,
123 . geo_stack ,e3x ,e3y ,e3z ,
124 . gbuf%BETAORTH,x1 ,x2 ,y1 ,y2 ,
125 . z1 ,z2 ,nel ,gbuf%G_ADD_NODE,gbuf%ADD_NODE,
126 . npt_all ,idrape ,indx)
127c---
128C----
129 IF(igtyp == 51 .OR. igtyp == 52 .OR. igmat > 0) THEN
130 CALL corthdir(elbuf_str,
131 . igeo ,geo ,vx ,vy ,vz ,
132 . phi1 ,phi2 ,coor1 ,coor2 ,coor3 ,
133 . coor4 ,iorthloc ,nlay ,irep ,isubstack,
134 . stack ,geo_stack ,igeo_stack,ir ,is ,
135 . nel ,imat ,iprop ,
136 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
137 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
138 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z ,
139 . npt_all ,idrape)
140
141 ELSEIF (mtn == 27) THEN
142 CALL cm27in3(elbuf_str,
143 . geo ,igeo ,pm ,ipm ,ix ,nix,
144 . nlay,ir ,is ,imat )
145 ELSEIF (mtn==15 .or. mtn==19 .or. mtn==25 .or. mtn >= 28) THEN
146 IF (mtn == 19 .and. igtyp /= 9) THEN
147 CALL ancmsg(msgid=5,
148 . anmode=aninfo,
149 . msgtype=msgerror,
150 . i1=ix(1,1))
151 ENDIF
152c
153 CALL corthdir(elbuf_str,
154 . igeo ,geo ,vx ,vy ,vz ,
155 . phi1 ,phi2 ,coor1 ,coor2 ,coor3 ,
156 . coor4 ,iorthloc ,nlay ,irep ,isubstack,
157 . stack ,geo_stack ,igeo_stack,ir ,is ,
158 . nel ,imat ,iprop ,
159 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
160 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
161 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z ,
162 . npt_all ,idrape )
163 ENDIF
164C-----
165 IF ((mtn == 58 .or. mtn == 158) .AND.
166 . igtyp /= 16 .AND. igtyp /= 51 .AND. igtyp /= 52) THEN
167 CALL ancmsg(msgid=658,
168 . msgtype=msgerror,
169 . anmode=aninfo_blind_1,
170 . i1=propid,
171 . c1=titr,
172 . i2=mtn,
173 . i3=igtyp)
174 ELSEIF (mtn == 58 .or. mtn == 158 .OR. igtyp == 51 .OR. igtyp == 52) THEN
175C
176 IF (idrape == 0) THEN
177 DO il = 1,nlay
178 nptt = elbuf_str%BUFLY(il)%NPTT
179 imat = elbuf_str%BUFLY(il)%IMAT
180 ilaw = elbuf_str%BUFLY(il)%ILAW
181 nuvar = elbuf_str%BUFLY(il)%NVAR_MAT
182 dir1 => elbuf_str%BUFLY(il)%DIRA
183 dir2 => elbuf_str%BUFLY(il)%DIRB
184 nuparam = mat_param(imat)%NUPARAM
185!
186 IF (ilaw == 58) THEN
187 DO it=1,nptt
188 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it)
189 uvar => elbuf_str%BUFLY(il)%MAT(ir,is,it)%VAR
190 CALL cm58in3(irep ,dir1 ,dir2 ,mat_param(imat)%UPARAM,
191 . uvar ,aldt ,nel ,nuvar ,lbuf%ANG ,
192 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
193 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
194 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
195 ENDDO
196 ELSE IF (ilaw == 158) THEN
197 DO it=1,nptt
198 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it)
199 uvar => elbuf_str%BUFLY(il)%MAT(ir,is,it)%VAR
200 CALL law158_init(dir1 ,dir2 ,
201 . uvar ,aldt ,nel ,nuvar ,lbuf%ANG ,
202 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
203 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
204 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
205 ENDDO
206 ENDIF ! ILAW
207 ENDDO ! DO IL = 1,NLAY
208 ELSE
209 DO il = 1,nlay
210 nptt = elbuf_str%BUFLY(il)%NPTT
211 imat = elbuf_str%BUFLY(il)%IMAT
212 ilaw = elbuf_str%BUFLY(il)%ILAW
213 nuvar = elbuf_str%BUFLY(il)%NVAR_MAT
214 nuparam = mat_param(imat)%NUPARAM
215!
216 IF (ilaw == 58) THEN
217 DO it=1,nptt
218 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it)
219 uvar => elbuf_str%BUFLY(il)%MAT(ir,is,it)%VAR
220 dir1 => elbuf_str%BUFLY(il)%LBUF_DIR(it)%DIRA
221 dir2 => elbuf_str%BUFLY(il)%LBUF_DIR(it)%DIRB
222 CALL cm58in3(irep ,dir1 ,dir2 ,mat_param(imat)%UPARAM,
223 . uvar ,aldt ,nel ,nuvar ,lbuf%ANG ,
224 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
225 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
226 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
227 ENDDO
228 ELSE IF (ilaw == 158) THEN
229 DO it=1,nptt
230 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it)
231 uvar => elbuf_str%BUFLY(il)%MAT(ir,is,it)%VAR
232 dir1 => elbuf_str%BUFLY(il)%LBUF_DIR(it)%DIRA
233 dir2 => elbuf_str%BUFLY(il)%LBUF_DIR(it)%DIRB
234 CALL law158_init(dir1 ,dir2 ,
235 . uvar ,aldt ,nel ,nuvar ,lbuf%ANG ,
236 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
237 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
238 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
239 ENDDO
240 ENDIF ! ILAW
241 ENDDO ! DO IL = 1,NLAY
242 ENDIF
243 ENDIF
244 IF (mtn == 42 .OR. mtn == 69 .OR. igtyp == 51 .OR. igtyp == 52) THEN
245 DO il = 1,nlay
246 nptt = elbuf_str%BUFLY(il)%NPTT
247 ilaw = elbuf_str%BUFLY(il)%ILAW
248 nuvar = elbuf_str%BUFLY(il)%NVAR_MAT
249!
250 IF (ilaw == 42 .OR. mtn == 69) THEN
251 DO it=1,nptt
252 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it)
253 uvar => elbuf_str%BUFLY(il)%MAT(ir,is,it)%VAR
254 CALL law42c_ini(nuvar,uvar,llt)
255 ENDDO
256 ENDIF ! IF (ILAW == 42) THEN
257 ENDDO ! DO IL = 1,NLAY
258 ENDIF
259C-----------
260 RETURN
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 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:895