Index: /LMDZ5/trunk/libf/dynphy_lonlat/calfis.F
===================================================================
--- /LMDZ5/trunk/libf/dynphy_lonlat/calfis.F	(revision 2603)
+++ /LMDZ5/trunk/libf/dynphy_lonlat/calfis.F	(revision 2604)
@@ -141,6 +141,8 @@
 c
       REAL zrot(iip1,jjm,llm) ! AdlC May 2014
-      REAL zufi(ngridmx,llm), zvfi(ngridmx,llm), zrfi(ngridmx,llm)
+      REAL zufi(ngridmx,llm), zvfi(ngridmx,llm)
+      REAL zrfi(ngridmx,llm) ! relative wind vorticity
       REAL ztfi(ngridmx,llm),zqfi(ngridmx,llm,nqtot)
+      REAL zpk(ngridmx,llm)
 c
       REAL pcvgu(ngridmx,llm), pcvgv(ngridmx,llm)
@@ -211,5 +213,5 @@
 
 
-c   42. pression intercouches :
+c   42. pression intercouches et fonction d'Exner:
 c
 c   -----------------------------------------------------------------
@@ -222,15 +224,27 @@
        unskap   = 1./ kappa
 c
-      DO l = 1, llmp1
+      DO l = 1, llm
+        zpk(   1,l ) = ppk(1,1,l)
         zplev( 1,l ) = pp(1,1,l)
         ig0 = 2
           DO j = 2, jjm
              DO i =1, iim
+              zpk(   ig0,l ) = ppk(i,j,l)
               zplev( ig0,l ) = pp(i,j,l)
               ig0 = ig0 +1
              ENDDO
           ENDDO
+        zpk(   ngridmx,l ) = ppk(1,jjp1,l)
         zplev( ngridmx,l ) = pp(1,jjp1,l)
       ENDDO
+        zplev( 1,llmp1 ) = pp(1,1,llmp1)
+        ig0 = 2
+          DO j = 2, jjm
+             DO i =1, iim
+              zplev( ig0,llmp1 ) = pp(i,j,llmp1)
+              ig0 = ig0 +1
+             ENDDO
+          ENDDO
+        zplev( ngridmx,llmp1 ) = pp(1,jjp1,llmp1)
 c
 c
@@ -471,5 +485,5 @@
      &                   jD_cur,jH_cur_split,zdt_split,
      &                   zplev,zplay,
-     &                   zphi,zphis,
+     &                   zpk,zphi,zphis,
      &                   presnivs,
      &                   zufi,zvfi,zrfi,ztfi,zqfi,
Index: /LMDZ5/trunk/libf/dynphy_lonlat/calfis_loc.F
===================================================================
--- /LMDZ5/trunk/libf/dynphy_lonlat/calfis_loc.F	(revision 2603)
+++ /LMDZ5/trunk/libf/dynphy_lonlat/calfis_loc.F	(revision 2604)
@@ -162,4 +162,5 @@
       REAL,ALLOCATABLE,SAVE :: zufi(:,:), zvfi(:,:), zrfi(:,:)
       REAL,ALLOCATABLE,SAVE :: ztfi(:,:),zqfi(:,:,:)
+      REAL,ALLOCATABLE,SAVE ::  zpk(:,:)
 c
       REAL,ALLOCATABLE,SAVE :: pcvgu(:,:), pcvgv(:,:)
@@ -174,4 +175,5 @@
       REAL,ALLOCATABLE,SAVE :: zplev_omp(:,:)
       REAL,ALLOCATABLE,SAVE :: zplay_omp(:,:)
+      REAL,ALLOCATABLE,SAVE :: zpk_omp(:,:)
       REAL,ALLOCATABLE,SAVE :: zphi_omp(:,:)
       REAL,ALLOCATABLE,SAVE :: zphis_omp(:)
@@ -211,5 +213,5 @@
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-c$OMP THREADPRIVATE(zplev_omp,zplay_omp,zphi_omp,zphis_omp,
+c$OMP THREADPRIVATE(zplev_omp,zplay_omp,zpk_omp,zphi_omp,zphis_omp,
 c$OMP+                 presnivs_omp,zufi_omp,zvfi_omp,ztfi_omp,
 c$OMP+                 zrfi_omp,zqfi_omp,zdufi_omp,zdvfi_omp,
@@ -275,4 +277,5 @@
       ALLOCATE(zdufi2(klon+iim,llm),zdvfi2(klon+iim,llm))
       ALLOCATE(flxwfi(klon,llm))
+      ALLOCATE(zpk(klon,llm))
 c$OMP END MASTER
 c$OMP BARRIER          
@@ -328,4 +331,15 @@
       ENDDO
 c$OMP END DO NOWAIT
+
+c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
+      DO l=1,llm
+        do ig0=1,klon
+          i=index_i(ig0)
+          j=index_j(ig0)
+          zpk(ig0,l)=ppk(i,j,l)
+        enddo
+      ENDDO
+c$OMP END DO NOWAIT
+
 c
 c
@@ -571,4 +585,5 @@
         allocate(zplev_omp(klon,llm+1))
         allocate(zplay_omp(klon,llm))
+        allocate(zpk_omp(klon,llm))
         allocate(zphi_omp(klon,llm))
         allocate(zphis_omp(klon))
@@ -608,4 +623,10 @@
       enddo
         
+       do l=1,llm
+        do i=1,klon  
+	  zpk_omp(i,l)=zpk(offset+i,l)
+	enddo 
+      enddo
+	
       do l=1,llm
         do i=1,klon
@@ -714,5 +735,5 @@
      &                   jD_cur,jH_cur_split,zdt_split,
      &                   zplev_omp,zplay_omp,
-     &                   zphi_omp,zphis_omp,
+     &                   zpk_omp,zphi_omp,zphis_omp,
      &                   presnivs_omp,
      &                   zufi_omp,zvfi_omp,zrfi_omp,ztfi_omp,zqfi_omp,
Index: /LMDZ5/trunk/libf/dynphy_lonlat/calfis_p.F
===================================================================
--- /LMDZ5/trunk/libf/dynphy_lonlat/calfis_p.F	(revision 2603)
+++ /LMDZ5/trunk/libf/dynphy_lonlat/calfis_p.F	(revision 2604)
@@ -162,4 +162,5 @@
       REAL,ALLOCATABLE,SAVE :: zufi(:,:), zvfi(:,:), zrfi(:,:)
       REAL,ALLOCATABLE,SAVE :: ztfi(:,:),zqfi(:,:,:)
+      REAL,ALLOCATABLE,SAVE ::  zpk(:,:)
 c
       REAL,ALLOCATABLE,SAVE :: pcvgu(:,:), pcvgv(:,:)
@@ -174,4 +175,5 @@
       REAL,ALLOCATABLE,SAVE :: zplev_omp(:,:)
       REAL,ALLOCATABLE,SAVE :: zplay_omp(:,:)
+      REAL,ALLOCATABLE,SAVE :: zpk_omp(:,:)
       REAL,ALLOCATABLE,SAVE :: zphi_omp(:,:)
       REAL,ALLOCATABLE,SAVE :: zphis_omp(:)
@@ -211,5 +213,5 @@
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-c$OMP THREADPRIVATE(zplev_omp,zplay_omp,zphi_omp,zphis_omp,
+c$OMP THREADPRIVATE(zplev_omp,zplay_omp,zpk_omp,zphi_omp,zphis_omp,
 c$OMP+                 presnivs_omp,zufi_omp,zvfi_omp,ztfi_omp,
 c$OMP+                 zrfi_omp,zqfi_omp,zdufi_omp,zdvfi_omp,
@@ -275,4 +277,5 @@
       ALLOCATE(zdufi2(klon+iim,llm),zdvfi2(klon+iim,llm))
       ALLOCATE(flxwfi(klon,llm))
+      ALLOCATE(zpk(klon,llm))
 c$OMP END MASTER
 c$OMP BARRIER          
@@ -328,4 +331,15 @@
       ENDDO
 c$OMP END DO NOWAIT
+
+c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
+      DO l=1,llm
+        do ig0=1,klon
+          i=index_i(ig0)
+          j=index_j(ig0)
+          zpk(ig0,l)=ppk(i,j,l)
+        enddo
+      ENDDO
+c$OMP END DO NOWAIT
+
 c
 c
@@ -537,4 +551,5 @@
         allocate(zplev_omp(klon,llm+1))
         allocate(zplay_omp(klon,llm))
+        allocate(zpk_omp(klon,llm))
         allocate(zphi_omp(klon,llm))
         allocate(zphis_omp(klon))
@@ -574,4 +589,10 @@
       enddo
         
+       do l=1,llm
+        do i=1,klon  
+	  zpk_omp(i,l)=zpk(offset+i,l)
+	enddo 
+      enddo
+	
       do l=1,llm
         do i=1,klon
@@ -680,5 +701,5 @@
      &                   jD_cur,jH_cur_split,zdt_split,
      &                   zplev_omp,zplay_omp,
-     &                   zphi_omp,zphis_omp,
+     &                   zpk_omp,zphi_omp,zphis_omp,
      &                   presnivs_omp,
      &                   zufi_omp,zvfi_omp,zrfi_omp,ztfi_omp,zqfi_omp,
Index: /LMDZ5/trunk/libf/dynphy_lonlat/phylmd/callphysiq_mod.F90
===================================================================
--- /LMDZ5/trunk/libf/dynphy_lonlat/phylmd/callphysiq_mod.F90	(revision 2603)
+++ /LMDZ5/trunk/libf/dynphy_lonlat/phylmd/callphysiq_mod.F90	(revision 2604)
@@ -12,5 +12,5 @@
                        jD_cur,jH_cur_split,zdt_split,                     &
                        zplev_omp,zplay_omp,                               &
-                       zphi_omp,zphis_omp,                                &
+                       zpk_omp,zphi_omp,zphis_omp,                        &
                        presnivs_omp,                                      &
                        zufi_omp,zvfi_omp,zrfi_omp,ztfi_omp,zqfi_omp,      &
@@ -35,4 +35,5 @@
   REAL,INTENT(IN) :: zplev_omp(klon,llm+1) ! interlayer pressure (Pa)
   REAL,INTENT(IN) :: zplay_omp(klon,llm) ! mid-layer pressure (Pa)
+  REAL,INTENT(IN) :: zpk_omp(klon,llm) ! Exner function
   REAL,INTENT(IN) :: zphi_omp(klon,llm) ! geopotential at midlayer
   REAL,INTENT(IN) :: zphis_omp(klon) ! surface geopotential
