35 SUBROUTINE rini33(NEL ,IOUT ,IPROP , IX ,XL ,
36 3 MASS ,XINER ,STIFN ,
37 4 STIFR ,VISCM ,VISCR ,UVAR ,NUVAR)
66#include "implicit_f.inc"
78 INTEGER NEL,IOUT,,NUVAR,IX(4,MVSIZ)
80 . mass(nel) ,xiner(nel) ,stifn(nel),xl(mvsiz,3) ,
81 . stifr(nel),viscm(nel) ,viscr(nel),uvar(nuvar,*)
85 INTEGER I,IDSK1,IDSK2,JTYP,SKFLG,IFKNX,IFKNY,IFKNZ,
86 . IFKRX,IFKRY,IFKRZ,IFCNX,IFCNY,IFCNZ,IFCRX,IFCRY,IFCRZ,
88 my_real kxx,kyy,kzz,krx,kry,krz,knn,kr,x1,y1,z1,len2,
89 . k1,k2,k3,k4,k5,k6,c1,c2,c3,c4,c5,c6,ktt,krr,ctt,crr,
90 . cxx,cyy,czz,crx,cry,crz, deri,xf,get_u_func,
91 . u(lskew),v(lskew),a(lskew),b(lskew),ex(lskew),get_u_geo
98 jtyp = nint(get_u_geo(1,iprop))
99 idsk1= nint(get_u_geo(2,iprop))
100 idsk2= nint(get_u_geo(3,iprop))
101 skflg= nint(get_u_geo(14,iprop))
102 kxx = get_u_geo(4,iprop)
103 kyy = get_u_geo(5,iprop)
104 kzz = get_u_geo(6,iprop)
106 kry = get_u_geo(8,iprop)
107 krz = get_u_geo(9,iprop)
108 knn = get_u_geo(10,iprop)
123 xf = get_u_func(ifknx,zero,deri)
124 k1 =
max(kxx*deri, em20)
127 xf = get_u_func(ifkny,zero,deri)
128 k2 =
max(kyy*deri, em20)
131 xf = get_u_func(ifknz,zero,deri)
132 k3 =
max(kzz*deri, em20)
135 xf = get_u_func(ifkrx,zero,deri)
136 k4 =
max(krx*deri, em20)
139 xf = get_u_func(ifkry,zero,deri)
140 k5 =
max(kry*deri, em20)
143 xf = get_u_func(ifkrz,zero,deri)
144 k6 =
max(krz*deri, em20)
146 cxx = get_u_geo(21,iprop)
147 cyy = get_u_geo(22,iprop)
148 czz = get_u_geo(23,iprop)
149 crx = get_u_geo(24,iprop)
150 cry = get_u_geo(25,iprop)
151 crz = get_u_geo(26,iprop)
167 xf = get_u_func(ifcnx,zero,deri)
168 c1 =
max(cxx*deri, em20)
171 xf = get_u_func(ifcny,zero,deri)
172 c2 =
max(cyy*deri, em20)
175 xf = get_u_func(ifcnz,zero,deri)
176 c3 =
max(czz*deri, em20)
179 xf = get_u_func(ifcrx,zero,deri)
180 c4 =
max(crx*deri, em20)
183 xf = get_u_func(ifcry,zero,deri)
184 c5 =
max(cry*deri, em20)
187 xf = get_u_func(ifcrz,zero,deri)
188 c6 =
max(crz*deri, em20)
195 ierr=ierr+
get_skew(iout,jtyp,skflg,idsk1,idsk2,u,v,ex,a,b)
200 xl(i,1)=ex(1)*x1+ex(2)*y1+ex(3)*z1
201 xl(i,2)=ex(4)*x1+ex(5)*y1+ex(6)*z1
202 xl(i,3)=ex(7)*x1+ex(8)*y1+ex(9)*z1
213 len2=xl(i,1)*xl(i,1)+xl(i,2)*xl(i,2)+xl(i,3)*xl(i,3)
233 kr = knn*
max(one,len2)
238 IF(jtyp>=2.AND.jtyp<=4)
THEN
246 ELSEIF(jtyp>=6.AND.jtyp<=8)
THEN
264 stifr(i) = krr+ktt*len2
286 INTEGER FUNCTION get_skew(IOUT,JTYP,SKFLG,IDSK1,IDSK2,U,V,X,A,B)
291#include "implicit_f.inc"
295#include "param_c.inc"
299 INTEGER iout,jtyp,idsk1,idsk2,skflg
300 my_real u(lskew),v(lskew),x(lskew),(lskew),b(lskew)
304 INTEGER i,j,ierr1,isk1,isk2,ip1,ip2,
get_u_skew,n1,n2,n3
306 . nx,ny,nz,co,si,ksi,
307 . t(3),q(lskew),q1(lskew),q2(lskew),x1(lskew),x2(lskew)
318 IF ((u(1)*v(1)+u(2)*v(2)+u(3)*v(3))<=em10)
THEN
319 x(1) = u(2)*v(3) - u(3)*v(2)
320 x(2) = u(3)*v(1) - u(1)*v(3)
321 x(3) = u(1)*v(2) - u(2)*v(1)
322 nx = sqrt(x(1)*x(1)+x(2)*x(2)+x(3)*x(3))
343 . anmode=aninfo_blind_1)
371 CALL rot12(q, t, co, si)
372 CALL qrot33(q1, t, co, si)
375 CALL rot12(q, t, co, si)
376 CALL qrot33(q2, t, co, si)
377 a(1) = half * (q1(1) + q2(1))
378 a(2) = half * (q1(2) + q2(4))
379 a(3) = half * (q1(3) + q2(7))
380 a(4) = half * (q1(4) + q2(2))
381 a(5) = half * (q1(5) + q2(5))
382 a(6) = half * (q1(6) + q2(8))
383 a(7) = half * (q1(7) + q2(3))
384 a(8) = half * (q1(8) + q2(6))
385 a(9) = half * (q1(9) + q2(9))
390 x(i) = half * (x1(i) + x2(i))
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)