surfp5
C SURFP5 SOURCE PV 07/11/23 21:19:35 5978 ************************************************************************ * * S U R F P 5 * ----------- * * FONCTION: * --------- * * HOMOLOGUE DE "PPLAN", "PCYLI" ET CIE, AVEC L'OPTION IOP=1, * UTILISE DANS LE CAS DU TRAITEMENT D'UNE SURFACE AVEC L'OPTION * "POLYNOME". * * MODULES UTILISES: * ----------------- * IMPLICIT REAL*8(A-H,O-Z) IMPLICIT INTEGER(I-N) -INC PPARAM -INC CCOPTIO -INC TMSURFP * * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN) * ----------- * * FER (E) SEGMENT SUPPOSE ACTIF. * NFI (E) NUMEROS DES NOEUDS DU CONTOUR DE LA SURFACE, DANS * L'ORDRE SUIVANT: * 1. NUMEROS DES POINTS-MILIEUX (SI "SEG3"), * 2. NUMEROS DES POINTS-EXTREMITES DES SEGMENTS DU * CONTOUR. * 3. NUMERO DU 1ER POINT-EXTREMITE (FERMETURE DU * CONTOUR ?). * (S) LES NUMEROS DES POINTS-EXTREMITES SONT REMPLACES PAR * LA PLACE DE CES POINTS DANS "XPROJ". * MAI (E) MAI(1) = NOMBRE DE POINTS-MILIEUX DU CONTOUR. * MAI(1+ITOUR) = NOMBRE DE POINTS DU CONTOUR. * ITOUR (E) NOMBRE DE CONTOURS (= 1 ACTUELLEMENT POUR LES * SURFACES PARAMETREES). * NDEB (S) NOMBRE DE POINTS DU CONTOUR + 1 . * XPROJ (S) COORDONNEES PARAMETRIQUES DES POINTS-EXTREMITES DES * SEGMENTS DU CONTOUR. * ELLES SONT RANGEES A PARTIR DE LA PLACE "N+1", "N" * ETANT LE NOMBRE DE POINTS-MILIEUX. * +MSURFP (E) POINTEUR DE SURFACE PARAMETREE. * SEGMENT /FER/(NFI(ITT),MAI(IPP),ITOUR) * * VARIABLES: * ---------- * * IMCT = NOMBRE DE NOEUDS DU CONTOUR (1 SEUL CONTOUR POUR UNE * SURFACE PARAMETREE), POINTS-MILIEUX COMPRIS. * INCT = PLACE DU 1ER POINT-EXTREMITE DU CONTOUR DANS "NFI". * INTEGER IMCT,INCT * * AUTEUR, DATE DE CREATION: * ------------------------- * * PASCAL MANIGOT 26 FEVRIER 1987 * * LANGAGE: * -------- * * ESOPE77 FORTRAN77 * ************************************************************************ * IF (ITOUR .NE. 1) THEN RETURN END IF * IMCT=MAI(ITOUR+1) INCT=MAI(1)+1 * NDEB=IMCT+1 SEGINI XPROJ SEGACT,MSURFP*MOD MUVSUR = IUVSUR SEGACT,MUVSUR*MOD * N0 = NU0SUR DO 100 I=INCT,max(IMCT,mai(itour+2)) II=NFI(I) NFI(I)=I XPROJ(1,I) = USUR(II-N0) 100 CONTINUE * END DO * * CALCUL DES DENSITES GRACE AUX DISTANCES AVEC LES VOISINS: * (NE FONCTIONNE PAS DU TOUT AVEC PLUSIEURS CONTOURS) * IF (INCT .LE. IMCT) THEN D3 = (XPROJ(1,IMCT) - XPROJ(1,INCT) )**2 & + (XPROJ(2,IMCT) - XPROJ(2,INCT) )**2 D3 = SQRT(D3) DO 110 I=INCT,IMCT IF (I .EQ. IMCT) THEN I3 = INCT ELSE I3 = I + 1 END IF D1 = D3 D3 = (XPROJ(1,I3) - XPROJ(1,I) )**2 & + (XPROJ(2,I3) - XPROJ(2,I) )**2 D3 = SQRT(D3) XPROJ(3,I) = (D1 + D3) / 2. 110 CONTINUE * END DO END IF * IF (IIMPI.EQ.1804) THEN DO 120 I=INCT,IMCT WRITE(IOIMP,'(I5,3(2X,G12.5))')I,XPROJ(1,I),XPROJ(2,I), & XPROJ(3,I) 120 CONTINUE * END DO END IF * SEGDES,MUVSUR,MSURFP * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales