40
41
42
43#include "implicit_f.inc"
44
45
46
47#include "comlock.inc"
48
49
50
51 INTEGER IFRAM, N1
53 . xx4, yy4, zz4, xx5, yy5, zz5, xx6, yy6, zz6,
54 . xxn, yyn, zzn, xsec(4,3)
55
56
57
58 my_real xx1, yy1, zz1, xx2, yy2, zz2, xx3, yy3, zz3,
59 . al4, al6, al5, d13, mas, x1n, y1n, z1n
60
61
62 IF(ifram<10)THEN
63
64 xx1=xsec(1,1)
65 yy1=xsec(1,2)
66 zz1=xsec(1,3)
67 xx2=xsec(2,1)
68 yy2=xsec(2,2)
69 zz2=xsec(2,3)
70 xx3=xsec(3,1)
71 yy3=xsec(3,2)
72 zz3=xsec(3,3)
73 xx4=xx2-xx1
74 yy4=yy2-yy1
75 zz4=zz2-zz1
76 al4=sqrt(xx4**2+yy4**2+zz4**2)
80 xx5=xx3-xx1
81 yy5=yy3-yy1
82 zz5=zz3-zz1
83 xx6=yy4*zz5-zz4*yy5
84 yy6=zz4*xx5-xx4*zz5
85 zz6=xx4*yy5-yy4*xx5
86 al6=sqrt(xx6**2+yy6**2+zz6**2)
90 xx5=yy6*zz4-zz6*yy4
91 yy5=zz6*xx4-xx6*zz4
92 zz5=xx6*yy4-yy6*xx4
93 al5=sqrt(xx5**2+yy5**2+zz5**2)
97
98 xxn=xx6
99 yyn=yy6
100 zzn=zz6
101
102 ELSEIF (n1/=0) THEN
103
104 xx4=xsec(2,1)-xsec(1,1)
105 yy4=xsec(2,2)-xsec(1,2)
106 zz4=xsec(2,3)-xsec(1,3)
107 xx5=xsec(3,1)-xsec(1,1)
108 yy5=xsec(3,2)-xsec(1,2)
109 zz5=xsec(3,3)-xsec(1,3)
110 xxn=yy4*zz5-zz4*yy5
111 yyn=zz4*xx5-xx4*zz5
112 zzn=xx4*yy5-yy4*xx5
113 al6=sqrt(xxn**2+yyn**2+zzn**2)
114 xxn=xxn/
max(al6,em20)
115 yyn=yyn/
max(al6,em20)
116 zzn=zzn/
max(al6,em20)
117
118 xx4=one
119 yy4=zero
120 zz4=zero
121 xx5=zero
122 yy5=one
123 zz5=zero
124 xx6=zero
125 yy6=zero
126 zz6=one
127 ELSE
128 xxn=zero
129 yyn=zero
130 zzn=one
131 xx4=one
132 yy4=zero
133 zz4=zero
134 xx5=zero
135 yy5=one
136 zz5=zero
137 xx6=zero
138 yy6=zero
139 zz6=one
140
141 ENDIF
142
143
144
145 IF(ifram==0)THEN
146 d13=(xx3-xx1)*xx4+(yy3-yy1)*yy4+(zz3-zz1)*zz4
147 xxc=xx1+d13*xx4
148 yyc=yy1+d13*yy4
149 zzc=zz1+d13*zz4
150 ELSEIF(ifram==10)THEN
151 x1n=xsec(2,1)-xsec(1,1)
152 y1n=xsec(2,2)-xsec(1,2)
153 z1n=xsec(2,3)-xsec(1,3)
154 al4=sqrt(x1n**2+y1n**2+z1n**2)
155 x1n=x1n/
max(al4,em20)
156 y1n=y1n/
max(al4,em20)
157 z1n=z1n/
max(al4,em20)
158 d13=(xsec(3,1)-xsec(1,1))*x1n
159 . +(xsec(3,2)-xsec(1,2))*y1n
160 . +(xsec(3,3)-xsec(1,3))*z1n
161 xxc=xsec(1,1)+d13*x1n
162 yyc=xsec(1,2)+d13*y1n
163 zzc=xsec(1,3)+d13*z1n
164 ELSEIF(mod(ifram,10)==1)THEN
165 xxc=0.
166 yyc=0.
167 zzc=0.
168
169
170
171
172
173
174
175 xxc=xsec(4,1)
176 yyc=xsec(4,2)
177 zzc=xsec(4,3)
178 ELSEIF(mod(ifram,10)==2)THEN
179 xxc=0.
180 yyc=0.
181 zzc=0.
182 mas=1.e-30
183
184
185
186
187
188
189
190
191 xxc=xsec(4,1)
192 yyc=xsec(4,2)
193 zzc=xsec(4,3)
194 ELSEIF(mod(ifram,10)==3)THEN
195 xxc=0.
196 yyc=0.
197 zzc=0.
198 ENDIF
199
200 RETURN