surfp9
C SURFP9 SOURCE BP208322 16/11/18 21:21:25 9177 ************************************************************************ * * S U R F P 9 * ----------- * * FONCTION: * --------- * * REMPLIR LE TABLEAU DES COORDONNEES POUR UN POINT D'UNE SURFACE * PARAMETREE. * * MODULES UTILISES: * ----------------- * IMPLICIT INTEGER(I-N) IMPLICIT real*8 (a-h,o-z) -INC PPARAM -INC CCOPTIO -INC CCGEOME -INC SMCOORD -INC TMSURFP * * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN) * ----------- * * NUMPT (E) NUMERO DU POINT. * U,V (E) COORDONNEES PARAMETRIQUES DU POINT. * DUV (E) SI < 0, EGAL A L'OPPOSEE DE LA DENSITE DU POINT EN * UNITES PARAMETRIQUES. * SI = 0, ON PRENDRA LA DENSITE COURANTE. * SI > 0, EGAL A LA DENSITE EN UNITES REELLES. * +MSURFP (E) POINTEUR DE SURFACE PARAMETREE. * CE SEGMENT EST SUPPOSE ACTIF. * LE SEGMENT "MCOFSU" DONT "MSURFP" POSSEDE LE POINTEUR * EST EGALEMENT SUPPOSE ACTIF. * +DENSIT (E) VOIR LE COMMUN "CGEOME". * +IDIM (E) VOIR LE COMMUN "COPTIO". * +MCOORD (E) CE SEGMENT EST SUPPOSE ACTIF ET DE LONGUEUR * SUFFISANTE. * (S) COMPLETION DU TABLEAU "XCOOR". * INTEGER NUMPT REAL*8 U,V,DUV * * VARIABLES: * ---------- * REAL*8 D1,D2,D3,D4 REAL*8 U1,V1,X,Y,Z,X1,Y1,Z1 * * AUTEUR, DATE DE CREATION: * ------------------------- * * PASCAL MANIGOT 3 MARS 1987 * * LANGAGE: * -------- * * ESOPE77 FORTRAN77 + EXTENSION: DECLARATION "REAL*8". * ************************************************************************ * NUMPT1 = NUMPT - 1 IDIMP1 = IDIM + 1 * * COORDONNEES: * XCOOR(NUMPT1*IDIMP1+1) = X XCOOR(NUMPT1*IDIMP1+2) = Y IF (IDIM .EQ. 3) XCOOR(NUMPT1*IDIMP1+3) = Z * * DENSITE: * IF (DUV .EQ. 0.D0) THEN XCOOR(NUMPT*IDIMP1) = DENSIT ELSE IF (DUV .GT. 0.D0) THEN XCOOR(NUMPT*IDIMP1) = DUV ELSE * LA DENSITE EST DETERMINEE EN CALCULANT LES DISTANCES REELLES DU * POINT CONSIDERE AVEC LES POINTS (U+-DUV,V) ET (U,V+-DUV). * C'EST LOURD MAIS C'EST SUR. U1 = U - DUV V1 = V D1 = (X1-X)**2 + (Y1-Y)**2 + (Z1-Z)**2 D1 = SQRT(D1) U1 = U + DUV V1 = V D2 = (X1-X)**2 + (Y1-Y)**2 + (Z1-Z)**2 D2 = SQRT(D2) U1 = U V1 = V - DUV D3 = (X1-X)**2 + (Y1-Y)**2 + (Z1-Z)**2 D3 = SQRT(D3) U1 = U V1 = V + DUV D4 = (X1-X)**2 + (Y1-Y)**2 + (Z1-Z)**2 D4 = SQRT(D4) XCOOR(NUMPT*IDIMP1) = (D1 + D2 + D3 + D4) / 4. END IF * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales