C SURFP0    SOURCE    PV        07/11/23    21:19:25     5978
      SUBROUTINE SURFP0 (U,V,X,Y,Z,msurfp)
************************************************************************
*
*                             S U R F P 0
*                             -----------
*
* FONCTION:
* ---------
*
*     DONNER LES COORDONNEES REELLES D'UN POINT D'UNE SURFACE
*     PARAMETREE, A PARTIR DES COORDONNEES PARAMETRIQUES.
*
* MODULES UTILISES:
* -----------------
*
      IMPLICIT INTEGER(I-N)
      IMPLICIT real*8 (a-h,o-z)

-INC PPARAM
-INC CCOPTIO
-INC TMSURFP
*
* PARAMETRES:   (E)=ENTREE   (S)=SORTIE   (+ = CONTENU DANS UN COMMUN)
* -----------
*
*     U,V     (E)  COORDONNEES PARAMETRIQUES DU POINT.
*     X,Y,Z   (S)  COORDONNEES GEOMETRIQUES DU POINT.
*                  "Z" EST MIS A 0 EN DIMENSION 2 (C'EST PRATIQUE POUR
*                  FAIRE DES CALCULS DE DISTANCES SANS TESTER "IDIM").
*    +MSURFP  (E)  POINTEUR DE SURFACE PARAMETREE.
*                  CE SEGMENT EST SUPPOSE ACTIF.
*                  LE SEGMENT "MCOFSU" DONT "MSURFP" POSSEDE LE POINTEUR
*                  EST EGALEMENT SUPPOSE ACTIF.
*    +IDIM    (E)  VOIR LE COMMUN "COPTIO".
*
      REAL*8 U,V,X,Y,Z
*
* FONCTIONS:
* -----------
*
      REAL*8 POLYN2
*
* AUTEUR, DATE DE CREATION:
* -------------------------
*
*     PASCAL MANIGOT     26 FEVRIER 1987
*
* LANGAGE:
* --------
*
*     ESOPE77 FORTRAN77 + EXTENSION: DECLARATION "REAL*8".
*
************************************************************************
*
      MCOFSU = ICOFSU
      SEGACT MCOFSU
*
      X = POLYN2 (COFSUR(1,1,1),NLISUR,NCOSUR,V,U)
      Y = POLYN2 (COFSUR(1,1,2),NLISUR,NCOSUR,V,U)
      IF (IDIM .EQ. 3) THEN
         Z = POLYN2 (COFSUR(1,1,3),NLISUR,NCOSUR,V,U)
      ELSE
         Z = 0.D0
      END IF
*
      END



