Télécharger idcomp.eso

Retour à la liste

Numérotation des lignes :

  1. C IDCOMP SOURCE CB215821 20/11/25 13:30:07 10792
  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.  
  29. -INC PPARAM
  30. -INC CCOPTIO
  31. -INC SMLMOTS
  32. *
  33. CHARACTER*(LOCOMP) MODEPL(6),MODEDU(6)
  34. CHARACTER*(LOCOMP) MODE1D(2),MOFO1D(2)
  35. CHARACTER*(*) CMOT
  36. *
  37. DATA MODEPL / 'UX ','UY ','UZ ','UR ','UZ ','UT ' /
  38. DATA MODEDU / 'FX ','FY ','FZ ','FR ','FZ ','FT ' /
  39. C Tableaux MODE1D et MOFO1D sont utilises pour certains modes 1D
  40. DATA MODE1D / 'UX ','UZ ' /
  41. DATA MOFO1D / 'FX ','FZ ' /
  42. *
  43. * Executable statements
  44. *
  45. IF (CMOT.EQ.'DEPL'.OR.CMOT.EQ.'FORC') THEN
  46. JGN=LOCOMP
  47. JGM=0
  48. SEGINI MLMOTS
  49. C Quelques initialisations selon le type de probleme
  50. C Cas IDIM = 1 :
  51. C ISPE1D = 1 si IDIM=1 et IFOUR=9 ou 10, car les noms de DDL primaux et
  52. C variables duales ne sont pas dans l'ordre "classique" (un traitement
  53. C specifique est alors necessaire).
  54. ISPE1D=0
  55. C Deformations planes ou contraintes planes ou defo. plane gene :
  56. IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-3) THEN
  57. LDEPL=2
  58. IADEPL=0
  59. C Axisymetrique :
  60. ELSEIF (IFOUR.EQ.0) THEN
  61. LDEPL=2
  62. IADEPL=3
  63. C Fourier :
  64. ELSEIF (IFOUR.EQ.1) THEN
  65. LDEPL=3
  66. IADEPL=3
  67. C Tridimensionnel :
  68. ELSEIF (IFOUR.EQ.2) THEN
  69. LDEPL=3
  70. IADEPL=0
  71. C Massif 1D (IDIM=1) :
  72. ELSEIF (IFOUR.GE.3.AND.IFOUR.LE.15) THEN
  73. IF (IFOUR.LE.6) THEN
  74. LDEPL=1
  75. IADEPL=0
  76. ELSEIF (IFOUR.GE.7.AND.IFOUR.LE.10) THEN
  77. LDEPL=2
  78. IADEPL=0
  79. IF (IFOUR.EQ.9.OR.IFOUR.EQ.10) ISPE1D=1
  80. ELSEIF (IFOUR.EQ.11) THEN
  81. LDEPL=3
  82. IADEPL=0
  83. ELSE IF (IFOUR.EQ.15) THEN
  84. LDEPL=2
  85. IADEPL=3
  86. ELSE
  87. LDEPL=1
  88. IADEPL=3
  89. ENDIF
  90. C Autres cas :
  91. ELSE
  92. LDEPL=0
  93. IADEPL=0
  94. ENDIF
  95. C Cas particulier pour certains modes de IDIM=1
  96. IF (ISPE1D.EQ.1) THEN
  97. DO I=1,LDEPL
  98. IF (CMOT.EQ.'DEPL') THEN
  99. MOTS(**)=MODE1D(IADEPL+I)
  100. ELSE
  101. MOTS(**)=MOFO1D(IADEPL+I)
  102. ENDIF
  103. ENDDO
  104. C Cas general
  105. ELSE
  106. DO I=1,LDEPL
  107. IF (CMOT.EQ.'DEPL') THEN
  108. MOTS(**)=MODEPL(IADEPL+I)
  109. ELSE
  110. MOTS(**)=MODEDU(IADEPL+I)
  111. ENDIF
  112. ENDDO
  113. ENDIF
  114. SEGDES MLMOTS
  115. ELSE
  116. MOTERR=CMOT
  117. CALL ERREUR(927)
  118. ENDIF
  119. RETURN
  120. *
  121. * End of subroutine IDCOMP
  122. *
  123. END
  124.  
  125.  

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