42 . IXC ,IXTG ,IXS ,X ,XREFC ,
43 . XREFTG ,XREFS ,LSUBMODEL,IDDLEVEL,ITAB ,
44 . TAGXREF ,TAGREFSTA )
56#include "implicit_f.inc"
67 INTEGER ITABM1(*),IPART(LIPART1,*),IPARTC(*),IPARTG(*),IPARTS(*)
68 INTEGER IXC(NIXC,*),IXTG(NIXTG,*),IXS(NIXS,*)
69 INTEGER IDDLEVEL,ITAB(NUMNOD),TAGXREF(*),TAGREFSTA(*)
71 . x(3,*),xrefc(4,3,*),xreftg(3,3,*),xrefs(8,3,*)
76 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAGELC,TAGELTG,TAGELS
77 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAGNOD
78 INTEGER I,IX(8),IE,J,IN,ID,IP,IR,NN,PARTID,UID,ITYP
79 INTEGER SUB_ID,MM, NEL
80 CHARACTER(LEN=NCHARLINE) :: TITLE
81 CHARACTER(LEN=NCHARKEY) :: KEY1,KEY
83 LOGICAL :: IS_AVAILABLE
84 DATA mess/
'EREF ELEMENT REFERENCE GEOMETRY'/
88 INTEGER USR2SYS,R2R_SYS,NINTRI
91 ALLOCATE(tagelc(numelc),tageltg(numeltg),tagels(numels8),tagnod(numnod))
93 is_available = .false.
95 IF(nxref == 0 .AND. irefsta == 0)
THEN
100 xrefc(in,j,ie) = x(j,nn)
108 xreftg(in,j,ie) = x(j,nn)
116 xrefs(in,j,ie) = x(j,nn)
122 IF(iddlevel == 0)
WRITE(iout,1000)
132 . submodel_id = sub_id,
133 . option_titr = title,
137 CALL hm_get_intv(
'component',partid,is_available,lsubmodel)
139 IF (key1(1:4) ==
'EREF')
THEN
140 IF(iddlevel == 0)
WRITE(iout,1001) title,partid
143 IF (ipart(4,i) == partid) ip = i
147 tageltg(1:numeltg)= 0
148 tagels(1:numels8) = 0
152 IF (ip == ipartc(ie).OR.ip==0)
THEN
158 IF (ip == ipartg(ie).OR.ip==0)
THEN
165 IF (ip == iparts(ie).OR.ip==0)
THEN
174 IF(key(1:5)==
'SHELL')
THEN
175 IF(iddlevel == 0.AND.ipri >= 5)
WRITE(iout,
'(9X,A7,4(9X,A2))')
'ELEM-ID',
'N1',
'N2',
'N3',
'N4'
176 CALL hm_get_intv(
'table_count',nel,is_available,lsubmodel)
186 ie=nintri(id,ixc,nixc,numelc,nixc)
187 IF(id > 0 .AND. ie == 0)
THEN
192 ELSEIF (id > 0 .AND. tagelc(ie) == 1)
THEN
194 nn = usr2sys(ix(in),itabm1,mess,id)
197 xrefc(in,1,ie) = x(1,nn)
198 xrefc(in,2,ie) = x(2,nn)
199 xrefc(in,3,ie) = x(3,nn)
201 IF(iddlevel == 0.AND.ipri >= 5)
WRITE(iout,
'(5X,5(1X,I10))') id,(ix(in),in=1,4)
204 IF(iddlevel == 0.AND.ipri < 5)
WRITE(iout,1010) nel
206 ELSEIF(key(1:4)==
'SH3N')
THEN
207 IF(iddlevel == 0.AND.ipri >= 5)
WRITE(iout,
'(9X,A7,4(9X,A2))')
'ELEM-ID',
'N1',
'N2',
'N3'
208 CALL hm_get_intv(
'table_count',nel,is_available,lsubmodel)
217 ie=nintri(id,ixtg,nixtg,numeltg,nixtg)
218 IF(id > 0 .AND. ie == 0)
THEN
222 . c1=
'TRIANGLE',i1=id)
223 ELSEIF (id > 0 .AND. tageltg(ie) == 1)
THEN
225 nn = usr2sys(ix(in),itabm1,mess,id)
228 xreftg(in,1,ie) = x(1,nn)
229 xreftg(in,2,ie) = x(2,nn)
230 xreftg(in,3,ie) = x(3,nn)
232 IF(iddlevel == 0.AND.ipri >= 5)
WRITE(iout,'(5x,4(1x,i10))
') ID,(IX(IN),IN=1,3)
235.AND.
IF(IDDLEVEL == 0IPRI < 5) WRITE(IOUT,1020) NEL
239 IF(KEY(1:5)=='brick
') THEN
241.AND.
IF(IDDLEVEL == 0IPRI >= 5)WRITE(IOUT,'(9x,a7,8(9x,a2))
')'elem-id
','n1
','n2
','n3
','n4
','n5
','n6
','n7
','n8
'
242 CALL HM_GET_INTV('table_count
',NEL,IS_AVAILABLE,LSUBMODEL)
246 CALL HM_GET_INT_ARRAY_INDEX('elems_table_elem
',ID,I,IS_AVAILABLE,LSUBMODEL)
247 CALL HM_GET_INT_ARRAY_INDEX('elems_table_n1
',IX(1),I,IS_AVAILABLE,LSUBMODEL)
248 CALL HM_GET_INT_ARRAY_INDEX('elems_table_n2
',IX(2),I,IS_AVAILABLE,LSUBMODEL)
249 CALL HM_GET_INT_ARRAY_INDEX('elems_table_n3
',IX(3),I,IS_AVAILABLE,LSUBMODEL)
250 CALL HM_GET_INT_ARRAY_INDEX('elems_table_n4
',IX(4),I,IS_AVAILABLE,LSUBMODEL)
251 CALL HM_GET_INT_ARRAY_INDEX('elems_table_n5
',IX(5),I,IS_AVAILABLE,LSUBMODEL)
252 CALL HM_GET_INT_ARRAY_INDEX('elems_table_n6
',IX(6),I,IS_AVAILABLE,LSUBMODEL)
253 CALL HM_GET_INT_ARRAY_INDEX('elems_table_n7
',IX(7),I,IS_AVAILABLE,LSUBMODEL)
254 CALL HM_GET_INT_ARRAY_INDEX('elems_table_n8
',IX(8),I,IS_AVAILABLE,LSUBMODEL)
256 IE=NINTRI(ID,IXS,NIXS,NUMELS8,NIXS)
257.AND.
IF(ID > 0 IE == 0) THEN
258 CALL ANCMSG(MSGID=1011,
262.AND.
ELSEIF (ID > 0 TAGELS(IE) == 1) THEN
264 NN = USR2SYS(IX(IN),ITABM1,MESS,ID)
267 XREFS(IN,1,IE) = X(1,NN)
268 XREFS(IN,2,IE) = X(2,NN)
269 XREFS(IN,3,IE) = X(3,NN)
271.AND.
IF(IDDLEVEL == 0IPRI >= 5) WRITE(IOUT,'(5x,9(1x,i10))
') ID,(IX(IN),IN=1,8)
274.AND.
IF(IDDLEVEL == 0IPRI < 5) WRITE(IOUT,1030) NEL
275 ELSEIF(KEY(1:6)=='tetra4
') THEN
276.AND.
IF(IDDLEVEL == 0IPRI >= 5) WRITE(IOUT,'(9x,a7,4(9x,a2))
') 'elem-id
','n1
','n2
','n3
','n4
'
277 CALL HM_GET_INTV('table_count
',NEL,IS_AVAILABLE,LSUBMODEL)
281 CALL HM_GET_INT_ARRAY_INDEX('elems_table_elem
',ID,I,IS_AVAILABLE,LSUBMODEL)
282 CALL HM_GET_INT_ARRAY_INDEX('elems_table_n1
',IX(1),I,IS_AVAILABLE,LSUBMODEL)
283 CALL HM_GET_INT_ARRAY_INDEX('elems_table_n2
',IX(3),I,IS_AVAILABLE,LSUBMODEL)
284 CALL HM_GET_INT_ARRAY_INDEX('elems_table_n3
',IX(6),I,IS_AVAILABLE,LSUBMODEL)
285 CALL HM_GET_INT_ARRAY_INDEX('elems_table_n4
',IX(5),I,IS_AVAILABLE,LSUBMODEL)
291 IE=NINTRI(ID,IXS,NIXS,NUMELS8,NIXS)
293.AND.
IF(ID > 0 IE == 0) THEN
294 CALL ANCMSG(MSGID=1011,
298.AND.
ELSEIF (ID > 0 TAGELS(IE) == 1) THEN
300 NN = USR2SYS(IX(IN),ITABM1,MESS,ID)
303 XREFS(IN,1,IE) = X(1,NN)
304 XREFS(IN,2,IE) = X(2,NN)
305 XREFS(IN,3,IE) = X(3,NN)
307.AND.
IF(IDDLEVEL == 0IPRI >= 5) WRITE(IOUT,'(5x,5(1x,i10))
') ID,IX(1),IX(3),IX(6),IX(5)
310.AND.
IF(IDDLEVEL == 0IPRI < 5) WRITE(IOUT,1040) NEL
321 IF(IDDLEVEL == 1) THEN
326 IF(TAGNOD(IN) == 0) CYCLE
327 IF(TAGXREF(IN) == 1) THEN
328 CALL ANCMSG(MSGID=1098,MSGTYPE=MSGERROR,ANMODE=ANINFO, I1=ITAB(IN))
332 IF( IREFSTA /= 0) THEN
334 IF(TAGNOD(IN) == 0) CYCLE
335 IF(TAGREFSTA(IN) == 1) THEN
336 CALL ANCMSG(MSGID=1099,MSGTYPE=MSGERROR,ANMODE=ANINFO,I1=ITAB(IN))
342 DEALLOCATE(TAGELC,TAGELTG,TAGELS,TAGNOD)
345 & 5X,' reference state(eref)
',/
346 & 5X,' ----------------------
' )
349 & 5X,'part id . . . . . . . . . . . . =
',I10)
351 & 5X,'number of 4-nodes shell . . . . =
',I10)
353 & 5X,'number of 3-nodes shell . . . . =
',I10)
355 & 5X,'number of 8-nodes brick . . . . =
',I10)
357 & 5X,'number of 4-nodes tetra . . . . =
',I10)
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)