OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
w_iparg.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!|| w_iparg ../starter/source/restart/ddsplit/w_iparg.F
25!||--- called by ------------------------------------------------------
26!|| ddsplit ../starter/source/restart/ddsplit/ddsplit.F
27!||--- calls -----------------------------------------------------
28!||====================================================================
29 SUBROUTINE w_iparg(IPARG,PROC,NGROUP_L,LEN_IA)
30C-----------------------------------------------
31C I m p l i c i t T y p e s
32C-----------------------------------------------
33#include "implicit_f.inc"
34C-----------------------------------------------
35C C o m m o n B l o c k s
36C-----------------------------------------------
37#include "com01_c.inc"
38#include "param_c.inc"
39C-----------------------------------------------
40C D u m m y A r g u m e n t s
41C-----------------------------------------------
42 INTEGER PROC, NGROUP_L, LEN_IA, IPARG(NPARG,*)
43C-----------------------------------------------
44C L o c a l V a r i a b l e s
45C-----------------------------------------------
46 INTEGER NG, NG_L, NFT_LOC, ITY, ITY_OLD, LB_L, J, LBUFELI,
47 . SHIFT_XFE
48 INTEGER, DIMENSION(:,:), ALLOCATABLE :: IPARG_L
49C
50! ---------------------
51! allocate 2d array
52 ALLOCATE( iparg_l(nparg,ngroup_l) )
53! ---------------------
54 ng_l = 0
55 nft_loc = 0
56 ity_old = 0
57 lb_l = 1
58 DO ng = 1, ngroup
59 IF(iparg(32,ng)==proc) THEN
60 ng_l = ng_l + 1
61 DO j = 1, nparg
62 iparg_l(j,ng_l) = iparg(j,ng)
63 ENDDO
64 ity = iparg(5,ng)
65 IF(ity/=ity_old) THEN
66 nft_loc = 0
67 ity_old = ity
68 ENDIF
69 iparg_l(3,ng_l) = nft_loc
70 iparg_l(4,ng_l) = lb_l
71 IF(iparg(54,ng) > 0)THEN ! if xfem
72 shift_xfe = iparg(67,ng) - iparg(4,ng)
73 iparg_l(67,ng_l) = iparg_l(4,ng_l) + shift_xfe
74 ENDIF
75 nft_loc = nft_loc + iparg(2,ng)
76 IF(ng<ngroup) THEN
77 lbufeli = iparg(4,ng+1) - iparg(4,ng)
78 ELSE
79 lbufeli = lbufel + 1 - iparg(4,ng)
80 ENDIF
81 lb_l = lb_l + lbufeli
82 ENDIF
83 ENDDO
84C
85 CALL write_i_c(iparg_l,nparg*ngroup_l)
86 len_ia = len_ia + nparg*ngroup_l
87C
88! ---------------------
89! deallocate 2d array
90 DEALLOCATE( iparg_l )
91! ---------------------
92 RETURN
93 END
subroutine w_iparg(iparg, proc, ngroup_l, len_ia)
Definition w_iparg.F:30
void write_i_c(int *w, int *len)