Télécharger inirpl.eso

Retour à la liste

Numérotation des lignes :

  1. C INIRPL SOURCE CHAT 05/01/13 00:38:03 5004
  2. SUBROUTINE INIRPL(MAIL,
  3. $ RPMAIL,
  4. $ IMPR,IRET)
  5. IMPLICIT INTEGER(I-N)
  6. IMPLICIT REAL*8 (A-H,O-Z)
  7. C***********************************************************************
  8. C NOM : INIRPL
  9. C DESCRIPTION : Maillage n-partitionné => liste d'entiers de dim. n+1
  10. C permettant le repérage "global" des éléments du
  11. C maillage.
  12. C
  13. C Renvoie une liste d'entiers qui permet le
  14. C repérage des éléments dans MAIL.
  15. C nbsous=max(1,mail.lisous(/1))
  16. C RPMAIL a pour dimension : (nbsous +1)
  17. C RPMAIL(i) numéro du 1er élément de lisous(i)
  18. C RPMAIL(nbsous+1)=nombre d'éléments de mail+1
  19. C LANGAGE : ESOPE
  20. C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/TTMF)
  21. C mél : gounand@semt2.smts.cea.fr
  22. C***********************************************************************
  23. C APPELES (ESOPE) : OOOETA
  24. C APPELE PAR : PONBPO,
  25. C***********************************************************************
  26. C ENTREES : MAIL
  27. C SORTIES : RPMAIL
  28. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  29. C***********************************************************************
  30. C VERSION : v1, 12/05/99, version initiale
  31. C HISTORIQUE : v1, 12/05/99, création
  32. C HISTORIQUE :
  33. C HISTORIQUE :
  34. C***********************************************************************
  35. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  36. C en cas de modification de ce sous-programme afin de faciliter
  37. C la maintenance !
  38. C***********************************************************************
  39. -INC CCOPTIO
  40. -INC SMELEME
  41. POINTEUR MAIL.MELEME
  42. POINTEUR SOUMAI.MELEME
  43. -INC SMLENTI
  44. INTEGER JG
  45. POINTEUR RPMAIL.MLENTI
  46. *
  47. INTEGER MAETA,SMETA
  48. INTEGER IMPR,IRET
  49. INTEGER INBSOU
  50. INTEGER NBSOUS
  51. INTEGER NBEL,NELCOU
  52. *
  53. * Executable statements
  54. *
  55. IF (IMPR.GT.1) THEN
  56. WRITE(IOIMP,*) 'Entrée dans inirpl.eso'
  57. ENDIF
  58. NELCOU=1
  59. CALL OOOETA(MAIL,MAETA)
  60. IF (MAETA.NE.1) SEGACT MAIL
  61. NBSOUS=MAX(1,MAIL.LISOUS(/1))
  62. JG=NBSOUS+1
  63. SEGINI RPMAIL
  64. DO 1 INBSOU=1,NBSOUS
  65. IF (NBSOUS.EQ.1) THEN
  66. SOUMAI=MAIL
  67. ELSE
  68. SOUMAI=MAIL.LISOUS(INBSOU)
  69. CALL OOOETA(SOUMAI,SMETA)
  70. IF (SMETA.NE.1) SEGACT SOUMAI
  71. ENDIF
  72. RPMAIL.LECT(INBSOU)=NELCOU
  73. NBEL=SOUMAI.NUM(/2)
  74. NELCOU=NELCOU+NBEL
  75. IF (NBSOUS.NE.1.AND.SMETA.NE.1) SEGDES SOUMAI
  76. 1 CONTINUE
  77. RPMAIL.LECT(NBSOUS+1)=NELCOU
  78. IF (MAETA.NE.1) SEGDES MAIL
  79. SEGDES RPMAIL
  80. *
  81. * Normal termination
  82. *
  83. IRET=0
  84. RETURN
  85. *
  86. * Format handling
  87. *
  88. *
  89. * Error handling
  90. *
  91. 9999 CONTINUE
  92. IRET=1
  93. WRITE(IOIMP,*) 'An error was detected in subroutine inirpl'
  94. RETURN
  95. *
  96. * End of subroutine INIRPL
  97. *
  98. END
  99.  
  100.  
  101.  
  102.  

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