C CONCYC1   SOURCE    OF166741  25/11/04    21:15:37     12349          
          SUBROUTINE CONCYC1(wrk52,wrk53,wrk54,nvari,iecou)
C
C====&===1=========2=========3=========4=========5=========6=========7==
C Commentaires : Subroutine permettant de mettre en oeuvre le
C                        modele CONCYC (M. Vassaux & B. Richard) pour representer
C                le comportement 2D/3D d'un beton ordinaire sous
C                sollicitations cycliques
C
C Traits       : - Endommagement scalaire
C                - Boucles hysteretiques
C                - Deformations permanentes
C                - Refermeture lineaire des fissures
C                - Effet unilatteral complet
C                - Non localite portant sur le seuil d'endommagement (Fd)
C
C Auteur       : B. Richard
C
C Co-auteur    : M. Vassaux
C
C Date         : 2010 - 2011
C====&===1=========2=========3=========4=========5=========6=========7==
C
C-----DECLARATION GENERALE----------------------------------------------
C
      IMPLICIT REAL*8(A-H,O-Z)
      REAL*8 DEPST2(4),DEPST3(6),VAR1(42)
C
C-----LISTE DES INCLUDES A CHARGER--------------------------------------
C

-INC PPARAM
-INC CCOPTIO
-INC DECHE
C
C-----DEFINITION DE L ISOTROPIE-----------------------------------------
C
      CMATE = 'ISOTROPE'
C
C-----PARAMETERES-------------------------------------------------------
C

C     Dans le cas d'un calcul local      :
C                --> NSUB = NSUB0
C
C     Dans le cas d'un calculs non local :
C                --> calcul du seuil : NSUB = 1
C                --> calcul moyenne  : NSUB = NSUB0


C     Choix de NSUB0 de maniere adaptative
      XTEMP = 0.0D0
      DO I=1,(2*IDIM)
         XTEMP = MAX(ABS(DEPST(I)),XTEMP)
      ENDDO

      IF (XTEMP.LE.1.0D-5) THEN
         NSUB0 = 10
      ELSEIF ((XTEMP.GT.1.0D-5).AND.(XTEMP.LE.1.0D-4)) THEN
         NSUB0 = 100
      ELSEIF ((XTEMP.GT.1.0D-4).AND.(XTEMP.LE.1.0D-3)) THEN
         NSUB0 = 1000
      ELSEIF (XTEMP.GT.1.0D-3) THEN
         NSUB0 = 1000
      ENDIF

      IF (ISTEP.EQ.0) THEN
         NSUB = NSUB0
      ELSEIF (ISTEP.EQ.1) THEN
         NSUB = 1
      ELSEIF (ISTEP.EQ.2) THEN
         NSUB = NSUB0
      ENDIF

C     PAS DE SUBSTEPPING, tant que l'on ne sait pas gérer ISTEP depuis le script...
      NSUB = 1

C     RICBET3D
C-----------------------------------------------------------------------
C
C        On forme le vecteur des increments de deformations subdivisees
C      DO K=1,6
C          DEPST3(K)=DEPST(K)/NSUB
C      ENDDO

C        On retient les varibles internes de depart
C      DO K=1,35
C          VAR1(K)=VAR0(K)
C      ENDDO

C        On commence le substepping
C      DO J=1,NSUB

          CALL CONCYC2(XMAT,SIG0,SIGF,VAR0,VARF,DEPST,ISTEP)

C          DO I=1,35
C             VAR1(I)=VARF(I)
C          ENDDO
C
C      ENDDO


      RETURN
      END

 
