OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
fcumu3.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!|| fcumu3 ../engine/source/elements/solid/solide/fcumu3.F
25!||--- called by ------------------------------------------------------
26!|| sforc3 ../engine/source/elements/solid/solide/sforc3.F
27!||====================================================================
28 SUBROUTINE fcumu3(
29 1 OFFG, F, NC1, NC2,
30 2 NC3, NC4, NC5, NC6,
31 3 NC7, NC8, STIFN, STI,
32 4 F11, F21, F31, F12,
33 5 F22, F32, F13, F23,
34 6 F33, F14, F24, F34,
35 7 F15, F25, F35, F16,
36 8 F26, F36, F17, F27,
37 9 F37, F18, F28, F38,
38 A NVC, NEL)
39C-----------------------------------------------
40C I m p l i c i t T y p e s
41C----------------------------------------------
42#include "implicit_f.inc"
43C-----------------------------------------------
44C D u m m y A r g u m e n t s
45C-----------------------------------------------
46 INTEGER, INTENT(IN) :: NEL
47 INTEGER NC1(*), NC2(*), NC3(*), NC4(*), NC5(*), NC6(*), NC7(*),
48 . NC8(*),NVC
49C REAL
50 my_real
51 . OFFG(*),F(3,*),STIFN(*),STI(*),
52 . F11(*),F21(*),F31(*),F12(*),F22(*),F32(*),
53 . F13(*),F23(*),F33(*),F14(*),F24(*),F34(*),
54 . F15(*),F25(*),F35(*),F16(*),F26(*),F36(*),
55 . F17(*),F27(*),F37(*),F18(*),F28(*),F38(*)
56C-----------------------------------------------
57C C o m m o n B l o c k s
58C-----------------------------------------------
59C-----------------------------------------------
60C L o c a l V a r i a b l e s
61C-----------------------------------------------
62 INTEGER I, J
63 my_real
64 . OFF_L
65 INTEGER NVC1,NVC2,NVC3,NVC4,NVC5,NVC6,NVC7,NVC8
66C-----------------------------------------------
67 OFF_L = 0.
68 do i=1,nel
69 off_l = min(off_l,offg(i))
70 ENDDO
71 IF(off_l<zero)THEN
72 DO i=1,nel
73 IF(offg(i) >= zero)cycle
74 f11(i)=zero
75 f21(i)=zero
76 f31(i)=zero
77 f12(i)=zero
78 f22(i)=zero
79 f32(i)=zero
80 f13(i)=zero
81 f23(i)=zero
82 f33(i)=zero
83 f14(i)=zero
84 f24(i)=zero
85 f34(i)=zero
86 f15(i)=zero
87 f25(i)=zero
88 f35(i)=zero
89 f16(i)=zero
90 f26(i)=zero
91 f36(i)=zero
92 f17(i)=zero
93 f27(i)=zero
94 f37(i)=zero
95 f18(i)=zero
96 f28(i)=zero
97 f38(i)=zero
98 sti(i)=zero
99 ENDDO
100 ENDIF
101C
102 nvc1 = nvc / 128
103 nvc2 =(nvc-nvc1*128) / 64
104 nvc3 =(nvc-nvc1*128-nvc2*64) / 32
105 nvc4 =(nvc-nvc1*128-nvc2*64-nvc3*32)/16
106 nvc5 =(nvc-nvc1*128-nvc2*64-nvc3*32-nvc4*16)/8
107 nvc6 =(nvc-nvc1*128-nvc2*64-nvc3*32-nvc4*16-nvc5*8)/4
108 nvc7 =(nvc-nvc1*128-nvc2*64-nvc3*32-nvc4*16-nvc5*8-nvc6*4)/2
109 nvc8 = nvc-nvc1*128-nvc2*64-nvc3*32-nvc4*16-nvc5*8-nvc6*4-nvc7*2
110C
111C because 2*Mnodal = 2*Melement/8
112 DO i=1,nel
113 sti(i)=fourth*sti(i)
114 END DO
115C
116 IF(nvc1 == 0)THEN
117#include "vectorize.inc"
118 DO i=1,nel
119 f(1,nc1(i))=f(1,nc1(i))+f11(i)
120 f(2,nc1(i))=f(2,nc1(i))+f21(i)
121 f(3,nc1(i))=f(3,nc1(i))+f31(i)
122cc STIFN(NC1(I))=STIFN(NC1(I))+STI(I)
123 ENDDO
124 ELSE
125 DO i=1,nel
126 f(1,nc1(i))=f(1,nc1(i))+f11(i)
127 f(2,nc1(i))=f(2,nc1(i))+f21(i)
128 f(3,nc1(i))=f(3,nc1(i))+f31(i)
129cc STIFN(NC1(I))=STIFN(NC1(I))+STI(I)
130 ENDDO
131 ENDIF
132 IF(nvc2 == 0)THEN
133#include "vectorize.inc"
134 DO i=1,nel
135 f(1,nc2(i))=f(1,nc2(i))+f12(i)
136 f(2,nc2(i))=f(2,nc2(i))+f22(i)
137 f(3,nc2(i))=f(3,nc2(i))+f32(i)
138cc STIFN(NC2(I))=STIFN(NC2(I))+STI(I)
139 ENDDO
140 ELSE
141 DO i=1,nel
142 f(1,nc2(i))=f(1,nc2(i))+f12(i)
143 f(2,nc2(i))=f(2,nc2(i))+f22(i)
144 f(3,nc2(i))=f(3,nc2(i))+f32(i)
145cc STIFN(NC2(I))=STIFN(NC2(I))+STI(I)
146 ENDDO
147 ENDIF
148 IF(nvc3 == 0)THEN
149#include "vectorize.inc"
150 DO i=1,nel
151 f(1,nc3(i))=f(1,nc3(i))+f13(i)
152 f(2,nc3(i))=f(2,nc3(i))+f23(i)
153 f(3,nc3(i))=f(3,nc3(i))+f33(i)
154cc STIFN(NC3(I))=STIFN(NC3(I))+STI(I)
155 ENDDO
156 ELSE
157 DO i=1,nel
158 f(1,nc3(i))=f(1,nc3(i))+f13(i)
159 f(2,nc3(i))=f(2,nc3(i))+f23(i)
160 f(3,nc3(i))=f(3,nc3(i))+f33(i)
161cc STIFN(NC3(I))=STIFN(NC3(I))+STI(I)
162 ENDDO
163 ENDIF
164 IF(nvc4 == 0)THEN
165#include "vectorize.inc"
166 DO i=1,nel
167 f(1,nc4(i))=f(1,nc4(i))+f14(i)
168 f(2,nc4(i))=f(2,nc4(i))+f24(i)
169 f(3,nc4(i))=f(3,nc4(i))+f34(i)
170cc STIFN(NC4(I))=STIFN(NC4(I))+STI(I)
171 ENDDO
172 ELSE
173 DO i=1,nel
174 f(1,nc4(i))=f(1,nc4(i))+f14(i)
175 f(2,nc4(i))=f(2,nc4(i))+f24(i)
176 f(3,nc4(i))=f(3,nc4(i))+f34(i)
177cc STIFN(NC4(I))=STIFN(NC4(I))+STI(I)
178 ENDDO
179 ENDIF
180 IF(nvc5 == 0)THEN
181#include "vectorize.inc"
182 DO i=1,nel
183 f(1,nc5(i))=f(1,nc5(i))+f15(i)
184 f(2,nc5(i))=f(2,nc5(i))+f25(i)
185 f(3,nc5(i))=f(3,nc5(i))+f35(i)
186cc STIFN(NC5(I))=STIFN(NC5(I))+STI(I)
187 ENDDO
188 ELSE
189 DO i=1,nel
190 f(1,nc5(i))=f(1,nc5(i))+f15(i)
191 f(2,nc5(i))=f(2,nc5(i))+f25(i)
192 f(3,nc5(i))=f(3,nc5(i))+f35(i)
193cc STIFN(NC5(I))=STIFN(NC5(I))+STI(I)
194 ENDDO
195 ENDIF
196 IF(nvc6 == 0)THEN
197#include "vectorize.inc"
198 DO i=1,nel
199 f(1,nc6(i))=f(1,nc6(i))+f16(i)
200 f(2,nc6(i))=f(2,nc6(i))+f26(i)
201 f(3,nc6(i))=f(3,nc6(i))+f36(i)
202cc STIFN(NC6(I))=STIFN(NC6(I))+STI(I)
203 ENDDO
204 ELSE
205 DO i=1,nel
206 f(1,nc6(i))=f(1,nc6(i))+f16(i)
207 f(2,nc6(i))=f(2,nc6(i))+f26(i)
208 f(3,nc6(i))=f(3,nc6(i))+f36(i)
209cc STIFN(NC6(I))=STIFN(NC6(I))+STI(I)
210 ENDDO
211 ENDIF
212 IF(nvc7 == 0)THEN
213#include "vectorize.inc"
214 DO i=1,nel
215 f(1,nc7(i))=f(1,nc7(i))+f17(i)
216 f(2,nc7(i))=f(2,nc7(i))+f27(i)
217 f(3,nc7(i))=f(3,nc7(i))+f37(i)
218cc STIFN(NC7(I))=STIFN(NC7(I))+STI(I)
219 ENDDO
220 ELSE
221 DO i=1,nel
222 f(1,nc7(i))=f(1,nc7(i))+f17(i)
223 f(2,nc7(i))=f(2,nc7(i))+f27(i)
224 f(3,nc7(i))=f(3,nc7(i))+f37(i)
225cc STIFN(NC7(I))=STIFN(NC7(I))+STI(I)
226 ENDDO
227 ENDIF
228 IF(nvc8 == 0)THEN
229#include "vectorize.inc"
230 DO i=1,nel
231 f(1,nc8(i))=f(1,nc8(i))+f18(i)
232 f(2,nc8(i))=f(2,nc8(i))+f28(i)
233 f(3,nc8(i))=f(3,nc8(i))+f38(i)
234cc STIFN(NC8(I))=STIFN(NC8(I))+STI(I)
235 ENDDO
236 ELSE
237 DO i=1,nel
238 f(1,nc8(i))=f(1,nc8(i))+f18(i)
239 f(2,nc8(i))=f(2,nc8(i))+f28(i)
240 f(3,nc8(i))=f(3,nc8(i))+f38(i)
241cc STIFN(NC8(I))=STIFN(NC8(I))+STI(I)
242 ENDDO
243 ENDIF
244C
245 RETURN
246 END
subroutine fcumu3(offg, f, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, stifn, sti, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, nvc, nel)
Definition fcumu3.F:39
#define min(a, b)
Definition macros.h:20