40
41
42
47
48
49
50#include "implicit_f.inc"
51
52
53
54#include "com04_c.inc"
55#include "scr17_c.inc"
56#include "param_c.inc"
57
58
59
60 INTEGER JREC,FLAG,,,
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
67 CHARACTER KEY*4,MES*40
68 CHARACTER(LEN=NCHARTITLE) :: TITR
69
70 TYPE (GROUP_), DIMENSION(NGRELE) :: IGRELEM
71 TYPE (BOX_) , DIMENSION(NBBOX) :: IBOX
72
73
74
75 INTEGER I,J,ISU,ISK,TAGN(),BOXTYPE,
76 . NEGBOX,TAGNEG(NUMEL),TAGPOS(NUMEL),
77 . NBOX,BOXELE,,ITER,FLAGG,IADISU
78 my_real xp1,yp1,zp1,xp2,yp2,zp2,diam,nodinb(3)
79 CHARACTER BOX*3
80 LOGICAL BOOL
81
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
90
91 ibox(i)%BOXIAD = 0
92 END DO
93
94 IF(key(1:4) == 'BOX2')THEN
95 boxtype = 2
96 ELSE IF(key(1:3) == 'BOX')THEN
97 boxtype = 1
98 END IF
99
100
101
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
109
110 IF(isu > 0)THEN
111 nbox = ibox(isu)%NBOXBOX
112
113 ibox(isu)%ACTIBOX = 1
114 ELSE
115 IF(flag == 0)THEN
117 . msgtype=msgerror,
118 . anmode=aninfo,
120 . c1=titr,
121 . i2=idb)
122 END IF
123 END IF
124
125
126
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
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
140
141
142
143 IF(.NOT.bool)THEN
144 icount = 1
145 iter = 0
146 DO WHILE (icount == 1)
147 iter = iter + 1
148 flagg = 0
149
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)
157
158 flagg = 1
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)
166
167 ENDDO
168 ENDIF
169
170
171
172 IF(isu > 0)THEN
173 IF(flag == 0)THEN
174 boxele = ibox(isu)%NENTITY
175 nel = boxele
176 ELSE IF(flag == 1)THEN
177 boxele = ibox(isu)%NENTITY
178 iadisu = ibox(isu)%BOXIAD
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
187
188 RETURN
subroutine boxtage(x, skew, ibox, isu, boxtype, ix, nix, nix1, iparte, ipart, klevtree, eltree, keltree, numel, nadmesh, flag, iboxmax, iadb, ibufbox)
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)
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)