Télécharger tseg2c.eso

Retour à la liste

Numérotation des lignes :

tseg2c
  1. C TSEG2C SOURCE BP208322 15/06/22 21:23:28 8543
  2.  
  3. ************************************************************************
  4. *
  5. * T S E G 2 C
  6. * -----------
  7. *
  8. * FONCTION:
  9. * ---------
  10. * CALCUL DE LA MATRICE DE CONDUCTIVITE D'UNE BARRE ( SEG2 )
  11. *
  12. * PARAMETRES: (E)=ENTREE (S)=SORTIE
  13. * -----------
  14. * IPMAIL (E) NUMERO DU MAILLAGE ELEMENTAIRE CONSIDERE,DANS
  15. * L'OBJET MODELE
  16. * IPCHEM (E) POINTEUR SUR LE CHAMELEM DE CARACTERISTIQUES
  17. * IPRIGI (E/S) POINTEUR SUR L'OBJET RESULTAT,DE TYPE RIGIDITE
  18. *
  19. * AUTEUR, DATE DE CREATION:
  20. * -------------------------
  21. * DENIS ROBERT, LE 16 NOVEMBRE 1988.
  22. * REPRIS PAR P. DOWLATYARI SEP. 90
  23. ************************************************************************
  24.  
  25. SUBROUTINE TSEG2C (NEF,IPMAIL,IPINTE,IMATE,IVAMAT,NVAMAT,
  26. & IPMATR,NLIGR)
  27.  
  28. IMPLICIT INTEGER(I-N)
  29. IMPLICIT REAL*8(A-H,O-Z)
  30.  
  31.  
  32. -INC PPARAM
  33. -INC CCOPTIO
  34. -INC CCREEL
  35. -INC CCHAMP
  36.  
  37. -INC SMCHAML
  38. -INC SMCOORD
  39. -INC SMELEME
  40. -INC SMINTE
  41. -INC SMRIGID
  42.  
  43. SEGMENT,MMAT1
  44. REAL*8 VALMAT(NMATR)
  45. REAL*8 CEL(NBNN,NBNN),XE(3,NBNN)
  46. ENDSEGMENT
  47. *
  48. SEGMENT MPTVAL
  49. INTEGER IPOS(NS) ,NSOF(NS)
  50. INTEGER IVAL(NCOSOU)
  51. CHARACTER*16 TYVAL(NCOSOU)
  52. ENDSEGMENT
  53. *
  54. PARAMETER (X1s2 = 0.5D0)
  55.  
  56. c* IF (NEF.NE.46) CALL ERREUR(5)
  57.  
  58. IF (IFOMOD.NE.-1.AND.IFOMOD.NE.2.and.ifomod.ne.0) THEN
  59. CALL ERREUR(19)
  60. RETURN
  61. ENDIF
  62. IF (IMATE.NE.1) THEN
  63. CALL ERREUR (251)
  64. RETURN
  65. ENDIF
  66. *
  67. *--- CARACTERISTIQUES GEOMETRIQUES DU MAILLAGE ELEMENTAIRE
  68. MELEME = IPMAIL
  69. c* SEGACT,MELEME
  70. NBNN = NUM(/1)
  71. NBELEM = NUM(/2)
  72. *
  73. *--- CARACTERISTIQUES D'INTEGRATION DU BARR-SEG2
  74. MINTE = IPINTE
  75. c* SEGACT,MINTE
  76. NBPGAU = POIGAU(/1)
  77. *
  78. XMATRI = IPMATR
  79. c* SEGACT,XMATRI*MOD
  80. *
  81. MPTVAL = IVAMAT
  82. *
  83. NMATR = NVAMAT
  84. SEGINI,MMAT1
  85. *
  86. *--- BOUCLE SUR LES ELEMENTS DU MAILLAGE ELEMENTAIRE IPMAIL
  87. *
  88. DO 10 iel = 1, NBELEM
  89.  
  90. CALL DOXE(XCOOR,IDIM,NBNN,NUM,iel,XE)
  91. *
  92. *- Calcul de la longueur de la BARRE
  93. IF (IDIM.EQ.2) THEN
  94. D = (XE(1,2)-XE(1,1))**2 + (XE(2,2)-XE(2,1))**2
  95. ELSE
  96. D = (XE(1,2)-XE(1,1))**2 + (XE(2,2)-XE(2,1))**2
  97. & + (XE(3,2)-XE(3,1))**2
  98. ENDIF
  99. IF (D.LE.XPETIT) THEN
  100. INTERR(1) = iel
  101. CALL ERREUR(255)
  102. GOTO 999
  103. ENDIF
  104. *- Jacobien (constant) le long de la BARRE
  105. D = X1s2 / SQRT(D)
  106.  
  107. CALL ZERO(CEL,NBNN,NBNN)
  108. *
  109. *--- BOUCLE SUR LES POINTS DE GAUSS
  110. *
  111. DO 20 iGau = 1, NBPGAU
  112. *
  113. *- Recuperation des conductivite et section en un point de la barre
  114. *- NB : ces composantes sont obligatoires donc IVAL(i) n'est pas nul !
  115. DO i = 1, NMATR
  116. c* IF (IVAL(i).NE.0) THEN
  117. MELVAL = IVAL(i)
  118. ibmn = MIN(iel ,VELCHE(/2))
  119. igmn = MIN(igau,VELCHE(/1))
  120. VALMAT(i) = VELCHE(igmn,ibmn)
  121. c* ELSE
  122. c* VALMAT(i) = 0.
  123. c* ENDIF
  124. ENDDO
  125. *
  126. SE = VALMAT(2)
  127. *- Section nulle ou trop faible dans une partie de l'element BARRE
  128. IF (SE.LE.XPETIT) THEN
  129. CALL ERREUR(517)
  130. GOTO 999
  131. ENDIF
  132. *
  133. * ON AJOUTE LE PRODUIT XK*SE*POIGAU*DETJ*B(TRANSPOSEE)*B
  134. * POUR LE POINT DE GAUSS CONSIDERE A LA MATRICE CEL
  135. FAC = VALMAT(1) * SE * POIGAU(igau) * D
  136. CEL(1,1) = CEL(1,1) + FAC
  137. CEL(1,2) = CEL(1,2) - FAC
  138. CEL(2,1) = CEL(2,1) - FAC
  139. CEL(2,2) = CEL(2,2) + FAC
  140. *
  141. 20 CONTINUE
  142. *
  143. *- REMPLISSAGE DE XMATRI
  144. CALL REMPMT(CEL,NLIGR,RE(1,1,iel))
  145. *
  146. 10 CONTINUE
  147. *
  148. 999 CONTINUE
  149. SEGSUP,MMAT1
  150. *
  151. RETURN
  152. END
  153.  
  154.  
  155.  
  156.  
  157.  

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