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