C QUIN2     SOURCE    CHAT      05/01/13    02:42:26     5004
C***********************************************************************
C*                                                                     *
C* PROJET      : Opérateur LIMI                                        *
C* NOM         : QUIN2                                                 *
C* DESCRIPTION : Ce sous programme calcule la racine de la relations   *
C*               de fermeture dans la méthode de Karmann-Pohlhausen ,  *
C*               cad le paramètre lambda compris entre deux bornes.    *
C*               Méthode de Newton                                     *
C* LANGAGE     : Esope                                                 *
C* AUTEUR      : Guillaume VENCO - DRN/DMT/SEMT/LTMF                   *
C*                                                                     *
C***********************************************************************
C*                                                                     *
C* APPELES     : Aucun                                                 *
C*                                                                     *
C***********************************************************************
C*                                                                     *
C* ENTREES     : ca0 : -Coefficient de la relation de fermeture        *
C*               ca1 : -Coefficient de la relation de fermeture        *
C*               ca2 : -Coefficient de la relation de fermeture        *
C*               ca3 : -Coefficient de la relation de fermeture        *
C*               ca4 : -Coefficient de la relation de fermeture        *
C*               ca5 : -Coefficient de la relation de fermeture        *
C*               A0  : -Borne inférieure                               *
C*               B0  : -Borne supérieure
C*                                                                     *
C* SORTIES     : Q   : -Racine comprise entre A0 et B0                 *
C*                                                                     *
C***********************************************************************
C*                                                                     *
C* VERSION     : 21/04/2000                                            *
C* CREATION    :                                                       *
C*                                                                     *
C***********************************************************************

      SUBROUTINE QUIN2(ca0,ca1,ca2,ca3,ca4,ca5,A0,B0,Q)

C*       *********************************
C*       *** Déclaration des variables ***
C*       *********************************

      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
      parameter (eps=1e-8)
      real*8 f1,f1b,f2,f2b,df1,df2

C*       *********************************
C*       ******** Sous-programme *********
C*       *********************************


         A=A0
         B=B0

C---- Schéma itératif
 50      f1 = ca0+ca1*A+ca2*(A**2)+ca3*(A**3)+ca4*(A**4)+ca5*(A**5)
         f2 = ca0+ca1*B+ca2*(B**2)+ca3*(B**3)+ca4*(B**4)+ca5*(B**5)
         df1 = ca1+2*ca2*A+3*ca3*(A**2)+4*ca4*(A**3)+5*ca5*(A**4)
         df2 = ca1+2*ca2*B+3*ca3*(B**2)+4*ca4*(B**3)+5*ca5*(B**4)

         X= A-f1*(B-A)/(f2-f1)
         fx = ca0+ca1*X+ca2*(X**2)+ca3*(X**3)+ca4*(X**4)+ca5*(X**5)

         IF (fx.EQ.0.) GOTO 10
         IF ((fx*(f2-f1)).GT.0) GOTO 20

         A = X
         B = B-f2/df2
         GOTO 30

 20      B = X
         A = A-f1/df1
         GOTO 30

 30      IF (ABS(B-A).LT.eps) GOTO 10
         GOTO 50

C---- Résultat
 10   Q = X
c      Write(6,*) 'La racine est :',Q


      RETURN
      END


