OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i6for3.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!|| i6for3 ../engine/source/interfaces/inter3d/i6for3.F
25!||--- called by ------------------------------------------------------
26!|| i6main ../engine/source/interfaces/inter3d/i6main.F
27!||====================================================================
28 SUBROUTINE i6for3(
29 1 IRECT, MSR, NSV, IRTL,
30 2 STF, STFN, IGIMP, ES,
31 3 EM, ANSMX, FMX, FMY,
32 4 FMZ, PENI, N1, N2,
33 5 N3, XFACE, ANS, H1,
34 6 H2, H3, H4, THK,
35 7 FNI, FXI, FYI, FZI,
36 8 FX1, FX2, FX3, FX4,
37 9 FY1, FY2, FY3, FY4,
38 A FZ1, FZ2, FZ3, FZ4,
39 B LFT, LLT, NFT)
40C-----------------------------------------------
41C I m p l i c i t T y p e s
42C-----------------------------------------------
43#include "implicit_f.inc"
44C-----------------------------------------------
45C G l o b a l P a r a m e t e r s
46C-----------------------------------------------
47#include "mvsiz_p.inc"
48C-----------------------------------------------
49C D u m m y A r g u m e n t s
50C-----------------------------------------------
51 INTEGER, INTENT(INOUT) :: LFT
52 INTEGER, INTENT(INOUT) :: LLT
53 INTEGER, INTENT(INOUT) :: NFT
54 INTEGER IGIMP
55C REAL
56 my_real
57 . ANSMX, FMX, FMY, FMZ, PENI
58 INTEGER IRECT(4,*), MSR(*), NSV(*), IRTL(*)
59C REAL
60 my_real
61 . STF(*), STFN(*), ES(*), EM(*)
62 my_real, DIMENSION(MVSIZ), INTENT(IN) :: n1,n2,n3
63 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: ans,xface
64 my_real, DIMENSION(MVSIZ), INTENT(IN) :: h1,h2,h3,h4,thk
65 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: fni
66 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: fxi,fyi,fzi
67 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: fx1,fx2,fx3,fx4
68 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: fy1,fy2,fy3,fy4
69 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: fz1,fz2,fz3,fz4
70C-----------------------------------------------
71C C o m m o n B l o c k s
72C-----------------------------------------------
73C-----------------------------------------------
74C L o c a l V a r i a b l e s
75C-----------------------------------------------
76 INTEGER I, IL, L, J3, J2, J1, I3,I2, I1
77C REAL
78 my_real
79 . penet
80C-----------------------------------------------
81 DO i=lft,llt
82 penet = (ans(i)-thk(i))*xface(i)
83 ansmx = min(ansmx,penet)
84 ans(i)= min(zero,penet)
85 IF (ans(i) == zero) xface(i)=zero
86 ans(i) = xface(i)*ans(i)
87 ENDDO
88C
89 igimp = 0
90 DO i=lft,llt
91 igimp = igimp+abs(xface(i))
92 ENDDO
93 IF (igimp == 0) RETURN
94C
95 DO i=lft,llt
96 fni(i)=ans(i)
97 fxi(i)=n1(i)*fni(i)
98 fyi(i)=n2(i)*fni(i)
99 fzi(i)=n3(i)*fni(i)
100 ENDDO
101C
102 DO i=lft,llt
103 fx1(i)=fxi(i)*h1(i)
104 fy1(i)=fyi(i)*h1(i)
105 fz1(i)=fzi(i)*h1(i)
106C
107 fx2(i)=fxi(i)*h2(i)
108 fy2(i)=fyi(i)*h2(i)
109 fz2(i)=fzi(i)*h2(i)
110C
111 fx3(i)=fxi(i)*h3(i)
112 fy3(i)=fyi(i)*h3(i)
113 fz3(i)=fzi(i)*h3(i)
114C
115 fx4(i)=fxi(i)*h4(i)
116 fy4(i)=fyi(i)*h4(i)
117 fz4(i)=fzi(i)*h4(i)
118 ENDDO
119C
120 DO i=lft,llt
121 il=i+nft
122 l =irtl(il)
123 j3=3*irect(1,l)
124 j2=j3-1
125 j1=j2-1
126 em(j1)=em(j1)+fx1(i)
127 em(j2)=em(j2)+fy1(i)
128 em(j3)=em(j3)+fz1(i)
129C
130 j3=3*irect(2,l)
131 j2=j3-1
132 j1=j2-1
133 em(j1)=em(j1)+fx2(i)
134 em(j2)=em(j2)+fy2(i)
135 em(j3)=em(j3)+fz2(i)
136C
137 j3=3*irect(3,l)
138 j2=j3-1
139 j1=j2-1
140 em(j1)=em(j1)+fx3(i)
141 em(j2)=em(j2)+fy3(i)
142 em(j3)=em(j3)+fz3(i)
143C
144 j3=3*irect(4,l)
145 j2=j3-1
146 j1=j2-1
147 em(j1)=em(j1)+fx4(i)
148 em(j2)=em(j2)+fy4(i)
149 em(j3)=em(j3)+fz4(i)
150 ENDDO
151C
152 DO i=lft,llt
153 i3=3*(i+nft)
154 i2=i3-1
155 i1=i2-1
156 es(i1)=es(i1)-fxi(i)
157 es(i2)=es(i2)-fyi(i)
158 es(i3)=es(i3)-fzi(i)
159 fmx = fmx + fxi(i)
160 fmy = fmy + fyi(i)
161 fmz = fmz + fzi(i)
162 ENDDO
163C-----------
164 RETURN
165 END
subroutine i6for3(irect, msr, nsv, irtl, stf, stfn, igimp, es, em, ansmx, fmx, fmy, fmz, peni, n1, n2, n3, xface, ans, h1, h2, h3, h4, thk, fni, fxi, fyi, fzi, fx1, fx2, fx3, fx4, fy1, fy2, fy3, fy4, fz1, fz2, fz3, fz4, lft, llt, nft)
Definition i6for3.F:40
#define min(a, b)
Definition macros.h:20