32
33
34
35#include "implicit_f.inc"
36
37
38
39#include "mvsiz_p.inc"
40
41
42
43 INTEGER, INTENT(INOUT) :: LFT
44 INTEGER, INTENT(INOUT) :: LLT
45 INTEGER, INTENT(INOUT) :: ISORTH
46 INTEGER NEL
47
49 . reploc(nel,6),wxx(*), wyy(*), wzz(*), gama(mvsiz,6)
50
51
52
53
54
55
56 INTEGER I, J
57
59 . rx(mvsiz),ry(mvsiz),rz(mvsiz),cr(mvsiz),sr(mvsiz),
60 . nr,ps,ux,uy,uz,vx,vy,vz,wx,wy,wz,tx,ty,tz
61
62 IF (isorth == 0) THEN
63 DO i=lft,llt
64 gama(i,1)=one
65 gama(i,2)=zero
66 gama(i,3)=zero
67 gama(i,4)=zero
68 gama(i,5)=one
69 gama(i,6)=zero
70 ENDDO
71 ELSE
72
73 DO i=lft,llt
74 nr=sqrt(wxx(i)*wxx(i)+wyy(i)*wyy(i)+wzz(i)*wzz(i))
75 cr(i)=one-half*nr*nr
76 sr(i)=nr
78 rx(i)=wxx(i)*nr
79 ry(i)=wyy(i)*nr
80 rz(i)=wzz(i)*nr
81 ENDDO
82
83 DO i=lft,llt
84 ux=reploc(i,1)
85 uy=reploc(i,2)
86 uz=reploc(i,3)
87 ps=ux*rx(i)+uy*ry(i)+uz*rz(i)
88 vx=ps*rx(i)
89 vy=ps*ry(i)
90 vz=ps*rz(i)
91 wx=ux-vx
92 wy=uy-vy
93 wz=uz-vz
94 tx=ry(i)*wz-rz(i)*wy
95 ty=rz(i)*wx-rx(i)*wz
96 tz=rx(i)*wy-ry(i)*wx
97 ux=vx+cr(i)*wx+sr(i)*tx
98 uy=vy+cr(i)*wy+sr(i)*ty
99 uz=vz+cr(i)*wz+sr(i)*tz
100 nr=one/
max(em20,sqrt(ux*ux+uy*uy+uz*uz))
101 reploc(i,1)=ux*nr
102 reploc(i,2)=uy*nr
103 reploc(i,3)=uz*nr
104 ENDDO
105
106 DO i=lft,llt
107 ux=reploc(i,4)
108 uy=reploc(i,5)
109 uz=reploc(i,6)
110 ps=ux*rx(i)+uy*ry(i)+uz*rz(i)
111 vx=ps*rx(i)
112 vy=ps*ry(i)
113 vz=ps*rz(i)
114 wx=ux-vx
115 wy=uy-vy
116 wz=uz-vz
117 tx=ry(i)*wz-rz(i)*wy
118 ty=rz(i)*wx-rx(i)*wz
119 tz=rx(i)*wy-ry(i)*wx
120 ux=vx+cr(i)*wx+sr(i)*tx
121 uy=vy+cr(i)*wy+sr(i)*ty
122 uz=vz+cr(i)*wz+sr(i)*tz
123 nr=one/
max(em20,sqrt(ux*ux+uy*uy+uz*uz))
124 reploc(i,4)=ux*nr
125 reploc(i,5)=uy*nr
126 reploc(i,6)=uz*nr
127 ENDDO
128
129 DO i=lft,llt
130 gama(i,1)=reploc(i,1)
131 gama(i,2)=reploc(i,2)
132 gama(i,3)=reploc(i,3)
133 gama(i,4)=reploc(i,4)
134 gama(i,5)=reploc(i,5)
135 gama(i,6)=reploc(i,6)
136 ENDDO
137
138 ENDIF
139
140 RETURN