43 1 X ,V ,CANDN ,CANDE ,I_STOK ,
44 2 IXS ,IXS16 ,EMINXM ,NELES ,NELEM ,
45 3 ITASK ,A ,ITIED ,NINT ,EMINXS ,
46 4 STIFN ,FSKYI ,ISKY ,NME ,NSE ,
47 5 FROTM ,FROTS ,KM ,KS ,FRIC ,
48 6 FSAV ,FCONT ,MS ,NISKYFI ,LSKYI17 ,
57 USE output_mod,
ONLY : output_
58 use element_mod ,
only : nixs
62#include "implicit_f.inc"
75 COMMON /i17globi/ie_min,ies_min
76 COMMON /i17globr/vit_min
80 TYPE(output_),
INTENT(INOUT) :: OUTPUT
81 INTEGER ,ITASK,ITIED,NINT,NME,NSE,NISKYFI,LSKYI17,NOINT,
82 . candn(*),cande(*), isky(*),
83 . ixs(nixs,*),ixs16(8,*),neles(*) ,nelem(*)
86 . x(3,*),v(3,*),eminxm(6,*),eminxs(6,*),a(3,*),stifn(*),
87 . fskyi ,frotm(7,*),frots(7,*),km(*),ks(*),fric(*), fsav(*),
93 INTEGER I,J,K,IK,IE,IS,,NK,III(,17),LLT,NFT,LE,,LAST,
94 . I16,LES,IES,IIIS(MVSIZ,16),LEL(MVSIZ),LESL(MVSIZ),
95 . IE_MIN,IES_MIN, IERR1, IERR2
97 . xx(mvsiz,17),yy(mvsiz,17),zz(mvsiz,17),
98 . xxs(mvsiz,16),yys(mvsiz,16),zzs
108 IF(iparit/=0.AND.itask==0)
THEN
111 ALLOCATE(
iskyi17(lskyi17),stat=ierr2)
113 ALLOCATE(fskyi17(lskyi17,4),stat=ierr2)
116 ALLOCATE(
irskyi17(lskyi17),stat=ierr2)
118 ALLOCATE(frskyi17(4,lskyi17),stat=ierr2)
122 CALL ancmsg(msgid=88,anmode=aninfo,
130 first = 1 + i_stok * itask / nthread
131 last = i_stok*(itask+1) / nthread
143 IF(le >0.AND.les>0.AND.
144 . eminxs(4,les)>eminxm(1,le).AND.
145 . eminxs(5,les)>eminxm(2,le).AND.
146 . eminxs(6,les)>eminxm(3,le).AND.
147 . eminxs(1,les)<eminxm(4,le).AND.
148 . eminxs(2,les)<eminxm(5,le).AND.
149 . eminxs(3,les)<eminxm(6,le))
THEN
155 iii(llt,k) =ixs(k+1,ie)
156 iii(llt,k+4) =ixs(k+5,ie)
157 iii(llt,k+8) =ixs16(k,ie-numels8-numels10-numels20)
158 iii(llt,k+12)=ixs16(k+4,ie-numels8-numels10-numels20)
160 iiis(llt,k) =ixs(k+1,ies)
161 iiis(llt,k+8) =ixs(k+5,ies)
162 iiis(llt,k+4)=ixs16(k,ies-numels8-numels10-numels20)
163 iiis(llt,k+12)=ixs16(k+4,ies-numels8-numels10-numels20)
181 IF(le >0.AND.les>0.AND.
182 .
eminxfi(nint)%P(4,ies)>eminxm(1,le).AND.
183 .
eminxfi(nint)%P(5,ies)>eminxm(2,le).AND.
184 .
eminxfi(nint)%P(6,ies)>eminxm(3,le).AND.
185 .
eminxfi(nint)%P(1,ies)<eminxm(4,le).AND.
186 .
eminxfi(nint)%P(2,ies)<eminxm(5,le).AND.
187 .
eminxfi(nint)%P(3,ies)<eminxm(6,le))
THEN
191#include "mic_lockon.inc"
193#include "mic_lockoff.inc"
196 iii(llt,k) =ixs(k+1,ie)
198 iii(llt,k+8) =ixs16(k,ie-numels8-numels10-numels20)
199 iii(llt,k+12)=ixs16(k+4,ie-numels8-numels10-numels20)
212 xxs(llt,k)=
xfi17(nint)%P(1,i,ies)
213 yys(llt,k)=
xfi17(nint)%P(2,i,ies)
214 zzs(llt,k)=
xfi17(nint)%P(3,i,ies)
223 1 llt ,v ,stifn ,xx ,fric ,
224 2 yy ,zz ,iii ,fskyi ,isky ,
225 3 a ,x ,itied ,nint ,
226 4 xxs ,yys ,zzs ,iiis ,vit_min ,
227 5 lel ,lesl ,ie_min ,ies_min ,itask ,
228 6 frotm ,frots ,km ,ks ,fsav ,
229 7 fcont ,ms ,niskyfi ,noint ,h3d_data )
238 1 llt ,v ,stifn ,xx ,fric ,
239 2 yy ,zz ,iii ,fskyi ,isky ,
240 3 a ,x ,itied ,nint ,
241 4 xxs ,yys ,zzs ,iiis ,vit_min ,
242 5 lel ,lesl ,ie_min ,ies_min ,itask ,
243 6 frotm ,frots ,km ,ks ,fsav ,
244 7 fcont ,ms ,niskyfi ,noint ,h3d_data )
254 2 frskyi17,nint ,lskyi17,noint)
284 . LLT ,V ,STIFN ,XX ,FRIC ,
285 2 YY ,ZZ ,III ,FSKYI ,ISKY ,
286 3 A ,X ,ITIED ,NINT ,
287 4 XXS ,YYS ,ZZS ,IIIS ,VIT_MIN,
288 5 LE ,LES ,IE_MIN ,IES_MIN ,ITASK ,
289 6 FROTM ,FROTS ,KM ,KS ,FSAV ,
290 7 FCONT ,MS ,NISKYFI ,NOINT ,H3D_DATA)
299#include "implicit_f.inc"
300#include "comlock.inc"
304#include "mvsiz_p.inc"
308 type(output_),
intent(inout) :: output
309 INTEGER LLT,ITIED,NINT ,IE_MIN,IES_MIN,NISKYFI,NOINT
311 . III(MVSIZ,17),IIIS(MVSIZ,16),LE(*) ,LES(*), ISKY(*)
314 . V(3,*),A(3,*),KM(*),KS(*),FRIC(*), MS(*)
316 . XX(MVSIZ,17),YY(MVSIZ,17),ZZ(MVSIZ,17),X(3,*),
317 . XXS(MVSIZ,16) ,YYS(MVSIZ,16) ,ZZS(MVSIZ,16) ,VIT_MIN,
318 . STIFN(*) ,FSKYI ,FROTM(7,*),FROTS(7,*),FSAV(*) ,FCONT(3,*)
319 TYPE(H3D_DATABASE) :: H3D_DATA
323 INTEGER I,J,IK,NK,I1,I2,I3,I4,IAD,ICON,
326 . vx,vy,vz,vn,aa,vv,pene
328 . r_cm(mvsiz),t_cm(mvsiz),s_cm(mvsiz),si_s(mvsiz,8),
329 . ri_s(mvsiz,8),ti_s(mvsiz,8),
330 . nx(mvsiz), ny(mvsiz), nz(mvsiz),
331 . ni_m(mvsiz,17),ni_s(mvsiz,8) ,
332 . r_1s(mvsiz) ,r_2s(mvsiz) ,t_1s(mvsiz) ,t_2s(mvsiz),
333 . r_1m(mvsiz) ,r_2m(mvsiz) ,t_1m(mvsiz) ,t_2m(mvsiz),
334 . r_3m(mvsiz) ,r_4m(mvsiz) ,t_3m(mvsiz) ,t_4m(mvsiz),
335 . r_cs(mvsiz) ,s_cs(mvsiz) ,t_cs(mvsiz) ,vit(mvsiz),
336 . r_s(mvsiz) ,t_s(mvsiz) ,
area(mvsiz) ,area_tot(mvsiz),
344 xx(i,17) = half *(xxs(i,5) +xxs(i,6) +xxs(i,7) +xxs(i,8))
345 . - fourth*(xxs(i,1) +xxs(i,2) +xxs(i,3) +xxs(i,4))
346 yy(i,17) = half *(yys(i,5) +yys(i,6) +yys(i,7) +yys(i,8))
347 . - fourth*(yys(i,1) +yys(i,2) +yys(i,3) +yys(i,4))
348 zz(i,17) = half *(zzs(i,5) +zzs(i,6) +zzs(i,7) +zzs(i,8))
349 . - fourth*(zzs(i,1) +zzs(i,2) +zzs(i,3) +zzs(i,4))
351 CALL i17rst(llt ,ri_s(1,1),si_s(1,1),ti_s(1,1),ni_m ,
357 xx(i,17) = half *(xxs(i,13)+xxs(i,14)+xxs(i,15)+xxs(i,16))
358 . - fourth*(xxs(i,9) +xxs(i,10)+xxs(i,11)+xxs(i,12))
359 yy(i,17) = half *(yys(i,13)+yys(i,14)+yys(i,15)+yys(i,16))
360 . - fourth*(yys(i,9) +yys(i,10)+yys(i,11)+yys(i,12))
361 zz(i,17) = half *(zzs(i,13)+zzs(i,14)+zzs(i,15)+zzs(i,16))
362 . - fourth*(zzs(i,9) +zzs(i,10)+zzs(i,11)+zzs(i,12))
364 CALL i17rst(llt ,ri_s(1,2),si_s(1,2),ti_s(1,2),ni_m ,
370 IF(abs(si_s(i,1))<=abs(si_s(i,2)))
THEN
376 iiis(i,1) = iiis(i,12)
377 iiis(i,2) = iiis(i,11)
378 iiis(i,3) = iiis(i,10)
379 iiis(i,4) = iiis(i, 9)
380 iiis(i,5) = iiis(i,15)
381 iiis(i,6) = iiis(i,14)
382 iiis(i,7) = iiis(i,13)
383 iiis(i,8) = iiis(i,16)
424 CALL i17rst(llt ,ri_s(1,j),si_s(1,j),ti_s(1,j),ni_m ,
441 1 llt ,r_cs ,s_cs ,t_cs ,ri_s ,si_s ,
442 2 ti_s ,ni_s ,xxs ,yys ,zzs ,xx ,
443 3 yy ,zz ,r_cm ,s_cm ,t_cm ,nx ,
444 4 ny ,nz ,r_1s ,r_2s ,t_1s ,t_2s ,
445 5 r_1m ,r_2m ,r_3m ,r_4m ,t_1m ,t_2m ,
446 6 t_3m ,t_4m ,icont ,
area ,area_tot,area_el)
470 1 llt ,nint ,v ,a ,iii ,iiis ,
471 2 ni_m ,ni_s ,nx ,ny ,nz ,vit ,
472 3 icont(1,1),r_cm ,t_cm ,r_cs ,t_cs ,s_cm ,
478 1 llt ,itied ,nint ,v ,a ,fric ,
479 3 iii ,iiis ,ni_m ,ni_s ,s_cm ,s_cs ,
480 4 nx ,ny ,nz ,vit ,le ,les ,
481 5 icont(1,1),r_cm ,t_cm ,r_cs ,t_cs ,xx ,
482 6 yy ,zz ,stifn ,fskyi ,isky ,
483 7 frotm ,frots ,
area ,area_tot,km ,ks ,
484 8 fsav ,fcont ,ms ,area_el ,niskyfi ,noint ,
502 1 LLT ,R_CS ,S_CS ,T_CS ,RI_S ,SI_S ,
503 2 TI_S ,NI_S ,XXS ,YYS ,ZZS ,XX ,
504 3 YY ,ZZ ,R_CM ,S_CM ,T_CM ,NX ,
505 4 NY ,NZ ,R_1S ,R_2S ,T_1S ,T_2S ,
506 5 R_1M ,R_2M ,R_3M ,R_4M ,T_1M ,T_2M ,
507 6 T_3M ,T_4M ,ICONT ,AREA,AREA_TOT,AREA_EL)
512#include "implicit_f.inc"
516#include "mvsiz_p.inc"
520 type(output_),
intent(inout) :: output
525 + SI_S(MVSIZ,*),NI_S(MVSIZ,*),RI_S(MVSIZ,*),TI_S(MVSIZ,*),
526 + XXS(MVSIZ,*) ,YYS(MVSIZ,*) ,ZZS(MVSIZ,*) ,
527 + XX(MVSIZ,*) ,YY(MVSIZ,*) ,ZZ(MVSIZ,*) ,
528 + r_cm(mvsiz) ,s_cm(mvsiz) ,t_cm(mvsiz),
529 + r_cs(mvsiz) ,s_cs(mvsiz) ,t_cs(mvsiz),
530 + r_1s(mvsiz) ,r_2s(mvsiz) ,t_1s(mvsiz) ,t_2s(mvsiz),
532 + r_3m(mvsiz) ,r_4m(mvsiz) ,t_3m(mvsiz) ,t_4m(mvsiz),
533 + nx(mvsiz) ,ny(mvsiz) ,nz(mvsiz) ,
area(mvsiz) ,area_tot(mvsiz),
538 INTEGER I,ITER,NITERMAX,IR,IT
540 + a1(mvsiz),a2(mvsiz),a3(mvsiz),a4(mvsiz),a5(mvsiz),
541 + b1(mvsiz),b2(mvsiz),b3(mvsiz),b4(mvsiz),b5(mvsiz),
542 + c1(mvsiz),c2(mvsiz),c3(mvsiz),azero(mvsiz),
543 + f1,f2,f3,f4,f5,f6,f7,f8,
545 + cc1,cc2,cc3,dd1,dd2,dd3,dd,d,
546 + a0,ab,ba,a4r,b4t,a5t,b5r,eps,
547 + xa,ya,za,xb,yb,zb,xc,yc,zc,aaa,unpeps,
548 + p,rm,tm,sm,pp,rr,tt,aa,rt(9),as(9)
549 DATA rt/-1.,-0.75,-0.5,-0.25,0.0,0.25,0.5,0.75,1./
550 DATA as/0.0625,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.0625/
691 d = si_s(i,1)*si_s(i,1)+si_s(i,2)*si_s(i,2)
692 + + si_s(i,3)*si_s(i,3)+si_s(i,4)*si_s(i,4)
693 + + si_s(i,5)*si_s(i,5)+si_s(i,6)*si_s(i,6)
694 + + si_s(i,7)*si_s(i,7)+si_s(i,8)*si_s(i,8)
695 d = 1./
max(em20,sqrt(d))
704 a0 = ( f1 + f2 + f3 + f4 )*half
710 a3(i) = ( f1 - f2 + f3 - f4 )*fourth
711 a4(i) = (-f1 + f2 + f3 - f4 )*half - ba
712 a5(i) = (-f1 - f2 + f3 + f4 )*fourth - a1(i)
717 b4(i) = (-f1 - f2 + f3 + f4 )*half + ab
718 b5(i) = (-f1 + f2 + f3 - f4 )*fourth - b1(i)
756 a4r = a4(i) * r_cs(i)
757 a5t = a5(i) * t_cs(i)
758 b4t = b4(i) * t_cs(i)
759 b5r = b5(i) * r_cs(i)
760 cc1 = a1(i) -(a4r + a5t) * t_cs(i)
761 cc2 = a2(i) + a4(i) * t_cs(i)
762 cc3 = a3(i) + a4r + a5t + a5t
763 dd1 = b1(i) -(b4t + b5r )* r_cs(i)
764 dd2 = b2(i) + b4t + b5r + b5r
765 dd3 = b3(i) + b4(i) * r_cs(i)
766 d = dd3 * cc2 - cc3 * dd2
770 d = dd3 * cc2 - cc3 * dd2
772 r_cs(i) = (cc3 * dd1 - dd3 * cc1) / d
773 t_cs(i) = (dd2 * cc1 - cc2 * dd1) / d
774 r_cs(i) =
max(-one,
min(one,r_cs(i)))
775 t_cs(i) =
max(-one,
min(one,t_cs(i)))
796 CALL i17abc(llt ,si_s,r_cs,t_cs,
800 s_cm(i) = c1(i) + (c2(i) + c3(i)*t_cs(i))*t_cs(i)
801 s_cm(i) = b1(i) + (b2(i) + b3(i)*r_cs(i))*r_cs(i)
823 CALL i17surf(llt ,r_1s ,r_2s ,r_cs ,r_cs ,
824 2 t_cs ,t_cs ,t_1s ,t_2s ,area_tot,
825 3 xxs ,yys ,zzs ,azero )
830 xa = xxs(i,7)-xxs(i,5)
831 ya = yys(i,7)-yys(i,5)
832 za = zzs(i,7)-zzs(i,5)
833 xb = xxs(i,8)-xxs(i,6)
834 yb = yys(i,8)-yys(i,6)
835 zb = zzs(i,8)-zzs(i,6)
840 aaa = pi*fourth*sqrt(xc*xc+yc*yc+zc*zc)
842 area_tot(i) =
min(area_tot(i),aaa)
858 + bb1 ,bb2 ,bb3 ,cc1 ,cc2 ,cc3 )
859 rm = bb1 + (bb2 + bb3*rt(ir))*rt(ir)
860 IF(rm >= -unpeps.and.rm <= unpeps)
THEN
862 + bb1 ,bb2 ,bb3 ,cc1 ,cc2 ,cc3 )
863 tm = cc1 + (cc2 + cc3*rt(it))*rt(it)
864 IF(tm >= -unpeps.and.tm <= unpeps)
THEN
866 + bb1 ,bb2 ,bb3 ,cc1 ,cc2 ,cc3 )
867 sm = cc1 + (cc2 + cc3*rt(it))*rt(it)
870 aa = aa + as(ir)*as(it)
871 p = p * as(ir) * as(it)
885 + bb1 ,bb2 ,bb3 ,cc1 ,cc2 ,cc3 )
886 r_cm(i) = bb1 + (bb2 + bb3*r_cs(i))*r_cs(i)
888 + bb1 ,bb2 ,bb3 ,cc1 ,cc2 ,cc3 )
889 t_cm(i) = cc1 + (cc2 + cc3*t_cs(i))*t_cs(i)
891 + bb1 ,bb2 ,bb3 ,cc1 ,cc2 ,cc3 )
892 s_cm(i) = cc1 + (cc2 + cc3*t_cs(i))*t_cs(i)
893 IF(abs(s_cm(i)) < one)
THEN
895 area(i) =
min(area_el(i) * aa,area_tot(i))
903 IF(s_cm(i) < zero)
THEN
905 xa = xx(i,11)-xx(i,9)
906 ya = yy(i,11)-yy(i,9)
907 za = zz(i,11)-zz(i,9)
908 xb = xx(i,12)-xx(i,10)
909 yb = yy(i,12)-yy(i,10)
910 zb = zz(i,12)-zz(i,10)
913 xa = xx(i,15)-xx(i,13)
914 ya = yy(i,15)-yy(i,13)
915 za = zz(i,15)-zz(i,13)
916 xb = xx(i,16)-xx(i,14)
917 yb = yy(i,16)-yy(i,14)
918 zb = zz(i,16)-zz(i,14)
923 aaa = pi*fourth*sqrt(xc*xc+yc*yc+zc*zc)
924 area_el(i) =
min(area_el(i),aaa)
925 area_tot(i) =
min(area_tot(i),aaa)
926 IF(area_tot(i) == zero)area_tot(i) = area_el(i)
931 CALL i17norm(llt ,r_cs ,s_cs ,t_cs ,
932 2 nx ,ny ,nz ,xxs ,yys ,zzs )
1163 1 LLT ,R1 ,R2 ,R3 ,R4 ,
1164 2 T1 ,T2 ,T3 ,T4 ,AREA ,
1169#include "implicit_f.inc"
1173#include "mvsiz_p.inc"
1179 . r1(mvsiz),r2(mvsiz),r3(mvsiz),r4(mvsiz),
1180 . t1(mvsiz),t2(mvsiz),t3(mvsiz),t4(mvsiz),
1181 .
area(mvsiz),xx(mvsiz,*) ,yy(mvsiz,*),zz(mvsiz,*),sm(mvsiz)
1187 . u_m_r,u_p_r,u_m_s,u_p_s,u_m_t,u_p_t,
1188 . ums_umt,ums_upt,ups_umt,ups_upt,
1189 . umr_ums,umr_ups,upr_ums,upr_ups,
1190 . umt_umr,umt_upr,upt_umr,upt_upr,
1191 . a,b,r05,s05,t05,r,t,ni(8),
1192 . x1,x2,x3,y1,y2,y3,z1,z2,z3,pis4
1210 ni(1) = u_m_t * u_m_r * (-r-t-one)
1211 ni(2) = u_p_t * u_m_r * (-r+t-one)
1212 ni(3) = u_p_t * u_p_r * ( r+t-one)
1213 ni(4) = u_m_t * u_p_r * ( r-t-one)
1227 IF(sm(i) == zero)
THEN
1230 x1 = x1-ni(k)*xx(i,k)
1231 y1 = y1-ni(k)*yy(i,k)
1232 z1 = z1-ni(k)*zz(i,k)
1234 ELSEIF(sm(i) < zero)
THEN
1237 x1 = x1-ni(k)*xx(i,k)-ni(k+4)*xx(i,k+8)
1238 y1 = y1-ni(k)*yy(i,k)-ni(k+4)*yy(i,k+8)
1239 z1 = z1-ni(k)*zz(i,k)-ni(k+4)*zz(i,k+8)
1241 ELSEIF(sm(i) > zero)
THEN
1244 x1 = x1-ni(k)*xx(i,k+4)-ni(k+4)*xx(i,k+12)
1245 y1 = y1-ni(k)*yy(i,k+4)-ni(k+4)*yy(i,k+12)
1246 z1 = z1-ni(k)*zz(i,k+4)-ni(k+4)*zz(i,k+12)
1262 ni(1) = u_m_t * u_m_r * (-r-t-one)
1263 ni(2) = u_p_t * u_m_r * (-r+t-one)
1264 ni(3) = u_p_t * u_p_r * ( r+t-one)
1265 ni(4) = u_m_t * u_p_r * ( r-t-one)
1273 IF(sm(i) == zero)
THEN
1276 x1 = x1+ni(k)*xx(i,k)
1277 y1 = y1+ni(k)*yy(i,k)
1278 z1 = z1+ni(k)*zz(i,k)
1280 ELSEIF(sm(i) < zero)
THEN
1283 x1 = x1+ni(k)*xx(i,k)+ni(k+4)*xx(i,k+8)
1284 y1 = y1+ni(k)*yy(i,k)+ni(k+4)*yy(i,k+8)
1285 z1 = z1+ni(k)*zz(i,k)+ni(k+4)*zz(i,k+8)
1287 ELSEIF(sm(i) > zero)
THEN
1290 x1 = x1+ni(k)*xx(i,k+4)+ni(k+4)*xx(i,k+12)
1291 y1 = y1+ni(k)*yy(i,k+4)+ni(k+4)*yy(i,k+12)
1292 z1 = z1+ni(k)*zz(i,k+4)+ni(k+4)*zz(i,k+12)
1308 ni(1) = u_m_t * u_m_r * (-r-t-one)
1309 ni(2) = u_p_t * u_m_r * (-r+t-one)
1310 ni(3) = u_p_t * u_p_r * ( r+t-one)
1311 ni(4) = u_m_t * u_p_r * ( r-t-one)
1319 IF(sm(i) == zero)
THEN
1322 x2 = x2-ni(k)*xx(i,k)
1323 y2 = y2-ni(k)*yy(i,k)
1324 z2 = z2-ni(k)*zz(i,k)
1326 ELSEIF(sm(i) < zero)
THEN
1329 x2 = x2-ni(k)*xx(i,k)-ni(k+4)*xx(i,k+8)
1330 y2 = y2-ni(k)*yy(i,k)-ni(k+4)*yy(i,k+8)
1331 z2 = z2-ni(k)*zz(i,k)-ni(k+4)*zz(i,k+8)
1333 ELSEIF(sm(i) > zero)
THEN
1336 x2 = x2-ni(k)*xx(i,k+4)-ni(k+4)*xx(i,k+12)
1337 y2 = y2-ni(k)*yy(i,k+4)-ni(k+4)*yy(i,k+12)
1338 z2 = z2-ni(k)*zz(i,k+4)-ni(k+4)*zz(i,k+12)
1354 ni(1) = u_m_t * u_m_r * (-r-t-one)
1355 ni(2) = u_p_t * u_m_r * (-r+t-one)
1356 ni(3) = u_p_t * u_p_r * ( r+t-one)
1357 ni(4) = u_m_t * u_p_r * ( r-t-one)
1365 IF(sm(i) == zero)
THEN
1368 x2 = x2+ni(k)*xx(i,k)
1369 y2 = y2+ni(k)*yy(i,k)
1370 z2 = z2+ni(k)*zz(i,k)
1372 ELSEIF(sm(i) < zero)
THEN
1375 x2 = x2+ni(k)*xx(i,k)+ni(k+4)*xx(i,k+8)
1376 y2 = y2+ni(k)*yy(i,k)+ni(k+4)*yy(i,k+8)
1377 z2 = z2+ni(k)*zz(i,k)+ni(k+4)*zz(i,k+8)
1379 ELSEIF(sm(i) > zero)
THEN
1382 x2 = x2+ni(k)*xx(i,k+4)+ni(k+4)*xx(i,k+12)
1383 y2 = y2+ni(k)*yy(i,k+4)+ni(k+4)*yy(i,k+12)
1384 z2 = z2+ni(k)*zz(i,k+4)+ni(k+4)*zz(i,k+12)
1393 area(i) = pi*fourth*sqrt(x3*x3+y3*y3+z3*z3)
1408 1 LLT ,NINT ,V ,A ,III ,IIIS ,
1409 2 NI_M ,NI_S ,NX ,NY ,NZ ,VIT ,
1410 3 ICONT ,RM ,TM ,RS ,TS ,SM ,
1419#include "implicit_f.inc"
1423#include "mvsiz_p.inc"
1428 INTEGER III(MVSIZ,17),IIIS(MVSIZ,16),
1429 + ICONT(MVSIZ,4), LES(MVSIZ)
1432 . V(3,*),A(3,*),VIT(*)
1434 . RM(MVSIZ) ,RS(MVSIZ) ,TM(MVSIZ) ,TS(MVSIZ) ,SM(MVSIZ),
1435 . ni_m(mvsiz,*) ,ni_s(mvsiz,*),nx(mvsiz) ,ny(mvsiz) ,nz(mvsiz)
1439 INTEGER I,J,IK,NK,I1,I2,I3,I4,IES,IIS
1445 CALL i17ni(llt,rm ,tm ,ni_m )
1449 CALL i17ni(llt,rs ,ts ,ni_s )
1457 IF(icont(i,1) /= 0)
THEN
1463 vx = vx - (v(1,iii(i,ik)))*ni_m(i,ik)
1464 vy = vy - (v(2,iii(i,ik)))*ni_m(i,ik)
1465 vz = vz - (v(3,iii(i,ik)))*ni_m(i,ik)
1466 vx = vx + (v(1,iiis(i,ik)))*ni_s(i,ik)
1467 vy = vy + (v(2,iiis(i,ik)))*ni_s(i,ik)
1468 vz = vz + (v(3,iiis(i,ik)))*ni_s(i,ik)
1473 vx = vx - v(1,iii(i,ik))*ni_m(i,ik)
1474 vy = vy - v(2,iii(i,ik))*ni_m(i,ik)
1475 vz = vz - v(3,iii(i,ik))*ni_m(i,ik)
1477 vx = vx +
vfi17(nint)%P(1,iis,ies)*ni_s(i,ik)
1478 vy = vy +
vfi17(nint)%P(2,iis,ies)*ni_s(i,ik)
1479 vz = vz +
vfi17(nint)%P(3,iis,ies)*ni_s(i,ik)
1483 vn = nx(i)*vx + ny(i)*vy + nz(i)*vz
1506 1 LLT ,ITIED ,NINT ,V ,A ,FRIC ,
1507 3 III ,IIIS ,NI_M ,NI_S ,S_CM ,S_CS ,
1508 4 NX ,NY ,NZ ,VIT ,LE ,LES ,
1509 5 ICONT ,RM ,TM ,RS ,TS ,XX ,
1510 6 YY ,ZZ ,STIFN ,FSKYI ,ISKY ,
1511 7 FROTM ,FROTS ,AREA ,AREA_TOT,KM ,KS ,
1512 8 FSAV ,FCONT ,MS ,AREA_EL ,NISKYFI ,NOINT ,
1525#include "implicit_f.inc"
1526#include "comlock.inc"
1530#include "mvsiz_p.inc"
1534#include "scr07_c.inc"
1535#include "scr11_c.inc"
1536#include "scr14_c.inc"
1537#include
"scr16_c.inc"
1538#include "com06_c.inc"
1539#include "com08_c.inc"
1540#include "parit_c.inc"
1544 TYPE(output_),
INTENT(INOUT) :: OUTPUT
1545 INTEGER LLT,ITIED,NINT,NISKYFI,NOINT
1546 INTEGER III(MVSIZ,17),(MVSIZ,16),ICONT(MVSIZ), ISKY(*),
1550 . V(3,*),A(3,*),VIT(*), MS(*)
1552 . RM(MVSIZ) ,RS(MVSIZ) ,TM(MVSIZ) ,TS(MVSIZ) ,
1553 . xx(mvsiz,17),yy(mvsiz,17),zz(mvsiz,17),s_cm(mvsiz),
1554 . s_cs(mvsiz), fsav(*),fcont(3,*),
1555 . ni_m(mvsiz,*) ,ni_s(mvsiz,*),nx(mvsiz) ,ny(mvsiz) ,nz(mvsiz),
1556 . stifn(*),fskyi(lskyi,nfskyi),frotm(7,*),frots(7,*),
1557 .
area(mvsiz),area_tot(mvsiz),area_el(mvsiz),km(2,*),ks(2,*),
1563 INTEGER I,J,IK,NK,I1,I2,I3,I4,IAD,NN,LEM,J1,J2,NISKYL,IES,IIS,
1566 . VX,VY,VZ,VN,AA,SURF,EP2,XE,YE,ZE,XA,YA,ZA,XB,YB,ZB,XC,YC,ZC,
1567 . F,STIF,PENE,SIGTMX,SIGTMY,SIGTMZ,SIGTSX,SIGTSY,SIGTSZ,BB,
1568 . FX,FY,FZ,FFX,FFY,FFZ,FF,FF2,MUF2,HTSQRTPI,MAS4,EP,VIS,
1569 . RHOM,RHOS,STIFV,DT1INV,FFVX,FFVY,FFVZ,FFTX,FFTY,FFTZ,MUF,
1570 . FSAV1,FSAV2,FSAV3,FSAV4,FSAV5,FSAV6,ECONVT,ECONTT,BETA,
1604 htsqrtpi = eight / (three*sqrt(pi))
1623 IF(icont(i)/=0 )
THEN
1704 xe = xe + xx(i,ik) *ni_m(i,ik)
1705 + + xx(i,ik+8) *ni_m(i,ik+4)
1706 + - xx(i,ik+4) *ni_m(i,ik
1707 + - xx(i,ik+12)*ni_m(i,ik+4)
1708 ye = ye + yy(i,ik) *ni_m(i,ik)
1709 + + yy(i,ik+8) *ni_m(i,ik+4)
1710 + - yy(i,ik+4) *ni_m(i,ik)
1711 + - yy(i,ik+12)*ni_m(i,ik+4)
1712 ze = ze + zz(i,ik) *ni_m(i,ik)
1713 + + zz(i,ik+8) *ni_m(i,ik+4)
1714 + - zz(i,ik+4) *ni_m(i,ik)
1715 + - zz(i,ik+12)*ni_m(i,ik+4)
1717 ep = abs(xe*nx(i) + ye*ny(i) + ze*nz(i))
1718 pene = half*(one-abs(s_cm(i))) * ep
1730 vx = vx + (v(1,iiis(i,ik)))*ni_s(i,ik)
1731 . - (v(1,iii(i,ik))) *ni_m(i,ik)
1732 vy = vy + (v(2,iiis(i,ik)))*ni_s(i,ik)
1733 . - (v(2,iii(i,ik))) *ni_m(i,ik)
1734 vz = vz + (v(3,iiis(i,ik)))*ni_s(i,ik)
1735 . - (v(3,iii(i,ik))) *ni_m(i,ik)
1740 sigtmx = frotm(5,lem)
1741 sigtmy = frotm(6,lem)
1742 sigtmz = frotm(7,lem)
1743 sigtsx = frots(5,les(i))
1744 sigtsy = frots(6,les(i))
1745 sigtsz = frots(7,les(i))
1750 vx = vx +
vfi17(nint)%P(1,iis,ies)*ni_s(i,ik)
1751 . - v(1,iii(i,ik)) *ni_m(i,ik)
1752 vy = vy +
vfi17(nint)%P(2,iis,ies)*ni_s(i,ik)
1753 . - v(2,iii(i,ik)) *ni_m(i,ik)
1754 vz = vz +
vfi17(nint)%P(3,iis,ies)*ni_s(i,ik)
1755 . - v(3,iii(i,ik)) *ni_m(i,ik)
1757 ks1 =
ksfi(nint)%P(1,ies)
1760 sigtmx = frotm(5,lem)
1761 sigtmy = frotm(6,lem)
1762 sigtmz = frotm(7,lem)
1763 sigtsx =
frotsfi(nint)%P(5,ies)
1764 sigtsy =
frotsfi(nint)%P(6,ies)
1765 sigtsz =
frotsfi(nint)%P(7,ies)
1767 vn = nx(i)*vx + ny(i)*vy + nz(i)*vz
1773 stif = htsqrtpi*
area(i) /
1774 . ((km(1,lem)+ks1)*sqrt(area_tot(i)))
1781 mas4 = (rhom+rhos) *
area(i) *
min(ep,sqrt(
area(i)))
1783 vis = beta*sqrt(stif*mas4)
1805 ffx = aa*(sigtmx+sigtsx)+bb*vx
1806 ffy = aa*(sigtmy+sigtsy)+bb*vy
1807 ffz = aa*(sigtmz+sigtsz)+bb*vz
1814 ff = nx(i)*ffx + ny(i)*ffy + nz(i)*ffz
1815 ffx = ffx - ff*nx(i)
1816 ffy = ffy - ff*ny(i)
1817 ffz = ffz - ff*nz(i)
1818 ff = nx(i)*ffvx + ny(i)*ffvy + nz(i)*ffvz
1819 ffvx = ffvx - ff*nx(i)
1820 ffvy = ffvy - ff*ny(i)
1821 ffvz = ffvz - ff*nz(i)
1831 muf = fric(1)*
max(zero,f)
1840 ff2 = ffx*ffx + ffy*ffy + ffz*ffz
1842 aa = muf / sqrt(ff2)
1849#include "lockon.inc"
1850 frotm(1,lem) = frotm(1,lem) + ffx
1851 frotm(2,lem) = frotm(2,lem) + ffy
1852 frotm(3,lem) = frotm(3,lem) + ffz
1853 frotm(4,lem) = frotm(4,lem) +
area(i)
1856 frots(1,les(i)) = frots(1,les(i)) + ffx
1857 frots(2,les(i)) = frots(2,les(i)) + ffy
1858 frots(3,les(i)) = frots(3,les(i)) + ffz
1859 frots(4,les(i)) = frots(4,les(i)) +
area(i)
1883#include "lockoff.inc"
1901 . + vx*fx+vy*fy+vz*fz
1905#include "lockon.inc"
1908 a(1,j1) = a(1,j1) + ni_m(i,ik)*fx
1909 a(2,j1) = a(2,j1) + ni_m(i,ik)*fy
1910 a(3,j1) = a(3,j1) + ni_m(i,ik)*fz
1911 stifn(j1) = stifn(j1) + abs(ni_m(i,ik)*stif)
1914 a(1,j2) = a(1,j2) - ni_s(i,ik)*fx
1915 a(2,j2) = a(2,j2) - ni_s(i,ik)*fy
1916 a(3,j2) = a(3,j2) - ni_s(i,ik)*fz
1917 stifn(j2) = stifn(j2) + abs(ni_s(i,ik)*stif)
1919#include "lockoff.inc"
1921#include
"lockon.inc"
1924#include "lockoff.inc"
1925 IF (niskyl > lskyi)
THEN
1926 CALL ancmsg(msgid=26,anmode=aninfo,
1932 fskyi(niskyl,1)=ni_m(i,ik)*fx
1933 fskyi(niskyl,2)=ni_m(i,ik)*fy
1934 fskyi(niskyl,3)=ni_m(i,ik)*fz
1935 fskyi(niskyl,4)=abs(ni_m(i,ik)*stif)
1936 isky(niskyl) = iii(i,ik)
1938 fskyi(niskyl,1)= - ni_s(i,ik)*fx
1939 fskyi(niskyl,2)= - ni_s(i,ik)*fy
1940 fskyi(niskyl,3)= - ni_s(i,ik)*fz
1941 fskyi(niskyl,4)= abs(ni_s(i,ik)*stif)
1942 isky(niskyl) = iiis(i,ik)
1946 IF(anim_v(4)+outp_v(4)+h3d_data%N_VECT_CONT >0.AND.
1947 . ((tt>=output%TANIM .AND. tt<=output%TANIM_STOP).OR.tt>=toutp.OR.(tt>=h3d_data%TH3D.AND.tt<=h3d_data%TH3D_STOP).OR.
1948 . (manim>=4.AND.manim<=15).OR. h3d_data%MH3D /= 0))
THEN
1949#include "lockon.inc"
1952 fcont(1,j1) =fcont(1,j1) + ni_m(i,ik)*fx
1953 fcont(2,j1) =fcont(2,j1) + ni_m(i,ik)*fy
1954 fcont(3,j1) =fcont(3,j1) + ni_m(i,ik)*fz
1957 fcont(1,j2) =fcont(1,j2) - ni_s(i,ik)*fx
1958 fcont(2,j2) =fcont(2,j2) - ni_s(i,ik)*fy
1959 fcont(3,j2) =fcont(3,j2) - ni_s(i,ik)*fz
1961#include "lockoff.inc"
1965#include "lockon.inc"
1968 a(1,j1) = a(1,j1) + ni_m(i,ik)*fx
1969 a(2,j1) = a(2,j1) + ni_m(i,ik)*fy
1970 a(3,j1) = a(3,j1) + ni_m(i,ik)*fz
1971 stifn(j1) = stifn(j1) + abs(ni_m(i,ik)*stif)
1974 afi17(nint)%P(1,j2,ies) =
afi17(nint)%P(1,j2,ies)
1976 afi17(nint)%P(2,j2,ies) =
afi17(nint)%P(2,j2,ies)
1978 afi17(nint)%P(3,j2,ies) =
afi17(nint)%P(3,j2,ies)
1981 + + abs(ni_s(i,ik)*stif)
1983#include
"lockoff.inc"
1985#include "lockon.inc"
1990#include "lockoff.inc"
1991 iskyfi(nint)%P(niskyfil) = ies
1993 IF (niskyl > lskyi)
THEN
1994 CALL ancmsg(msgid=26,anmode=aninfo,
1998 IF (niskyfil >
nlskyfi(nint))
THEN
1999 CALL ancmsg(msgid=26,anmode=aninfo,
2006 fskyi(niskyl,1)=ni_m(i,ik)*fx
2008 fskyi(niskyl,3)=ni_m(i,ik)*fz
2009 fskyi(niskyl,4)=abs(ni_m(i,ik)*stif)
2010 isky(niskyl) = iii(i,ik)
2012 fskyfi(nint)%P(1+(ik-1)*5,niskyfil)= - ni_s(i,ik)*fx
2013 fskyfi(nint)%P(2+(ik-1)*5,niskyfil)= - ni_s(i,ik)*fy
2014 fskyfi(nint)%P(3+(ik-1)*5,niskyfil)= - ni_s(i,ik)*fz
2015 fskyfi(nint)%P(4+(ik-1)*5,niskyfil)= abs(ni_s(i,ik)*stif)
2016 fskyfi(nint)%P(5+(ik-1)*5,niskyfil)= iiis(i,ik)
2020 IF(anim_v(4)+outp_v(4)+h3d_data%N_VECT_CONT >0.AND.
2021 . ((tt>=output%TANIM .AND. tt<=output%TANIM_STOP).OR.tt>=toutp.OR.(tt>=h3d_data%TH3D.AND.tt<=h3d_data%TH3D_STOP).OR.
2022 . (manim>=4.AND.manim<=15).OR. h3d_data%MH3D /= 0))
THEN
2023#include "lockon.inc"
2026 fcont(1,j1) =fcont(1,j1) + ni_m(i,ik)*fx
2027 fcont(2,j1) =fcont(2,j1) + ni_m(i,ik)*fy
2028 fcont(3,j1) =fcont(3,j1) + ni_m(i,ik)*fz
2030#include "lockoff.inc"
2039#include "lockon.inc"
2040 fsav(1) = fsav(1) + fsav1*dt12
2041 fsav(2) = fsav(2) + fsav2*dt12
2042 fsav(3) = fsav(3) + fsav3*dt12
2043 fsav(4) = fsav(4) + fsav4
2044 fsav(5) = fsav(5) + fsav5*dt12
2046 econtv = econtv + dt1*econvt
2047 econt = econt + dt1*econtt
2048#include "lockoff.inc"
2065#include "implicit_f.inc"
2069 INTEGER NSKYI17, NMES, LSKYI17, ISKYI17(*)
2072 . fskyi17(lskyi17,4),frots(7,*)
2076 INTEGER I, J, JJ1, JJ2, K, KK, L, N, NN, IDIFF,
2079 . ff, fskyit(nskyi17) , bid
2087 adskyi(n) = adskyi(n)+1
2093 adskyi(nn) = adskyi(nn) + adskyi(n)
2100 adskyi(n) = adskyi(n) + 1
2106 fskyit(j) = fskyi17(i,l)
2109 fskyi17(i,l) = fskyit(i)
2119 idiff = adskyi(n)-adskyi(nn)
2122 frots(1,n) = frots(1,n) + fskyi17(k,1)
2123 frots(2,n) = frots(2,n) + fskyi17(k,2)
2124 frots(3,n) = frots(3,n) + fskyi17(k,3)
2125 frots(4,n) = frots(4,n) + fskyi17(k,4)
2126 ELSEIF(idiff>1.AND.idiff<20)
THEN
2132 IF(fskyi17(kk,l)>fskyi17(k,l))
THEN
2134 fskyi17(kk,l) = fskyi17(k,l)
2141 frots(1,n)= frots(1,n)+ fskyi17(k,1)
2142 frots(2,n)= frots(2,n)+ fskyi17(k,2)
2143 frots(3,n)= frots(3,n)+ fskyi17(k,3)
2144 frots(4,n)= frots(4,n)+ fskyi17(k,4)
2146 ELSEIF(idiff>=20)
THEN
2150 CALL ass2sort(fskyi17,jj1,jj2,fskyit,4)
2152 frots(1,n)= frots(1,n)+ fskyi17(k,1)
2153 frots(2,n)= frots(2,n)+ fskyi17(k,2)
2154 frots(3,n)= frots(3,n)+ fskyi17(k,3)
2155 frots(4,n)= frots(4,n)+ fskyi17(k,4)