Index: /trunk/NEMO/C1D_SRC/step1d.F90
===================================================================
--- /trunk/NEMO/C1D_SRC/step1d.F90	(revision 515)
+++ /trunk/NEMO/C1D_SRC/step1d.F90	(revision 516)
@@ -163,5 +163,6 @@
          CALL prt_ctl(tab3d_1=tn     , clinfo1=' sst  -   : ', mask1=tmask, ovlap=1, kdim=1)
          CALL prt_ctl(tab3d_1=sn     , clinfo1=' sss  -   : ', mask1=tmask, ovlap=1, kdim=1)
-         CALL prt_ctl(tab2d_1=taux   , clinfo1=' tau  - x : ', tab2d_2=tauy, clinfo2='      - y : ', ovlap=1)
+         CALL prt_ctl(tab2d_1=taux   , clinfo1=' tau  - x : ', mask1=umask, &
+            &         tab2d_2=tauy   , clinfo2='      - y : ', mask2=vmask, ovlap=1)
       ENDIF
 
Index: /trunk/NEMO/OPA_SRC/DOM/domain.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/DOM/domain.F90	(revision 515)
+++ /trunk/NEMO/OPA_SRC/DOM/domain.F90	(revision 516)
@@ -142,6 +142,5 @@
       NAMELIST/namrun/ no    , cexper   , ln_rstart , nrstdt , nit000,         &
          &             nitend, ndate0   , nleapy   , ninist , nstock,          &
-         &             nprint, nwrite   , nrunoff  , ln_ctl , nictls, nictle,   &
-         &             njctls, njctle   , nbench   , isplt  , jsplt
+         &             nwrite, nrunoff
 
       NAMELIST/namdom/ ntopo , e3zps_min, e3zps_rat, ngrid  , nmsh  ,   &
@@ -172,16 +171,7 @@
          WRITE(numout,*) '           leap year calendar (0/1)        nleapy    = ', nleapy
          WRITE(numout,*) '           initial state output            ninist    = ', ninist
-         WRITE(numout,*) '           level of print                  nprint    = ', nprint
          WRITE(numout,*) '           frequency of restart file       nstock    = ', nstock
          WRITE(numout,*) '           frequency of output file        nwrite    = ', nwrite
          WRITE(numout,*) '           runoff option                   nrunoff   = ', nrunoff
-         WRITE(numout,*) '           run control (for debugging)     ln_ctl    = ', ln_ctl
-         WRITE(numout,*) '           Start i indice for SUM control  nictls    = ', nictls
-         WRITE(numout,*) '           End i indice for SUM control    nictle    = ', nictle
-         WRITE(numout,*) '           Start j indice for SUM control  njctls    = ', njctls
-         WRITE(numout,*) '           End j indice for SUM control    njctle    = ', njctle
-         WRITE(numout,*) '           number of proc. following i     isplt     = ', isplt
-         WRITE(numout,*) '           number of proc. following j     jsplt     = ', jsplt
-         WRITE(numout,*) '           benchmark parameter (0/1)       nbench    = ', nbench
       ENDIF
 
Index: /trunk/NEMO/OPA_SRC/DOM/domhgr.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/DOM/domhgr.F90	(revision 515)
+++ /trunk/NEMO/OPA_SRC/DOM/domhgr.F90	(revision 516)
@@ -365,6 +365,8 @@
          gphi0 = zphi1 + zsin_alpha * ze1deg * FLOAT( jpjglo-2 )
 
-         IF(lwp) WRITE(numout,*) 'ze1', ze1, 'cosalpha', zcos_alpha, 'sinalpha', zsin_alpha
-         IF(lwp) WRITE(numout,*) 'ze1deg', ze1deg, 'glam0', glam0, 'gphi0', gphi0
+         IF( nprint==1 .AND. lwp )   THEN
+            WRITE(numout,*) '          ze1', ze1, 'cosalpha', zcos_alpha, 'sinalpha', zsin_alpha
+            WRITE(numout,*) '          ze1deg', ze1deg, 'glam0', glam0, 'gphi0', gphi0
+         ENDIF
 
          DO jj = 1, jpj
@@ -404,5 +406,5 @@
       ! ----------------
 
-      IF(lwp .AND. .NOT.ln_rstart ) THEN
+      IF( lwp .AND. .NOT.ln_rstart ) THEN
          WRITE(numout,*)
          WRITE(numout,*) '          longitude and e1 scale factors'
@@ -468,7 +470,9 @@
          ff(:,:) = ( zf0  + zbeta * gphif(:,:) * 1.e+3 )                        ! f = f0 +beta* y ( y=0 at south)
          
-         IF(lwp) WRITE(numout,*) 
-         IF(lwp) WRITE(numout,*) ' Beta-plane: Beta parameter = constant = ', ff(nldi,nldj)
-         IF(lwp) WRITE(numout,*) ' Coriolis parameter varies from ', ff(nldi,nldj),' to ', ff(nldi,nlej)
+         IF(lwp) THEN
+            WRITE(numout,*) 
+            WRITE(numout,*) '          Beta-plane: Beta parameter = constant = ', ff(nldi,nldj)
+            WRITE(numout,*) '          Coriolis parameter varies from ', ff(nldi,nldj),' to ', ff(nldi,nlej)
+         ENDIF
          IF( lk_mpp ) THEN 
             zminff=ff(nldi,nldj)
@@ -476,5 +480,5 @@
             CALL mpp_min( zminff )   ! min over the global domain
             CALL mpp_max( zmaxff )   ! max over the global domain
-            IF(lwp) WRITE(numout,*) ' Coriolis parameter varies globally from ', zminff,' to ', zmaxff
+            IF(lwp) WRITE(numout,*) '          Coriolis parameter varies globally from ', zminff,' to ', zmaxff
          END IF
 
@@ -487,6 +491,10 @@
          ff(:,:) = ( zf0 + zbeta * ABS( gphif(:,:) - zphi0 ) * rad * ra )   ! f = f0 +beta* y ( y=0 at south)
 
-         IF(lwp) WRITE(numout,*) ' Beta-plane and rotated domain : '
-         IF(lwp) WRITE(numout,*) ' Coriolis parameter varies in this processor from ', ff(nldi,nldj),' to ', ff(nldi,nlej)
+         IF(lwp) THEN
+            WRITE(numout,*) 
+            WRITE(numout,*) '          Beta-plane and rotated domain : '
+            WRITE(numout,*) '          Coriolis parameter varies in this processor from ', ff(nldi,nldj),' to ', ff(nldi,nlej)
+         ENDIF
+
          IF( lk_mpp ) THEN 
             zminff=ff(nldi,nldj)
@@ -494,5 +502,5 @@
             CALL mpp_min( zminff )   ! min over the global domain
             CALL mpp_max( zmaxff )   ! max over the global domain
-            IF(lwp) WRITE(numout,*) ' Coriolis parameter varies globally from ', zminff,' to ', zmaxff
+            IF(lwp) WRITE(numout,*) '          Coriolis parameter varies globally from ', zminff,' to ', zmaxff
          END IF
 
Index: /trunk/NEMO/OPA_SRC/DOM/domzgr.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/DOM/domzgr.F90	(revision 515)
+++ /trunk/NEMO/OPA_SRC/DOM/domzgr.F90	(revision 516)
@@ -100,5 +100,4 @@
       ENDIF
 
-
       ! Build the vertical coordinate system
       ! ------------------------------------
@@ -115,18 +114,20 @@
 
 !!bug gm control print:
-      write(numout,*) ' MIN val mbathy ', MINVAL( mbathy(:,:) ), ' MAX ', MAXVAL( mbathy(:,:) )
-      write(numout,*) ' MIN val depth t ', MINVAL( fsdept(:,:,:) ),   &
-         &                   ' w ',   MINVAL( fsdepw(:,:,:) ), '3w ', MINVAL( fsde3w(:,:,:) )
-      write(numout,*) ' MIN val e3    t ', MINVAL( fse3t(:,:,:) ), ' f ', MINVAL( fse3f(:,:,:) ),  &
-         &                   ' u ',   MINVAL( fse3u(:,:,:) ), ' u ', MINVAL( fse3v(:,:,:) ),  &
-         &                   ' uw',   MINVAL( fse3uw(:,:,:)), ' vw', MINVAL( fse3vw(:,:,:)),   &
-         &                   ' w ',   MINVAL( fse3w(:,:,:) )
-
-      write(numout,*) ' MAX val depth t ', MAXVAL( fsdept(:,:,:) ),   &
-         &                   ' w ',   MAXVAL( fsdepw(:,:,:) ), '3w ', MAXVAL( fsde3w(:,:,:) )
-      write(numout,*) ' MAX val e3    t ', MAXVAL( fse3t(:,:,:) ), ' f ', MAXVAL( fse3f(:,:,:) ),  &
-         &                   ' u ',   MAXVAL( fse3u(:,:,:) ), ' u ', MAXVAL( fse3v(:,:,:) ),  &
-         &                   ' uw',   MAXVAL( fse3uw(:,:,:)), ' vw', MAXVAL( fse3vw(:,:,:)),   &
-         &                   ' w ',   MAXVAL( fse3w(:,:,:) )
+      IF( nprint == 1 .AND. lwp )   THEN
+         WRITE(numout,*) ' MIN val mbathy ', MINVAL( mbathy(:,:) ), ' MAX ', MAXVAL( mbathy(:,:) )
+         WRITE(numout,*) ' MIN val depth t ', MINVAL( fsdept(:,:,:) ),   &
+            &                   ' w ',   MINVAL( fsdepw(:,:,:) ), '3w ', MINVAL( fsde3w(:,:,:) )
+         WRITE(numout,*) ' MIN val e3    t ', MINVAL( fse3t(:,:,:) ), ' f ', MINVAL( fse3f(:,:,:) ),  &
+            &                   ' u ',   MINVAL( fse3u(:,:,:) ), ' u ', MINVAL( fse3v(:,:,:) ),  &
+            &                   ' uw',   MINVAL( fse3uw(:,:,:)), ' vw', MINVAL( fse3vw(:,:,:)),   &
+            &                   ' w ',   MINVAL( fse3w(:,:,:) )
+
+         WRITE(numout,*) ' MAX val depth t ', MAXVAL( fsdept(:,:,:) ),   &
+            &                   ' w ',   MAXVAL( fsdepw(:,:,:) ), '3w ', MAXVAL( fsde3w(:,:,:) )
+         WRITE(numout,*) ' MAX val e3    t ', MAXVAL( fse3t(:,:,:) ), ' f ', MAXVAL( fse3f(:,:,:) ),  &
+            &                   ' u ',   MAXVAL( fse3u(:,:,:) ), ' u ', MAXVAL( fse3v(:,:,:) ),  &
+            &                   ' uw',   MAXVAL( fse3uw(:,:,:)), ' vw', MAXVAL( fse3vw(:,:,:)),   &
+            &                   ' w ',   MAXVAL( fse3w(:,:,:) )
+      ENDIF
 !!!bug gm
 
@@ -421,31 +422,15 @@
          !                                            ! =============== !
 
-         CALL iom_open ( 'bathy_level.nc', inum )   ! Level bathymetry
-         IF ( inum > 0 ) THEN
+         IF( ln_zco )   THEN
+            CALL iom_open ( 'bathy_level.nc', inum )   ! Level bathymetry
             CALL iom_get ( inum, jpdom_data, 'Bathy_level', bathy )
             CALL iom_close (inum)
             mbathy(:,:) = INT( bathy(:,:) )
-         ELSE 
-            IF( ln_zco ) THEN
-               CALL ctl_stop( '    zgr_bat : unable to read the file ' )
-            ELSE
-               IF(lwp) WRITE(numout,*)'    zgr_bat : bathy_level will be computed from bathy_meter'
-               nstop = nstop - 1        ! supress the error count for opening 'bathy_level.nc'
-               mbathy(:,:) = jpkm1      
-            ENDIF
          ENDIF
 
-         CALL iom_open ( 'bathy_meter.nc', inum )   ! meter bathymetry
-         IF ( inum > 0 ) THEN
+         IF( ln_zps .OR. ln_sco )   THEN
+            CALL iom_open ( 'bathy_meter.nc', inum )   ! meter bathymetry
             CALL iom_get ( inum, jpdom_data, 'Bathymetry', bathy )
             CALL iom_close (inum)
-         ELSE 
-            IF( ln_zps .OR. ln_sco ) THEN
-              CALL ctl_stop( '    zgr_bat : unable to read the file ' )
-            ELSE
-               bathy(:,:) = 0.e0        ! initialisation
-               nstop = nstop - 1        ! supress the error count for opening 'bathy_level.nc'
-               IF(lwp) WRITE(numout,*)'    zgr_bat : bathy_meter not found, but not used, bathy array set to zero'
-            ENDIF
          ENDIF
          !                                            ! =============== !
@@ -969,9 +954,11 @@
          zrmax  = EXP( -(gphit(10,jj)/8)**2 )
          ztaper = EXP( -(FLOAT(jj-74)/10.)**2 )
-         write(numout,*) jj, (FLOAT(jj-74)/10.), ztaper,(gphit(10,jj)/8), zrmax
-      END DO
-
-      write(numout,*) ' bathy  MAX ', MAXVAL( bathy(:,:) ), ' MIN ', MINVAL( bathy(:,:) )
-      write(numout,*) ' hbatt  MAX ', MAXVAL( hbatt(:,:) ), ' MIN ', MINVAL( hbatt(:,:) )
+         IF( nprint == 1 .AND. lwp ) WRITE(numout,*) jj, (FLOAT(jj-74)/10.), ztaper,(gphit(10,jj)/8), zrmax
+      END DO
+
+      IF( nprint == 1 .AND. lwp )   THEN
+         WRITE(numout,*) ' bathy  MAX ', MAXVAL( bathy(:,:) ), ' MIN ', MINVAL( bathy(:,:) )
+         WRITE(numout,*) ' hbatt  MAX ', MAXVAL( hbatt(:,:) ), ' MIN ', MINVAL( hbatt(:,:) )
+      ENDIF
 
       ! Control print
@@ -1048,12 +1035,14 @@
       hiff(:,:) = MIN( hiff(:,:), hbatf(:,:) )
 
-      write(numout,*) ' MAX val hif   t ', MAXVAL( hift(:,:) ), ' f ', MAXVAL( hiff(:,:) ),  &
-         &                        ' u ',   MAXVAL( hifu(:,:) ), ' v ', MAXVAL( hifv(:,:) )
-      write(numout,*) ' MIN val hif   t ', MINVAL( hift(:,:) ), ' f ', MINVAL( hiff(:,:) ),  &
-         &                        ' u ',   MINVAL( hifu(:,:) ), ' v ', MINVAL( hifv(:,:) )
-      write(numout,*) ' MAX val hbat  t ', MAXVAL( hbatt(:,:) ), ' f ', MAXVAL( hbatf(:,:) ),  &
-         &                        ' u ',   MAXVAL( hbatu(:,:) ), ' v ', MAXVAL( hbatv(:,:) )
-      write(numout,*) ' MIN val hbat  t ', MINVAL( hbatt(:,:) ), ' f ', MINVAL( hbatf(:,:) ),  &
-         &                        ' u ',   MINVAL( hbatu(:,:) ), ' v ', MINVAL( hbatv(:,:) )
+      IF( nprint == 1 .AND. lwp )   THEN
+         WRITE(numout,*) ' MAX val hif   t ', MAXVAL( hift(:,:) ), ' f ', MAXVAL( hiff(:,:) ),  &
+            &                        ' u ',   MAXVAL( hifu(:,:) ), ' v ', MAXVAL( hifv(:,:) )
+         WRITE(numout,*) ' MIN val hif   t ', MINVAL( hift(:,:) ), ' f ', MINVAL( hiff(:,:) ),  &
+            &                        ' u ',   MINVAL( hifu(:,:) ), ' v ', MINVAL( hifv(:,:) )
+         WRITE(numout,*) ' MAX val hbat  t ', MAXVAL( hbatt(:,:) ), ' f ', MAXVAL( hbatf(:,:) ),  &
+            &                        ' u ',   MAXVAL( hbatu(:,:) ), ' v ', MAXVAL( hbatv(:,:) )
+         WRITE(numout,*) ' MIN val hbat  t ', MINVAL( hbatt(:,:) ), ' f ', MINVAL( hbatf(:,:) ),  &
+            &                        ' u ',   MINVAL( hbatu(:,:) ), ' v ', MINVAL( hbatv(:,:) )
+      ENDIF
 !! helsinki
 
@@ -1069,5 +1058,5 @@
       END DO
 
-      write(numout,*) 'gsigw 1 jpk    ', gsigw(1), gsigw(jpk)
+      IF( nprint == 1 .AND. lwp ) WRITE(numout,*) 'gsigw 1 jpk    ', gsigw(1), gsigw(jpk)
 
 !!org DO jk = 1, jpk
@@ -1140,5 +1129,5 @@
       END DO
 
-      write(numout,*) ' MIN val mbathy h90 ', MINVAL( mbathy(:,:) ), ' MAX ', MAXVAL( mbathy(:,:) )
+      IF( nprint == 1 .AND. lwp ) WRITE(numout,*) ' MIN val mbathy h90 ', MINVAL( mbathy(:,:) ), ' MAX ', MAXVAL( mbathy(:,:) )
 
 
Index: /trunk/NEMO/OPA_SRC/ZDF/zdfbfr.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/ZDF/zdfbfr.F90	(revision 515)
+++ /trunk/NEMO/OPA_SRC/ZDF/zdfbfr.F90	(revision 516)
@@ -171,6 +171,7 @@
       CALL lbc_lnk( avmv, 'V', 1. )
 
-      IF(ln_ctl)   THEN
-         CALL prt_ctl(tab3d_1=avmu, clinfo1=' bfr  - u: ', tab3d_2=avmv, clinfo2=' v: ', ovlap=1, kdim=jpk)
+      IF(ln_ctl)  THEN
+         CALL prt_ctl(tab3d_1=avmu, clinfo1=' bfr  - u: ', mask1=umask, &
+            &         tab3d_2=avmv, clinfo2=       ' v: ', mask2=vmask,ovlap=1, kdim=jpk)
       ENDIF
 
Index: /trunk/NEMO/OPA_SRC/ZDF/zdfddm.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/ZDF/zdfddm.F90	(revision 515)
+++ /trunk/NEMO/OPA_SRC/ZDF/zdfddm.F90	(revision 516)
@@ -204,5 +204,6 @@
       IF(ln_ctl) THEN
          CALL prt_ctl(tab3d_1=avt , clinfo1=' ddm  - t: ', tab3d_2=avs , clinfo2=' s: ', ovlap=1, kdim=jpk)
-         CALL prt_ctl(tab3d_1=avmu, clinfo1=' ddm  - u: ', tab3d_2=avmv, clinfo2=' v: ', ovlap=1, kdim=jpk)
+         CALL prt_ctl(tab3d_1=avmu, clinfo1=' ddm  - u: ', mask1=umask, &
+            &         tab3d_2=avmv, clinfo2=       ' v: ', mask2=vmask, ovlap=1, kdim=jpk)
       ENDIF
       
Index: /trunk/NEMO/OPA_SRC/ZDF/zdfkpp.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/ZDF/zdfkpp.F90	(revision 515)
+++ /trunk/NEMO/OPA_SRC/ZDF/zdfkpp.F90	(revision 516)
@@ -1231,9 +1231,10 @@
          IF(ln_ctl) THEN
 #if defined key_zdfddm
-            CALL prt_ctl(tab3d_1=avt , clinfo1=' kpp  - t: ', tab3d_2=avs , clinfo2=' s: ', ovlap=1, kdim=jpk)
+            CALL prt_ctl(tab3d_1=avt , clinfo1=' kpp - t: ', tab3d_2=avs , clinfo2=' s: ', ovlap=1, kdim=jpk)
 #else
-            CALL prt_ctl(tab3d_1=avt , clinfo1=' kpp  - t: ', ovlap=1, kdim=jpk)
-#endif
-            CALL prt_ctl(tab3d_1=avmu, clinfo1='       u: ', tab3d_2=avmv , clinfo2=' v: ', ovlap=1, kdim=jpk)
+            CALL prt_ctl(tab3d_1=avt , clinfo1=' kpp - t: ', ovlap=1, kdim=jpk)
+#endif
+            CALL prt_ctl(tab3d_1=avmu, clinfo1=' kpp - u: ', mask1=umask,  &
+               &         tab3d_2=avmv, clinfo2=      ' v: ', mask2=vmask, ovlap=1, kdim=jpk)
          ENDIF
 
Index: /trunk/NEMO/OPA_SRC/ZDF/zdftke.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/ZDF/zdftke.F90	(revision 515)
+++ /trunk/NEMO/OPA_SRC/ZDF/zdftke.F90	(revision 516)
@@ -594,5 +594,6 @@
       IF(ln_ctl) THEN
          CALL prt_ctl(tab3d_1=en  , clinfo1=' tke  - e: ', tab3d_2=avt , clinfo2=' t: ', ovlap=1, kdim=jpk)
-         CALL prt_ctl(tab3d_1=avmu, clinfo1=' tke  - u: ', tab3d_2=avmv, clinfo2=' v: ', ovlap=1, kdim=jpk)
+         CALL prt_ctl(tab3d_1=avmu, clinfo1=' tke  - u: ', mask1=umask, &
+            &         tab3d_2=avmv, clinfo2=       ' v: ', mask2=vmask, ovlap=1, kdim=jpk)
       ENDIF
 
Index: /trunk/NEMO/OPA_SRC/ZDF/zdftke_jki.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/ZDF/zdftke_jki.F90	(revision 515)
+++ /trunk/NEMO/OPA_SRC/ZDF/zdftke_jki.F90	(revision 516)
@@ -526,5 +526,6 @@
       IF(ln_ctl) THEN
          CALL prt_ctl(tab3d_1=en  , clinfo1=' tke  - e: ', tab3d_2=avt , clinfo2=' t: ', ovlap=1, kdim=jpk)
-         CALL prt_ctl(tab3d_1=avmu, clinfo1=' tke  - u: ', tab3d_2=avmv, clinfo2=' v: ', ovlap=1, kdim=jpk)
+         CALL prt_ctl(tab3d_1=avmu, clinfo1=' tke  - u: ', mask1=umask, &
+            &         tab3d_2=avmv, clinfo2=       ' v: ', mask2=vmask,ovlap=1, kdim=jpk)
       ENDIF
 
Index: /trunk/NEMO/OPA_SRC/daymod.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/daymod.F90	(revision 515)
+++ /trunk/NEMO/OPA_SRC/daymod.F90	(revision 516)
@@ -157,5 +157,5 @@
       IF(ln_ctl) THEN
          WRITE(charout,FMT="('kt =', I4,'  d/m/y =',I2,I2,I4)") kt, nday, nmonth, nyear
-         CALL prt_ctl_info(charout)
+         CALL prt_ctl_info(charout, itime=kt)
       ENDIF
 
Index: /trunk/NEMO/OPA_SRC/mppini.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/mppini.F90	(revision 515)
+++ /trunk/NEMO/OPA_SRC/mppini.F90	(revision 516)
@@ -193,6 +193,6 @@
          WRITE(numout,*) '           defines mpp subdomains'
          WRITE(numout,*) '           ----------------------'
-         WRITE(numout,*) '              iresti=',iresti,' irestj=',irestj
-         WRITE(numout,*) '              jpni=',jpni,' jpnj=',jpnj
+         WRITE(numout,*) '           iresti=',iresti,' irestj=',irestj
+         WRITE(numout,*) '           jpni  =',jpni  ,' jpnj  =',jpnj
          ifreq = 4
          il1   = 1
@@ -200,7 +200,6 @@
             il2 = MIN( jpni, il1+ifreq-1 )
             WRITE(numout,*)
-            WRITE(numout,9201) (ji,ji = il1,il2)
             WRITE(numout,9200) ('***',ji = il1,il2-1)
-            DO jj = 1, jpnj
+            DO jj = jpnj, 1, -1
                WRITE(numout,9203) ('   ',ji = il1,il2-1)
                WRITE(numout,9202) jj, ( ilcit(ji,jj),ilcjt(ji,jj),ji = il1,il2 )
@@ -208,4 +207,5 @@
                WRITE(numout,9200) ('***',ji = il1,il2-1)
             END DO
+            WRITE(numout,9201) (ji,ji = il1,il2)
             il1 = il1+ifreq
          END DO
@@ -536,4 +536,5 @@
 
       IF(lwp) THEN
+          WRITE(numout,*)
           WRITE(numout,*) 'mpp_init_ioipsl :   iloc  = ', iloc (1), iloc (2)
           WRITE(numout,*) '~~~~~~~~~~~~~~~     iabsf = ', iabsf(1), iabsf(2)
Index: /trunk/NEMO/OPA_SRC/opa.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/opa.F90	(revision 515)
+++ /trunk/NEMO/OPA_SRC/opa.F90	(revision 516)
@@ -166,4 +166,6 @@
       CHARACTER (len=20) ::   namelistname
       CHARACTER (len=28) ::   file_out
+      NAMELIST/namctl/  ln_ctl, nprint, nictls, nictle,   &
+         &              isplt , jsplt , njctls, njctle, nbench
       !!----------------------------------------------------------------------
 
@@ -178,8 +180,4 @@
             &         'SEQUENTIAL', 1, numout, .FALSE., 1 )
       ENDIF
-
-      namelistname = 'namelist'
-      CALL ctlopn( numnam, namelistname, 'OLD', 'FORMATTED', 'SEQUENTIAL',   &
-         &           1, numout, .FALSE., 1 )
 
       WRITE(numout,*)
@@ -191,4 +189,12 @@
       WRITE(numout,*)
 
+      namelistname = 'namelist'
+      CALL ctlopn( numnam, namelistname, 'OLD', 'FORMATTED', 'SEQUENTIAL',   &
+         &           1, numout, .FALSE., 1 )
+
+      ! Namelist namctl : Control prints & Benchmark
+      REWIND( numnam )
+      READ  ( numnam, namctl )
+
       ! Nodes selection
       narea = mynode()
@@ -196,20 +202,23 @@
       lwp   = narea == 1
 
-      IF( lk_mpp )   THEN
-         CLOSE( numout )       ! standard model output file
-         WRITE(file_out,FMT="('ocean.output_',I4.4)") narea-1
-         IF ( numout /= 0 .AND. numout /= 6 ) THEN 
-            CALL ctlopn( numout, file_out, 'UNKNOWN', 'FORMATTED',   &
-                 &         'SEQUENTIAL', 1, numout, .FALSE., 1 )
+      ! open additionnal listing
+      IF( ln_ctl )   THEN
+         IF( narea-1 > 0 )   THEN
+            WRITE(file_out,FMT="('ocean.output_',I4.4)") narea-1
+            IF( numout /= 0 .AND. numout /= 6 ) THEN 
+               CALL ctlopn( numout, file_out, 'UNKNOWN', 'FORMATTED',   &
+                  &         'SEQUENTIAL', 1, numout, .FALSE., 1 )
+            ENDIF
+            lwp = .TRUE.
+            !
+            WRITE(numout,*)
+            WRITE(numout,*) '                 L O D Y C - I P S L'
+            WRITE(numout,*) '                     O P A model'
+            WRITE(numout,*) '            Ocean General Circulation Model'
+            WRITE(numout,*) '               version OPA 9.0  (2005) '
+            WRITE(numout,*) '                   MPI Ocean output '
+            WRITE(numout,*)
+            WRITE(numout,*)
          ENDIF
-         !
-         WRITE(numout,*)
-         WRITE(numout,*) '                 L O D Y C - I P S L'
-         WRITE(numout,*) '                     O P A model'
-         WRITE(numout,*) '            Ocean General Circulation Model'
-         WRITE(numout,*) '               version OPA 9.0  (2005) '
-         WRITE(numout,*) '                   MPI Ocean output '
-         WRITE(numout,*)
-         WRITE(numout,*)
       ENDIF
 
@@ -220,4 +229,19 @@
       IF(lwp) WRITE(numout,cform_aaa)       ! Flag AAAAAAA
 
+      IF(lwp) THEN
+         WRITE(numout,*)
+         WRITE(numout,*) 'opa_init: Control prints & Benchmark'
+         WRITE(numout,*) '~~~~~~~~ '
+         WRITE(numout,*) '          Namelist namctl'
+         WRITE(numout,*) '             run control (for debugging)     ln_ctl    = ', ln_ctl
+         WRITE(numout,*) '             level of print                  nprint    = ', nprint
+         WRITE(numout,*) '             Start i indice for SUM control  nictls    = ', nictls
+         WRITE(numout,*) '             End i indice for SUM control    nictle    = ', nictle
+         WRITE(numout,*) '             Start j indice for SUM control  njctls    = ', njctls
+         WRITE(numout,*) '             End j indice for SUM control    njctle    = ', njctle
+         WRITE(numout,*) '             number of proc. following i     isplt     = ', isplt
+         WRITE(numout,*) '             number of proc. following j     jsplt     = ', jsplt
+         WRITE(numout,*) '             benchmark parameter (0/1)       nbench    = ', nbench
+      ENDIF
                                             ! Domain decomposition
       IF( jpni*jpnj == jpnij ) THEN
Index: /trunk/NEMO/OPA_SRC/prtctl.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/prtctl.F90	(revision 515)
+++ /trunk/NEMO/OPA_SRC/prtctl.F90	(revision 516)
@@ -22,4 +22,6 @@
       t_ctll , s_ctll ,   &  !: previous trend values
       u_ctll , v_ctll
+
+   INTEGER ::   ktime        !: time step
 
    !! * Routine accessibility
@@ -79,12 +81,12 @@
       REAL(wp), DIMENSION(:,:,:), INTENT(in), OPTIONAL :: tab3d_1
       REAL(wp), DIMENSION(:,:,:), INTENT(in), OPTIONAL :: mask1
-      CHARACTER (len=*), INTENT(in), OPTIONAL :: clinfo1
+      CHARACTER (len=*)         , INTENT(in), OPTIONAL :: clinfo1
       REAL(wp), DIMENSION(:,:)  , INTENT(in), OPTIONAL :: tab2d_2
       REAL(wp), DIMENSION(:,:,:), INTENT(in), OPTIONAL :: tab3d_2
       REAL(wp), DIMENSION(:,:,:), INTENT(in), OPTIONAL :: mask2
-      CHARACTER (len=*), INTENT(in), OPTIONAL :: clinfo2
-      INTEGER, INTENT(in), OPTIONAL :: ovlap
-      INTEGER, INTENT(in), OPTIONAL :: kdim
-      CHARACTER (len=*), INTENT(in), OPTIONAL :: clinfo3
+      CHARACTER (len=*)         , INTENT(in), OPTIONAL :: clinfo2
+      INTEGER                   , INTENT(in), OPTIONAL :: ovlap
+      INTEGER                   , INTENT(in), OPTIONAL :: kdim
+      CHARACTER (len=*)         , INTENT(in), OPTIONAL :: clinfo3
 
       !! * Local declarations
@@ -135,5 +137,5 @@
       DO jn = sind, eind
 
-         numid = 90
+         numid = 90 + jn
 
          ! Set indices for the SUM control
@@ -184,17 +186,18 @@
 
          ! Print the result
-         IF( PRESENT(clinfo2) .OR. PRESENT(tab2d_2) .OR. PRESENT(tab3d_2) )   THEN
+         IF( PRESENT(clinfo3) )   THEN
             WRITE(numid,FMT='(a,D23.16,3x,a,D23.16)')clinfo1, zsum1-zvctl1, cl2, zsum2-zvctl2
-             IF( clinfo3 == 'tra-ta' )  THEN
-                t_ctll(jn) = zsum1
-             ENDIF 
-             IF( clinfo3 == 'tra' )  THEN
+            SELECT CASE( clinfo3 )
+            CASE ( 'tra-ta' ) 
+               t_ctll(jn) = zsum1
+            CASE ( 'tra' ) 
                 t_ctll(jn) = zsum1
                 s_ctll(jn) = zsum2
-             ENDIF 
-             IF( clinfo3 == 'dyn' )   THEN
+            CASE ( 'dyn' ) 
                 u_ctll(jn) = zsum1
                 v_ctll(jn) = zsum2 
-             ENDIF
+            END SELECT
+         ELSEIF ( PRESENT(clinfo2) .OR. PRESENT(tab2d_2) .OR. PRESENT(tab3d_2) )   THEN
+            WRITE(numid,FMT='(a,D23.16,3x,a,D23.16)')clinfo1, zsum1, cl2, zsum2
          ELSE
             WRITE(numid,FMT='(a,D23.16)')clinfo1, zsum1
@@ -206,5 +209,5 @@
 
 
-   SUBROUTINE prt_ctl_info (clinfo1, ivar1, clinfo2, ivar2)
+   SUBROUTINE prt_ctl_info (clinfo1, ivar1, clinfo2, ivar2, itime)
       !!----------------------------------------------------------------------
       !!                     ***  ROUTINE prt_ctl_info  ***
@@ -223,10 +226,11 @@
       !! * Arguments
       CHARACTER (len=*), INTENT(in) ::   clinfo1
-      INTEGER, INTENT(in), OPTIONAL ::   ivar1
+      INTEGER          , INTENT(in), OPTIONAL ::   ivar1
       CHARACTER (len=*), INTENT(in), OPTIONAL ::   clinfo2
-      INTEGER, INTENT(in), OPTIONAL ::   ivar2
+      INTEGER          , INTENT(in), OPTIONAL ::   ivar2
+      INTEGER          , INTENT(in), OPTIONAL ::   itime
 
       !! * Local declarations
-      INTEGER ::  numid, jn, sind, eind
+      INTEGER ::  numid, jn, sind, eind, iltime
       !!----------------------------------------------------------------------
 
@@ -241,8 +245,18 @@
       ENDIF
 
+      ! Set to zero arrays at each new time step
+      IF( PRESENT(itime) )   THEN
+         iltime = itime
+         IF( iltime > ktime )   THEN
+            t_ctll(:) = 0.e0   ;   s_ctll(:) = 0.e0
+            u_ctll(:) = 0.e0   ;   v_ctll(:) = 0.e0
+            ktime = iltime
+         ENDIF
+      ENDIF
+
       ! Loop over each sub-domain, i.e. number of processors ijsplt
       DO jn = sind, eind
 
-         numid = 90 
+         numid = 90 + jn
 
          IF( PRESENT(ivar1) .AND. PRESENT(clinfo2) .AND. PRESENT(ivar2) )   THEN
@@ -296,8 +310,9 @@
 
       ! Initialization 
-      t_ctll (:)=0.e0
-      s_ctll (:)=0.e0
-      u_ctll (:)=0.e0
-      v_ctll (:)=0.e0
+      t_ctll(:)=0.e0
+      s_ctll(:)=0.e0
+      u_ctll(:)=0.e0
+      v_ctll(:)=0.e0
+      ktime = 1
 
       IF( lk_mpp ) THEN
@@ -330,5 +345,5 @@
 
       DO jn = sind, eind
-         numid = 90 
+         numid = 90 + jn
          WRITE(clfile_out,FMT=clb_name) jn-1
          OPEN ( UNIT=numid, FILE=TRIM(clfile_out),FORM='FORMATTED' )
@@ -345,15 +360,8 @@
          ! Print the SUM control indices
          IF( .NOT. lsp_area )   THEN
-            IF ( lk_mpp )   THEN
-               nictls = nlditl(jn) 
-               nictle = nleitl(jn)
-               njctls = nldjtl(jn)
-               njctle = nlejtl(jn)
-            ELSE
-               nictls = nimpptl(jn) + nlditl(jn) - 1
-               nictle = nimpptl(jn) + nleitl(jn) - 1
-               njctls = njmpptl(jn) + nldjtl(jn) - 1
-               njctle = njmpptl(jn) + nlejtl(jn) - 1
-            ENDIF
+            nictls = nimpptl(jn) + nlditl(jn) - 1
+            nictle = nimpptl(jn) + nleitl(jn) - 1
+            njctls = njmpptl(jn) + nldjtl(jn) - 1
+            njctle = njmpptl(jn) + nlejtl(jn) - 1
          ENDIF
          WRITE(numid,*) 
Index: /trunk/NEMO/OPA_SRC/step.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/step.F90	(revision 515)
+++ /trunk/NEMO/OPA_SRC/step.F90	(revision 516)
@@ -230,5 +230,6 @@
          CALL prt_ctl(tab3d_1=tn     , clinfo1=' sst  -   : ', mask1=tmask, ovlap=1, kdim=1)
          CALL prt_ctl(tab3d_1=sn     , clinfo1=' sss  -   : ', mask1=tmask, ovlap=1, kdim=1)
-         CALL prt_ctl(tab2d_1=taux   , clinfo1=' tau  - x : ', tab2d_2=tauy, clinfo2='      - y : ', ovlap=1)
+         CALL prt_ctl(tab2d_1=taux   , clinfo1=' tau  - x : ', mask1=umask, &
+            &         tab2d_2=tauy   , clinfo2='      - y : ', mask2=vmask,ovlap=1)
       ENDIF
 
