C OSCI SOURCE OF166741 25/02/20 21:17:24 12165 SUBROUTINE OSCI IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) CHARACTER*72 TI C C ======================================================== C = C REPONSE D'UN OSCILLATEUR A UNE EXCITATION DONNEE = C = C SYNTAXE : EVOL = OSCI EVOL1 AMOR XSI FREQ DFREQ = C = C (TEMP LTEMP) (DEPL XDEP) (VITE XVIT) (COUL COOL) = C = C CREATION : 03/06/87 = C PROGRAMMEUR : MALAVAL = C = C ======================================================== C -INC CCREEL -INC PPARAM -INC CCOPTIO -INC SMEVOLL -INC CCGEOME CHARACTER*4 MODOM(6) DATA MODOM/'AMOR','FREQ','TEMP','DEPL','VITE','COUL'/ LMOT=6 ITEMP=0 IAMOR=0 IFREQ=0 IVITE=0 IDEPL=0 ICOUL1=IDCOUL C C LECTURE DES MOTS C DO 10 I=1,6 CALL LIRMOT(MODOM,LMOT,IPLAC,0) IF (IPLAC.EQ.0) GOTO 10 C 5 GOTO (1,2,3,31,32,4),IPLAC C 1 CONTINUE C C AMORTISSEMENT C CALL LIRREE (XSI,1,IRET) IAMOR=1 GOTO 10 C 2 CONTINUE C C FREQUENCE C CALL LIRREE (DFREQ,1,IRET) IFREQ=1 GOTO 10 C 3 CONTINUE C C TEMPS C CALL LIROBJ ('LISTREEL',IPT,1,IRET) ITEMP=1 GOTO 10 C 31 CONTINUE C C DEPLACEMENT INITIAL C CALL LIRREE (XDEP,1,IRET) IDEPL=1 GOTO 10 C 32 CONTINUE C C VITESSE INITIALE C CALL LIRREE (XVIT,1,IRET) IVITE=1 GOTO 10 C 4 CONTINUE C C COULEURS C CALL LIRMOT (NCOUL,NBCOUL,ICOUL1,0) IF (ICOUL1.EQ.0) ICOUL1=IDCOUL+1 ICOUL1=ICOUL1-1 C GOTO10 C 10 CONTINUE C IF ( (IAMOR*IFREQ).EQ.0 ) THEN CALL ERREUR (26) RETURN ENDIF IF (XSI.LT.0.OR.XSI.GE.1) THEN MOTERR(1:8)='AMORTISS' REAERR(1)=XSI REAERR(2)=0. REAERR(3)=1. CALL ERREUR(42) RETURN ENDIF IF (IVITE.EQ.0) XVIT=0. IF (IDEPL.EQ.0) XDEP=0. C C TEMPS ET ACCELERATION DE L'OBJET EVOLUTION C CALL LIROBJ ('EVOLUTIO',IPOEVO,1,IRET) MEVOLL=IPOEVO SEGACT MEVOLL KEVOLL=IEVOLL(1) SEGACT KEVOLL IPTG=IPROGX IPGG=IPROGY SEGDES MEVOLL SEGDES KEVOLL IF (ITEMP.EQ.0) GOTO 60 C C APPEL A LA SUBROUTINE D'INTERPOLATION C CALL INTE33(IPTG,IPGG,IPT,IPG) GOTO 70 60 IPT=IPTG IPG=IPGG C C APPEL A LA SUBROUTINE CONTENANT L'ALGORITHME C 70 CALL INOSCI(IPT,IPG,DFREQ,XSI,XDEP,XVIT,IPYD) C C CREATION D'UN OBJET EVOLUTION C SEGINI KEVOLL IPROGX=IPT IPROGY=IPYD NOMEVX='TEMPS' TYPX='LISTREEL' TYPY='LISTREEL' NOMEVY='DEPLACEMENT' NUMEVX=ICOUL1 NUMEVY='REEL' C C N=1 SEGINI MEVOLL IPSOL=MEVOLL IEVOLL(1)=KEVOLL TI(1:72)=TITREE IEVTEX=TI ITYEVO='REEL' c KEVTEX=TI KEVTEX='DEPL' SEGDES KEVOLL SEGDES MEVOLL C C CALL ECROBJ ('EVOLUTIO',IPSOL) RETURN END