j3disj
C J3DISJ SOURCE CHAT 05/01/13 00:46:27 5004 C---------------------------------------------------- C C ON VERIFIE QU'IL N'Y A PAS DE POINTS DE MEME C POINTEUR DANS 2 BLOCKS DIFFERENTS C C ON VERIFIE QUE 2 POINTS DE POSITION IDENTIQUE ONT LA MEME C DENSITE C C TRANSFERT DES POINTS INITIAUX DANS J3LOAP C C PP 9/97 C Pierre Pegon/JRC Ispra C---------------------------------------------------- IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C -INC PPARAM -INC CCOPTIO -INC SMLENTI -INC SMLREEL C SEGMENT BLOCOM INTEGER POINT(JG) REAL*8 YCOOR(IDIM+1,JG) INTEGER MAILL(MM1) ENDSEGMENT C C ON CHARGE MLENTI AVEC LES NUMERO DES POINTS ET C ET MLENT1 AVEC LE NUMERO DES BLOCKS C JG=POINT(/1) SEGINI,MLENTI,MLENT1 DO IE1=1,JG LECT(IE1)=POINT(IE1) ENDDO IST1=1 DO IE1=1,MAILL(/1) IFI1=MAILL(IE1) DO IE2=IST1,IFI1 MLENT1.LECT(IE2)=IE1 ENDDO IST1=IFI1+1 ENDDO C C ON ORDONNE MLENTI EN FAISANT LES PERMUTATIONS UTILES SUR MLENT1 C C C ON VERIFIE QUE LES NUMEROS IDENTIQUES DES MLENTI SONT SUR LES C MEMES BLOCKS SUIVANT MLENT1 C IPO1=LECT(1) DO IE1=2,JG IPO2=LECT(IE1) IF (IPO1.EQ.IPO2)THEN IF(MLENT1.LECT(IE1-1).NE.MLENT1.LECT(IE1))THEN WRITE(IOIMP,*) > 'J3DISJ: 2 points sont communs a des blocks differents' IRET=IRET+1 GOTO 9999 ENDIF ENDIF IPO1=IPO2 ENDDO C 9999 SEGSUP,MLENTI,MLENT1 C C ON CHARGE DANS MLENTI LE RANG DES POINTS ET DANS MLREEL LA C DISTANCE A L'ORIGINE C IF(IRET.NE.0)RETURN SEGINI,MLENTI,MLREEL DO IE1=1,JG LECT(IE1)=IE1 XXXX=0.D0 DO IE2=1,IDIM XXXX=XXXX+YCOOR(IE2,IE1)**2 ENDDO ENDDO C C ON ORDONNE MLREEL EN FAISANT LES PERMUTATIONS UTILES SUR MLENTI C C C ON VERIFIE QUE LES POINTS IDENTIQUES EN POSITION ONT LA MEME DENSITE C DO IE1=2,JG JE1=LECT(IE1-1) IF(JE1.EQ.0)GOTO 1 IF(ABS(XFI-XFF).GE.XTOL)GOTO 1 DO IE2=IE1,JG IF(ABS(XFI-XXXX).GE.XTOL)GOTO 1 JE2=LECT(IE2) XXXX=0.D0 DO IE3=1,IDIM XXXX=XXXX+(YCOOR(IE3,JE2)-YCOOR(IE3,JE1))**2 ENDDO IF(SQRT(XXXX).LT.XTOL)THEN XXXX=ABS(YCOOR(IDIM+1,JE2)-YCOOR(IDIM+1,JE1)) IF(XXXX.GT.XTOL)THEN WRITE(IOIMP,*) > 'J3DISJ: 2 points identiques n"ont pas la meme densite' IRET=IRET+1 GOTO 9998 ELSE LECT(IE2)=0 ENDIF ENDIF ENDDO 1 XFI=XFF ENDDO C 9998 SEGSUP,MLENTI,MLREEL C RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales