OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
w_iparg.F File Reference
#include "implicit_f.inc"
#include "com01_c.inc"
#include "param_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine w_iparg (iparg, proc, ngroup_l, len_ia)

Function/Subroutine Documentation

◆ w_iparg()

subroutine w_iparg ( integer, dimension(nparg,*) iparg,
integer proc,
integer ngroup_l,
integer len_ia )

Definition at line 29 of file w_iparg.F.

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
void write_i_c(int *w, int *len)