OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
getuloc.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!||====================================================================
25!|| getuloc ../engine/source/elements/solid/solide8s/getuloc.F
26!||--- called by ------------------------------------------------------
27!|| srcoor3_imp ../engine/source/elements/solid/solide8s/srcoor3_imp.F
28!||====================================================================
29 SUBROUTINE getuloc(
30 1 SAV, XD1, XD2, XD3,
31 2 XD4, XD5, XD6, XD7,
32 3 XD8, YD1, YD2, YD3,
33 4 YD4, YD5, YD6, YD7,
34 5 YD8, ZD1, ZD2, ZD3,
35 6 ZD4, ZD5, ZD6, ZD7,
36 7 ZD8, ULX1, ULX2, ULX3,
37 8 ULX4, ULX5, ULX6, ULX7,
38 9 ULX8, ULY1, ULY2, ULY3,
39 A ULY4, ULY5, ULY6, ULY7,
40 B ULY8, ULZ1, ULZ2, ULZ3,
41 C ULZ4, ULZ5, ULZ6, ULZ7,
42 D ULZ8, R, NEL)
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 C o m m o n B l o c k s
53C-----------------------------------------------
54C-----------------------------------------------
55C D u m m y A r g u m e n t s
56C-----------------------------------------------
57 INTEGER NEL
58C REAL
59! my_real
60! . OFFG(*)
61
62 DOUBLE PRECISION
63 . XD1(MVSIZ), XD2(MVSIZ), XD3(MVSIZ), XD4(MVSIZ),
64 . XD5(MVSIZ), XD6(MVSIZ), XD7(MVSIZ), XD8(MVSIZ),
65 . YD1(MVSIZ), YD2(MVSIZ), YD3(MVSIZ), YD4(MVSIZ),
66 . YD5(MVSIZ), YD6(MVSIZ), YD7(MVSIZ), YD8(MVSIZ),
67 . ZD1(MVSIZ), ZD2(MVSIZ), ZD3(MVSIZ), ZD4(MVSIZ),
68 . ZD5(MVSIZ), ZD6(MVSIZ), ZD7(MVSIZ), ZD8(MVSIZ),
69 . SAV(NEL,21), R(3,3,MVSIZ),
70 . ulx1(mvsiz), ulx2(mvsiz), ulx3(mvsiz), ulx4(mvsiz),
71 . ulx5(mvsiz), ulx6(mvsiz), ulx7(mvsiz), ulx8(mvsiz),
72 . uly1(mvsiz), uly2(mvsiz), uly3(mvsiz), uly4(mvsiz),
73 . uly5(mvsiz), uly6(mvsiz), uly7(mvsiz), uly8(mvsiz),
74 . ulz1(mvsiz), ulz2(mvsiz), ulz3(mvsiz), ulz4(mvsiz),
75 . ulz5(mvsiz), ulz6(mvsiz), ulz7(mvsiz), ulz8(mvsiz)
76C-----------------------------------------------
77C L o c a l V a r i a b l e s
78C-----------------------------------------------
79 INTEGER I
80C=======================================================================
81 DOUBLE PRECISION U,V,W,UL,VL,WL
82
83 DO I=1,nel
84 ulx1(i) = zero ! sb : On pourrait eviter de stocker ces 3 tables (toujours zero)
85 uly1(i) = zero
86 ulz1(i) = zero
87
88 u = (xd2(i)-xd1(i))
89 v = (yd2(i)-yd1(i))
90 w = (zd2(i)-zd1(i))
91 ul = r(1,1,i)*u+r(2,1,i)*v+r(3,1,i)*w
92 vl = r(1,2,i)*u+r(2,2,i)*v+r(3,2,i)*w
93 wl = r(1,3,i)*u+r(2,3,i)*v+r(3,3,i)*w
94 ulx2(i) = ul-sav(i,1)
95 uly2(i) = vl-sav(i,2)
96 ulz2(i) = wl-sav(i,3)
97
98 u = (xd3(i)-xd1(i))
99 v = (yd3(i)-yd1(i))
100 w = (zd3(i)-zd1(i))
101 ul = r(1,1,i)*u+r(2,1,i)*v+r(3,1,i)*w
102 vl = r(1,2,i)*u+r(2,2,i)*v+r(3,2,i)*w
103 wl = r(1,3,i)*u+r(2,3,i)*v+r(3,3,i)*w
104 ulx3(i) = ul-sav(i,4)
105 uly3(i) = vl-sav(i,5)
106 ulz3(i) = wl-sav(i,6)
107
108 u = (xd4(i)-xd1(i))
109 v = (yd4(i)-yd1(i))
110 w = (zd4(i)-zd1(i))
111 ul = r(1,1,i)*u+r(2,1,i)*v+r(3,1,i)*w
112 vl = r(1,2,i)*u+r(2,2,i)*v+r(3,2,i)*w
113 wl = r(1,3,i)*u+r(2,3,i)*v+r(3,3,i)*w
114 ulx4(i) = ul-sav(i,7)
115 uly4(i) = vl-sav(i,8)
116 ulz4(i) = wl-sav(i,9)
117
118 u = (xd5(i)-xd1(i))
119 v = (yd5(i)-yd1(i))
120 w = (zd5(i)-zd1(i))
121 ul = r(1,1,i)*u+r(2,1,i)*v+r(3,1,i)*w
122 vl = r(1,2,i)*u+r(2,2,i)*v+r(3,2,i)*w
123 wl = r(1,3,i)*u+r(2,3,i)*v+r(3,3,i)*w
124 ulx5(i) = ul-sav(i,10)
125 uly5(i) = vl-sav(i,11)
126 ulz5(i) = wl-sav(i,12)
127
128 u = (xd6(i)-xd1(i))
129 v = (yd6(i)-yd1(i))
130 w = (zd6(i)-zd1(i))
131 ul = r(1,1,i)*u+r(2,1,i)*v+r(3,1,i)*w
132 vl = r(1,2,i)*u+r(2,2,i)*v+r(3,2,i)*w
133 wl = r(1,3,i)*u+r(2,3,i)*v+r(3,3,i)*w
134 ulx6(i) = ul-sav(i,13)
135 uly6(i) = vl-sav(i,14)
136 ulz6(i) = wl-sav(i,15)
137
138 u = (xd7(i)-xd1(i))
139 v = (yd7(i)-yd1(i))
140 w = (zd7(i)-zd1(i))
141 ul = r(1,1,i)*u+r(2,1,i)*v+r(3,1,i)*w
142 vl = r(1,2,i)*u+r(2,2,i)*v+r(3,2,i)*w
143 wl = r(1,3,i)*u+r(2,3,i)*v+r(3,3,i)*w
144 ulx7(i) = ul-sav(i,16)
145 uly7(i) = vl-sav(i,17)
146 ulz7(i) = wl-sav(i,18)
147
148 u = (xd8(i)-xd1(i))
149 v = (yd8(i)-yd1(i))
150 w = (zd8(i)-zd1(i))
151 ul = r(1,1,i)*u+r(2,1,i)*v+r(3,1,i)*w
152 vl = r(1,2,i)*u+r(2,2,i)*v+r(3,2,i)*w
153 wl = r(1,3,i)*u+r(2,3,i)*v+r(3,3,i)*w
154 ulx8(i) = ul-sav(i,19)
155 uly8(i) = vl-sav(i,20)
156 ulz8(i) = wl-sav(i,21)
157
158 ENDDO
159 RETURN
160 END
subroutine getuloc(sav, xd1, xd2, xd3, xd4, xd5, xd6, xd7, xd8, yd1, yd2, yd3, yd4, yd5, yd6, yd7, yd8, zd1, zd2, zd3, zd4, zd5, zd6, zd7, zd8, ulx1, ulx2, ulx3, ulx4, ulx5, ulx6, ulx7, ulx8, uly1, uly2, uly3, uly4, uly5, uly6, uly7, uly8, ulz1, ulz2, ulz3, ulz4, ulz5, ulz6, ulz7, ulz8, r, nel)
Definition getuloc.F:43