34
35
36
37
38#include "implicit_f.inc"
39#include "comlock.inc"
40
41
42
43#include "com04_c.inc"
44#include "com08_c.inc"
45#include "task_c.inc"
46
47
48
49 INTEGER NMES,NME_T,ESH_T,NMN,ITASK,
50 . NELEM(*),NELES(*),IXS(NIXS,*),IXS16(8,*)
52 . xmax,
ymax, zmax, xmin, ymin, zmin,
53 . x(3,*), v(3,*), a(3,*), eminxm(6,*), xsav(3,*)
54
55
56
57 INTEGER NMES_F, NMES_L, I, J, K
58
59
60
61C
62 nmes_f = 1 + itask*nmes / nthread
63 nmes_l = (itask+1)*nmes / nthread
64
65 xmin=ep30
66 xmax=-ep30
67 ymin=ep30
69 zmin=ep30
70 zmax=-ep30
71
72 DO k=1,8
73 DO i=1+esh_t,nme_t+esh_t
74 j=ixs(k+1,nelem(i))
75 xsav(1,j) = x(1,j)+dt2*(v(1,j)+dt12*a(1,j))
76 xsav(2,j) = x(2,j)+dt2*(v(2,j)+dt12*a(2,j))
77 xsav(3,j) = x(3,j)+dt2*(v(3,j)+dt12*a(3,j))
78 j=ixs16(k,nelem(i)-numels8-numels10-numels20)
79 xsav(1,j) = x(1,j)+dt2*(v(1,j)+dt12*a(1,j))
80 xsav(2,j) = x(2,j)+dt2*(v(2,j)+dt12*a(2,j))
81 xsav(3,j) = x(3,j)+dt2*(v(3,j)+dt12*a(3,j))
82
83 xmin =
min( xmin , eminxm(1,i) )
84 ymin =
min( ymin , eminxm(2,i) )
85 zmin =
min( zmin , eminxm(3,i) )
86 xmax =
max( xmax , eminxm(4,i) )
88 zmax =
max( zmax , eminxm(6,i) )
89 ENDDO
90 DO i=nmes_f,nmes_l
91 j=ixs(k+1,neles(i))
92 xsav(1,j) = x(1,j)+dt2*(v(1,j)+dt12*a(1,j))
93 xsav(2,j) = x(2,j)+dt2*(v(2,j)+dt12*a(2,j))
94 xsav(3,j) = x(3,j)+dt2*(v(3,j)+dt12*a(3,j))
95 j=ixs16(k,neles(i)-numels8-numels10-numels20)
96 xsav(1,j) = x(1,j)+dt2*(v(1,j)+dt12*a(1,j))
97 xsav(2,j) = x(2,j)+dt2*(v(2,j)+dt12*a(2,j))
98 xsav(3,j) = x(3,j)+dt2*(v(3,j)+dt12*a(3,j))
99 ENDDO
100 ENDDO
101
102 RETURN
subroutine ymax(idn, fac, npc, pld, stiffmin, stiffmax, stiffini, stiffavg)