C INOSCI SOURCE CHAT 05/01/13 00:38:39 5004 SUBROUTINE INOSCI(IPT,IPG,DFREQ,XSI,XDEP,XVIT,IPYD) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C C ===================================================== C = C EXECUTION DU CALCUL DE LA REPONSE A UN SIGNAL D'UN = C OSCILLATEUR AVEC CONDITIONS INITIALES EN VITESSE = C ET EN DEPLACEMENT. = C = C CREATION : 03/06/87 = C PROGRAMMEUR : MALAVAL = C = C ===================================================== C -INC SMLREEL -INC CCREEL LOGICAL PASCON MLREE1=IPT SEGACT MLREE1 MLREE2=IPG SEGACT MLREE2 NN=MLREE1.PROG(/1) JG=NN SEGINI MLREE3 IPYD=MLREE3 C C LE SIGNAL EST-IL A PAS CONSTANT ? C PASCON=.TRUE. H=MLREE1.PROG(2)-MLREE1.PROG(1) DO 10 J=1,NN-2 H1=MLREE1.PROG(J+2)-MLREE1.PROG(J+1) TEST=H1-H IF (TEST.GT.(1.E-6*H)) THEN PASCON=.FALSE. GOTO 11 ENDIF 10 CONTINUE C C CALCUL DE CONSTANTES UTILES C 11 W=2*XPI*DFREQ W2=W*W A=W*SQRT(1-XSI*XSI) B=2*XSI/W C=(2*XSI*XSI-1)/A D=XSI*W E=W2/A F=D/A MLREE3.PROG(1)=XDEP VITEP=XVIT C C CREATION DE LA BOUCLE C S=MLREE2.PROG(1) H1=MLREE1.PROG(1) DO 100 I=1,NN-1 C C DIFFERENCE ENTRE 2 ACCELERATIONS SUCCESSIVES : G C T=MLREE2.PROG(I+1) G=T-S IF (PASCON.AND.I.NE.1) GOTO 12 C C DIFFERENCE ENTRE 2 TEMPS SUCCESSIFS : H C H2=MLREE1.PROG(I+1) H=H2-H1 P=EXP(-D*H) WH=A*H Q=COS(WH) R=SIN(WH) C C CALCUL EXPLICITE DU DEPLACEMENT C PSA=P/A UNSW2=1/W2 QPFR=Q+F*R * 12 O=G/H MLREE3.PROG(I+1)=PSA*((A*Q+D*R)*MLREE3.PROG(I)+R*VITEP) |+UNSW2*(P*(O*(B*Q+C*R)-S*QPFR)+T-B*O) VITEP=PSA*((-W2)*R*MLREE3.PROG(I)+((-D)*R+A*Q)* |VITEP)+UNSW2*(P*((-O)*QPFR+S*E*R)+O) S=T H1=H2 * 100 CONTINUE SEGDES MLREE1 SEGDES MLREE2 SEGDES MLREE3 RETURN END