Télécharger rlexvc.eso

Retour à la liste

Numérotation des lignes :

rlexvc
  1. C RLEXVC SOURCE CHAT 05/01/13 03:03:19 5004
  2. SUBROUTINE RLEXVC(MELEMM,MELCEN,MELSOM,MLELEM)
  3. C
  4. C**** Variables de COOPTIO
  5. C
  6. C INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR
  7. C & ,IOTER, IOLEC, IOIMP, IOCAR, IOACQ
  8. C & ,IOPER, IOSGB, IOGRA, IOSAU, IORES
  9. C & ,IECHO, IIMPI, IOSPI
  10. C & ,IDIM
  11. C & ,MCOORD
  12. C & ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE
  13. C & ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU
  14. C & ,NORINC,NORVAL,NORIND,NORVAD
  15. C & ,NUCROU, IPSAUV
  16. C
  17. IMPLICIT INTEGER(I-N)
  18. INTEGER NSOMM, ICEN, NBSOUS, ISOUS, NBELEM, NBNO, IELEM, INOEU
  19. & , NLS1, NGS1, NGC, IPOS, NGC2
  20. C
  21. -INC SMELEME
  22. INTEGER JG
  23. -INC SMLENTI
  24.  
  25. -INC PPARAM
  26. -INC CCOPTIO
  27. C
  28. INTEGER NBL, NBTPOI
  29. SEGMENT MLELEM
  30. INTEGER INDEX(NBL+1)
  31. INTEGER LESPOI(NBTPOI)
  32. ENDSEGMENT
  33. C
  34. POINTEUR MELSOM.MELEME, MELEMM.MELEME, MELCEN.MELEME
  35. & ,MLESOM.MLENTI, MTOUC.MLENTI, MLEMAI.MLENTI
  36. C
  37. C**** Le MELEME SOMMET
  38. C
  39. CALL KRIPAD(MELSOM,MLESOM)
  40. C
  41. C MLESOM: numerotation globale -> locale
  42. C
  43. C**** En KRIPAD
  44. C SEGACT MELSOM
  45. C SEGINI MLESOM
  46. C
  47. NSOMM = MELSOM.NUM(/2)
  48. JG=NSOMM
  49. SEGINI MTOUC
  50. C MTOUC.LECT(NLS1) = estimation de nombre des centres voisins de
  51. C NLS1
  52. SEGACT MELEMM
  53. NBSOUS=MELEMM.LISOUS(/1)
  54. C NBSOUS=0 fait un peux chier!
  55. JG=MAX(NBSOUS,1)
  56. SEGINI MLEMAI
  57. IF(NBSOUS .EQ. 0)THEN
  58. MLEMAI.LECT(1)=MELEMM
  59. ELSE
  60. DO ISOUS=1,NBSOUS,1
  61. MLEMAI.LECT(ISOUS)=MELEMM.LISOUS(ISOUS)
  62. ENDDO
  63. ENDIF
  64. SEGDES MELEMM
  65. C
  66. C**** Combien de fois chaque sommet est touché par un centre?
  67. C
  68. NBSOUS=JG
  69. NBTPOI=0
  70. DO ISOUS = 1, NBSOUS, 1
  71. MELEMM=MLEMAI.LECT(ISOUS)
  72. SEGACT MELEMM
  73. NBELEM=MELEMM.NUM(/2)
  74. NBNO=MELEMM.NUM(/1)
  75. DO IELEM = 1, NBELEM,1
  76. DO INOEU = 1, NBNO, 1
  77. NGS1 = MELEMM.NUM(INOEU,IELEM)
  78. NLS1 = MLESOM.LECT(NGS1)
  79. MTOUC.LECT(NLS1)=MTOUC.LECT(NLS1)+1
  80. NBTPOI=NBTPOI+1
  81. ENDDO
  82. ENDDO
  83. ENDDO
  84. C
  85. NBL=NSOMM
  86. NBTPOI=NBTPOI+NSOMM
  87. SEGINI MLELEM
  88. C
  89. C**** Les sommets dedans MLELEM dans le meme ordre que dedans MLESOM
  90. C
  91. MLELEM.INDEX(1)=1
  92. DO IELEM=1, NBL, 1
  93. MLELEM.LESPOI(MLELEM.INDEX(IELEM))=MELSOM.NUM(1,IELEM)
  94. MLELEM.INDEX(IELEM+1)=MLELEM.INDEX(IELEM)+1+MTOUC.LECT(IELEM)
  95. MTOUC.LECT(IELEM)=0
  96. ENDDO
  97. C
  98. C**** MTOUC.LECT(IELEM)=0 \forall IELEM
  99. C
  100. ICEN = 0
  101. SEGACT MELCEN
  102. DO ISOUS = 1, NBSOUS, 1
  103. MELEMM=MLEMAI.LECT(ISOUS)
  104. NBELEM=MELEMM.NUM(/2)
  105. NBNO=MELEMM.NUM(/1)
  106. DO IELEM = 1, NBELEM,1
  107. ICEN=ICEN+1
  108. NGC=MELCEN.NUM(1,ICEN)
  109. DO INOEU = 1, NBNO, 1
  110. NGS1 = MELEMM.NUM(INOEU,IELEM)
  111. NLS1 = MLESOM.LECT(NGS1)
  112. MTOUC.LECT(NLS1)=MTOUC.LECT(NLS1)+1
  113. IPOS = MLELEM.INDEX(NLS1)+MTOUC.LECT(NLS1)
  114. NGC2 = MLELEM.LESPOI(IPOS)
  115. IF(NGC2 .NE. 0)THEN
  116. WRITE(IOIMP,*) 'Subroutine rlexvc.eso'
  117. CALL ERREUR(5)
  118. GOTO 9999
  119. ELSE
  120. MLELEM.LESPOI(IPOS)=NGC
  121. ENDIF
  122. ENDDO
  123. ENDDO
  124. SEGDES MELEMM
  125. ENDDO
  126. C
  127. SEGDES MLELEM
  128. SEGDES MELCEN
  129. SEGDES MELSOM
  130. SEGSUP MTOUC
  131. SEGSUP MLESOM
  132. SEGSUP MLEMAI
  133. C
  134. 9999 RETURN
  135. END
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  

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