OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i2vit10.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!|| i2vit10 ../engine/source/interfaces/interf/i2vit10.F
25!||--- called by ------------------------------------------------------
26!|| intti2v ../engine/source/interfaces/interf/intti2v.F
27!||====================================================================
28 SUBROUTINE i2vit10(
29 1 NSN ,NMN ,MS ,V ,A ,
30 2 AR ,VR ,X ,IRECT ,NSV ,
31 3 MSR ,IRTL ,CRST ,IRUPT ,WEIGHT )
32C-----------------------------------------------
33C I m p l i c i t T y p e s
34C-----------------------------------------------
35#include "implicit_f.inc"
36C-----------------------------------------------
37C D u m m y A r g u m e n t s
38C-----------------------------------------------
39 INTEGER NSN,NMN,
40 . IRECT(4,*), MSR(*), NSV(*), IRTL(*),IRUPT(*),WEIGHT(*)
41C REAL
43 . a(3,*),v(3,*),ar(3,*),vr(3,*),x(3,*),ms(*),crst(2,*)
44C-----------------------------------------------
45C L o c a l V a r i a b l e s
46C-----------------------------------------------
47 INTEGER NIR, I, J, II, JJ, L
48C REAL
49 my_real
50 . h(4), ss, tt, amx, amy, amz, vmx, vmy, vmz,sp,sm,tp,tm
51C=======================================================================
52 nir=4
53C
54 DO ii=1,nsn
55 i = nsv(ii)
56 l = irtl(ii)
57C
58 IF(i > 0 .AND. irupt(ii) == 0) THEN
59 ss=crst(1,ii)
60 tt=crst(2,ii)
61 sp=one + ss
62 sm=one - ss
63 tp=fourth*(one + tt)
64 tm=fourth*(one - tt)
65 h(1)=tm*sm
66 h(2)=tm*sp
67 h(3)=tp*sp
68 h(4)=tp*sm
69 amx=zero
70 amy=zero
71 amz=zero
72 vmx=zero
73 vmy=zero
74 vmz=zero
75C
76 DO jj=1,nir
77 j=irect(jj,l)
78 amx=amx+a(1,j)*h(jj)
79 amy=amy+a(2,j)*h(jj)
80 amz=amz+a(3,j)*h(jj)
81 vmx=vmx+v(1,j)*h(jj)
82 vmy=vmy+v(2,j)*h(jj)
83 vmz=vmz+v(3,j)*h(jj)
84 ENDDO
85 a(1,i)=amx
86 a(2,i)=amy
87 a(3,i)=amz
88 v(1,i)=vmx
89 v(2,i)=vmy
90 v(3,i)=vmz
91C
92 ENDIF
93 ENDDO
94C----
95 RETURN
96 END
97!||====================================================================
98!|| i2rot10 ../engine/source/interfaces/interf/i2vit10.F
99!||--- called by ------------------------------------------------------
100!|| intti2v ../engine/source/interfaces/interf/intti2v.F
101!||====================================================================
102 SUBROUTINE i2rot10(
103 1 NSN ,NMN ,MS ,V ,A ,
104 2 AR ,VR ,X ,IRECT ,NSV ,
105 3 MSR ,IRTL ,CRST ,IRUPT ,WEIGHT )
106C-----------------------------------------------
107C I m p l i c i t T y p e s
108C-----------------------------------------------
109#include "implicit_f.inc"
110C-----------------------------------------------
111C D u m m y A r g u m e n t s
112C-----------------------------------------------
113 INTEGER NSN,NMN,
114 . IRECT(4,*), MSR(*), NSV(*), IRTL(*),IRUPT(*),WEIGHT(*)
115C REAL
116 my_real
117 . A(3,*),V(3,*),AR(3,*),VR(3,*),X(3,*),MS(*),CRST(2,*)
118C-----------------------------------------------
119C L o c a l V a r i a b l e s
120C-----------------------------------------------
121 INTEGER NIR, I, J, II, JJ, L
122C REAL
123 my_real
124 . h(4), ss, tt, amx, amy, amz, vmx, vmy, vmz,sp,sm,tp,tm,
125 . v1x2, v2x1, v2x3, v3x2, v3x1, v1x3,xc0,yc0,zc0
126C=======================================================================
127 nir=4
128C
129 DO ii=1,nsn
130 i = nsv(ii)
131 l = irtl(ii)
132C
133 IF(i > 0 .AND. irupt(ii) == 0) THEN
134 ss=crst(1,ii)
135 tt=crst(2,ii)
136 sp=one + ss
137 sm=one - ss
138 tp=fourth*(one + tt)
139 tm=fourth*(one - tt)
140 h(1)=tm*sm
141 h(2)=tm*sp
142 h(3)=tp*sp
143 h(4)=tp*sm
144C
145 xc0 = x(1,i)
146 yc0 = x(2,i)
147 zc0 = x(3,i)
148C
149 amx=zero
150 amy=zero
151 amz=zero
152 vmx=zero
153 vmy=zero
154 vmz=zero
155 DO jj=1,4
156 j=irect(jj,l)
157 amx=amx+ar(1,j)*h(jj)
158 amy=amy+ar(2,j)*h(jj)
159 amz=amz+ar(3,j)*h(jj)
160 vmx=vmx+vr(1,j)*h(jj)
161 vmy=vmy+vr(2,j)*h(jj)
162 vmz=vmz+vr(3,j)*h(jj)
163 xc0=xc0 - x(1,j) * h(jj)
164 yc0=yc0 - x(2,j) * h(jj)
165 zc0=zc0 - x(3,j) * h(jj)
166 ENDDO
167 ar(1,i)=amx
168 ar(2,i)=amy
169 ar(3,i)=amz
170 vr(1,i)=vmx
171 vr(2,i)=vmy
172 vr(3,i)=vmz
173 v1x2=vmx * yc0
174 v2x1=vmy * xc0
175 v2x3=vmy * zc0
176 v3x2=vmz * yc0
177 v3x1=vmz * xc0
178 v1x3=vmx * zc0
179
180 a(1,i)= a(1,i) + amy * zc0 - amz * yc0
181 . - half*(vmy*v2x1+vmz*v3x1)
182 a(2,i)= a(2,i) + amz * xc0 - amx * zc0
183 . - half*(vmz*v3x2+vmx*v1x2)
184 a(3,i)= a(3,i) + amx * yc0 - amy * xc0
185 . - half*(vmx*v1x3+vmy*v2x3)
186 v(1,i)= v(1,i) + v2x3 - v3x2
187 v(2,i)= v(2,i) + v3x1 - v1x3
188 v(3,i)= v(3,i) + v1x2 - v2x1
189 ENDIF
190 ENDDO
191C----
192 RETURN
193 END
#define my_real
Definition cppsort.cpp:32
subroutine i2vit10(nsn, nmn, ms, v, a, ar, vr, x, irect, nsv, msr, irtl, crst, irupt, weight)
Definition i2vit10.F:32
subroutine i2rot10(nsn, nmn, ms, v, a, ar, vr, x, irect, nsv, msr, irtl, crst, irupt, weight)
Definition i2vit10.F:106