Télécharger fpco2d.eso

Retour à la liste

Numérotation des lignes :

fpco2d
  1. C FPCO2D SOURCE OF166741 25/02/21 21:16:32 12166
  2. SUBROUTINE FPCO2D(IPTVPR,IPMAIL,IVAFOR,IVACAR)
  3. *____________________________________________________________________
  4. *
  5. * CALCULE LES FORCES DE PRESSIONS SUR LES FACES D ELEMENTS
  6. * COQUES BIDIMENSIONNELS
  7. *
  8. *
  9. * ENTREES :
  10. * ---------
  11. *
  12. * IPTVPR POINTEUR SUR UN MELVAL CONTENANT LES PRESSIONS APPLIQUEES
  13. * (actif)
  14. * IPMAIL POINTEUR SUR UN OBJET GEOMETRIQUE (actif)
  15. * IVAFOR POINTEUR SUR UN MPTVAL ET UN MELVAL DEVANT CONTENIR LES
  16. * FORCES NODALES RESULTANTES
  17. *
  18. *
  19. * JACQUELINE BROCHARD AVRIL 85
  20. * PASSAGE AUX NOUVEAU CHAMELEM PAR JM CAMPENON LE 12 09 90
  21. * REPRISE MILL AVRIL 91 ON SUPPOSE QUE LES PRESSIONS SONT
  22. * DONNEES AUX NOEUDS
  23. *____________________________________________________________________
  24. IMPLICIT INTEGER(I-N)
  25. IMPLICIT REAL*8(A-H,O-Z)
  26.  
  27. -INC PPARAM
  28. -INC CCOPTIO
  29. -INC CCREEL
  30.  
  31. -INC SMCHAML
  32. -INC SMELEME
  33. -INC SMCOORD
  34.  
  35. -INC TMPTVAL
  36.  
  37. DIMENSION XE(3,3)
  38. *
  39. MELVA1=IPTVPR
  40. *
  41. MELEME=IPMAIL
  42. SEGACT MELEME
  43. NBELEM=NUM(/2)
  44. IGMN=MIN(2,MELVA1.VELCHE(/1))
  45. DIM3=1.D0
  46. *
  47. * BOUCLE SUR LES ELEMENTS
  48. *
  49. DO 1 IB=1,NBELEM
  50. C
  51. C RECUPERATION DE L'EPAISSEUR
  52. C
  53. IF (IFOUR.EQ.-2) THEN
  54. MPTVAL=IVACAR
  55. IF (IVACAR.NE.0) THEN
  56. C
  57. C DIM3 EST LA DERNIERE COMPOSANTE DE IVACAR
  58. C (CF FPCOQU ET BSIGMP)
  59. C
  60. MELVAL=IVAL(IVAL(/1))
  61. IF (MELVAL.NE.0) THEN
  62. IBMN=MIN(IB,VELCHE(/2))
  63. DIM3=VELCHE(IGMN,IBMN)
  64. ENDIF
  65. ENDIF
  66. ENDIF
  67. *
  68. CALL DOXE(XCOOR,IDIM,2,NUM,IB,XE)
  69. IF (IDIM.EQ.3) THEN
  70. R1=XE(1,1)
  71. R2=XE(1,2)
  72. Z1=XE(3,1)
  73. Z2=XE(3,2)
  74. ELSE
  75. R1=XE(1,1)
  76. R2=XE(1,2)
  77. Z1=XE(2,1)
  78. Z2=XE(2,2)
  79. ENDIF
  80. *
  81. D2=(R2-R1)*(R2-R1)+(Z2-Z1)*(Z2-Z1)
  82. D=SQRT(D2)
  83. UNSD=1.D0/D
  84. A=(R2-R1)*UNSD
  85. B=(Z2-Z1)*UNSD
  86. IF(IFOUR.LT.0) THEN
  87. R1=1.D0
  88. R2=1.D0
  89. ELSEIF(IFOUR.EQ.0.OR.(IFOUR.EQ.1.AND.
  90. + NIFOUR.EQ.0)) THEN
  91. R1=2*XPI*R1
  92. R2=2*XPI*R2
  93. ELSEIF(IFOUR.EQ.1.AND.NIFOUR.NE.0) THEN
  94. R1=XPI*R1
  95. R2=XPI*R2
  96. ENDIF
  97. IF (IFOUR.EQ.-2) THEN
  98. R1=R1*DIM3
  99. R2=R2*DIM3
  100. ENDIF
  101. IF(IFOUR.LE.0) IFO=0
  102. IF(IFOUR.EQ.1) IFO=1
  103. *
  104. IBMN=MIN(IB,MELVA1.VELCHE(/2))
  105. P1=MELVA1.VELCHE(1,IBMN)
  106. P2=MELVA1.VELCHE(IGMN,IBMN)
  107. *
  108. PA=P1*R1
  109. PB=P1*R2+P2*R1-2.D0*P1*R1
  110. PC=(P2-P1)*(R2-R1)
  111. *
  112. FP1=D*(PA*0.5D0+PB*0.15D0+PC/15.D0)
  113. XO1=D2*(PA/12.D0+PB/30.D0+PC/60.D0)
  114. FP2=D*(PA*0.5D0+PB*0.35D0+PC*4.D0/15.D0)
  115. XO2=-D2*(PA/12.D0+PB/20.D0+PC/30.D0)
  116. *
  117. MPTVAL=IVAFOR
  118. MELVAL=IVAL(1)
  119. VELCHE(1,IB)=-B*FP1
  120. VELCHE(2,IB)=-B*FP2
  121. *
  122. MELVAL=IVAL(2)
  123. VELCHE(1,IB)=A*FP1
  124. VELCHE(2,IB)=A*FP2
  125. *
  126. MELVAL=IVAL(3+IFO)
  127. VELCHE(1,IB)=XO1
  128. VELCHE(2,IB)=XO2
  129. *
  130. 1 CONTINUE
  131. RETURN
  132. END
  133.  
  134.  
  135.  

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