OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i9main3.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!|| i9main3 ../engine/source/interfaces/int09/i9main3.f
25!||--- called by ------------------------------------------------------
26!|| intal1 ../engine/source/ale/inter/intal1.f
27!||--- calls -----------------------------------------------------
28!|| i3cst3 ../engine/source/interfaces/inter3d/i3cst3.F
29!|| i3dis3 ../engine/source/interfaces/inter3d/i3dis3.F
30!|| i3gap3 ../engine/source/interfaces/inter3d/i3gap3.f
31!|| i3loc3 ../engine/source/interfaces/inter3d/i3loc3.F
32!|| i3msr3 ../engine/source/interfaces/inter3d/i3msr3.F
33!|| i9avel ../engine/source/interfaces/int09/i9avel.F
34!|| i9cor3 ../engine/source/interfaces/int09/i9cor3.F
35!|| i9frms ../engine/source/interfaces/int09/i9frms.F
36!|| i9imp3 ../engine/source/interfaces/int09/i9imp3.F
37!||--- uses -----------------------------------------------------
38!|| intbufdef_mod ../common_source/modules/interfaces/intbufdef_mod.F90
39!||====================================================================
40 SUBROUTINE i9main3(IPARI,INTBUF_TAB ,X ,V ,
41 1 A ,ISKEW ,SKEW ,LCOD ,FN ,
42 2 FT ,MS ,MSMN ,MSMT ,ITAB ,
43 3 FSAV )
44C-----------------------------------------------
45C M o d u l e s
46C-----------------------------------------------
47 USE intbufdef_mod
48C-----------------------------------------------
49C I m p l i c i t T y p e s
50C-----------------------------------------------
51#include "implicit_f.inc"
52C-----------------------------------------------
53C G l o b a l P a r a m e t e r s
54C-----------------------------------------------
55#include "mvsiz_p.inc"
56C-----------------------------------------------
57C C o m m o n B l o c k s
58C-----------------------------------------------
59#include "param_c.inc"
60C-----------------------------------------------
61C D u m m y A r g u m e n t s
62C-----------------------------------------------
63 INTEGER IPARI(*), ISKEW(*), LCOD(*), ITAB(*)
64 my_real X(*), V(*), A(*), SKEW(*), FN(*), MSMN(*), FT(*), MSMT(*), MS(*) ,FSAV(NTHVKI,*)
65
66 TYPE(intbuf_struct_) INTBUF_TAB
67C-----------------------------------------------
68C L o c a l V a r i a b l e s
69C-----------------------------------------------
70 INTEGER NG, IGIMP, NGROUS
71 INTEGER, DIMENSION(MVSIZ) :: IX1,IX2,IX3,IX4
72 my_real, DIMENSION(MVSIZ) :: X1,X2,X3,X4,XI
73 my_real, DIMENSION(MVSIZ) :: y1,y2,y3,y4,yi
74 my_real, DIMENSION(MVSIZ) :: z1,z2,z3,z4,zi
75 my_real, DIMENSION(MVSIZ) :: xface,n1,n2,n3
76 my_real, DIMENSION(MVSIZ) :: ssc,ttc,area,thk,alp
77 my_real, DIMENSION(MVSIZ) :: x0,y0,z0,ans
78 my_real, DIMENSION(MVSIZ) :: xx1,xx2,xx3,xx4
79 my_real, DIMENSION(MVSIZ) :: yy1,yy2,yy3,yy4
80 my_real, DIMENSION(MVSIZ) :: zz1,zz2,zz3,zz4
81 my_real, DIMENSION(MVSIZ) :: xi1,xi2,xi3,xi4
82 my_real, DIMENSION(MVSIZ) :: yi1,yi2,yi3,yi4
83 my_real, DIMENSION(MVSIZ) :: zi1,zi2,zi3,zi4
84 my_real, DIMENSION(MVSIZ) :: xn1,xn2,xn3,xn4
85 my_real, DIMENSION(MVSIZ) :: yn1,yn2,yn3,yn4
86 my_real, DIMENSION(MVSIZ) :: zn1,zn2,zn3,zn4
87 my_real, DIMENSION(MVSIZ) :: xp,yp,zp
88 my_real, DIMENSION(MVSIZ) :: h1,h2,h3,h4
89 my_real startt, fric, gap, stopt,dist
90 INTEGER :: NMN,NSN,NTY
91 INTEGER :: LFT,LLT,NFT
92C-----------------------------------------------
93C P r e c o n d i t i o n s
94C-----------------------------------------------
95 nmn =ipari(6)
96 IF(nmn == 0)RETURN
97C-----------------------------------------------
98C B o d y
99C-----------------------------------------------
100 nsn =ipari(5)
101 nty =ipari(7)
102C
103
104C
105 fric =intbuf_tab%VARIABLES(1)
106 gap =intbuf_tab%VARIABLES(2)
107 ngrous=1+(nsn-1)/nvsiz
108C-----------------------------------------------------
109C SEARCH FOR IMPACTED POINTS
110C-----------------------------------------------------
111 DO 150 ng=1,ngrous
112 nft=(ng-1)*nvsiz
113 lft=1
114 llt=min(nvsiz,nsn-nft)
115 CALL i3loc3(
116 1 x, intbuf_tab%IRECTM,intbuf_tab%LMSR, intbuf_tab%MSR,
117 2 intbuf_tab%NSV, intbuf_tab%ILOCS, intbuf_tab%NSEGM, xi,
118 3 yi, zi, xface, lft,
119 4 llt, nft)
120 CALL i3msr3(
121 1 x, intbuf_tab%IRECTM,intbuf_tab%LMSR, intbuf_tab%MSR,
122 2 intbuf_tab%NSV, intbuf_tab%ILOCS, intbuf_tab%IRTLM, intbuf_tab%NSEGM,
123 3 xface, lft, llt, nft)
124 CALL i9cor3(
125 1 x, v, a, intbuf_tab%IRECTM,
126 2 intbuf_tab%MSR, intbuf_tab%NSV, intbuf_tab%IRTLM, ix1,
127 3 ix2, ix3, ix4, x1,
128 4 x2, x3, x4, xi,
129 5 y1, y2, y3, y4,
130 6 yi, z1, z2, z3,
131 7 z4, zi, lft, llt,
132 8 nft)
133 CALL i3cst3(
134 1 x1, x2, x3, x4,
135 2 xi, y1, y2, y3,
136 3 y4, yi, z1, z2,
137 4 z3, z4, zi, xface,
138 5 n1, n2, n3, ssc,
139 6 ttc, x0, y0, z0,
140 7 xx1, xx2, xx3, xx4,
141 8 yy1, yy2, yy3, yy4,
142 9 zz1, zz2, zz3, zz4,
143 a xi1, xi2, xi3, xi4,
144 b yi1, yi2, yi3, yi4,
145 c zi1, zi2, zi3, zi4,
146 d xn1, xn2, xn3, xn4,
147 e yn1, yn2, yn3, yn4,
148 f zn1, zn2, zn3, zn4,
149 g area, lft, llt)
150 CALL i3gap3(
151 1 gap, area, thk, alp,
152 2 lft, llt)
153 CALL i3dis3(
154 1 igimp, nty, dist, x1,
155 2 x2, x3, x4, xi,
156 3 y1, y2, y3, y4,
157 4 yi, z1, z2, z3,
158 5 z4, zi, xface, n1,
159 6 n2, n3, ssc, ttc,
160 7 alp, ans, xp, yp,
161 8 zp, h1, h2, h3,
162 9 h4, lft, llt)
163 CALL i9imp3(
164 1 intbuf_tab%ILOCS,intbuf_tab%CSTS, intbuf_tab%N, xface,
165 2 n1, n2, n3, ssc,
166 3 ttc, thk, ans, lft,
167 4 llt, nft)
168 150 CONTINUE
169C-----------------------------------------------------
170C MASSES AND CUMULATIVES FORCES
171C-----------------------------------------------------
172 CALL i9frms
173 1 (x ,skew ,a ,fn ,ft ,
174 2 intbuf_tab%IRECTM,intbuf_tab%LMSR,intbuf_tab%CSTS,intbuf_tab%MSR,
175 . intbuf_tab%NSV,
176 3 intbuf_tab%ILOCS,intbuf_tab%IRTLM,ms ,intbuf_tab%N,lcod ,
177 4 iskew ,fric ,msmn ,msmt , nmn, nsn)
178C-----------------------------------------------------
179C ACCELERATION (MAIN) AND VELOCITIES (SECOND)
180C-----------------------------------------------------
181 CALL i9avel
182 1 (x ,skew ,a ,fn ,ft ,
183 2 intbuf_tab%IRECTM,intbuf_tab%LMSR,intbuf_tab%CSTS,intbuf_tab%MSR,
184 . intbuf_tab%NSV,
185 3 intbuf_tab%ILOCS,intbuf_tab%IRTLM,lcod ,v ,iskew ,
186 4 intbuf_tab%N,ms ,intbuf_tab%VARIABLES(1),msmn ,msmt ,
187 5 intbuf_tab%STFNS,itab ,fsav, nmn, nsn )
188C
189 RETURN
190 END
subroutine area(d1, x, x2, y, y2, eint, stif0)
subroutine i3cst3(x1, x2, x3, x4, xi, y1, y2, y3, y4, yi, z1, z2, z3, z4, zi, xface, n1, n2, n3, ssc, ttc, x0, y0, z0, xx1, xx2, xx3, xx4, yy1, yy2, yy3, yy4, zz1, zz2, zz3, zz4, xi1, xi2, xi3, xi4, yi1, yi2, yi3, yi4, zi1, zi2, zi3, zi4, xn1, xn2, xn3, xn4, yn1, yn2, yn3, yn4, zn1, zn2, zn3, zn4, area, lft, llt)
Definition i3cst3.F:50
subroutine i3dis3(igimp, nty, dist, x1, x2, x3, x4, xi, y1, y2, y3, y4, yi, z1, z2, z3, z4, zi, xface, n1, n2, n3, ssc, ttc, alp, ans, xp, yp, zp, h1, h2, h3, h4, lft, llt)
Definition i3dis3.F:42
subroutine i3gap3(gap, area, thk, alp, lft, llt)
Definition i3gap3.F:35
subroutine i3loc3(x, irect, lmsr, msr, nsv, iloc, nseg, xi, yi, zi, xface, lft, llt, nft)
Definition i3loc3.F:35
subroutine i3msr3(x, irect, lmsr, msr, nsv, iloc, irtl, nseg, xface, lft, llt, nft)
Definition i3msr3.F:36
subroutine i9avel(x, skew, a, fn, ft, irect, lmsr, crst, msr, nsv, iloc, irtl, lcode, v, iskew, nor, ms, frigap, msmn, msmt, efric, itab, fsav, nmn, nsn)
Definition i9avel.F:41
subroutine i9cor3(x, v, a, irect, msr, nsv, irtl, ix1, ix2, ix3, ix4, x1, x2, x3, x4, xi, y1, y2, y3, y4, yi, z1, z2, z3, z4, zi, lft, llt, nft)
Definition i9cor3.F:37
subroutine i9frms(x, skew, a, fn, ft, irect, lmsr, crst, msr, nsv, iloc, irtl, ms, nor, lcode, iskew, fric, msmn, msmt, nmn, nsn)
Definition i9frms.F:35
subroutine i9imp3(iloc, cst, nor, xface, n1, n2, n3, ssc, ttc, thk, ans, lft, llt, nft)
Definition i9imp3.F:33
subroutine i9main3(ipari, intbuf_tab, x, v, a, iskew, skew, lcod, fn, ft, ms, msmn, msmt, itab, fsav)
Definition i9main3.F:44
subroutine intal1(ipari, x, v, a, iskew, skew, lcod, wa, ms, itab, fsav, intbuf_tab, fcont, fncont, h3d_data)
Definition intal1.F:39
#define min(a, b)
Definition macros.h:20