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

Go to the source code of this file.

Functions/Subroutines

subroutine c_idglob (numel, numels_l, numelq_l, numeltg_l, numels_g, numelq_g, numeltg_g, proc, cel, cep, iparg, ale_connectivity, ixs, ixq, ixtg, idglob_l, uidglob_l, n2d, ngroup, nparg)
subroutine c_fasolfr (fasolfr, cep, p, cel, nfasolfr_l)

Function/Subroutine Documentation

◆ c_fasolfr()

subroutine c_fasolfr ( integer, dimension(2,*) fasolfr,
integer, dimension(*) cep,
integer p,
integer, dimension(*) cel,
integer nfasolfr_l )

Definition at line 169 of file c_idglob.F.

170C-----------------------------------------------
171C I m p l i c i t T y p e s
172C-----------------------------------------------
173#include "implicit_f.inc"
174C-----------------------------------------------
175C C o m m o n B l o c k s
176C-----------------------------------------------
177#include "com01_c.inc"
178C-----------------------------------------------
179C D u m m y A r g u m e n t s
180C-----------------------------------------------
181 INTEGER FASOLFR(2,*), CEP(*),CEL(*),P, NFASOLFR_L
182C-----------------------------------------------
183C L o c a l V a r i a b l e s
184C-----------------------------------------------
185 INTEGER N, NN
186C
187 DO n=1,nfasolfr
188 nn=fasolfr(1,n)
189 IF(cep(nn)==p)nfasolfr_l=nfasolfr_l+1
190 ENDDO
191C
192 RETURN

◆ c_idglob()

subroutine c_idglob ( integer, intent(in) numel,
integer, intent(in) numels_l,
integer, intent(in) numelq_l,
integer, intent(in) numeltg_l,
integer, intent(in) numels_g,
integer, intent(in) numelq_g,
integer, intent(in) numeltg_g,
integer, intent(in) proc,
integer, dimension(*), intent(in) cel,
integer, dimension(*), intent(in) cep,
integer, dimension(nparg, ngroup), intent(in) iparg,
type(t_ale_connectivity), intent(inout) ale_connectivity,
integer, dimension(nixs, numels_g), intent(in) ixs,
integer, dimension(nixq, numelq_g), intent(in) ixq,
integer, dimension(nixtg, numeltg_g), intent(in) ixtg,
integer, dimension(*), intent(inout) idglob_l,
integer, dimension(*), intent(inout) uidglob_l,
integer, intent(in) n2d,
integer, intent(in) ngroup,
integer, intent(in) nparg )
Parameters
[in]n2d2d / 3d flag
[in]npargsizes of array IPARG
[in]numeltg_llocal number of elems (current domain)
[in]numeltg_gglobal number of elems (all domains)

Definition at line 31 of file c_idglob.F.

33C-----------------------------------------------
34C M o d u l e s
35C-----------------------------------------------
36 USE reorder_mod
38 use element_mod , only : nixs,nixq,nixtg
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) :: N2D !< 2d / 3d flag
47 INTEGER, INTENT(IN) :: NGROUP, NPARG !< sizes of array IPARG
48 INTEGER, INTENT(IN) :: PROC, NUMEL
49 INTEGER, INTENT(IN) :: NUMELS_L, NUMELQ_L, NUMELTG_L !< local number of elems (current domain)
50 INTEGER, INTENT(IN) :: NUMELS_G, NUMELQ_G, NUMELTG_G !< global number of elems (all domains)
51 INTEGER, INTENT(IN) :: CEL(*), CEP(*)
52 INTEGER, INTENT(IN) :: IXS(NIXS, NUMELS_G), IXQ(NIXQ, NUMELQ_G), IXTG(NIXTG, NUMELTG_G)
53 INTEGER, INTENT(IN) :: IPARG(NPARG, NGROUP)
54 INTEGER, INTENT(INOUT) :: IDGLOB_L(*), UIDGLOB_L(*)
55 TYPE(t_ale_connectivity), INTENT(INOUT) :: ALE_CONNECTIVITY
56C-----------------------------------------------
57C L o c a l V a r i a b l e s
58C-----------------------------------------------
59 INTEGER :: PROCI, II, JJ, I, J, I_LOC, NEL, ITY, NFT, ICOUNT,NG, PROCJ, IAD1, LGTH
60 INTEGER :: NELEM_L
61 INTEGER, DIMENSION(:), ALLOCATABLE :: TAG
62C-----------------------------------------------
63C S o u r c e L i n e s
64C-----------------------------------------------
65 ALLOCATE(tag(numel))
66 tag(1:numel) = 0
67
68 icount = 0
69 nelem_l = 0
70 DO ng = 1, ngroup
71 nel = iparg(2, ng)
72 nft = iparg(3, ng)
73 ity = iparg(5, ng)
74 IF (ity == 1) THEN
75 ! bricks
76 nelem_l = numels_l
77 DO ii = 1, nel
78 i = ii + nft
79 iad1 = ale_connectivity%ee_connect%iad_connect(i)
80 lgth = ale_connectivity%ee_connect%iad_connect(i+1)-ale_connectivity%ee_connect%iad_connect(i)
81 proci = cep(i)
82 IF (proci == proc) THEN
83 i_loc = cel(i)
84 idglob_l(i_loc) = permutation%SOLID(i)
85 uidglob_l(i_loc) = ixs(nixs, i)
86 DO jj = 1, lgth
87 j = ale_connectivity%ee_connect%connected(iad1 + jj - 1)
88 IF (j > 0) THEN
89 procj = cep(j)
90 IF (procj /= proc .AND. tag(j) == 0) THEN
91 icount = icount + 1
92 idglob_l(nelem_l + icount) = permutation%SOLID(j)
93 uidglob_l(nelem_l + icount) = ixs(nixs, j)
94 tag(j) = 1
95 ENDIF
96 ENDIF
97 ENDDO
98 ENDIF
99 ENDDO
100
101 ELSEIF( ity == 2)THEN
102 ! quads
103 nelem_l = numelq_l
104 DO ii = 1, nel
105 i = ii + nft
106 iad1 = ale_connectivity%ee_connect%iad_connect(i)
107 lgth = ale_connectivity%ee_connect%iad_connect(i+1)-ale_connectivity%ee_connect%iad_connect(i)
108 proci = cep(i)
109 IF (proci == proc) THEN
110 i_loc = cel(i)
111 idglob_l(i_loc) = permutation%SOLID(i)
112 uidglob_l(i_loc) = ixq(nixq, i)
113 DO jj = 1, lgth
114 j = ale_connectivity%ee_connect%connected(iad1 + jj - 1)
115 IF (j > 0) THEN
116 procj = cep(j)
117 IF (procj /= proc .AND. tag(j) == 0) THEN
118 icount = icount + 1
119 idglob_l(nelem_l + icount) = permutation%SOLID(j)
120 uidglob_l(nelem_l + icount) = ixq(nixq, j)
121 tag(j) = 1
122 ENDIF
123 ENDIF
124 ENDDO
125 ENDIF
126 ENDDO
127
128 ELSEIF(ity == 7 .AND. n2d >= 0)THEN
129 ! trias
130 nelem_l = numeltg_l
131 DO ii = 1, nel
132 i = ii + nft
133 iad1 = ale_connectivity%ee_connect%iad_connect(i)
134 lgth = ale_connectivity%ee_connect%iad_connect(i+1)-ale_connectivity%ee_connect%iad_connect(i)
135 proci = cep(i)
136 IF (proci == proc) THEN
137 i_loc = cel(i)
138 idglob_l(i_loc) = permutation%SOLID(i)
139 uidglob_l(i_loc) = ixtg(nixtg, i)
140 DO jj = 1, lgth
141 j = ale_connectivity%ee_connect%connected(iad1 + jj - 1)
142 IF (j > 0) THEN
143 procj = cep(j)
144 IF (procj /= proc .AND. tag(j) == 0) THEN
145 icount = icount + 1
146 idglob_l(nelem_l + icount) = permutation%SOLID(j)
147 uidglob_l(nelem_l + icount) = ixtg(nixtg , j)
148 tag(j) = 1
149 ENDIF
150 ENDIF
151 ENDDO
152 ENDIF
153 ENDDO
154 ELSE
155 ! not a group of solid elems
156 cycle
157 ENDIF
158
159 ENDDO
160
161 DEALLOCATE(tag)
type(reorder_struct_) permutation
Definition reorder_mod.F:54