41 . IBOX ,IAD ,NBOX ,ISKN ,SKEW ,
42 . ITABM1 ,X ,RTRANS ,UNITAB ,LSUBMODEL)
55#include "implicit_f.inc"
62#include "tabsiz_c.inc"
66 INTEGER,
INTENT(IN) :: NBOX
67 INTEGER,
INTENT(INOUT) :: IAD
68 INTEGER,
DIMENSION(LISKN,SISKWN/LISKN),
INTENT(IN) :: ISKN
69 INTEGER,
DIMENSION(NUMNOD) ,
INTENT(IN) :: ITABM1
70 my_real,
DIMENSION(3,NUMNOD),
INTENT(IN) :: x
71 my_real,
DIMENSION(LSKEW,SSKEW/LSKEW),
INTENT(IN) :: skew
72 my_real,
DIMENSION(NTRANSF,NRTRANS),
INTENT(IN) :: rtrans
73 TYPE (UNIT_TYPE_),
INTENT(IN) :: UNITAB
74 TYPE(
submodel_data),
DIMENSION(NSUBMOD),
INTENT(IN) :: LSUBMODEL
75 TYPE (BOX_),
DIMENSION(NBBOX) :: IBOX
79 INTEGER :: I,J,N1,,UID,BOXID,SUB_ID,SKEW_ID,ISK,IUNIT,FLAGUNIT,
81 my_real :: fac_l,xp1,yp1,zp1,xp2,yp2,zp2
82 CHARACTER(LEN=NCHARKEY) :
83CHARACTER(LEN=NCHARTITLE) :: TITR,MESS
84 LOGICAL :: IS_AVAILABLE
89 DATA /
'MULTI-BOX DEFINITION '/
121 . submodel_id = sub_id,
122 . submodel_index = sub_index,
123 . option_titr = titr,
130 DO iunit=1,unitab%NUNITS
131 IF (unitab%UNIT_ID(iunit) == uid)
THEN
136 IF (uid > 0 .AND. flagunit == 0)
THEN
137 CALL ancmsg(msgid=659,anmode=aninfo,msgtype=msgerror,
148 CALL hm_get_intv (
'box_corner_node1' ,n1 ,is_available, lsubmodel)
149 CALL hm_get_intv (
'box_corner_node2' ,n2 ,is_available, lsubmodel)
150 CALL hm_get_intv (
'box_system' ,skew_id ,is_available, lsubmodel)
152 CALL hm_get_floatv(
'box_corner1_x' ,xp1 ,is_available, lsubmodel, unitab)
154 CALL hm_get_floatv(
'box_corner1_z' ,zp1 ,is_available, lsubmodel, unitab)
156 CALL hm_get_floatv(
'box_corner2_x' ,xp2 ,is_available, lsubmodel, unitab)
157 CALL hm_get_floatv(
'box_corner2_y' ,yp2 ,is_available, lsubmodel
158 CALL hm_get_floatv(
'box_corner2_z' ,zp2 ,is_available, lsubmodel, unitab)
162 IF (skew_id == 0 .and. sub_id > 0) skew_id = lsubmodel(sub_index)%SKEW
164 IF (skew_id > 0)
THEN
166 IF (iskn(4,j+1) == skew_id)
THEN
172 CALL ancmsg(msgid=748, msgtype=msgerror,
173 . anmode=aninfo_blind_1,
184 IF (n1 > 0 .and. n2 > 0)
THEN
186 xp1 = x(1,usr2sys(n1,itabm1,mess,boxid))
187 yp1 = x(2,usr2sys(n1,itabm1,mess,boxid))
188 zp1 = x(3,usr2sys(n1,itabm1,mess,boxid))
189 xp2 = x(1,usr2sys(n2,itabm1,mess,boxid))
190 yp2 = x(2,usr2sys(n2,itabm1,mess,boxid))
191 zp2 = x(3,usr2sys(n2,itabm1,mess,boxid))
195 IF (sub_id > 0)
CALL subrotpoint(xp2,yp2,zp2,rtrans,sub_id,lsubmodel)
198 IF ((xp1 == zero .and. yp1 == zero .and. zp1 == zero) .and.
199 . (xp2 == zero .and. yp2 == zero .and. zp2 == zero))
THEN
200 CALL ancmsg(msgid=752, msgtype=msgerror,
211 ibox(iad)%TITLE = trim(titr)
213 ibox(iad)%ISKBOX = isk
214 ibox(iad)%NBLEVELS= 0
217 ibox(iad)%ACTIBOX = 0
218 ibox(iad)%NBOXBOX = 0
221 ibox(iad)%DIAM = zero
228 ibox(iad)%SURFIAD = 0
229 ibox(iad)%NENTITY = 0
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)