doubl4
C DOUBL4 SOURCE MAUGIS 05/09/01 21:15:02 5152 C---------------------------------------------------- C C Esclave de DOUBL3 : detection des occurences multiples d'elements C C Variables : C LECT : liste des sommes des numéros de noeuds pour chaque élément C classée par ordre croissant C LECT1 : liste (non croissante) des indices classant LECT par ordre croissant C LECT2 : liste des indices dans l'ordre original (croissant de 1 à N) C C Fortran pur C C---------------------------------------------------- C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C DIMENSION NUM(NBNN,NBELEM) DIMENSION LECT(NBELEM),LECT1(NBELEM),LECT2(NBELEM) LOGICAL GENTST C C On parcourt LECT et on compare chaque valeur à celle de l'indice précédent IFI=LECT(1) DO IE1=2,NBELEM IFF=LECT(IE1) IF(IFI.EQ.IFF)THEN C deux sommes identiques JE1=LECT1(IE1-1) IF(LECT2(JE1).EQ.JE1)THEN C dans le cas contraire, cet indice a déjà été traité C et fait l'objet d'une interversion dans LECT2 DO IE2=IE1,NBELEM C on parcourt toutes les valeurs semblables IFFF=LECT(IE2) IF(IFI.NE.IFFF)GOTO 1 JE2=LECT1(IE2) IF(LECT2(JE2).EQ.JE2)THEN C dans le cas contraire, cet indice a déjà été traité C et fait l'objet d'une interversion dans LECT2 C les deux éléments sont semblables. C On intervertit leurs indices dans LECT2 C PM LECT2(JE1)=JE2 C PM LECT2(JE2)=JE1 JSAV=LECT2(JE1) LECT2(JE1)=LECT2(JE2) LECT2(JE2)=JSAV ENDIF ENDIF ENDDO ENDIF ENDIF 1 IFI=IFF ENDDO C RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales