77 . NIGETMP, NIGE, RIGETMP, RIGE,
78 . XIGETMP, XIGE, VIGETMP, VIGE,
87#include "implicit_f.inc"
95 INTEGER IADTABIGEINI,NDOUBLONSTOT,PERM(*), NIGETMP(*),NIGE(*)
100 . rigetmp(3,*), xigetmp(3,*), vigetmp(3,*),
101 . rige(3,*) , xige(3,*) , vige(3,*)
102 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
106 INTEGER NVALEURS, PERMUTE(IADTABIGEINI),NDOUBLONS,NBTABIGE
107 INTEGER I,J,K,ITSURF,DECALSURF,IADTABIGE
120 IF(igrsurf(itsurf)%NSEG_IGE>0)
THEN
122 igrsurf(itsurf)%IAD_IGE = i-1
123 decalsurf=i+ndoublonstot-1
124 nbtabige=16*igrsurf(itsurf)%NSEG_IGE/9
125 iadtabige = iadtabige + nbtabige
128 DO WHILE(i+ndoublonstot+ndoublons<=iadtabige)
130 nige(i) = nigetmp(perm(i+ndoublonstot+ndoublons)+decalsurf)
131 rige(:,i) = rigetmp(:,perm(i+ndoublonstot+ndoublons)+decalsurf)
132 xige(:,i) = xigetmp(:,i+ndoublonstot+ndoublons)
133 vige(:,i) = vigetmp(:,perm(i+ndoublonstot+ndoublons)+decalsurf)
135 DO WHILE (((i+ndoublonstot+ndoublons+nvaleurs+1)<=decalsurf+nbtabige)
136 . .AND. (abs(xigetmp(1,i+ndoublonstot
137 . xigetmp(1,i+ndoublonstot+ndoublons+nvaleurs+1)) <= tol)
138 . .AND. (abs(xigetmp(2,i+ndoublonstot+ndoublons)-
139 . xigetmp(2,i+ndoublonstot+ndoublons+nvaleurs+1)) <= tol)
140 . .AND. (abs(xigetmp(3,i+ndoublonstot+ndoublons)-
141 . xigetmp(3,i+ndoublonstot+ndoublons+nvaleurs
142 nvaleurs = nvaleurs + 1
143 permute(perm(i+ndoublonstot+ndoublons+nvaleurs)+decalsurf) = i - igrsurf(itsurf)%IAD_IGE
145 ndoublons=ndoublons+nvaleurs
148 ndoublonstot=ndoublonstot+ndoublons
150 DO j=1,igrsurf(itsurf)%NSEG_IGE
152 igrsurf(itsurf)%NODES_IGE(j,k)=permute(igrsurf(itsurf)%NODES_IGE(j,k)-numnod)+numnod
159 numfakenodigeo=numfakenodigeo-ndoublonstot
169 . NIGETMP, NIGE, RIGETMP, RIGE,
170 . XIGETMP, XIGE, VIGETMP, VIGE,
179#include "implicit_f.inc"
183#include "com04_c.inc"
187 INTEGER IADTABIGEINI,NDOUBLONSTOT,PERM(*), NIGETMP(*),NIGE(*)
192 . RIGETMP(3,*), XIGETMP(3,*), VIGETMP(3,*),
193 . rige(3,*) , xige(3,*) , vige(3,*)
194 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
198 INTEGER NVALEURS, PERMUTE(IADTABIGEINI),NDOUBLONS,NBTABIGE
199 INTEGER I,J,ITSURF,DECALSURF,IADTABIGE
211 decalsurf=i+ndoublonstot-1
213 IF(igrsurf(itsurf)%NSEG_IGE>0)
THEN
214 nbtabige=16*igrsurf(itsurf)%NSEG_IGE/9
217 DO WHILE(i+ndoublonstot+ndoublons<=decalsurf
219 nige(i) = nigetmp(perm(i+ndoublonstot+ndoublons)+decalsurf)
220 rige(:,i) = rigetmp(:,perm(i+ndoublonstot+ndoublons)+decalsurf)
221 xige(:,i) = xigetmp(:,i+ndoublonstot+ndoublons)
222 vige(:,i) = vigetmp(:,perm(i+ndoublonstot+ndoublons)+decalsurf)
223 permute(perm(i+ndoublonstot+ndoublons)+decalsurf) = i
224 DO WHILE (((i+ndoublonstot+ndoublons+nvaleurs+1)<=decalsurf+nbtabige)
225 . .AND. (abs(xigetmp(1,i+ndoublonstot+ndoublons)-
226 . xigetmp(1,i+ndoublonstot+ndoublons+nvaleurs+1)) <= tol)
227 . .AND. (abs(xigetmp(2,i+ndoublonstot+ndoublons)-
228 . xigetmp(2,i+ndoublonstot+ndoublons+nvaleurs+1)) <= tol)
229 . .AND. (abs(xigetmp(3,i+ndoublonstot+ndoublons)-
230 . xigetmp(3,i+ndoublonstot+ndoublons+nvaleurs+1)) <= tol))
231 nvaleurs = nvaleurs + 1
232 permute(perm(i+ndoublonstot+ndoublons+nvaleurs)+decalsurf) = i
234 ndoublons=ndoublons+nvaleurs
237 ndoublonstot=ndoublonstot+ndoublons
244 IF(igrsurf(itsurf)%NSEG_IGE>0)
THEN
245 DO i=1,igrsurf(itsurf)%NSEG_IGE
247 igrsurf(itsurf)%NODES_IGE(i,j)=permute(igrsurf(itsurf)%NODES_IGE(i,j)-numnod)+numnod
250 nbtabige=16*igrsurf(itsurf)%NSEG_IGE/9
251 iadtabige = iadtabige + nbtabige
256 numfakenodigeo=numfakenodigeo-ndoublonstot
266c SUBROUTINE SEARCHIGEO3D(IGRSURF,N, NSEGIGE ,PERM,
267 . NIGETMP, NIGE, RIGETMP, RIGE,
268 . XIGETMP, XIGE, VIGETMP, VIGE,
278#include "implicit_f.inc"
282#include "com04_c.inc"
286 INTEGER N,,PERM(*), NIGETMP(*),NIGE(*)
291 . RIGETMP(3,*), XIGETMP(3,*), VIGETMP(3,*),
292 . RIGE(3,*) , XIGE(3,*) , VIGE(3,*)
293 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
297 INTEGER :: NVALEURS, PERMUTE(N-1),NDOUBLONS,NBTABIGE,
298 INTEGER :: I,J,ITSURF,DECALSURF,DECAL
311 decalsurf=decalsurf+i-1
312 decal = decal+nbtabige
317 IF(igrsurf(itsurf)%NSEG_IGE>0)
THEN
318 nbtabige=16*igrsurf(itsurf)%NSEG_IGE/9
325 DO WHILE(i+ndoublons<=nbtabige)
328 nige(i+decalsurf) = nigetmp(perm(i+ndoublons+decal))
329 rige(:,i+decalsurf) = rigetmp(:,perm(i+ndoublons+decal
330 xige(:,i+decalsurf) = xigetmp(:,i+decalsurf+ndoublons)
331 vige(:,i+decalsurf) = vigetmp(:,perm(i+ndoublons+decal))
332 permute(perm(i+ndoublons+decal)) = i+decalsurf
334 DO WHILE (((i+ndoublons+nvaleurs+1)<=nbtabige)
336 . .AND. (abs(xigetmp(1,i+decalsurf+ndoublons)-
337 . xigetmp(1,i+decalsurf+ndoublons+nvaleurs+1)) <= tol
338 . .AND. (abs(xigetmp(2,i+decalsurf+ndoublons)-
339 . xigetmp(2,i+decalsurf+ndoublons+nvaleurs+1)) <= tol)
340 . .AND. (abs(xigetmp(3,i+decalsurf+ndoublons)-
341 . xigetmp(3,i+decalsurf+ndoublons+nvaleurs+1)) <= tol
342 nvaleurs = nvaleurs + 1
343 permute(perm(i+ndoublons+nvaleurs+decal)) = i+decalsurf
346 ndoublons=ndoublons+nvaleurs
349 ndoublonstot=ndoublonstot+ndoublons
355 IF(igrsurf(itsurf)%NSEG_IGE>0)
THEN
356 DO i=1,igrsurf(itsurf)%NSEG_IGE
358 igrsurf(itsurf)%NODES_IGE(i,j)=permute(igrsurf(itsurf)%NODES_IGE(i,j)-numnod
365 numfakenodigeo=numfakenodigeo-ndoublonstot
378 . NIGETMP, NIGE, RIGETMP, RIGE,
379 . XIGETMP, XIGE, VIGETMP, VIGE,
388#include "implicit_f.inc"
392#include "com04_c.inc"
396 INTEGER NDOUBLONS,PERM(*), NIGETMP(*),NIGE(*),
400 . rigetmp(3,*), xigetmp(3,*), vigetmp(3,*),
401 . rige(3,*) , xige(3,*) , vige(3,*)
402 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
406 INTEGER NVALEURS, PERMUTE(IADTABIGE)
418 DO WHILE(i+ndoublons<=iadtabige)
420 nige(i) = nigetmp(perm(i+ndoublons))
421 rige(:,i) = rigetmp(:,perm(i+ndoublons))
422 xige(:,i) = xigetmp(:,i+ndoublons)
423 vige(:,i) = vigetmp(:,perm(i+ndoublons))
424 permute(perm(i+ndoublons)) = i
425 DO WHILE (((i+ndoublons+nvaleurs+1)<=iadtabige))
426 IF(abs(xigetmp(3,i+ndoublons)-xigetmp(3,i+ndoublons+nvaleurs+1)) > tol)
EXIT
427 IF(abs(xigetmp(2,i+ndoublons)-xigetmp(2,i+ndoublons+nvaleurs+1)) > tol)
EXIT
428 IF(abs(xigetmp(1,i+ndoublons)-xigetmp(1,i+ndoublons+nvaleurs+1)) > tol)
EXIT
435 nvaleurs = nvaleurs + 1
436 permute(perm(i+ndoublons+nvaleurs)) = i
438 ndoublons=ndoublons+nvaleurs
443 IF(igrsurf(itsurf)%NSEG_IGE>0)
THEN
444 DO i=1,igrsurf(itsurf)%NSEG_IGE
446 igrsurf(itsurf)%NODES_IGE(i,j)=permute(igrsurf(itsurf)%NODES_IGE(i,j)-numnod)+numnod
452 numfakenodigeo=iadtabige-ndoublons
453 iadtabige=numfakenodigeo
469#include "implicit_f.inc"
479 my_real,
DIMENSION(:,:),
ALLOCATABLE:: x_copy
480 my_real,
DIMENSION(:),
ALLOCATABLE :: rkey
485 ALLOCATE(X_copy(3,n))
489 x_copy(1:3,1:n) = x(1:3,1:n)
492 maxi =
max(abs(x(1,i)),maxi)
493 maxi =
max(abs(x(2,i)),maxi)
494 maxi =
max(abs(x(3,i)),maxi)
497 rkey(i) = (x(1,i)+maxi) * maxi *
499 CALL myqsort(3*n,rkey,perm,error)
501 x(1,i) = x_copy(1,perm(i))
502 x(2,i) = x_copy(2,perm(i))
503 x(3,i) = x_copy(3,perm(i))
subroutine searchigeo3d3(igrsurf, n, perm, nigetmp, nige, rigetmp, rige, xigetmp, xige, vigetmp, vige, ndoublonstot)
subroutine searchigeo3d(igrsurf, iadtabigeini, perm, nigetmp, nige, rigetmp, rige, xigetmp, xige, vigetmp, vige, ndoublonstot)
subroutine searchigeo3d2(igrsurf, iadtabige, perm, nigetmp, nige, rigetmp, rige, xigetmp, xige, vigetmp, vige, ndoublons)
subroutine searchigeo3dold(igrsurf, iadtabigeini, perm, nigetmp, nige, rigetmp, rige, xigetmp, xige, vigetmp, vige, ndoublonstot)