38
39
40
45
46
47
48#include "implicit_f.inc"
49
50
51
52#include "com04_c.inc"
53#include "param_c.inc"
54
55
56
57 INTEGER FLAG,NNOD,
58 . IGS,ISKN(LISKN,*),ITABM1(*),
59 . ID,IBUFBOX(*),IADB,NN,IBOXMAX
60 INTEGER,INTENT(IN) :: IDB
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
67
68
69
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
74
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
83
84 ibox(i)%BOXIAD = 0
85 END DO
86
87
88
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
96
97 IF(isu > 0)THEN
98 nbox = ibox(isu)%NBOXBOX
99
100 ibox(isu)%ACTIBOX = 1
101 ELSE
102 IF(flag == 0)THEN
104 . msgtype=msgerror,
105 . anmode=aninfo,
107 . c1=titr,
108 . i2=idb)
109 END IF
110 END IF
111
112
113
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
123
124
125
126 IF(.NOT.bool)THEN
127 icount = 1
128 iter = 0
129 DO WHILE (icount == 1)
130 iter = iter + 1
131 flagg = 0
132
134 . flagg ,icount,iter ,ibufbox,
135 . x ,iadb ,
id ,titr ,
136 . key ,flag ,iboxmax)
137
138 flagg = 1
140 . flagg ,icount,iter ,ibufbox,
141 . x ,iadb ,
id ,titr ,
142 . key ,flag ,iboxmax)
143
144 ENDDO
145 ENDIF
146
147
148
149 IF(isu > 0)THEN
150 IF(flag == 0)THEN
151 boxnods = ibox(isu)%NENTITY
152 nnod = boxnods
153 ELSE IF(flag == 1)THEN
154 boxnods = ibox(isu)%NENTITY
155 iadisu = ibox(isu)%BOXIAD
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
164
165 RETURN
subroutine boxtagn(x, ibufbox, skew, iadb, ibox, isu, flag, iboxmax)
subroutine boxbox(ibox, skew, flagg, icount, iter, ibufbox, x, iadb, id, titr, key, flag, iboxmax)
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)