OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
upgrade_remnode.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!|| upgrade_remnode ../starter/source/interfaces/interf1/upgrade_remnode.F
25!||--- called by ------------------------------------------------------
26!|| get_list_remnode ../starter/source/interfaces/inter3d1/get_list_remnode.F90
27!|| inint3 ../starter/source/interfaces/inter3d1/inint3.F
28!|| inintr ../starter/source/interfaces/interf1/inintr.F
29!||--- uses -----------------------------------------------------
30!|| intbufmod ../starter/share/modules1/restart_mod.F
31!||====================================================================
32 SUBROUTINE upgrade_remnode(IPARI,NREMNODE,INTBUF_TAB,NTY)
33C-----------------------------------------------
34C M o d u l e s
35C-----------------------------------------------
36 USE intbufmod
37 USE intbufdef_mod
38C-------------------------------------------------------
39C I m p l i c i t T y p e s
40C-----------------------------------------------
41#include "implicit_f.inc"
42C-----------------------------------------------
43C D u m m y A r g u m e n t s
44C-----------------------------------------------
45 INTEGER NI,NREMNODE,IPARI(*)
46C-----------------------------------------------
47C L o c a l V a r i a b l e s
48C-----------------------------------------------
49 INTEGER I,OLD_SIZE ,NTY
50
51 TYPE(intbuf_struct_) INTBUF_TAB
52 INTEGER, DIMENSION (:), ALLOCATABLE :: OLD_TAB
53C======================================================================|
54C Set Global parameters
55C Set the new NREMNODE parameter for the given Interface
56 ipari(62) = nremnode
57
58 old_size = intbuf_tab%S_REMNODE
59 ALLOCATE (old_tab(old_size))
60 !save values
61 DO i=1,old_size
62 old_tab(i)=intbuf_tab%REMNODE(i)
63 ENDDO
64 DEALLOCATE(intbuf_tab%REMNODE)
65
66 !reallocate with new size and copy saved values
67 intbuf_tab%S_REMNODE = nremnode
68 ALLOCATE(intbuf_tab%REMNODE(intbuf_tab%S_REMNODE))
69 intbuf_tab%REMNODE(1:intbuf_tab%S_REMNODE)=0
70 DO i=1,old_size
71 intbuf_tab%REMNODE(i) = old_tab(i)
72 ENDDO
73C
74 DEALLOCATE(old_tab)
75C
76 IF(nty == 25 ) THEN
77
78 intbuf_tab%KREMNOR(1:intbuf_tab%S_KREMNOR)=0
79
80 old_size = intbuf_tab%S_REMNOR
81 ALLOCATE (old_tab(old_size))
82 !save values
83 DO i=1,old_size
84 old_tab(i)=intbuf_tab%REMNOR(i)
85 ENDDO
86 DEALLOCATE(intbuf_tab%REMNOR)
87 !reallocate with new size and copy saved values
88 intbuf_tab%S_REMNOR = nremnode
89 ipari(81) = nremnode
90
91 ALLOCATE(intbuf_tab%REMNOR(intbuf_tab%S_REMNOR))
92 intbuf_tab%REMNOR(1:intbuf_tab%S_REMNOR)=0
93 DO i=1,old_size
94 intbuf_tab%REMNOR(i) = old_tab(i)
95 ENDDO
96
97 DEALLOCATE(old_tab)
98 ENDIF
99
100 END
101!||====================================================================
102!|| upgrade_remnode2 ../starter/source/interfaces/interf1/upgrade_remnode.F
103!||--- called by ------------------------------------------------------
104!|| remn_i2_edgop ../starter/source/interfaces/inter3d1/i7remnode.F
105!|| remn_i2op ../starter/source/interfaces/inter3d1/i7remnode.F
106!|| remn_self24 ../starter/source/interfaces/inter3d1/remn_self24.F
107!||--- uses -----------------------------------------------------
108!|| intbufmod ../starter/share/modules1/restart_mod.F
109!|| restmod ../starter/share/modules1/restart_mod.F
110!||====================================================================
111 SUBROUTINE upgrade_remnode2(NI,NREMNODE,INTBUF_TAB,NTY)
112C-----------------------------------------------
113C M o d u l e s
114C-----------------------------------------------
115 USE restmod
116 USE intbufmod
117 USE intbufdef_mod
118C-------------------------------------------------------
119C I m p l i c i t T y p e s
120C-----------------------------------------------
121#include "implicit_f.inc"
122C-----------------------------------------------
123C C o m m o n B l o c k s
124C-----------------------------------------------
125#include "param_c.inc"
126C-----------------------------------------------
127C D u m m y A r g u m e n t s
128C-----------------------------------------------
129 INTEGER NI,NREMNODE,NTY
130C-----------------------------------------------
131C L o c a l V a r i a b l e s
132C-----------------------------------------------
133 INTEGER I,OLD_SIZE, NRTM, NSN, NEDGE
134
135 TYPE(intbuf_struct_) INTBUF_TAB
136 INTEGER, DIMENSION (:), ALLOCATABLE :: OLD_TAB
137C======================================================================|
138C Set Global parameters
139C Set the new NREMNODE parameter for the given Interface
140 ipari(npari*(ni-1)+62) = nremnode
141 ipari(npari*(ni-1)+81) = nremnode ! NREMNOR for T25
142 ipari(npari*(ni-1)+63) = 2
143 nrtm = ipari(npari*(ni-1)+4)
144 nsn = ipari(npari*(ni-1)+5)
145
146 !save old size and values for KREMNODE array
147 old_size = intbuf_tab%S_KREMNODE
148 ALLOCATE (old_tab(old_size))
149 !save values
150 DO i=1,old_size
151 old_tab(i)=intbuf_tab%KREMNODE(i)
152 ENDDO
153 DEALLOCATE(intbuf_tab%KREMNODE)
154
155 !reallocate with new size and copy saved values for KREMNODE array
156 intbuf_tab%S_KREMNODE = 2*(nrtm + 1)
157 ALLOCATE(intbuf_tab%KREMNODE(intbuf_tab%S_KREMNODE))
158 intbuf_tab%KREMNODE(1:intbuf_tab%S_KREMNODE)=0
159 DO i=1,old_size
160 intbuf_tab%KREMNODE(i) = old_tab(i)
161 ENDDO
162 DEALLOCATE(old_tab)
163
164 !save old size and values for REMNODE array
165 old_size = intbuf_tab%S_REMNODE
166 ALLOCATE (old_tab(old_size))
167 !save values
168 DO i=1,old_size
169 old_tab(i)=intbuf_tab%REMNODE(i)
170 ENDDO
171 DEALLOCATE(intbuf_tab%REMNODE)
172
173 !reallocate with new size and copy saved values for REMNODE array
174 intbuf_tab%S_REMNODE = nremnode
175 ALLOCATE(intbuf_tab%REMNODE(intbuf_tab%S_REMNODE))
176 intbuf_tab%REMNODE(1:intbuf_tab%S_REMNODE)=0
177 DO i=1,old_size
178 intbuf_tab%REMNODE(i) = old_tab(i)
179 ENDDO
180 DEALLOCATE(old_tab)
181C
182 IF(nty == 25 ) THEN
183
184 ! KREMNOR and REMNOR will be rebuilt after, from scratch !
185
186 DEALLOCATE(intbuf_tab%KREMNOR)
187 !reallocate with new size and initialize
188 intbuf_tab%S_KREMNOR = nsn + 1
189 ALLOCATE(intbuf_tab%KREMNOR(intbuf_tab%S_KREMNOR))
190 intbuf_tab%KREMNOR(1:intbuf_tab%S_KREMNOR)=0
191
192 DEALLOCATE(intbuf_tab%REMNOR)
193 !reallocate with new size and initialize
194 intbuf_tab%S_REMNOR = nremnode
195 ALLOCATE(intbuf_tab%REMNOR(intbuf_tab%S_REMNOR))
196 intbuf_tab%REMNOR(1:intbuf_tab%S_REMNOR)=0
197
198 IF(ipari(npari*(ni-1)+58) > 0.AND.intbuf_tab%S_KREMNODE_EDG ==0 ) THEN
199 nedge = ipari(npari*(ni-1)+68)
200 DEALLOCATE(intbuf_tab%KREMNODE_EDG)
201 intbuf_tab%S_KREMNODE_EDG = 2*(nedge + 1)
202 ALLOCATE(intbuf_tab%KREMNODE_EDG(intbuf_tab%S_KREMNODE_EDG))
203 intbuf_tab%KREMNODE_EDG(1:intbuf_tab%S_KREMNODE_EDG)=0
204 ENDIF
205 IF(ipari(npari*(ni-1)+58) > 0.AND.intbuf_tab%S_KREMNODE_E2S ==0 ) THEN
206 DEALLOCATE(intbuf_tab%KREMNODE_E2S)
207 intbuf_tab%S_KREMNODE_E2S= 2*(nrtm + 1)
208 ALLOCATE(intbuf_tab%KREMNODE_E2S(intbuf_tab%S_KREMNODE_E2S))
209 intbuf_tab%KREMNODE_E2S(1:intbuf_tab%S_KREMNODE_E2S)=0
210 ENDIF
211
212 END IF
213C
214 RETURN
215 END
216!||====================================================================
217!|| upgrade_remnode_edg ../starter/source/interfaces/interf1/upgrade_remnode.F
218!||--- called by ------------------------------------------------------
219!|| inint3 ../starter/source/interfaces/inter3d1/inint3.F
220!|| inintr ../starter/source/interfaces/interf1/inintr.F
221!||--- uses -----------------------------------------------------
222!|| intbufmod ../starter/share/modules1/restart_mod.F
223!||====================================================================
224 SUBROUTINE upgrade_remnode_edg(IPARI,NREMNODE,INTBUF_TAB)
225C-----------------------------------------------
226C M o d u l e s
227C-----------------------------------------------
228 USE intbufmod
229 USE intbufdef_mod
230C-------------------------------------------------------
231C I m p l i c i t T y p e s
232C-----------------------------------------------
233#include "implicit_f.inc"
234C-----------------------------------------------
235C D u m m y A r g u m e n t s
236C-----------------------------------------------
237 INTEGER NI,NREMNODE,IPARI(*)
238C-----------------------------------------------
239C L o c a l V a r i a b l e s
240C-----------------------------------------------
241 INTEGER I,OLD_SIZE ,NTY
242
243 TYPE(intbuf_struct_) INTBUF_TAB
244 INTEGER, DIMENSION (:), ALLOCATABLE :: OLD_TAB
245C======================================================================|
246C Set Global parameters
247C Set the new NREMNODE parameter for the given Interface
248 ipari(94) = nremnode
249
250 old_size = intbuf_tab%S_REMNODE_EDG
251 ALLOCATE (old_tab(old_size))
252 !save values
253 DO i=1,old_size
254 old_tab(i)=intbuf_tab%REMNODE_EDG(i)
255 ENDDO
256 DEALLOCATE(intbuf_tab%REMNODE_EDG)
257
258 !reallocate with new size and copy saved values
259 intbuf_tab%S_REMNODE_EDG = nremnode
260 ALLOCATE(intbuf_tab%REMNODE_EDG(intbuf_tab%S_REMNODE_EDG))
261 intbuf_tab%REMNODE_EDG(1:intbuf_tab%S_REMNODE_EDG)=0
262 DO i=1,old_size
263 intbuf_tab%REMNODE_EDG(i) = old_tab(i)
264 ENDDO
265C
266 DEALLOCATE(old_tab)
267C
268
269 END
270
271
272!||====================================================================
273!|| upgrade_remnode_edg2 ../starter/source/interfaces/interf1/upgrade_remnode.F
274!||--- called by ------------------------------------------------------
275!|| remn_i2op_edg25 ../starter/source/interfaces/int25/i25remlin.F
276!||--- uses -----------------------------------------------------
277!|| intbufmod ../starter/share/modules1/restart_mod.F
278!||====================================================================
279 SUBROUTINE upgrade_remnode_edg2(IPARI,NREMNODE,INTBUF_TAB)
280C-----------------------------------------------
281C M o d u l e s
282C-----------------------------------------------
283 USE intbufmod
284 USE intbufdef_mod
285C-------------------------------------------------------
286C I m p l i c i t T y p e s
287C-----------------------------------------------
288#include "implicit_f.inc"
289C-----------------------------------------------
290C C o m m o n B l o c k s
291C-----------------------------------------------
292#include "param_c.inc"
293C-----------------------------------------------
294C D u m m y A r g u m e n t s
295C-----------------------------------------------
296 INTEGER , INTENT(IN) :: NREMNODE
297 INTEGER , INTENT(INOUT) :: IPARI(NPARI)
298C-----------------------------------------------
299C L o c a l V a r i a b l e s
300C-----------------------------------------------
301 INTEGER I,OLD_SIZE ,NEDGE
302
303 TYPE(intbuf_struct_) INTBUF_TAB
304 INTEGER, DIMENSION (:), ALLOCATABLE :: OLD_TAB
305C======================================================================|
306C Set Global parameters
307C Set the new NREMNODE parameter for the given Interface
308 ipari(94) = nremnode
309 nedge = ipari(68)
310
311 DEALLOCATE(intbuf_tab%KREMNODE_EDG)
312
313 !reallocate with new size and copy saved values for KREMNODE array
314 intbuf_tab%S_KREMNODE_EDG = 2*(nedge + 1)
315 ALLOCATE(intbuf_tab%KREMNODE_EDG(intbuf_tab%S_KREMNODE_EDG))
316 intbuf_tab%KREMNODE_EDG(1:intbuf_tab%S_KREMNODE_EDG)=0
317
318 old_size = intbuf_tab%S_REMNODE_EDG
319 ALLOCATE (old_tab(old_size))
320 !save values
321 DO i=1,old_size
322 old_tab(i)=intbuf_tab%REMNODE_EDG(i)
323 ENDDO
324 DEALLOCATE(intbuf_tab%REMNODE_EDG)
325
326 !reallocate with new size and copy saved values
327 intbuf_tab%S_REMNODE_EDG = nremnode
328 ALLOCATE(intbuf_tab%REMNODE_EDG(intbuf_tab%S_REMNODE_EDG))
329 intbuf_tab%REMNODE_EDG(1:intbuf_tab%S_REMNODE_EDG)=0
330 DO i=1,old_size
331 intbuf_tab%REMNODE_EDG(i) = old_tab(i)
332 ENDDO
333C
334 DEALLOCATE(old_tab)
335C
336
337 END
338
339!||====================================================================
340!|| upgrade_remnode_e2s ../starter/source/interfaces/interf1/upgrade_remnode.F
341!||--- called by ------------------------------------------------------
342!|| remn_i2op_edg25 ../starter/source/interfaces/int25/i25remlin.F
343!||--- uses -----------------------------------------------------
344!|| intbufmod ../starter/share/modules1/restart_mod.F
345!||====================================================================
346 SUBROUTINE upgrade_remnode_e2s(IPARI,NREMNODE,INTBUF_TAB)
347C-----------------------------------------------
348C M o d u l e s
349C-----------------------------------------------
350 USE intbufmod
351 USE intbufdef_mod
352C-------------------------------------------------------
353C I m p l i c i t T y p e s
354C-----------------------------------------------
355#include "implicit_f.inc"
356C-----------------------------------------------
357C C o m m o n B l o c k s
358C-----------------------------------------------
359#include "param_c.inc"
360C-----------------------------------------------
361C D u m m y A r g u m e n t s
362C-----------------------------------------------
363 INTEGER , INTENT(IN) :: NREMNODE
364 INTEGER , INTENT(INOUT) :: IPARI(NPARI)
365C-----------------------------------------------
366C L o c a l V a r i a b l e s
367C-----------------------------------------------
368 INTEGER I,OLD_SIZE ,NRTM
369
370 TYPE(intbuf_struct_) INTBUF_TAB
371 INTEGER, DIMENSION (:), ALLOCATABLE :: OLD_TAB
372C======================================================================|
373C Set Global parameters
374C Set the new NREMNODE parameter for the given Interface
375 ipari(96) = nremnode
376 nrtm = ipari(4)
377
378 DEALLOCATE(intbuf_tab%KREMNODE_E2S)
379
380 !reallocate with new size and copy saved values for KREMNODE array
381 intbuf_tab%S_KREMNODE_E2S = 2*(nrtm + 1)
382 ALLOCATE(intbuf_tab%KREMNODE_E2S(intbuf_tab%S_KREMNODE_E2S))
383 intbuf_tab%KREMNODE_E2S(1:intbuf_tab%S_KREMNODE_E2S)=0
384
385 old_size = intbuf_tab%S_REMNODE_E2S
386 ALLOCATE (old_tab(old_size))
387 !save values
388 DO i=1,old_size
389 old_tab(i)=intbuf_tab%REMNODE_E2S(i)
390 ENDDO
391 DEALLOCATE(intbuf_tab%REMNODE_E2S)
392
393 !reallocate with new size and copy saved values
394 intbuf_tab%S_REMNODE_E2S = nremnode
395 ALLOCATE(intbuf_tab%REMNODE_E2S(intbuf_tab%S_REMNODE_E2S))
396 intbuf_tab%REMNODE_E2S(1:intbuf_tab%S_REMNODE_E2S)=0
397 DO i=1,old_size
398 intbuf_tab%REMNODE_E2S(i) = old_tab(i)
399 ENDDO
400C
401 DEALLOCATE(old_tab)
402C
403
404 END
integer, dimension(:), allocatable, target ipari
Definition restart_mod.F:60
subroutine upgrade_remnode_edg(ipari, nremnode, intbuf_tab)
subroutine upgrade_remnode_edg2(ipari, nremnode, intbuf_tab)
subroutine upgrade_remnode2(ni, nremnode, intbuf_tab, nty)
subroutine upgrade_remnode(ipari, nremnode, intbuf_tab, nty)
subroutine upgrade_remnode_e2s(ipari, nremnode, intbuf_tab)