spon
C SPON SOURCE BP208322 16/11/18 21:21:18 9177 SUBROUTINE SPON IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) CHARACTER*72 TI CHARACTER*(4) CMOT C C ======================================================== C = C SPECTRES NON LINEAIRES D' OSCILLATEUR = C = C SYNTAXE : EVOL = SPON 'SIGN' EVOL1 'SPEL' EVOL2 MOTENTR= C = C 'AMOR' LAMOR 'PROP' LPROP = C = C ('COUL' COOL) SORTIE = C = C CREATION : 1990/06/15 = C PROGRAMMEUR : A.PINTO $ P.PEGON (CEC-JRC ISPRA) = C (BASE : SUBROUTINE SPO) = C 7/90 = C ======================================================== C -INC PPARAM -INC CCOPTIO -INC SMEVOLL -INC SMLREEL -INC CCGEOME *- -INC CCREEL PARAMETER (LMOT=13) CHARACTER*4 MODOM(13) CHARACTER*12 ITITY(4) DATA MODOM/'DEMA','SIGN','SPEL','AMOR', 1 'TAKE','ISOT','CINE','ELAS', & 'COUL','DEPL','VITE','ACCE','EPSE'/ DATA ITITY /'DEPL MAXIMAU','PSEUDO VITES','PSEUDO ACCEL', & 'DEFNL CUMULE'/ IPAMOR=0 IPPROP=0 ICOUL1=IDCOUL IPOEVO=0 IPSPEV=0 idema = 0 N0=-1 C C LECTURE DES OBJETS C ================== C DO 10 I=1,13 IF (IPLAC.EQ.0) GOTO 12 C 8 GOTO (20,21,22,23,24,24,24,24, & 25,26,26,26,26),IPLAC C 20 continue idema = 1 goto 10 21 CONTINUE C C TEMPS ET ACCELERATION DU SIGNAL (OBJET EVOLUTION) C IF (IRET.EQ.0) RETURN GOTO 10 C 22 CONTINUE C C SPECTRES LINEAIRES (OBJET EVOLUTION) C IF (IRET.EQ.0) RETURN C C TYPE DES SPECTRES LINEAIRES (OBJET MOT) C ( 'DEPL', 'VITE', 'ACCE' ) C IF (ITYP.EQ.0) RETURN NN0=ITYP-1 GOTO 10 C 23 CONTINUE C C AMORTISSEMENT C IF (IRET.EQ.0) RETURN GOTO 10 C 24 CONTINUE C C PROPRIETES C imod = iplac - 4 IF (IRET.EQ.0) RETURN GOTO 10 C 25 CONTINUE C C COULEURS C IF (ICOUL1.EQ.0) RETURN icoul1=icoul1-1 GOTO 10 C 26 CONTINUE C C TYPE DE LA REPONSE (SORTIE) C N0=IPLAC-10 GOTO 10 C 10 CONTINUE 12 CONTINUE C C ON VERIFIE L' EXISTENCE DES DONNES C ================================== C IF (IPOEVO.EQ.0)THEN RETURN ENDIF C IF (IPSPEV.EQ.0)THEN RETURN ENDIF C IF (N0.EQ.-1)THEN RETURN ENDIF C IF (IPAMOR.EQ.0 ) THEN RETURN ENDIF C IF (IPPROP.EQ.0 ) THEN RETURN ENDIF C C ON VERIFIE LA CONSISTENCE DES DONNES C ==================================== C C AMORTISSEMENT C MLREEL=IPAMOR SEGACT MLREEL DO 11 NBAM=1,NNBAM MOTERR(1:8)='AMORTISS' REAERR(2)=0. REAERR(3)=1. SEGDES MLREEL RETURN ENDIF 11 CONTINUE SEGDES MLREEL C C PROPRIETES C MLREEL=IPPROP SEGACT MLREEL IF (NNPRO.NE.5 .and.imod.eq.1) THEN INTERR(1)=5 SEGDES MLREEL RETURN else if (NNPRO.NE.2 .and.imod.ne.1) then INTERR(1)=2 SEGDES MLREEL RETURN else if (NNPRO.eq.2 .and.imod.ne.1) then * modele bilineaire elastoplastique ou elastique * on met n'importe quoi dans les 3 parametres qui servent à rien alfa = 0.d0 beta = 0.d0 gama = 0.d0 ENDIF SEGDES MLREEL RETURN ENDIF SEGDES MLREEL RETURN ENDIF MOTERR='TETA' SEGDES MLREEL RETURN ENDIF if (imod.eq.1) then MOTERR='ALFA' SEGDES MLREEL RETURN ENDIF MOTERR='BETA' SEGDES MLREEL RETURN ENDIF MOTERR='GAMA' SEGDES MLREEL RETURN ENDIF endif C C PROPRIETES: TOUT EN ORDE C if (imod.eq.1) then endif SEGDES MLREEL C C LE SIGNAL C MEVOLL=IPOEVO SEGACT MEVOLL KEVOLL=IEVOLL(1) SEGACT KEVOLL MLREEL=IPROGX SEGACT MLREEL DTEMPO=TE/(ILONT-1.) DTT=DTEMPO-DT IF (ABS(DTT).GT.1.D-6) THEN SEGDES MLREEL SEGDES KEVOLL SEGDES MEVOLL RETURN ENDIF IPT=IPROGX IPG=IPROGY SEGDES MLREEL SEGDES KEVOLL SEGDES MEVOLL C C ON RECOUPERE LE NB. DE SPECTRES C MEVOLL=IPSPEV SEGACT MEVOLL NBCOUR=IEVOLL(/1) SEGDES MEVOLL C C ON COMPARE LE NB. D'AMORTISSEMENTS AVEC LE NB. DE SPECTRES C IF (NBCOUR.NE.NNBAM) THEN RETURN ENDIF C C ON COMMENCE FINALEMENT !!! C ========================== C MLREEL=IPAMOR SEGACT MLREEL N=N1 SEGINI MEVOLL IPEVOF=MEVOLL C MLREE3=IPT SEGACT MLREE3 SEGDES MLREE3 C MEVOL1=IPSPEV SEGACT MEVOL1 C C BOUCLE SUR LES DIFFERENTS AMORTISSEMENTS C DO 100 I=1,N1 C MLREEL=IPAMOR C KEVOL1=MEVOL1.IEVOLL(I) SEGACT KEVOL1 MLREE1=KEVOL1.IPROGX MLREE3=KEVOL1.IPROGY SEGDES KEVOL1 SEGACT MLREE1 SEGACT MLREE3 C M=0 IAUX=0 C C C BOUCLE SUR LES FREQUENCES C JG=N2 SEGINI MLREE2 IPSPO=MLREE2 C DO 101 J=1,N2 AUX=1/(10.*DFREQ) IF (DT.GT.AUX) THEN IF (IAUX.EQ.0) THEN DPERIO=1/DFREQ IAUX=1 ENDIF ENDIF W=2*XPI*DFREQ W2=W*W C C IF (NN0.EQ.0) DISMAX=SPECTL IF (NN0.EQ.1) DISMAX=SPECTL/W IF (NN0.EQ.2) DISMAX=SPECTL/W2 C C APPEL A LA SUBROUTINE CONTENANT L'ALGORITHME C C IF (TMAX.GT.TPS) M=M+1 C MLREE2=IPSPO 101 CONTINUE C SEGINI KEVOLL IEVOLL(I)=KEVOLL TYPX='LISTREEL' TYPY='LISTREEL' IPROGX=MLREE1 IPROGY=IPSPO NOMEVX='FREQUENCE' NOMEVY=ITITY(N0+1) NUMEVX=ICOUL1 NUMEVY='REEL' TI(1:72)=TITREE IEVTEX=TI ITYEVO='REEL' c KEVTEX=TI KEVTEX=NOMEVY SEGDES KEVOLL SEGDES MLREE2 SEGDES MLREE1 SEGDES MLREE3 100 CONTINUE C 38 FORMAT(1X,'SPON : POUR L AMORTISSEMENT',E12.5/ >1X,' IL Y A',I5,3X,'DEPLACEMENTS MAXIMAUX'/ >1X,' APRES LA FIN DU SIGNAL') 300 FORMAT(1X,'SPON : POUR L AMORTISSEMENT',E12.5/ >1X,' POUR LES FREQUENCES ( F ) >',E12.5/ >1X,' ( PERIODES ( T ) ) <',E12.5/ >1X,' LA CONDITION ( DT < 1/(10*F) ) (ACCURACY)'/ >1X,' N EST PAS VERIFIE') C SEGDES MEVOLL SEGDES MLREEL SEGDES MEVOL1 C C RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales