Télécharger lineat.eso

Retour à la liste

Numérotation des lignes :

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

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