OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
anim_reset_index_all.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!|| anim_reset_index_all ../engine/source/output/anim/reader/anim_reset_index_all.F
25!||--- called by ------------------------------------------------------
26!|| freanim ../engine/source/output/anim/reader/freanim.F
27!||--- uses -----------------------------------------------------
28!|| message_mod ../engine/share/message_module/message_mod.F
29!|| stack_mod ../engine/share/modules/stack_mod.F
30!||====================================================================
32C-----------------------------------------------
33C This routine is resetting counters in cas of /STRESS/ALL, /STRAIN/ALL, etc
34C The correct indexes wrt integration points or layers of all actual elements
35C will be rebuilt
36C - just after in the starter
37C - after reading the restart file in the engine.
38C-----------------------------------------------
39C M o d u l e s
40C-----------------------------------------------
41 USE message_mod
42 USE stack_mod
43C-----------------------------------------------
44C I m p l i c i t T y p e s
45C-----------------------------------------------
46#include "implicit_f.inc"
47C-----------------------------------------------
48C C o m m o n B l o c k s
49C-----------------------------------------------
50#include "scr14_c.inc"
51#include "scr25_c.inc"
52#include "com04_c.inc"
53C-----------------------------------------------
54C L o c a l V a r i a b l e s
55C-----------------------------------------------
56 INTEGER I, J, IUS, IDX
57C-----------------------------------------------
58 IF (istresall == 1) THEN
59 DO i=1,100
60 anim_ct(100+i) = 0
61 ENDDO
62 ENDIF
63!---
64 IF (istresfull == 1) THEN
65! ...STRESS/N1/ALL
66 DO i=1,100
67 IF (anim_stress(i) == 1) THEN
68 DO j=1,10
69 ius = 10*i+j
70 anim_ct(600+ius) = 0
71 ENDDO
72 ENDIF
73 ENDDO
74 ELSEIF (istresfull == 2) THEN
75! ...STRESS/ALL/ALL
76 DO i=1,100
77 DO j=1,10
78 ius = 10*i+j
79 anim_ct(600+ius) = 0
80 ENDDO
81 ENDDO
82 ENDIF ! IF (ISTRESFULL == 1)
83!---
84 IF (istrainfull == 1) THEN
85! ...STRAIN/N1/ALL
86 idx = 1810 + 3*mx_ply_anim
87 DO i=1,100
88 DO j=1,10
89 ius = 10*i+j
90 IF (anim_strain(i) > 0) THEN
91 anim_ct(idx + ius) = 0
92 ENDIF
93 ENDDO
94 ENDDO
95 ELSEIF (istrainfull == 2) THEN
96! ...STRAIN/ALL/ALL
97 idx = 1810 + 3*mx_ply_anim
98 DO i=1,100
99 DO j=1,10
100 ius = 10*i+j
101 anim_ct(idx + ius) = 0
102 ENDDO
103 ENDDO
104 ENDIF ! IF (ISTRAINFULL == 1)
105!---
106 IF (iepsdofull == 1) THEN
107! ...EPSPDOT/N1/ALL
108 idx = 2820 + 3*mx_ply_anim
109 DO i=1,100
110 DO j=1,10
111 ius = 10*i+j
112 IF (anim_epsdot(i) > 0) THEN
113 anim_ct(idx + ius) = 0
114 ENDIF
115 ENDDO
116 ENDDO
117 ELSEIF (iepsdofull == 2) THEN
118! ...EPSPDOT/ALL/ALL
119 idx = 2820 + 3*mx_ply_anim
120 DO i=1,100
121 DO j=1,10
122 ius = 10*i+j
123 anim_ct(idx + ius) = 0
124 ENDDO
125 ENDDO
126 ENDIF ! IF (IEPSDOFULL == 1)
127!---
128 IF (iepspall == 1) THEN
129 DO i=1,100
130 anim_ce(2041+i) = 0
131 ENDDO
132 ENDIF
133!---
134 IF (iepspnlall == 1) THEN
135 idx = 4*mx_ply_anim + 14567 + 2
136 DO i=1,11
137 anim_ce(idx+i) = 0
138 ENDDO
139 ENDIF
140!---
141 IF (iepsdnlall == 1) THEN
142 idx = 4*mx_ply_anim + 14581 + 2
143 DO i=1,11
144 anim_ce(idx+i) = 0
145 ENDDO
146 ENDIF
147!---
148 IF (iepspfull == 1) THEN
149! ...EPSP/N1/ALL
150 DO i=1,100
151 IF (anim_epsp(i) == 1) THEN
152 DO j=1,10
153 ius = 10*i+j
154 anim_ce(10877+ius) = 0
155 ENDDO
156 ENDIF
157 ENDDO
158 ELSEIF (iepspfull == 2) THEN
159! ...EPSP/ALL/ALL
160 DO i=1,100
161 DO j=1,10
162 ius = 10*i+j
163 anim_ce(10877+ius) = 0
164 ENDDO
165 ENDDO
166 ENDIF ! IF (IEPSPFULL == 1)
167C
168 IF (iwplaall == 1) THEN
169 idx = 13247 + 4*mx_ply_anim
170 DO i=1,100
171 anim_ce(idx + i) = 0
172 ENDDO
173 ENDIF
174!---
175 IF (iwplafull == 1) THEN
176! ...WPLA/N1/ALL
177 idx = 13547 + 4*mx_ply_anim
178 DO i=1,100
179 IF (anim_wpla(i) == 1) THEN
180 DO j=1,10
181 ius = 10*(i-1) + j
182 anim_ce(idx + ius) = 0
183 ENDDO
184 ENDIF
185 ENDDO
186 ELSEIF (iwplafull == 2) THEN
187! ...WPLA/ALL/ALL
188 idx = 13547 + 4*mx_ply_anim
189 DO i=1,100
190 DO j=1,10
191 ius = 10*(i-1)+j
192 anim_ce(idx + ius) = 0
193 ENDDO
194 ENDDO
195 ENDIF ! IF (IWPLAFULL == 1)
196!---
197 IF (idamafull == 1) THEN
198 idx = 11931 + 4*mx_ply_anim
199 DO i=1,100
200 IF (anim_dama(i) == 1) THEN
201 DO j=1,10
202 ius = 10*i+j
203 anim_ce(idx + 300 + ius) = 0
204 ENDDO
205 ENDIF
206 ENDDO
207 ELSEIF (idamafull == 2) THEN
208 idx = 11931 + 4*mx_ply_anim
209 DO i=1,100
210 DO j=1,10
211 ius = 10*i+j
212 anim_ce(idx + 300 + ius) = 0
213 ENDDO
214 ENDDO
215 ENDIF ! IF (IDAMAFULL == 1)
216!---
217 IF (itsaiwuall == 1) THEN
218! ...TSAIWU/ALL
219 idx = 14597 + 4*mx_ply_anim
220 DO i=1,100
221 anim_ce(idx + i) = 0
222 ENDDO
223 ELSEIF (itsaiwuall == 2) THEN
224! ...TSAIWU/ALL/ALL
225 idx = 14897 + 4*mx_ply_anim
226 DO i=1,100
227 DO j=1,10
228 ius = 10*(i-1)+j
229 anim_ce(idx + ius) = 0
230 ENDDO
231 ENDDO
232 ENDIF
233
234 IF (itsaiwufull > 0) THEN
235! ...TSAIWU/N1/ALL
236 idx = 14897 + 4*mx_ply_anim
237 DO j=1,10
238 ius = 10*(itsaiwufull-1) + j
239 anim_ce(idx + ius) = 0
240 ENDDO
241 ENDIF ! IF (IWPLAFULL == 1)
242C-----------------------------------------------
243 RETURN
244 END
subroutine anim_reset_index_all()