Télécharger dimesh.eso

Retour à la liste

Numérotation des lignes :

  1. C DIMESH SOURCE BP208322 16/11/18 21:16:28 9177
  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. -INC CCOPTIO
  37. -INC CCGEOME
  38. -INC SMELEME
  39. *
  40. CHARACTER*4 NOMEL
  41. LOGICAL LPART,LFIDIM
  42. INTEGER IMPR,IRET
  43. *
  44. * Executable statements
  45. *
  46. IF (IMPR.GT.2) WRITE(IOIMP,*) 'Entrée dans dimesh.eso'
  47. *
  48. LFIDIM=.FALSE.
  49. IDMESH=-1
  50. *
  51. SEGACT MELEME
  52. NBSOUS=LISOUS(/1)
  53. LPART=(NBSOUS.NE.0)
  54. IF (LPART) THEN
  55. NSOUS=NBSOUS
  56. ELSE
  57. NSOUS=1
  58. ENDIF
  59. DO ISOUS=1,NSOUS
  60. IF (LPART) THEN
  61. IPT1=LISOUS(ISOUS)
  62. SEGACT IPT1
  63. ELSE
  64. IPT1=MELEME
  65. ENDIF
  66. ITYP=IPT1.ITYPEL
  67. IF (ITYP.LE.0) THEN
  68. WRITE(IOIMP,*) 'ITYPEL<=0 ?'
  69. GOTO 9999
  70. ENDIF
  71. NOMEL=NOMS(ITYP)
  72. CALL DIMELE(NOMEL,IDIMEL,IMPR,IRET)
  73. IF (IRET.NE.0) GOTO 9999
  74. IF (LFIDIM) THEN
  75. IF (IDIMEL.NE.IDMESH) THEN
  76. WRITE(IOIMP,*) 'Composite mesh not allowed'
  77. GOTO 9999
  78. ENDIF
  79. ELSE
  80. IDMESH=IDIMEL
  81. LFIDIM=.TRUE.
  82. ENDIF
  83. IF (LPART) THEN
  84. SEGDES IPT1
  85. ENDIF
  86. ENDDO
  87. SEGDES MELEME
  88. IF (.NOT.LFIDIM) THEN
  89. WRITE(IOIMP,*) 'No known elements in this mesh'
  90. GOTO 9999
  91. ENDIF
  92. *
  93. * Normal termination
  94. *
  95. IRET=0
  96. RETURN
  97. *
  98. * Format handling
  99. *
  100. *
  101. * Error handling
  102. *
  103. 9999 CONTINUE
  104. IRET=1
  105. WRITE(IOIMP,*) 'An error was detected in subroutine dimesh'
  106. RETURN
  107. *
  108. * End of subroutine DIMESH
  109. *
  110. END
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  

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