Télécharger ottvak.eso

Retour à la liste

Numérotation des lignes :

ottvak
  1. C OTTVAK SOURCE FD218221 21/06/10 21:15:54 11030
  2. SUBROUTINE OTTVAK(KV0,SS1,SS2,SS3,XVAL,VV1,NVARI,VV3,
  3. & VV4,VV2,OO,TOL,NDEF,X2,RCZ0,RCZ,XC,MV,IERUT)
  4. *
  5. IMPLICIT INTEGER (I-N)
  6. IMPLICIT REAL*8 (A-H,O-Z)
  7. DIMENSION SS1(*),SS2(*),SS3(*),XVAL(*)
  8. DIMENSION VV1(*),VV3(*),VV4(*)
  9. DIMENSION VV2(*),RCZ0(*),RCZ(*),XC(*)
  10. DIMENSION SS4(6),VV5(7),OO(3,3)
  11. PARAMETER (NAUX=20)
  12. *
  13. IERUT=0
  14. F0=RCZ0(KV0)
  15. F=RCZ(KV0)
  16. F00 = F0
  17. X0=0.D0
  18. X1=1.D0
  19. F1 = F
  20. JT=0
  21. 33 CONTINUE
  22. JT=JT+1
  23. IF(JT.GT.NAUX) THEN
  24. GO TO 202
  25. ENDIF
  26. X2 = X1 - (X0-X1)*F1/(F0-F1)
  27. X2 = MAX(X2,0.D0)
  28. X2 = MIN(X2,1.D0)
  29. IF(MV.NE.0) THEN
  30. DO I=1,NDEF
  31. SS4(I)=SS1(I)+X2*(1.-X2/2.)*SS2(I)+X2*X2*SS3(I)/2.D0
  32. ENDDO
  33. ELSE
  34. DO I=1,NDEF
  35. SS4(I)=SS1(I)+X2*SS2(I)
  36. ENDDO
  37. ENDIF
  38. IF(MV.NE.0) THEN
  39. DO I=1,NVARI
  40. VV5(I)=VV1(I)+X2*(1.-X2/2.)*VV3(I) + X2*X2*VV4(I)/2.D0
  41. ENDDO
  42. ELSE
  43. DO I=1,NVARI
  44. VV5(I)=VV1(I)
  45. ENDDO
  46. ENDIF
  47. MW=0
  48. CALL OTTVAC(SS4,VV5,XVAL,NDEF,VV2,OO,
  49. & XC,RCZ,KV0,MW,TOL,IERUT)
  50. IF(IERUT.NE.0) RETURN
  51. F2=RCZ(KV0)
  52. IF(ABS(F2).LE.TOL) GO TO 100
  53. IF(F0*F2.LT.0.D0) THEN
  54. X1=X0
  55. F1=F0
  56. ELSE
  57. F1 = F1*F0/(F0+F2)
  58. ENDIF
  59. X0=X2
  60. F0=F2
  61. GO TO 33
  62. *
  63. 202 CONTINUE
  64.  
  65. X0=0.D0
  66. X1=1.D0
  67. F0 = F00
  68. F1 = F
  69. JT=0
  70. KT=0
  71. 43 CONTINUE
  72. JT=JT+1
  73. IF(JT.GT.NAUX) THEN
  74. IERUT=2
  75. RETURN
  76. ENDIF
  77. X2 = X1 - (X0-X1)*F1/(F0-F1)
  78. IF(X2.LT.0.D0.OR.X2.GT.1.D0) THEN
  79. IERUT=2
  80. RETURN
  81. ENDIF
  82. IF(MV.NE.0) THEN
  83. DO I=1,NDEF
  84. SS4(I) = X2*(1.-X2/2.)*SS2(I) + X2*X2*SS3(I)/2.D0
  85. ENDDO
  86. ELSE
  87. DO I=1,NDEF
  88. SS4(I)=SS1(I)+X2*SS2(I)
  89. ENDDO
  90. ENDIF
  91. IF(MV.NE.0) THEN
  92. DO I=1,NVARI
  93. VV5(I) = VV1(I)+X2*(1.-X2/2.)*VV3(I) + X2*X2*VV4(I)/2.D0
  94. ENDDO
  95. ELSE
  96. DO I=1,NVARI
  97. VV5(I) = VV1(I)
  98. ENDDO
  99. ENDIF
  100. MW=0
  101. CALL OTTVAC(SS4,VV5,XVAL,NDEF,VV2,OO,
  102. & XC,RCZ,KV0,MW,TOL,IERUT)
  103. IF(IERUT.NE.0) RETURN
  104. F2=RCZ(KV0)
  105. IF(ABS(F2).LE.TOL) GO TO 100
  106. IF(F1*F2.LT.0.D0) THEN
  107. AUX=X1
  108. AUF=F1
  109. X1=X0
  110. F1=F0
  111. X0=AUX
  112. F0=AUF
  113. ENDIF
  114. *
  115. 235 CONTINUE
  116. KT=KT+1
  117. IF(KT.GT.NAUX) THEN
  118. IERUT=2
  119. RETURN
  120. ENDIF
  121. IF(F1*F2.GT.0.D0) THEN
  122. F0 = F0*F1/(F1+F2)
  123. X1=X2
  124. F1=F2
  125. X2 = X1 - (X0-X1)*F1/(F0-F1)
  126. IF(X2.LT.0.D0.OR.X2.GT.1.D0) THEN
  127. IERUT=2
  128. RETURN
  129. ENDIF
  130. IF(MV.NE.0) THEN
  131. DO I=1,NDEF
  132. SS4(I) = X2*(1.-X2/2.)*SS2(I) + X2*X2*SS3(I)/2.D0
  133. ENDDO
  134. ELSE
  135. DO I=1,NDEF
  136. SS4(I)=SS1(I)+X2*SS2(I)
  137. ENDDO
  138. ENDIF
  139. IF(MV.NE.0) THEN
  140. DO I=1,NVARI
  141. VV5(I) = VV1(I)+X2*(1.-X2/2.)*VV3(I) + X2*X2*VV4(I)/2.D0
  142. ENDDO
  143. ELSE
  144. DO I=1,NVARI
  145. VV5(I) = VV1(I)
  146. ENDDO
  147. ENDIF
  148. MW=0
  149. CALL OTTVAC(SS4,VV1,XVAL,NDEF,VV2,OO,
  150. & XC,RCZ,KV0,MW,TOL,IERUT)
  151. IF(IERUT.NE.0) RETURN
  152. F2=RCZ(KV0)
  153. IF(ABS(F2).LE.TOL) GO TO 100
  154. ENDIF
  155. IF(F1*F2.LT.0.D0) THEN
  156. X0=X1
  157. F0=F1
  158. X1=X2
  159. F1=F2
  160. GO TO 43
  161. ELSE
  162. GO TO 235
  163. ENDIF
  164. *
  165. 100 CONTINUE
  166. RETURN
  167. END
  168.  
  169.  
  170.  

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