/* MPOCUR.f -- translated by f2c (version 19960827).
   You must link the resulting object file with the libraries:
	-lf2c -lm   (in that order)
*/

#include "Data_f2c.h"
#ifdef WNT
#include <MathBase.h>
#else 
#define  __MathBase_API
#endif
/* Subroutine */ __MathBase_API int mmmpocur_(ncofmx, ndim, ndeg, courbe, tparam, tabval)
integer *ncofmx, *ndim, *ndeg;
doublereal *courbe, *tparam, *tabval;
{
    /* System generated locals */
    integer courbe_dim1, courbe_offset, i__1;

    /* Local variables */
    static integer i__, nd;
    static doublereal fu;



/* < */
/* **NOTICE */
/*  THIS SOFTWARE IS THE PROPERTY OF CISIGRAPH. */
/*  THIS CODE MUST NOT BE DISTRIBUTED OR COPIED WITHOUT THE PRIOR */
/*  WRITTEN PERMISSION OF CISIGRAPH AND IS ONLY TO BE USED ON THE */
/*  SITE WHERE IT IS INSTALLED BY CISIGRAPH */
/* **NOTICE */

/* ***********************************************************************
 */

/*     FONCTION : */
/*     ---------- */
/*        Positionnement d'un point sur une courbe (ncofmx,ndim). */

/*     MOTS CLES : */
/*     ----------- */
/*        TOUS , AB_SPECIFI :: COURBE&,POLYNOME&,POSITIONNEMENT,&POINT */

/*     ARGUMENTS D'ENTREE : */
/*     ------------------ */
/*        NCOFMX: Format / degre de la COURBE. */
/*        NDIM  : Dimension de l' espace. */
/*        NDEG  : Degre du polynome. */
/*        COURBE: Les coefficients de la courbe. */
/*        TPARAM: parametre sur la courbe */

/*     ARGUMENTS DE SORTIE : */
/*     ------------------- */
/*        TABVAL(NDIM): Le point resultat (ou tableau de valeurs) */

/*     COMMONS UTILISES   : */
/*     ---------------- */

/*     REFERENCES APPELEES   : */
/*     ----------------------- */

/*     DESCRIPTION/REMARQUES/LIMITATIONS : */
/*     ----------------------------------- */

/* $    HISTORIQUE DES MODIFICATIONS   : */
/*     -------------------------------- */
/*     05-01-90 : JG : optimisation (supprim appel a MGENMSG) , nettoyage 
*/
/*     18-09-85 : Cree par JJM. */
/* > */
/* ***********************************************************************
 */

    /* Parameter adjustments */
    --tabval;
    courbe_dim1 = *ncofmx;
    courbe_offset = courbe_dim1 + 1;
    courbe -= courbe_offset;

    /* Function Body */
    if (*ndeg < 1) {
	i__1 = *ndim;
	for (nd = 1; nd <= i__1; ++nd) {
	    tabval[nd] = 0.;
/* L290: */
	}
    } else {
	i__1 = *ndim;
	for (nd = 1; nd <= i__1; ++nd) {
	    fu = courbe[*ndeg + nd * courbe_dim1];
	    for (i__ = *ndeg - 1; i__ >= 1; --i__) {
		fu = fu * *tparam + courbe[i__ + nd * courbe_dim1];
/* L120: */
	    }
	    tabval[nd] = fu;
/* L300: */
	}
    }
 return 0 ;
} /* mmmpocur_ */

