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

Go to the source code of this file.

Functions/Subroutines

subroutine hm_bigbox2 (x, flag, nel, skew, igs, iskn, itabm1, ibox, id, nadmesh, nix, ix, nix1, numel, iparte, ipart, klevtree, eltree, keltree, buftmp, key, titr, mes, igrelem, ngrele, nn, iadb, iboxmax, ibufbox, idb)

Function/Subroutine Documentation

◆ hm_bigbox2()

subroutine hm_bigbox2 ( x,
integer flag,
integer nel,
skew,
integer igs,
integer, dimension(liskn,*) iskn,
integer, dimension(*) itabm1,
type (box_), dimension(nbbox) ibox,
integer id,
integer nadmesh,
integer nix,
integer, dimension(nix,*) ix,
integer nix1,
integer numel,
integer, dimension(*) iparte,
integer, dimension(lipart1,*) ipart,
integer klevtree,
integer, dimension(keltree,*) eltree,
integer keltree,
integer, dimension(numel*5) buftmp,
character key,
character(len=nchartitle) titr,
character mes,
type (group_), dimension(ngrele) igrelem,
integer ngrele,
integer nn,
integer iadb,
integer iboxmax,
integer, dimension(*) ibufbox,
integer, intent(in) idb )

Definition at line 34 of file hm_bigbox2.F.

40C-----------------------------------------------
41C M o d u l e s
42C-----------------------------------------------
43 USE message_mod
44 USE groupdef_mod
47C-----------------------------------------------
48C I m p l i c i t T y p e s
49C-----------------------------------------------
50#include "implicit_f.inc"
51C-----------------------------------------------
52C C o m m o n B l o c k s
53C-----------------------------------------------
54#include "com04_c.inc"
55#include "scr17_c.inc"
56#include "param_c.inc"
57C-----------------------------------------------
58C D u m m y A r g u m e n t s
59C-----------------------------------------------
60 INTEGER JREC,FLAG,NEL,IGS,
61 . ISKN(LISKN,*),ITABM1(*),ID,NADMESH,
62 . NIX,IX(NIX,*),NIX1,NUMEL,IPARTE(*),IPART(LIPART1,*),
63 . KLEVTREE,KELTREE,ELTREE(KELTREE,*),
64 . BUFTMP(NUMEL*5),NGRELE,NN,IBOXMAX,IADB,IBUFBOX(*)
65 INTEGER,INTENT(IN) :: IDB
66 my_real x(3,*),skew(lskew,*)
67 CHARACTER KEY*4,MES*40
68 CHARACTER(LEN=NCHARTITLE) :: TITR
69C-----------------------------------------------
70 TYPE (GROUP_), DIMENSION(NGRELE) :: IGRELEM
71 TYPE (BOX_) , DIMENSION(NBBOX) :: IBOX
72C-----------------------------------------------
73C L o c a l V a r i a b l e s
74C-----------------------------------------------
75 INTEGER I,J,ISU,ISK,TAGN(NUMEL),BOXTYPE,
76 . NEGBOX,TAGNEG(NUMEL),TAGPOS(NUMEL),
77 . NBOX,BOXELE,ICOUNT,ITER,FLAGG,IADISU
78 my_real xp1,yp1,zp1,xp2,yp2,zp2,diam,nodinb(3)
79 CHARACTER BOX*3
80 LOGICAL BOOL
81C-----------------------------------------------
82 DO i=1,nbbox
83 ibox(i)%NBLEVELS = 0
84 ibox(i)%LEVEL = 1
85 ibox(i)%ACTIBOX = 0
86 IF(ibox(i)%NBOXBOX > 0)THEN
87 ibox(i)%NBLEVELS = -1
88 ibox(i)%LEVEL = 0
89 END IF
90C
91 ibox(i)%BOXIAD = 0
92 END DO
93C-------
94 IF(key(1:4) == 'BOX2')THEN
95 boxtype = 2
96 ELSE IF(key(1:3) == 'BOX')THEN
97 boxtype = 1
98 END IF
99C-------
100C get box de box ID'S dans grshel:
101C-------
102 isu = 0
103 DO i=1,nbbox
104 IF(idb == ibox(i)%ID)THEN
105 isu=i
106 EXIT
107 ENDIF
108 END DO
109C---
110 IF(isu > 0)THEN
111 nbox = ibox(isu)%NBOXBOX
112C super box activated:
113 ibox(isu)%ACTIBOX = 1
114 ELSE
115 IF(flag == 0)THEN
116 CALL ancmsg(msgid=798,
117 . msgtype=msgerror,
118 . anmode=aninfo,
119 . i1=id,
120 . c1=titr,
121 . i2=idb)
122 END IF
123 END IF
124C---
125C simple box dans grshel:
126C---
127 bool =.false.
128 IF(isu>0)THEN
129 IF(ibox(isu)%NBLEVELS == 0 .AND. ibox(isu)%LEVEL == 1) THEN
130 IF (nbox == 0) THEN ! simple box (no sub box)
131 CALL boxtage(x ,skew ,ibox ,
132 . isu ,boxtype,ix ,nix ,
133 . nix1 ,iparte ,ipart ,klevtree,eltree,
134 . keltree,numel ,nadmesh,flag ,iboxmax,
135 . iadb ,ibufbox)
136 bool=.true.
137 END IF
138 END IF
139 ENDIF
140C---
141C READ LEVELS OF BOXES ==> "SUBLEVEL DONE"
142C---
143 IF(.NOT.bool)THEN
144 icount = 1
145 iter = 0
146 DO WHILE (icount == 1)
147 iter = iter + 1
148 flagg = 0
149C--- count next level
150 CALL boxbox2(ibox ,skew ,
151 . flagg ,icount,iter ,boxtype,
152 . x ,ix ,flag ,iboxmax,
153 . nix ,nix1 ,iparte ,ipart ,
154 . klevtree,eltree,keltree ,numel ,
155 . nadmesh ,id ,titr ,mes ,
156 . iadb ,ibufbox)
157C--- fill next level
158 flagg = 1
159 CALL boxbox2(ibox ,skew ,
160 . flagg ,icount ,iter ,boxtype,
161 . x ,ix ,flag ,iboxmax,
162 . nix ,nix1 ,iparte ,ipart ,
163 . klevtree,eltree ,keltree ,numel ,
164 . nadmesh ,id ,titr ,mes ,
165 . iadb ,ibufbox)
166C---
167 ENDDO
168 ENDIF
169C---
170C tag group elements in main-box:
171C---
172 IF(isu > 0)THEN
173 IF(flag == 0)THEN
174 boxele = ibox(isu)%NENTITY ! elements of main box
175 nel = boxele
176 ELSE IF(flag == 1)THEN
177 boxele = ibox(isu)%NENTITY ! elements of main box
178 iadisu = ibox(isu)%BOXIAD ! addresses of elements in main box
179 nel = boxele
180 DO i=1,boxele
181 j=ibufbox(iadisu+i-1)
182 nn = nn + 1
183 igrelem(igs)%ENTITY(nn) = j
184 END DO
185 END IF
186 END IF
187C----------
188 RETURN
subroutine boxtage(x, skew, ibox, isu, boxtype, ix, nix, nix1, iparte, ipart, klevtree, eltree, keltree, numel, nadmesh, flag, iboxmax, iadb, ibufbox)
Definition bigbox.F:1033
subroutine boxbox2(ibox, skew, flagg, icount, iter, boxtype, x, ix, flag, iboxmax, nix, nix1, iparte, ipart, klevtree, eltree, keltree, numel, nadmesh, id, titr, mes, iadb, ibufbox)
Definition boxbox.F:181
#define my_real
Definition cppsort.cpp:32
initmumps id
integer, parameter nchartitle
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