C INSI SOURCE OF166741 25/02/20 21:16:45 12165 C$$$$ INSI C INSI SOURCE ISPRA 90/06/12 SUBROUTINE INSI IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C======================================================================= C OPERATEUR INSI C C D*EVOLUTION V*EVOLUTION = INSI A*EVOLUTION (METH*MOT) C C======================================================================= C PROGRAMMEUR : P.P. C======================================================================= C CHARACTER *72 TI CHARACTER*12 MOTX,MOTY C PARAMETER (NMOCLE=2) CHARACTER*4 MOTCLE(NMOCLE) C -INC PPARAM -INC CCOPTIO -INC SMEVOLL -INC SMLREEL C POINTEUR IACCE.MLREEL,IVITE.MLREEL,IDEPL.MLREEL,ITEMP.MLREEL POINTEUR JACCE.MEVOLL,JVITE.MEVOLL,JDEPL.MEVOLL POINTEUR KACCE.KEVOLL,KVITE.KEVOLL,KDEPL.KEVOLL C C 1) LECTURE DES DONNEES GIBIANE C C 1.1) LISTE DES MOTS CLEF C DATA MOTCLE/'SIMP','LINE'/ C C 1.2) DEFAUTS C IMETH=1 C C 1.3) LECTURE DE L'OBJET EVOLUTIO CONTENANT L'ACCELERATION C CALL LIROBJ('EVOLUTIO',JACCE,1,IRET) IF(IRET.EQ.0) RETURN C C 1.4) LECTURE DU MOT-CLEF C (OPTIONEL) C CALL LIRMOT(MOTCLE,NMOCLE,IVAL,0) C IF(IVAL.NE.0)THEN IMETH=IVAL ENDIF C C C 2) INITIALISATION DIVERSES C SEGACT, JACCE N=JACCE.IEVOLL(/1) C TI=JACCE.IEVTEX SEGINI, JVITE SEGINI, JDEPL JVITE.IEVTEX='Integration ('//MOTCLE(IMETH)//') de:'//TI(1:50) JDEPL.IEVTEX='Integration ('//MOTCLE(IMETH)//') de:'//TI(1:50) C C 3) LOOP DE CALCUL C DO 100 IE1=1,N C C 3.1) INITIALISATION ET ACTIVATION C KACCE=JACCE.IEVOLL(IE1) SEGACT, KACCE C ITEMP=KACCE.IPROGX IACCE=KACCE.IPROGY ICOUL=KACCE.NUMEVX SEGDES, KACCE C SEGACT, IACCE SEGACT, ITEMP NPT=ITEMP.PROG(/1) JG=NPT C SEGINI, KVITE JVITE.IEVOLL(IE1)=KVITE C WRITE(TI,'(A17,1X,A6,1X,I2)')'Signal en vitesse', > 'numero',IE1 WRITE(MOTY,'(9HVitesse ,1X,I2)')IE1 SEGINI, IVITE C KVITE.KEVTEX=TI KVITE.NUMEVX=ICOUL KVITE.NUMEVY='REEL' KVITE.TYPX='LISTREEL' KVITE.IPROGX=ITEMP KVITE.TYPY='LISTREEL' KVITE.IPROGY=IVITE KVITE.NOMEVY=MOTY(1:12) SEGDES, KVITE C SEGINI, KDEPL JDEPL.IEVOLL(IE1)=KDEPL C WRITE(TI,'(A21,1X,A6,1X,I2)')'Signal en deplacement', > 'numero',IE1 WRITE(MOTY,'(9HDeplacem.,1X,I2)')IE1 SEGINI, IDEPL C KDEPL.KEVTEX=TI KDEPL.NUMEVX=ICOUL KDEPL.NUMEVY='REEL' KDEPL.TYPX='LISTREEL' KDEPL.IPROGX=ITEMP KDEPL.TYPY='LISTREEL' KDEPL.IPROGY=IDEPL KDEPL.NOMEVY=MOTY(1:12) SEGDES, KDEPL C C 3.2) CALCUL DE V(I) ET D(I) C C 3.2.1) METHODE SIMPLIFIEE C IF(IMETH.EQ.1)THEN IVITE.PROG(1)=0.D0 IDEPL.PROG(1)=0.D0 DO 20 IE2=2,NPT DT=ITEMP.PROG(IE2)-ITEMP.PROG(IE2-1) IVITE.PROG(IE2)=IVITE.PROG(IE2-1) > +DT*(IACCE.PROG(IE2-1)+IACCE.PROG(IE2))/2 IDEPL.PROG(IE2)=IDEPL.PROG(IE2-1) > +DT*(IVITE.PROG(IE2-1)+IVITE.PROG(IE2))/2 20 CONTINUE ENDIF C C 3.2.2) METHODE LINEAIRE C IF(IMETH.EQ.2)THEN IVITE.PROG(1)=0.D0 IDEPL.PROG(1)=0.D0 DO 25 IE2=2,NPT DT=ITEMP.PROG(IE2)-ITEMP.PROG(IE2-1) IVITE.PROG(IE2)=IVITE.PROG(IE2-1) > +DT*(IACCE.PROG(IE2-1)+IACCE.PROG(IE2))/2 IDEPL.PROG(IE2)=IDEPL.PROG(IE2-1) > +DT*(IVITE.PROG(IE2-1) > +DT*(IACCE.PROG(IE2)+2*IACCE.PROG(IE2-1))/6) 25 CONTINUE ENDIF C C 3.3) FIN ACTIVATION C SEGDES, IACCE SEGDES, ITEMP SEGDES, IVITE SEGDES, IDEPL C 100 CONTINUE C C C SEGDES, JACCE SEGDES, JVITE SEGDES, JDEPL C C 4) RETOUR A GIBIANE C CALL ECROBJ('EVOLUTIO',JVITE) CALL ECROBJ('EVOLUTIO',JDEPL) C C 666 CONTINUE RETURN END