1 : C NUENUL SOURCE CHAT 05/01/13 02:02:55 5004 2 : C 3 : C 4 : SUBROUTINE NUENUL(ITRNOE,NBNMAX,NBE,NUM,NBENUL,IERR) 5 : C ***************************************************************** 6 : C OBJET NUENUL : PROPOSE UNE RENUMEROTATION POUR METTRE EN FIN LES 7 : C OBJET ELEMENTS NULS. 8 : C 9 : C EN ENTREE: 10 : C ITRNOE: LES NOEUDS DES ELEMENTS DU MAILLAGE 11 : C NBNMAX: NOMBRE MAXIMUM DE NOEUDS PAR ELEMENT 12 : C NBE : NOMBRE D'ELEMENTS 13 : C 14 : C EN SORTIE: 15 : C NBENUL : NOMBRE D'ELEMENTS NULS 16 : C NUM : NOUVELLE NUMEROTATION 17 : C NUM(I) = NOUVEAU NUMERO DE L'ELEMENT I 18 : C NUM EST UN TABLEAU DE TAILLE NBE 19 : C 20 : C 21 : C CONDITION D'APPLICATION : TOUT MAILLAGE 22 : C REMARQUE : IDEM NUNISO => UTILITAIRE SUR LES TABLEAUX ? 23 : C ***************************************************************** 24 : IMPLICIT INTEGER(I-N) 25 : INTEGER ITRNOE(*),NBNMAX,NBE 26 : INTEGER NUM(*),NBENUL,IERR 27 : C 28 : INTEGER I 29 : C 30 : NBENUL = 0 31 : I = 1 32 : 10 IF(I.GT.(NBE-NBENUL))GOTO 9999 33 : C --- LE NOEUD EST ISOLE --- 34 : IF( ITRNOE((I-1)*NBNMAX+1).EQ.0 )THEN 35 : C 36 : C --- RECHERCHE D'UN NOEUD (A LA FIN) POUR PERMUTER --- 37 : 20 IF( ITRNOE((NBE-NBENUL-1)*NBNMAX+1).EQ. 0 )THEN 38 : NUM(NBE-NBENUL) = NBE-NBENUL 39 : NBENUL = NBENUL + 1 40 : C --- TOUS LES NOEUDS SONT ISOLES --- 41 : IF( NBENUL.EQ.NBE )GOTO 9999 42 : C --- ON A TROUVE TOUS LES NOEUDS ISOLES --- 43 : IF( I.GT.(NBE-NBENUL))GOTO 9999 44 : GOTO 20 45 : ENDIF 46 : C 47 : C --- ON A LE NOEUD POUR PERMUTER --- 48 : NUM(NBE-NBENUL) = I 49 : NUM(I) = NBE-NBENUL 50 : NBENUL = NBENUL + 1 51 : ELSE 52 : NUM(I) = I 53 : ENDIF 54 : I = I + 1 55 : GOTO 10 56 : C 57 : 9999 END 58 : 59 :
© Cast3M 2003 - All rights reserved.
Disclaimer