Télécharger lineat.eso

Retour à la liste

Numérotation des lignes :

  1. C LINEAT SOURCE CB215821 19/08/20 21:19:22 10287
  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. DO 1 i=1,imache(/1)
  29. meleme=imache(i)
  30. IF (itypel.NE. 3.AND.itypel.NE. 6.AND.itypel.NE. 10.AND.
  31. . itypel.NE.15.AND.itypel.NE.17) GOTO 1
  32. nbelt=num(/2)
  33. mchaml=ichaml(i)
  34. DO 2 j=1,nomche(/2)
  35. IF (nomche(j).NE.'T ') GOTO 2
  36. IF (typche(j).NE.'REAL*8') GOTO 2
  37. melval=ielval(j)
  38. SEGACT,melval*MOD
  39. IF (velche(/1)*velche(/2).NE.1) THEN
  40. IF (itypel.EQ.3.and.velche(/1).eq.3) THEN
  41. DO iel=1,nbelt
  42. velche(2,iel)=0.5*(velche(1,iel)+velche(3,iel))
  43. ENDDO
  44. ELSE IF (itypel.EQ.6.and.velche(/1).eq.6) THEN
  45. DO iel=1,nbelt
  46. velche(2,iel)=0.5*(velche(1,iel)+velche(3,iel))
  47. velche(4,iel)=0.5*(velche(3,iel)+velche(5,iel))
  48. velche(6,iel)=0.5*(velche(5,iel)+velche(1,iel))
  49. ENDDO
  50. ELSE IF (itypel.EQ.10.and.velche(/1).eq.8) THEN
  51. DO iel=1,nbelt
  52. velche(2,iel)=0.5*(velche(1,iel)+velche(3,iel))
  53. velche(4,iel)=0.5*(velche(3,iel)+velche(5,iel))
  54. velche(6,iel)=0.5*(velche(5,iel)+velche(7,iel))
  55. velche(8,iel)=0.5*(velche(7,iel)+velche(1,iel))
  56. ENDDO
  57. ELSE IF (itypel.EQ.15.and.velche(/1).eq.20) THEN
  58. DO iel=1,nbelt
  59. velche( 2,iel)=0.5*(velche( 1,iel)+velche( 3,iel))
  60. velche( 4,iel)=0.5*(velche( 3,iel)+velche( 5,iel))
  61. velche( 6,iel)=0.5*(velche( 5,iel)+velche( 7,iel))
  62. velche( 8,iel)=0.5*(velche( 7,iel)+velche( 1,iel))
  63. velche( 9,iel)=0.5*(velche( 1,iel)+velche(13,iel))
  64. velche(10,iel)=0.5*(velche( 3,iel)+velche(15,iel))
  65. velche(11,iel)=0.5*(velche( 5,iel)+velche(17,iel))
  66. velche(12,iel)=0.5*(velche( 7,iel)+velche(19,iel))
  67. velche(14,iel)=0.5*(velche(13,iel)+velche(15,iel))
  68. velche(16,iel)=0.5*(velche(15,iel)+velche(17,iel))
  69. velche(18,iel)=0.5*(velche(17,iel)+velche(19,iel))
  70. velche(20,iel)=0.5*(velche(19,iel)+velche(13,iel))
  71. ENDDO
  72. ELSE IF (itypel.EQ.17.and.velche(/1).eq.15) THEN
  73. DO iel=1,nbelt
  74. velche( 2,iel)=0.5*(velche( 1,iel)+velche( 3,iel))
  75. velche( 4,iel)=0.5*(velche( 3,iel)+velche( 5,iel))
  76. velche( 6,iel)=0.5*(velche( 5,iel)+velche( 1,iel))
  77. velche( 7,iel)=0.5*(velche( 1,iel)+velche(10,iel))
  78. velche( 8,iel)=0.5*(velche( 3,iel)+velche(12,iel))
  79. velche( 9,iel)=0.5*(velche( 5,iel)+velche(14,iel))
  80. velche(11,iel)=0.5*(velche(10,iel)+velche(12,iel))
  81. velche(13,iel)=0.5*(velche(12,iel)+velche(14,iel))
  82. velche(15,iel)=0.5*(velche(14,iel)+velche(10,iel))
  83. ENDDO
  84. ENDIF
  85. ENDIF
  86. 2 CONTINUE
  87. 1 CONTINUE
  88.  
  89. END
  90.  
  91.  
  92.  

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