Télécharger lineat.eso

Retour à la liste

Numérotation des lignes :

  1. C LINEAT SOURCE PV 09/03/12 21:27:31 6325
  2.  
  3. C=======================================================================
  4. C= L I N E A T =
  5. C= ----------- =
  6. C= =
  7. C= Fonction : =
  8. C= ---------- =
  9. C= Ce sousprogramme linearise un champ par element de temperatures =
  10. C= pour les noeuds milieux des elements (s'ils existent). =
  11. C= =
  12. C= Parametres : (E)=Entree (S)=Sortie =
  13. C= ------------ =
  14. C= IPCHEL (E/S) Pointeur MCHELM temperatures linearisees en sortie =
  15. C= =
  16. C= Remarque : Ce segment est DESACTIVE en sortie du sousprogramme. =
  17. C=======================================================================
  18.  
  19. SUBROUTINE LINEAT (IPCHEL)
  20.  
  21. IMPLICIT INTEGER(I-N)
  22. IMPLICIT REAL*8 (A-H,O-Z)
  23.  
  24. -INC SMELEME
  25. -INC SMCHAML
  26.  
  27. MCHELM=IPCHEL
  28. SEGACT,MCHELM
  29. DO i=1,imache(/1)
  30. meleme=imache(i)
  31. SEGACT,meleme
  32. IF (itypel.NE. 3.AND.itypel.NE. 6.AND.itypel.NE. 10.AND.
  33. . itypel.NE.15.AND.itypel.NE.17) GOTO 1
  34. nbelt=num(/2)
  35. mchaml=ichaml(i)
  36. SEGACT,mchaml
  37. DO j=1,nomche(/2)
  38. IF (nomche(j).NE.'T ') GOTO 2
  39. IF (typche(j).NE.'REAL*8') GOTO 2
  40. melval=ielval(j)
  41. SEGACT,melval*MOD
  42. IF (velche(/1)*velche(/2).NE.1) THEN
  43. IF (itypel.EQ.3.and.velche(/1).eq.3) THEN
  44. DO iel=1,nbelt
  45. velche(2,iel)=0.5*(velche(1,iel)+velche(3,iel))
  46. ENDDO
  47. ELSE IF (itypel.EQ.6.and.velche(/1).eq.6) THEN
  48. DO iel=1,nbelt
  49. velche(2,iel)=0.5*(velche(1,iel)+velche(3,iel))
  50. velche(4,iel)=0.5*(velche(3,iel)+velche(5,iel))
  51. velche(6,iel)=0.5*(velche(5,iel)+velche(1,iel))
  52. ENDDO
  53. ELSE IF (itypel.EQ.10.and.velche(/1).eq.8) THEN
  54. DO iel=1,nbelt
  55. velche(2,iel)=0.5*(velche(1,iel)+velche(3,iel))
  56. velche(4,iel)=0.5*(velche(3,iel)+velche(5,iel))
  57. velche(6,iel)=0.5*(velche(5,iel)+velche(7,iel))
  58. velche(8,iel)=0.5*(velche(7,iel)+velche(1,iel))
  59. ENDDO
  60. ELSE IF (itypel.EQ.15.and.velche(/1).eq.20) THEN
  61. DO iel=1,nbelt
  62. velche( 2,iel)=0.5*(velche( 1,iel)+velche( 3,iel))
  63. velche( 4,iel)=0.5*(velche( 3,iel)+velche( 5,iel))
  64. velche( 6,iel)=0.5*(velche( 5,iel)+velche( 7,iel))
  65. velche( 8,iel)=0.5*(velche( 7,iel)+velche( 1,iel))
  66. velche( 9,iel)=0.5*(velche( 1,iel)+velche(13,iel))
  67. velche(10,iel)=0.5*(velche( 3,iel)+velche(15,iel))
  68. velche(11,iel)=0.5*(velche( 5,iel)+velche(17,iel))
  69. velche(12,iel)=0.5*(velche( 7,iel)+velche(19,iel))
  70. velche(14,iel)=0.5*(velche(13,iel)+velche(15,iel))
  71. velche(16,iel)=0.5*(velche(15,iel)+velche(17,iel))
  72. velche(18,iel)=0.5*(velche(17,iel)+velche(19,iel))
  73. velche(20,iel)=0.5*(velche(19,iel)+velche(13,iel))
  74. ENDDO
  75. ELSE IF (itypel.EQ.17.and.velche(/1).eq.15) THEN
  76. DO iel=1,nbelt
  77. velche( 2,iel)=0.5*(velche( 1,iel)+velche( 3,iel))
  78. velche( 4,iel)=0.5*(velche( 3,iel)+velche( 5,iel))
  79. velche( 6,iel)=0.5*(velche( 5,iel)+velche( 1,iel))
  80. velche( 7,iel)=0.5*(velche( 1,iel)+velche(10,iel))
  81. velche( 8,iel)=0.5*(velche( 3,iel)+velche(12,iel))
  82. velche( 9,iel)=0.5*(velche( 5,iel)+velche(14,iel))
  83. velche(11,iel)=0.5*(velche(10,iel)+velche(12,iel))
  84. velche(13,iel)=0.5*(velche(12,iel)+velche(14,iel))
  85. velche(15,iel)=0.5*(velche(14,iel)+velche(10,iel))
  86. ENDDO
  87. ENDIF
  88. ENDIF
  89. SEGDES,melval
  90. 2 CONTINUE
  91. ENDDO
  92. SEGDES,mchaml
  93. 1 SEGDES,meleme
  94. ENDDO
  95. SEGDES,MCHELM
  96.  
  97. RETURN
  98. END
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  

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