OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
c_gr_entity.F File Reference
#include "implicit_f.inc"
#include "com04_c.inc"
#include "r2r_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine c_gr_entity_e (igr, ngr, lenigr, cep, cel, proc, eshift, lenigr_l)
subroutine c_gr_entity_p (igr, ngr, lenigr, cep, cel, proc, lenigr_l)
subroutine c_gr_entity_n (igr, ngr, lenigr, nodlocal, proc, lenigr_l, frontb_r2r, numnod_l)

Function/Subroutine Documentation

◆ c_gr_entity_e()

subroutine c_gr_entity_e ( type (group_), dimension(ngr) igr,
integer ngr,
integer lenigr,
integer, dimension(*) cep,
integer, dimension(*) cel,
integer proc,
integer eshift,
integer lenigr_l )

Definition at line 29 of file c_gr_entity.F.

31C-----------------------------------------------
32C M o d u l e s
33C-----------------------------------------------
34 USE groupdef_mod
35C-----------------------------------------------
36C I m p l i c i t T y p e s
37C-----------------------------------------------
38#include "implicit_f.inc"
39C-----------------------------------------------
40C D u m m y A r g u m e n t s
41C-----------------------------------------------
42 INTEGER NGR,LENIGR,CEP(*),CEL(*),PROC,ESHIFT,LENIGR_L
43!
44 TYPE (GROUP_) , DIMENSION(NGR) :: IGR
45C-----------------------------------------------
46C L o c a l V a r i a b l e s
47C-----------------------------------------------
48 INTEGER I,J,ID,IGU,NENTITY,GRTYPE,TRI,GRPGRP,LEVEL,R2R_ALL,
49 . R2R_SHARE,L_GROUP,ENTITY,
50 . NENTITY_L(NGR)
51 CHARACTER TITR*40
52C-----------------------------------------------
53!
54 l_group = 0
55!
56 DO igu=1,ngr
57 id = igr(igu)%ID
58 nentity = igr(igu)%NENTITY
59 grtype = igr(igu)%GRTYPE
60 tri = igr(igu)%SORTED
61 grpgrp = igr(igu)%GRPGRP
62 level = igr(igu)%LEVEL
63 titr = igr(igu)%TITLE
64 r2r_all = igr(igu)%R2R_ALL
65 r2r_share= igr(igu)%R2R_SHARE
66!
67! IGROUP_L(L_GROUP+1) = ID
68 l_group = l_group+1
69! IGROUP_L(L_GROUP+1) = NENTITY_L(IGU)
70 l_group = l_group+1
71! IGROUP_L(L_GROUP+1) = GRTYPE
72 l_group = l_group+1
73! IGROUP_L(L_GROUP+1) = TRI
74 l_group = l_group+1
75! IGROUP_L(L_GROUP+1) = GRPGRP
76 l_group = l_group+1
77! IGROUP_L(L_GROUP+1) = LEVEL
78 l_group = l_group+1
79! IGROUP_L(L_GROUP+1) = TITR !!! written above for all groups
80! L_GROUP = L_GROUP+1
81! IGROUP_L(L_GROUP+1) = R2R_ALL
82 l_group = l_group+1
83! IGROUP_L(L_GROUP+1) = R2R_SHARE
84 l_group = l_group+1
85!
86!
87! GROUP ENTITIES
88!
89 DO j=1,nentity
90 entity = igr(igu)%ENTITY(j)
91 IF (entity > 0) THEN
92 entity = entity + eshift
93 IF (cep(entity) == proc) THEN
94! IGROUP_L(L_GROUP+1) = CEL(ENTITY)
95 l_group = l_group+1
96 ENDIF
97 ENDIF
98 ENDDO
99 ENDDO ! DO IGU=1,NGR
100!---------
101 lenigr_l = l_group
102!---------
103 RETURN
initmumps id

◆ c_gr_entity_n()

subroutine c_gr_entity_n ( type (group_), dimension(ngr) igr,
integer ngr,
integer lenigr,
integer, dimension(*), intent(in) nodlocal,
integer proc,
integer lenigr_l,
integer, dimension(sfrontb_r2r,*) frontb_r2r,
integer, intent(in) numnod_l )

Definition at line 190 of file c_gr_entity.F.

192C-----------------------------------------------
193C M o d u l e s
194C-----------------------------------------------
195 USE groupdef_mod
196C-----------------------------------------------
197C I m p l i c i t T y p e s
198C-----------------------------------------------
199#include "implicit_f.inc"
200C-----------------------------------------------
201C C o m m o n B l o c k s
202C-----------------------------------------------
203#include "com04_c.inc"
204#include "r2r_c.inc"
205C-----------------------------------------------
206C D u m m y A r g u m e n t s
207C-----------------------------------------------
208 INTEGER NGR,LENIGR,PROC,LENIGR_L,
209 . FRONTB_R2R(SFRONTB_R2R,*)
210 INTEGER, INTENT(IN) :: NUMNOD_L
211 INTEGER, DIMENSION(*), INTENT(IN) :: NODLOCAL
212!
213 TYPE (GROUP_) , DIMENSION(NGR) :: IGR
214! -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
215! NODLOCAL : integer, dimension=NUMNOD
216! gives the local ID of a global element
217! --> used here to avoid NLOCAL call (the NLOCAL perf is bad)
218! NODLOCAL /= 0 if the element is on the current domain/processor
219! and =0 if the element is not on the current domain
220! -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
221C-----------------------------------------------
222C F u n c t i o n
223C-----------------------------------------------
224! INTEGER NLOCAL
225! EXTERNAL NLOCAL
226C-----------------------------------------------
227C L o c a l V a r i a b l e s
228C-----------------------------------------------
229 INTEGER I,J,ID,IGU,NOD,NNOD,GRTYPE,TRI,GRPGRP,LEVEL,R2R_ALL,
230 . R2R_SHARE,L_GROUP,ERR,ITITLE(40),NNOD_LOC(NGR),
231 . IGU1,IGU2
232 my_real
233 . code
234 CHARACTER TITR*40
235! CHARACTER(LEN=NCHARTITLE)::TITR
236C-----------------------------------------------
237 l_group = 0
238!
239 DO igu=1,ngr
240 id = igr(igu)%ID
241 nnod = igr(igu)%NENTITY
242 grtype = igr(igu)%GRTYPE
243 tri = igr(igu)%SORTED
244 grpgrp = igr(igu)%GRPGRP
245 level = igr(igu)%LEVEL
246 titr = igr(igu)%TITLE
247 r2r_all = igr(igu)%R2R_ALL
248 r2r_share= igr(igu)%R2R_SHARE
249!
250! IGROUP_L(L_GROUP+1) = ID
251 l_group = l_group+1
252! IGROUP_L(L_GROUP+1) = NNOD_LOC(IGU)
253 l_group = l_group+1
254! IGROUP_L(L_GROUP+1) = GRTYPE
255 l_group = l_group+1
256! IGROUP_L(L_GROUP+1) = TRI
257 l_group = l_group+1
258! IGROUP_L(L_GROUP+1) = GRPGRP
259 l_group = l_group+1
260! IGROUP_L(L_GROUP+1) = LEVEL
261 l_group = l_group+1
262!! IGROUP_L(L_GROUP+1) = TITR !!! written above for all groups
263!! L_GROUP = L_GROUP+1
264! IGROUP_L(L_GROUP+1) = R2R_ALL
265 l_group = l_group+1
266! IGROUP_L(L_GROUP+1) = R2R_SHARE
267 l_group = l_group+1
268!
269! GROUP ENTITIES (--- NODES ---)
270!
271 DO j=1,nnod
272 nod = igr(igu)%ENTITY(j)
273 IF (nod > 0) THEN
274!---------multidomaines -> modif domdec
275 IF ((nsubdom>0).AND.(iddom==0)) THEN
276 IF (frontb_r2r(nod,proc+1) == igu) THEN
277 cycle
278 ELSEIF (frontb_r2r(nod,proc+1) > ngrnod) THEN
279 code = frontb_r2r(nod,proc+1)/ngrnod
280 igu1 = nint(code)
281 igu2 = frontb_r2r(nod,proc+1) - igu1*ngrnod
282 IF ((igu==igu1).OR.(igu==igu2)) cycle
283 ENDIF
284 ENDIF
285!---------
286 IF( nodlocal(nod)/=0.AND.nodlocal(nod)<=numnod_l ) THEN
287! IGROUP_L(L_GROUP+1) = NODLOCAL(NOD)
288 l_group = l_group+1
289 ENDIF
290 ENDIF
291 ENDDO ! DO J=1,NNOD
292 ENDDO ! DO igu=1,ngr
293!---------
294 lenigr_l = l_group
295!---------
296 RETURN
#define my_real
Definition cppsort.cpp:32
if(complex_arithmetic) id
end diagonal values have been computed in the(sparse) matrix id.SOL

◆ c_gr_entity_p()

subroutine c_gr_entity_p ( type (group_), dimension(ngr) igr,
integer ngr,
integer lenigr,
integer, dimension(*) cep,
integer, dimension(*) cel,
integer proc,
integer lenigr_l )

Definition at line 109 of file c_gr_entity.F.

111C-----------------------------------------------
112C M o d u l e s
113C-----------------------------------------------
114 USE groupdef_mod
115C-----------------------------------------------
116C I m p l i c i t T y p e s
117C-----------------------------------------------
118#include "implicit_f.inc"
119C-----------------------------------------------
120C D u m m y A r g u m e n t s
121C-----------------------------------------------
122 INTEGER NGR,LENIGR,CEP(*),CEL(*),PROC,LENIGR_L
123!
124 TYPE (GROUP_) , DIMENSION(NGR) :: IGR
125C-----------------------------------------------
126C L o c a l V a r i a b l e s
127C-----------------------------------------------
128 INTEGER I,J,ID,IGU,NENTITY,GRTYPE,TRI,GRPGRP,LEVEL,R2R_ALL,
129 . R2R_SHARE,L_GROUP,ERR,ITITLE(40),ENTITY,NENTITY_L
130 CHARACTER TITR*40
131! CHARACTER(LEN=NCHARTITLE)::TITR
132 INTEGER LTITR
133C-----------------------------------------------
134!
135 l_group = 0
136!
137 DO igu=1,ngr
138 id = igr(igu)%ID
139 nentity = igr(igu)%NENTITY
140 grtype = igr(igu)%GRTYPE
141 tri = igr(igu)%SORTED
142 grpgrp = igr(igu)%GRPGRP
143 level = igr(igu)%LEVEL
144 titr = igr(igu)%TITLE
145 r2r_all = igr(igu)%R2R_ALL
146 r2r_share= igr(igu)%R2R_SHARE
147!
148! GROUP ENTITIES
149!
150! IGROUP_L(L_GROUP+1) = ID
151 l_group = l_group+1
152! IGROUP_L(L_GROUP+1) = NENTITY
153 l_group = l_group+1
154! IGROUP_L(L_GROUP+1) = GRTYPE
155 l_group = l_group+1
156! IGROUP_L(L_GROUP+1) = TRI
157 l_group = l_group+1
158! IGROUP_L(L_GROUP+1) = GRPGRP
159 l_group = l_group+1
160! IGROUP_L(L_GROUP+1) = LEVEL
161 l_group = l_group+1
162!! IGROUP_L(L_GROUP+1) = TITR !!! written above for all groups
163!! L_GROUP = L_GROUP+1
164! IGROUP_L(L_GROUP+1) = R2R_ALL
165 l_group = l_group+1
166! IGROUP_L(L_GROUP+1) = R2R_SHARE
167 l_group = l_group+1
168!
169! GROUP ENTITIES
170!
171 DO j=1,nentity
172 entity = igr(igu)%ENTITY(j)
173 IF (entity > 0) THEN
174! IGROUP_L(L_GROUP+1) = ENTITY
175 l_group = l_group+1
176 ENDIF
177 ENDDO
178 ENDDO ! DO IGU=1,NGR
179!---------
180 lenigr_l = l_group
181!---------
182 RETURN