29
30
31
32#include "implicit_f.inc"
33
34
35
36#include "com08_c.inc"
37#include "param_c.inc"
38
39
40
41 my_real a(3),a0(3,2),a1(3,2),a2(3,2),as(3),vs(3),skew(lskew),ff
42
43
44
45 INTEGER J
46 my_real pi1,pi8,pi38,spi8,spi38,c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,x1,x2,x3,y1,y2,y3,z1,z2,z3,d,dd,d2,dp,e,g,f
47
48 as(1) = a(1)*skew(1) + a(2)*skew(2) + a(3)*skew(3)
49 as(2) = a(1)*skew(4) + a(2)*skew(5) + a(3)*skew(6)
50 as(3) = a(1)*skew(7) + a(2)*skew(8) + a(3)*skew(9)
51 vs(1) = vs(1)+as(1)*dt12
52 vs(2) = vs(2)+as(2)*dt12
53 vs(3) = vs(3)+as(3)*dt12
54 IF(ff==zero)RETURN
55
57
58
59
60 pi1 = two*atan2(one,zero)
61 pi8 = pi1*one_over_8
62 pi38 = three*pi8
63 spi8 = sin(pi8)
64 spi38 = sin(pi38)
65
66 d = tan(pi1*f*dt2)
67
68 dd = d*d
69 d2 = two*d
70 dp = one + dd
71 e = d2*spi8
72 g = e + dp
73 g = one/g
74
75 c0 = dd * g
76 c1 = two* c0
77 c2 = c0
78 c3 = two * g - c1
79 c4 = (e - dp) * g
80
81 e = d2*spi38
82 g = e + dp
83 g = one/g
84
85 c5 = dd * g
86 c6 = two * c5
87 c7 = c5
88 c8 = two * g - c6
89 c9 = (e - dp) * g
90
91
92
93 DO j=1,3
94 x1 = a0(j,2)
95 x2 = a0(j,1)
96 x3 = a(j)
97 y1 = a1(j,2)
98 y2 = a1(j,1)
99 y3 = c0 * x3 + c1 * x2 + c2 * x1 + c3 * y2 + c4 * y1
100 z1 = a2(j,2)
101 z2 = a2(j,1)
102 z3 = c5 * y3 + c6 * y2 + c7 * y1 + c8 * z2 + c9 * z1
103
104 a0(j,2) = x2
105 a0(j,1) = x3
106 a1(j,2) = y2
107 a1(j,1) = y3
108 a2(j,2) = z2
109 a2(j,1) = z3
110 ENDDO
111
112 as(1) = a2(1,1)*skew(1) + a2(2,1)*skew(2) + a2(3,1)*skew(3)
113 as(2) = a2(1,1)*skew(4) + a2(2,1)*skew(5) + a2(3,1)*skew(6)
114 as(3) = a2(1,1)*skew(7) + a2(2,1)*skew(8) + a2(3,1)*skew(9)
115
116 RETURN