!********************************************************************
!
      subroutine obcch3d_recompose(front, u_n, res, i, j, nbrModesATraiter)
!
!********************************************************************
!
!     objet    : recomposition de la variable res en utilisant les modes
!
!
!     appelant         : cfouzexp, cfovzexp
!                      :
!     appeles          :
!     canal d ecriture :
!     canal de lecture :
!     cle cpp          :
!                      :
!     variables in     :
!                      :
!     variables out    :
!                      :
!     variables inout  :
!
!***********************************************************
!!
!! Arguments :
!! Numero de la frontiere                         : front
!! Coefficients dans la base des vecteurs propres : u_n
!! Variable en sortie (projection)                : res
!! Position en i sur la frontiere                 : i
!! Position en j sur la frontiere                 : j
!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!
use parameters
use comvars3d
use comvars2d
use comcfo
implicit none
!
!! declaration programme
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      integer,intent(in) :: i,j,front,nbrModesATraiter
      real(kind=rsh),dimension(1:kmax),intent(in)       ::u_n
      real(kind=rsh),dimension(kmax,limin:limax,ljmin:ljmax),intent(out)::res
      real(kind=rsh),dimension(kmax,limin:limax,ljmin:ljmax)::prov
      integer :: k,k2
 prov(:,i,j)=0      
 do k=1,nbrModesATraiter !numero du mode
    do k2=1,kmax !numero de niveau
       if (front < 3) then
          prov(k2,i,j)=prov(k2,i,j)+dble(u_n(k))*Mn_nord_sud(front,i,k2,k)
       else
          prov(k2,i,j)=prov(k2,i,j)+dble(u_n(k))*Mn_est_ouest(front,j,k2,k)
       endif
    enddo
 enddo
 
 res(:,i,j)=prov(:,i,j)
	
      end subroutine obcch3d_recompose
