28 SUBROUTINE iqel03(X,IRECT,LMSR,MSR,NSV,ILOC,IRTL,NSN,NSEG,CRST,NOR)
32#include "implicit_f.inc"
36 INTEGER,
INTENT(IN) :: NSN
37 INTEGER,
INTENT(IN) :: IRECT(4,*), LMSR(*), MSR(*), NSV(*), ILOC(*), IRTL(*),NSEG(*)
38 my_real,
INTENT(IN) :: x(3,numnod), crst(2,*)
39 my_real,
INTENT(INOUT) :: nor(3,*)
43#include "scr08_a_c.inc"
48 INTEGER II, I, J, K, L, JJ, NN, LK, NUM, NPT, K1, K2, K3, NODE1,NODE2, KK
49 my_real n1, n2, n3, xx112, xx212, xx312, xx114, xx214, xx314, xx123,
50 . xx223, xx323, xx134, xx234, xx334, ss, tt, tp, tm, fs1, fs2,
51 . fs3, sp, sm, ft1, ft2, ft3, sck, tck, aj4, aj5, aj6, aj7, aj8
52 . aj9, v1, v2, v3, xmg, xm1, xm2,
92 IF(ix(3) == ix(4) .AND. tm == zero)
THEN
100 ft1=-sm*xx114-sp*xx123
101 ft2=-sm*xx214-sp*xx223
102 ft3=-sm*xx314-sp*xx323
112 num=nseg(j+1)-nseg(j)
113 IF(num <= 4 .AND. (abs(sck) <= fiveem2.OR.abs(tck) <= fiveem2) )
THEN
118 IF(abs(sck) > fiveem2 .OR. abs(tck) > fiveem2)
THEN
126 ELSEIF(k == ix(2))
THEN
130 ELSEIF(k == ix(3))
THEN
134 IF(ix(3) == ix(4)) k2=1
146 n1=n1+aj5*aj9-aj6*aj8
147 n2=n2+aj6*aj7-aj4*aj9
148 n3=n3+aj4*aj8-aj5*aj7
152 xmg=sqrt(aj4**2+aj5**2+aj6**2)
153 xm1=(v1*aj4+v2*aj5+v3*aj6)/xmg
154 xmg=sqrt(aj7**2+aj8**2+aj9**2)
155 xm2=(v1*aj7+v2*aj8+v3*aj9)/xmg
158 IF(xm2 > xm1) node2=ix(k3)
173 ELSEIF(k == ix(2))
THEN
177 ELSEIF(k == ix(3))
THEN
181 IF(ix(3) == ix(4)) k2=1
187 IF(node2 == ix(k2) .OR. node2 == ix(k3))
THEN
188 aj4 = xx1(k2)-xx1(k1)
189 aj5 = xx2(k2)-xx2(k1)
190 aj6 = xx3(k2)-xx3(k1)
191 aj7 = xx1(k3)-xx1(k1)
192 aj8 = xx2(k3)-xx2(k1)
193 aj9 = xx3(k3)-xx3(k1)
194 n1 = n1+aj5*aj9-aj6*aj8
195 n2 = n2+aj6*aj7-aj4*aj9
196 n3 = n3+aj4*aj8-aj5*aj7
217 ELSEIF(k == ix(2))
THEN
221 ELSEIF(k == ix(3))
THEN
225 IF(ix(3) == ix(4)) k2=1
237 n1=n1+aj5*aj9-aj6*aj8
238 n2=n2+aj6*aj7-aj4*aj9
239 n3=n3+aj4*aj8-aj5*aj7
243 xmg = sqrt(n1*n1+n2*n2+n3*n3)
subroutine iqel03(x, irect, lmsr, msr, nsv, iloc, irtl, nsn, nseg, crst, nor)