Index: trunk/LMDZ.COMMON/libf/evolution/conf_pem.F90
===================================================================
--- trunk/LMDZ.COMMON/libf/evolution/conf_pem.F90	(revision 2893)
+++ trunk/LMDZ.COMMON/libf/evolution/conf_pem.F90	(revision 2894)
@@ -15,5 +15,5 @@
   
   USE temps_mod_evol, ONLY: year_bp_ini, dt_pem, water_ice_criterion, co2_ice_criterion, ps_criterion, &
-                Max_iter_pem, evol_orbit_pem
+                Max_iter_pem, evol_orbit_pem,var_obl, var_ex, var_lsp
   USE comsoil_h_pem, only: soil_pem,fluxgeo,water_reservoir_nom
   USE adsorption_mod,only: adsorption_pem
@@ -53,4 +53,13 @@
   print*,'Flux Geothermal is set to',fluxgeo
 
+  var_obl = .true.
+  CALL getin('var_obl',var_obl)
+
+  var_ex = .true.
+  CALL getin('var_ex',var_ex)
+
+  var_lsp = .true.
+  CALL getin('var_lsp',var_lsp)
+
   if ((not(soil_pem)).and.adsorption_pem) then
        print*,'Adsorption must be used when soil_pem = T'
@@ -62,4 +71,10 @@
        call abort_physic(modname,"Soil is not activated but Flux Geo > 0.'",1)
   endif
+
+  if (evol_orbit_pem.and.year_bp_ini.eq.0.) then
+       print*,'You want to follow the file ob_ex_lsp.asc for changing orb parameters,'
+       print*,'but you did not specify from which year to start.'
+       call abort_physic(modname,"evol_orbit_pem=.true. but year_bp_ini=0",1)
+  endif
   
    water_reservoir_nom = 1e4
Index: trunk/LMDZ.COMMON/libf/evolution/orbit_param_criterion_mod.F90
===================================================================
--- trunk/LMDZ.COMMON/libf/evolution/orbit_param_criterion_mod.F90	(revision 2893)
+++ trunk/LMDZ.COMMON/libf/evolution/orbit_param_criterion_mod.F90	(revision 2894)
@@ -7,5 +7,5 @@
       SUBROUTINE orbit_param_criterion(year_iter_max)
 
-      USE temps_mod_evol, ONLY: year_bp_ini, year_PEM
+      USE temps_mod_evol, ONLY: year_bp_ini, year_PEM, var_obl, var_ex, var_lsp
 #ifndef CPP_STD
       USE planete_h, ONLY: e_elips, obliquit, timeperi
@@ -96,7 +96,7 @@
 !Constant max change case 
 
-        max_change_obl=0.01
-        max_change_ex=0.01
-        max_change_lsp=20.
+        max_change_obl=0.1
+        max_change_ex=0.1
+        max_change_lsp=40.
 
 	max_obl=obliquit+max_change_obl
@@ -111,7 +111,21 @@
 !End Constant max change case 
 
-        obl_not_found=.TRUE.
-        ex_not_found=.TRUE.
-        lsp_not_found=.TRUE.
+! If we do not want some orb parameter to change, they should not be a stopping criterion,
+! So the number of iteration corresponding is set to maximum
+        if(.not.var_obl) then
+           obl_not_found=.FALSE.
+        else
+           obl_not_found=.TRUE.
+        endif
+        if(.not.var_ex) then
+           ex_not_found=.FALSE.
+        else
+           ex_not_found=.TRUE.
+        endif
+        if(.not.var_lsp) then
+           lsp_not_found=.FALSE.
+        else
+           lsp_not_found=.TRUE.
+        endif
 
         max_obl_iter=999999999999
Index: trunk/LMDZ.COMMON/libf/evolution/recomp_orb_param_mod.F90
===================================================================
--- trunk/LMDZ.COMMON/libf/evolution/recomp_orb_param_mod.F90	(revision 2893)
+++ trunk/LMDZ.COMMON/libf/evolution/recomp_orb_param_mod.F90	(revision 2894)
@@ -13,5 +13,5 @@
       SUBROUTINE recomp_orb_param(final_iter)
 
-      USE temps_mod_evol, ONLY: year_bp_ini, year_PEM
+      USE temps_mod_evol, ONLY: year_bp_ini, year_PEM, var_obl, var_ex, var_lsp
 #ifndef CPP_STD      
       USE comconst_mod, ONLY: pi
@@ -66,7 +66,13 @@
         do ilask=last_ilask,1,-1
            if(yearlask(ilask) .GT.Year) then
-              obliquit=oblask(ilask+1)+(oblask(ilask)-oblask(ilask+1))*(Year-yearlask(ilask+1))/(yearlask(ilask)-yearlask(ilask+1))
-              e_elips=exlask(ilask+1)+(exlask(ilask)-exlask(ilask+1))*(Year-yearlask(ilask+1))/(yearlask(ilask)-yearlask(ilask+1))
-              timeperi_ls=lsplask(ilask+1)+(lsplask(ilask)-lsplask(ilask+1))*(Year-yearlask(ilask+1))/(yearlask(ilask)-yearlask(ilask+1))
+             if(var_obl) then
+               obliquit=oblask(ilask+1)+(oblask(ilask)-oblask(ilask+1))*(Year-yearlask(ilask+1))/(yearlask(ilask)-yearlask(ilask+1))
+             endif
+             if(var_ex) then
+               e_elips=exlask(ilask+1)+(exlask(ilask)-exlask(ilask+1))*(Year-yearlask(ilask+1))/(yearlask(ilask)-yearlask(ilask+1))
+             endif
+             if(var_lsp) then
+               timeperi_ls=lsplask(ilask+1)+(lsplask(ilask)-lsplask(ilask+1))*(Year-yearlask(ilask+1))/(yearlask(ilask)-yearlask(ilask+1))
+             endif
               exit
            endif
Index: trunk/LMDZ.COMMON/libf/evolution/temps_mod_evol.F90
===================================================================
--- trunk/LMDZ.COMMON/libf/evolution/temps_mod_evol.F90	(revision 2893)
+++ trunk/LMDZ.COMMON/libf/evolution/temps_mod_evol.F90	(revision 2894)
@@ -11,4 +11,7 @@
   INTEGER   Max_iter_pem        !     Maximal number of iteration when converging to a steady state, read in evol.def
   LOGICAL   evol_orbit_pem      !     True if we want to follow the orbital parameters of ob_ex_lsp.asc, read in evol.def
+  LOGICAL   var_obl             !     True if we want the PEM to follow ob_ex_lsp.asc parameters for obliquity 
+  LOGICAL   var_ex              !     True if we want the PEM to follow ob_ex_lsp.asc parameters for excenticity
+  LOGICAL   var_lsp             !     True if we want the PEM to follow ob_ex_lsp.asc parameters for ls perihelie
 
 END MODULE temps_mod_evol
