Télécharger kecom6.eso

Retour à la liste

Numérotation des lignes :

kecom6
  1. C KECOM6 SOURCE GOUNAND 21/06/02 21:17:04 11022
  2. SUBROUTINE KECOM6(CGEOME,MYLMOT,MYDISC,
  3. $ MYFALS,
  4. $ IMPR,IRET)
  5. IMPLICIT REAL*8 (A-H,O-Z)
  6. IMPLICIT INTEGER (I-N)
  7. C***********************************************************************
  8. C NOM : KECOM6
  9. C PROJET : Noyau linéaire NLIN
  10. C DESCRIPTION :
  11. C
  12. * On teste les noms des ddls des variables et des coefficients
  13. * On verifie egalement qu'il n'y a pas de noeuds à numéro nul dans CGEOME
  14. * qui pourrait etre utilises. Ces noeuds nuls sont eventuellement
  15. * cree par TRQUAF (cf. PRLIN2) pour permettre l'utilisation d'un
  16. * maillage non QUAF en entree de NLIN.
  17. C
  18. C LANGAGE : ESOPE
  19. C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  20. C mél : gounand@semt2.smts.cea.fr
  21. C***********************************************************************
  22. C APPELES : KEEF (recherche de l'élément fini)
  23. C APPELE PAR :
  24. C***********************************************************************
  25. C ENTREES :
  26. C SORTIES :
  27. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  28. C***********************************************************************
  29. C VERSION : v1, 26/09/02, version initiale
  30. C HISTORIQUE : v1, 26/09/02, création
  31. C HISTORIQUE :
  32. C HISTORIQUE :
  33. C***********************************************************************
  34. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  35. C en cas de modification de ce sous-programme afin de faciliter
  36. C la maintenance !
  37. C***********************************************************************
  38.  
  39. -INC PPARAM
  40. -INC CCOPTIO
  41. -INC SMELEME
  42. POINTEUR CGEOME.MELEME
  43. POINTEUR SOUGEO.MELEME
  44. -INC SMLMOTS
  45. POINTEUR MYLMOT.MLMOTS
  46. * Mes includes persos
  47. -INC TNLIN
  48. *-INC SFALRF
  49. POINTEUR MYFALS.FALRFS
  50. *-INC SELREF
  51. POINTEUR MYLRF.ELREF
  52. *
  53. CHARACTER*4 MYDISC,MGDIS
  54. INTEGER IMPR,IRET
  55. *
  56. * Fonctions appelées
  57. *
  58. INTEGER IMAX
  59. *
  60. INTEGER ICOMP ,ISOUS ,MAXISO
  61. INTEGER NSOUS,NDDL,ITQUAF,MAXCMP
  62. *
  63. * Executable statements
  64. *
  65. IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans kecom6'
  66. *
  67. SEGACT CGEOME
  68. NSOUS=CGEOME.LISOUS(/1)
  69. MAXCMP=0
  70. DO 3 ISOUS=1,NSOUS
  71. SOUGEO=CGEOME.LISOUS(ISOUS)
  72. SEGACT SOUGEO
  73. * On cherche l'élément fini correspondant au QUAF
  74. ITQUAF=SOUGEO.ITYPEL
  75. CALL KEEF(ITQUAF,MYDISC,
  76. $ MYFALS,
  77. $ MYLRF,
  78. $ IMPR,IRET)
  79. IF (IRET.NE.0) GOTO 9999
  80. SEGACT MYLRF
  81. NDDL=MYLRF.NPQUAF(/1)
  82. MAXISO=IMAX(MYLRF.NUMCMP,NDDL)
  83. MAXCMP=MAX(MAXCMP,MAXISO)
  84. * Le test uniquement sur le 1er element doit etre suffisant
  85. DO IDDL=1,NDDL
  86. NNQUA=MYLRF.NPQUAF(IDDL)
  87. NNGLO=SOUGEO.NUM(NNQUA,1)
  88. IF (NNGLO.EQ.0) THEN
  89. IGDIS=SOUGEO.ICOLOR(1)
  90. MGDIS='QUAF'
  91. IF (IGDIS.EQ.1) MGDIS='LINE'
  92. IF (IGDIS.EQ.2) MGDIS='QUAD'
  93. WRITE(IOIMP,*) 'A discretization space ',MYDISC,
  94. $ ' is incompatible with a ',MGDIS,' mesh'
  95. GOTO 9999
  96. ENDIF
  97. ENDDO
  98. SEGDES MYLRF
  99. SEGDES SOUGEO
  100. 3 CONTINUE
  101. SEGACT MYLMOT
  102. ICOMP=MYLMOT.MOTS(/2)
  103. SEGDES MYLMOT
  104. SEGDES CGEOME
  105. IF (ICOMP.NE.MAXCMP) THEN
  106. WRITE(IOIMP,*) 'Une variable de ddls :'
  107. WRITE (IOIMP,2019) (MYLMOT.MOTS(I),I=1,MYLMOT.MOTS(/2))
  108. 2019 FORMAT (10(2X,A8) )
  109. * SEGPRT,MYLMOT
  110. WRITE(IOIMP,*)
  111. $ 'n''est pas compatible avec la discrétisation : ',
  112. $ MYDISC
  113. GOTO 9999
  114. ENDIF
  115. *
  116. * Normal termination
  117. *
  118. IRET=0
  119. RETURN
  120. *
  121. * Format handling
  122. *
  123. *
  124. * Error handling
  125. *
  126. 9999 CONTINUE
  127. IRET=1
  128. WRITE(IOIMP,*) 'An error was detected in subroutine kecom6'
  129. RETURN
  130. *
  131. * End of subroutine KECOM6
  132. *
  133. END
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  

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