Index: trunk/LMDZ.COMMON/libf/dyn3dpar/calfis_p.F
===================================================================
--- trunk/LMDZ.COMMON/libf/dyn3dpar/calfis_p.F	(revision 843)
+++ trunk/LMDZ.COMMON/libf/dyn3dpar/calfis_p.F	(revision 847)
@@ -357,5 +357,5 @@
 
 ! ADAPTATION GCM POUR CP(T)
-         call tpot2t_p(ngridmx*llm,zteta,ztfi,zpk)
+         call tpot2t_p(klon,llm,zteta,ztfi,zpk)
 
 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
@@ -984,5 +984,5 @@
       
 ! ADAPTATION GCM POUR CP(T)
-      call t2tpot_p(ngridmx,llm,ztfi,zteta,zpk)
+      call t2tpot_p(klon,llm,ztfi,zteta,zpk)
 
 
Index: trunk/LMDZ.COMMON/libf/dyn3dpar/cpdet.F
===================================================================
--- trunk/LMDZ.COMMON/libf/dyn3dpar/cpdet.F	(revision 843)
+++ trunk/LMDZ.COMMON/libf/dyn3dpar/cpdet.F	(revision 847)
@@ -109,7 +109,9 @@
       integer :: ij,l,ijb,ije
       
-      ijb=ij_begin
-      ije=ij_end  
-      
+      !ijb=ij_begin
+      !ije=ij_end
+      ijb=1
+      ije=ip1jmp1
+     
       if (planet_type.eq."venus") then
 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
@@ -165,5 +167,5 @@
 c======================================================================
 c======================================================================
-      SUBROUTINE tpot2t_p(ip1jmp1,llm,yteta, yt, ypk)
+      SUBROUTINE tpot2t_p(ip1jmp1,llm,yteta,yt,ypk)
 ! Parallel version of tpot2t
       USE parallel
@@ -177,9 +179,12 @@
       real,intent(in) :: yteta(ip1jmp1,llm)
       real,intent(in) :: ypk(ip1jmp1,llm)
+
 ! local variable:
       integer :: ij,l,ijb,ije
-      
-      ijb=ij_begin
-      ije=ij_end  
+
+      !ijb=ij_begin
+      !ije=ij_end
+      ijb=1
+      ije=ip1jmp1
 
       if (planet_type.eq."venus") then
Index: trunk/LMDZ.COMMON/libf/dyn3dpar/leapfrog_p.F
===================================================================
--- trunk/LMDZ.COMMON/libf/dyn3dpar/leapfrog_p.F	(revision 843)
+++ trunk/LMDZ.COMMON/libf/dyn3dpar/leapfrog_p.F	(revision 847)
@@ -521,5 +521,5 @@
 !         call Register_SwapFieldHallo(finvmaold,finvmaold,ip1jmp1,llm,
 !     &                                jj_Nb_caldyn,0,0,TestRequest)
- 
+
         do j=1,nqtot
          call Register_SwapFieldHallo(q(1,1,j),q(1,1,j),ip1jmp1,llm,
@@ -610,8 +610,10 @@
         call WriteField_p('pkf',reshape(pkf,(/iip1,jmp1,llm/)))
         call WriteField_p('phis',reshape(phis,(/iip1,jmp1/)))
+        if (nqtot > 0) then
         do j=1,nqtot
           call WriteField_p('q'//trim(int2str(j)),
      .                reshape(q(:,:,j),(/iip1,jmp1,llm/)))
         enddo
+        endif
 !$OMP END MASTER        
 c$OMP BARRIER
@@ -939,8 +941,10 @@
      *                      1,0,0,1,Request_physic)
 
+        if (nqtot > 0) then
         do j=1,nqtot
           call Register_Hallo(dqfi(1,1,j),ip1jmp1,llm,
      *                        1,0,0,1,Request_physic)
         enddo
+        endif
         
         call SendRequest(Request_Physic)
@@ -1058,5 +1062,5 @@
 c
 c  Diagnostique de conservation de l'energie : difference
-      IF (ip_ebil_dyn.ge.1 ) THEN 
+      IF ((ip_ebil_dyn.ge.1 ) .and. (nqtot > 1)) THEN 
           ztit='bil phys'
           CALL diagedyn(ztit,2,1,1,dtphys
@@ -1499,6 +1503,8 @@
                 write(82,*) 'ps',ps
                 write(83,*) 'q',q
-                WRITE(85,*) 'q1 = ',q(:,:,1)
-                WRITE(86,*) 'q3 = ',q(:,:,3)
+                if (nqtot > 2) then
+                 WRITE(85,*) 'q1 = ',q(:,:,1)
+                 WRITE(86,*) 'q3 = ',q(:,:,3)
+                endif
               endif
   
@@ -1554,7 +1560,7 @@
                 call Gather_Field(pk,ip1jmp1,llm,0)
 		call Gather_Field(phi,ip1jmp1,llm,0)
-                do iq=1,nqtot
+                 do iq=1,nqtot
                   call Gather_Field(q(1,1,iq),ip1jmp1,llm,0)
-                enddo
+                 enddo
 		call Gather_Field(masse,ip1jmp1,llm,0)
                 call Gather_Field(ps,ip1jmp1,1,0)
@@ -1626,7 +1632,7 @@
                 call Gather_Field(teta,ip1jmp1,llm,0)
 		call Gather_Field(phi,ip1jmp1,llm,0)
-                do iq=1,nqtot
+                 do iq=1,nqtot
                   call Gather_Field(q(1,1,iq),ip1jmp1,llm,0)
-                enddo
+                 enddo
 		call Gather_Field(masse,ip1jmp1,llm,0)
                 call Gather_Field(ps,ip1jmp1,1,0)
@@ -1850,7 +1856,7 @@
                 call Gather_Field(teta,ip1jmp1,llm,0)
 		call Gather_Field(phi,ip1jmp1,llm,0)
-                do iq=1,nqtot
+                 do iq=1,nqtot
                   call Gather_Field(q(1,1,iq),ip1jmp1,llm,0)
-                enddo
+                 enddo
 		call Gather_Field(masse,ip1jmp1,llm,0)
                 call Gather_Field(ps,ip1jmp1,1,0)
@@ -1869,7 +1875,7 @@
                   call Gather_Field(teta,ip1jmp1,llm,0)
                   call Gather_Field(ps,ip1jmp1,1,0)
-                  do iq=1,nqtot
+                   do iq=1,nqtot
                     call Gather_Field(q(1,1,iq),ip1jmp1,llm,0)
-                  enddo
+                   enddo
 c      
                   if (mpi_rank==0) then
