Index: /LMDZ5/trunk/libf/phy1d/1DUTILS.h_no_writelim
===================================================================
--- /LMDZ5/trunk/libf/phy1d/1DUTILS.h_no_writelim	(revision 1762)
+++ /LMDZ5/trunk/libf/phy1d/1DUTILS.h_no_writelim	(revision 1763)
@@ -125,4 +125,11 @@
        ok_flux_surf = .FALSE.
        CALL getin('ok_flux_surf',ok_flux_surf)
+
+!Config  Key  = ok_old_disvert
+!Config  Desc = utilisation de l ancien programme disvert0 (dans 1DUTILS.h)
+!Config  Def  = false
+!Config  Help = utilisation de l ancien programme disvert0 (dans 1DUTILS.h)
+       ok_old_disvert = .FALSE.
+       CALL getin('ok_old_disvert',ok_old_disvert)
 
 !Config  Key  = time_ini
@@ -956,5 +963,5 @@
       END
  
-      SUBROUTINE disvert(pa,preff,ap,bp,dpres,presnivs,nivsigs,nivsig)
+      SUBROUTINE disvert0(pa,preff,ap,bp,dpres,presnivs,nivsigs,nivsig)
  
 !    Auteur :  P. Le Van .
Index: /LMDZ5/trunk/libf/phy1d/1DUTILS.h_with_writelim
===================================================================
--- /LMDZ5/trunk/libf/phy1d/1DUTILS.h_with_writelim	(revision 1762)
+++ /LMDZ5/trunk/libf/phy1d/1DUTILS.h_with_writelim	(revision 1763)
@@ -125,4 +125,11 @@
        ok_flux_surf = .FALSE.
        CALL getin('ok_flux_surf',ok_flux_surf)
+
+!Config  Key  = ok_old_disvert
+!Config  Desc = utilisation de l ancien programme disvert0 (dans 1DUTILS.h)
+!Config  Def  = false
+!Config  Help = utilisation de l ancien programme disvert0 (dans 1DUTILS.h)
+       ok_old_disvert = .FALSE.
+       CALL getin('ok_old_disvert',ok_old_disvert)
 
 !Config  Key  = time_ini
@@ -1079,5 +1086,5 @@
  
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-      SUBROUTINE disvert(pa,preff,ap,bp,dpres,presnivs,nivsigs,nivsig)
+      SUBROUTINE disvert0(pa,preff,ap,bp,dpres,presnivs,nivsigs,nivsig)
  
 !    Auteur :  P. Le Van .
Index: /LMDZ5/trunk/libf/phy1d/1DUTILS.h_with_writelim_old
===================================================================
--- /LMDZ5/trunk/libf/phy1d/1DUTILS.h_with_writelim_old	(revision 1762)
+++ /LMDZ5/trunk/libf/phy1d/1DUTILS.h_with_writelim_old	(revision 1763)
@@ -125,4 +125,11 @@
        ok_flux_surf = .FALSE.
        CALL getin('ok_flux_surf',ok_flux_surf)
+
+!Config  Key  = ok_old_disvert
+!Config  Desc = utilisation de l ancien programme disvert0 (dans 1DUTILS.h)
+!Config  Def  = false
+!Config  Help = utilisation de l ancien programme disvert0 (dans 1DUTILS.h)
+       ok_old_disvert = .FALSE.
+       CALL getin('ok_old_disvert',ok_old_disvert)
 
 !Config  Key  = time_ini
@@ -1079,5 +1086,5 @@
  
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-      SUBROUTINE disvert(pa,preff,ap,bp,dpres,presnivs,nivsigs,nivsig)
+      SUBROUTINE disvert0(pa,preff,ap,bp,dpres,presnivs,nivsigs,nivsig)
  
 !    Auteur :  P. Le Van .
Index: /LMDZ5/trunk/libf/phy1d/lmdz1d.F
===================================================================
--- /LMDZ5/trunk/libf/phy1d/lmdz1d.F	(revision 1762)
+++ /LMDZ5/trunk/libf/phy1d/lmdz1d.F	(revision 1763)
@@ -137,7 +137,9 @@
       integer :: iq
       real :: phi(llm)
+      real :: rlat_rad(1),rlon_rad(1)
       real :: teta(llm),temp(llm),u(llm),v(llm)
       real :: omega(llm+1),omega2(llm),rho(llm+1)
       real :: ug(llm),vg(llm),fcoriolis
+      real :: sfdt, cfdt
       real :: du_phys(llm),dv_phys(llm),dt_phys(llm)
       real :: du_dyn(llm),dv_dyn(llm),dt_dyn(llm)
@@ -418,5 +420,14 @@
 !!      preff= 1.01325e5
       preff = psurf
-      call disvert(pa,preff,ap,bp,dpres,presnivs,nivsigs,nivsig)
+      IF (ok_old_disvert) THEN
+        call disvert0(pa,preff,ap,bp,dpres,presnivs,nivsigs,nivsig)
+        print *,'On utilise disvert0'
+      ELSE
+        call disvert(pa,preff,ap,bp,dpres,presnivs,nivsigs,nivsig,
+     :                 scaleheight)
+        print *,'On utilise disvert'
+c       Nouvelle version disvert permettant d imposer ap,bp (modif L.Guez) MPL 18092012
+c       Dans ce cas, on lit ap,bp dans le fichier hybrid.txt
+      ENDIF
       sig_s=presnivs/preff
       plev =ap+bp*psurf
@@ -460,5 +471,5 @@
 ! rday: defini dans suphel.F (86400.)
 ! day_ini: lu dans run.def (dayref)
-! rlat,rlon lus dans lmdz1d.def
+! rlat_rad,rlon-rad: transformes en radian de rlat,rlon lus dans lmdz1d.def (en degres)
 ! airefi,zcufi,zcvfi initialises au debut de ce programme
 ! rday,ra,rg,rd,rcpd declares dans YOMCST.h et calcules dans suphel.F
@@ -470,7 +481,10 @@
       zcufi=airefi
       zcvfi=airefi
+!
+      rlat_rad(:)=rlat(:)*rpi/180.
+      rlon_rad(:)=rlon(:)*rpi/180.
 
       call iniphysiq(ngrid,llm,rday,day_ini,timestep,
-     .     rlat,rlon,airefi,zcufi,zcvfi,ra,rg,rd,rcpd,1)
+     .     rlat_rad,rlon_rad,airefi,zcufi,zcvfi,ra,rg,rd,rcpd,(/1/))
       print*,'apres iniphysiq'
 
@@ -748,4 +762,30 @@
      : -fcoriolis*(u(1:mxcalc)-ug(1:mxcalc))
 
+!!!!!!!!!!!!!!!!!!!!!!!!
+! Geostrophic wind
+!!!!!!!!!!!!!!!!!!!!!!!!
+       sfdt = sin(0.5*fcoriolis*timestep)
+       cfdt = cos(0.5*fcoriolis*timestep)
+!
+        du_age(1:mxcalc)= -2.*sfdt/timestep*
+     :          (sfdt*(u(1:mxcalc)-ug(1:mxcalc)) -
+     :           cfdt*(v(1:mxcalc)-vg(1:mxcalc))  )
+!!     : fcoriolis*(v(1:mxcalc)-vg(1:mxcalc))
+!
+       dv_age(1:mxcalc)= -2.*sfdt/timestep*
+     :          (cfdt*(u(1:mxcalc)-ug(1:mxcalc)) +
+     :           sfdt*(v(1:mxcalc)-vg(1:mxcalc))  )
+!!     : -fcoriolis*(u(1:mxcalc)-ug(1:mxcalc))
+!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!         call  writefield_phy('dv_age' ,dv_age,llm)
+!         call  writefield_phy('du_age' ,du_age,llm)
+!         call  writefield_phy('du_phys' ,du_phys,llm)
+!         call  writefield_phy('u_tend' ,u,llm)
+!         call  writefield_phy('u_g' ,ug,llm)
+!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!! Increment state variables
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
         u(1:mxcalc)=u(1:mxcalc) + timestep*(
      :              du_phys(1:mxcalc)
