Télécharger vemelx.eso

Retour à la liste

Numérotation des lignes :

vemelx
  1. C VEMELX SOURCE GOUNAND 21/04/06 21:15:42 10940
  2. SUBROUTINE VEMELX(MELEMX,MMOT)
  3. IMPLICIT REAL*8 (A-H,O-Z)
  4. IMPLICIT INTEGER (I-N)
  5. C***********************************************************************
  6. C NOM : VEMELX
  7. C DESCRIPTION : Vérifie la consistance d'un segment MELEMX
  8. C Inspiré de vetopi.eso
  9. C
  10. C
  11. C LANGAGE : ESOPE
  12. C AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SEMT/LTA)
  13. C mél : gounand@semt2.smts.cea.fr
  14. C***********************************************************************
  15. C***********************************************************************
  16. C SYNTAXE GIBIANE :
  17. C ENTREES : MELEME (Activé), NEL
  18. C ENTREES/SORTIES : TOPINV (Activé *MOD)
  19. C SORTIES :
  20. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  21. C***********************************************************************
  22. C VERSION : v1, 30/10/2017, version initiale
  23. C HISTORIQUE : v1, 30/10/2017, création
  24. C HISTORIQUE :
  25. C HISTORIQUE :
  26. C***********************************************************************
  27. -INC PPARAM
  28. -INC CCOPTIO
  29. -INC TMATOP1
  30. *-INC SMELEMX
  31. logical lident
  32. CHARACTER*(*) MMOT
  33. *
  34. *
  35. * Executable statements
  36. *
  37. * if (impr.ge.5) WRITE(IOIMP,*) 'Entrée dans vemelx.eso'
  38.  
  39. * Petite vérification de consistance de dimension des objets
  40. * (NVMAX,NPMAX)
  41. NNMAX=MELEMX.NUMX(/1)
  42. NLMAX=MELEMX.NUMX(/2)
  43. if (melemx.nlini.gt.nlmax.or.melemx.nlcou.gt.nlmax) then
  44. write(ioimp,185) 'melemx : nlini,nlcou,nlmax=',nlini,nlcou
  45. $ ,nlmax
  46. goto 9999
  47. endif
  48. if (melemx.nnini.gt.nnmax.or.melemx.nncou.gt.nnmax) then
  49. write(ioimp,185) 'melemx : nnini,nncou,nnmax=',nnini,nncou
  50. $ ,nnmax
  51. goto 9999
  52. endif
  53. * Pas terrible mais bon
  54. ityp=MELEMX.ITYPEX
  55. if (ityp.eq.0) then
  56. write(ioimp,185) 'melemx : itypex=',ityp
  57. $ ,nnmax
  58. goto 9999
  59. endif
  60.  
  61. *
  62. nlco2=0
  63. do iel=nlmax,1,-1
  64. do ino=1,nncou
  65. if (melemx.numx(ino,iel).ne.0) then
  66. nlco2=iel
  67. goto 44
  68. endif
  69. enddo
  70. enddo
  71. 44 continue
  72. * if (nlcou.ne.nlco2) then
  73. if (nlcou.lt.nlco2) then
  74. write(ioimp,185) 'melemx : nlcou,nlco2=',nlcou,nlco2
  75. goto 9999
  76. endif
  77. *
  78. do iel=1,nlmax
  79. do ino=nncou+1,nnmax
  80. if (melemx.numx(ino,iel).ne.0) then
  81. write(ioimp,185)
  82. $ 'ino,nncou,nnmax,iel,nlcou,nlmax,melemx.numx='
  83. $ ,ino,nncou,nnmax,iel,nlcou,nlmax,melemx.numx(ino
  84. $ ,iel)
  85. goto 9999
  86. endif
  87. enddo
  88. enddo
  89. *
  90. * Normal termination
  91. *
  92. RETURN
  93. *
  94. * Format handling
  95. *
  96. 185 FORMAT (5X,A32,6I8)
  97. 187 FORMAT (5X,10I8)
  98. 188 FORMAT ('Apres point IELEM(',I2,',1)=',I6,' ; NBL=')
  99. 189 FORMAT ('Le noeud ',I2,'/',I2,' de IELEM de numero',I6
  100. $ ,' a le plus petit nb de voisins :',I3)
  101. *
  102. * Error handling
  103. *
  104. 9999 CONTINUE
  105. write(ioimp,*) MMOT
  106. MOTERR(1:8)='VEMELX '
  107. * 349 2
  108. *Problème non prévu dans le s.p. %m1:8 contactez votre assistance
  109. CALL ERREUR(349)
  110. RETURN
  111. *
  112. * End of subroutine VEMELX
  113. *
  114. END
  115.  
  116.  
  117.  

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