Télécharger tufipa.eso

Retour à la liste

Numérotation des lignes :

tufipa
  1. C TUFIPA SOURCE CHAT 05/01/13 03:56:03 5004
  2. SUBROUTINE TUFIPA(XM,XP,DELTAM,DELTAP,THETA0,XJP,EP,FIP,
  3. $ DL1,DL2,PRECIS,XM0,XP0,RAYOM,XLAM0,WORK,EPAI,YOUN,KERRE,THETA
  4. $ )
  5. IMPLICIT INTEGER(I-N)
  6. IMPLICIT REAL*8(A-H,O-Z)
  7. C======================================================================
  8. C CE SOUS-PROGRAMME PILOTE L ECOULEMENT PLASTIQUE SANS
  9. C PROPAGATION POUR L ELEMENT TUYAU FISSURE
  10. C IL EST APPELE PAR TUFIPL
  11. C
  12. C ENTREES : XM,XP POINT SUR LA SURFACE DE CHARGE
  13. C DELTAM,DELTAP INCREMENT ELASTIQUE
  14. C THETA ANGLE DE LA FISSURE
  15. C XJP VALEUR DE JP AU DEBUT
  16. C
  17. C SORTIES : XM,XP CONTRAINTES A LA FIN
  18. C DELTAM,DELTAP CE QUI RESTE A ECOULER
  19. C XJP VALEUR DE JP A LA FIN
  20. C EP,FIP INCREMENT DE DEFORMATIONS PLASTIQUES
  21. C DL1,DL2 INCREMENT DE LAMBDA
  22. C=======================================================================
  23. -INC CCREEL
  24.  
  25. -INC PPARAM
  26. -INC CCOPTIO
  27. SEGMENT/WORK/(SIG(NCOURB)*D,XLAM(NCOURB)*D)
  28. XMS=XM
  29. XPS=XP
  30. DMS=DELTAM
  31. DPS=DELTAP
  32. XJPS=XJP
  33. IF(IIMPI.EQ.999) WRITE (IOIMP,*)'ENTREE DANS TUFIPA'
  34. C
  35. C ON CHERCHE OU L ON VA ECOULER
  36. C
  37. CALL TUFINO(XM,XP,THETA0,IRET,XM0,XP0)
  38. C
  39. C ON REALISE L ECOULEMENT
  40. C
  41. CALL TUFIEC(XM,XP,DELTAM,DELTAP,THETA,XJP,EP,FIP,
  42. $ DL1,DL2,PRECIS,IRET,XM0,XP0,RAYOM,XLAM0,WORK,EPAI,YOUN,
  43. $ THETA0,KERRE)
  44. IF(KERRE.NE.0) RETURN
  45. C
  46. C ON VERIFIE OU ON ARRIVE
  47. C
  48. CALL TUFINO(XM,XP,THETA0,IR1,XM0,XP0)
  49. IF(IRET.EQ.IR1) THEN
  50. IF(IIMPI.EQ.999) WRITE (IOIMP,*)'SORTIE DE TUFIPA'
  51. DELTAM=0.D0
  52. DELTAP=0.D0
  53. RETURN
  54. ENDIF
  55. C
  56. C ON EST ALLE TROP LOIN ET ON CHERCHE LA PARTIE DE
  57. C L INCREMENT QUI NOUS RAMENE SUR LA POINTE
  58. C
  59. IF(IRET.EQ.1) THEN
  60. GOTO 1
  61. ELSE
  62. GOTO 2
  63. ENDIF
  64. C
  65. C
  66. 1 CONTINUE
  67. XMU1=0.5D0
  68. XMU2=1.0D0
  69. XM1=XMS
  70. XP1=XPS
  71. DM1=XMU1*DMS
  72. DP1=XMU1*DPS
  73. CALL TUFIEC(XM1,XP1,DM1,DP1,THETA0,XJPS,EP,FIP,
  74. $ DL1,DL2,PRECIS,IRET,XM0,XP0,RAYOM,XLAM0,WORK,EPAI,YOUN,
  75. $ THETA0,KERRE)
  76. IF(KERRE.NE.0) RETURN
  77. F1=TUFP2(XM1,XP1,THETA0,XM0,XP0)
  78. F2=TUFP2(XM,XP,THETA0,XM0,XP0)
  79. TEST=F1*F2
  80. IF(TEST.GT.XZERO) THEN
  81. F2=F1
  82. F1=TUFP2(XMS,XPS,THETA0,XM0,XP0)
  83. XMU1=0.D0
  84. XMU2=0.5D0
  85. ENDIF
  86. 10 CONTINUE
  87. FP=(F2-F1)/(XMU2-XMU1)
  88. XMU3=XMU2-F2/FP
  89. IF (IIMPI.EQ.999) WRITE(IOIMP,*)'MU',XMU3
  90. XM3=XMS
  91. XP3=XPS
  92. DM3=XMU3*DMS
  93. DP3=XMU3*DPS
  94. CALL TUFIEC(XM3,XP3,DM3,DP3,THETA0,XJPS,EP,FIP,
  95. $ DL1,DL2,PRECIS,IRET,XM0,XP0,RAYOM,XLAM0,WORK,EPAI,YOUN,
  96. $ THETA0,KERRE)
  97. IF(KERRE.NE.0) RETURN
  98. F3=TUFP2(XM3,XP3,THETA0,XM0,XP0)
  99. CRU=ABS((XMU3-XMU2)/XMU2)
  100. CRI=ABS(F3)
  101. IF(CRI.GE.PRECIS.OR.CRU.GE.PRECIS) THEN
  102. XMU1=XMU2
  103. XMU2=XMU3
  104. F1=F2
  105. F2=F3
  106. GO TO 10
  107. ELSE
  108. XJP=XJPS
  109. IF(XP3.GE.XZERO) THEN
  110. XP=XP0*(1.D0-THETA0/XPI)
  111. XM=-XM0*SIN(THETA0)/2.D0
  112. IF(IIMPI.EQ.999) WRITE(IOIMP,*)'P ET M A LA POINTE',XP,XM
  113. ELSE
  114. XP=-XP0*(1.D0-THETA0/XPI)
  115. XM=XM0*SIN(THETA0)/2.D0
  116. IF(IIMPI.EQ.999) WRITE(IOIMP,*)'P ET M A LA POINTE',XP,XM
  117. ENDIF
  118. DELTAM=(1.D0-XMU3)*DMS
  119. DELTAP=(1.D0-XMU3)*DPS
  120. IF(IIMPI.EQ.999)WRITE (IOIMP,*)'SORTIE DE TUFIPA'
  121. RETURN
  122. ENDIF
  123. C
  124. 2 CONTINUE
  125. XMU1=0.5D0
  126. XMU2=1.0D0
  127. XM1=XMS
  128. XP1=XPS
  129. DM1=XMU1*DMS
  130. DP1=XMU1*DPS
  131. CALL TUFIEC(XM1,XP1,DM1,DP1,THETA0,XJPS,EP,FIP,
  132. $ DL1,DL2,PRECIS,IRET,XM0,XP0,RAYOM,XLAM0,WORK,EPAI,YOUN,
  133. $ THETA0,KERRE)
  134. IF(KERRE.NE.0) RETURN
  135. F1=TUFP1(XM1,XP1,THETA0,XM0,XP0)
  136. F2=TUFP1(XM,XP,THETA0,XM0,XP0)
  137. TEST=F1*F2
  138. IF(TEST.GT.XZERO) THEN
  139. F2=F1
  140. F1=TUFP1(XMS,XPS,THETA0,XM0,XP0)
  141. XMU1=0.D0
  142. XMU2=0.5D0
  143. ENDIF
  144. 20 CONTINUE
  145. FP=(F2-F1)/(XMU2-XMU1)
  146. XMU3=XMU2-F2/FP
  147. IF (IIMPI.EQ.999) WRITE(IOIMP,*)'MU',XMU3
  148. XM3=XMS
  149. XP3=XPS
  150. DM3=XMU3*DMS
  151. DP3=XMU3*DPS
  152. CALL TUFIEC(XM3,XP3,DM3,DP3,THETA0,XJPS,EP,FIP,
  153. $ DL1,DL2,PRECIS,IRET,XM0,XP0,RAYOM,XLAM0,WORK,EPAI,YOUN,
  154. $ THETA0,KERRE)
  155. IF(KERRE.NE.0) RETURN
  156. F3=TUFP1(XM3,XP3,THETA0,XM0,XP0)
  157. CRI=ABS(F3)
  158. CRU=ABS((XMU3-XMU2)/XMU2)
  159. IF(CRI.GE.PRECIS.OR.CRU.GE.PRECIS) THEN
  160. XMU1=XMU2
  161. XMU2=XMU3
  162. F1=F2
  163. F2=F3
  164. GO TO 20
  165. ELSE
  166. XJP=XJPS
  167. IF(XP3.GE.XZERO) THEN
  168. XP=XP0*(1.D0-THETA0/XPI)
  169. XM=-XM0*SIN(THETA0)/2.D0
  170. IF(IIMPI.EQ.999) WRITE(IOIMP,*)'P ET M A LA POINTE',XP,XM
  171. ELSE
  172. XP=-XP0*(1.D0-THETA0/XPI)
  173. XM=XM0*SIN(THETA0)/2.D0
  174. IF(IIMPI.EQ.999) WRITE(IOIMP,*)'P ET M A LA POINTE',XP,XM
  175. ENDIF
  176. DELTAM=(1.D0-XMU3)*DMS
  177. DELTAP=(1.D0-XMU3)*DPS
  178. IF(IIMPI.EQ.999) WRITE(IOIMP,*)'SORTIE DE TUFIPA'
  179. RETURN
  180. ENDIF
  181. END
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  

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