j3aret
C J3ARET SOURCE CHAT 05/01/13 00:45:53 5004 C-------------------------------------------------------------------- C C ADDITION DES POINTS SUR LES ARRETES 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 SMELEME C SEGMENT BLOCOM INTEGER POINT(NPOINT) REAL*8 YCOOR(IDIM+1,NPOINT) INTEGER MAILL(MM1) ENDSEGMENT C DIMENSION V1(3),V2(3),VI(3) C IF(IDIM.EQ.2)THEN V1(3)=0.D0 V2(3)=0.D0 VI(3)=0.D0 ENDIF C MM1=MAILL(/1) NPOINT=POINT(/1) TOL2=TOL**2 C C ON BOUCLE SUR TOUS LES CONTOURS C NBSOUS=0 NBREF=0 NBNN=2 DO IE1=1,MM1 MELEME=MAILL(IE1) NBELEM=ICOLOR(/1) C C ... ET SUR TOUS LEURS COTES C (ON SIMULE "DO 3 IE2=1,NBELEM" AVEC IE2 ET NBELEM EVENTUELLEMENT CHANGES) C IE2=0 1 IE2=IE2+1 IF(IE2.GT.NBELEM)GOTO 3 C DO IE2=1,NBELEM D12=0.D0 DO IE3=1,IDIM V1(IE3)=YCOOR(IE3,NUM(1,IE2)) V2(IE3)=YCOOR(IE3,NUM(2,IE2)) D12=D12+(V1(IE3)-V2(IE3))**2 ENDDO C C ON BOUCLE SUR TOUS LES POINTS ... C DO 2 IE3=1,NPOINT DI1=0.D0 DO IE4=1,IDIM VI(IE4)=YCOOR(IE4,POINT(IE3)) DI1=DI1+(VI(IE4)-V1(IE4))**2 ENDDO C C ... ON ELIMINE CEUX QUI SONT TROP LOIN ... C C C ... ON ELIMINE CEUX QUI SONT TROP PRES ... C C C ... CEUX QUI NE SONT PAS ENTRE ... C AAA=0.D0 DO IE4=1,IDIM AAA=AAA+(VI(IE4)-V1(IE4))*(V2(IE4)-V1(IE4)) ENDDO AAA=AAA/D12 IF(AAA.LT.0.D0.OR.AAA.GT.1.D0)GOTO 2 C C ... ET CEUX QUI SONT TROP LOIN DU SEGMENT C BBB=0.D0 DO IE4=1,IDIM BBB=BBB+(VI(IE4)-V1(IE4)-AAA*(V2(IE4)-V1(IE4)))**2 ENDDO IF(BBB.GT.TOL2)GOTO 2 C C ON INCERE LES POINT RESTANT DANS LE MAILLAGE C WARNING: ON LE FAIT SANS DUPLICATION C NBELEM=NBELEM+1 SEGADJ, MELEME ICOLOR(NBELEM)=ICOLOR(NBELEM-1) IF(IE2.LT.NBELEM)THEN DO IE4=NBELEM,IE2+1,-1 NUM(1,IE4)=NUM(1,IE4-1) NUM(2,IE4)=NUM(2,IE4-1) ENDDO ENDIF NUM(2,IE2 )=POINT(IE3) NUM(1,IE2+1)=POINT(IE3) C ... ET ON REPASSE PAR LE NOUVEAU SEGMENT EN SORTANT DE LA BOUCLE POINT C IE2=IE2-1 GOTO 1 C C FIN BOUCLE POINT C 2 CONTINUE C C FIN BOUCLE COTE C GOTO 1 3 CONTINUE C C FIN BOUCLE FACE C ENDDO C RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales