OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_bigbox.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!|| hm_bigbox ../starter/source/model/box/hm_bigbox.F
25!||--- called by ------------------------------------------------------
26!|| hm_lecgrn ../starter/source/groups/hm_lecgrn.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../starter/source/output/message/message.F
29!|| boxbox ../starter/source/model/box/boxbox.F
30!|| boxtagn ../starter/source/model/box/bigbox.F
31!||--- uses -----------------------------------------------------
32!|| message_mod ../starter/share/message_module/message_mod.F
33!||====================================================================
34 SUBROUTINE hm_bigbox(X ,FLAG,NNOD ,
35 . SKEW,IGS ,ISKN ,ITABM1,IBOX ,
36 . ID ,IBUFBOX,IADB ,TITR,KEY,NN,
37 . IBOXMAX,IGRNOD,IDB)
38C-----------------------------------------------
39C M o d u l e s
40C-----------------------------------------------
41 USE groupdef_mod
43 USE message_mod
45C-----------------------------------------------
46C I m p l i c i t T y p e s
47C-----------------------------------------------
48#include "implicit_f.inc"
49C-----------------------------------------------
50C C o m m o n B l o c k s
51C-----------------------------------------------
52#include "com04_c.inc"
53#include "param_c.inc"
54C-----------------------------------------------
55C D u m m y A r g u m e n t s
56C-----------------------------------------------
57 INTEGER FLAG,NNOD,
58 . IGS,ISKN(LISKN,*),ITABM1(*),
59 . ID,IBUFBOX(*),IADB,NN,IBOXMAX
60 INTEGER,INTENT(IN) :: IDB
61 my_real
62 . X(3,*),SKEW(LSKEW,*)
63 CHARACTER(LEN=NCHARTITLE) :: TITR
64 CHARACTER(LEN=NCHARFIELD) :: KEY
65 TYPE (GROUP_) , DIMENSION(NGRNOD) :: IGRNOD
66 TYPE (BOX_) , DIMENSION(NBBOX) :: IBOX
67C-----------------------------------------------
68C L o c a l V a r i a b l e s
69C-----------------------------------------------
70 INTEGER I,J,K,N,ISU,JREC,NBOX,BOXTYPE,IADBOX,
71 . ICOUNT,ITER,FLAGG,INBOX,BOXNODS,IADISU
72 CHARACTER BOX*3
73 LOGICAL BOOL
74C-----------------------------------------------
75 DO i=1,nbbox
76 ibox(i)%NBLEVELS = 0
77 ibox(i)%LEVEL = 1
78 ibox(i)%ACTIBOX = 0
79 IF(ibox(i)%NBOXBOX > 0)THEN
80 ibox(i)%NBLEVELS = -1
81 ibox(i)%LEVEL = 0
82 END IF
83C
84 ibox(i)%BOXIAD = 0
85 END DO
86C-------
87C get box de box ID'S dans grnod:
88C-------
89 isu = 0
90 DO i=1,nbbox
91 IF(idb == ibox(i)%ID) THEN
92 isu=i
93 EXIT
94 ENDIF
95 END DO
96C---
97 IF(isu > 0)THEN
98 nbox = ibox(isu)%NBOXBOX
99C super box activated:
100 ibox(isu)%ACTIBOX = 1
101 ELSE
102 IF(flag == 0)THEN
103 CALL ancmsg(msgid=794,
104 . msgtype=msgerror,
105 . anmode=aninfo,
106 . i1=id,
107 . c1=titr,
108 . i2=idb)
109 END IF
110 END IF
111C---
112C simple box dans grnod:
113C---
114 bool = .false.
115 IF(isu>0)THEN
116 IF(ibox(isu)%NBLEVELS == 0 .AND. ibox(isu)%LEVEL == 1) THEN
117 IF(nbox == 0)THEN
118 CALL boxtagn(x ,ibufbox,skew,iadb,ibox,isu ,flag,iboxmax)
119 bool =.true.
120 END IF
121 END IF
122 ENDIF
123C---
124C READ LEVELS OF BOXES ==> "SUBLEVEL DONE"
125C---
126 IF(.NOT.bool)THEN
127 icount = 1
128 iter = 0
129 DO WHILE (icount == 1)
130 iter = iter + 1
131 flagg = 0
132C--- count next level
133 CALL boxbox(ibox ,skew ,
134 . flagg ,icount,iter ,ibufbox,
135 . x ,iadb ,id ,titr ,
136 . key ,flag ,iboxmax)
137C--- fill next level
138 flagg = 1
139 CALL boxbox(ibox ,skew ,
140 . flagg ,icount,iter ,ibufbox,
141 . x ,iadb ,id ,titr ,
142 . key ,flag ,iboxmax)
143C---
144 ENDDO
145 ENDIF
146C---
147C tag group nodes in main-box:
148C---
149 IF(isu > 0)THEN
150 IF(flag == 0)THEN
151 boxnods = ibox(isu)%NENTITY ! nodes of main box
152 nnod = boxnods
153 ELSE IF(flag == 1)THEN
154 boxnods = ibox(isu)%NENTITY ! nodes of main box
155 iadisu = ibox(isu)%BOXIAD ! addresses of nodes in main box
156 nnod = boxnods
157 DO i=1,boxnods
158 n=ibufbox(iadisu+i-1)
159 nn = nn + 1
160 igrnod(igs)%ENTITY(nn) = n
161 END DO
162 END IF
163 END IF
164C--------------
165 RETURN
166 END
subroutine boxtagn(x, ibufbox, skew, iadb, ibox, isu, flag, iboxmax)
Definition bigbox.F:188
subroutine boxbox(ibox, skew, flagg, icount, iter, ibufbox, x, iadb, id, titr, key, flag, iboxmax)
Definition boxbox.F:39
subroutine hm_bigbox(x, flag, nnod, skew, igs, iskn, itabm1, ibox, id, ibufbox, iadb, titr, key, nn, iboxmax, igrnod, idb)
Definition hm_bigbox.F:38
integer, parameter nchartitle
integer, parameter ncharfield
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
Definition message.F:889