Download derqp2.eso

Back to the list

   1 : C DERQP2    SOURCE    CHAT      05/01/12    22:43:10     5004           
   2 :       SUBROUTINE DERQP2(P, IVAR, DP)
   3 : C
   4 : C     Procedure de multiplication de 2 polynomes de 2 variables
   5 : C     Entree : P(30) : premier polynome : les coefficients sont
   6 : C                       ranges comme suit :
   7 : C               indice : 1 2  3    4    5    6      7       8    9
   8 : C               terme :  1 T1 T2 T1*T2 T1^2 T2^2 T1*T2^2 T1^2*T2 T1^3
   9 : C               indice : 10   11      12        13        14   15  
  10 : C               terme :  T2^3 T1*T2^3 T1^2*T2^2 T1^3*T2^3 T1^4 T2^4
  11 : C               indice : 16      17        18        19      20   21
  12 : C               terme :  T1*T2^4 T1^2*T2^3 T1^3*T2^2 T1^4*T2 T1^5 T2^5
  13 : C               indice : 22      23        24        25        26
  14 : C               terme :  T1*T2^5 T1^2*T2^4 T1^3*T2^3 T1^4*T2^2 T1^5*T2
  15 : C               indice : 27        28        29        30
  16 : C               terme :  T1^2*T2^5 T1^3*T2^4 T1^4*T2^3 T1^5*T2^2
  17 : C              IVAR : numero de la variable par rapport a laquelle il 
  18 : C                       faut deriver
  19 : C     Sortie : DP(30) : polynome resultat de la derivation
  20 : C
  21 :       IMPLICIT INTEGER(I-N)
  22 :       IMPLICIT REAL*8(A-H,O-Z)
  23 :       DIMENSION P(30), DP(30), INXD1(30), INXD2(30), C1(30), C2(30)
  24 :       DATA INXD1/ 1, 1, 1, 3, 2, 1, 6, 4, 5, 1, 10, 7, 8, 9, 1, 1,
  25 :      1        11, 12, 13, 14, 1, 21, 16, 17, 18, 19, 22, 23, 24, 25/
  26 :       DATA C1/0.D0, 1.D0, 0.D0, 1.D0, 2.D0, 0.D0, 1.D0, 2.D0, 3.D0,
  27 :      1        0.D0, 1.D0, 2.D0, 3.D0, 4.D0,
  28 :      1        0.D0, 1.D0, 2.D0, 3.D0, 4.D0, 5.D0, 0.D0, 1.D0, 2.D0,
  29 :      1        3.D0, 4.D0, 5.D0, 2.D0, 3.D0, 4.D0, 5.D0/
  30 :       DATA INXD2/ 1, 1, 1, 2, 1, 3, 4, 5, 1, 6, 7, 8, 9, 1, 10, 11,
  31 :      1        12, 13, 14, 1, 15, 16, 17, 18, 19, 20, 23, 24, 25, 26/
  32 :       DATA C2/0.D0, 0.D0, 1.D0, 1.D0, 0.D0, 2.D0, 2.D0, 1.D0, 0.D0,
  33 :      1        3.D0, 3.D0, 2.D0, 1.D0, 0.D0,
  34 :      1        4.D0, 4.D0, 3.D0, 2.D0, 1.D0, 0.D0, 5.D0, 5.D0, 4.D0,
  35 :      1        3.D0, 2.D0, 1.D0, 5.D0, 4.D0, 3.D0, 2.D0/
  36 : C
  37 : C     Initialisation du polynome resultat
  38 : C
  39 :       DO 70 I = 1, 30
  40 :   70     DP(I) = 0.D0
  41 : C
  42 : C     Derivation de P
  43 : C
  44 :       IF (IVAR .EQ. 1) THEN
  45 :          DO 80 I = 2, 30
  46 :   80        DP(INXD1(I)) = DP(INXD1(I)) + C1(I)*P(I)
  47 :       ELSE
  48 :          IF (IVAR .EQ. 2) THEN
  49 :             DO 90 I = 2, 30
  50 :   90           DP(INXD2(I)) = DP(INXD2(I)) + C2(I)*P(I)
  51 :          ENDIF
  52 :       ENDIF
  53 :       RETURN
  54 :       END
  55 : 
  56 :  
  57 :  

© Cast3M 2003 - All rights reserved.
Disclaimer