OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
cndordr.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!|| cndordr ../engine/source/model/remesh/cndordr.F
25!||--- called by ------------------------------------------------------
26!|| resol ../engine/source/engine/resol.F
27!|| resol_init ../engine/source/engine/resol_init.F
28!||--- uses -----------------------------------------------------
29!|| remesh_mod ../engine/share/modules/remesh_mod.F
30!||====================================================================
31 SUBROUTINE cndordr(IPART,IPARTC,IPARTTG,SH4TREE,SH3TREE)
32C-----------------------------------------------
33C M o d u l e s
34C-----------------------------------------------
35 USE remesh_mod
36C-----------------------------------------------
37C I m p l i c i t T y p e s
38C-----------------------------------------------
39#include "implicit_f.inc"
40#include "comlock.inc"
41C-----------------------------------------------
42C C o m m o n B l o c k s
43C-----------------------------------------------
44#include "com04_c.inc"
45#include "param_c.inc"
46#include "remesh_c.inc"
47#include "scr17_c.inc"
48C-----------------------------------------------
49C D u m m y A r g u m e n t s
50C-----------------------------------------------
51 INTEGER IPART(LIPART1,*), IPARTC(*), IPARTTG(*),
52 . SH4TREE(KSH4TREE,*), SH3TREE(KSH3TREE,*)
53C-----------------------------------------------
54C L o c a l V a r i a b l e s
55C-----------------------------------------------
56 INTEGER N,NN,LEVEL,IP,PTR,SON
57C-----------------------------------------------
58 psh4upl(0)=0
59 ptr=0
60 DO n=1,numelc
61 ip=ipartc(n)
62 IF(ipart(10,ip) > 0)THEN
63 IF(sh4tree(3,n) == -1)THEN
64 ptr=ptr+1
65 lsh4upl(ptr)=n
66 END IF
67 END IF
68 END DO
69
70 DO level=0,levelmax-1
71 psh4upl(level+1)=ptr
72
73 DO nn=psh4upl(level)+1,psh4upl(level+1)
74 n =lsh4upl(nn)
75 son =sh4tree(2,n)
76 IF(sh4tree(3,son) < 0)THEN
77 ptr=ptr+1
78 lsh4upl(ptr)=son
79 END IF
80 IF(sh4tree(3,son+1) < 0)THEN
81 ptr=ptr+1
82 lsh4upl(ptr)=son+1
83 END IF
84 IF(sh4tree(3,son+2) < 0)THEN
85 ptr=ptr+1
86 lsh4upl(ptr)=son+2
87 END IF
88 IF(sh4tree(3,son+3) < 0)THEN
89 ptr=ptr+1
90 lsh4upl(ptr)=son+3
91 END IF
92 END DO
93
94 END DO
95C--------------------------------------------
96C TRIANGLES
97C--------------------------------------------
98 psh3upl(0)=0
99 ptr=0
100 DO n=1,numeltg
101 ip=iparttg(n)
102 IF(ipart(10,ip) > 0)THEN
103 IF(sh3tree(3,n) == -1)THEN
104 ptr=ptr+1
105 lsh3upl(ptr)=n
106 END IF
107 END IF
108 END DO
109
110 DO level=0,levelmax-1
111 psh3upl(level+1)=ptr
112
113 DO nn=psh3upl(level)+1,psh3upl(level+1)
114 n =lsh3upl(nn)
115 son =sh3tree(2,n)
116 IF(sh3tree(3,son) < 0)THEN
117 ptr=ptr+1
118 lsh3upl(ptr)=son
119 END IF
120 IF(sh3tree(3,son+1) < 0)THEN
121 ptr=ptr+1
122 lsh3upl(ptr)=son+1
123 END IF
124 IF(sh3tree(3,son+2) < 0)THEN
125 ptr=ptr+1
126 lsh3upl(ptr)=son+2
127 END IF
128 IF(sh3tree(3,son+3) < 0)THEN
129 ptr=ptr+1
130 lsh3upl(ptr)=son+3
131 END IF
132 END DO
133 END DO
134
135 RETURN
136 END
subroutine cndordr(ipart, ipartc, iparttg, sh4tree, sh3tree)
Definition cndordr.F:32
integer, dimension(:), allocatable lsh4upl
Definition remesh_mod.F:71
integer, dimension(:), allocatable lsh3upl
Definition remesh_mod.F:71
integer, dimension(:), allocatable psh3upl
Definition remesh_mod.F:71
integer, dimension(:), allocatable psh4upl
Definition remesh_mod.F:71