Télécharger idcomp.eso

Retour à la liste

Numérotation des lignes :

  1. C IDCOMP SOURCE GOUNAND 05/10/10 21:15:13 5200
  2. SUBROUTINE IDCOMP(CMOT,MLMOTS)
  3. IMPLICIT REAL*8 (A-H,O-Z)
  4. IMPLICIT INTEGER (I-N)
  5. C***********************************************************************
  6. C NOM : IDCOMP
  7. C DESCRIPTION : Renvoie une liste de noms de composantes de l'inconnue
  8. C demandée (pour l'instant 'DEPL' et 'FORC')
  9. C
  10. C Cette subroutine est copiée de bloque.eso
  11. C
  12. C
  13. C
  14. C LANGAGE : ESOPE
  15. C AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  16. C mél : gounand@semt2.smts.cea.fr
  17. C***********************************************************************
  18. C ENTREES : CMOT
  19. C ENTREES/SORTIES :
  20. C SORTIES : MLMOTS
  21. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  22. C***********************************************************************
  23. C VERSION : v1, 07/10/2005, version initiale
  24. C HISTORIQUE : v1, 07/10/2005, création
  25. C HISTORIQUE :
  26. C HISTORIQUE :
  27. C***********************************************************************
  28. -INC CCOPTIO
  29. -INC SMLMOTS
  30. *
  31. CHARACTER*4 MODEPL(6),MODEDU(6)
  32. CHARACTER*4 MODE1D(2),MOFO1D(2)
  33. CHARACTER*4 CMOT
  34. *
  35. DATA MODEPL / 'UX ','UY ','UZ ','UR ','UZ ','UT ' /
  36. DATA MODEDU / 'FX ','FY ','FZ ','FR ','FZ ','FT ' /
  37. C Tableaux MODE1D et MOFO1D sont utilises pour certains modes 1D
  38. DATA MODE1D / 'UX ','UZ ' /
  39. DATA MOFO1D / 'FX ','FZ ' /
  40. *
  41. * Executable statements
  42. *
  43. IF (CMOT.EQ.'DEPL'.OR.CMOT.EQ.'FORC') THEN
  44. JGN=4
  45. JGM=0
  46. SEGINI MLMOTS
  47. C Quelques initialisations selon le type de probleme
  48. C Cas IDIM = 1 :
  49. C ISPE1D = 1 si IDIM=1 et IFOUR=9 ou 10, car les noms de DDL primaux et
  50. C variables duales ne sont pas dans l'ordre "classique" (un traitement
  51. C specifique est alors necessaire).
  52. ISPE1D=0
  53. C Deformations planes ou contraintes planes ou defo. plane gene :
  54. IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-3) THEN
  55. LDEPL=2
  56. IADEPL=0
  57. C Axisymetrique :
  58. ELSEIF (IFOUR.EQ.0) THEN
  59. LDEPL=2
  60. IADEPL=3
  61. C Fourier :
  62. ELSEIF (IFOUR.EQ.1) THEN
  63. LDEPL=3
  64. IADEPL=3
  65. C Tridimensionnel :
  66. ELSEIF (IFOUR.EQ.2) THEN
  67. LDEPL=3
  68. IADEPL=0
  69. C Massif 1D (IDIM=1) :
  70. ELSEIF (IFOUR.GE.3.AND.IFOUR.LE.15) THEN
  71. IF (IFOUR.LE.6) THEN
  72. LDEPL=1
  73. IADEPL=0
  74. ELSEIF (IFOUR.GE.7.AND.IFOUR.LE.10) THEN
  75. LDEPL=2
  76. IADEPL=0
  77. IF (IFOUR.EQ.9.OR.IFOUR.EQ.10) ISPE1D=1
  78. ELSEIF (IFOUR.EQ.11) THEN
  79. LDEPL=3
  80. IADEPL=0
  81. ELSE IF (IFOUR.EQ.15) THEN
  82. LDEPL=2
  83. IADEPL=3
  84. ELSE
  85. LDEPL=1
  86. IADEPL=3
  87. ENDIF
  88. C Autres cas :
  89. ELSE
  90. LDEPL=0
  91. IADEPL=0
  92. ENDIF
  93. C Cas particulier pour certains modes de IDIM=1
  94. IF (ISPE1D.EQ.1) THEN
  95. DO I=1,LDEPL
  96. IF (CMOT.EQ.'DEPL') THEN
  97. MOTS(**)=MODE1D(IADEPL+I)
  98. ELSE
  99. MOTS(**)=MOFO1D(IADEPL+I)
  100. ENDIF
  101. ENDDO
  102. C Cas general
  103. ELSE
  104. DO I=1,LDEPL
  105. IF (CMOT.EQ.'DEPL') THEN
  106. MOTS(**)=MODEPL(IADEPL+I)
  107. ELSE
  108. MOTS(**)=MODEDU(IADEPL+I)
  109. ENDIF
  110. ENDDO
  111. ENDIF
  112. SEGDES MLMOTS
  113. ELSE
  114. MOTERR(1:4)=CMOT
  115. * 927 2
  116. * Le type d'inconnue %m1:8 ne convient pas.
  117. CALL ERREUR(927)
  118. ENDIF
  119. RETURN
  120. *
  121. * End of subroutine IDCOMP
  122. *
  123. END
  124.  
  125.  
  126.  

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