29
30
31
32#include "implicit_f.inc"
33
34
35
36 INTEGER EFTSK ,ELTSK ,IENUNL(2,*), ITAB(*)
38 . a(3,*) ,alpha_dc(*),ms(*)
39
40
41
42 INTEGER I,N1,N2,inn
44 . am(3),ad(3),alpha_1,f1(3),f2(3),mss_1
45
46
47
48
49
50
51
52#include "vectorize.inc"
53 DO i=eftsk ,eltsk
54 n1= ienunl(1,i)
55 n2= ienunl(2,i)
56 IF (
max(alpha_dc(n1),alpha_dc(n2))<=one) cycle
57 IF (
max(ms(n1),ms(n2))==zero) cycle
58 IF (ms(n1)==zero) THEN
59 f1(1:3) = a(1:3,n1)
60 ELSE
61 f1(1:3) = ms(n1)*a(1:3,n1)
62 END IF
63 IF (ms(n2)==zero) THEN
64 f2(1:3) = a(1:3,n2)
65 ELSE
66 f2(1:3) = ms(n2)*a(1:3,n2)
67 END IF
68 mss_1 = one/(ms(n1)+ms(n2))
69 am(1:3) = (f1(1:3)+f2(1:3))*mss_1
70 ad(1:3) = (f2(1:3)-f1(1:3))*mss_1
71 alpha_1 =one/
max(alpha_dc(n1),alpha_dc(n2))
72 a(1:3,n1) = am(1:3) - ad(1:3)*alpha_1
73 a(1:3,n2) = am(1:3) + ad(1:3)*alpha_1
74 END DO
75
76 RETURN