Télécharger fpeltu.eso

Retour à la liste

Numérotation des lignes :

fpeltu
  1. C FPELTU SOURCE PV090527 24/04/04 21:15:15 11875
  2. C_______________________________________________________________________
  3. C
  4. C CALCUL DES FORCES DE PRESSION POUR LES ELEMENTS TUYAU
  5. C
  6. C ENTREES:
  7. C ________
  8. C
  9. C IPTVPR Pointeur sur un MELVAL contenant les pressions appliquees
  10. C IVACAR Pointeur sur un MCHAML de CARACTERISTIQUES
  11. C IPMAIL Pointeur sur un MELEME
  12. C ISOUS Entier indiquant la zone elementaire traitee
  13. C (info necessaire dans l'affichage des erreurs 128 et 138)
  14. C
  15. C SORTIES:
  16. C ________
  17. C
  18. C IVAFOR Pointeur sur un MPTVAL de forces aux noeuds
  19. C_______________________________________________________________________
  20. C
  21. SUBROUTINE FPELTU(IPTVPR,IVACAR,IPMAIL,ISOUS,IVAFOR)
  22.  
  23. IMPLICIT INTEGER(I-N)
  24. IMPLICIT REAL*8 (A-H,O-Z)
  25.  
  26.  
  27. -INC PPARAM
  28. -INC CCOPTIO
  29. -INC CCREEL
  30. -INC SMCOORD
  31. -INC SMELEME
  32. -INC SMCHAML
  33.  
  34. SEGMENT MPTVAL
  35. INTEGER IPOS(NS),NSOF(NS),IVAL(NCOSOU)
  36. CHARACTER*16 TYVAL(NCOSOU)
  37. ENDSEGMENT
  38.  
  39. DIMENSION XFORC(12),WORK(12),VECT(3)
  40. DIMENSION XE(3,2),P(3,3),XX(2),YY(2),ZZ(2)
  41.  
  42. MELEME=IPMAIL
  43. NBELEM=NUM(/2)
  44.  
  45. C= BOUCLE SUR LES ELEMENTS
  46. DO 103 IB=1,NBELEM
  47. C
  48. CALL DOXE(XCOOR,3,2,NUM,IB,XE)
  49. DO 105 J=1,2
  50. XX(J)=XE(1,J)
  51. YY(J)=XE(2,J)
  52. ZZ(J)=XE(3,J)
  53. 105 CONTINUE
  54. C
  55. XLON2=(XX(2)-XX(1))**2+(YY(2)-YY(1))**2+(ZZ(2)-ZZ(1))**2
  56. XLON=SQRT(XLON2)
  57. IF (XLON.NE.0.D0) GOTO 106
  58. C
  59. INTERR(1)=ISOUS
  60. INTERR(2)=IB
  61. CALL ERREUR(128)
  62. RETURN
  63. C
  64. 106 CONTINUE
  65. C
  66. C ON CHERCHE LES CARACTERISTIQUES
  67. C
  68. CALL ZERO(XFORC,1,12)
  69. MPTVAL=IVACAR
  70. NBCAR=IVAL(/1)
  71. C
  72. MELVAL=IVAL(1)
  73. IBMN=MIN(IB,VELCHE(/2))
  74. EPAI=VELCHE(1,IBMN)
  75. C
  76. MELVAL=IVAL(2)
  77. REXT=VELCHE(1,IBMN)
  78. C
  79. IF (IPTVPR.EQ.0) THEN
  80. MELVAL=IVAL(3)
  81. ELSE
  82. MELVAL=IPTVPR
  83. ENDIF
  84. PRES=VELCHE(1,IBMN)
  85. C
  86. IF (IVAL((NBCAR-3)).NE.0) THEN
  87. MELVAL=IVAL((NBCAR-3))
  88. RACO=VELCHE(1,IBMN)
  89. ELSE
  90. RACO=0.
  91. ENDIF
  92. C
  93. IF (IVAL((NBCAR-2)).NE.0) THEN
  94. MELVAL=IVAL((NBCAR-2))
  95. VECT(1)=VELCHE(1,IBMN)
  96. ELSE
  97. VECT(1)=0.
  98. ENDIF
  99. C
  100. IF (IVAL((NBCAR-1)).NE.0) THEN
  101. MELVAL=IVAL((NBCAR-1))
  102. VECT(2)=VELCHE(1,IBMN)
  103. ELSE
  104. VECT(2)=0.
  105. ENDIF
  106. C
  107. IF (IVAL((NBCAR )).NE.0) THEN
  108. MELVAL=IVAL((NBCAR ))
  109. VECT(3)=VELCHE(1,IBMN)
  110. ELSE
  111. VECT(3)=0.
  112. ENDIF
  113. C
  114. C
  115. RINT=REXT-EPAI
  116. FL=XPI*PRES*RINT**2
  117. IF (RACO.NE.0.D0) THEN
  118. FL=FL/SQRT(1.D0-0.25D0*XLON2/RACO**2)
  119. ENDIF
  120. CALL ZERO(WORK,1,12)
  121. WORK(1)=-FL
  122. WORK(7)=FL
  123. C
  124. CALL POUPAS(XX,YY,ZZ,VECT,P,KERRE)
  125. IF (KERRE.EQ.0) GOTO 107
  126. C
  127. INTERR(1)=ISOUS
  128. INTERR(2)=IB
  129. CALL ERREUR(138)
  130. RETURN
  131. C
  132. 107 CONTINUE
  133. CALL POUVEC(WORK,XFORC,P,2)
  134. IE=0
  135. C
  136. C REMPLISSAGE DU SEGMENT CONTENANT LES FORCES
  137. C
  138. MPTVAL=IVAFOR
  139. DO IGAU=1,2
  140. DO ICOMP=1,6
  141. MELVAL=IVAL(ICOMP)
  142. IGMN=MIN(IGAU,VELCHE(/1))
  143. IBMN=MIN(IB ,VELCHE(/2))
  144. IE=IE+1
  145. VELCHE(IGMN,IBMN)=XFORC(IE)
  146. enddo
  147. enddo
  148. C
  149. 103 CONTINUE
  150.  
  151. END
  152.  
  153.  
  154.  
  155.  
  156.  

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