empele
C EMPELE SOURCE BP208322 16/11/18 21:16:42 9177 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C But : Empiler correctement dans le segment LISTMA C l'élément qui vient d'être lu C C Appelé par : LIRAVS C C Paramètres : C C I : numéro global de l'élément (entrée) C C ITELAC : ITYPEL de l'élément (entrée) C C INUMAT : numéro du matériau de l'élément (entrée) C C ICONVE : tableau de conversion des connectivités (entrée) C C LISTMA : segment LISTMA (entrée et sortie) C C ICONNT : connectivités du nouvel élément (entrée) C C Auteur : Michel Bulik C Octobre 1994 C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC IMPLICIT INTEGER(I-N) -INC CCGEOME -INC SMELEME INTEGER I,ITELAC,INUMAT,ICONVE(*),ICONNT(*) CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC SEGMENT LISTMA POINTEUR PTMA(NBSZEL).MELEME INTEGER TYPDEL(NBSZEL) INTEGER NUMEMA(NOMBEL) INTEGER NUMELE(NOMBEL) ENDSEGMENT C C Description du segment LISTMA (LISTe des MAillages) C C Paramètres : NBSZEL - NomBre de Sous Zones ELémentaires C NOMBEL - NOMBre total des ELéments C C Tableaux : PTMA - PoinTeurs sur des MAillages élémentaires C MATER - numéros des MATERiaux des sous-zones C TYPDEL - TYPes Des ELéments des sous-zones (=ITYPEL) C NUMEMA - NUMEros des MAillages auquels appartiennent C les éléments (1..NBSZEL) C NUMELE - le NUMéro de l'ELEment dans sa sous zone C C Remarque : On ne touche pas à son état (actif ou non) dans cette C subroutine, on s'en occupe dans LIRAVS C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC NOMBEL = LISTMA.NUMEMA(/1) C ... Boucle sur les sous-zones existantes ... DO 5400 K=1,NBSZEL C ... On vérifie si l'élément appartient à une d'elles ... IF(ITELAC.EQ.(LISTMA.TYPDEL(K)).AND. C ... Si OUI, on l'empile là où il faut ... IPT3=LISTMA.PTMA(K) SEGACT IPT3 NBELEM=IPT3.NUM(/2) NBELEM=NBELEM+1 NBNN=IPT3.NUM(/1) NBSOUS=0 NBREF=0 SEGADJ IPT3 IPT3.ICOLOR(NBELEM)=MOD(K-1,7)+1 LISTMA.NUMEMA(I)=K GOTO 5401 ENDIF 5400 CONTINUE C ... Sinon (c.à.d. on n'a pas trouvé) -> nouveau maillage ... NBSZEL=NBSZEL+1 SEGADJ LISTMA LISTMA.TYPDEL(NBSZEL)=ITELAC NBNN=NBNNE(ITELAC) NBELEM=1 NBSOUS=0 NBREF=0 SEGINI IPT3 LISTMA.PTMA(NBSZEL)=IPT3 IPT3.ITYPEL=ITELAC C ... Les couleurs des nouveaux maillages valent 1, 2, ..., 7, 1, etc IPT3.ICOLOR(NBELEM)=MOD(NBSZEL-1,7)+1 LISTMA.NUMEMA(I)=NBSZEL 5401 CONTINUE C ... Partie commune dans les deux cas ... LISTMA.NUMELE(I)=NBELEM DO 5402 K=1,NBNN IPT3.NUM(K,NBELEM)=ICONNT(ICONVE(K)) 5402 CONTINUE SEGDES IPT3 RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales