37
38
39
40#include "implicit_f.inc"
41
42
43
44#include "mvsiz_p.inc"
45
46
47
48 INTEGER, INTENT(INOUT) :: LFT
49 INTEGER, INTENT(INOUT) :: LLT
50 INTEGER, INTENT(INOUT) :: NFT
51 INTEGER IRECT(4,*), MSR(*), IRTL(*),ILEV
53 . xs(3,*),xm(3,*),x(3,*),tets(*)
54 INTEGER, DIMENSION(MVSIZ), INTENT(OUT) :: IX1,IX2,IX3,IX4
55 my_real,
DIMENSION(MVSIZ),
INTENT(OUT) :: x1,x2,x3,x4,xi
56 my_real,
DIMENSION(MVSIZ),
INTENT(OUT) :: y1,y2,y3,y4,yi
57 my_real,
DIMENSION(MVSIZ),
INTENT(OUT) :: z1,z2,z3,z4,zi
58 my_real,
DIMENSION(MVSIZ),
INTENT(OUT) :: xface
59
60
61
62
63
64
65 INTEGER I, IL, IG, L, NN
67 . deupi,tetmin,tetmax,rmin
68
69
70 deupi=two*pi
71
72 DO i=lft,llt
73 xface(i)=one
74 il=i+nft
75 l=irtl(il)
76
77 xi(i)=xs(1,il)
78 yi(i)=xs(2,il)
79 zi(i)=xs(3,il)
80
81 nn=irect(1,l)
82 ix1(i)=msr(nn)
83 x1(i)=xm(1,nn)
84 y1(i)=xm(2,nn)
85 z1(i)=xm(3,nn)
86
87 nn=irect(2,l)
88 ix2(i)=msr(nn)
89 x2(i)=xm(1,nn)
90 y2(i)=xm(2,nn)
91 z2(i)=xm(3,nn)
92
93 nn=irect(3,l)
94 ix3(i)=msr(nn)
95 x3(i)=xm(1,nn)
96 y3(i)=xm(2,nn)
97 z3(i)=xm(3,nn)
98
99 nn=irect(4,l)
100 ix4(i)=msr(nn)
101 x4(i)=xm(1,nn)
102 y4(i)=xm(2,nn)
103 z4(i)=xm(3,nn)
104 ENDDO
105
106 IF(ilev==1)THEN
107
108
109
110 DO i=lft,llt
111 tetmin=
min(z1(i),z2(i),z3(i),z4(i),zi(i))
112 tetmax=
max(z1(i),z2(i),z3(i),z4(i),zi(i))
113 IF(tetmax-tetmin >= pi)THEN
114 IF(z1(i)<zero)z1(i)=z1(i)+deupi
115 IF(z2(i)<zero)z2(i)=z2(i)+deupi
116 IF(z3(i)<zero)z3(i)=z3(i)+deupi
117 IF(z4(i)<zero)z4(i)=z4(i)+deupi
118 IF(zi(i)<zero)zi(i)=zi(i)+deupi
119 ENDIF
120 ENDDO
121
122
123 ! cas d'UNE FACETTE CENTRALE !
124 !--------------------------------------------------!
125 DO I=LFT,LLT
126 RMIN=MIN(Y1(I),Y2(I),Y3(I),Y4(I))
127 IF(YI(I)<RMIN)THEN
128 TETMIN=MIN(Z1(I),Z2(I),Z3(I),Z4(I))
129 TETMAX=MAX(Z1(I),Z2(I),Z3(I),Z4(I))
130 IF(TETMAX-TETMIN >= PI)THEN
131 IL=I+NFT
132 L=IRTL(IL)
133 NN=MSR(IRECT(1,L))
134 IX1(I)=NN
135 X1(I)=X(1,NN)
136 Y1(I)=X(2,NN)
137 Z1(I)=X(3,NN)
138
139 NN=MSR(IRECT(2,L))
140 IX2(I)=NN
141 X2(I)=X(1,NN)
142 Y2(I)=X(2,NN)
143 Z2(I)=X(3,NN)
144
145 NN=MSR(IRECT(3,L))
146 IX3(I)=NN
147 X3(I)=X(1,NN)
148 Y3(I)=X(2,NN)
149 Z3(I)=X(3,NN)
150
151 NN=MSR(IRECT(4,L))
152 IX4(I)=NN
153 X4(I)=X(1,NN)
154 Y4(I)=X(2,NN)
155 Z4(I)=X(3,NN)
156 TETS(I)=10001.
157 ENDIF
158 ENDIF
159 ENDDO !I=LFT,LLT
160 ENDIF !(ILEV==1)
161
162 RETURN