ottvaf
C OTTVAF SOURCE PV 22/04/15 13:20:12 11344 & VAR2,TOL,IERUT) * IMPLICIT INTEGER (I-N) IMPLICIT REAL*8 (A-H,O-Z) DIMENSION VAR1(*),VV1(*),VV2(*),VV3(*),VAR2(*),xval(*) PARAMETER (NAUX=20) * X2=1.D0 IF(IERUT.NE.0) RETURN IF(F.LT.TOL) RETURN IF(IERUT.NE.0) RETURN * F00 = F0 X0=0.D0 X1=1.D0 F1 = F JT=0 33 CONTINUE JT=JT+1 IF(JT.GT.NAUX) THEN GO TO 202 ENDIF X2 = X1 - (X0-X1)*F1/(F0-F1) IF(X2.LT.0.D0.OR.X2.GT.1.D0) THEN IERUT=2 RETURN ENDIF DO I=1,NV VV1(I)=VAR1(I)+X2*(1.-X2/2.)*VV2(I) + X2*X2*VV3(I)/2.D0 ENDDO IF(IERUT.NE.0) RETURN IF(ABS(F2).LE.TOL) GO TO 100 IF(F0*F2.LT.0.D0) THEN X1=X0 F1=F0 ELSE F1 = F1*F0/(F0+F2) ENDIF X0=X2 F0=F2 GO TO 33 * 202 CONTINUE X0=0.D0 X1=1.D0 F0 = F00 F1 = F JT=0 KT=0 43 CONTINUE JT=JT+1 IF(JT.GT.NAUX) THEN IERUT=2 RETURN ENDIF X2 = X1 - (X0-X1)*F1/(F0-F1) IF(X2.LT.0.D0.OR.X2.GT.1.D0) THEN IERUT=2 RETURN ENDIF DO I=1,NV VV1(I) = VAR1(I)+X2*(1.-X2/2.)*VV2(I) + X2*X2*VV3(I)/2.D0 ENDDO IF(IERUT.NE.0) RETURN IF(ABS(F2).LE.TOL) GO TO 100 IF(F1*F2.LT.0.D0) THEN AUX=X1 AUF=F1 X1=X0 F1=F0 X0=AUX F0=AUF ENDIF * 235 CONTINUE KT=KT+1 IF(KT.GT.NAUX) THEN IERUT=2 RETURN ENDIF IF(F1*F2.GT.0.D0) THEN F0 = F0*F1/(F1+F2) X1=X2 F1=F2 X2 = X1 - (X0-X1)*F1/(F0-F1) IF(X2.LT.0.D0.OR.X2.GT.1.D0) THEN IERUT=2 RETURN ENDIF DO I=1,NV VV1(I) = VAR1(I)+X2*(1.-X2/2.)*VV2(I) + X2*X2*VV3(I)/2.D0 ENDDO IF(IERUT.NE.0) RETURN IF(ABS(F2).LE.TOL) GO TO 100 ENDIF IF(F1*F2.LT.0.D0) THEN X0=X1 F0=F1 X1=X2 F1=F2 GO TO 43 ELSE GO TO 235 ENDIF 100 CONTINUE RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales