44 . UNITAB ,IXC ,IXTG ,IXS ,X ,
45 . XREFC ,XREFTG ,XREFS ,RTRANS ,LSUBMODEL,
46 . TAGXREF ,IDDLEVEL ,ISOLNOD ,IPM ,IGEO )
58#include "implicit_f.inc"
74 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
75 INTEGER ITABM1(*),IPART(LIPART1,*),IPARTC(*),IPARTG(*),IPARTS(*),
76 . IXC(NIXC,*),IXTG(NIXTG,*),IXS(NIXS,*),TAGXREF(NUMNOD)
79 . x(3,*),xrefc(4,3,*),xreftg(3,3,*),xrefs(8,3,*),
83 INTEGER,
INTENT(IN)::IGEO(NPROPGI,*)
84 INTEGER,
INTENT(IN)::IPM(NPROPMI,*)
85 INTEGER,
INTENT(IN)::ISOLNOD(*)
89 INTEGER TAGELC(NUMELC),TAGELTG(NUMELTG),TAGELS(NUMELS)
90 INTEGER TAGNOD(NUMNOD),IFLAGUNIT
91 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ID
92 INTEGER I,J,IE,IN,IP,IR,NN,NITER,PARTID,UID,ITYP,ICOMPA
93 INTEGER SUB_ID,NNOD,SUB_INDEX,IMID, MAT_ID,MTN,NSOLID,NPT,ISMSTR
96 my_real,
DIMENSION(:),
ALLOCATABLE ::
99 CHARACTER(LEN=NCHARTITLE) :: TITR,TITR1
101 LOGICAL :: IS_AVAILABLE,FOUND
105 INTEGER USR2SYS,R2R_SYS
107 IS_AVAILABLE = .false.
113 xrefc(in,j,ie) = x(j,nn)
121 xreftg(in,j,ie) = x(j,nn)
129 xrefs(in,j,ie) = x(j,nn)
134 IF(iddlevel == 0)
WRITE(iout,1000)
156 . submodel_index = sub_index,
157 . submodel_id = sub_id,
158 . option_titr = titr)
160 CALL hm_get_intv(
'Comp_Id',partid,is_available,lsubmodel)
165 IF (unitab%UNIT_ID(j) == uid)
THEN
170 IF (uid/=0.AND.iflagunit==0)
THEN
171 CALL ancmsg(msgid=659,anmode=aninfo,msgtype=msgerror,
172 . i2=uid,i1=partid,c1=
'XREF',
179 IF (ipart(4,i) == partid)
THEN
193 IF (ip == ipartc(ie))
THEN
199 IF (ip == ipartg(ie))
THEN
207 IF (ip == iparts(ie))
THEN
219 IF(mtn /= 35 .AND.mtn /= 38 .AND. mtn /= 42 .AND.
222 CALL ancmsg(msgid=2014, msgtype=msgerror, anmode=anstop, i1=mat_id, c1=titr1, i2=mtn )
228 IF (ismstr>=10.OR.ismstr
229 IF( ((nsolid /= 8 .AND.nsolid /= 4) .OR. icompa
THEN
240 CALL hm_get_intv(
'NITRS',niter,is_available,lsubmodel)
241 nitrs =
max(nitrs,niter)
243 IF(iddlevel == 0)
THEN
244 WRITE(iout,1001) titr,nitrs,partid
245 IF(ipri >= 5)
WRITE(iout,
'(8X,A7,3(18X,A2))')
'NODE-ID',
' X',
' Y',
' Z'
249 CALL hm_get_intv(
'refnodesmax',nnod,is_available,lsubmodel)
250 IF (
ALLOCATED(id))
DEALLOCATE(id)
251 IF (
ALLOCATED(xx))
DEALLOCATE(xx)
252 IF (
ALLOCATED(yy))
DEALLOCATE(yy)
253 IF (
ALLOCATED(zz))
DEALLOCATE(zz)
254 ALLOCATE(xx(nnod),yy(nnod),zz(nnod),id(nnod))
265 .
CALL subrotpoint(xx(j),yy(j),zz(j),rtrans,sub_id,lsubmodel)
267 nn = r2r_sys(id(j),itabm1,mess)
269 nn = usr2sys(id(j),itabm1,mess,partid)
271 IF(iddlevel == 0.AND.ipri >= 5)
WRITE(iout,
'(5X,I10,5X,1P3G20.13)') id(j),xx(j),yy(j),zz(j)
278 IF(iddlevel == 0.AND.ipri < 5)
WRITE(iout,1010) nnod
283 IF (tagelc(ie) == 1)
THEN
286 IF (tagnod(nn) == 1)
THEN
287 xrefc(in,1,ie) = xtmp(1,nn)
288 xrefc(in,2,ie) = xtmp(2,nn)
289 xrefc(in,3,ie) = xtmp(3,nn)
295 IF (tageltg(ie) == 1)
THEN
298 IF (tagnod(nn) == 1)
THEN
299 xreftg(in,1,ie) = xtmp(1,nn)
300 xreftg(in,2,ie) = xtmp(2,nn)
301 xreftg(in,3,ie) = xtmp(3,nn)
308 IF (tagels(ie) == 1)
THEN
311 IF (tagnod(nn) == 1)
THEN
312 xrefs(in,1,ie) = xtmp(1,nn)
313 xrefs(in,2,ie) = xtmp(2,nn)
314 xrefs(in,3,ie) = xtmp(3,nn)
324 IF (
ALLOCATED(id))
DEALLOCATE(id)
325 IF (
ALLOCATED(xx))
DEALLOCATE(xx)
326 IF (
ALLOCATED(yy))
DEALLOCATE(yy)
327 IF (
ALLOCATED(zz))
DEALLOCATE(zz)
331 & 5x,
' REFERENCE STATE (XREF) ',/
332 & 5x,
' ---------------------- ' )
335 & 5x,
'NUMBER OF ITERATIONS. . . . . . =',i10/
336 & 5x,
'PART ID . . . . . . . . . . . . =',i10)
338 & 5x,
'NUMBER OF NODES . . . . . . . . =',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)