OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
rivet0.F File Reference
#include "implicit_f.inc"
#include "param_c.inc"
#include "com04_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine rivet0 (v, vr, ms, in, ixri, rivet, geo, itab, ikine)

Function/Subroutine Documentation

◆ rivet0()

subroutine rivet0 ( v,
vr,
ms,
in,
integer, dimension(4,*) ixri,
rivet,
geo,
integer, dimension(*) itab,
integer, dimension(*) ikine )

Definition at line 33 of file rivet0.F.

34 USE message_mod
35C
36C-----------------------------------------------
37C I m p l i c i t T y p e s
38C-----------------------------------------------
39#include "implicit_f.inc"
40C-----------------------------------------------
41C C o m m o n B l o c k s
42C-----------------------------------------------
43#include "param_c.inc"
44#include "com04_c.inc"
45C-----------------------------------------------
46C D u m m y A r g u m e n t s
47C-----------------------------------------------
48 INTEGER IXRI(4,*), ITAB(*), IKINE(*)
49C REAL
51 . v(3,*), vr(3,*), ms(*), in(*), rivet(nrivf,*),
52 . geo(npropg,*)
53C-----------------------------------------------
54C L o c a l V a r i a b l e s
55C-----------------------------------------------
56 INTEGER I, J, IGL, IG, IROT, K1, K2, IGTYP, IKINE1(3*NUMNOD)
57C REAL
59 . xm, xin
60C
61 DO i=1,3*numnod
62 ikine1(i) = 0
63 ENDDO
64C
65 DO 100 i=1,nrivet
66 rivet(1,i) = one
67 ig=ixri(1,i)
68C
69 irot=geo(4,ig)
70 k1=ixri(2,i)
71 k2=ixri(3,i)
72 xm=(ms(k1)+ms(k2))
73 igtyp=geo(12,ig)
74 IF (igtyp/=5) THEN
75C WRITE(ISTDO,*)' ** ERROR/RIVET PROPERTY SET'
76C WRITE(IOUT,1000)IGTYP
77C 1000 FORMAT(//,' ** ERROR WRONG RIVET PROPERTY SET IDENTIFIER :',
78C . I5,//)
79C IERR=IERR+1
80 CALL ancmsg(msgid=46,
81 . msgtype=msgerror,
82 . anmode=aninfo_blind_1,
83 . i1=ixri(4,i),
84 . i2=igtyp)
85 ENDIF
86 IF(ms(k1)<1.e-15.OR.ms(k2)<1.e-15) THEN
87C WRITE(ISTDO,*)' ** ERROR/RIVET OR SPOTWELD DEFINITION'
88C WRITE(IOUT,2000)IXRI(4,I)
89C 2000 FORMAT(//,' ** ERROR:ONE OR BOTH OF THE TWO NODES OF RIVET :'
90C . ,I5,/,'HAVE A NULL MASS',
91C . ' (MAY BE SECND NODE(S) OF A RIGID BODY)',//)
92C IERR=IERR+1
93C IF(MS(K1)<1.E-15.AND.MS(K2)<1.E-15) CALL ARRET(2)
94 IF(ms(k1)<em15.AND.ms(k2)<em15) THEN
95 CALL ancmsg(msgid=47,
96 . msgtype=msgerror,
97 . anmode=aninfo,
98 . i1=ixri(4,i))
99 END IF
100 CALL ancmsg(msgid=47,
101 . msgtype=msgerror,
102 . anmode=aninfo_blind_1,
103 . i1=ixri(4,i))
104 ENDIF
105 v(1,k1)=(v(1,k1)*ms(k1)+v(1,k2)*ms(k2))/xm
106 v(2,k1)=(v(2,k1)*ms(k1)+v(2,k2)*ms(k2))/xm
107 v(3,k1)=(v(3,k1)*ms(k1)+v(3,k2)*ms(k2))/xm
108 v(1,k2)=v(1,k1)
109 v(2,k2)=v(2,k1)
110 v(3,k2)=v(3,k1)
111 CALL kinset(32,itab(k1),ikine(k1),1,0,ikine1(k1))
112 CALL kinset(32,itab(k1),ikine(k1),2,0,ikine1(k1))
113 CALL kinset(32,itab(k1),ikine(k1),3,0,ikine1(k1))
114 CALL kinset(32,itab(k2),ikine(k2),1,0,ikine1(k2))
115 CALL kinset(32,itab(k2),ikine(k2),2,0,ikine1(k2))
116 CALL kinset(32,itab(k2),ikine(k2),3,0,ikine1(k2))
117 IF(irot==1)THEN
118 CALL kinset(32,itab(k1),ikine(k1),4,0,ikine1(k1))
119 CALL kinset(32,itab(k1),ikine(k1),5,0,ikine1(k1))
120 CALL kinset(32,itab(k1),ikine(k1),6,0,ikine1(k1))
121 CALL kinset(32,itab(k2),ikine(k2),4,0,ikine1(k2))
122 CALL kinset(32,itab(k2),ikine(k2),5,0,ikine1(k2))
123 CALL kinset(32,itab(k2),ikine(k2),6,0,ikine1(k2))
124 IF(in(k1)<em15.AND.in(k2)<em15) THEN
125C WRITE(ISTDO,*)' ** ERROR/RIVET OR SPOTWELD DEFINITION'
126C WRITE(IOUT,3000)IXRI(4,I)
127C 3000 FORMAT(//,' ** ERROR:ONE BOTH OF THE TWO NODES OF RIVET :'
128C . ,I5,/,'HAVE A NULL INERTIA',
129C . ' (MAY BE NODES OF 8 NODES SOLIDS)',//)
130C IERR=IERR+1
131C CALL ARRET(2)
132 CALL ancmsg(msgid=48,
133 . msgtype=msgerror,
134 . anmode=aninfo,
135 . i1=ixri(4,i))
136 ENDIF
137 xin=(in(k1)+in(k2))
138 vr(1,k1)=(vr(1,k1)*in(k1)+vr(1,k2)*in(k2))/xin
139 vr(2,k1)=(vr(2,k1)*in(k1)+vr(2,k2)*in(k2))/xin
140 vr(3,k1)=(vr(3,k1)*in(k1)+vr(3,k2)*in(k2))/xin
141 vr(1,k2)=vr(1,k1)
142 vr(2,k2)=vr(2,k1)
143 vr(3,k2)=vr(3,k1)
144 ENDIF
145 100 CONTINUE
146C
147 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine kinset(ik, node, ikine, idir, isk, ikine1)
Definition kinset.F:57
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)
Definition message.F:889