C CAMFLO    SOURCE    AM        13/12/16    21:15:23     7832
      SUBROUTINE CAMFLO(IFOUR,SIG,XINV,PI,XMAT,DFDS,DFDPI,H)
*----------------------------------------------------------------
*                      MODELE CAM-CLAY
*            QUANTITES NECESSAIRES A L'ECOULEMENT
*----------------------------------------------------------------
*   ENTREE :
*          IFOUR     CF CCOPTIO
*          SIG       CONTRAINTES
*          PI        VARIABLE INTERNE
*          XMAT      PROPRIETES MATERIELLES
*
*   SORTIE :
*          DFDS      DF / DSIG
*          DFDPI     DF / DPI
*          H         LOI D'ECROUISSAGE
*----------------------------------------------------------------
*
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
      DIMENSION SIG(*),XINV(*),XMAT(*),DFDS(*)
*
      E0   = XMAT(5)
      COHE = XMAT(7)
      GM   = XMAT(8)
      XLAMD= XMAT(9)
      XKAPA= XMAT(10)
*
      TETA=(1.D0+E0)/(XLAMD-XKAPA)
      UNGM2= 1.D0/(GM*GM)
      AUX=(COHE-PI)*0.5D0 -XINV(1)
      Y =AUX**2 + (XINV(2)/GM)**2
      Y = SQRT(Y)
      UNSY=1.D0/Y
      FAC =AUX/3.D0
*
      DFDS(1)=UNSY*(UNGM2*(SIG(1)-0.5D0*(SIG(2)+SIG(3))) - FAC)
      DFDS(2)=UNSY*(UNGM2*(SIG(2)-0.5D0*(SIG(1)+SIG(3))) - FAC)
      DFDS(3)=UNSY*(UNGM2*(SIG(3)-0.5D0*(SIG(1)+SIG(2))) - FAC)
      DFDS(4)=UNSY*UNGM2*3.D0*SIG(4)
      IF(IFOUR.GE.1) THEN
         DFDS(5)=UNSY*UNGM2*3.D0*SIG(5)
         DFDS(6)=UNSY*UNGM2*3.D0*SIG(6)
      ENDIF
*
      DFDPI=-0.5D0*(1.D0 + AUX*UNSY)
*
      H=TETA*(PI+COHE)*AUX*UNSY
*
      RETURN
      END


