Index: /branches/2012/dev_3352_UKMO8_CICE/NEMOGCM/NEMO/OPA_SRC/IOM/prtctl.F90
===================================================================
--- /branches/2012/dev_3352_UKMO8_CICE/NEMOGCM/NEMO/OPA_SRC/IOM/prtctl.F90	(revision 3475)
+++ /branches/2012/dev_3352_UKMO8_CICE/NEMOGCM/NEMO/OPA_SRC/IOM/prtctl.F90	(revision 3476)
@@ -8,4 +8,7 @@
    !!----------------------------------------------------------------------
    USE dom_oce          ! ocean space and time domain variables
+#if defined key_nemocice_decomp
+   USE ice_domain_size, only: nx_global, ny_global
+#endif
    USE in_out_manager   ! I/O manager
    USE lib_mpp          ! distributed memory computing
@@ -431,8 +434,9 @@
       !  array (cf. par_oce.F90).
 
+#if defined key_nemocice_decomp
+      ijpi = ( nx_global+2-2*jpreci + (isplt-1) ) / isplt + 2*jpreci
+      ijpj = ( ny_global+2-2*jprecj + (jsplt-1) ) / jsplt + 2*jprecj 
+#else
       ijpi = ( jpiglo-2*jpreci + (isplt-1) ) / isplt + 2*jpreci
-#if defined key_nemocice_decomp
-      ijpj = ( jpjglo+1-2*jprecj + (jsplt-1) ) / jsplt + 2*jprecj 
-#else
       ijpj = ( jpjglo-2*jprecj + (jsplt-1) ) / jsplt + 2*jprecj
 #endif
Index: /branches/2012/dev_3352_UKMO8_CICE/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90
===================================================================
--- /branches/2012/dev_3352_UKMO8_CICE/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90	(revision 3475)
+++ /branches/2012/dev_3352_UKMO8_CICE/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90	(revision 3476)
@@ -60,4 +60,7 @@
    PUBLIC cice_sbc_final  ! routine called by sbc_final
    PUBLIC sbc_ice_cice    ! routine called by sbc
+
+   INTEGER , PARAMETER ::   ji_off = INT ( (jpiglo - nx_global) / 2 )
+   INTEGER , PARAMETER ::   jj_off = INT ( (jpjglo - ny_global) / 2 )
 
    INTEGER , PARAMETER ::   jpfld   = 13   ! maximum number of files to read 
@@ -806,4 +809,5 @@
       REAL(wp), DIMENSION(jpi,jpj) :: pn
 #if !defined key_nemocice_decomp
+      REAL(wp), DIMENSION(jpiglo,jpjglo) :: png2
       REAL (kind=dbl_kind), dimension(nx_global,ny_global) :: pcg
 #endif
@@ -824,7 +828,7 @@
       ! Copy local domain data from NEMO to CICE field
       pc(:,:,1)=0.0
-      DO jj=2,ny_block
-         DO ji=2,nx_block
-            pc(ji,jj,1)=pn(ji,jj-1)
+      DO jj=2,ny_block-1
+         DO ji=2,nx_block-1
+            pc(ji,jj,1)=pn(ji-1+ji_off,jj-1+jj_off)
          ENDDO
       ENDDO
@@ -850,8 +854,13 @@
 !        pcg(:,:)=0.0
          DO jn=1,jpnij
-            DO jj=1,nlcjt(jn)-1
-               DO ji=2,nlcit(jn)-1
-                  pcg(ji+nimppt(jn)-2,jj+njmppt(jn)-1)=png(ji,jj,jn)       
+            DO jj=nldjt(jn),nlejt(jn)
+               DO ji=nldit(jn),nleit(jn)
+                  png2(ji+nimppt(jn)-1,jj+njmppt(jn)-1)=png(ji,jj,jn)
                ENDDO
+            ENDDO
+         ENDDO
+         DO jj=1,ny_global
+            DO ji=1,nx_global
+               pcg(ji,jj)=png2(ji+ji_off,jj+jj_off)
             ENDDO
          ENDDO
@@ -948,5 +957,5 @@
       DO jj=1,jpjm1
          DO ji=1,jpim1
-            pn(ji,jj)=pc(ji,jj+1,1)
+            pn(ji,jj)=pc(ji+1-ji_off,jj+1-jj_off,1)
          ENDDO
       ENDDO
@@ -962,11 +971,13 @@
 ! Need to make sure this is robust to changes in NEMO halo rows....
 ! (may be OK but not spent much time thinking about it)
+! Note that non-existent pcg elements may be used below, but
+! the lbclnk call on pn will replace these with sensible values
 
       IF (nproc==0) THEN
          png(:,:,:)=0.0
          DO jn=1,jpnij
-            DO jj=1,nlcjt(jn)-1
-               DO ji=2,nlcit(jn)-1
-                  png(ji,jj,jn)=pcg(ji+nimppt(jn)-2,jj+njmppt(jn)-1)      
+            DO jj=nldjt(jn),nlejt(jn)
+               DO ji=nldit(jn),nleit(jn)
+                  png(ji,jj,jn)=pcg(ji+nimppt(jn)-1-ji_off,jj+njmppt(jn)-1-jj_off)
                ENDDO
             ENDDO
Index: /branches/2012/dev_3352_UKMO8_CICE/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90
===================================================================
--- /branches/2012/dev_3352_UKMO8_CICE/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90	(revision 3475)
+++ /branches/2012/dev_3352_UKMO8_CICE/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90	(revision 3476)
@@ -155,6 +155,6 @@
       IF( nn_ice == 4 .AND. .NOT.( ln_blk_core .OR. lk_cpl ) )   &
          &   CALL ctl_stop( 'CICE sea-ice model requires ln_blk_core or lk_cpl' )
-      IF( nn_ice == 4 .AND. ( .NOT. ( cp_cfg == 'orca' ) .OR. lk_agrif ) )   &
-         &   CALL ctl_stop( 'CICE sea-ice model currently only available in a global ORCA configuration without AGRIF' )
+      IF( nn_ice == 4 .AND. lk_agrif )   &
+         &   CALL ctl_stop( 'CICE sea-ice model not currently available with AGRIF' )
       
       IF( ln_dm2dc )   nday_qsr = -1   ! initialisation flag
Index: /branches/2012/dev_3352_UKMO8_CICE/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90
===================================================================
--- /branches/2012/dev_3352_UKMO8_CICE/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90	(revision 3475)
+++ /branches/2012/dev_3352_UKMO8_CICE/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90	(revision 3476)
@@ -46,4 +46,7 @@
    USE mppini          ! shared/distributed memory setting (mpp_init routine)
    USE domain          ! domain initialization             (dom_init routine)
+#if defined key_nemocice_decomp
+   USE ice_domain_size, only: nx_global, ny_global
+#endif
    USE obcini          ! open boundary cond. initialization (obc_ini routine)
    USE bdyini          ! open boundary cond. initialization (bdy_init routine)
@@ -255,8 +258,9 @@
       ! than variables
       IF( Agrif_Root() ) THEN
+#if defined key_nemocice_decomp
+         jpi = ( nx_global+2-2*jpreci + (jpni-1) ) / jpni + 2*jpreci ! first  dim.
+         jpj = ( ny_global+2-2*jprecj + (jpnj-1) ) / jpnj + 2*jprecj ! second dim. 
+#else
          jpi = ( jpiglo-2*jpreci + (jpni-1) ) / jpni + 2*jpreci   ! first  dim.
-#if defined key_nemocice_decomp
-         jpj = ( jpjglo+1-2*jprecj + (jpnj-1) ) / jpnj + 2*jprecj ! second dim. 
-#else
          jpj = ( jpjglo-2*jprecj + (jpnj-1) ) / jpnj + 2*jprecj   ! second dim.
 #endif
