29
30
31
32
33
34
35#include "implicit_f.inc"
36
37
38
39 INTEGER, INTENT(IN) :: IS, M1, M2, M3
42
43
44
45 my_real n(3), u(3), v(3), w(3), uw(3), wv(3)
47
48 u(1)=x(1,m2)-x(1,m1)
49 u(2)=x(2,m2)-x(2,m1)
50 u(3)=x(3,m2)-x(3,m1)
51
52 v(1)=x(1,m3)-x(1,m1)
53 v(2)=x(2,m3)-x(2,m1)
54 v(3)=x(3,m3)-x(3,m1)
55
56 n(1)=u(2)*v(3)-u(3)*v(2)
57 n(2)=u(3)*v(1)-u(1)*v(3)
58 n(3)=u(1)*v(2)-u(2)*v(1)
59
60 w(1)=x(1,is)-x(1,m1)
61 w(2)=x(2,is)-x(2,m1)
62 w(3)=x(3,is)-x(3,m1)
63
64 uw(1)=u(2)*w(3)-u(3)*w(2)
65 uw(2)=u(3)*w(1)-u(1)*w(3)
66 uw(3)=u(1)*w(2)-u(2)*w(1)
67
68 wv(1)=w(2)*v(3)-w(3)*v(2)
69 wv(2)=w(3)*v(1)-w(1)*v(3)
70 wv(3)=w(1)*v(2)-w(2)*v(1)
71
72 fac=one/(n(1)*n(1)+n(2)*n(2)+n(3)*n(3))
73 b2 =(uw(1)*n(1)+uw(2)*n(2)+uw(3)*n(3))*fac
74 b1 =(wv(1)*n(1)+wv(2)*n(2)+wv(3)*n(3))*fac
75 b0 = one - b1 - b2
77
78
79
80 RETURN