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

Go to the source code of this file.

Functions/Subroutines

subroutine simple_node_box (ibox, x, skew, ib, nd_array, nd_size)

Function/Subroutine Documentation

◆ simple_node_box()

subroutine simple_node_box ( type (box_), dimension(nbbox) ibox,
x,
skew,
integer ib,
integer, dimension(*) nd_array,
integer nd_size )

Definition at line 33 of file simple_node_box.F.

36C-----------------------------------------------
37C ROUTINE DESCRIPTION :
38C ===================
39C create node list from BOX
40C------------------------------------------------------------------
41C DUMMY ARGUMENTS DESCRIPTION:
42C ===================
43C
44C NAME DESCRIPTION
45C
46C IBOX BOX structure
47C X Node position
48C SKEW SKEW array
49C NOD_ARRAY Result list of nodes
50C ND_SIZE number of stacked nodes
51C IB Box to treat
52C============================================================================
53C-----------------------------------------------
54C M o d u l e s
55C-----------------------------------------------
57C-----------------------------------------------
58C I m p l i c i t T y p e s
59C-----------------------------------------------
60#include "implicit_f.inc"
61C-----------------------------------------------
62C C o m m o n B l o c k s
63C-----------------------------------------------
64#include "com04_c.inc"
65#include "param_c.inc"
66C-----------------------------------------------
67C D u m m y A r g u m e n t s
68C-----------------------------------------------
69 INTEGER ND_ARRAY(*),IB,ND_SIZE
71 . x(3,*),skew(lskew,*)
72C-----------------------------------------------
73 TYPE (BOX_) , DIMENSION(NBBOX) :: IBOX
74C-----------------------------------------------
75C L o c a l V a r i a b l e s
76C-----------------------------------------------
77 INTEGER I,J,INSIDE,ISK,BOX_TYPE,NBOXBOX,IBX
79 . xp1,yp1,zp1,xp2,yp2,zp2,diam,nodinb(3)
80C-----------------------------------------------
81 nd_size = 0
82C------------
83! IBOX(IGS)%ISKBOX = ISK
84! IBOX(IGS)%NOD1 = J2(1)
85! IBOX(IGS)%NOD2 = J2(2)
86C IBOX(IGS)%NBOXBOX : NUMBER OF SUB BOXES (BOXES OF BOXES)
87! IF(key(1:5) == 'RECTA')ibox(igs)%TYPE = 1
88! IF(KEY(1:5) == 'CYLIN')IBOX(IGS)%TYPE = 2
89! IF(KEY(1:5) == 'SPHER')IBOX(IGS)%TYPE = 3
90! IBOX(IGS)%DIAM = DIAM
91! IBOX(IGS)%X1 = XP1
92! IBOX(IGS)%Y1 = YP1
93! IBOX(IGS)%Z1 = ZP1
94! IBOX(IGS)%X2 = XP2
95! IBOX(IGS)%Y2 = YP2
96! IBOX(IGS)%Z2 = ZP2
97C------------
98 ibx = abs(ib) ! a box can be have negative user_ID if within Box of Box
99 isk = ibox(ibx)%ISKBOX
100 box_type = ibox(ibx)%TYPE
101 xp1 = ibox(ibx)%X1
102 yp1 = ibox(ibx)%Y1
103 zp1 = ibox(ibx)%Z1
104 xp2 = ibox(ibx)%X2
105 yp2 = ibox(ibx)%Y2
106 zp2 = ibox(ibx)%Z2
107 diam = ibox(ibx)%DIAM
108 !
109 ! RECTA
110 IF (box_type == 1) THEN
111 DO j=1,numnod
112 inside = 0
113 nodinb(1) = x(1,j)
114 nodinb(2) = x(2,j)
115 nodinb(3) = x(3,j)
116 CALL checkpara(xp1,yp1,zp1,xp2,yp2,zp2,
117 . isk,nodinb,skew,inside)
118
119 IF (inside == 1) THEN
120 nd_size = nd_size + 1
121 nd_array(nd_size) = j ! add node
122 ENDIF
123
124 ENDDO ! DO J=1,NUMNOD
125 !
126 ! cylin
127 ELSEIF (box_type == 2) THEN
128 DO j=1,numnod
129 inside = 0
130 nodinb(1) = x(1,j)
131 nodinb(2) = x(2,j)
132 nodinb(3) = x(3,j)
133 CALL checkcyl(xp1, yp1, zp1 , xp2, yp2, zp2,
134 . nodinb , diam, inside )
135
136 IF (inside == 1) THEN
137 nd_size = nd_size + 1
138 nd_array(nd_size) = j ! add node
139 ENDIF
140
141 ENDDO ! DO J=1,NUMNOD
142 !
143 ! SPHER
144 ELSEIF (box_type == 3) THEN
145 DO j=1,numnod
146 inside = 0
147 nodinb(1) = x(1,j)
148 nodinb(2) = x(2,j)
149 nodinb(3) = x(3,j)
150 CALL checksphere(xp1, yp1, zp1, nodinb, diam, inside)
151
152 IF (inside == 1) THEN
153 nd_size = nd_size + 1
154 nd_array(nd_size) = j ! add node
155 ENDIF
156
157 ENDDO ! DO J=1,NUMNOD
158 ENDIF ! IF (BOX_TYPE == 1)
159!
160C---------------
161 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine checkcyl(xp1, yp1, zp1, xp2, yp2, zp2, nodin, d, ok)
Definition rdbox.F:229
subroutine checkpara(xp1, yp1, zp1, xp2, yp2, zp2, isk, nodin, skew, ok)
Definition rdbox.F:39
subroutine checksphere(xp, yp, zp, nodin, d, ok)
Definition rdbox.F:347