31
32
33
34#include "implicit_f.inc"
35
36
37
38 INTEGER IROT, NMN, NRTM, NSN, IRECTM(4,*)
40 . rot(9), nod_normal(3,*), xm0(3,*), bracket(3),
41 . lxm, lym, lzm, xsav(3,*)
42 DOUBLE PRECISION XG(3)
43
44
45
46 INTEGER I, J, IX
47
49 . xi(3), nxi(3), lmax, dd,
50 . x0, y0, z0, x1, y1, z1, xxx, yyy, zzz
51
52
53
54 IF(irot==0)THEN
55
56 DO i=1,nmn
57 DO j=1,3
58 xm0(j,i)=xm0(j,i)-xg(j)
59 END DO
60 END DO
61 ELSE
62
63 lmax=zero
64 DO i=1,nmn
65 DO j=1,3
66 xi(j)=xm0(j,i)-xg(j)
67 END DO
68 xm0(1,i)= rot(1)*xi(1)+rot(2)*xi(2)+rot(3)*xi(3)
69 xm0(2,i)= rot(4)*xi(1)+rot(5)*xi(2)+rot(6)*xi(3)
70 xm0(3,i)= rot(7)*xi(1)+rot(8)*xi(2)+rot(9)*xi(3)
71 dd=xm0(1,i)**2+xm0(2,i)**2+xm0(3,i)**2
72 IF(dd > lmax)THEN
73 lmax=dd
74 bracket(1)=xm0(1,i)
75 bracket(2)=xm0(2,i)
76 bracket(3)=xm0(3,i)
77 END IF
78 xsav(1,nsn+2)=
79 . rot(1)*bracket(1)+rot(4)*bracket(2)+rot(7)*bracket(3)
80 xsav(2,nsn+2)=
81 . rot(2)*bracket(1)+rot(5)*bracket(2)+rot(8)*bracket(3)
82 xsav(3,nsn+2)=
83 . rot(3)*bracket(1)+rot(6)*bracket(2)+rot(9)*bracket(3)
84 DO j=1,3
85 nxi(j)=nod_normal(j,i)
86 END DO
87 nod_normal(1,i)= rot(1)*nxi(1)+rot(2)*nxi(2)+rot(3)*nxi(3)
88 nod_normal(2,i)= rot(4)*nxi(1)+rot(5)*nxi(2)+rot(6)*nxi(3)
89 nod_normal(3,i)= rot(7)*nxi(1)+rot(8)*nxi(2)+rot(9)*nxi(3)
90 END DO
91
92 lxm=zero
93 lym=zero
94 lzm=zero
95 DO i=1,nrtm
96 x0=ep30
97 x1=-ep30
98 y0=ep30
99 y1=-ep30
100 z0=ep30
101 z1=-ep30
102 DO j=1,4
103 ix=irectm(j,i)
104 xxx=xm0(1,ix)
105 yyy=xm0(2,ix)
106 zzz=xm0(3,ix)
113 END DO
117 ENDDO
118
119 END IF
120 RETURN