OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
smalla3.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!|| smalla3 ../engine/source/elements/solid/solide/smalla3.F
25!||--- called by ------------------------------------------------------
26!|| s16forc3 ../engine/source/elements/thickshell/solide16/s16forc3.F
27!|| s20forc3 ../engine/source/elements/solid/solide20/s20forc3.F
28!|| s8cforc3 ../engine/source/elements/thickshell/solide8c/s8cforc3.F
29!|| sforc3 ../engine/source/elements/solid/solide/sforc3.F
30!||====================================================================
31 SUBROUTINE smalla3(
32 1 SAV, OFFG, OFF, WXX,
33 2 WYY, WZZ, NEL, ISMSTR,
34 3 JLAG)
35C-----------------------------------------------
36C I m p l i c i t T y p e s
37C-----------------------------------------------
38#include "implicit_f.inc"
39C-----------------------------------------------
40C C o m m o n B l o c k s
41C-----------------------------------------------
42C-----------------------------------------------
43C D u m m y A r g u m e n t s
44C-----------------------------------------------
45 INTEGER, INTENT(IN) :: ISMSTR
46 INTEGER, INTENT(IN) :: JLAG
47 INTEGER NEL
49 . offg(*),off(*),wxx(*),wyy(*),wzz(*)
50 double precision
51 . sav(nel,21)
52C-----------------------------------------------
53C L o c a l V a r i a b l e s
54C-----------------------------------------------
55 INTEGER I
56 DOUBLE PRECISION X , Y, Z ,DV
57C-----------------------------------------------
58C-----------------------------
59C ROTATION RBY DES COORDONNEES POUR SMALL STRAIN
60C-----------------------------
61 IF(ismstr==11)THEN
62C----SAV : (ismstr=10,11) is differently saved to Ismstr=1
63 DO i=1,nel
64C-----------------------------------------------
65 IF(offg(i)==zero) cycle
66 x=sav(i,1)
67 y=sav(i,8)
68 z=sav(i,15)
69 sav(i,1) = x - y*wzz(i) + z*wyy(i)
70 sav(i,8) = y - z*wxx(i) + x*wzz(i)
71 sav(i,15) = z - x*wyy(i) + y*wxx(i)
72C
73 x=sav(i,2)
74 y=sav(i,9)
75 z=sav(i,16)
76 sav(i,2) = x - y*wzz(i) + z*wyy(i)
77 sav(i,9) = y - z*wxx(i) + x*wzz(i)
78 sav(i,16) = z - x*wyy(i) + y*wxx(i)
79C
80 x=sav(i,3)
81 y=sav(i,10)
82 z=sav(i,17)
83 sav(i,3) = x - y*wzz(i) + z*wyy(i)
84 sav(i,10) = y - z*wxx(i) + x*wzz(i)
85 sav(i,17) = z - x*wyy(i) + y*wxx(i)
86C
87 x=sav(i,4)
88 y=sav(i,11)
89 z=sav(i,18)
90 sav(i,4) = x - y*wzz(i) + z*wyy(i)
91 sav(i,11) = y - z*wxx(i) + x*wzz(i)
92 sav(i,18) = z - x*wyy(i) + y*wxx(i)
93C
94 x=sav(i,5)
95 y=sav(i,12)
96 z=sav(i,19)
97 sav(i,5) = x - y*wzz(i) + z*wyy(i)
98 sav(i,12) = y - z*wxx(i) + x*wzz(i)
99 sav(i,19) = z - x*wyy(i) + y*wxx(i)
100C
101 x=sav(i,6)
102 y=sav(i,13)
103 z=sav(i,20)
104 sav(i,6) = x - y*wzz(i) + z*wyy(i)
105 sav(i,13) = y - z*wxx(i) + x*wzz(i)
106 sav(i,20) = z - x*wyy(i) + y*wxx(i)
107C
108 x=sav(i,7)
109 y=sav(i,14)
110 z=sav(i,21)
111 sav(i,7) = x - y*wzz(i) + z*wyy(i)
112 sav(i,14) = y - z*wxx(i) + x*wzz(i)
113 sav(i,21) = z - x*wyy(i) + y*wxx(i)
114 ENDDO
115
116 ELSEIF(ismstr<=4.AND.jlag>0)THEN
117 DO i=1,nel
118 IF(offg(i)>one)THEN
119C-----------------------------------------------
120 x=sav(i,1)
121 y=sav(i,2)
122 z=sav(i,3)
123 sav(i,1) = x - y*wzz(i) + z*wyy(i)
124 sav(i,2) = y - z*wxx(i) + x*wzz(i)
125 sav(i,3) = z - x*wyy(i) + y*wxx(i)
126C
127 x=sav(i,4)
128 y=sav(i,5)
129 z=sav(i,6)
130 sav(i,4) = x - y*wzz(i) + z*wyy(i)
131 sav(i,5) = y - z*wxx(i) + x*wzz(i)
132 sav(i,6) = z - x*wyy(i) + y*wxx(i)
133C
134 x=sav(i,7)
135 y=sav(i,8)
136 z=sav(i,9)
137 sav(i,7) = x - y*wzz(i) + z*wyy(i)
138 sav(i,8) = y - z*wxx(i) + x*wzz(i)
139 sav(i,9) = z - x*wyy(i) + y*wxx(i)
140C
141 x=sav(i,10)
142 y=sav(i,11)
143 z=sav(i,12)
144 sav(i,10) = x - y*wzz(i) + z*wyy(i)
145 sav(i,11) = y - z*wxx(i) + x*wzz(i)
146 sav(i,12) = z - x*wyy(i) + y*wxx(i)
147C
148 x=sav(i,13)
149 y=sav(i,14)
150 z=sav(i,15)
151 sav(i,13) = x - y*wzz(i) + z*wyy(i)
152 sav(i,14) = y - z*wxx(i) + x*wzz(i)
153 sav(i,15) = z - x*wyy(i) + y*wxx(i)
154C
155 x=sav(i,16)
156 y=sav(i,17)
157 z=sav(i,18)
158 sav(i,16) = x - y*wzz(i) + z*wyy(i)
159 sav(i,17) = y - z*wxx(i) + x*wzz(i)
160 sav(i,18) = z - x*wyy(i) + y*wxx(i)
161C
162 x=sav(i,19)
163 y=sav(i,20)
164 z=sav(i,21)
165 sav(i,19) = x - y*wzz(i) + z*wyy(i)
166 sav(i,20) = y - z*wxx(i) + x*wzz(i)
167 sav(i,21) = z - x*wyy(i) + y*wxx(i)
168
169 ENDIF
170 ENDDO
171 ENDIF
172C
173 RETURN
174 END
#define my_real
Definition cppsort.cpp:32
subroutine smalla3(sav, offg, off, wxx, wyy, wzz, nel, ismstr, jlag)
Definition smalla3.F:35