Télécharger regma2.eso

Retour à la liste

Numérotation des lignes :

regma2
  1. C REGMA2 SOURCE GOUNAND 24/11/06 21:15:17 12073
  2. SUBROUTINE REGMA2(MYMEL2,
  3. $ MYMELE,
  4. $ IMPR,IRET)
  5. IMPLICIT INTEGER(I-N)
  6. IMPLICIT REAL*8 (A-H,O-Z)
  7. C***********************************************************************
  8. C NOM : REGMA2
  9. C DESCRIPTION : On transforme un maillage partitionné ou non en maillage
  10. C partitionné dont les partitions ont un nombre maximal
  11. C d'éléments.
  12. C
  13. C
  14. C LANGAGE : ESOPE
  15. C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  16. C mél : gounand@semt2.smts.cea.fr
  17. C***********************************************************************
  18. C APPELE PAR : MKIZA
  19. C***********************************************************************
  20. C ENTREES : MYMEL2
  21. C SORTIES : MYMELE
  22. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  23. C***********************************************************************
  24. C VERSION : v1, 07/08/06, version initiale
  25. C HISTORIQUE : v1, 07/08/06, création
  26. C HISTORIQUE :
  27. C HISTORIQUE :
  28. C***********************************************************************
  29. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  30. C en cas de modification de ce sous-programme afin de faciliter
  31. C la maintenance !
  32. C***********************************************************************
  33.  
  34. -INC PPARAM
  35. -INC CCOPTIO
  36. -INC SMELEME
  37. INTEGER NBNN,NBELEM,NBSOUS,NBREF
  38. POINTEUR MYMELE.MELEME
  39. POINTEUR MYMEL2.MELEME
  40. POINTEUR SMEL.MELEME
  41. POINTEUR SMEL2.MELEME
  42. *
  43. INTEGER IMPR,IRET
  44. INTEGER NSOUS
  45. *
  46. INTEGER NELMAX
  47. PARAMETER(NELMAX=20000)
  48. *
  49. SEGMENT MELS
  50. POINTEUR LISMEL(0).MELEME
  51. ENDSEGMENT
  52. *
  53. * Executable statements
  54. *
  55. IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans regma2'
  56. SEGACT MYMEL2
  57. NSOUS=MYMEL2.LISOUS(/1)
  58. SEGINI MELS
  59. DO ISOUS=1,MAX(1,NSOUS)
  60. IF (NSOUS.EQ.0) THEN
  61. SMEL2=MYMEL2
  62. ELSE
  63. SMEL2=MYMEL2.LISOUS(ISOUS)
  64. SEGACT SMEL2
  65. ENDIF
  66. NSMEL2=SMEL2.NUM(/2)
  67. * WRITE(IOIMP,*) 'NSMEL2=',NSMEL2
  68. NPART=((NSMEL2-1)/NELMAX)+1
  69. ISMEL2=0
  70. DO IPART=1,NPART
  71. NBNN=SMEL2.NUM(/1)
  72. NBELEM=MIN(NSMEL2-ISMEL2,NELMAX)
  73. * WRITE(IOIMP,*) 'NSMEL=',NBELEM
  74. NBSOUS=0
  75. NBREF=0
  76. SEGINI SMEL
  77. SMEL.ITYPEL=SMEL2.ITYPEL
  78. DO IBELEM=1,NBELEM
  79. DO IBNN=1,NBNN
  80. SMEL.NUM(IBNN,IBELEM)=
  81. $ SMEL2.NUM(IBNN,ISMEL2+IBELEM)
  82. SMEL.ICOLOR(IBELEM)=
  83. $ SMEL2.ICOLOR(ISMEL2+IBELEM)
  84. ENDDO
  85. ENDDO
  86. ISMEL2=ISMEL2+NBELEM
  87. SEGDES SMEL
  88. LISMEL(**)=SMEL
  89. ENDDO
  90. IF (NSOUS.NE.0) THEN
  91. SEGDES SMEL2
  92. ENDIF
  93. ENDDO
  94. SEGDES MYMEL2
  95. *
  96. NSOUS=LISMEL(/1)
  97. NBNN=0
  98. NBELEM=0
  99. NBSOUS=NSOUS
  100. NBREF=0
  101. SEGINI MYMELE
  102. DO ISOUS=1,NSOUS
  103. MYMELE.LISOUS(ISOUS)=LISMEL(ISOUS)
  104. ENDDO
  105. SEGDES MYMELE
  106. SEGSUP MELS
  107. *
  108. * Normal termination
  109. *
  110. IRET=0
  111. RETURN
  112. *
  113. * Format handling
  114. *
  115. *
  116. * Error handling
  117. *
  118. 9999 CONTINUE
  119. IRET=1
  120. WRITE(IOIMP,*) 'An error was detected in subroutine regma2'
  121. RETURN
  122. *
  123. * End of subroutine REGMA2
  124. *
  125. END
  126.  
  127.  

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