Télécharger nuenul.eso

Retour à la liste

Numérotation des lignes :

  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.  
  60.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales