prolon
C PROLON SOURCE PASCAL 21/03/09 21:15:07 10917 SUBROUTINE PROLON C C======================================================================= C C Opérateur PROL C C SYNTAXE : voir notice C C======================================================================= C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) PARAMETER (NCLE=2) CHARACTER*4 LMCLE(NCLE) CHARACTER*4 LNOID(1) DATA LMCLE/'BORN','LINE'/ DATA LNOID/'NOID'/ -INC CCREEL -INC PPARAM -INC CCOPTIO -INC SMEVOLL -INC SMLREEL C---- Lecture des arguments * Lecture mot Option IF (ICLE.EQ.0) ICLE = 1 * Lecture de la fonction à extrapoler IF (IERR.NE.0) RETURN * Analyse EVOLUTION IF (IERR.NE.0) RETURN MEVOLL = IEV1 NEV1 = IEVOLL(/1) IF (NEV1.EQ.0) GOTO 900 DO 10 I1=1,NEV1 KEVOLL = IEVOLL(I1) IF ((TYPX.NE.'LISTREEL').OR.(TYPY.NE.'LISTREEL')) THEN RETURN ENDIF 10 CONTINUE * Lecture valeur a laquelle extrapoler la fonction IF (IERR.NE.0) RETURN C Je debranche l'option NOID car conflit avec donnee FLOT1, FLOT2... C 20 CONTINUE * Lecture mot-cle "NOID" C CALL LIRMOT(LNOID,1,INOID,0) C IF (NEV1.EQ.0) THEN C IF (INOID.EQ.0) THEN C GOTO 900 C ELSE C GOTO 910 C ENDIF C ENDIF C---- Calcul prolongement C Boucle si IFLOT2 99 CONTINUE * Initialisation courbe solution N = NEV1 SEGINI,MEVOL1 C NMOD1 : on compte les courbes modifiees NMOD1 = 0 DO 100 I1=1,NEV1 KEVOLL = IEVOLL(I1) C write(6,*) 'KEVOLL =',KEVOLL MLREEL = IPROGX MLREE1 = IPROGY C C Test longueur abscisse (objets vides !) IF (JG.EQ.0) THEN MOTERR(1:8) = 'LISTREEL' INTERR = MLREEL RETURN ENDIF C C Extrapolation valeur fonction selon option : IF (IERR.NE.0) RETURN C C Cas a gauche de la borne : JG = JG + 1 SEGINI,MLREE2,MLREE3 DO 120 IX=2,JG 120 CONTINUE C Creation de la I1e courbe : SEGINI,KEVOL1 KEVOL1.IPROGX = MLREE2 KEVOL1.IPROGY = MLREE3 KEVOL1.NUMEVX = NUMEVX KEVOL1.NUMEVY = NUMEVY KEVOL1.TYPX = TYPX KEVOL1.TYPY = TYPY KEVOL1.NOMEVX = NOMEVX KEVOL1.NOMEVY = NOMEVY KEVOL1.KEVTEX = KEVTEX NMOD1 = NMOD1 + 1 C Cas a droite de la borne : SEGINI,MLREE2=MLREEL SEGINI,MLREE3=MLREE1 JG = JG + 1 SEGADJ,MLREE2,MLREE3 C Creation de la I1e courbe : SEGINI,KEVOL1 KEVOL1.IPROGX = MLREE2 KEVOL1.IPROGY = MLREE3 KEVOL1.NUMEVX = NUMEVX KEVOL1.NUMEVY = NUMEVY KEVOL1.TYPX = TYPX KEVOL1.TYPY = TYPY KEVOL1.NOMEVX = NOMEVX KEVOL1.NOMEVY = NOMEVY KEVOL1.KEVTEX = KEVTEX NMOD1 = NMOD1 + 1 C Cas dans le domaine de definition ELSE KEVOL1 = KEVOLL ENDIF C C Ajout I1e courbe a EVOL resultat MEVOL1.IEVOLL(I1) = KEVOL1 MEVOL1.ITYEVO = ITYEVO MEVOL1.IEVTEX = IEVTEX 100 CONTINUE C SI FLOT2, on recommence : IF (IFLOT2.NE.0) THEN IFLOT2 = 0 FLOT1 = FLOT2 MEVOLL = MEVOL1 GOTO 99 ENDIF C---- Sorties IF (NMOD1.EQ.0) GOTO 910 RETURN C L'evolution est vide et pas NOID 900 CONTINUE MOTERR(1:8)='EVOLUTIO' RETURN C On renvoie l'evolution en entree : 910 CONTINUE RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales