Download valpo2.eso

Back to the list

   1 : C VALPO2    SOURCE    GOUNAND   08/11/07    21:15:04     6194           
   2 :       SUBROUTINE VALPO2(NDIML,
   3 :      $     XCONO1,NBMON,COEMON,
   4 :      $     EXPMON,
   5 :      $     ORDER1,
   6 :      $     VALEUR)
   7 :       IMPLICIT INTEGER(I-N)
   8 :       IMPLICIT REAL*8 (A-H,O-Z)
   9 : C***********************************************************************
  10 : C NOM         : VALPO2 (Idem VALPOL mais precable)
  11 : C PROJET      : Noyau lineaire NLIN
  12 : C DESCRIPTION : Calcule la valeur d'un polynome de R^{ndiml} ou la
  13 : C               valeur d'une de ses derivees en un point de R^{ndiml}.
  14 : C               NDIML  : dimension de l'espace
  15 : C               NBMONO : nombre de monomes du polynome
  16 : C               XCONO1 : coordonnees du point
  17 : C               COEMON : coefficient d'un monome
  18 : C               EXPMON : exposants du monome
  19 : C               ORDER1 : ordre de derivation par rapport a
  20 : C                        chacune des coordonnees
  21 : C
  22 : C LANGAGE     : Fortran 77 (sauf pour les E/S)
  23 : C AUTEUR      : Stephane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  24 : C               mel : gounand@semt2.smts.cea.fr
  25 : C***********************************************************************
  26 : C APPELES          : -
  27 : C APPELE PAR       : SHAPEQ
  28 : C***********************************************************************
  29 : C ENTREES            : NDIML, NBMONO, XCONO1, COEMON, EXPMON, ORDER1
  30 : C ENTREES/SORTIES    : -
  31 : C SORTIES            : VALEUR
  32 : C CODE RETOUR (IRET) : = 0 si tout s'est bien passe
  33 : C***********************************************************************
  34 : C VERSION    : v1, 03/05/06, version initiale
  35 : C HISTORIQUE : v1, 03/05/06, creation
  36 : C HISTORIQUE :
  37 : C HISTORIQUE :
  38 : C***********************************************************************
  39 : C Priere de PRENDRE LE TEMPS de completer les commentaires
  40 : C en cas de modification de ce sous-programme afin de faciliter
  41 : C la maintenance !
  42 : C***********************************************************************
  43 :       INTEGER NDIML
  44 :       REAL*8 XCONO1(NDIML)
  45 :       INTEGER NBMON
  46 :       REAL*8  COEMON(NBMON)
  47 :       INTEGER EXPMON(NDIML,NBMON)
  48 :       INTEGER ORDER1(NDIML)
  49 :       REAL*8 VALEUR
  50 : *
  51 :       INTEGER IMPR,IRET
  52 : *
  53 :       INTEGER IMONO,INDIML,IFACT
  54 :       INTEGER NEXPKS,NDERKS
  55 :       REAL*8 VALMON,VAMOEL
  56 : *
  57 : * Executable statements
  58 : *
  59 : *
  60 : * Calcul de la valeur au point de coordonnees XCONO1 de la
  61 : * derivee definie par ORDER1 du monome definie par EXPMON
  62 : *
  63 :       VALEUR=0.D0
  64 :       DO IMON=1,NBMON
  65 : *         VALMON=1.D0
  66 :          VALMON=COEMON(IMON)
  67 : *         WRITE(IOIMP,*) 'VALMON=',VALMON
  68 :          DO 12 INDIML=1,NDIML
  69 :             NEXPKS=EXPMON(INDIML,IMON)
  70 :             NDERKS=ORDER1(INDIML)
  71 : *
  72 : *   d/dx^m (x^n) = 0 si m>n
  73 : *                = n!/(n-m)! x^(n-m) si m<=n
  74 : *       ou n! = factorielle de n et en choisissant
  75 : *          0! = 1
  76 :             IF (NDERKS.GT.NEXPKS) THEN
  77 :                VAMOEL=0.D0
  78 :             ELSEIF (NDERKS.EQ.NEXPKS) THEN
  79 :                VAMOEL=1.D0
  80 :                DO 222 IFACT=1,NEXPKS
  81 :                   VAMOEL=VAMOEL*IFACT
  82 :  222           CONTINUE
  83 :             ELSE
  84 :                VAMOEL=1.D0
  85 :                DO 122 IFACT=(NEXPKS-NDERKS+1),NEXPKS,1
  86 :                   VAMOEL=VAMOEL*IFACT
  87 :  122           CONTINUE
  88 :                VAMOEL=VAMOEL*(XCONO1(INDIML)**(NEXPKS-NDERKS))
  89 :             ENDIF
  90 :             VALMON=VALMON*VAMOEL
  91 :  12      CONTINUE
  92 :          VALEUR=VALEUR+VALMON
  93 :       ENDDO
  94 : *      WRITE(6,*) 'VALEUR=',VALEUR
  95 : *
  96 : * Normal termination
  97 : *
  98 :       IRET=0
  99 :       RETURN
 100 : *
 101 : * End of subroutine VALPO2
 102 : *
 103 :       END
 104 :  

© Cast3M 2003 - All rights reserved.
Disclaimer