OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
create_elt_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_elt_box ../starter/source/model/sets/create_elt_box.F
25!||--- called by ------------------------------------------------------
26!|| create_box_clause ../starter/source/model/sets/create_box_clause.F
27!|| create_elt_clause ../starter/source/model/sets/create_element_clause.F
28!||--- calls -----------------------------------------------------
29!|| copy_list_in_cause ../starter/source/model/sets/create_element_clause.F
30!|| fill_clause_elt_box ../starter/source/model/sets/fill_clause_elt_box.F
31!|| hm_get_int_array_index ../starter/source/devtools/hm_reader/hm_get_int_array_index.F
32!|| read_clause_box ../starter/source/model/sets/read_clause_box.F
33!||--- uses -----------------------------------------------------
34!|| hm_option_read_mod ../starter/share/modules1/hm_option_read_mod.F
35!|| message_mod ../starter/share/message_module/message_mod.F
36!|| submodel_mod ../starter/share/modules1/submodel_mod.F
37!||====================================================================
38 SUBROUTINE create_elt_box(
39 * CLAUSE ,IPARTE ,JCLAUSE ,IS_AVAILABLE ,LSUBMODEL,
40 * IBOX ,X ,SKEW ,SET_TITLE ,KEYSET ,
41 * BOXTYPE ,NUMEL ,NIX ,IX ,NIX1 ,
42 * IPART ,ELTREE ,KLEVTREE,KELTREE ,ELTYP )
43C-----------------------------------------------
44C ROUTINE DESCRIPTION :
45C ===================
46C Create NODE Clause from BOX
47C------------------------------------------------------------------
48C DUMMY ARGUMENTS DESCRIPTION:
49C ===================
50C
51C NAME DESCRIPTION
52C
53C CLAUSE (SET structure) Clause to be treated
54C JCLAUSE parameter with HM_READER (current clause read)
55C IS_AVAILABLE Bool / Result of HM_interface
56C LSUBMODEL SUBMODEL Structure.
57C============================================================================
58C-----------------------------------------------
59C M o d u l e s
60C-----------------------------------------------
61 USE setdef_mod
62 USE submodel_mod
63 USE message_mod
67C-----------------------------------------------
68C I m p l i c i t T y p e s
69C-----------------------------------------------
70#include "implicit_f.inc"
71C-----------------------------------------------
72C C o m m o n B l o c k s
73C-----------------------------------------------
74#include "com04_c.inc"
75#include "param_c.inc"
76#include "scr17_c.inc"
77C-----------------------------------------------
78C D u m m y A r g u m e n t s
79C-----------------------------------------------
80 INTEGER JCLAUSE,BOXTYPE,NIX,NIX1,KLEVTREE,KELTREE,NUMEL,ELTYP
81 LOGICAL :: IS_AVAILABLE
82 INTEGER IPARTE(*),IPART(LIPART1,*),IX(NIX,*),ELTREE(KELTREE,*)
83 my_real X(3,*),SKEW(LSKEW,*)
84 TYPE (SET_) :: CLAUSE
85 TYPE(submodel_data),INTENT(IN):: LSUBMODEL(*)!
86 TYPE (BOX_) , DIMENSION(NBBOX) :: IBOX
87 CHARACTER(LEN=NCHARFIELD) :: KEYSET
88 CHARACTER(LEN=NCHARTITLE) :: SET_TITLE
89C-----------------------------------------------
90C L o c a l V a r i a b l e s
91C-----------------------------------------------
92 INTEGER I,IDS,LIST_SIZE,NINDX_B
93 INTEGER IDS_MAX, BOXLIST_SIZE,SZ_BOXELTS
94!
95 INTEGER, ALLOCATABLE, DIMENSION(:) :: BOXELTS,BOXLIST
96C=======================================================================
97!
98 nindx_b = 0
99!
100 ALLOCATE(boxelts(numel))
101 sz_boxelts = 0
102
103
104
105 ! Read Boxes
106 ! ---------------------
107
108 CALL hm_get_int_array_index('idsmax' ,ids_max ,jclause,is_available,lsubmodel) ! Get the numbers of boxes to read
109
110 ALLOCATE(boxlist(ids_max))
111 boxlist_size=0
112
113 CALL read_clause_box(ibox ,is_available ,lsubmodel ,jclause, ids_max ,
114 * boxlist, boxlist_size)
115
116!
117 ! Fill Boxes
118 ! ---------------------
120 * ibox ,x ,skew ,set_title ,keyset ,
121 * boxlist ,boxlist_size,boxelts ,sz_boxelts,boxtype,
122 * nix ,ix ,nix1 ,iparte ,ipart ,
123 * eltree ,klevtree ,keltree ,numel )
124
125 CALL copy_list_in_cause(clause,eltyp,boxelts,sz_boxelts)
126
127 DEALLOCATE(boxelts)
128 DEALLOCATE(boxlist)
129
130 RETURN
131 END
subroutine copy_list_in_cause(clause, eltyp, sorted_list, list_size)
subroutine create_elt_box(clause, iparte, jclause, is_available, lsubmodel, ibox, x, skew, set_title, keyset, boxtype, numel, nix, ix, nix1, ipart, eltree, klevtree, keltree, eltyp)
subroutine fill_clause_elt_box(ibox, x, skew, set_title, keyset, boxlist, boxlist_size, boxelts, sz_boxelts, boxtype, nix, ix, nix1, iparte, ipart, eltree, klevtree, keltree, numel)
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)