C DECHAT SOURCE CHAT 05/01/12 22:39:01 5004 C DECHAT SOURCE INSL 24/10/96 SUBROUTINE DECHAT(EPSRX,STRNX,STRNRX,SIGMRX,TANG,S1X,EDT,EDC, 1 EPST,DEFR,IFISU,IPLA,EQSTR,RTM,EPSC,IREFE,EX,RB,ALPHA,EPSU, 2 EPO1,ICAL,IBB1,IGAU1,IDIR,PASDT) C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) CHARACTER*8 PASDT C C CE SOUS-PROGRAMME GERE LA REFERMETURE DES FISSURES. C CALCUL DE LA NOUVELLE PENTE EDT (RESTAURATION PROGRESSIVE C DE LA RAIDEUR DE LA FISSURE C IREFE=0 RBT=ALPHA*RB REFERM=3.D0*EPSU IF(DABS(EDC).LT.0.1D-06) EDC=0.D0 IF(EDC.NE.0.D0) REFERM=REFERM+DEFR IF(STRNRX.GT.EPSRX) RETURN IF(STRNRX.GT.REFERM) THEN IREFE=1 S1X=0.D0 RETURN ENDIF IFISU=0 IF(EDC.NE.0.D0) EPST=DEFR-RBT/EDC C C REFERMETURE POUR UN POINT INITIALLEMENT TENDU C C CALCUL DU MODULE EDT LORS DE LA REFERMETURE C C IF(STRNRX.GT.EPST) THEN IF(EPSRX.LE.REFERM)THEN EDT=(RBT+RTM)/(EPSRX-EPST) IF(IPLA.EQ.2.AND.EQSTR.LT.RBT) EDT=EQSTR/(EPSRX-EPST) S1X=EDT*STRNX+RTM ELSE EDT=RBT/(REFERM-EPST) IF(IPLA.EQ.2.AND.EQSTR.LT.RBT) EDT=EQSTR/(REFERM-EPST) S1X=EDT*(STRNRX-REFERM) ENDIF TANG=EDT ELSE IF(STRNRX.LT.EPSC) THEN EPEQ=DABS(STRNRX) CALL CDCY(EPEQ,SEQ,IPLA,TANG,EX,RB,EMAX,EPO1,ICAL) C C ACTUALISATION DE EQSTR C EQSTR=SEQ S1X=-SEQ ELSE C C ON EST SUR LA PENTE EDC C S1X=EDC*(STRNRX-DEFR) TANG=EDC ENDIF ENDIF IF(EDT.LT.0.D0) THEN WRITE(*,*) ' !!!! ATTENTION DANS DECHART EDT < 0 APPELE PAR' & ,PASDT WRITE(*,94) IBB1,IGAU1,IDIR 94 FORMAT(' ELEME=',I3,'POINT=',I2,' IDIR=',I2) WRITE(*,*)'RTM=',RTM,'RBT=',RBT,'IPLA=',IPLA,'IFISU=',IFISU WRITE(*,*) 'EPSRX= ',EPSRX,' SIGMRX= ',SIGMRX WRITE(*,*) 'STRNRX= ',STRNRX,' EPSC= ',EPSC WRITE(*,*) 'EQSTR= ',EQSTR,' EPST= ',EPST,' DEFR=',DEFR WRITE(*,*) 'ERREUR EDT<0 ! EDT=',EDT,' EDC=',EDC STOP ENDIF RETURN END