surfp3
C SURFP3 SOURCE PV 22/04/26 21:15:08 11344 ************************************************************************ * * S U R F P 3 * ----------- * * FONCTION: * --------- * * DEFINIR LE CONTOUR D'UNE SURFACE POLYNOMIALE A PARTIR DE SES 4 * COTES. * * MODULES UTILISES: * ----------------- * IMPLICIT REAL*8(A-H,O-Z) IMPLICIT INTEGER(I-N) -INC PPARAM -INC CCOPTIO -INC SMELEME -INC TMSURFP * * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN) * ----------- * * LIGNE1 (E) POINTEUR DU MAILLAGE DU COTE 1. * LIGNE2 (E) POINTEUR DU MAILLAGE DU COTE 2. * LIGNE3 (E) POINTEUR DU MAILLAGE DU COTE 3. * LIGNE4 (E) POINTEUR DU MAILLAGE DU COTE 4. * +MSURFP (E) POINTEUR DE LA SURFACE PARAMETREE. * (S) LES POINTS "PT1SUR", ... , "PT4SUR" PEUVENT ETRE * MODIFIES (ET LES "USUR" ET "VSUR" ASSOCIES). * LETOUR (S) POINTEUR DU MAILLAGE DU CONTOUR. * INTEGER LIGNE1,LIGNE2,LIGNE3,LIGNE4,LETOUR * * VARIABLES: * ---------- * INTEGER PT1,PT2,LONG REAL*8 DSUR(16) *>>>>> P.M. 21/09/90 REAL*8 EPS1 * * FONCTIONS: * ---------- * LOGICAL EGA1 * *<<<<< * * AUTEUR, DATE DE CREATION: * ------------------------- * * PASCAL MANIGOT 03 MARS 1987 * * LANGAGE: * -------- * * ESOPE77 FORTRAN77 * ************************************************************************ * SEGACT,MSURFP * IPT1 = LIGNE1 IPT2 = LIGNE2 IPT3 = LIGNE3 IPT4 = LIGNE4 SEGACT IPT1,IPT2,IPT3,IPT4 * ITPL = IPT1.ITYPEL *+* IF (ITPL.NE.IPT2.ITYPEL .OR. ITPL.NE.IPT3.ITYPEL *+* .OR. ITPL.NE.IPT4.ITYPEL) THEN * RQ: CE CAS NE POURRA SE PRODUIRE QUE LE JOUR OU L'ON POURRA * DONNER UN COTE EXPLICITEMENT. *+* CALL ERREUR(16) *+* RETURN *+* END IF * *>>>>> P.M. 21/09/90 NOMB1 = IPT1.NUM(/2) NOMB2 = IPT2.NUM(/2) NOMB3 = IPT3.NUM(/2) NOMB4 = IPT4.NUM(/2) EPS1 = -1. IF (.NOT. ( & .AND. (NOMB2 .EQ. 1) .AND. (NOMB4 .EQ. 1)) &.OR. & .AND. (NOMB1 .EQ. 1) .AND. (NOMB3 .EQ. 1)) & )) THEN * SI SURFACE PAS TROP PETITE, ON REGARDE S'IL NE S'AGIT PAS D'UNE * SURFACE PARAMETREE DEGENEREE TELLE QUE: * - ZONE TRIANGULAIRE, * - ZONE EN FORME D'OEIL. * ET ON INTERVIENT EN CONSEQUENCE. *<<<<< * PT1 = PT1SUR PT2 = PT2SUR * "PT2" A PU CHANGER DE VALEUR: PT2SUR = PT2 PT1 = PT2SUR PT2 = PT3SUR PT3SUR = PT2 PT1 = PT3SUR PT2 = PT4SUR PT4SUR = PT2 PT1 = PT4SUR PT2 = PT1SUR PT1SUR = PT2 * *>>>>> P.M. 21/09/90 END IF *<<<<< * MUVSUR=IUVSUR SEGACT,MUVSUR IF (IIMPI.EQ.1804) THEN 800 CONTINUE * END DO END IF & NOMB1,NOMB2,NOMB3,NOMB4) IF (IIMPI.EQ.1804) THEN 810 CONTINUE * END DO END IF SEGDES,MUVSUR * NBNN = IPT1.NUM(/1) NBELEM = NOMB1 + NOMB2 + NOMB3 + NOMB4 NBREF=0 NBSOUS=0 SEGINI IPT5 IPT5.ITYPEL=ITPL * DO 110 J=1,NOMB1 IPT5.ICOLOR(J) = IPT1.ICOLOR(J) DO 110 I=1,NBNN IPT5.NUM(I,J)=IPT1.NUM(I,J) 110 CONTINUE * END DO * END DO DO 120 J=1,NOMB2 J1 = J + NOMB1 IPT5.ICOLOR(J1) = IPT2.ICOLOR(J) DO 120 I=1,NBNN IPT5.NUM(I,J1)=IPT2.NUM(I,J) 120 CONTINUE * END DO * END DO DO 130 J=1,NOMB3 J1 = J + NOMB1 + NOMB2 IPT5.ICOLOR(J1) = IPT3.ICOLOR(J) DO 130 I=1,NBNN IPT5.NUM(I,J1)=IPT3.NUM(I,J) 130 CONTINUE * END DO * END DO DO 140 J=1,NOMB4 J1 = J + NOMB1 + NOMB2 + NOMB3 IPT5.ICOLOR(J1) = IPT4.ICOLOR(J) DO 140 I=1,NBNN IPT5.NUM(I,J1)=IPT4.NUM(I,J) 140 CONTINUE * END DO * END DO * SEGDES,IPT5 LETOUR = IPT5 *>>>>> P.M. 04/10/90 *+* SEGSUP,IPT1,IPT2,IPT3,IPT4 SEGDES,IPT1,IPT2,IPT3,IPT4 *<<<<< * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales