totemp
C TOTEMP SOURCE BP208322 18/12/10 21:15:04 10034 SUBROUTINE TOTEMP IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C C======================================================================= C C CALCUL DU TEMPS TOTAL OU LES ORDONNEES D'UNE COURBE SONT C SUPERIEURES A UN SEUIL DONNE; LE SEUIL EST DEFINI PAR UN % DU C NIVEAU MAXIMA DES CHOC. C LA COURBE EST DANS UN OBJET DE TYPE EVOLUTIO; CET OBJET PEUT C AVOIR PLUSIEURS EVOLUTIO ELEMENTAIRES C C SYNTAXE : TEMP = TOTE EVOL DECL ; C C LES ABSCISSES SONT SUPPOSEES CLASSEES DANS UN ORDRE CROISSANT C LE RESULTAT EST UN FLOTTANT. C C TEMP : OBJET DE TYPE LISTREEL RESULTAT C EVOL : OBJET DE TYPE EVOLUTIO CONTENANT LES ENREGISTREMENTS C DECL : OBJET DE TYPE FLOTTANT % DU NIVEAU MAXIMA C C BP, 2016-05-02 : on reecrit beaucoup (en coherence avec COMT) C C======================================================================= C -INC PPARAM -INC CCOPTIO -INC SMEVOLL -INC SMLREEL -INC CCREEL LOGICAL ZSEUIL C======================================================================= C LECTURE DES OBJETS EN ENTREE C======================================================================= C EVOLUTION IF(IERR.NE.0) RETURN C SEUIL (EN %) IF(IERR.NE.0) RETURN IF(IDECL.EQ.0) THEN c sqrt(1.E-16)*100 ~ 1.E-6 DECLEN=1.D-6 ELSE CBP IF((DECLEN.LT.0.D0).OR.(DECLEN.GT.100.D0))THEN IF((DECLEN.LE.0.D0).OR.(DECLEN.GE.100.D0))THEN MOTERR(1:8)='DECLENCH' REAERR(1)=DECLEN REAERR(2)=0.D0 REAERR(3)=100.D0 RETURN ENDIF DECLEN=MAX(DECLEN,(100.D0*XZPREC)) ENDIF C C======================================================================= C TRAVAIL C======================================================================= MEVOLL=IPEVO SEGACT MEVOLL NC=IEVOLL(/1) JG = NC SEGINI MLREEL IPORE=MLREEL C C --- BOUCLE SUR LES COURBES --- C DO 1 IC=1,NC KEVOLL=IEVOLL(IC) SEGACT KEVOLL MLREE1=IPROGX SEGACT MLREE1 MLREE2=IPROGY SEGACT MLREE2 TEMP=0.D0 NP=0 C C CALCUL DU NIVEAU DE DECLENCHEMENT VMAX=0.D0 DO 10 I=1,L1 IF(FORC.GT.VMAX) VMAX=FORC 10 CONTINUE SEUIL=VMAX*DECLEN/100.D0 IF(IIMPI.GE.1) WRITE(IOIMP,11)SEUIL 11 FORMAT(' SEUIL D''ACQUISITION : ',1PE12.5) C C CALCUL LA DUREE OU LE SIGNAL EST SUPERIEUR AU SEUIL IDEB=0 TEMP=0.D0 ZSEUIL=FORC.GT.SEUIL DO 20 I=2,L1 IF(ZSEUIL) THEN * seuil deja depasse au pas precedent : on ajoute le pas ZSEUIL=FORC.GT.SEUIL ELSE * on etait inferieur, et maintenant ? ZSEUIL=FORC.GT.SEUIL * on est sur un front montant : on ajoute le pas ENDIF 20 CONTINUE C C DESACTIVE TOUT SEGDES MLREE1,MLREE2 SEGDES KEVOLL C C STOCKAGE DU TEMPS DE CHOCS C 1 CONTINUE C --- FIN DE BOUCLE SUR LES COURBES --- SEGDES MEVOLL SEGDES MLREEL C C RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales