Télécharger iddiff.eso

Retour à la liste

Numérotation des lignes :

  1. C IDDIFF SOURCE CB215821 17/09/28 21:15:01 9574
  2.  
  3. SUBROUTINE IDDIFF (ITROP,TABOBL,TABFAC,JGOBL,JGFAC,ITA,INLIN,IRET)
  4.  
  5. *----------------------------------------------------------------------*
  6. * Noms de composantes de materiau pour la DIFFUSION non lineaire *
  7. *----------------------------------------------------------------------*
  8. * ITROP (E) "tropie" du materiau (IMATEE du MODELE) *
  9. * TABOBL Tableau des mots OBLIGATOIRES *
  10. * TABFAC Tableau des mots FACULTATIFS *
  11. * JGOBL Taille utilisee du tableau des mots OBLIGATOIRES *
  12. * JGFAC Taille utilisee du tableau des mots FACULTATIFS *
  13. * INLIN (E) numero du modele dans MODDIF (INATUU du MODELE) *
  14. * IRET (S) =0 en cas de probleme *
  15. *----------------------------------------------------------------------*
  16.  
  17. IMPLICIT INTEGER(I-N)
  18. IMPLICIT REAL*8(A-H,O-Z)
  19.  
  20. -INC CCOPTIO
  21. CHARACTER*8 TABOBL(ITA),TABFAC(ITA)
  22.  
  23.  
  24. C -- Ajout de la 'Capacite' (FACUTATIF)
  25. JGM0 = JGFAC
  26. JGFAC= JGFAC + 1
  27. TABFAC(JGM0 + 1) = 'CDIF '
  28.  
  29. JGM0 = JGOBL
  30. * Loi de FICK : loi lineaire
  31. * ---------------
  32. IF (INLIN.EQ.0) THEN
  33. * Pas de composantes supplementaires que les coefficients lineaires
  34. IRET = 1
  35.  
  36. * Loi SORET :
  37. * -------------
  38. ELSEIF (INLIN.EQ.1) THEN
  39. C -- Diffusion isotrope
  40. IF (ITROP.EQ.1) THEN
  41. JGOBL = JGM0+1
  42. C*8 TABOBL(JGM0+1) = 'KSORET '
  43. TABOBL(JGM0+1) = 'KS '
  44. C -- Diffusion orthotrope
  45. ELSEIF (ITROP.EQ.2) THEN
  46. C ---- Elements massifs bidimensionnels PLAN et AXISYMETRIQUE
  47. IF (IFOMOD.LE.0) THEN
  48. JGOBL = JGM0 + 2
  49. C*8 TABOBL(JGM0+1) = 'KSORET1 '
  50. C*8 TABOBL(JGM0+2) = 'KSORET2 '
  51. TABOBL(JGM0+1) = 'KS1 '
  52. TABOBL(JGM0+2) = 'KS2 '
  53. C ---- Elements massifs bidimensionnels FOURIER
  54. C ---- Elements massifs TRIDimensionnels
  55. ELSE
  56. JGOBL = JGM0 + 3
  57. C*8 TABOBL(JGM0+1) = 'KSORET1 '
  58. C*8 TABOBL(JGM0+2) = 'KSORET2 '
  59. C*8 TABOBL(JGM0+3) = 'KSORET3 '
  60. TABOBL(JGM0+1) = 'KS1 '
  61. TABOBL(JGM0+2) = 'KS2 '
  62. TABOBL(JGM0+3) = 'KS3 '
  63. ENDIF
  64. C -- Diffusion anisotrope
  65. ELSEIF (ITROP.EQ.3) THEN
  66. C ---- Elements massifs bidimensionnels PLAN et AXISYMETRIQUE
  67. IF (IFOMOD.LE.0) THEN
  68. JGOBL = JGM0 + 3
  69. C*8 TABOBL(JGM0+1) = 'KSORET11'
  70. C*8 TABOBL(JGM0+2) = 'KSORET22'
  71. C*8 TABOBL(JGM0+3) = 'KSORET21'
  72. TABOBL(JGM0+1) = 'KS11 '
  73. TABOBL(JGM0+2) = 'KS22 '
  74. TABOBL(JGM0+3) = 'KS21 '
  75. C ---- Elements massifs bidimensionnels FOURIER
  76. ELSEIF (IFOMOD.EQ.1) THEN
  77. JGOBL = JGM0 + 4
  78. C*8 TABOBL(JGM0+1) = 'KSORET11'
  79. C*8 TABOBL(JGM0+2) = 'KSORET22'
  80. C*8 TABOBL(JGM0+3) = 'KSORET21'
  81. C*8 TABOBL(JGM0+4) = 'KSORET33'
  82. TABOBL(JGM0+1) = 'KS11 '
  83. TABOBL(JGM0+2) = 'KS22 '
  84. TABOBL(JGM0+3) = 'KS21 '
  85. TABOBL(JGM0+4) = 'KS33 '
  86. C ---- Elements massifs TRIDimensionnels
  87. ELSEIF (IFOMOD.EQ.2) THEN
  88. JGOBL = JGM0 + 6
  89. C*8 TABOBL(JGM0+1) = 'KSORET11'
  90. C*8 TABOBL(JGM0+2) = 'KSORET22'
  91. C*8 TABOBL(JGM0+3) = 'KSORET33'
  92. C*8 TABOBL(JGM0+4) = 'KSORET21'
  93. C*8 TABOBL(JGM0+5) = 'KSORET31'
  94. C*8 TABOBL(JGM0+6) = 'KSORET32'
  95. TABOBL(JGM0+1) = 'KS11 '
  96. TABOBL(JGM0+2) = 'KS22 '
  97. TABOBL(JGM0+3) = 'KS33 '
  98. TABOBL(JGM0+4) = 'KS21 '
  99. TABOBL(JGM0+5) = 'KS31 '
  100. TABOBL(JGM0+6) = 'KS32 '
  101. ENDIF
  102. ELSE
  103. C -- Erreur ne devant pas survenir
  104. IRET = 0
  105. CALL ERREUR(261)
  106. RETURN
  107. ENDIF
  108. IRET = 1
  109.  
  110. * Loi UTILISATEUR :
  111. * -------------------
  112. ELSEIF (INLIN.EQ.2) THEN
  113. * Par defaut pas de composantes autres que celles de l'utilisateur
  114. IRET = 1
  115.  
  116. ELSEIF (INLIN.EQ.5) THEN
  117. * diffusion avec dissipation affine
  118. JGOBL = JGM0+2
  119. TABOBL(JGM0+1)='DAF0'
  120. TABOBL(JGM0+2)='DAF1'
  121. IRET = 1
  122.  
  123. ELSEIF (INLIN.EQ.6) THEN
  124. * diffusion avec dissipation visqueuse
  125. JGOBL = JGM0+2
  126. TABOBL(JGM0+1)='DVQ0'
  127. TABOBL(JGM0+2)='DVQ1'
  128. IRET = 1
  129.  
  130. * Loi inconnue : ERREUR
  131. * ----------------
  132. ELSE
  133. IRET = 0
  134. CALL ERREUR(261)
  135. ENDIF
  136.  
  137. RETURN
  138. END
  139.  
  140.  

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