trifu2
C TRIFU2 SOURCE CHAT 05/01/13 03:46:59 5004 C**************************************************************************** C**************************************************************************** C*************TRIFUS....TRI par FUSion************************************** C**************************************************************************** C**************************************************************************** IMPLICIT INTEGER(I-N) SEGMENT IKA(0) SEGMENT IKB(3*NODES) INTEGER IAX,IAX2 C EN ENTREE : IKA TABLEAU A TRIER C EN SORTIE :IKA TABLEAU TRIE EN ORDRE CROISSANT N=NODES SEGINI IKB IF(N.EQ.1) GOTO 999 C C ON FAIT UNE PREMIERE BOUCLE POUR LES ORDONNES 2 A 2 .CECI PERMET C DE SAUVER 3*N/2 TESTS. C NC=N/2 DO 4 I=1,NC J=2*I-1 J1=J+1 IF(IKA(J+NODES).LT.IKA(J1+NODES)) GO TO 4 IF(IKA(J+NODES).EQ.IKA(J1+NODES).AND. > IKA(J+2*NODES).LE.IKA(J1+2*NODES)) GO TO 4 IAX=IKA(J1) IAX2=IKA(J1+NODES) IAX3=IKA(J1+2*NODES) IKA(J1)=IKA(J) IKA(J1+NODES)=IKA(J+NODES) IKA(J1+2*NODES)=IKA(J+2*NODES) IKA(J)=IAX IKA(J+NODES)=IAX2 IKA(J+2*NODES)=IAX3 4 CONTINUE IF(N.EQ.2) GOTO 999 C C ON CONTINUE A LES ORDONNNES NI PAR NI C IF(NE.GT.ND) NC=NC+1 NF2=0 INC=0 DO 2 I=1,N IKB(I)=IKA(I) IKB(I+NODES)=IKA(I+NODES) IKB(I+2*NODES)=IKA(I+2*NODES) 2 CONTINUE C C BOUCLE SUR LES NC COUPLES DE ND VALEURS C DO 30 JJ=1,NC N1=NF2+1 N2=N1+ND NF1=NF2+ND NF2=NF1+ND NF2=MIN(NF2,N) 13 INC=INC+1 IF(IKB(N1+NODES).GT.IKB(N2+NODES)) GO TO 14 IF(IKB(N1+NODES).EQ.IKB(N2+NODES).AND. > IKB(N1+2*NODES).GE.IKB(N2+2*NODES)) GO TO 14 IKA(INC)=IKB(N1) IKA(INC+NODES)=IKB(N1+NODES) IKA(INC+2*NODES)=IKB(N1+2*NODES) IF(N1.GE.NF1) GO TO 17 N1=N1+1 GO TO 13 14 IKA(INC)=IKB(N2) IKA(INC+NODES)=IKB(N2+NODES) IKA(INC+2*NODES)=IKB(N2+2*NODES) IF(N2.GE.NF2) GO TO 18 N2=N2+1 GO TO 13 17 DO 20 I=N2,NF2 IKA(I)=IKB(I) IKA(I+NODES)=IKB(I+NODES) IKA(I+2*NODES)=IKB(I+2*NODES) 20 CONTINUE INC=NF2 GO TO 30 18 DO 21 I=N1,NF1 INC=INC+1 IKA(INC)=IKB(I) IKA(INC+NODES)=IKB(I+NODES) IKA(INC+2*NODES)=IKB(I+2*NODES) 21 CONTINUE 30 CONTINUE GO TO 1 999 SEGSUP IKB RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales