OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
inisoldist.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!|| inisoldist ../starter/source/initial_conditions/inivol/inisoldist.F
25!||--- called by ------------------------------------------------------
26!|| init_inivol ../starter/source/initial_conditions/inivol/init_inivol.F90
27!||--- calls -----------------------------------------------------
28!|| qcoor2 ../starter/source/elements/solid_2d/quad/qcoor2.F
29!|| ratio_fill ../starter/source/initial_conditions/inivol/ratio_fill.F
30!|| s4coor3 ../starter/source/elements/solid/solide4/s4coor3.F
31!|| scoor3 ../starter/source/elements/solid/solide/scoor3.F
32!|| srcoor3 ../starter/source/elements/solid/solide/srcoor3.F
33!||--- uses -----------------------------------------------------
34!|| inivol_def_mod ../starter/share/modules1/inivol_mod.F
35!||====================================================================
36 SUBROUTINE inisoldist(
37 . IFILL ,IXS ,X ,GEO ,NG ,
38 . IPARG ,IDP ,IPART_ ,XREFS ,GLOB_THERM,
39 . NTRACE ,NTRACE0 ,DIS ,NSOLTOSF ,NBIP ,
40 . NNOD2SURF ,INOD2SURF ,KNOD2SURF ,SURF_ELTYP,SURF_NODES,
41 . JMID ,IPHASE ,INPHASE ,KVOL ,SURF_TYPE ,
42 . IAD_BUFR ,BUFSF ,NOD_NORMAL,ISOLNOD ,NBSUBMAT ,
43 . FILL_RATIO ,ICUMU ,IDC ,NBCONTY ,NSEG ,
44 . IDSURF ,SWIFTSURF ,SEGTOSURF ,IGRSURF ,IVOLSURF ,
45 . NSURF_INVOL,IXQ ,IXTG ,ITYP ,NEL , NUMEL_TOT,
46 . NUM_INIVOL ,INIVOL ,I_INIVOL)
47C-----------------------------------------------
48C M o d u l e s
49C-----------------------------------------------
50 USE groupdef_mod
52 use glob_therm_mod
53 use element_mod , only :nixs,nixq,nixtg
54C-----------------------------------------------
55C I m p l i c i t T y p e s
56C-----------------------------------------------
57#include "implicit_f.inc"
58C-----------------------------------------------
59C G l o b a l P a r a m e t e r s
60C-----------------------------------------------
61#include "mvsiz_p.inc"
62C-----------------------------------------------
63C C o m m o n B l o c k s
64C-----------------------------------------------
65#include "com01_c.inc"
66#include "com04_c.inc"
67#include "param_c.inc"
68#include "vect01_c.inc"
69#include "tabsiz_c.inc"
70C-----------------------------------------------
71C D u m m y A r g u m e n t s
72C-----------------------------------------------
73 INTEGER,INTENT(IN) :: I_INIVOL !< inivol identifier
74 INTEGER,INTENT(IN) :: NUM_INIVOL !< number of inivol options
75 TYPE (INIVOL_STRUCT_), DIMENSION(NUM_INIVOL), INTENT(INOUT) :: INIVOL !< inivol data structure
76 INTEGER,INTENT(IN) :: NG
77 INTEGER NTRACE,NTRACE0,IDC,NBCONTY,NSEG, IVOLSURF(NSURF),NUMEL_TOT,NEL
78 INTEGER,TARGET :: IXS(NIXS,NUMELS),IXQ(NIXQ,NUMELQ),IXTG(NIXTG,NUMELTG)
79 INTEGER IPARG(NPARG,NGROUP),IPART_(*),
80 . IDP,IFILL,NSOLTOSF(NBCONTY,NUMNOD),
81 . NNOD2SURF,KNOD2SURF(NUMNOD+1),JMID,
82 . IPHASE(NBSUBMAT+1,NUMEL_TOT),INPHASE(NTRACE,NEL),
83 . inod2surf(nnod2surf,numnod),isolnod,icumu,surf_type,iad_bufr,
84 . surf_eltyp(nseg),surf_nodes(nseg,4),nbip(nbsubmat,numel_tot),
85 . idsurf,swiftsurf(nsurf),segtosurf(*),nsurf_invol,
86 . ityp
87 my_real x(3,numnod),geo(npropg,*),xrefs(8,3,*),
88 . dis(nsurf_invol,numnod),kvol(nbsubmat,numel_tot),bufsf(*),
89 . nod_normal(3,numnod),fill_ratio
90 INTEGER, INTENT(IN) :: NBSUBMAT
91 TYPE (SURF_) , DIMENSION(NSURF) :: IGRSURF
92 TYPE(glob_therm_) ,intent(in) :: glob_therm
93C-----------------------------------------------
94C L o c a l V a r i a b l e s
95C-----------------------------------------------
96 INTEGER,POINTER :: pIXQ,pIXTG,pIXS
97 INTEGER NF1,I,II,JHBE
98 INTEGER MAT(MVSIZ), PID(MVSIZ), NGL(MVSIZ),
99 . IX1(MVSIZ),IX2(MVSIZ),IX3(MVSIZ),IX4(MVSIZ),
100 . ix5(mvsiz),ix6(mvsiz),ix7(mvsiz),ix8(mvsiz)
101
102 INTEGER IBID
103 my_real
104 . X1(MVSIZ),X2(MVSIZ),X3(MVSIZ),X4(MVSIZ),X5(MVSIZ),X6(MVSIZ),
105 . X7(MVSIZ),X8(MVSIZ),Y1(MVSIZ),Y2(MVSIZ),Y3(MVSIZ),Y4(MVSIZ),
106 . y5(mvsiz),y6(mvsiz),y7(mvsiz),y8(mvsiz),z1(mvsiz),z2(mvsiz),
107 . z3(mvsiz),z4(mvsiz),z5(mvsiz),z6(mvsiz),z7(mvsiz),z8(mvsiz),
108 . rx(mvsiz) ,ry(mvsiz),rz(mvsiz) ,s_x(mvsiz) ,
109 . s_y(mvsiz) ,s_z(mvsiz),tx(mvsiz) ,ty(mvsiz) ,tz(mvsiz) ,
110 . e1x(mvsiz),e1y(mvsiz),e1z(mvsiz),
111 . e2x(mvsiz),e2y(mvsiz),e2z(mvsiz),
112 . e3x(mvsiz),e3y(mvsiz),e3z(mvsiz),
113 . f1x(mvsiz),f1y(mvsiz),f1z(mvsiz),
114 . f2x(mvsiz),f2y(mvsiz),f2z(mvsiz)
115
116 my_real rbid
117 DOUBLE PRECISION
118 . XD1(MVSIZ), XD2(MVSIZ), XD3(MVSIZ), XD4(MVSIZ),
119 . XD5(MVSIZ), XD6(MVSIZ), XD7(MVSIZ), XD8(MVSIZ),
120 . YD1(MVSIZ), YD2(MVSIZ), YD3(MVSIZ), YD4(MVSIZ),
121 . YD5(MVSIZ), YD6(MVSIZ), YD7(MVSIZ), YD8(MVSIZ),
122 . ZD1(MVSIZ), ZD2(MVSIZ), ZD3(MVSIZ), ZD4(MVSIZ),
123 . ZD5(MVSIZ), ZD6(MVSIZ), ZD7(MVSIZ), ZD8(MVSIZ)
124C-----------------------------------------------
125C S o u r c e L i n e s
126C-----------------------------------------------
127 rbid = zero
128 ibid = 0
129
130 jhbe = iparg(23,ng)
131 jcvt = iparg(37,ng)
132
133 !common variables required for s*coor3 subroutine
134 nft=iparg(3,ng)
135 nf1=nft+1
136 lft=1
137 llt=nel
138 ity=ityp
139
140
141
142 IF(n2d == 0)THEN
143 IF ( isolnod == 4 )THEN
144 CALL s4coor3(x ,xrefs(1,1,nf1),ixs(1,nf1),ngl ,
145 . mat ,pid ,ix1 ,ix2 ,ix3 ,ix4 ,
146 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
147 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 )
148 ELSEIF (isolnod == 8) THEN
149 IF (jcvt == 0) THEN
150 CALL scoor3( x ,xrefs(1,1,nf1) ,ixs(1,nf1) ,geo ,mat ,pid ,ngl ,
151 . ix1 ,ix2 ,ix3 ,ix4 ,ix5 ,ix6 ,ix7 ,ix8,
152 . x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,
153 . y1 ,y2 ,y3 ,y4 ,y5 ,y6 ,y7 ,y8 ,
154 . z1 ,z2 ,z3 ,z4 ,z5 ,z6 ,z7 ,z8 ,
155 . rx ,ry ,rz ,s_x ,s_y ,s_z ,tx ,ty ,tz ,
156 . e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,e3z ,
157 . f1x ,f1y ,f1z ,f2x ,f2y ,f2z ,rbid ,rbid,glob_therm%NINTEMP,
158 . xd1 ,xd2 ,xd3 ,xd4 ,xd5 ,xd6 ,xd7 ,xd8 ,
159 . yd1 ,yd2 ,yd3 ,yd4 ,yd5 ,yd6 ,yd7 ,yd8 ,
160 . zd1 ,zd2 ,zd3 ,zd4 ,zd5 ,zd6 ,zd7 ,zd8 )
161 ELSE
162 CALL srcoor3( x ,xrefs(1,1,nf1) ,ixs(1,nf1) ,geo ,mat ,pid ,ngl ,jhbe ,
163 . ix1 ,ix2 ,ix3 ,ix4 ,ix5 ,ix6 ,ix7 ,ix8 ,
164 . x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,
165 . y1 ,y2 ,y3 ,y4 ,y5 ,y6 ,y7 ,y8 ,
166 . z1 ,z2 ,z3 ,z4 ,z5 ,z6 ,z7 ,z8 ,
167 . rx ,ry ,rz ,s_x ,s_y ,s_z ,tx ,ty ,tz ,
168 . e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,e3z ,
169 . f1x ,f1y ,f1z ,f2x ,f2y ,f2z ,rbid ,rbid ,glob_therm%NINTEMP,
170 . xd1 ,xd2 ,xd3 ,xd4 ,xd5 ,xd6 ,xd7 ,xd8 ,
171 . yd1 ,yd2 ,yd3 ,yd4 ,yd5 ,yd6 ,yd7 ,yd8 ,
172 . zd1 ,zd2 ,zd3 ,zd4 ,zd5 ,zd6 ,zd7 ,zd8 )
173 ENDIF
174 ENDIF
175 ELSEIF(n2d > 0)THEN
176 IF(ityp == 7)THEN
177 DO ii = 1, nel
178 i = ii + nft
179 ix1(ii) = ixtg(1 + 1, i)
180 ix2(ii) = ixtg(1 + 2, i)
181 ix3(ii) = ixtg(1 + 3, i)
182 x1(ii) = zero
183 x2(ii) = zero
184 x3(ii) = zero
185 y1(ii) = x(2, ixtg(1 + 1, i))
186 z1(ii) = x(3, ixtg(1 + 1, i))
187 y2(ii) = x(2, ixtg(1 + 2, i))
188 z2(ii) = x(3, ixtg(1 + 2, i))
189 y3(ii) = x(2, ixtg(1 + 3, i))
190 z3(ii) = x(3, ixtg(1 + 3, i))
191 ngl(ii) = ixtg(6, i)
192 ENDDO
193 ELSEIF(ityp == 2)THEN
194 DO ii = 1, nel
195 x1(ii) = zero
196 x2(ii) = zero
197 x3(ii) = zero
198 x4(ii) = zero
199 ENDDO
200 CALL qcoor2(x, ixq(1, nf1), ngl, mat, pid,
201 . ix1, ix2, ix3, ix4,
202 . y1, y2, y3, y4,
203 . z1, z2, z3, z4,
204 . s_y, s_z, ty, tz)
205 ENDIF
206 ENDIF
207C-----------
208 NULLIFY(pixs)
209 NULLIFY(pixq)
210 NULLIFY(pixtg)
211 IF(numels>0) pixs => ixs(1,nf1)
212 IF(numelq>0) pixq => ixq(1,nf1)
213 IF(n2d>0 .AND. numeltg>0) pixtg => ixtg(1,nf1)
214
215 CALL ratio_fill(
216 . x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,
217 . y1 ,y2 ,y3 ,y4 ,y5 ,y6 ,y7 ,y8 ,
218 . z1 ,z2 ,z3 ,z4 ,z5 ,z6 ,z7 ,z8 ,
219 . idp ,x ,
220 . pixs ,ipart_(nf1),ifill ,ntrace ,ntrace0 ,dis ,nsoltosf ,
221 . nnod2surf ,inod2surf ,knod2surf ,jmid ,iphase(1,nf1) ,inphase ,kvol(1,nf1) ,
222 . surf_type ,iad_bufr ,bufsf ,nod_normal ,isolnod ,nbsubmat ,fill_ratio ,icumu ,
223 . nseg ,surf_eltyp ,surf_nodes,nbconty ,idc ,nbip(1,nf1) ,idsurf ,swiftsurf ,
224 . segtosurf ,igrsurf ,ivolsurf ,nsurf_invol,pixq ,pixtg ,ityp ,nel ,
225 . numel_tot ,num_inivol ,inivol ,i_inivol)
226C-----------------------------------------------------------------
227 RETURN
228 END
#define my_real
Definition cppsort.cpp:32
subroutine inisoldist(ifill, ixs, x, geo, ng, iparg, idp, ipart_, xrefs, glob_therm, ntrace, ntrace0, dis, nsoltosf, nbip, nnod2surf, inod2surf, knod2surf, surf_eltyp, surf_nodes, jmid, iphase, inphase, kvol, surf_type, iad_bufr, bufsf, nod_normal, isolnod, nbsubmat, fill_ratio, icumu, idc, nbconty, nseg, idsurf, swiftsurf, segtosurf, igrsurf, ivolsurf, nsurf_invol, ixq, ixtg, ityp, nel, numel_tot, num_inivol, inivol, i_inivol)
Definition inisoldist.F:47
subroutine ratio_fill(x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, idp, x, ixs, ipart_, ifill, ntrace, ntrace0, dis, nsoltosf, nnod2surf, inod2surf, knod2surf, jmid, iphase, inphase, kvol, surf_type, iad_bufr, bufsf, nod_normal, isolnod, nbsubmat, fill_ratio, icumu, nseg, surf_eltyp, surf_nodes, nbconty, idc, nbip, idsurf, swiftsurf, segtosurf, igrsurf, ivolsurf, nsurf_invol, ixq, ixtg, ityp, nel, numel_tot, num_inivol, inivol, i_inivol)
Definition ratio_fill.F:42
subroutine s4coor3(x, xrefs, ixs, ngl, mxt, ngeo, ix1, ix2, ix3, ix4, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4)
Definition s4coor3.F:40
subroutine scoor3(x, xrefs, ixs, geo, mxt, ngeo, ngl, ix1, ix2, ix3, ix4, ix5, ix6, ix7, ix8, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, rx, ry, rz, sx, sy, sz, tx, ty, tz, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, f1x, f1y, f1z, f2x, f2y, f2z, temp0, temp, nintemp, xd1, xd2, xd3, xd4, xd5, xd6, xd7, xd8, yd1, yd2, yd3, yd4, yd5, yd6, yd7, yd8, zd1, zd2, zd3, zd4, zd5, zd6, zd7, zd8)
Definition scoor3.F:52
subroutine srcoor3(x, xrefs, ixs, geo, mxt, ngeo, ngl, jhbe, ix1, ix2, ix3, ix4, ix5, ix6, ix7, ix8, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, rx, ry, rz, sx, sy, sz, tx, ty, tz, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, f1x, f1y, f1z, f2x, f2y, f2z, temp0, temp, nintemp, xd1, xd2, xd3, xd4, xd5, xd6, xd7, xd8, yd1, yd2, yd3, yd4, yd5, yd6, yd7, yd8, zd1, zd2, zd3, zd4, zd5, zd6, zd7, zd8)
Definition srcoor3.F:52
subroutine qcoor2(x, ixq, ngl, mxt, pid, ix1, ix2, ix3, ix4, y1, y2, y3, y4, z1, z2, z3, z4, sy, sz, ty, tz)
Definition qcoor2.F:38