Télécharger fpma3d.eso

Retour à la liste

Numérotation des lignes :

fpma3d
  1. C FPMA3D SOURCE CB215821 20/01/21 21:15:11 10505
  2. SUBROUTINE FPMA3D(IPTVPR,IPMAIL,IPTINT,IVAFOR,XP)
  3. C
  4. C____________________________________________________________________
  5. C
  6. C CALCULE LES FORCES DE PRESSIONS SUR LES FACES D ELEMENTS
  7. C MASSIFS TRIDIMENSIONNELS
  8. C
  9. C ENTREES :
  10. C ---------
  11. C
  12. C IPTVPR POINTEUR SUR UN MELVAL CONTENANT LES PRESSIONS APPLIQUEES
  13. C 0 SI ON A DONNE UNE PRESSION CONSTANTE
  14. C IPMAIL POINTEUR SUR UN OBJET GEOMETRIQUE
  15. C IPTINT POINTEUR SUR UN MINTE CONTENANT LES POINTS D INTEGRATION
  16. C ACTIF EN ENTREE ET EN SORTIE SANS MODIFICATION
  17. C IVAFOR POINTEUR SUR UN MPTVAL ET LES MELVAL CONTENANT LES FORCES
  18. C NODALES RESUL
  19. C
  20. C JACQUELINE BROCHARD AVRIL 85
  21. C
  22. C PASSAGE AUX NOUVEAUX CHAMELEM PAR JM CAMPENON LE 17 09 90
  23. C
  24. C______________________________________________________________________
  25. C
  26. IMPLICIT INTEGER(I-N)
  27. IMPLICIT REAL*8(A-H,O-Z)
  28. C
  29. -INC SMCHAML
  30. -INC SMELEME
  31. -INC SMINTE
  32. -INC SMCOORD
  33.  
  34. -INC PPARAM
  35. -INC CCOPTIO
  36. C
  37. SEGMENT MPTVAL
  38. INTEGER IPOS(NS),NSOF(NS)
  39. INTEGER IVAL(NCOSOU)
  40. CHARACTER*16 TYVAL(NCOSOU)
  41. ENDSEGMENT
  42. C
  43. SEGMENT WORK
  44. REAL*8 XE(3,NBNN)
  45. ENDSEGMENT
  46. C
  47. * pour daire plaisir a l'optimiseur
  48. melva1=iptint
  49. IF(IPTVPR.NE.0) THEN
  50. MELVA1=IPTVPR
  51. SEGACT MELVA1
  52. ENDIF
  53. C
  54. MINTE=IPTINT
  55. NBPGAU=POIGAU(/1)
  56. C
  57. MELEME=IPMAIL
  58. NBNN =NUM(/1)
  59. NBELEM=NUM(/2)
  60. C
  61. SEGINI WORK
  62. SEGACT,MCOORD
  63. C
  64. C BOUCLE SUR LES ELEMENTS
  65. C
  66. DO 1 IB=1,NBELEM
  67. CALL DOXE(XCOOR,IDIM,NBNN,NUM,IB,XE)
  68. C
  69. C BOUCLE SUR LES POINTS DE GAUSS
  70. C
  71. DO 10 IGAU=1,NBPGAU
  72. VNQSI1=0.D0
  73. VNQSI2=0.D0
  74. VNQSI3=0.D0
  75. VNETA1=0.D0
  76. VNETA2=0.D0
  77. VNETA3=0.D0
  78. C
  79. T1=0.D0
  80. T2=0.D0
  81. T3=0.D0
  82. C
  83. C BOUCLE SUR LES NOEUDS
  84. C
  85. DO 20 I=1,NBNN
  86. VNQSI1=VNQSI1+SHPTOT(2,I,IGAU)*XE(1,I)
  87. VNQSI2=VNQSI2+SHPTOT(2,I,IGAU)*XE(2,I)
  88. VNQSI3=VNQSI3+SHPTOT(2,I,IGAU)*XE(3,I)
  89. VNETA1=VNETA1+SHPTOT(3,I,IGAU)*XE(1,I)
  90. VNETA2=VNETA2+SHPTOT(3,I,IGAU)*XE(2,I)
  91. VNETA3=VNETA3+SHPTOT(3,I,IGAU)*XE(3,I)
  92. 20 CONTINUE
  93. C
  94. IF(IPTVPR.NE.0) THEN
  95. IGMN=MIN(IGAU,MELVA1.VELCHE(/1))
  96. IBMN=MIN(IB ,MELVA1.VELCHE(/2))
  97. T1=POIGAU(IGAU)*(VNQSI2*VNETA3-VNQSI3*VNETA2)*
  98. 1 MELVA1.VELCHE(IGMN,IBMN)
  99. T2=POIGAU(IGAU)*(VNQSI3*VNETA1-VNQSI1*VNETA3)*
  100. 1 MELVA1.VELCHE(IGMN,IBMN)
  101. T3=POIGAU(IGAU)*(VNQSI1*VNETA2-VNQSI2*VNETA1)*
  102. 1 MELVA1.VELCHE(IGMN,IBMN)
  103. ELSE
  104. T1=POIGAU(IGAU)*(VNQSI2*VNETA3-VNQSI3*VNETA2)*XP
  105. T2=POIGAU(IGAU)*(VNQSI3*VNETA1-VNQSI1*VNETA3)*XP
  106. T3=POIGAU(IGAU)*(VNQSI1*VNETA2-VNQSI2*VNETA1)*XP
  107. ENDIF
  108. C
  109. MPTVAL=IVAFOR
  110. MELVAL=IVAL(1)
  111. DO J=1,NBNN
  112. VELCHE(J,IB)=VELCHE(J,IB)+SHPTOT(1,J,IGAU)*T1
  113. ENDDO
  114. MELVAL=IVAL(2)
  115. DO J=1,NBNN
  116. VELCHE(J,IB)=VELCHE(J,IB)+SHPTOT(1,J,IGAU)*T2
  117. ENDDO
  118. MELVAL=IVAL(3)
  119. DO J=1,NBNN
  120. VELCHE(J,IB)=VELCHE(J,IB)+SHPTOT(1,J,IGAU)*T3
  121. ENDDO
  122. 10 CONTINUE
  123. 1 CONTINUE
  124. SEGDES,MCOORD
  125.  
  126. SEGSUP WORK
  127. END
  128.  
  129.  
  130.  

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