      DOUBLE PRECISION FUNCTION VOL2(mx,mz,alfa,b)
      include 'undefined.h'
      DOUBLE PRECISION mx,mz,alfa,alfaa,b,mb
c***      
c     0<mx or 0<mz 
c***
      mb = mx*b
      if (alfa .le. 0.0d0) then
         vol2 = 0.d0
      elseif (alfa .ge. (mb+mz) .or. b .eq. 0.0d0) then
         vol2 = b
      else
         if (mb .le. mz) then
            if (alfa .lt. mb) then
               vol2 = 0.5d0*alfa**2/(mx*mz)
            elseif (alfa .gt. mz) then
               alfaa = mb + mz - alfa
               vol2 = b - 0.5d0*alfaa**2/(mx*mz)  
            else
               vol2 = b*(alfa-0.5d0*mb)/mz
            endif
         else
            if (alfa .lt. mz) then
               vol2 = 0.5d0*alfa**2/(mx*mz)
            elseif (alfa .gt. mb) then
               alfaa = mb + mz - alfa
               vol2 = b - 0.5d0*alfaa**2/(mx*mz)  
            else
               vol2 = (alfa-0.5d0*mz)/mx
            endif
         endif
      endif
c***  
      return
      end
