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