Télécharger iddiff.eso

Retour à la liste

Numérotation des lignes :

  1. C IDDIFF SOURCE KICH 14/07/16 21:15:36 8101
  2.  
  3. SUBROUTINE IDDIFF (ITROP,MOOBL,MOFAC,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. * MOOBL (E/S) pointeur sur les composantes obligatoires *
  10. * MOFAC (E/S) pointeur sur les composantes facultatives *
  11. * INLIN (E) numero du modele dans MODDIF (INATUU du MODELE) *
  12. * IRET (S) =0 en cas de probleme *
  13. *----------------------------------------------------------------------*
  14.  
  15. IMPLICIT INTEGER(I-N)
  16. IMPLICIT REAL*8(A-H,O-Z)
  17.  
  18. -INC CCOPTIO
  19. -INC SMLMOTS
  20.  
  21. JGN = 8
  22.  
  23. * Loi de FICK : loi lineaire
  24. * ---------------
  25. IF (INLIN.EQ.0) THEN
  26. * Pas de composantes supplementaires que les coefficients lineaires
  27. IRET = 1
  28.  
  29. * Loi SORET :
  30. * -------------
  31. ELSE IF (INLIN.EQ.1) THEN
  32. IF (MOOBL.NE.0) THEN
  33. MLMOTS = MOOBL
  34. JGA = MOTS(/2)
  35. JGM = JGA+10
  36. SEGADJ,MLMOTS
  37. ELSE
  38. JGA = 0
  39. JGM = 10
  40. SEGINI,MLMOTS
  41. ENDIF
  42. C -- Diffusion isotrope
  43. IF (ITROP.EQ.1) THEN
  44. JGM = JGA+1
  45. C*8 MOTS(JGA+1) = 'KSORET '
  46. MOTS(JGA+1) = 'KS '
  47. C -- Diffusion orthotrope
  48. ELSE IF (ITROP.EQ.2) THEN
  49. C ---- Elements massifs bidimensionnels PLAN et AXISYMETRIQUE
  50. IF (IFOMOD.LE.0) THEN
  51. JGM = JGA + 2
  52. C*8 MOTS(JGA+1) = 'KSORET1 '
  53. C*8 MOTS(JGA+2) = 'KSORET2 '
  54. MOTS(JGA+1) = 'KS1 '
  55. MOTS(JGA+2) = 'KS2 '
  56. C ---- Elements massifs bidimensionnels FOURIER
  57. C ---- Elements massifs TRIDimensionnels
  58. ELSE
  59. JGM = JGA + 3
  60. C*8 MOTS(JGA+1) = 'KSORET1 '
  61. C*8 MOTS(JGA+2) = 'KSORET2 '
  62. C*8 MOTS(JGA+3) = 'KSORET3 '
  63. MOTS(JGA+1) = 'KS1 '
  64. MOTS(JGA+2) = 'KS2 '
  65. MOTS(JGA+3) = 'KS3 '
  66. ENDIF
  67. C -- Diffusion anisotrope
  68. ELSE IF (ITROP.EQ.3) THEN
  69. C ---- Elements massifs bidimensionnels PLAN et AXISYMETRIQUE
  70. IF (IFOMOD.LE.0) THEN
  71. JGM = JGA + 3
  72. C*8 MOTS(JGA+1) = 'KSORET11'
  73. C*8 MOTS(JGA+2) = 'KSORET22'
  74. C*8 MOTS(JGA+3) = 'KSORET21'
  75. MOTS(JGA+1) = 'KS11 '
  76. MOTS(JGA+2) = 'KS22 '
  77. MOTS(JGA+3) = 'KS21 '
  78. C ---- Elements massifs bidimensionnels FOURIER
  79. ELSE IF (IFOMOD.EQ.1) THEN
  80. JGM = JGA + 4
  81. C*8 MOTS(JGA+1) = 'KSORET11'
  82. C*8 MOTS(JGA+2) = 'KSORET22'
  83. C*8 MOTS(JGA+3) = 'KSORET21'
  84. C*8 MOTS(JGA+4) = 'KSORET33'
  85. MOTS(JGA+1) = 'KS11 '
  86. MOTS(JGA+2) = 'KS22 '
  87. MOTS(JGA+3) = 'KS21 '
  88. MOTS(JGA+4) = 'KS33 '
  89. C ---- Elements massifs TRIDimensionnels
  90. ELSE IF (IFOMOD.EQ.2) THEN
  91. JGM = JGA + 6
  92. C*8 MOTS(JGA+1) = 'KSORET11'
  93. C*8 MOTS(JGA+2) = 'KSORET22'
  94. C*8 MOTS(JGA+3) = 'KSORET33'
  95. C*8 MOTS(JGA+4) = 'KSORET21'
  96. C*8 MOTS(JGA+5) = 'KSORET31'
  97. C*8 MOTS(JGA+6) = 'KSORET32'
  98. MOTS(JGA+1) = 'KS11 '
  99. MOTS(JGA+2) = 'KS22 '
  100. MOTS(JGA+3) = 'KS33 '
  101. MOTS(JGA+4) = 'KS21 '
  102. MOTS(JGA+5) = 'KS31 '
  103. MOTS(JGA+6) = 'KS32 '
  104. ENDIF
  105. ELSE
  106. C -- Erreur ne devant pas survenir
  107. IRET = 0
  108. CALL ERREUR(261)
  109. RETURN
  110. ENDIF
  111. SEGADJ,MLMOTS
  112. MOOBL = MLMOTS
  113. IRET = 1
  114.  
  115. * Loi UTILISATEUR :
  116. * -------------------
  117. ELSE IF (INLIN.EQ.2) THEN
  118. * Par defaut pas de composantes autres que celles de l'utilisateur
  119. IRET = 1
  120.  
  121. ELSEIF (INLIN.eq.5) THEN
  122. * diffusion avec dissipation affine
  123. IF (MOOBL.NE.0) THEN
  124. MLMOTS = MOOBL
  125. JGA = MOTS(/2)
  126. JGM = JGA+2
  127. SEGADJ,MLMOTS
  128. MOTS(JGA+1)='DAF0'
  129. MOTS(JGA+2)='DAF1'
  130. IRET = 1
  131. ELSE
  132. C -- Erreur ne devant pas survenir
  133. IRET = 0
  134. CALL ERREUR(261)
  135. RETURN
  136. ENDIF
  137. ELSEIF (INLIN.eq.6) THEN
  138. * diffusion avec dissipation visqueuse
  139. IF (MOOBL.NE.0) THEN
  140. MLMOTS = MOOBL
  141. JGA = MOTS(/2)
  142. JGM = JGA+2
  143. SEGADJ,MLMOTS
  144. MOTS(JGA+1)='DVQ0'
  145. MOTS(JGA+2)='DVQ1'
  146. IRET = 1
  147. ELSE
  148. C -- Erreur ne devant pas survenir
  149. IRET = 0
  150. CALL ERREUR(261)
  151. RETURN
  152. ENDIF
  153.  
  154. * Loi inconnue : ERREUR
  155. * ----------------
  156. ELSE
  157. IRET = 0
  158. CALL ERREUR(261)
  159. ENDIF
  160.  
  161. RETURN
  162. END
  163.  
  164.  
  165.  
  166.  

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