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