Index: trunk/LMDZ.GENERIC/libf/phystd/callcorrk.F90
===================================================================
--- trunk/LMDZ.GENERIC/libf/phystd/callcorrk.F90	(revision 1699)
+++ trunk/LMDZ.GENERIC/libf/phystd/callcorrk.F90	(revision 1709)
@@ -20,5 +20,5 @@
       USE tracer_h
       use comcstfi_mod, only: pi, mugaz, cpp
-      use callkeys_mod, only: varactive,diurnal,tracer,water,nosurf,varfixed,satval,        &
+      use callkeys_mod, only: varactive,diurnal,tracer,water,varfixed,satval,        &
                               kastprof,strictboundcorrk,specOLR,CLFvarying
 
@@ -494,14 +494,4 @@
             albv(nw)=albedo(ig,nw)
          ENDDO
-
-         if (nosurf) then ! Case with no surface.
-            DO nw=1,L_NSPECTV
-               if(albv(nw).gt.0.0) then
-                  print*,'For open lower boundary in callcorrk must'
-                  print*,'have spectral surface band albedos all set to zero!'
-                  call abort
-               endif
-            ENDDO         
-         endif
 
       if ((ngrid.eq.1).and.(global1d)) then ! Fixed zenith angle 'szangle' in 1D simulations w/ globally-averaged sunlight.
Index: trunk/LMDZ.GENERIC/libf/phystd/callkeys_mod.F90
===================================================================
--- trunk/LMDZ.GENERIC/libf/phystd/callkeys_mod.F90	(revision 1699)
+++ trunk/LMDZ.GENERIC/libf/phystd/callkeys_mod.F90	(revision 1709)
@@ -107,4 +107,7 @@
       real,save :: MassPlanet
 !$OMP THREADPRIVATE(flatten,Rmean,J2,MassPlanet)
+      real,save :: surfalbedo
+      real,save :: surfemis
+!$OMP THREADPRIVATE(surfalbedo,surfemis)
 
       logical,save :: iscallphys=.false.!existence of callphys.def
Index: trunk/LMDZ.GENERIC/libf/phystd/phyetat0_mod.F90
===================================================================
--- trunk/LMDZ.GENERIC/libf/phystd/phyetat0_mod.F90	(revision 1699)
+++ trunk/LMDZ.GENERIC/libf/phystd/phyetat0_mod.F90	(revision 1709)
@@ -10,4 +10,7 @@
                      emis,q2,qsurf,cloudfrac,totcloudfrac,hice, &
                      rnat,pctsrf_sic,tslab,tsea_ice,sea_ice)
+
+! to use  'getin_p'
+      use ioipsl_getin_p_mod, only: getin_p
 
   use tabfi_mod, only: tabfi
@@ -18,5 +21,5 @@
                      inquire_dimension, inquire_dimension_length
   use slab_ice_h, only: noceanmx
-  use callkeys_mod, only: CLFvarying
+  use callkeys_mod, only: CLFvarying,surfalbedo,surfemis
 
   implicit none
@@ -115,5 +118,5 @@
   endif
 else
-  phisfi(:)=0
+  phisfi(:)=0.
 endif ! of if (startphy_file)
 write(*,*) "phyetat0: surface geopotential <phisfi> range:", &
@@ -127,5 +130,9 @@
   endif
 else
-  albedodat(:)=0.5 ! would be better to read value from def file...
+  ! If no startfi file, use parameter surfalbedo in def file
+  surfalbedo=0.5
+  call getin_p("surfalbedo",surfalbedo)
+  print*,"surfalbedo",surfalbedo
+  albedodat(:)=surfalbedo
 endif ! of if (startphy_file)
 write(*,*) "phyetat0: Bare ground albedo <albedodat> range:", &
@@ -139,5 +146,5 @@
   endif
 else
-  zmea(:)=0
+  zmea(:)=0.
 endif ! of if (startphy_file)
 write(*,*) "phyetat0: <ZMEA> range:", &
@@ -151,5 +158,5 @@
   endif
 else
-  zstd(:)=0
+  zstd(:)=0.
 endif ! of if (startphy_file)
 write(*,*) "phyetat0: <ZSTD> range:", &
@@ -163,5 +170,5 @@
   endif
 else
-  zsig(:)=0
+  zsig(:)=0.
 endif ! of if (startphy_file)
 write(*,*) "phyetat0: <ZSIG> range:", &
@@ -175,5 +182,5 @@
   endif
 else
-  zgam(:)=0
+  zgam(:)=0.
 endif ! of if (startphy_file)
 write(*,*) "phyetat0: <ZGAM> range:", &
@@ -187,5 +194,5 @@
   endif
 else
-  zthe(:)=0
+  zthe(:)=0.
 endif ! of if (startphy_file)
 write(*,*) "phyetat0: <ZTHE> range:", &
@@ -199,5 +206,5 @@
   endif
 else
-  tsurf(:)=0 ! will be updated afterwards in physiq !
+  tsurf(:)=0. ! will be updated afterwards in physiq !
 endif ! of if (startphy_file)
 write(*,*) "phyetat0: Surface temperature <tsurf> range:", &
@@ -211,5 +218,9 @@
   endif
 else
-  emis(:)=1 ! would be better to read value from def file...
+  ! If no startfi file, use parameter surfemis in def file
+  surfemis=1.0
+  call getin_p("surfemis",surfemis)
+  print*,"surfemis",surfemis
+  emis(:)=surfemis
 endif ! of if (startphy_file)
 write(*,*) "phyetat0: Surface emissivity <emis> range:", &
@@ -224,5 +235,5 @@
     endif
   else
-    cloudfrac(:,:)=0
+    cloudfrac(:,:)=0.0
   endif ! of if (startphy_file)
   write(*,*) "phyetat0: Cloud fraction <cloudfrac> range:", &
@@ -240,5 +251,5 @@
     endif
   else
-    totcloudfrac(:)=0
+    totcloudfrac(:)=0.0
   endif ! of if (startphy_file)
   write(*,*) "phyetat0: Total cloud fraction <totcloudfrac> range:", &
@@ -254,8 +265,8 @@
     write(*,*) "phyetat0: Failed loading <hice>"
     !  call abort
-    hice(:)=0
-  endif
-else
-  hice(:)=0
+    hice(:)=0.
+  endif
+else
+  hice(:)=0.
 endif ! of if (startphy_file)
 write(*,*) "phyetat0: Height of oceanic ice <hice> range:", &
@@ -279,5 +290,5 @@
   endif ! of if (.not.found)
 else
-  rnat(:)=1
+  rnat(:)=1.
 endif ! of if (startphy_file)
 write(*,*) "phyetat0: Nature of surface <rnat> range:", &
@@ -292,5 +303,5 @@
   endif
 else
-  pctsrf_sic(:)=0
+  pctsrf_sic(:)=0.
 endif ! of if (startphy_file)
 write(*,*) "phyetat0: Pourcentage of sea ice cover <pctsrf_sic> range:", &
@@ -335,5 +346,5 @@
   endif
 else
-  tsea_ice(1:ngrid)=0
+  tsea_ice(1:ngrid)=0.
 endif ! of if (startphy_file)
 write(*,*) "phyetat0: Oceanic ice quantity <sea_ice> range:", &
@@ -348,5 +359,5 @@
   endif
 else
-  q2(:,:)=0
+  q2(:,:)=0.
 endif ! of if (startphy_file)
 write(*,*) "phyetat0: PBL wind variance <q2> range:", &
@@ -365,5 +376,5 @@
       endif
     else
-      qsurf(:,iq)=0
+      qsurf(:,iq)=0.
     endif ! of if (startphy_file)
     write(*,*) "phyetat0: Surface tracer <",trim(txt),"> range:", &
