32!||--- uses -----------------------------------------------------
37 . IPM,IGEO ,KXX ,IXX, LSUBMODEL)
70#include "implicit_f.inc"
74#include "analyse_name.inc"
87 TYPE(GROUP_),INTENT(IN)::IGRNOD(NGRNOD)
88 INTEGER,INTENT(IN)::ITAB(*)
89 INTEGER,INTENT(IN)::ITABM1(*)
90 INTEGER,INTENT(IN)::IPART(LIPART1,*)
91 INTEGER,INTENT(IN)::IGEO(NPROPGI,*)
92 INTEGER,INTENT(IN)::IPM(NPROPMI,*)
93 TYPE(SUBMODEL_DATA),INTENT(IN)::LSUBMODEL(*)
95 INTEGER,INTENT(OUT)::KXX(NIXX,*)
96 INTEGER,INTENT(OUT)::IXX(*)
97 INTEGER,INTENT(OUT)::IPARTX(*)
101 INTEGER I, I1, I2,PID,N,ID,IDS,J,STAT,MID,IAD,NNOD,IGS
103 INTEGER TABIDS(NUMELX)
107 INTEGER, DIMENSION(:), ALLOCATABLE :: SUB_XELEM,IDEX,IDGU
112 DATA MESS /'MULTI-PURPOSE ELEMENTS DEFINITION '/
117 ALLOCATE (SUB_XELEM(NUMELX),STAT=stat)
118 IF (STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
121 SUB_XELEM(1:NUMELX) = 0
122 ALLOCATE (IDEX(NUMELX),STAT=stat)
123 IF (STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
127 ALLOCATE (IDGU(NUMELX),STAT=stat)
128 IF (STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,
136 CALL CPP_XELEM_READ(IDEX,IDGU,IPARTX,SUB_XELEM)
144 IF( IPART(4,INDEX_PART) /= IPARTX(N) )THEN
146 IF(IPART(4,J)== IPARTX(N) ) INDEX_PART = J
149 IF(IPART(4,INDEX_PART) /= IPARTX(N)) THEN
150 CALL ANCMSG(MSGID=402,
152 . ANMODE=ANINFO_BLIND_1,
158 IPARTX(N) = INDEX_PART
161 KXX(1,N) =IPART(1,INDEX_PART)
162 KXX(2,N) =IPART(2,INDEX_PART)
167 NNOD = NODGRNR5(IDGU(N) ,IGS ,IXX(IAD),IGRNOD ,
170.AND.
IF (IGS/=0IGRNOD(IGS)%SORTED/=1) THEN
171 CALL ANCMSG(MSGID=411,
173 . ANMODE=ANINFO_BLIND_1,
178 CALL ANCMSG(MSGID=412,
180 . ANMODE=ANINFO_BLIND_1,
185 CALL ANODSET(IXX(IAD), CHECK_2N)
186 CALL ANODSET(IXX(IAD+NNOD-1), CHECK_2N)
188 CALL ANODSET(IXX(IAD+I), CHECK_USED)
191 IF (NNOD>MAXNX) MAXNX=NNOD
197 CALL ANCMSG(MSGID=402,
199 . ANMODE=ANINFO_BLIND_1,
205 TABIDS(I)= KXX(NIXX,I)
207 CALL UDOUBLE(TABIDS,1,NUMELX,MESS,0,BID)
218 WRITE (IOUT,'(4(I10,1X))') I,KXX(NIXX,I),MID,PID
219 WRITE (IOUT,'(10(I10,1X))')
220 . (ITAB(IXX(IAD)),IAD=KXX(4,I),KXX(4,I)+KXX(3,I)-1)
221 WRITE (IOUT,'(A)') 'END OF ELEMENT TRACEBACK'
224 IF(I2==NUMELX)GOTO 200
226 I2=MIN0(I2+50,NUMELX)
231 300 FORMAT(/' MULTI-PURPOSE ELEMENTS'/
232 + ' ----------------------'/
233 + ' LOC-EL GLO-EL MATER GEOM'/
subroutine hm_read_xelem(igrnod, itab, itabm1, ipart, ipartx, ipm, igeo, kxx, ixx, lsubmodel)
subroutine udouble(list, ilist, nlist, mess, ir, rlist)