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

Go to the source code of this file.

Functions/Subroutines

subroutine build_addcnel_sub (addcnel, cnel, addcnel_sub, indx, subsize)

Function/Subroutine Documentation

◆ build_addcnel_sub()

subroutine build_addcnel_sub ( integer, dimension(*), intent(in) addcnel,
integer, dimension(*), intent(in) cnel,
integer, dimension(*), intent(inout) addcnel_sub,
integer, dimension(*), intent(in) indx,
integer, intent(in) subsize )

Definition at line 28 of file build_addcnel_sub.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 "com04_c.inc"
38C-----------------------------------------------
39C D u m m y A r g u m e n t s
40C-----------------------------------------------
41 ! ADDCNE table for all nodes
42 INTEGER,INTENT(IN) :: ADDCNEL(*) ! (0:NUMNOD+1)
43 ! CNE table for all nodes
44 INTEGER,INTENT(IN) :: CNEL(*) ! (ADDCNEL(NUMNOD+1)-1)
45 ! Index table for corresping number in the node subset
46 INTEGER,INTENT(IN) :: INDX(*) ! (SUBSIZE)
47 ! Size of the subset
48 INTEGER,INTENT(IN) :: SUBSIZE
49 ! ADDCNE table for the subset of nodes
50 INTEGER,INTENT(INOUT) :: ADDCNEL_SUB(*) ! (0:SUBSIZE + 1) => SUBSIZE+2
51C-----------------------------------------------
52C L o c a l V a r i a b l e s
53C-----------------------------------------------
54 INTEGER NS ! Number of the node in the subset
55 INTEGER NG ! Number of the node in the global set
56 INTEGER NEL ! Number of element attached to the node
57 INTEGER NUMG
58 INTEGER I,K
59C-----------------------------------------------
60C
61C Building the ADDCNEL table for a subset of nodes
62C
63 ! The first node is in first position in FSKY
64 addcnel_sub(2) = 1
65 ! Boucle ici pour indexer les elements non-locaux
66 ! Loop over the nodes of the subset
67 DO ns=1,subsize
68 ! Number of the corresponding global node
69 ng = indx(ns)
70 ! Finding the number of elements attached to the previous node
71 nel = addcnel(ng+2) - addcnel(ng+1)
72 ! Initialization of the subsize element counter
73 k = 0
74 ! Loop over attached element
75 DO i = 1,nel
76 ! Number of the element
77 numg = cnel(addcnel(ng+1)+i-1)
78 ! Treatment according to element type
79 IF (numg<=numels) THEN
80 k = k + 1
81 ELSEIF (numg<=numels+numelq) THEN
82 CONTINUE
83 ELSEIF (numg<=numels+numelq+numelc) THEN
84 k = k + 1
85 ELSEIF (numg<=numels+numelq+numelc+numelt) THEN
86 CONTINUE
87 ELSEIF (numg<=numels+numelq+numelc+numelt+numelp) THEN
88 CONTINUE
89 ELSEIF (numg<=numels+numelq+numelc+numelt+numelp+ ! If the element is a triangle shell
90 . numelr) THEN
91 CONTINUE
92 ELSEIF (numg<=numels+numelq+numelc+numelt+numelp+ ! If the element is a triangle shell
93 . numelr+numeltg) THEN
94 k = k + 1
95 ELSE
96 CONTINUE
97 ENDIF
98 ENDDO
99 ! Computing the position of the current subset node in FSKY
100 addcnel_sub(ns+2) = addcnel_sub(ns+1) + k
101 ENDDO
102C-----------------------------------------------
103 RETURN