C BUCK3D    SOURCE    PV090527  23/01/27    21:15:10     11574          
      subroutine buck3d(altc,dt3,dct3,vwplx33,vwplx33t,sigfc61)
c     couplage des endo de traction localise et de compresion
c     pour le flambage des biellettes de compression
c     A.Sellier 2021/05/05
      implicit real*8 (a-h,o-z)
      implicit integer (i-n)
      
      real*8 altc,dt3(3),dct3(3),vwplx33(3,3),vwplx33t(3,3),sigfc61(6)
      real*8 sigfc6p(6),sigfc6ct(6),dx
      integer i,j,k,l

      if(altc.gt.0.) then
          do i=1,3
             call indce1(i,k,l)
             dct3(i)=1.d0-((1.d0-dt3(k))*(1.d0-dt3(l)))**altc
c             print*,'Dans buck3d dct3(',i,')=',dct3(i)
          end do      
c         passage  des contraintes effectives dans la base 
c         prin des endo actuels
          call chrep6(sigfc61,vwplx33,.false.,sigfc6p)  
c         application du tenseur d endommagement aux contraintes 
c         de tractions
          do i=1,6
             if(i.le.3) then
                 sigfc6ct(i)=sigfc6p(i)*(1.d0-dct3(i))
             else
                 call indce0(i,k,l)
                 dx=max(dct3(k),dct3(l))
                 sigfc6ct(i)=sigfc6p(i)*(1.d0-dx)
             end if           
          end do
c         retour des contraintes negatives en base fixe
          call chrep6(sigfc6ct,vwplx33t,.false.,sigfc61)
      else
c         pas de couplage endo de traction / endo de compression       
          do i=1,3
                dct3(i)=0.d0
          end do
      end if
      return
      end
      
       
 
