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

Go to the source code of this file.

Functions/Subroutines

subroutine hm_bigsbox (numel, ix, nix, nix1, nix2, ieltyp, x, nseg, flag, skew, iskn, isurf0, itabm1, ibox, id, ibufbox, isurflin, iadb, key, sbufbox, titr, mess, tagshellbox, nn, lsubmodel)

Function/Subroutine Documentation

◆ hm_bigsbox()

subroutine hm_bigsbox ( integer numel,
integer, dimension(nix,*) ix,
integer nix,
integer nix1,
integer nix2,
integer ieltyp,
x,
integer nseg,
integer flag,
skew,
integer, dimension(liskn,*) iskn,
integer isurf0,
integer, dimension(*) itabm1,
type (box_), dimension(nbbox) ibox,
integer id,
integer, dimension(*) ibufbox,
type (surf_) isurflin,
integer iadb,
character key,
integer sbufbox,
character(len=nchartitle) titr,
character mess,
integer, dimension(*) tagshellbox,
integer nn,
type(submodel_data), dimension(nsubmod) lsubmodel )

Definition at line 38 of file hm_bigsbox.F.

44C-----------------------------------------------
45C M o d u l e s
46C-----------------------------------------------
47 USE message_mod
48 USE groupdef_mod
51 USE submodel_mod
53C-----------------------------------------------
54C I m p l i c i t T y p e s
55C-----------------------------------------------
56#include "implicit_f.inc"
57C-----------------------------------------------
58C C o m m o n B l o c k s
59C-----------------------------------------------
60#include "com04_c.inc"
61#include "param_c.inc"
62C-----------------------------------------------
63C D u m m y A r g u m e n t s
64C-----------------------------------------------
65 INTEGER NIX,IX(NIX,*),NIX1,NIX2,NUMEL,IELTYP,
66 . NSEG,FLAG,ISKN(LISKN,*),ISURF0,
67 . ITABM1(*),IBUFBOX(*),
68 . IADB,SBUFBOX,TAGSHELLBOX(*),NN
70 . x(3,*),skew(lskew,*)
71 CHARACTER KEY*4,MESS*40
72 CHARACTER(LEN=NCHARTITLE) :: TITR
73C-----------------------------------------------
74 TYPE (SURF_) :: ISURFLIN
75 TYPE (box_) , DIMENSION(NBBOX) :: ibox
76 TYPE(SUBMODEL_DATA) LSUBMODEL(NSUBMOD)
77C-----------------------------------------------
78C L o c a l V a r i a b l e s
79C-----------------------------------------------
80 INTEGER I,JJ,K,K1,J,JREC,ISK,BOXTYPE,ISU,TAGN(NUMEL),
81 . ITYPE,IADBOX,IDB,NBOX,ID,IDBX,BOXSEG,IADISU,
82 . ICOUNT,ITER,FLAGG,NIXEL
84 . diam,xp1,yp1,zp1,xp2,yp2,zp2,nodinb(3)
85 CHARACTER BOX*3
86 LOGICAL BOOL,IS_AVAILABLE, IS_ENCRYPTED
87C=======================================================================
88 DO i=1,nbbox
89 ibox(i)%NBLEVELS = 0
90 ibox(i)%LEVEL = 1
91 ibox(i)%ACTIBOX = 0
92 IF(ibox(i)%NBOXBOX > 0)THEN
93 ibox(i)%NBLEVELS = -1
94 ibox(i)%LEVEL = 0
95 END IF
96 ibox(i)%BOXIAD = 0
97 END DO
98C-------
99 CALL hm_get_int_array_index('ids',idb,1,is_available,lsubmodel)
100 IF(key == 'BOX')THEN
101 boxtype = 1
102 ELSE IF(key == 'BOX2')THEN
103 boxtype = 2
104 END IF
105C-------
106C get box de box ID'S dans LINE :
107C-------
108 isu = 0
109 DO i=1,nbbox
110 IF(idb == ibox(i)%ID) isu=i
111 END DO
112C---
113 IF(isu > 0)THEN
114 nbox = ibox(isu)%NBOXBOX
115 !super box enabled:
116 ibox(isu)%ACTIBOX = 1
117 ELSE
118 IF(flag == 0)THEN
119 IF(isurf0 == 0)THEN
120 CALL ancmsg(msgid=799, msgtype=msgerror, anmode=aninfo,i1=id, c1=titr,i2=idb)
121 ELSE IF(isurf0 == 1)THEN
122 CALL ancmsg(msgid=800,msgtype=msgerror,anmode=aninfo,i1=id,c1=titr,i2=idb)
123 END IF
124 END IF
125 END IF
126C---
127C simple box dans /LINE :
128C---
129 bool=.false.
130 IF(isu>0)THEN
131 IF(ibox(isu)%NBLEVELS == 0 .AND. ibox(isu)%LEVEL == 1) THEN
132 IF(nbox == 0)THEN
133 CALL box_surf_sh(x ,ibufbox,skew ,iadb ,boxtype,
134 . ibox ,isu ,numel ,nix ,ix ,
135 . nix1 ,nix2 ,isurf0,ieltyp ,flag ,
136 . tagshellbox,0 )
137 bool=.true.
138 END IF
139 END IF
140 ENDIF
141C---
142C READ LEVELS OF BOXES ==> "SUBLEVEL DONE"
143C---
144 IF(.NOT.bool)THEN
145 icount = 1
146 iter = 0
147 DO WHILE (icount == 1)
148 iter = iter + 1
149 flagg = 0
150C--- count next level
151 CALL boxboxs(ibox ,skew ,flagg ,icount ,iter ,
152 . boxtype ,ibufbox ,x ,iadb ,ix ,
153 . nix ,nix1 ,nix2 ,numel ,isurf0 ,
154 . ieltyp ,id ,titr ,mess ,flag ,
155 . tagshellbox,0 )
156 IF (iadb>sbufbox .OR. iadb<0)
157 . CALL ancmsg(msgid=1007, msgtype=msgerror,anmode=anstop)
158C--- fill next level
159 flagg = 1
160 CALL boxboxs(ibox ,skew ,flagg ,icount ,iter ,
161 . boxtype ,ibufbox ,x ,iadb ,ix ,
162 . nix ,nix1 ,nix2 ,numel ,isurf0 ,
163 . ieltyp ,id ,titr ,mess ,flag ,
164 . tagshellbox,0 )
165C---
166 ENDDO
167 ENDIF
168C---
169C tag lines (ou surfaces) in main-box:
170C---
171C---count lines within BOX
172 IF(isu > 0)THEN
173C
174 IF(flag == 0)THEN
175 boxseg = ibox(isu)%NENTITY ! segments of main box
176 nseg = nseg + boxseg
177 ELSE IF(flag == 1)THEN
178 boxseg = ibox(isu)%NENTITY ! segments of main box
179 iadisu = ibox(isu)%BOXIAD ! addresses of segments in main box
180 nseg = nseg + boxseg
181 DO i=1,boxseg
182 nn = nn + 1
183 IF(isurf0 == 1)THEN ! surfaces
184 DO k=nix1,nix2
185 j=ibufbox(iadisu+k-2)
186 isurflin%NODES(nn,k-1) = j
187 ENDDO
188 iadisu = iadisu + nix2 - 1
189 ELSE ! lines
190C--------------------
191 j=ibufbox(iadisu)
192 isurflin%NODES(nn,1) = j
193 iadisu = iadisu + 1
194C--------------------
195 j=ibufbox(iadisu)
196 isurflin%NODES(nn,2) = j
197 iadisu = iadisu + 1
198 END IF
199C--------------------
200 IF(ieltyp == 7)THEN
201 j=ibufbox(iadisu)
202 isurflin%NODES(nn,4) =
203 . isurflin%NODES(nn,3)
204 iadisu = iadisu + 1
205 END IF
206C--------------------
207 j=ibufbox(iadisu)
208 isurflin%ELTYP(nn)= j
209 iadisu = iadisu + 1
210C--------------------
211 j=ibufbox(iadisu)
212 isurflin%ELEM(nn) = j
213 iadisu = iadisu + 1
214C--------------------
215 END DO
216 END IF ! IF(FLAG == 0)
217 END IF ! IF(ISU > 0)
218C-----------
219 RETURN
subroutine box_surf_sh(x, ibufbox, skew, iadb, boxtype, ibox, isu, numel, nix, ix, nix1, nix2, isurf0, ieltyp, flag, tagshellbox, iext)
Definition bigbox.F:1421
subroutine boxboxs(ibox, skew, flagg, icount, iter, boxtype, ibufbox, x, iadb, ix, nix, nix1, nix2, numel, isurf0, ieltyp, id, titr, mess, flag, tagshellbox, iext)
Definition boxbox.F:326
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_int_array_index(name, ival, index, is_available, lsubmodel)
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