Télécharger dimesh.eso

Retour à la liste

Numérotation des lignes :

dimesh
  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.  
  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. SEGACT MELEME
  54. NBSOUS=LISOUS(/1)
  55. LPART=(NBSOUS.NE.0)
  56. IF (LPART) THEN
  57. NSOUS=NBSOUS
  58. ELSE
  59. NSOUS=1
  60. ENDIF
  61. DO ISOUS=1,NSOUS
  62. IF (LPART) THEN
  63. IPT1=LISOUS(ISOUS)
  64. SEGACT IPT1
  65. ELSE
  66. IPT1=MELEME
  67. ENDIF
  68. ITYP=IPT1.ITYPEL
  69. IF (ITYP.LE.0) THEN
  70. WRITE(IOIMP,*) 'ITYPEL<=0 ?'
  71. GOTO 9999
  72. ENDIF
  73. NOMEL=NOMS(ITYP)
  74. CALL DIMELE(NOMEL,IDIMEL,IMPR,IRET)
  75. IF (IRET.NE.0) GOTO 9999
  76. IF (LFIDIM) THEN
  77. IF (IDIMEL.NE.IDMESH) THEN
  78. WRITE(IOIMP,*) 'Composite mesh not allowed'
  79. GOTO 9999
  80. ENDIF
  81. ELSE
  82. IDMESH=IDIMEL
  83. LFIDIM=.TRUE.
  84. ENDIF
  85. IF (LPART) THEN
  86. SEGDES IPT1
  87. ENDIF
  88. ENDDO
  89. SEGDES MELEME
  90. IF (.NOT.LFIDIM) THEN
  91. WRITE(IOIMP,*) 'No known elements in this mesh'
  92. GOTO 9999
  93. ENDIF
  94. *
  95. * Normal termination
  96. *
  97. IRET=0
  98. RETURN
  99. *
  100. * Format handling
  101. *
  102. *
  103. * Error handling
  104. *
  105. 9999 CONTINUE
  106. IRET=1
  107. WRITE(IOIMP,*) 'An error was detected in subroutine dimesh'
  108. RETURN
  109. *
  110. * End of subroutine DIMESH
  111. *
  112. END
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  

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