Télécharger vemelx.eso

Retour à la liste

Numérotation des lignes :

vemelx
  1. C VEMELX SOURCE GOUNAND 25/11/24 21:15:27 12406
  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 TMATOP2
  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. * Le menage n'a pas forcement ete fait
  73. if (iveri.ge.3) then
  74. * if (nlcou.ne.nlco2) then
  75. if (nlcou.lt.nlco2) then
  76. write(ioimp,185) 'melemx : nlcou,nlco2=',nlcou,nlco2
  77. goto 9999
  78. endif
  79. endif
  80. *
  81. do iel=1,nlmax
  82. do ino=nncou+1,nnmax
  83. if (melemx.numx(ino,iel).ne.0) then
  84. write(ioimp,185)
  85. $ 'ino,nncou,nnmax,iel,nlcou,nlmax,melemx.numx='
  86. $ ,ino,nncou,nnmax,iel,nlcou,nlmax,melemx.numx(ino
  87. $ ,iel)
  88. goto 9999
  89. endif
  90. enddo
  91. enddo
  92. *
  93. * Normal termination
  94. *
  95. RETURN
  96. *
  97. * Format handling
  98. *
  99. 185 FORMAT (5X,A42,7I8)
  100. 187 FORMAT (5X,10I8)
  101. 188 FORMAT ('Apres point IELEM(',I2,',1)=',I6,' ; NBL=')
  102. 189 FORMAT ('Le noeud ',I2,'/',I2,' de IELEM de numero',I6
  103. $ ,' a le plus petit nb de voisins :',I3)
  104. *
  105. * Error handling
  106. *
  107. 9999 CONTINUE
  108. write(ioimp,*) MMOT
  109. MOTERR(1:8)='VEMELX '
  110. * 349 2
  111. *Problème non prévu dans le s.p. %m1:8 contactez votre assistance
  112. CALL ERREUR(349)
  113. RETURN
  114. *
  115. * End of subroutine VEMELX
  116. *
  117. END
  118.  
  119.  

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