Index: LMDZ4/branches/V3_test/libf/dyn3dpar/bands.F90
===================================================================
--- LMDZ4/branches/V3_test/libf/dyn3dpar/bands.F90	(revision 733)
+++ LMDZ4/branches/V3_test/libf/dyn3dpar/bands.F90	(revision 734)
@@ -103,5 +103,8 @@
           if (jjphy_para_begin(i)==jjphy_para_end(i-1)) then
             jj_Nb_physic_bis(i)=jj_Nb_physic_bis(i)-1
-          endif
+          else
+	    jj_Nb_physic_bis(i-1)=jj_Nb_physic_bis(i-1)+1
+	    jj_Nb_physic_bis(i)=jj_Nb_physic_bis(i)-1
+	  endif
         endif
       enddo
@@ -401,5 +404,5 @@
         CLOSE(unit_number)   
       else 
-        print *,'problème lors de l écriture des bandes'
+        print *,'probleme lors de l ecriture des bandes'
       endif
        
Index: LMDZ4/branches/V3_test/libf/dyn3dpar/grid_noro.F
===================================================================
--- LMDZ4/branches/V3_test/libf/dyn3dpar/grid_noro.F	(revision 733)
+++ LMDZ4/branches/V3_test/libf/dyn3dpar/grid_noro.F	(revision 734)
@@ -83,5 +83,5 @@
       REAL zsig(imar+1,jmar),zgam(imar+1,jmar),zthe(imar+1,jmar)
       REAL zpic(imar+1,jmar),zval(imar+1,jmar)
-c$$$ PB     integer mask(imar+1,jmar)
+cxxx PB     integer mask(imar+1,jmar)
       real mask(imar+1,jmar), mask_tmp(imar+1,jmar)
       real num_tot(2200,1100),num_lan(2200,1100)
@@ -274,9 +274,9 @@
          IF (weight(ii,jj) .NE. 0.0) THEN
 c  Mask
-c$$$           if(num_lan(ii,jj)/num_tot(ii,jj).ge.0.5)then
-c$$$             mask(ii,jj)=1
-c$$$           else
-c$$$             mask(ii,jj)=0
-c$$$           ENDIF
+cXXX           if(num_lan(ii,jj)/num_tot(ii,jj).ge.0.5)then
+cXXX             mask(ii,jj)=1
+cXXX           else
+cXXX             mask(ii,jj)=0
+cXXX           ENDIF
              if (.not. masque_lu) then
                mask(ii,jj) = num_lan(ii,jj)/num_tot(ii,jj)
@@ -319,7 +319,7 @@
        CALL MVA9(zxtzy,iim+1,jjm+1) 
        CALL MVA9(zytzy,iim+1,jjm+1)
-C$$$   Masque prenant en compte maximum de terre
-C$$$  On seuil a 10% de terre de terre car en dessous les parametres de surface n'on
-C$$$ pas de sens (PB)
+CXXX   Masque prenant en compte maximum de terre
+CXXX  On seuil a 10% de terre de terre car en dessous les parametres de surface n'on
+CXXX pas de sens (PB)
        mask_tmp= 0.0
        WHERE(mask .GE. 0.1) mask_tmp = 1.
@@ -339,15 +339,15 @@
            if(abs(xm).le.xw) xm=xw*sign(1.,xm)
 c slope: 
-c$$$           zsig(ii,jj)=sqrt(xq)*mask(ii,jj)
-c$$$c isotropy:
-c$$$           zgam(ii,jj)=xp/xq*mask(ii,jj)
-c$$$c angle theta:
-c$$$           zthe(ii,jj)=57.29577951*atan2(xm,xl)/2.*mask(ii,jj)
-c$$$           zphi(ii,jj)=zmea(ii,jj)*mask(ii,jj)
-c$$$           zmea(ii,jj)=zmea(ii,jj)*mask(ii,jj)
-c$$$           zpic(ii,jj)=zpic(ii,jj)*mask(ii,jj)
-c$$$           zval(ii,jj)=zval(ii,jj)*mask(ii,jj)
-c$$$           zstd(ii,jj)=zstd(ii,jj)*mask(ii,jj)
-C$$* PB modif pour maque de terre fractionnaire
+cXXX           zsig(ii,jj)=sqrt(xq)*mask(ii,jj)
+cXXXc isotropy:
+cXXX           zgam(ii,jj)=xp/xq*mask(ii,jj)
+cXXXc angle theta:
+cXXX           zthe(ii,jj)=57.29577951*atan2(xm,xl)/2.*mask(ii,jj)
+cXXX           zphi(ii,jj)=zmea(ii,jj)*mask(ii,jj)
+cXXX           zmea(ii,jj)=zmea(ii,jj)*mask(ii,jj)
+cXXX           zpic(ii,jj)=zpic(ii,jj)*mask(ii,jj)
+cXXX           zval(ii,jj)=zval(ii,jj)*mask(ii,jj)
+cXXX           zstd(ii,jj)=zstd(ii,jj)*mask(ii,jj)
+CXX* PB modif pour maque de terre fractionnaire
 c slope: 
            zsig(ii,jj)=sqrt(xq)*mask_tmp(ii,jj)
Index: LMDZ4/branches/V3_test/libf/dyn3dpar/leapfrog_p.F
===================================================================
--- LMDZ4/branches/V3_test/libf/dyn3dpar/leapfrog_p.F	(revision 733)
+++ LMDZ4/branches/V3_test/libf/dyn3dpar/leapfrog_p.F	(revision 734)
@@ -181,5 +181,5 @@
       PARAMETER (testita = 9)
       
-c declaration liées au parallelisme
+c declaration liees au parallelisme
       INTEGER :: ierr
       LOGICAL :: FirstCaldyn=.TRUE.
@@ -223,5 +223,5 @@
 c   Debut de l'integration temporelle:
 c   ----------------------------------
-c et du parallélisme !!
+c et du parallelisme !!
 
    1  CONTINUE
@@ -287,5 +287,5 @@
 cym      CALL filtreg ( finvmaold ,jjp1, llm, -2,2, .TRUE., 1 )
 
-cym  ne sert à rien
+cym  ne sert a rien
 cym      call minmax(ijp1llm,q(:,:,3),zqmin,zqmax)
 
@@ -474,4 +474,5 @@
         call WriteField_p('ps',reshape(ps,(/iip1,jmp1/)))
         call WriteField_p('masse',reshape(masse,(/iip1,jmp1,llm/)))
+	call WriteField_p('pk',reshape(pk,(/iip1,jmp1,llm/)))
         call WriteField_p('pks',reshape(pks,(/iip1,jmp1/)))
         call WriteField_p('pkf',reshape(pkf,(/iip1,jmp1,llm/)))
@@ -617,6 +618,10 @@
 
          CALL pression_p (  ip1jmp1, ap, bp, ps,  p      )
+c$OMP BARRIER
+
+c$OMP MASTER
          CALL exner_hyb_p(  ip1jmp1, ps, p,alpha,beta,pks, pk, pkf )
-
+c$OMP END MASTER
+c$OMP BARRIER
            rdaym_ini  = itau * dtvr / daysec
            rdayvrai   = rdaym_ini  + day_ini
@@ -633,5 +638,5 @@
 c+jld
 
-c  Diagnostique de conservation de l'énergie : initialisation
+c  Diagnostique de conservation de l'energie : initialisation
       IF (ip_ebil_dyn.ge.1 ) THEN 
           ztit='bil dyn'
@@ -689,4 +694,13 @@
 c$OMP END MASTER
 c$OMP BARRIER
+
+cc$OMP MASTER	
+c      call WriteField_p('ucovfi',reshape(ucov,(/iip1,jmp1,llm/)))
+c      call WriteField_p('vcovfi',reshape(vcov,(/iip1,jjm,llm/)))
+c      call WriteField_p('tetafi',reshape(teta,(/iip1,jmp1,llm/)))
+c      call WriteField_p('pfi',reshape(p,(/iip1,jmp1,llmp1/)))
+c      call WriteField_p('pkfi',reshape(pk,(/iip1,jmp1,llm/)))
+cc$OMP END MASTER
+cc$OMP BARRIER
 	
         CALL calfis_p( nq, lafin ,rdayvrai,time  ,
@@ -830,5 +844,5 @@
 c$OMP BARRIER
 c
-c  Diagnostique de conservation de l'énergie : difference
+c  Diagnostique de conservation de l'energie : difference
       IF (ip_ebil_dyn.ge.1 ) THEN 
           ztit='bil phys'
Index: LMDZ4/branches/V3_test/libf/dyn3dpar/mod_hallo.F90
===================================================================
--- LMDZ4/branches/V3_test/libf/dyn3dpar/mod_hallo.F90	(revision 733)
+++ LMDZ4/branches/V3_test/libf/dyn3dpar/mod_hallo.F90	(revision 734)
@@ -430,6 +430,6 @@
       type(request_SR),pointer :: Req
       type(Hallo),pointer :: PtrHallo
-      integer, dimension(4) :: TabRequest
-      integer, dimension(MPI_STATUS_SIZE,4) :: TabStatus
+      integer, dimension(2*mpi_size) :: TabRequest
+      integer, dimension(MPI_STATUS_SIZE,2*mpi_size) :: TabStatus
       integer :: NbRequest
       integer :: i,rank,pos,ij,l,ierr
@@ -512,6 +512,6 @@
       type(request_SR),pointer :: Req
       type(Hallo),pointer :: PtrHallo
-      integer, dimension(4) :: TabRequest
-      integer, dimension(MPI_STATUS_SIZE,4) :: TabStatus
+      integer, dimension(mpi_size) :: TabRequest
+      integer, dimension(MPI_STATUS_SIZE,mpi_size) :: TabStatus
       integer :: NbRequest
       integer :: i,rank,pos,ij,l,ierr
@@ -553,6 +553,6 @@
       type(request_SR),pointer :: Req
       type(Hallo),pointer :: PtrHallo
-      integer, dimension(4) :: TabRequest
-      integer, dimension(MPI_STATUS_SIZE,4) :: TabStatus
+      integer, dimension(mpi_size) :: TabRequest
+      integer, dimension(MPI_STATUS_SIZE,mpi_size) :: TabStatus
       integer :: NbRequest
       integer :: i,rank,pos,ij,l,ierr
Index: LMDZ4/branches/V3_test/libf/dyn3dpar/parallel.F90
===================================================================
--- LMDZ4/branches/V3_test/libf/dyn3dpar/parallel.F90	(revision 733)
+++ LMDZ4/branches/V3_test/libf/dyn3dpar/parallel.F90	(revision 734)
@@ -410,5 +410,5 @@
       
       call Gather_Field(Field,ij,ll,0)
-      call MPI_BCAST(Field,ij*ll,MPI_REAL8,0,COMM_LMDZ)
+      call MPI_BCAST(Field,ij*ll,MPI_REAL8,0,COMM_LMDZ,ierr)
       
     end subroutine AllGather_Field
@@ -425,5 +425,5 @@
       INTEGER :: ierr
       
-      call MPI_BCAST(Field,ij*ll,MPI_REAL8,rank,COMM_LMDZ)
+      call MPI_BCAST(Field,ij*ll,MPI_REAL8,rank,COMM_LMDZ,ierr)
       
     end subroutine Broadcast_Field
