spo
C SPO SOURCE PV 16/06/24 13:07:54 8985 SUBROUTINE SPO IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) CHARACTER*72 TI CHARACTER*(4) CMOT c c ======================================================== c = c spectres d' oscillateur = c = c syntaxe : evol = spo evol1 amor lamor (freq lfreq) = c = c (temp ltemp) (coul cool) sortie = c = c creation : 03/06/87 = c programmeur : malaval = c = c modification : 17/12/90 = c programmeur : a.pinto and p.pegon = c = c ======================================================== c -INC PPARAM -INC CCOPTIO -INC SMEVOLL -INC SMLREEL -INC CCGEOME -INC CCREEL cap 7-->8, 3-->4 et vrai acc CHARACTER*4 MODOM(8) CHARACTER*12 ITITY(4) DATA MODOM/'AMOR','FREQ','TEMP','COUL','DEPL','VITE','ACCE', *'ACCA'/ DATA ITITY /'DEPLMAXIMAUX','PSEUDO VITES','PSEUDO ACCEL', *'ABSOLUTE ACC'/ LMOT=8 cap ITEMP=0 IAMOR=0 IFREQ=0 ICOUL1=IDCOUL N0=0 c c lecture des mots c DO 10 I=1,5 IF (IPLAC.EQ.0) GOTO 10 cap +12 8 GOTO (1,2,3,4,5,6,7,12),IPLAC cap 1 CONTINUE c c amortissement c IAMOR=1 GOTO 10 c 2 CONTINUE c c frequence c IFREQ=1 GOTO 10 c 3 CONTINUE c c temps c ITEMP=1 GOTO 10 c 4 CONTINUE c c couleurs c IF (ICOUL1.EQ.0) ICOUL1=IDCOUL+1 ICOUL1=ICOUL1-1 GOTO10 c 5 CONTINUE c c spectre en deplacement relatif c N0=1 GOTO 10 c 6 CONTINUE c c spectre en pseudo vitesse c N0=2 GOTO 10 c 7 CONTINUE c c spectre en pseudo acceleration c N0=3 GOTO 10 cap 12 CONTINUE c c spectre en acceleration absolute c N0=4 GOTO 10 cap c 10 CONTINUE c IF (N0.EQ.0 ) THEN RETURN ENDIF c IF (IAMOR.EQ.0 ) THEN RETURN ENDIF MLREEL=IPAMOR SEGACT MLREEL MOTERR(1:8)='AMORTISS' REAERR(2)=0. REAERR(3)=1. SEGDES MLREEL RETURN ENDIF 11 CONTINUE SEGDES MLREEL c c temps et acceleration de l'objet evolution c MEVOLL=IPOEVO SEGACT MEVOLL KEVOLL=IEVOLL(1) SEGACT KEVOLL IPTG=IPROGX IPGG=IPROGY SEGDES MEVOLL SEGDES KEVOLL IF (ITEMP.EQ.0) THEN MLREE1=IPTG SEGACT MLREE1 MLREE2=IPGG SEGACT MLREE2 DT=TPS/(LONT-1) NA=TPS/(2*DT) JG = LONT+NA SEGINI MLREEL IPT=MLREEL SEGINI MLREE3 IPG=MLREE3 TPT=3*TPS/2 DO 51 LL=1,LONT 51 CONTINUE DO 52 LL=LONT,(LONT+NA-1) 52 CONTINUE SEGDES MLREE1 SEGDES MLREE2 SEGDES MLREEL SEGDES MLREE3 GOTO 70 ELSE MLREE3=IPT SEGACT MLREE3 SEGDES MLREE3 c c appel a la subroutine d'interpolation c ENDIF c c c appel a la subroutine contenant l'algorithme c 70 MLREEL=IPAMOR SEGACT MLREEL N=N1 SEGINI MEVOLL IPOEVO=MEVOLL c c creation eventuelle d'une liste de frequences c IF (IFREQ.EQ.0) THEN MLREE3=IPTG SEGACT MLREE3 SEGDES MLREE3 c c pas moyen du signal c DT=TPS/(LONT-1) c c frequence la plus basse c F1=1/TPS c c frequence la plus haute c F3=1/(2*DT) c ELSE MLREE3=IPTG SEGACT MLREE3 SEGDES MLREE3 ENDIF c c boucle sur les differents amortissements c DO 100 I=1,N1 c mlreel=ipamor JG=0 SEGINI MLREE2 IPSPO=MLREE2 IF (IFREQ.NE.0) GOTO 42 c c frequence de separation c IF (XSI.NE.0.) THEN F2=1/(XSI*TPS) ELSE F2=F3 ENDIF c c nombre d'intervalles successifs de largeur f1 entre f1 et f2 c N3=(F2-F1)/F1 c c c creation de l'objet listreel c JG=N3 SEGINI MLREE1 IPFREQ=MLREE1 DO 102 K=1,N3-1 102 CONTINUE IF (Z.NE.F2) THEN JG=N3+1 SEGADJ MLREE1 N5=N3+1 ELSE N5=N3 ENDIF c c nombre des intervalles de largeur variable , pris en compte c entre f2 et f3 c IF (XSI.NE.0.) THEN N4=N5+(LOG(F3/F2)/LOG(1+XSI)) JG=N4 SEGADJ MLREE1 DO 103 K=N5,N4-1 103 CONTINUE SEGDES MLREE1 ENDIF c 42 MLREE1=IPFREQ SEGACT MLREE1 M=0 c c c boucle sur les frequences c JG=JG0+N2 SEGADJ MLREE2 DO 101 J=1,N2 c mlree1=ipfreq W=2*XPI*DFREQ W2=W*W cap cap IF (TMAX.GT.TPS) THEN c le maximum est atteint près la fin du signal IF ( (TMAX-TPSMAX) .GE. 0.D0)THEN c le maximum est atteint a la fin de l'intervale d'étude : mauvais ! REAERR(1)=XSI REAERR(2)=DFREQ ENDIF M=M+1 ENDIF c mlree2=ipspo cap cap 101 CONTINUE c c message pour signaler que le maximum est atteint apres la fin du signal c IF ( M .NE. 0) THEN REAERR(1)=XSI INTERR(1)=M ENDIF c SEGINI KEVOLL IEVOLL(I)=KEVOLL TYPX='LISTREEL' TYPY='LISTREEL' IPROGX=IPFREQ IPROGY=IPSPO NOMEVX='FREQUENCE' NOMEVY=ITITY(N0) NUMEVX=ICOUL1 NUMEVY='REEL' TI(1:72)=TITREE IEVTEX=TI ITYEVO='REEL' c KEVTEX=TI KEVTEX=NOMEVY SEGDES KEVOLL SEGDES MLREE2 100 CONTINUE SEGDES MEVOLL SEGDES MLREE1 SEGDES MLREEL c c RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales