32
33
34
35#include "implicit_f.inc"
36
37
38
39
40
41
42 INTEGER, INTENT(IN) :: ISMSTR
43 INTEGER, INTENT(IN) :: JLAG
44 INTEGER NEL
46 . offg(*),off(*),wxx(*),wyy(*),wzz(*)
47 double precision
48 . sav(nel,9)
49
50
51
52 INTEGER I
53
54 double precision
55 . x , y, z ,dv
56
57
58
59
60 IF(ismstr==11)THEN
61 DO i=1,nel
62
63 IF(offg(i)==zero) cycle
64 x=sav(i,1)
65 y=sav(i,4)
66 z=sav(i,7)
67 sav(i,1) = x - y*wzz(i) + z*wyy(i)
68 sav(i,4) = y - z*wxx(i) + x*wzz(i)
69 sav(i,7) = z - x*wyy(i) + y*wxx(i)
70
71 x=sav(i,2)
72 y=sav(i,5)
73 z=sav(i,8)
74 sav(i,2) = x - y*wzz(i) + z*wyy(i)
75 sav(i,5) = y - z*wxx(i) + x*wzz(i)
76 sav(i,8) = z - x*wyy(i) + y*wxx(i)
77
78 x=sav(i,3)
79 y=sav(i,6)
80 z=sav(i,9)
81 sav(i,3) = x - y*wzz(i) + z*wyy(i)
82 sav(i,6) = y - z*wxx(i) + x*wzz(i)
83 sav(i,9) = z - x*wyy(i) + y*wxx(i)
84
85 ENDDO
86 ELSEIF(ismstr<=4.AND.jlag>0)THEN
87 DO i=1,nel
88 IF(offg(i)>one)THEN
89
90 x=sav(i,1)
91 y=sav(i,2)
92 z=sav(i,3)
93 sav(i,1) = x - y*wzz(i) + z*wyy(i)
94 sav(i,2) = y - z*wxx(i) + x*wzz(i)
95 sav(i,3) = z - x*wyy(i) + y*wxx(i)
96
97 x=sav(i,4)
98 y=sav(i,5)
99 z=sav(i,6)
100 sav(i,4) = x - y*wzz(i) + z*wyy(i)
101 sav(i,5) = y - z*wxx(i) + x*wzz(i)
102 sav(i,6) = z - x*wyy(i) + y*wxx(i)
103
104 x=sav(i,7)
105 y=sav(i,8)
106 z=sav(i,9)
107 sav(i,7) = x - y*wzz(i) + z*wyy(i)
108 sav(i,8) = y - z*wxx(i) + x*wzz(i)
109 sav(i,9) = z - x*wyy(i) + y*wxx(i)
110
111 ENDIF
112 ENDDO
113 ENDIF
114
115 RETURN