36
37
38
39#include "implicit_f.inc"
40#include "comlock.inc"
41
42
43
44#include "units_c.inc"
45#include "warn_c.inc"
46#include "com01_c.inc"
47#include "com04_c.inc"
48#include "com08_c.inc"
49#include "task_c.inc"
50
51
52
53 INTEGER NME, NSN, NOINT,IDT,ITASK,MX_CAND,
54 . ESH_T, I_STOK_GLOB
55 INTEGER CAND_E(*),CAND_N(*),IXS(NIXS,*),IXS16(8,*),
56 . NSV(*),MWA(*),NELEM(*),IXS20(12,*),IXS10(6,*)
57
59 . tzinf,minbox
61 . x(3,*),eminx(6,*),xsav(3,*),v(3,*) ,a(3,*)
62
63
64
65
66 INTEGER I, J, K, CONT,NB_N_B,I_STOK ,NSNF,NSNL,
67 . IP0, IP1, IP2, IP21, IP22, IP31, MAXSIZ,
68 . NE,N8,N10,N20,N16
69
70
71
72 IF (debug(3)>=1) THEN
73#include "lockon.inc"
74 WRITE(istdo,*)'** NEW SORT FOR INTERFACE NUMBER ',noint,
75 . ' AT CYCLE ',ncycle
76 WRITE(iout,*)'** NEW SORT FOR INTERFACE NUMBER ',noint,
77 . ' AT CYCLE ',ncycle
78#include "lockoff.inc"
79 ENDIF
80
81 nsnf = 1 + itask*nsn / nthread
82 nsnl = (itask+1)*nsn / nthread
83 DO i=nsnf,nsnl
84 j=nsv(i)
85 xsav(1,j) = x(1,j)+dt2*(v(1,j)+dt12*a(1,j))
86 xsav(2,j) = x(2,j)+dt2*(v(2,j)+dt12*a(2,j))
87 xsav(3,j) = x(3,j)+dt2*(v(3,j)+dt12*a(3,j))
88 END DO
89 DO k=1,8
90 DO i=1+esh_t,nme+esh_t
91 j=ixs(k+1,nelem(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 ENDDO
96 ENDDO
97 DO i=1+esh_t,nme+esh_t
98 ne=nelem(i)
99 n8 = ne
100 n10 = n8-numels8
101 n20 = n10-numels10
102 n16 = n20-numels20
103 IF(n16>0)THEN
104 DO k=1,8
105 j=ixs16(k,n16)
106 xsav(1,j) = x(1,j)+dt2*(v(1,j)+dt12*a(1,j))
107 xsav(2,j) = x(2,j)+dt2*(v(2,j)+dt12*a(2,j))
108 xsav(3,j) = x(3,j)+dt2*(v(3,j)+dt12*a(3,j))
109 ENDDO
110 ELSEIF(n20>0)THEN
111 DO k=1,12
112 j=ixs20(k,n20)
113 IF(j/=0)THEN
114 xsav(1,j) = x(1,j)+dt2*(v(1,j)+dt12*a(1,j))
115 xsav(2,j) = x(2,j)+dt2*(v(2,j)+dt12*a(2,j))
116 xsav(3,j) = x(3,j)+dt2*(v(3,j)+dt12*a(3,j))
117 ENDIF
118 ENDDO
119 ELSEIF(n10>0)THEN
120 DO k=1,6
121 j=ixs10(k,n10)
122 xsav(1,j) = x(1,j)+dt2*(v(1,j)+dt12*a(1,j))
123 xsav(2,j) = x(2,j)+dt2*(v(2,j)+dt12*a(2,j))
124 xsav(3,j) = x(3,j)+dt2*(v(3,j)+dt12*a(3,j))
125 ENDDO
126 ENDIF
127 ENDDO
128
129 nb_n_b = 1
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144 maxsiz = 3*(nme+100)
145 ip1 = 1
146 ip2 = ip1+nme+100
147 ip21= ip2+maxsiz
148 ip22= ip21+nsn
149 ip31= ip22+nsn
150
151
152
153 cont = 1
154
155
156
157 DO WHILE (cont/=0)
159 1 mwa(ip1),mwa(ip2) ,mwa(ip21),mwa(ip22),nsn ,
160 2 tzinf ,ixs ,ixs16 ,ixs20 ,nelem ,
161 3 nsv ,maxsiz ,cand_n ,cand_e ,minbox ,
162 5 cont ,nb_n_b ,eminx ,i_stok_glob,nme ,
163 6 itask ,noint ,x ,v ,a ,
164 7 mx_cand ,ixs10 ,esh_t )
165 ENDDO
166
167 RETURN
subroutine i16tri(bpe, pe, bpn, pn, nsn, tzinf, ixs, ixs16, ixs20, nelem, nsv, maxsiz, cand_n, cand_e, minbox, cont, nb_n_b, eminx, i_stok_glob, nme, itask, noint, x, v, a, mx_cand, ixs10, esh_t)