OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i11corp3.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!|| i11corp3 ../engine/source/interfaces/int11/i11corp3.F
25!||--- called by ------------------------------------------------------
26!|| i11forcf3 ../engine/source/interfaces/int11/i11ke3.F
27!||--- uses -----------------------------------------------------
28!|| imp_intm ../engine/share/modules/imp_intm.F
29!|| tri7box ../engine/share/modules/tri7box.F
30!||====================================================================
31 SUBROUTINE i11corp3(JLT ,X ,IRECTS,IRECTM ,CAND_E ,
32 1 CAND_N,STIF ,HS1 ,HS2 ,HM1 ,
33 2 HM2 ,NX ,NY ,NZ ,N1 ,
34 3 N2 ,M1 ,M2 ,VXS1 ,VYS1 ,
35 4 VZS1 ,VXS2 ,VYS2 ,VZS2 ,VXM1 ,
36 5 VYM1 ,VZM1 ,VXM2 ,VYM2 ,VZM2 ,
37 6 DXS1 ,DYS1 ,DZS1 ,DXS2 ,DYS2 ,
38 7 DZS2 ,DXM1 ,DYM1 ,DZM1 ,DXM2 ,
39 8 DYM2 ,DZM2 ,MS1 ,MS2 ,MM1 ,
40 9 MM2 ,MS ,D ,V ,NRTS ,
41 A NIN ,JLT_NEW,LREM )
42C-----------------------------------------------
43C M o d u l e s
44C-----------------------------------------------
45 USE tri7box
46 USE imp_intm
47C-----------------------------------------------
48C I m p l i c i t T y p e s
49C-----------------------------------------------
50#include "implicit_f.inc"
51C-----------------------------------------------
52C G l o b a l P a r a m e t e r s
53C-----------------------------------------------
54#include "mvsiz_p.inc"
55C-----------------------------------------------
56C D u m m y A r g u m e n t s
57C-----------------------------------------------
58 INTEGER IRECTS(2,*),IRECTM(2,*), CAND_E(*), CAND_N(*),
59 . JLT,JLT_NEW,NIN,NRTS,LREM
60 INTEGER N1(MVSIZ), N2(MVSIZ), M1(MVSIZ), M2(MVSIZ)
61C REAL
62 my_real
63 . X(3,*),D(3,*), V(3,*), MS(*),
64 . HS1(MVSIZ), HS2(MVSIZ), HM1(MVSIZ), HM2(MVSIZ),
65 . NX(MVSIZ), NY(MVSIZ), NZ(MVSIZ), STIF(MVSIZ),
66 . MS1(MVSIZ),MS2(MVSIZ),MM1(MVSIZ),MM2(MVSIZ),
67 . VXS1(MVSIZ),VYS1(MVSIZ),VZS1(MVSIZ),VXS2(MVSIZ),VYS2(MVSIZ),
68 . vzs2(mvsiz),vxm1(mvsiz),vym1(mvsiz),vzm1(mvsiz),vxm2(mvsiz),
69 . vym2(mvsiz),vzm2(mvsiz),dxs1(mvsiz),dys1(mvsiz),dzs1(mvsiz),
70 . dxs2(mvsiz),dys2(mvsiz),dzs2(mvsiz),dxm1(mvsiz),dym1(mvsiz),
71 . dzm1(mvsiz),dxm2(mvsiz),dym2(mvsiz),dzm2(mvsiz)
72C-----------------------------------------------
73C L o c a l V a r i a b l e s
74C-----------------------------------------------
75 INTEGER I ,J ,NI, L, NN, NS ,NE,NN1,NN2
76C-----------------------------------------------
77C
78C
79 DO I=1,jlt
80 ni = cand_n(i)
81 l = cand_e(i)
82 IF(ni>nrts)THEN
83 nn = ni - nrts
84 jlt_new = jlt_new + 1
85 nn1=2*(nn-1)+1
86 nn2=2*nn
87 m1(jlt_new)=irectm(1,l)
88 m2(jlt_new)=irectm(2,l)
89 vxs1(jlt_new) = vfi(nin)%P(1,nn1)
90 vys1(jlt_new) = vfi(nin)%P(2,nn1)
91 vzs1(jlt_new) = vfi(nin)%P(3,nn1)
92 vxs2(jlt_new) = vfi(nin)%P(1,nn2)
93 vys2(jlt_new) = vfi(nin)%P(2,nn2)
94 vzs2(jlt_new) = vfi(nin)%P(3,nn2)
95 vxm1(jlt_new) = v(1,m1(jlt_new))
96 vym1(jlt_new) = v(2,m1(jlt_new))
97 vzm1(jlt_new) = v(3,m1(jlt_new))
98 vxm2(jlt_new) = v(1,m2(jlt_new))
99 vym2(jlt_new) = v(2,m2(jlt_new))
100 vzm2(jlt_new) = v(3,m2(jlt_new))
101 dxm1(jlt_new) = d(1,m1(jlt_new))
102 dym1(jlt_new) = d(2,m1(jlt_new))
103 dzm1(jlt_new) = d(3,m1(jlt_new))
104 dxm2(jlt_new) = d(1,m2(jlt_new))
105 dym2(jlt_new) = d(2,m2(jlt_new))
106 dzm2(jlt_new) = d(3,m2(jlt_new))
107 ms1(jlt_new) = msfi(nin)%P(nn1)
108 ms2(jlt_new) = msfi(nin)%P(nn2)
109 mm1(jlt_new) = ms(m1(jlt_new))
110 mm2(jlt_new) = ms(m2(jlt_new))
111C
112 ns=ind_int(nin)%P(nn)
113 ne=shf_int(nin)+jlt_new+lrem
114 hs1(jlt_new) = h_e(1,ne)
115 hs2(jlt_new) = h_e(2,ne)
116 hm1(jlt_new) = h_e(3,ne)
117 hm2(jlt_new) = h_e(4,ne)
118 stif(jlt_new)=stifs(ne)
119 nx(jlt_new)=n_e(1,ne)
120 ny(jlt_new)=n_e(2,ne)
121 nz(jlt_new)=n_e(3,ne)
122C----------displacement
123 dxs1(jlt_new)=dfi(1,ns)
124 dys1(jlt_new)=dfi(2,ns)
125 dzs1(jlt_new)=dfi(3,ns)
126 dxs2(jlt_new)=dfi(1,ns+1)
127 dys2(jlt_new)=dfi(2,ns+1)
128 dzs2(jlt_new)=dfi(3,ns+1)
129 n1(jlt_new)=ns
130 n2(jlt_new)=ns+1
131C
132 END IF
133C
134 END DO
135C
136 RETURN
137 END
138!||====================================================================
139!|| i11corkp3 ../engine/source/interfaces/int11/i11corp3.F
140!||--- called by ------------------------------------------------------
141!|| i11fku3 ../engine/source/interfaces/int11/i11ke3.F
142!||--- uses -----------------------------------------------------
143!|| imp_intm ../engine/share/modules/imp_intm.F
144!||====================================================================
145 SUBROUTINE i11corkp3(JLT ,
146 1 XXS1 ,XXS2 ,XYS1 ,XYS2 ,XZS1 ,
147 2 XZS2 ,DXS1 ,DYS1 ,DZS1 ,DXS2 ,
148 3 DYS2 ,DZS2 ,D ,CAND_N ,NRTS ,
149 4 N1 ,N2 ,NIN ,IUPD )
150C-----------------------------------------------
151C M o d u l e s
152C-----------------------------------------------
153 USE imp_intm
154C-----------------------------------------------
155C I m p l i c i t T y p e s
156C-----------------------------------------------
157#include "implicit_f.inc"
158C-----------------------------------------------
159C G l o b a l P a r a m e t e r s
160C-----------------------------------------------
161#include "mvsiz_p.inc"
162C-----------------------------------------------
163C D u m m y A r g u m e n t s
164C-----------------------------------------------
165 INTEGER CAND_N(*),JLT,NIN,NRTS,IUPD
166 INTEGER N1(MVSIZ), N2(MVSIZ)
167C REAL
168 my_real
169 . dxs1(mvsiz),dys1(mvsiz),dzs1(mvsiz),
170 . dxs2(mvsiz),dys2(mvsiz),dzs2(mvsiz),
171 . xxs1(mvsiz), xxs2(mvsiz), xys1(mvsiz), xys2(mvsiz),
172 . xzs1(mvsiz), xzs2(mvsiz),d(3,*)
173C-----------------------------------------------
174C L o c a l V a r i a b l e s
175C-----------------------------------------------
176 INTEGER I ,J ,NI, L, NN, NS ,NE,NN1,NN2
177C-----------------------------------------------
178C
179 DO i=1,jlt
180 ni = cand_n(i)
181 IF(ni>nrts)THEN
182 nn = ni - nrts
183 ns=ind_int(nin)%P(nn)
184C----------displacement
185 dxs1(i)=dfi(1,ns)
186 dys1(i)=dfi(2,ns)
187 dzs1(i)=dfi(3,ns)
188 dxs2(i)=dfi(1,ns+1)
189 dys2(i)=dfi(2,ns+1)
190 dzs2(i)=dfi(3,ns+1)
191 ELSE
192 nn1 = n1(i)
193 nn2 = n2(i)
194 dxs1(i) = d(1,nn1)
195 dys1(i) = d(2,nn1)
196 dzs1(i) = d(3,nn1)
197 dxs2(i) = d(1,nn2)
198 dys2(i) = d(2,nn2)
199 dzs2(i) = d(3,nn2)
200 END IF
201C----------update
202 IF(iupd>0.AND.ni>nrts)THEN
203 xxs1(i) = xxs1(i) + dxs1(i)
204 xys1(i) = xys1(i) + dys1(i)
205 xzs1(i) = xzs1(i) + dzs1(i)
206 xxs2(i) = xxs2(i) + dxs2(i)
207 xys2(i) = xys2(i) + dys2(i)
208 xzs2(i) = xzs2(i) + dzs2(i)
209 END IF
210C
211 END DO
212C
213 RETURN
214 END
#define my_real
Definition cppsort.cpp:32
subroutine i11corp3(jlt, x, irects, irectm, cand_e, cand_n, stif, hs1, hs2, hm1, hm2, nx, ny, nz, n1, n2, m1, m2, vxs1, vys1, vzs1, vxs2, vys2, vzs2, vxm1, vym1, vzm1, vxm2, vym2, vzm2, dxs1, dys1, dzs1, dxs2, dys2, dzs2, dxm1, dym1, dzm1, dxm2, dym2, dzm2, ms1, ms2, mm1, mm2, ms, d, v, nrts, nin, jlt_new, lrem)
Definition i11corp3.F:42
subroutine i11corkp3(jlt, xxs1, xxs2, xys1, xys2, xzs1, xzs2, dxs1, dys1, dzs1, dxs2, dys2, dzs2, d, cand_n, nrts, n1, n2, nin, iupd)
Definition i11corp3.F:150
integer, dimension(:), allocatable shf_int
Definition imp_intm.F:136
type(int_pointer2), dimension(:), allocatable ind_int
Definition imp_intm.F:133
type(real_pointer2), dimension(:), allocatable vfi
Definition tri7box.F:459
type(real_pointer), dimension(:), allocatable msfi
Definition tri7box.F:449