voisin
C VOISIN SOURCE CHAT 05/01/13 04:08:55 5004 ************************************************************************* *** SP 'VOISIN' : lorsque la particule passe par un noeud ou une arete *** de l'element, 'VOISIN' cherche elements ayant le noeud 'INOEUD' en *** commun avec l'élément considéré. *** *** APPELES 1 = aucun *** APPELES 2 = aucun *** *** E = 'NDIM' dimension de l'espace *** 'MELEME' pteur sur maillage du domaine étudié *** 'IPT1' pteur sur sous-maillage contenant élément considéré *** 'IELL' n° local dans sous-maillage 'IPT1' de élémt considéré *** 'INOEUD' n° local du noeud traversé dans élément considéré *** *** S = 'IVOISI' n° globaux des elemts ayant en commun le noeud 'INOEUD' *** 'NVOISI' nbre d'elements ayant en commun le noeud 'INOEUD' *** *** Rq : dans le cas d'une arete traversée (cas 3D seulement), 'INOEUD' *** represente l'un des noeuds de l'arete. *** *** ORIGINE = PATRICK MEYNIEL, MODIFICATION = CYRIL NOU ************************************************************************* IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC SMELEME DIMENSION XDEP(3),XARI(3),IVOISI(20) *** initialisation de départ IPT2=MELEME NVOISI=0 NCOMPT=0 *** recuperation ds 'NBSOBJ' du nbre de sous-maillages de 'MELEME' NBSOUS=LISOUS(/1) NBSOBJ=NBSOUS IF (NBSOUS.EQ.0) NBSOBJ=1 ***** BOUCLE SUR LES SOUS-MAILLAGES DE MELEME DO 10 ISOUS=1,NBSOBJ *** 'IPT2' pteur sur le iousième sous-maillage IF (NBSOUS.GT.0) IPT2=LISOUS(ISOUS) *** recuperation nbre elemts et noeuds par elemt de 'IPT2' SEGACT IPT2 NBELE=IPT2.NUM(/2) NBNOEU=IPT2.NUM(/1) ******** BOUCLE SUR LES ELEMENTS DU ISOUSIEME SOUS-MAILLAGE DO 20 IELL2=1,NBELE *** on saute le cas ou le iell2ieme element est l'element courant * IF ((IELL2.NE.IELL).OR.(IPT2.NE.IPT1)) THEN ************** BOUCLE SUR LES NOEUDS DU IELL2IEME ELEMENT DO 30 INO=1,NBNOEU *** test correspondance noeud de 'IPT2' avec celui de 'IPT1' IF ((IPT2.NUM(INO,IELL2)).EQ. $ (IPT1.NUM(INOEUD,IELL))) THEN NVOISI=NVOISI+1 IVOISI(NVOISI)=IELL2+NCOMPT ENDIF 30 CONTINUE * ENDIF 20 CONTINUE *** recuperation nbre elements avant le prochain sous-maillage NCOMPT=NCOMPT+NBELE IF (IPT2.NE.IPT1) SEGDES IPT2 10 CONTINUE RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales