OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i10corp3.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!|| i10corp3 ../engine/source/interfaces/int10/i10corp3.F
25!||--- called by ------------------------------------------------------
26!|| i10forcf3 ../engine/source/interfaces/int10/i10ke3.F
27!||--- uses -----------------------------------------------------
28!|| imp_intm ../engine/share/modules/imp_intm.F
29!|| tri7box ../engine/share/modules/tri7box.F
30!||====================================================================
31 SUBROUTINE i10corp3(JLT ,X ,IRECT ,CAND_E ,CAND_N ,
32 1 STIF ,H1 ,H2 ,H3 ,H4 ,
33 2 N1 ,N2 ,N3 ,NT1 ,NT2 ,
34 3 NT3 ,IX1 ,IX2 ,IX3 ,IX4 ,
35 4 NSVG ,VXI ,VYI ,VZI ,MSI ,
36 5 DXI ,DYI ,DZI ,NSN ,NIN ,
37 6 JLT_NEW,LREM )
38C-----------------------------------------------
39C M o d u l e s
40C-----------------------------------------------
41 USE tri7box
42 USE imp_intm
43C-----------------------------------------------
44C I m p l i c i t T y p e s
45C-----------------------------------------------
46#include "implicit_f.inc"
47C-----------------------------------------------
48C G l o b a l P a r a m e t e r s
49C-----------------------------------------------
50#include "mvsiz_p.inc"
51C-----------------------------------------------
52C D u m m y A r g u m e n t s
53C-----------------------------------------------
54 INTEGER IRECT(4,*), CAND_E(*), CAND_N(*),
55 . JLT,JLT_NEW,NIN,NSN,LREM
56 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
57 . NSVG(MVSIZ)
58C REAL
59C REAL
61 . vxi(mvsiz), vyi(mvsiz), vzi(mvsiz), msi(mvsiz),
62 . x(3,*), stif(*),n1(mvsiz), n2(mvsiz), n3(mvsiz),
63 . nt1(mvsiz), nt2(mvsiz), nt3(mvsiz),
64 . h1(mvsiz), h2(mvsiz), h3(mvsiz), h4(mvsiz),
65 . dxi(mvsiz),dyi(mvsiz),dzi(mvsiz)
66C-----------------------------------------------
67C L o c a l V a r i a b l e s
68C-----------------------------------------------
69 INTEGER I ,J ,NI, L, NN, NS ,NE
70 my_real
71 . T1,T2,T3,NORM
72C-----------------------------------------------
73C
74C
75 DO i=1,jlt
76 ni = cand_n(i)
77 l = cand_e(i)
78 IF(ni>nsn)THEN
79 nn = ni - nsn
80 jlt_new = jlt_new + 1
81 vxi(jlt_new)= vfi(nin)%P(1,nn)
82 vyi(jlt_new)= vfi(nin)%P(2,nn)
83 vzi(jlt_new)= vfi(nin)%P(3,nn)
84 msi(jlt_new)= msfi(nin)%P(nn)
85 ix1(jlt_new) = irect(1,l)
86 ix2(jlt_new) = irect(2,l)
87 ix3(jlt_new) = irect(3,l)
88 ix4(jlt_new) = irect(4,l)
89 ns=ind_int(nin)%P(nn)
90 ne=shf_int(nin)+jlt_new+lrem
91 nsvg(jlt_new) = ns
92 h1(jlt_new) = h_e(1,ne)
93 h2(jlt_new) = h_e(2,ne)
94 h3(jlt_new) = h_e(3,ne)
95 h4(jlt_new) = h_e(4,ne)
96 stif(jlt_new)=stifs(ne)
97 n1(jlt_new)=n_e(1,ne)
98 n2(jlt_new)=n_e(2,ne)
99 n3(jlt_new)=n_e(3,ne)
100C----------displacement
101 dxi(jlt_new)=dfi(1,ns)
102 dyi(jlt_new)=dfi(2,ns)
103 dzi(jlt_new)=dfi(3,ns)
104 t1 = x(1,ix3(jlt_new)) - x(1,ix1(jlt_new))
105 t2 = x(2,ix3(jlt_new)) - x(2,ix1(jlt_new))
106 t3 = x(3,ix3(jlt_new)) - x(3,ix1(jlt_new))
107 norm = one/sqrt(t1*t1+t2*t2+t3*t3)
108 nt1(jlt_new) = t1*norm
109 nt2(jlt_new) = t2*norm
110 nt3(jlt_new) = t3*norm
111C
112 END IF
113C
114 END DO
115C
116 RETURN
117 END
#define my_real
Definition cppsort.cpp:32
subroutine i10corp3(jlt, x, irect, cand_e, cand_n, stif, h1, h2, h3, h4, n1, n2, n3, nt1, nt2, nt3, ix1, ix2, ix3, ix4, nsvg, vxi, vyi, vzi, msi, dxi, dyi, dzi, nsn, nin, jlt_new, lrem)
Definition i10corp3.F:38
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