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 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