Télécharger ottvaf.eso

Retour à la liste

Numérotation des lignes :

ottvaf
  1. C OTTVAF SOURCE PV 22/04/15 13:20:12 11344
  2. SUBROUTINE OTTVAF(X2,KV0,XVAL,VAR1,NV,VV1,VV2,VV3,
  3. & VAR2,TOL,IERUT)
  4. *
  5. IMPLICIT INTEGER (I-N)
  6. IMPLICIT REAL*8 (A-H,O-Z)
  7. DIMENSION VAR1(*),VV1(*),VV2(*),VV3(*),VAR2(*),xval(*)
  8. PARAMETER (NAUX=20)
  9. *
  10. X2=1.D0
  11. CALL OTTVAI(VV1,XVAL,VAR2,F,KV0,IERUT)
  12. IF(IERUT.NE.0) RETURN
  13. IF(F.LT.TOL) RETURN
  14. CALL OTTVAI(VAR1,XVAL,VAR2,F0,KV0,IERUT)
  15. IF(IERUT.NE.0) RETURN
  16. *
  17. F00 = F0
  18. X0=0.D0
  19. X1=1.D0
  20. F1 = F
  21. JT=0
  22. 33 CONTINUE
  23. JT=JT+1
  24. IF(JT.GT.NAUX) THEN
  25. GO TO 202
  26. ENDIF
  27. X2 = X1 - (X0-X1)*F1/(F0-F1)
  28. IF(X2.LT.0.D0.OR.X2.GT.1.D0) THEN
  29. IERUT=2
  30. RETURN
  31. ENDIF
  32. DO I=1,NV
  33. VV1(I)=VAR1(I)+X2*(1.-X2/2.)*VV2(I) + X2*X2*VV3(I)/2.D0
  34. ENDDO
  35. CALL OTTVAI(VV1,XVAL,VAR2,F2,KV0,IERUT)
  36. IF(IERUT.NE.0) RETURN
  37. IF(ABS(F2).LE.TOL) GO TO 100
  38. IF(F0*F2.LT.0.D0) THEN
  39. X1=X0
  40. F1=F0
  41. ELSE
  42. F1 = F1*F0/(F0+F2)
  43. ENDIF
  44. X0=X2
  45. F0=F2
  46. GO TO 33
  47. *
  48. 202 CONTINUE
  49. X0=0.D0
  50. X1=1.D0
  51. F0 = F00
  52. F1 = F
  53. JT=0
  54. KT=0
  55. 43 CONTINUE
  56. JT=JT+1
  57. IF(JT.GT.NAUX) THEN
  58. IERUT=2
  59. RETURN
  60. ENDIF
  61. X2 = X1 - (X0-X1)*F1/(F0-F1)
  62. IF(X2.LT.0.D0.OR.X2.GT.1.D0) THEN
  63. IERUT=2
  64. RETURN
  65. ENDIF
  66. DO I=1,NV
  67. VV1(I) = VAR1(I)+X2*(1.-X2/2.)*VV2(I) + X2*X2*VV3(I)/2.D0
  68. ENDDO
  69. CALL OTTVAI(VV1,XVAL,VAR2,F2,KV0,IERUT)
  70. IF(IERUT.NE.0) RETURN
  71. IF(ABS(F2).LE.TOL) GO TO 100
  72. IF(F1*F2.LT.0.D0) THEN
  73. AUX=X1
  74. AUF=F1
  75. X1=X0
  76. F1=F0
  77. X0=AUX
  78. F0=AUF
  79. ENDIF
  80. *
  81. 235 CONTINUE
  82. KT=KT+1
  83. IF(KT.GT.NAUX) THEN
  84. IERUT=2
  85. RETURN
  86. ENDIF
  87. IF(F1*F2.GT.0.D0) THEN
  88. F0 = F0*F1/(F1+F2)
  89. X1=X2
  90. F1=F2
  91. X2 = X1 - (X0-X1)*F1/(F0-F1)
  92. IF(X2.LT.0.D0.OR.X2.GT.1.D0) THEN
  93. IERUT=2
  94. RETURN
  95. ENDIF
  96. DO I=1,NV
  97. VV1(I) = VAR1(I)+X2*(1.-X2/2.)*VV2(I) + X2*X2*VV3(I)/2.D0
  98. ENDDO
  99. CALL OTTVAI(VV1,XVAL,VAR2,F2,KV0,IERUT)
  100. IF(IERUT.NE.0) RETURN
  101. IF(ABS(F2).LE.TOL) GO TO 100
  102. ENDIF
  103. IF(F1*F2.LT.0.D0) THEN
  104. X0=X1
  105. F0=F1
  106. X1=X2
  107. F1=F2
  108. GO TO 43
  109. ELSE
  110. GO TO 235
  111. ENDIF
  112. 100 CONTINUE
  113. RETURN
  114. END
  115.  
  116.  
  117.  
  118.  

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