Télécharger tconv1.eso

Retour à la liste

Numérotation des lignes :

tconv1
  1. C TCONV1 SOURCE CB215821 21/02/11 21:15:29 10886
  2. SUBROUTINE TCONV1(ipmail,IPINTE,IVAMAT,ipmatr,LRE,NLG,NEF)
  3.  
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8 (A-H,O-Z)
  6.  
  7. C=======================================================================
  8. C= T C O N V 1 =
  9. C= ----------- =
  10. C= =
  11. C= Fonction : =
  12. C= ---------- =
  13. C= Calcul de la matrice de CONVECTION des elements a integration =
  14. C= numerique =
  15. C= =
  16. C= Clement BERTHINIER, le 04 fevrier 2021. =
  17. C=======================================================================
  18.  
  19. -INC PPARAM
  20. -INC CCOPTIO
  21. -INC CCREEL
  22. -INC SMCOORD
  23. -INC SMELEME
  24. -INC SMRIGID
  25. -INC SMCHAML
  26. -INC SMINTE
  27.  
  28. SEGMENT MPTVAL
  29. INTEGER IPOS(NS),NSOF(NS),IVAL(NCOSOU)
  30. CHARACTER*16 TYVAL(NCOSOU)
  31. ENDSEGMENT
  32.  
  33. SEGMENT MMAT1
  34. REAL*8 CEL(LRE,LRE),XE(3,NBNN)
  35. REAL*8 SHP(6,NBNN),FORME(NBNN)
  36. ENDSEGMENT
  37.  
  38. MELEME = IPMAIL
  39. NBNN = NUM(/1)
  40. NBELEM = NUM(/2)
  41.  
  42. MINTE = IPINTE
  43. NBPGAU = POIGAU(/1)
  44.  
  45. C Preparation du champ de caracteristiques 'H'
  46. MPTVAL = IVAMAT
  47. MELVAL = MPTVAL.IVAL(1)
  48. IVEL1 = VELCHE(/1)
  49. IVEL2 = VELCHE(/2)
  50.  
  51. XMATRI = IPMATR
  52.  
  53. SEGINI,MMAT1
  54.  
  55. C 1.7 - Comme on traite la CONVECTION et les echanges FACE A FACE, on
  56. C introduit le nombre de NOEUDS pour les elements FACE A FACE.
  57. C ===
  58. NBN2 = NBNN
  59. IF ((NEF.EQ.12) .OR. (NEF.EQ.13) .OR. (NEF.EQ.18) .OR.
  60. & (NEF.EQ.19) .OR. (NEF.EQ.20) .OR. (NEF.EQ.21) .OR.
  61. & ((IDIM.EQ.1).AND.(NEF.EQ.2)) )
  62. & NBN2 = NBNN / 2
  63. C Equivalent a ? IF (ICON.GE.7) NBN2 = NBNN / 2
  64.  
  65.  
  66. C 3.2 - Boucle sur les elements du maillage elementaire (ipmail)
  67. C ==============================================================
  68. DO iel = 1, nbelem
  69.  
  70. iemn = MIN(iel,IVEL2)
  71. C- Mise a zero de la matrice de CONVECTION de l'element iel
  72. CALL ZERO(CEL,LRE,LRE)
  73. C- Recuperation des coordonnees GLOABLES des noeuds de l'element
  74. CALL DOXE(XCOOR,IDIM,NBNN,NUM,iel,XE)
  75.  
  76. C- BOUCLE sur les points de Gauss de l'element iel
  77. iFois = 0
  78. DO igau = 1, NBPGAU
  79.  
  80. C-- Calcul du jacobien, des fonctions de forme et de leurs
  81. C-- derivees au point de Gauss igau
  82. CALL TCONV3(NLG,igau,NBNN,NBN2,XE,SHPTOT,SHP,FORME,DJAC)
  83. IF (IERR.NE.0) RETURN
  84. IF (DJAC.LT.XZERO) iFois=iFois+1
  85. DJAC = ABS(DJAC)
  86. C-- Erreur si le jacobien est nul en ce point de Gauss
  87. IF (DJAC.LT.XPETIT) THEN
  88. INTERR(1) = iel
  89. CALL ERREUR(259)
  90. RETURN
  91. ENDIF
  92. C-- Calcul du terme .Vol en ce point de Gauss
  93. igmn = MIN(igau,IVEL1)
  94. COEF = DJAC * POIGAU(igau) * VELCHE(igmn,iemn)
  95. C-- Calcul de la contribution du point de Gauss a la matrice de
  96. C-- CONVECTION elementaire pour cet element fini
  97. CALL NTNST(FORME,COEF,LRE,1,CEL)
  98. ENDDO
  99. C- FIN DE LA BOUCLE sur les points d'integration de l'element iel
  100.  
  101. C- Erreur si, en un point de Gauss, le jacobien change de signe.
  102. IF (iFois.NE.0.AND.iFois.NE.NBPGAU) THEN
  103. INTERR(1) = iel
  104. CALL ERREUR(195)
  105. RETURN
  106. ENDIF
  107. C- Stockage de la matrice de CONVECTION pour cet element fini :
  108. C- remplissage de xmatri
  109. CALL REMPMT(CEL,LRE,xmatri.re(1,1,iel))
  110.  
  111. ENDDO
  112. C= FIN DE LA BOUCLE sur les elements
  113.  
  114. SEGSUP,MMAT1
  115. END
  116.  

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