Télécharger capaba.eso

Retour à la liste

Numérotation des lignes :

  1. C CAPABA SOURCE CB215821 17/01/16 21:15:07 9279
  2.  
  3. C=======================================================================
  4. C= C A P A N U =
  5. C= ----------- =
  6. C= =
  7. C= Fonction : =
  8. C= ---------- =
  9. C= Calcul de la matrice de CAPACITE CALORIFIQUE d'un element BARRe =
  10. C= =
  11. C= Parametres : (E)=Entree (S)=Sortie =
  12. C= ------------ =
  13. C= IMAIL (E) Numero du segment IMODEL dans le segment MMODEL =
  14. C= IPCHA1 (E) Pointeur sur un segment MCHEL1 de CARACTERISTIQUES =
  15. C= CLAT (E) Chaleur latente du changement de phase =
  16. C= TPHA1 (E) Temperature 1 de changement de phase =
  17. C= TPHA2 (E) Temperature 2 de changement de phase =
  18. C= IPVAL1 (E) CHAMELEM de temperatures au pas N =
  19. C= IPVAL2 (E) CHAMELEM de temperatures au pas N + 1 =
  20. C= IPRIGI (E/S) Pointeur sur l'objet RIGIDITE (CAPACITE) (ACTIF) =
  21. C= =
  22. C= Denis ROBERT, le 15 fevrier 1988. =
  23. C=======================================================================
  24.  
  25. SUBROUTINE CAPABA (NEF,IPMAIL,IPINTE,IVAMAT,NVAMAT,IVAPHA,NVAPHA,
  26. & IPMATR,NLIGR,INFOR)
  27.  
  28. IMPLICIT INTEGER(I-N)
  29. IMPLICIT REAL*8 (A-H,O-Z)
  30.  
  31. -INC CCOPTIO
  32. -INC CCREEL
  33. -INC CCHAMP
  34.  
  35. -INC SMCOORD
  36. -INC SMINTE
  37. -INC SMRIGID
  38. -INC SMELEME
  39. -INC SMCHAML
  40.  
  41. CHARACTER*16 MOFOR
  42. INTEGER INFOR
  43.  
  44. SEGMENT MMAT1
  45. REAL*8 CAP(NLIGR,NLIGR),XE(3,NBNN)
  46. REAL*8 SHP(6,NBNN),FORME(NBNN)
  47. ENDSEGMENT
  48.  
  49. SEGMENT MPTVAL
  50. INTEGER IPOS(NS),NSOF(NS),IVAL(NCOSOU)
  51. CHARACTER*16 TYVAL(NCOSOU)
  52. ENDSEGMENT
  53.  
  54. SEGMENT SVACOM
  55. REAL*8 VACOMP(NVAMAT)
  56. ENDSEGMENT
  57.  
  58. SEGINI,SVACOM
  59.  
  60. C* IF (NEF.NE.46) CALL ERREUR(5)
  61. IF (IFOMOD.NE.-1 .AND. IFOMOD.NE.2.and.ifomod.ne.0) THEN
  62. CALL ERREUR(251)
  63. RETURN
  64. ENDIF
  65. IFIN = IDIM+1
  66.  
  67. C 1 - INITIALISATIONS ET VERIFICATIONS
  68. C ======================================
  69. MELEME = IPMAIL
  70. c* SEGACT,MELEME
  71. NBNN = NUM(/1)
  72. NBELEM = NUM(/2)
  73. C =====
  74. MINTE = IPINTE
  75. c* SEGACT,MINTE
  76. NBPGAU = POIGAU(/1)
  77. C =====
  78. c* MPTVAL = IVAMAT
  79. c* SEGACT,MPTVAL
  80. c* IF (IVAPHA.NE.0) THEN
  81. c* MPTVAL = IVAPHA
  82. c* SEGACT,MPTVAL
  83. c* ENDIF
  84. C =====
  85. XMATRI = IPMATR
  86. c* SEGACT,XMATRI*MOD
  87. c* NLIGRP = NLIGR
  88. c* NLIGRD = NLIGR
  89. C =====
  90. SEGINI,MMAT1
  91.  
  92. C 2 - BOUCLE SUR LES ELEMENTS DU MAILLAGE ELEMENTAIRE IPMAIL
  93. C ============================================================
  94. DO iElt = 1, NBELEM
  95. C =====
  96. C 2.1 - Mise a zero de la matrice de CAPACITE de l'element iElt
  97. C =====
  98. CALL ZERO(CAP,NLIGR,NLIGR)
  99. C =====
  100. C 2.2 - Recuperation des coordonnees GLOBALES des noeuds de l'element
  101. C =====
  102. CALL DOXE(XCOOR,IDIM,NBNN,NUM,iElt,XE)
  103. C =====
  104. C 2.3 - Boucle sur les points de Gauss de l'element iElt
  105. C =====
  106. iFois=0
  107. DO iGau = 1, NBPGAU
  108. C- Calcul du jacobien, des fonctions de forme et de leurs derivees
  109. C- au point de Gauss iGau
  110. DO j = 1, NBNN
  111. FORME(j) = SHPTOT(1,j,iGau)
  112. DO i = 1, IFIN
  113. SHP(i,j) = SHPTOT(i,j,iGau)
  114. ENDDO
  115. ENDDO
  116. CALL TCONV4(XE,SHP,IDIM,NBNN,DJAC)
  117. IF (IERR.NE.0) GOTO 9990
  118. IF (DJAC.LT.XZero) iFois=iFois+1
  119. DJAC = ABS(DJAC)
  120. C- Erreur si le jacobien est nul en ce point de Gauss
  121. IF (DJAC.LT.XPetit) THEN
  122. INTERR(1) = iElt
  123. CALL ERREUR(259)
  124. GOTO 9990
  125. ENDIF
  126.  
  127. C- Calcul du terme Rho.Cp.Vol.Se en ce point de Gauss pour la THERMIQUE
  128. MPTVAL = IVAMAT
  129. DO i = 1, NVAMAT
  130. MELVAL = IVAL(i)
  131. IGMN = MIN(iGau,VELCHE(/1))
  132. IEMN = MIN(iElt,VELCHE(/2))
  133. VACOMP(i) = VELCHE(IGMN,IEMN)
  134. ENDDO
  135. VALRHO = VACOMP(1)
  136.  
  137. C CAS THERMIQUE on fait RHO.CP
  138. IF (INFOR .EQ. 1) VACOMP(1) = VALRHO * VACOMP(2)
  139.  
  140. C- Erreur si la section d'un element BARRe est nulle
  141. SE = VACOMP(NVAMAT)
  142. IF (SE.LE.XPetit) THEN
  143. CALL ERREUR(517)
  144. GOTO 9990
  145. ENDIF
  146. CAPA = SE * DJAC * POIGAU(iGau) * VACOMP(1)
  147. C- Calcul de la contribution du point de Gauss a la matrice CAPACITE
  148. C- elementaire pour cet element fini
  149. CALL NTNST(FORME,CAPA,NBNN,1,CAP)
  150.  
  151. C =======
  152. ENDDO
  153. C =====
  154. C 2.4 - Erreur si, en un point de Gauss, le jacobien change de signe
  155. C =====
  156. IF (iFois.NE.0.AND.iFois.NE.NBPGAU) THEN
  157. INTERR(1) = iElt
  158. CALL ERREUR(195)
  159. GOTO 9990
  160. ENDIF
  161. C =====
  162. C 2.5 - Stockage de la matrice de CAPACITE pour cet element fini
  163. C (remplissage de XMATRI)
  164. C =====
  165. CALL REMPMT(CAP,NLIGR,RE(1,1,iElt))
  166. ENDDO
  167.  
  168. C 3 - MENAGE : DESACTIVATION/DESTRUCTION DE SEGMENTS
  169. C ====================================================
  170. 9990 CONTINUE
  171. SEGSUP,MMAT1,SVACOM
  172. c* SEGDES,MELEME,MINTE,XMATRI
  173. c* MPTVAL = IVAMAT
  174. c* SEGDES,MPTVAL
  175. c* IF (IVAPHA.NE.0) THEN
  176. c* MPTVAL = IVAPHA
  177. c* SEGDES,MPTVAL
  178. c* ENDIF
  179.  
  180. RETURN
  181. END
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  

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