Index: branches/DEV_r1784_mid_year_merge_2010/NEMO/OPA_SRC/DYN/dynldf.F90
===================================================================
--- branches/DEV_r1784_mid_year_merge_2010/NEMO/OPA_SRC/DYN/dynldf.F90	(revision 1950)
+++ branches/DEV_r1784_mid_year_merge_2010/NEMO/OPA_SRC/DYN/dynldf.F90	(revision 1954)
@@ -69,4 +69,10 @@
       CASE ( 2 )    ;   CALL dyn_ldf_bilap  ( kt )      ! iso-level bilaplacian
       CASE ( 3 )    ;   CALL dyn_ldf_bilapg ( kt )      ! s-coord. horizontal bilaplacian
+      CASE ( 4 )                                        ! iso-level laplacian + bilaplacian
+         CALL dyn_ldf_lap    ( kt )
+         CALL dyn_ldf_bilap  ( kt )
+      CASE ( 5 )                                        ! rotated laplacian + bilaplacian (s-coord)
+         CALL dyn_ldf_iso    ( kt )
+         CALL dyn_ldf_bilapg ( kt )
       !
       CASE ( -1 )                                       ! esopa: test all possibility with control print
@@ -83,4 +89,11 @@
                         CALL prt_ctl( tab3d_1=ua, clinfo1=' ldf3 - Ua: ', mask1=umask,   &
             &                         tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' )
+      !
+      CASE ( -2 )                                       ! neither laplacian nor bilaplacian schemes used
+         IF( kt == nit000 ) THEN
+            IF(lwp) WRITE(numout,*)
+            IF(lwp) WRITE(numout,*) 'dyn_ldf : no lateral diffusion on momentum setup'
+            IF(lwp) WRITE(numout,*) '~~~~~~~ '
+         ENDIF
       END SELECT
 
@@ -124,5 +137,5 @@
       IF( ln_dynldf_lap   )   ioptio = ioptio + 1
       IF( ln_dynldf_bilap )   ioptio = ioptio + 1
-      IF( ioptio /= 1 ) CALL ctl_stop( '          use ONE of the 2 lap/bilap operator type on dynamics' )
+      IF( ioptio <  1 ) CALL ctl_warn( '          neither laplacian nor bilaplacian operator set for dynamics' )
       ioptio = 0
       IF( ln_dynldf_level )   ioptio = ioptio + 1
@@ -144,5 +157,5 @@
             IF ( ln_dynldf_iso   )   nldf = 1      ! isoneutral (   rotation)
          ENDIF
-         IF ( ln_sco ) THEN             ! z-coordinate
+         IF ( ln_sco ) THEN             ! s-coordinate
             IF ( ln_dynldf_level )   nldf = 0      ! iso-level  (no rotation)
             IF ( ln_dynldf_hor   )   nldf = 1      ! horizontal (   rotation)
@@ -162,5 +175,5 @@
             IF ( ln_dynldf_iso   )   ierr = 2      ! isoneutral (   rotation)
          ENDIF
-         IF ( ln_sco ) THEN             ! z-coordinate
+         IF ( ln_sco ) THEN             ! s-coordinate
             IF ( ln_dynldf_level )   nldf = 2      ! iso-level  (no rotation)
             IF ( ln_dynldf_hor   )   nldf = 3      ! horizontal (   rotation)
@@ -169,4 +182,22 @@
       ENDIF
       
+      IF( ln_dynldf_lap .AND. ln_dynldf_bilap ) THEN  ! mixed laplacian and bilaplacian operators
+         IF ( ln_zco ) THEN                ! z-coordinate
+            IF ( ln_dynldf_level )   nldf = 4      ! iso-level  (no rotation)
+            IF ( ln_dynldf_hor   )   nldf = 4      ! horizontal (no rotation)
+            IF ( ln_dynldf_iso   )   ierr = 2      ! isoneutral (   rotation)
+         ENDIF
+         IF ( ln_zps ) THEN             ! z-coordinate
+            IF ( ln_dynldf_level )   ierr = 1      ! iso-level not allowed 
+            IF ( ln_dynldf_hor   )   nldf = 4      ! horizontal (no rotation)
+            IF ( ln_dynldf_iso   )   ierr = 2      ! isoneutral (   rotation)
+         ENDIF
+         IF ( ln_sco ) THEN             ! s-coordinate
+            IF ( ln_dynldf_level )   nldf = 4      ! iso-level  (no rotation)
+            IF ( ln_dynldf_hor   )   nldf = 5      ! horizontal (   rotation)
+            IF ( ln_dynldf_iso   )   ierr = 2      ! isoneutral (   rotation)
+         ENDIF
+      ENDIF
+
       IF( lk_esopa )                 nldf = -1     ! esopa test
 
@@ -179,9 +210,12 @@
       IF(lwp) THEN
          WRITE(numout,*)
+         IF( nldf == -2 )   WRITE(numout,*) '              neither laplacian nor bilaplacian schemes used'
          IF( nldf == -1 )   WRITE(numout,*) '              ESOPA test All scheme used'
          IF( nldf ==  0 )   WRITE(numout,*) '              laplacian operator'
-         IF( nldf ==  1 )   WRITE(numout,*) '              Rotated laplacian operator'
+         IF( nldf ==  1 )   WRITE(numout,*) '              rotated laplacian operator'
          IF( nldf ==  2 )   WRITE(numout,*) '              bilaplacian operator'
-         IF( nldf ==  3 )   WRITE(numout,*) '              Rotated bilaplacian'
+         IF( nldf ==  3 )   WRITE(numout,*) '              rotated bilaplacian'
+         IF( nldf ==  4 )   WRITE(numout,*) '              laplacian and bilaplacian operators'
+         IF( nldf ==  5 )   WRITE(numout,*) '              rotated laplacian and bilaplacian operators'
       ENDIF
       !
