Index: branches/2011/dev_r2782_NOCS_Griffies/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso_grif.F90
===================================================================
--- branches/2011/dev_r2782_NOCS_Griffies/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso_grif.F90	(revision 2840)
+++ branches/2011/dev_r2782_NOCS_Griffies/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso_grif.F90	(revision 2958)
@@ -127,8 +127,7 @@
       !zdkt(1:jpi,1:jpj,0:1) => wrk_3d_9(:,:,1:2)
 
-      IF( kt == nit000 )  THEN
+      IF( kt == nit000.AND..NOT.ALLOCATED(ah_wslp2) )  THEN
          IF(lwp) WRITE(numout,*)
          IF(lwp) WRITE(numout,*) 'tra_ldf_iso_grif : rotated laplacian diffusion operator on ', cdtype
-         IF(lwp) WRITE(numout,*) '                   WARNING: STILL UNDER TEST, NOT RECOMMENDED. USE AT YOUR OWN PERIL'
          IF(lwp) WRITE(numout,*) '~~~~~~~~~~~'
          ALLOCATE( ah_wslp2(jpi,jpj,jpk) , zdkt(jpi,jpj,0:1), STAT=ierr )
Index: branches/2011/dev_r2782_NOCS_Griffies/NEMOGCM/NEMO/TOP_SRC/TRP/trcadv.F90
===================================================================
--- branches/2011/dev_r2782_NOCS_Griffies/NEMOGCM/NEMO/TOP_SRC/TRP/trcadv.F90	(revision 2840)
+++ branches/2011/dev_r2782_NOCS_Griffies/NEMOGCM/NEMO/TOP_SRC/TRP/trcadv.F90	(revision 2958)
@@ -103,5 +103,6 @@
 
       !                                                   ! add the eiv transport (if necessary)
-      IF( lk_traldf_eiv )   CALL tra_adv_eiv( kt, zun, zvn, zwn, 'TRC' )
+      IF( lk_traldf_eiv .AND. .NOT. ln_traldf_grif )   &
+         &              CALL tra_adv_eiv( kt, zun, zvn, zwn, 'TRC' )          ! add the eiv transport (if necessary)
       !
       SELECT CASE ( nadv )                            !==  compute advection trend and add it to general trend  ==!
Index: branches/2011/dev_r2782_NOCS_Griffies/NEMOGCM/NEMO/TOP_SRC/TRP/trcldf.F90
===================================================================
--- branches/2011/dev_r2782_NOCS_Griffies/NEMOGCM/NEMO/TOP_SRC/TRP/trcldf.F90	(revision 2840)
+++ branches/2011/dev_r2782_NOCS_Griffies/NEMOGCM/NEMO/TOP_SRC/TRP/trcldf.F90	(revision 2958)
@@ -2,8 +2,8 @@
    !!======================================================================
    !!                       ***  MODULE  trcldf  ***
-   !! Ocean Passive tracers : lateral diffusive trends 
+   !! Ocean Passive tracers : lateral diffusive trends
    !!=====================================================================
    !! History :  9.0  ! 2005-11 (G. Madec)  Original code
-   !!       NEMO 3.0  ! 2008-01  (C. Ethe, G. Madec)  merge TRC-TRA 
+   !!       NEMO 3.0  ! 2008-01  (C. Ethe, G. Madec)  merge TRC-TRA
    !!----------------------------------------------------------------------
 #if defined key_top
@@ -23,4 +23,5 @@
    USE traldf_bilap    ! lateral mixing            (tra_ldf_bilap routine)
    USE traldf_iso      ! lateral mixing            (tra_ldf_iso routine)
+   USE traldf_iso_grif ! lateral mixing          (tra_ldf_iso_grif routine)
    USE traldf_lap      ! lateral mixing            (tra_ldf_lap routine)
    USE trdmod_oce
@@ -31,5 +32,5 @@
    PRIVATE
 
-   PUBLIC   trc_ldf    ! called by step.F90 
+   PUBLIC   trc_ldf    ! called by step.F90
    !                                                 !!: ** lateral mixing namelist (nam_trcldf) **
    INTEGER ::   nldf = 0   ! type of lateral diffusion used defined from ln_trcldf_... namlist logicals)
@@ -39,5 +40,5 @@
    !!----------------------------------------------------------------------
    !! NEMO/TOP 3.3 , NEMO Consortium (2010)
-   !! $Id$ 
+   !! $Id$
    !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
    !!----------------------------------------------------------------------
@@ -48,5 +49,5 @@
       !!----------------------------------------------------------------------
       !!                  ***  ROUTINE tra_ldf  ***
-      !! 
+      !!
       !! ** Purpose :   compute the lateral ocean tracer physics.
       !!
@@ -61,5 +62,5 @@
       IF( kt == nit000 )   CALL ldf_ctl          ! initialisation & control of options
 
-      IF( l_trdtrc )  THEN 
+      IF( l_trdtrc )  THEN
          ALLOCATE( ztrtrd(jpi,jpj,jpk,jptra) )  ! temporary save of trends
          ztrtrd(:,:,:,:)  = tra(:,:,:,:)
@@ -68,5 +69,10 @@
       SELECT CASE ( nldf )                       ! compute lateral mixing trend and add it to the general trend
       CASE ( 0 )   ;   CALL tra_ldf_lap   ( kt, 'TRC', gtru, gtrv, trb, tra, jptra            )  ! iso-level laplacian
-      CASE ( 1 )   ;   CALL tra_ldf_iso   ( kt, 'TRC', gtru, gtrv, trb, tra, jptra, rn_ahtb_0 )  ! rotated laplacian 
+      CASE ( 1 )
+         IF( ln_traldf_grif ) THEN
+            CALL tra_ldf_iso_grif( kt, 'TRC', gtru, gtrv, trb, tra, jptra, rn_ahtb_0 )
+         ELSE
+            CALL tra_ldf_iso   ( kt, 'TRC', gtru, gtrv, trb, tra, jptra, rn_ahtb_0 )
+         ENDIF
       CASE ( 2 )   ;   CALL tra_ldf_bilap ( kt, 'TRC', gtru, gtrv, trb, tra, jptra            )  ! iso-level bilaplacian
       CASE ( 3 )   ;   CALL tra_ldf_bilapg( kt, 'TRC',             trb, tra, jptra            )  ! s-coord. horizontal bilaplacian
@@ -96,5 +102,5 @@
            CALL trd_tra( kt, 'TRC', jn, jptra_trd_ldf, ztrtrd(:,:,:,jn) )
         END DO
-        DEALLOCATE( ztrtrd ) 
+        DEALLOCATE( ztrtrd )
       ENDIF
       !                                          ! print mean trends (used for debugging)
@@ -110,9 +116,9 @@
       !!----------------------------------------------------------------------
       !!                  ***  ROUTINE ldf_ctl  ***
-      !! 
+      !!
       !! ** Purpose :   Choice of the operator for the lateral tracer diffusion
       !!
       !! ** Method  :   set nldf from the namtra_ldf logicals
-      !!      nldf == -2   No lateral diffusion  
+      !!      nldf == -2   No lateral diffusion
       !!      nldf == -1   ESOPA test: ALL operators are used
       !!      nldf ==  0   laplacian operator
@@ -121,10 +127,10 @@
       !!      nldf ==  3   Rotated bilaplacian
       !!----------------------------------------------------------------------
-      INTEGER ::   ioptio, ierr         ! temporary integers 
+      INTEGER ::   ioptio, ierr         ! temporary integers
       !!----------------------------------------------------------------------
 
       !  Define the lateral mixing oparator for tracers
       ! ===============================================
-    
+
       !                               ! control the input
       ioptio = 0
@@ -167,5 +173,5 @@
          ENDIF
          IF ( ln_zps ) THEN             ! z-coordinate
-            IF ( ln_trcldf_level )   ierr = 1      ! iso-level not allowed 
+            IF ( ln_trcldf_level )   ierr = 1      ! iso-level not allowed
             IF ( ln_trcldf_hor   )   nldf = 2      ! horizontal (no rotation)
             IF ( ln_trcldf_iso   )   ierr = 2      ! isoneutral (   rotation)
