OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
create_node_box.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!|| create_node_box ../starter/source/model/sets/create_node_box.F
25!||--- called by ------------------------------------------------------
26!|| create_box_clause ../starter/source/model/sets/create_box_clause.F
27!|| create_node_clause ../starter/source/model/sets/create_node_clause.F
28!||--- calls -----------------------------------------------------
29!|| fill_clause_node_box ../starter/source/model/sets/fill_clause_node_box.F
30!|| hm_get_int_array_index ../starter/source/devtools/hm_reader/hm_get_int_array_index.F
31!|| read_clause_box ../starter/source/model/sets/read_clause_box.F
32!||--- uses -----------------------------------------------------
33!|| hm_option_read_mod ../starter/share/modules1/hm_option_read_mod.F
34!|| message_mod ../starter/share/message_module/message_mod.F
35!|| submodel_mod ../starter/share/modules1/submodel_mod.F
36!||====================================================================
37 SUBROUTINE create_node_box(
38 . CLAUSE ,ITABM1 ,JCLAUSE ,IS_AVAILABLE ,LSUBMODEL,
39 . IBOX ,X ,SKEW ,SET_TITLE ,KEYSET )
40C-----------------------------------------------
41C ROUTINE DESCRIPTION :
42C ===================
43C Create NODE Clause from BOX
44C------------------------------------------------------------------
45C DUMMY ARGUMENTS DESCRIPTION:
46C ===================
47C
48C NAME DESCRIPTION
49C
50C CLAUSE (SET structure) Clause to be treated
51C ITABM1 MAP Table UID -> LocalID
52C JCLAUSE parameter with HM_READER (current clause read)
53C IS_AVAILABLE Bool / Result of HM_interface
54C LSUBMODEL SUBMODEL Structure.
55C============================================================================
56C-----------------------------------------------
57C M o d u l e s
58C-----------------------------------------------
59 USE setdef_mod
60 USE submodel_mod
61 USE message_mod
65C-----------------------------------------------
66C I m p l i c i t T y p e s
67C-----------------------------------------------
68#include "implicit_f.inc"
69C-----------------------------------------------
70C C o m m o n B l o c k s
71C-----------------------------------------------
72#include "com04_c.inc"
73#include "param_c.inc"
74C-----------------------------------------------
75C D u m m y A r g u m e n t s
76C-----------------------------------------------
77 INTEGER JCLAUSE
78 LOGICAL :: IS_AVAILABLE
79 INTEGER, INTENT(IN), DIMENSION(NUMNOD,2) :: ITABM1
80 my_real x(3,*),skew(lskew,*)
81!
82 TYPE (SET_) :: CLAUSE
83 TYPE(SUBMODEL_DATA),INTENT(IN):: LSUBMODEL(*)!
84 TYPE (BOX_) , DIMENSION(NBBOX) :: IBOX
85 CHARACTER(LEN=NCHARFIELD) :: KEYSET
86 CHARACTER(LEN=NCHARTITLE) :: SET_TITLE
87C-----------------------------------------------
88C L o c a l V a r i a b l e s
89C-----------------------------------------------
90 INTEGER I,IDS,NINDX,LIST_SIZE,NODSYS,NINDX_B,NOD
91 INTEGER IDS_MAX, BOXLIST_SIZE,SZ_BOXNDS
92 INTEGER IWORK(70000)
93!
94 INTEGER, ALLOCATABLE, DIMENSION(:) :: BOXNDS,BOXLIST
95 .
96C
97! INTEGER SET_USRTOS
98! EXTERNAL SET_USRTOS
99C=======================================================================
100!
101 nindx_b = 0
102!
103 ALLOCATE(boxnds(numnod))
104 sz_boxnds = 0
105
106
107
108 ! Read Boxes
109 ! ---------------------
110
111 CALL hm_get_int_array_index('idsmax' ,ids_max ,jclause,is_available,lsubmodel) ! Get the numbers of boxes to read
112
113 ALLOCATE(boxlist(ids_max))
114 boxlist_size=0
115
116 CALL read_clause_box(ibox ,is_available ,lsubmodel ,jclause, ids_max ,
117 * boxlist, boxlist_size)
118
119!
120 ! Fill Boxes
121 ! ---------------------
122 CALL fill_clause_node_box( ibox ,x ,skew ,set_title ,keyset,
123 * boxlist, boxlist_size,
124 * boxnds, sz_boxnds )
125
126
127 ALLOCATE (clause%NODE(sz_boxnds))
128 clause%NODE(1:sz_boxnds) = boxnds(1:sz_boxnds)
129 clause%NB_NODE = sz_boxnds
130
131 RETURN
132 END
#define my_real
Definition cppsort.cpp:32
subroutine create_node_box(clause, itabm1, jclause, is_available, lsubmodel, ibox, x, skew, set_title, keyset)
subroutine fill_clause_node_box(ibox, x, skew, set_title, keyset, boxlist, boxlist_size, boxnds, sz_boxnds)
subroutine hm_get_int_array_index(name, ival, index, is_available, lsubmodel)
integer, parameter nchartitle
integer, parameter ncharfield
subroutine read_clause_box(ibox, is_available, lsubmodel, jclause, ids_max, boxlist, boxlist_size)