Index: /trunk/CONFIG/ORCA2_LIM/EXP00/1_namelist
===================================================================
--- /trunk/CONFIG/ORCA2_LIM/EXP00/1_namelist	(revision 1241)
+++ /trunk/CONFIG/ORCA2_LIM/EXP00/1_namelist	(revision 1242)
@@ -107,5 +107,5 @@
    ln_blk_core = .false.   !  CORE bulk formulation  (T => fill namsbc_core) 
    ln_cpl      = .false.   !  Coupled formulation    (T => fill namsbc_cpl )
-   nn_ice      = 2         !  =0 no ice boundary condition   ,
+   nn_ice      = 0         !  =0 no ice boundary condition   ,
                            !  =1 use observed ice-cover      ,
                            !  =2 ice-model used                             ("key_lim3" or "key_lim2)
Index: /trunk/NEMO/OPA_SRC/SBC/sbcblk_clio.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/SBC/sbcblk_clio.F90	(revision 1241)
+++ /trunk/NEMO/OPA_SRC/SBC/sbcblk_clio.F90	(revision 1242)
@@ -215,11 +215,11 @@
 
       IF( MOD( kt - 1, nn_fsbc ) == 0 ) THEN
-          CALL blk_oce_clio( sst_m )                  ! compute the surface ocean fluxes using CLIO bulk formulea
-      ENDIF                                           ! 
+          CALL blk_oce_clio( sf, sst_m )                  ! compute the surface ocean fluxes using CLIO bulk formulea
+      ENDIF                                               ! 
       !
    END SUBROUTINE sbc_blk_clio
 
 
-   SUBROUTINE blk_oce_clio( pst )
+   SUBROUTINE blk_oce_clio( sf, pst )
       !!---------------------------------------------------------------------------
       !!                     ***  ROUTINE blk_oce_clio  ***
@@ -242,6 +242,8 @@
       !!               - qns, qsr    non-slor and solar heat flux
       !!               - emp, emps   evaporation minus precipitation
+      !!  ** Nota    :   sf has to be a dummy argument for AGRIF on NEC
       !!----------------------------------------------------------------------
-      REAL(wp), INTENT(in), DIMENSION(jpi,jpj) ::   pst   ! surface temperature                      [Celcius]
+      TYPE(fld), INTENT(in), DIMENSION(:)       ::   sf    ! input data
+      REAL(wp) , INTENT(in), DIMENSION(jpi,jpj) ::   pst   ! surface temperature                      [Celcius]
       !!
       INTEGER  ::   ji, jj   ! dummy loop indices
@@ -284,5 +286,4 @@
          END DO
       END DO
-
 
       !------------------------------------------------!
Index: /trunk/NEMO/OPA_SRC/SBC/sbcblk_core.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/SBC/sbcblk_core.F90	(revision 1241)
+++ /trunk/NEMO/OPA_SRC/SBC/sbcblk_core.F90	(revision 1242)
@@ -166,5 +166,5 @@
 
 
-      CALL fld_read( kt, nn_fsbc, sf )                ! input fields provided at the current time-step
+      CALL fld_read( kt, nn_fsbc, sf )                   ! input fields provided at the current time-step
 
 #if defined key_lim3
@@ -173,11 +173,11 @@
 
       IF( MOD( kt - 1, nn_fsbc ) == 0 ) THEN
-          CALL blk_oce_core( sst_m, ssu_m, ssv_m )    ! compute the surface ocean fluxes using CLIO bulk formulea
+          CALL blk_oce_core( sf, sst_m, ssu_m, ssv_m )   ! compute the surface ocean fluxes using CLIO bulk formulea
       ENDIF
-      !                                               ! using CORE bulk formulea
+      !                                                  ! using CORE bulk formulea
    END SUBROUTINE sbc_blk_core
    
    
-   SUBROUTINE blk_oce_core( pst, pu, pv )
+   SUBROUTINE blk_oce_core( sf, pst, pu, pv )
       !!---------------------------------------------------------------------
       !!                     ***  ROUTINE blk_core  ***
@@ -196,8 +196,11 @@
       !!              - tprecip : Total precipitation                   (Kg/m2/s)
       !!              - sprecip : Solid precipitation                   (Kg/m2/s)
+      !!
+      !!  ** Nota  :   sf has to be a dummy argument for AGRIF on NEC
       !!---------------------------------------------------------------------
-      REAL(wp), INTENT(in), DIMENSION(jpi,jpj) ::   pst   ! surface temperature                      [Celcius]
-      REAL(wp), INTENT(in), DIMENSION(jpi,jpj) ::   pu    ! surface current at U-point (i-component) [m/s]
-      REAL(wp), INTENT(in), DIMENSION(jpi,jpj) ::   pv    ! surface current at V-point (j-component) [m/s]
+      TYPE(fld), INTENT(in), DIMENSION(:)       ::   sf    ! input data
+      REAL(wp),  INTENT(in), DIMENSION(jpi,jpj) ::   pst   ! surface temperature                      [Celcius]
+      REAL(wp),  INTENT(in), DIMENSION(jpi,jpj) ::   pu    ! surface current at U-point (i-component) [m/s]
+      REAL(wp),  INTENT(in), DIMENSION(jpi,jpj) ::   pv    ! surface current at V-point (j-component) [m/s]
 
       INTEGER  ::   ji, jj     ! dummy loop indices
Index: /trunk/NEMO/OPA_SRC/SBC/sbcmod.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/SBC/sbcmod.F90	(revision 1241)
+++ /trunk/NEMO/OPA_SRC/SBC/sbcmod.F90	(revision 1242)
@@ -85,6 +85,12 @@
 !!gm here no overwrite, test all option via namelist change: require more incore memory
 !!gm  IF( lk_sbc_cpl       ) THEN   ;   ln_cpl      = .TRUE.   ;   ELSE   ;   ln_cpl      = .FALSE.   ;   ENDIF
-      IF( lk_lim2 )            nn_ice      = 2
-      IF( lk_lim3 )            nn_ice      = 3
+#if defined key_agrif
+      IF ( Agrif_Root() ) THEN
+#endif
+        IF( lk_lim2 )            nn_ice      = 2
+        IF( lk_lim3 )            nn_ice      = 3
+#if defined key_agrif
+      ENDIF
+#endif
       IF( cp_cfg == 'gyre' ) THEN
           ln_ana      = .TRUE.   
Index: /trunk/NEMO/OPA_SRC/SBC/sbcrnf.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/SBC/sbcrnf.F90	(revision 1241)
+++ /trunk/NEMO/OPA_SRC/SBC/sbcrnf.F90	(revision 1242)
@@ -66,7 +66,18 @@
       !
       INTEGER  ::   ji, jj   ! dummy loop indices
+      INTEGER  ::   ierror   ! temporary integer
       !!----------------------------------------------------------------------
       !                                   
-      IF( kt == nit000 )   CALL sbc_rnf_init
+      IF( kt == nit000 ) THEN  
+         IF( .NOT. ln_rnf_emp ) THEN
+            ALLOCATE( sf_rnf(1), STAT=ierror )
+            IF( ierror > 0 ) THEN
+               CALL ctl_stop( 'sbc_rnf: unable to allocate sf_rnf structure' )   ;   RETURN
+            ENDIF
+            ALLOCATE( sf_rnf(1)%fnow(jpi,jpj) )
+            ALLOCATE( sf_rnf(1)%fdta(jpi,jpj,2) )
+         ENDIF
+         CALL sbc_rnf_init(sf_rnf)
+      ENDIF
 
       !                                                   !-------------------!
@@ -97,5 +108,5 @@
 
 
-   SUBROUTINE sbc_rnf_init
+   SUBROUTINE sbc_rnf_init( sf_rnf )
       !!----------------------------------------------------------------------
       !!                  ***  ROUTINE sbc_rnf_init  ***
@@ -107,5 +118,5 @@
       !! ** Action  : - read parameters
       !!----------------------------------------------------------------------
-      INTEGER  ::   ierror   ! temporary integer
+      TYPE(FLD), INTENT(inout), DIMENSION(:) :: sf_rnf   ! input data
       !!
       NAMELIST/namsbc_rnf/ cn_dir, ln_rnf_emp, sn_rnf, sn_cnf, ln_rnf_mouth,   &
@@ -148,11 +159,5 @@
       ELSE                                      ! runoffs read in a file : set sf_rnf structure 
          !
-         ALLOCATE( sf_rnf(1), STAT=ierror )
-         IF( ierror > 0 ) THEN
-            CALL ctl_stop( 'sbc_rnf: unable to allocate sf_rnf structure' )   ;   RETURN
-         ENDIF
-         ALLOCATE( sf_rnf(1)%fnow(jpi,jpj) )
-         ALLOCATE( sf_rnf(1)%fdta(jpi,jpj,2) )
-
+         ! sf_rnf already allocated in main routine
          ! fill sf_rnf with sn_rnf and control print
          CALL fld_fill( sf_rnf, (/ sn_rnf /), cn_dir, 'sbc_rnf_init', 'read runoffs data', 'namsbc_rnf' )
