Télécharger dimesh.eso

Retour à la liste

Numérotation des lignes :

dimesh
  1. C DIMESH SOURCE GOUNAND 24/11/06 21:15:08 12073
  2. SUBROUTINE DIMESH(MELEME,IDMESH,IMPR,IRET)
  3. IMPLICIT REAL*8 (A-H,O-Z)
  4. IMPLICIT INTEGER (I-N)
  5. C***********************************************************************
  6. C NOM : DIMESH
  7. C DESCRIPTION : Renvoie la dimension des éléments du maillage
  8. C ou une erreur si plusieurs dimensions
  9. C Pareil que la procédure DIMM
  10. C
  11. C LANGAGE : ESOPE
  12. C AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  13. C mél : gounand@semt2.smts.cea.fr
  14. C***********************************************************************
  15. C APPELES :
  16. C APPELES (E/S) :
  17. C APPELES (BLAS) :
  18. C APPELES (CALCUL) :
  19. C APPELE PAR :
  20. C***********************************************************************
  21. C SYNTAXE GIBIANE :
  22. C ENTREES : MELEME
  23. C ENTREES/SORTIES :
  24. C SORTIES : IDMESH
  25. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  26. C***********************************************************************
  27. C VERSION : v1, 14/10/2005, version initiale
  28. C HISTORIQUE : v1, 14/10/2005, création
  29. C HISTORIQUE :
  30. C HISTORIQUE :
  31. C***********************************************************************
  32. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  33. C en cas de modification de ce sous-programme afin de faciliter
  34. C la maintenance !
  35. C***********************************************************************
  36.  
  37. -INC PPARAM
  38. -INC CCOPTIO
  39. -INC CCGEOME
  40. -INC SMELEME
  41. *
  42. CHARACTER*4 NOMEL
  43. LOGICAL LPART,LFIDIM
  44. INTEGER IMPR,IRET
  45. *
  46. * Executable statements
  47. *
  48. IF (IMPR.GT.2) WRITE(IOIMP,*) 'Entrée dans dimesh.eso'
  49. *
  50. LFIDIM=.FALSE.
  51. IDMESH=-1
  52. *
  53. * CALL ECROBJ('MAILLAGE',MELEME)
  54. * CALL PRLIST
  55. SEGACT MELEME
  56. NBSOUS=LISOUS(/1)
  57. LPART=(NBSOUS.NE.0)
  58. IF (LPART) THEN
  59. NSOUS=NBSOUS
  60. ELSE
  61. NSOUS=1
  62. ENDIF
  63. DO ISOUS=1,NSOUS
  64. IF (LPART) THEN
  65. IPT1=LISOUS(ISOUS)
  66. SEGACT IPT1
  67. ELSE
  68. IPT1=MELEME
  69. ENDIF
  70. ITYP=IPT1.ITYPEL
  71. IF (ITYP.LE.0) THEN
  72. WRITE(IOIMP,*) 'ITYPEL=',ITYP,' <=0 ?'
  73. GOTO 9999
  74. ENDIF
  75. NOMEL=NOMS(ITYP)
  76. CALL DIMELE(NOMEL,IDIMEL,IMPR,IRET)
  77. IF (IRET.NE.0) GOTO 9999
  78. IF (LFIDIM) THEN
  79. IF (IDIMEL.NE.IDMESH) THEN
  80. WRITE(IOIMP,*) 'Composite mesh not allowed'
  81. GOTO 9999
  82. ENDIF
  83. ELSE
  84. IDMESH=IDIMEL
  85. LFIDIM=.TRUE.
  86. ENDIF
  87. IF (LPART) THEN
  88. SEGDES IPT1
  89. ENDIF
  90. ENDDO
  91. SEGDES MELEME
  92. IF (.NOT.LFIDIM) THEN
  93. WRITE(IOIMP,*) 'No known elements in this mesh'
  94. GOTO 9999
  95. ENDIF
  96. *
  97. * Normal termination
  98. *
  99. IRET=0
  100. RETURN
  101. *
  102. * Format handling
  103. *
  104. *
  105. * Error handling
  106. *
  107. 9999 CONTINUE
  108. IRET=1
  109. WRITE(IOIMP,*) 'An error was detected in subroutine dimesh'
  110. RETURN
  111. *
  112. * End of subroutine DIMESH
  113. *
  114. END
  115.  
  116.  

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