Download quin2.eso

Back to the list

   1 : C QUIN2     SOURCE    CHAT      05/01/13    02:42:26     5004           
   2 : C***********************************************************************
   3 : C*                                                                     *
   4 : C* PROJET      : Opérateur LIMI                                        *
   5 : C* NOM         : QUIN2                                                 *
   6 : C* DESCRIPTION : Ce sous programme calcule la racine de la relations   *
   7 : C*               de fermeture dans la méthode de Karmann-Pohlhausen ,  *
   8 : C*               cad le paramètre lambda compris entre deux bornes.    *
   9 : C*               Méthode de Newton                                     *
  10 : C* LANGAGE     : Esope                                                 *
  11 : C* AUTEUR      : Guillaume VENCO - DRN/DMT/SEMT/LTMF                   *
  12 : C*                                                                     *
  13 : C***********************************************************************
  14 : C*                                                                     *
  15 : C* APPELES     : Aucun                                                 *
  16 : C*                                                                     *
  17 : C***********************************************************************
  18 : C*                                                                     *
  19 : C* ENTREES     : ca0 : -Coefficient de la relation de fermeture        *
  20 : C*               ca1 : -Coefficient de la relation de fermeture        *
  21 : C*               ca2 : -Coefficient de la relation de fermeture        *
  22 : C*               ca3 : -Coefficient de la relation de fermeture        *
  23 : C*               ca4 : -Coefficient de la relation de fermeture        *
  24 : C*               ca5 : -Coefficient de la relation de fermeture        *
  25 : C*               A0  : -Borne inférieure                               *
  26 : C*               B0  : -Borne supérieure
  27 : C*                                                                     * 
  28 : C* SORTIES     : Q   : -Racine comprise entre A0 et B0                 *
  29 : C*                                                                     *
  30 : C***********************************************************************
  31 : C*                                                                     *
  32 : C* VERSION     : 21/04/2000                                            *
  33 : C* CREATION    :                                                       *
  34 : C*                                                                     *
  35 : C***********************************************************************
  36 : 
  37 :       SUBROUTINE QUIN2(ca0,ca1,ca2,ca3,ca4,ca5,A0,B0,Q)
  38 : 
  39 : C*       *********************************
  40 : C*       *** Déclaration des variables ***
  41 : C*       *********************************
  42 :      
  43 :       IMPLICIT INTEGER(I-N)
  44 :       IMPLICIT REAL*8(A-H,O-Z)
  45 :       parameter (eps=1e-8)
  46 :       real*8 f1,f1b,f2,f2b,df1,df2
  47 :       
  48 : C*       *********************************
  49 : C*       ******** Sous-programme *********
  50 : C*       *********************************
  51 : 
  52 :       
  53 :          A=A0
  54 :          B=B0
  55 : 
  56 : C---- Schéma itératif
  57 :  50      f1 = ca0+ca1*A+ca2*(A**2)+ca3*(A**3)+ca4*(A**4)+ca5*(A**5)
  58 :          f2 = ca0+ca1*B+ca2*(B**2)+ca3*(B**3)+ca4*(B**4)+ca5*(B**5)
  59 :          df1 = ca1+2*ca2*A+3*ca3*(A**2)+4*ca4*(A**3)+5*ca5*(A**4)
  60 :          df2 = ca1+2*ca2*B+3*ca3*(B**2)+4*ca4*(B**3)+5*ca5*(B**4)
  61 : 
  62 :          X= A-f1*(B-A)/(f2-f1)
  63 :          fx = ca0+ca1*X+ca2*(X**2)+ca3*(X**3)+ca4*(X**4)+ca5*(X**5)
  64 : 
  65 :          IF (fx.EQ.0.) GOTO 10
  66 :          IF ((fx*(f2-f1)).GT.0) GOTO 20
  67 : 
  68 :          A = X
  69 :          B = B-f2/df2
  70 :          GOTO 30
  71 : 
  72 :  20      B = X
  73 :          A = A-f1/df1
  74 :          GOTO 30
  75 :  
  76 :  30      IF (ABS(B-A).LT.eps) GOTO 10
  77 :          GOTO 50
  78 : 
  79 : C---- Résultat 
  80 :  10   Q = X
  81 : c      Write(6,*) 'La racine est :',Q
  82 : 
  83 :       
  84 :       RETURN
  85 :       END
  86 :  
  87 :  

© Cast3M 2003 - All rights reserved.
Disclaimer