41 . RIVET ,GEO ,ITAB ,ITABM1,IKINE ,
42 . IPART ,IGEO ,LSUBMODEL)
71 USE reader_old_mod ,
ONLY : line
72 USE user_id_mod ,
ONLY : id_limit
76#include "implicit_f.inc"
80#include "analyse_name.inc"
95 my_real,
INTENT(IN)::geo(npropg,*)
96 INTEGER,
INTENT(IN)::ITAB(*)
97 INTEGER,
INTENT(IN)::ITABM1(*)
98 INTEGER,
INTENT(IN)::IPART(LIPART1,*)
99 INTEGER,
INTENT(IN)::IGEO(NPROPGI,*)
102 INTEGER,
INTENT(OUT)::IXRI(4,*)
106 my_real,
INTENT(INOUT)::rivet(*)
107 INTEGER,
INTENT(IN)::IKINE(*)
116 INTEGER I, I1, I2, PID,MT,IPID,J,N,STAT,P,IF1,IF2
117 INTEGER CPT,INDEX_PART
118 CHARACTER MESS*40, MESS2*40
120 INTEGER,
DIMENSION(:),
ALLOCATABLE :: SUB_RIVET,IPART_RIVET
125 DATA MESS/
'RIVET OR SPOTWELD DEFINITION '/
130 ALLOCATE (sub_rivet(nrivet),stat=stat)
131 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'SUB_RIVET')
132 sub_rivet(1:nrivet) = 0
133 ALLOCATE (ipart_rivet(nrivet),stat=stat)
134 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'IPART_RIVET')
135 ipart_rivet(1:nrivet) = 0
140 CALL cpp_rivet_read(ixri,4,ipart_rivet,sub_rivet)
148 IF( ipart(4,index_part) /= ipart_rivet(i) )
THEN
150 IF(ipart(4,j)== ipart_rivet(i) ) index_part = j
153 IF(ipart(4,index_part) /= ipart_rivet(i))
THEN
154 CALL ancmsg(msgid=402,msgtype=msgerror,anmode=aninfo_blind_1,
160 ipart_rivet(i) = index_part
161 mt=ipart(1,index_part)
162 ipid=ipart(2,index_part)
164 IF (ixri(4,i)>id_limit%GLOBAL)
THEN
165 CALL ancmsg(msgid=509,anmode=aninfo,msgtype=msgerror,i1=ixri(4,i),c1=line,c2=
'/RIVET')
169 CALL ancmsg(msgid=402,msgtype=msgerror,anmode=aninfo_blind_1,prmod=msg_print)
173 ixri(2,j)=usr2sys(ixri(2,j),itabm1,mess,ixri(4,nrivet))
174 ixri(3,j)=usr2sys(ixri(3,j),itabm1,mess,ixri(4,nrivet))
175 CALL anodset(ixri(2,j), check_2n)
176 CALL anodset(ixri(3,j), check_2n)
180 if1 = nlocal(ixri(2,j),p)
181 if2 = nlocal(ixri(3,j),p)
182 IF (if1==1.OR.if2==1)
THEN
191 CALL vdouble(ixri(4,1),4,nrivet,mess,0,bid)
196 if1 = if1 + nlocal(ixri(2,j),p)
203 CALL rivet0(v,vr,ms,in,ixri,rivet,geo,itab,ikine)
210 pid=igeo(1,ixri(1,i))
211 WRITE (iout,270) i,ixri(4,i),pid,itab(ixri(2,i)),itab(ixri(3,i))
215 i2=min0(i2+50,nrivet)
218 IF(
ALLOCATED(sub_rivet))
DEALLOCATE(sub_rivet)
219 IF(
ALLOCATED(ipart_rivet))
DEALLOCATE(ipart_rivet)
223 300
FORMAT(/
' RIVET ' /
225 +
' LOC-EL GLO-EL GEOM NODE1 NODE2')
subroutine hm_read_rivet(ixri, v, vr, ms, in, rivet, geo, itab, itabm1, ikine, ipart, igeo, lsubmodel)
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)